agentworkshop 0.7.24 → 0.7.33

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 (1057) hide show
  1. package/.AgentWorkShop/prompts/aml-mission-default.md +20 -0
  2. package/.AgentWorkShop/prompts/aml-playbook.md +49 -0
  3. package/.AgentWorkShop/prompts/host-tools.json +314 -0
  4. package/.output/.AgentWorkShop/prompts/aml-mission-default.md +20 -0
  5. package/.output/.AgentWorkShop/prompts/aml-playbook.md +49 -0
  6. package/.output/.AgentWorkShop/prompts/host-tools.json +314 -0
  7. package/.output/.AgentWorkShop/schema.json +120 -0
  8. package/.output/nitro.json +1 -1
  9. package/.output/public/_nuxt/{Djir5rSD.js → 4bHdIqEg.js} +8 -8
  10. package/.output/public/_nuxt/B7gZokg82.js +209 -0
  11. package/.output/public/_nuxt/B9nXmjSB.js +19 -0
  12. package/.output/public/_nuxt/BASN8nZ0.js +1 -0
  13. package/.output/public/_nuxt/{DNQF_TXX.js → BBBtwOpo.js} +1 -1
  14. package/.output/public/_nuxt/{DoAlYsiF.js → BBwMH_hG.js} +1 -1
  15. package/.output/public/_nuxt/BWSE6hR6.js +1 -0
  16. package/.output/public/_nuxt/BZv4RFYN.js +1 -0
  17. package/.output/public/_nuxt/Bc0AmjfT.js +1 -0
  18. package/.output/public/_nuxt/BcmbLh2z2.js +1 -0
  19. package/.output/public/_nuxt/BgTB6h_q.js +2 -0
  20. package/.output/public/_nuxt/BkLJA9J5.js +1 -0
  21. package/.output/public/_nuxt/{CuVGPuP1.js → BuCHayqN.js} +1 -1
  22. package/.output/public/_nuxt/{0jKrzLuM.js → BuvcLKh1.js} +1 -1
  23. package/.output/public/_nuxt/C-mDhyEd.js +1 -0
  24. package/.output/public/_nuxt/{Ct68Z0232.js → C77oC8yC2.js} +2 -2
  25. package/.output/public/_nuxt/CQvmN-Mi.js +1 -0
  26. package/.output/public/_nuxt/CUDrOuW7.js +1 -0
  27. package/.output/public/_nuxt/{Coik560n.js → CZcC-gpk.js} +1 -1
  28. package/.output/public/_nuxt/{Cz9gD2Yo.js → CbzsPO5H.js} +1 -1
  29. package/.output/public/_nuxt/CdSOrh2c.js +1 -0
  30. package/.output/public/_nuxt/Cgx818r-.js +1 -0
  31. package/.output/public/_nuxt/Cjm7VogC.js +1 -0
  32. package/.output/public/_nuxt/Cm5mDxzH.js +1 -0
  33. package/.output/public/_nuxt/Cp6z0RN7.js +1 -0
  34. package/.output/public/_nuxt/Ct-WOVr4.js +1 -0
  35. package/.output/public/_nuxt/CwqIxJGj.js +2 -0
  36. package/.output/public/_nuxt/{BMb80_tm.js → D0fhp-Ga.js} +2 -2
  37. package/.output/public/_nuxt/DIaTPH1M.js +1 -0
  38. package/.output/public/_nuxt/DLljr7g0.js +1 -0
  39. package/.output/public/_nuxt/DTYBfjRY.js +1 -0
  40. package/.output/public/_nuxt/DYKVPzN-.js +1 -0
  41. package/.output/public/_nuxt/DZzGarBE2.js +13 -0
  42. package/.output/public/_nuxt/DaMCzQhv.js +1 -0
  43. package/.output/public/_nuxt/DoMxCWN52.js +4 -0
  44. package/.output/public/_nuxt/{kZV5TQvh2.js → DoTdlVVe2.js} +1 -1
  45. package/.output/public/_nuxt/DsVcWfyR.js +1 -0
  46. package/.output/public/_nuxt/{BCJFMBQ6.js → DzuC31-i.js} +2 -2
  47. package/.output/public/_nuxt/FQri3dV3.js +1 -0
  48. package/.output/public/_nuxt/Lp7Ll94I.js +1 -0
  49. package/.output/public/_nuxt/PluginSlot.DmjNbrcX.css +1 -0
  50. package/.output/public/_nuxt/{TownView.zu2rU5nS.css → TownView.CtskuMXS.css} +1 -1
  51. package/.output/public/_nuxt/_id_.hRYo-EAB.css +1 -0
  52. package/.output/public/_nuxt/_wsId_.gXMEOYgX.css +1 -0
  53. package/.output/public/_nuxt/agents.BV70ioCv.css +1 -0
  54. package/.output/public/_nuxt/aml.WU_bh87J.css +1 -0
  55. package/.output/public/_nuxt/builds/latest.json +1 -1
  56. package/.output/public/_nuxt/builds/meta/291ef3e6-fa6a-4dee-8f46-05da1aeab815.json +1 -0
  57. package/.output/public/_nuxt/daq.Bb6l44-O.css +1 -0
  58. package/.output/public/_nuxt/default.jNT73_hq.css +1 -0
  59. package/.output/public/_nuxt/ekuGmQ7R.js +1 -0
  60. package/.output/public/_nuxt/entry.jFrFAWuA.css +1 -0
  61. package/.output/public/_nuxt/pMoIO6rr.js +14 -0
  62. package/.output/public/_nuxt/pages.Cc8GX9T1.css +1 -0
  63. package/.output/public/_nuxt/plugins.wIPyfPn-.css +1 -0
  64. package/.output/public/_nuxt/settings.BCm4NZIc.css +1 -0
  65. package/.output/public/_nuxt/teams.BC75EGnR.css +1 -0
  66. package/.output/public/assets/game/character/yangyang-walk.glb +0 -0
  67. package/.output/server/chunks/_/binding-authz.mjs +23 -0
  68. package/.output/server/chunks/_/binding-authz.mjs.map +1 -0
  69. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  70. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  71. package/.output/server/chunks/_/nitro.mjs +14422 -7551
  72. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  73. package/.output/server/chunks/_/scene-layout.repo.mjs +3 -3
  74. package/.output/server/chunks/_/scene-layout.repo.mjs.map +1 -1
  75. package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs +207 -0
  76. package/.output/server/chunks/build/Checkbox-eax2M3o-.mjs.map +1 -0
  77. package/.output/server/chunks/build/{OmpTerminalPanel-Cw_Vw9oO.mjs → OmpTerminalPanel-Cu_s4i0A.mjs} +2 -2
  78. package/.output/server/chunks/build/{OmpTerminalPanel-Cw_Vw9oO.mjs.map → OmpTerminalPanel-Cu_s4i0A.mjs.map} +1 -1
  79. package/.output/server/chunks/build/{alert-qJnjyRcP.mjs → PluginSlot-CcR4Ys3T.mjs} +140 -4
  80. package/.output/server/chunks/build/PluginSlot-CcR4Ys3T.mjs.map +1 -0
  81. package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs → TownView-BdHnAilw.mjs} +178 -151
  82. package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs.map → TownView-BdHnAilw.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{_id_-DY6v6sqB.mjs → _id_-Cb845FHR.mjs} +7 -5
  84. package/.output/server/chunks/build/_id_-Cb845FHR.mjs.map +1 -0
  85. package/.output/server/chunks/build/{_id_-DQDqj-cZ.mjs → _id_-fadFPl2i.mjs} +50 -35
  86. package/.output/server/chunks/build/_id_-fadFPl2i.mjs.map +1 -0
  87. package/.output/server/chunks/build/{_wsId_-D38Vx6Ky.mjs → _wsId_-CTZswnm5.mjs} +181 -22
  88. package/.output/server/chunks/build/{_wsId_-D38Vx6Ky.mjs.map → _wsId_-CTZswnm5.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{agents-GnmUGZir.mjs → agents-Bvin73QY.mjs} +82 -32
  90. package/.output/server/chunks/build/agents-Bvin73QY.mjs.map +1 -0
  91. package/.output/server/chunks/build/aml-uBNIppIf.mjs +508 -0
  92. package/.output/server/chunks/build/aml-uBNIppIf.mjs.map +1 -0
  93. package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs +81 -0
  94. package/.output/server/chunks/build/apiClient-BwnfOQU8.mjs.map +1 -0
  95. package/.output/server/chunks/build/{channel-templates-B4z6v8Z5.mjs → channel-templates-BTq8570n.mjs} +6 -5
  96. package/.output/server/chunks/build/channel-templates-BTq8570n.mjs.map +1 -0
  97. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs → checkbox-8fB-wI-T.mjs} +5 -5
  98. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs.map → checkbox-8fB-wI-T.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{daq-B-3xCp_2.mjs → daq-BvihjQyW.mjs} +314 -426
  100. package/.output/server/chunks/build/daq-BvihjQyW.mjs.map +1 -0
  101. package/.output/server/chunks/build/{dcw-BL2dhuz7.mjs → dcw-Ks2vJ4PF.mjs} +5 -3
  102. package/.output/server/chunks/build/dcw-Ks2vJ4PF.mjs.map +1 -0
  103. package/.output/server/chunks/build/{default-CLf5m0NE.mjs → default-GgHt4O2R.mjs} +164 -101
  104. package/.output/server/chunks/build/{default-CLf5m0NE.mjs.map → default-GgHt4O2R.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs → input-number-DzpyYB99.mjs} +2 -2
  106. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs.map → input-number-DzpyYB99.mjs.map} +1 -1
  107. package/.output/server/chunks/build/{logs-Dto_umFY.mjs → logs-CYBhkQwh.mjs} +5 -3
  108. package/.output/server/chunks/build/logs-CYBhkQwh.mjs.map +1 -0
  109. package/.output/server/chunks/build/{monitor-Cp4V-H2n.mjs → monitor-CyfDt4nR.mjs} +7 -6
  110. package/.output/server/chunks/build/{monitor-Cp4V-H2n.mjs.map → monitor-CyfDt4nR.mjs.map} +1 -1
  111. package/.output/server/chunks/build/{pages-Dc2H1QFu.mjs → pages-C-6BRtv8.mjs} +57 -47
  112. package/.output/server/chunks/build/pages-C-6BRtv8.mjs.map +1 -0
  113. package/.output/server/chunks/build/{permissions-BTRW2CVd.mjs → permissions-B52oOmaO.mjs} +6 -5
  114. package/.output/server/chunks/build/permissions-B52oOmaO.mjs.map +1 -0
  115. package/.output/server/chunks/build/{plugins-DZR0T4Mh.mjs → plugins-dZRegC7m.mjs} +22 -18
  116. package/.output/server/chunks/build/plugins-dZRegC7m.mjs.map +1 -0
  117. package/.output/server/chunks/build/{segmented-LPPREMtZ.mjs → segmented-3TrWo0lS.mjs} +3 -3
  118. package/.output/server/chunks/build/{segmented-LPPREMtZ.mjs.map → segmented-3TrWo0lS.mjs.map} +1 -1
  119. package/.output/server/chunks/build/settings-CgDLkP3s.mjs +1171 -0
  120. package/.output/server/chunks/build/settings-CgDLkP3s.mjs.map +1 -0
  121. package/.output/server/chunks/build/{table-Cswq-l2r.mjs → table-BjSWwmic.mjs} +4 -4
  122. package/.output/server/chunks/build/{table-Cswq-l2r.mjs.map → table-BjSWwmic.mjs.map} +1 -1
  123. package/.output/server/chunks/build/{tag-NO9jEqKy.mjs → tag-DNE9vXc0.mjs} +3 -131
  124. package/.output/server/chunks/build/tag-DNE9vXc0.mjs.map +1 -0
  125. package/.output/server/chunks/build/{teams-Cbg27MWW.mjs → teams-2kz3CusY.mjs} +350 -49
  126. package/.output/server/chunks/build/teams-2kz3CusY.mjs.map +1 -0
  127. package/.output/server/chunks/build/{tokens-Bmm6rDfj.mjs → tokens-BbWLqtVz.mjs} +6 -5
  128. package/.output/server/chunks/build/tokens-BbWLqtVz.mjs.map +1 -0
  129. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -0
  130. package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
  131. package/.output/server/chunks/build/{town-Dsh0jlwZ.mjs → town-DJ-V5G9U.mjs} +7 -5
  132. package/.output/server/chunks/build/town-DJ-V5G9U.mjs.map +1 -0
  133. package/.output/server/chunks/build/{useDaqStream-DkRL3tEW.mjs → useDaqStream-CIBaiGAl.mjs} +27 -11
  134. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs.map +1 -0
  135. package/.output/server/chunks/build/{useDcwStream-DyB2ufQI.mjs → useDcwStream-CBbiYnWe.mjs} +16 -84
  136. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs.map +1 -0
  137. package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs → useDeviceTwins-Yko6nNPF.mjs} +2 -2
  138. package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs.map → useDeviceTwins-Yko6nNPF.mjs.map} +1 -1
  139. package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs → useOpsLog-CO_VWh7t.mjs} +2 -2
  140. package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs.map → useOpsLog-CO_VWh7t.mjs.map} +1 -1
  141. package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs → useWorkshopApi-NyjL0L3j.mjs} +11 -2
  142. package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs.map → useWorkshopApi-NyjL0L3j.mjs.map} +1 -1
  143. package/.output/server/chunks/build/{users-B50HHrfi.mjs → users-4nzxTjFT.mjs} +6 -5
  144. package/.output/server/chunks/build/users-4nzxTjFT.mjs.map +1 -0
  145. package/.output/server/chunks/build/workshop-81xhz368.mjs +1 -0
  146. package/.output/server/chunks/build/workshop-81xhz368.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/health.get.mjs +1 -0
  148. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  150. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  151. package/.output/server/chunks/routes/api/metrics.mjs +1 -0
  152. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +15 -2
  154. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -0
  156. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +26 -0
  158. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -0
  159. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -1
  160. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +32 -0
  162. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -0
  163. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +36 -0
  164. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -0
  165. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -0
  166. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  167. package/.output/server/chunks/routes/api/system/index.get.mjs +7 -2
  168. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  169. package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -1
  170. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  171. package/.output/server/chunks/routes/api/system/index.post.mjs +36 -0
  172. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -0
  173. package/.output/server/chunks/routes/api/system/index2.get.mjs +28 -0
  174. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -0
  175. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +2 -1
  176. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  177. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -1
  178. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  179. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -0
  180. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  181. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +8 -5
  182. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  183. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -1
  184. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  185. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -1
  186. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  187. package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -1
  188. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  189. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  190. package/.output/server/chunks/routes/api/users/index.get.mjs +2 -1
  191. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  192. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  193. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  194. package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -1
  195. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  196. package/.output/server/chunks/routes/api/users/me.get.mjs +2 -1
  197. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  198. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  199. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +2 -1
  200. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  201. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -1
  202. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  203. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -1
  204. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  205. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -1
  207. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  208. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -1
  209. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  210. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +2 -1
  213. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  214. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +5 -2
  215. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  216. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +9 -3
  217. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  218. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +2 -1
  219. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  220. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -1
  221. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  222. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +23 -3
  223. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  224. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +21 -3
  225. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  226. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -1
  227. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  228. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -1
  229. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  230. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -1
  231. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  232. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +75 -0
  235. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -0
  236. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +35 -0
  237. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -0
  238. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +35 -0
  239. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -0
  240. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +46 -0
  241. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -0
  242. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +47 -0
  243. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -0
  244. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +48 -0
  245. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -0
  246. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +41 -0
  247. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -0
  248. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +62 -0
  249. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -0
  250. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +35 -0
  251. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -0
  252. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +36 -0
  253. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -0
  254. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +34 -0
  255. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -0
  256. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +38 -0
  257. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -0
  258. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +37 -0
  259. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -0
  260. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +42 -0
  261. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -0
  262. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -1
  263. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  264. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -1
  265. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  266. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -1
  267. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  268. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -1
  269. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  270. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -1
  271. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  272. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -0
  273. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  274. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -1
  275. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  276. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -1
  277. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  278. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -1
  279. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  280. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
  281. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -1
  282. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  283. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -1
  284. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  286. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  287. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -1
  288. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -1
  290. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  292. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -1
  293. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  294. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  295. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -1
  296. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  297. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -1
  298. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  299. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -1
  300. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -1
  302. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  303. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -1
  304. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  305. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -1
  306. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  307. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  308. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -1
  309. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
  311. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +41 -0
  312. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -0
  313. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -1
  314. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  316. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +22 -9
  319. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +34 -0
  322. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -0
  323. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -1
  324. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -1
  326. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -1
  328. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -0
  330. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -1
  332. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -1
  334. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -0
  335. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +16 -2
  337. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -1
  339. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +2 -1
  341. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -1
  343. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -1
  345. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -1
  347. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -1
  349. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +3 -1
  351. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -1
  353. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -1
  355. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -1
  357. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -1
  359. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -1
  361. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -1
  363. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -1
  365. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -1
  367. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -1
  369. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -1
  371. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -1
  373. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +2 -1
  375. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -1
  377. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -1
  379. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -1
  381. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -1
  383. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  385. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +7 -2
  387. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -1
  389. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -1
  391. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -1
  393. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -1
  395. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -1
  397. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -1
  399. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -1
  401. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -1
  403. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -1
  405. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -1
  407. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -1
  409. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -1
  411. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -1
  413. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -1
  415. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -1
  417. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -1
  419. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -1
  421. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -1
  423. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -1
  427. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -1
  429. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -1
  431. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -1
  433. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -1
  435. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +2 -1
  437. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -1
  439. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +2 -1
  441. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -1
  443. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +2 -1
  445. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -1
  447. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -1
  449. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -1
  451. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -1
  453. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -1
  455. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -1
  457. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -1
  459. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -1
  461. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -1
  463. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -1
  465. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +2 -1
  467. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +32 -1
  469. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -1
  471. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -1
  473. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +3 -2
  475. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -0
  477. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  479. package/.output/server/chunks/routes/api/workshop/index.put.mjs +2 -1
  480. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  481. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +12 -6
  482. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +4 -2
  484. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +28 -0
  486. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -0
  487. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +17 -11
  488. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  489. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  490. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +11 -4
  491. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -1
  493. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +5 -27
  495. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -1
  497. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +24 -18
  499. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -1
  501. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +23 -5
  503. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -1
  505. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +4 -17
  507. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +8 -3
  509. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +20 -21
  511. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  513. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +24 -11
  514. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -0
  516. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -0
  518. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -1
  520. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -1
  522. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -1
  524. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -1
  526. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -0
  528. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -1
  530. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  531. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -1
  532. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  533. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -0
  534. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  536. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  537. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -1
  538. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  540. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -1
  541. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +2 -1
  543. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -0
  545. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
  547. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -1
  548. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  550. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +44 -0
  551. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -0
  552. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +47 -0
  553. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -0
  554. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -1
  555. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -1
  557. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -1
  559. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  561. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -0
  562. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  563. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  564. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
  565. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -0
  566. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  567. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -0
  568. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  569. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -0
  570. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  571. package/.output/server/chunks/routes/renderer.mjs +2 -2
  572. package/.output/server/chunks/virtual/entry.mjs +933 -449
  573. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  574. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  575. package/.output/server/index.mjs +1 -0
  576. package/.output/server/node_modules/@anthropic-ai/claude-agent-sdk/package.json +84 -0
  577. package/.output/server/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +225 -0
  578. package/.output/server/package.json +2 -1
  579. package/README-zh.md +507 -478
  580. package/README.md +517 -486
  581. package/app/app.vue +17 -2
  582. package/app/assets/css/main.css +421 -30
  583. package/app/components/AppHeader.vue +17 -0
  584. package/app/components/AppSidebar.vue +162 -63
  585. package/app/components/AwChart.vue +57 -54
  586. package/app/components/workshop/ChannelSessionList.vue +802 -703
  587. package/app/components/workshop/DaqNodeRow.vue +554 -0
  588. package/app/components/workshop/PluginSlot.vue +120 -0
  589. package/app/components/workshop/town/ModelPreview3D.vue +26 -4
  590. package/app/components/workshop/town/TownScene3D.ts +60 -12
  591. package/app/components/workshop/town/TownView.vue +4 -3
  592. package/app/composables/workshop/useAmlStream.ts +136 -0
  593. package/app/composables/workshop/useCharacterAssets.ts +1 -0
  594. package/app/composables/workshop/useDaqStream.ts +32 -6
  595. package/app/composables/workshop/useDcwStream.ts +13 -4
  596. package/app/composables/workshop/usePluginPanels.ts +72 -0
  597. package/app/composables/workshop/useWorkshopApi.ts +301 -259
  598. package/app/pages/aml/index.vue +1949 -0
  599. package/app/pages/daq/[id].vue +86 -4
  600. package/app/pages/daq/index.vue +15 -503
  601. package/app/pages/index.vue +235 -213
  602. package/app/pages/plugins/index.vue +280 -274
  603. package/app/pages/settings.vue +807 -79
  604. package/app/pages/workshop/agents.vue +23 -1
  605. package/app/pages/workshop/teams.vue +212 -2
  606. package/app/plugins/aw-plugins.client.ts +95 -6
  607. package/app/plugins/runtime-config.client.ts +4 -14
  608. package/app/plugins/theme.client.ts +13 -3
  609. package/app/stores/app.ts +9 -2
  610. package/app/stores/runtime-config.ts +113 -7
  611. package/cli/aw.mjs +16 -3
  612. package/cli/commands/build.mjs +8 -8
  613. package/cli/commands/dev.mjs +5 -13
  614. package/cli/commands/init.mjs +1 -1
  615. package/cli/commands/start.mjs +10 -17
  616. package/cli/core/args.mjs +85 -4
  617. package/cli/core/child-lifecycle.mjs +136 -0
  618. package/config.yml +24 -0
  619. package/docs/plugins.md +128 -220
  620. package/docs/sdk.md +1 -1
  621. package/i18n/dicts/_en.json +403 -2
  622. package/i18n/dicts/aml.json +163 -0
  623. package/i18n/dicts/channelSessionList.json +4 -1
  624. package/i18n/dicts/daqDetail.json +1 -0
  625. package/i18n/dicts/plugins.json +10 -0
  626. package/i18n/dicts/settings.json +34 -1
  627. package/i18n/dicts/teamPlugins.json +10 -0
  628. package/i18n/dicts/teams.json +9 -1
  629. package/i18n/locales/en.ts +2059 -1867
  630. package/i18n/locales/zh-CN.ts +2059 -1868
  631. package/nuxt.config.ts +18 -3
  632. package/package.json +7 -2
  633. package/public/assets/game/character/yangyang-walk.glb +0 -0
  634. package/scripts/_audit/.tmp/audit-data/dcws.json +28 -0
  635. package/scripts/_audit/.tmp/dcw-writes.json +15650 -0
  636. package/scripts/_audit/.tmp/dcws.json +9033 -0
  637. package/scripts/_audit/.tmp/pollution-backup/dcw-rollback.polluted.json +470006 -0
  638. package/scripts/_audit/.tmp/pollution-backup/dcws.polluted.json +9085 -0
  639. package/scripts/_audit/.tmp/probe-cwd.txt +1 -0
  640. package/scripts/_audit/audit-harness-adapters.md +664 -0
  641. package/scripts/_audit/awhome/commands/README.md +3 -0
  642. package/scripts/_audit/awhome/commands/hello.mjs +12 -0
  643. package/scripts/_audit/dcw-controller-e2e.ts +99 -0
  644. package/scripts/_audit/dcw-flush-cost.ts +43 -0
  645. package/scripts/_audit/dcw-rollback-ledger.ts +153 -0
  646. package/scripts/_audit/dcw-unrecorded-write.ts +171 -0
  647. package/scripts/_audit/dcw-write-mutex.ts +157 -0
  648. package/scripts/_audit/diag-cwd.ts +20 -0
  649. package/scripts/_audit/diag-cwd2.ts +19 -0
  650. package/scripts/_audit/exp-cost-scaling.mjs +54 -0
  651. package/scripts/_audit/exp-envelope-and-png.mjs +77 -0
  652. package/scripts/_audit/exp-png-decode.mjs +67 -0
  653. package/scripts/_audit/exp-retention-plan.mjs +61 -0
  654. package/scripts/_audit/exp-retention-rescan.mjs +42 -0
  655. package/scripts/_audit/exp-sweep-fairness.mjs +48 -0
  656. package/scripts/_audit/hello.mjs +12 -0
  657. package/scripts/_audit/http-api-authz-audit.md +657 -0
  658. package/scripts/_audit/ndjson-partial-line-repro.mjs +77 -0
  659. package/scripts/_audit/opencode-await-ternary-repro.mjs +20 -0
  660. package/scripts/_audit/part-frag.txt +84 -0
  661. package/scripts/_audit/part-head.txt +45 -0
  662. package/scripts/_audit/probe-binding.mjs +103 -0
  663. package/scripts/_audit/probe-child.mjs +17 -0
  664. package/scripts/_audit/probe-envelope.mjs +49 -0
  665. package/scripts/_audit/probe-packlist.mjs +67 -0
  666. package/scripts/_audit/probe-routes.mjs +47 -0
  667. package/scripts/_audit/probe-routes2.mjs +38 -0
  668. package/scripts/_audit/probe.ts +9 -0
  669. package/scripts/_audit/probe2.ts +6 -0
  670. package/scripts/_audit/probe3.ts +3 -0
  671. package/scripts/_audit/probe4.ts +3 -0
  672. package/scripts/_audit/proj/.AgentWorkShop/commands/echoargs.mjs +13 -0
  673. package/scripts/_audit/proj/config.yml +1 -0
  674. package/scripts/_audit/run.mjs +30 -0
  675. package/scripts/_audit/runtime-audit.md +716 -0
  676. package/scripts/_audit/ts-resolve-hook.mjs +41 -0
  677. package/scripts/_audit/tsconfig.probe.json +24 -0
  678. package/scripts/_audit/typecheck-out.txt +466 -0
  679. package/scripts/_audit/verify-data-integrity.mjs +112 -0
  680. package/scripts/_dbg-agents-dropdown-shot.py +33 -0
  681. package/scripts/_dbg-anim-verify.mjs +1 -1
  682. package/scripts/_dbg-audit-all-pages.mjs +1 -1
  683. package/scripts/_dbg-availability-probe.ts +11 -0
  684. package/scripts/_dbg-bind-bidi-e2e.mjs +1 -1
  685. package/scripts/_dbg-cf-line-shot.mjs +18 -0
  686. package/scripts/_dbg-channel-plugin-ui.mjs +94 -0
  687. package/scripts/_dbg-configroot-audit.mjs +84 -0
  688. package/scripts/_dbg-cpu-profile.mjs +53 -0
  689. package/scripts/_dbg-crash-recovery.mjs +1 -1
  690. package/scripts/_dbg-crush-probe.sh +21 -0
  691. package/scripts/_dbg-crush-spawn-probe.ts +22 -0
  692. package/scripts/_dbg-daq-acc-probe.mjs +1 -1
  693. package/scripts/_dbg-daq-attrib.mjs +1 -1
  694. package/scripts/_dbg-daq-debug.mjs +1 -1
  695. package/scripts/_dbg-daq-diag.mjs +1 -1
  696. package/scripts/_dbg-daq-e2e.mjs +1 -1
  697. package/scripts/_dbg-daq-filter-e2e.mjs +1 -1
  698. package/scripts/_dbg-daq-filter-e2e2.mjs +1 -1
  699. package/scripts/_dbg-daq-final-regression.mjs +1 -1
  700. package/scripts/_dbg-daq-frame-alarm.mjs +1 -1
  701. package/scripts/_dbg-daq-frame-ui.mjs +1 -1
  702. package/scripts/_dbg-daq-frame-ws.mjs +1 -1
  703. package/scripts/_dbg-daq-frames-e2e.mjs +1 -1
  704. package/scripts/_dbg-daq-full-check.mjs +1 -1
  705. package/scripts/_dbg-daq-intervals-func.mjs +94 -0
  706. package/scripts/_dbg-daq-pages-shot.mjs +1 -1
  707. package/scripts/_dbg-daq-perf.mjs +1 -1
  708. package/scripts/_dbg-daq-probe.mjs +1 -1
  709. package/scripts/_dbg-daq-recipe-e2e.mjs +1 -1
  710. package/scripts/_dbg-daq-rows-probe.mjs +1 -1
  711. package/scripts/_dbg-daq-rowstate-e2e.mjs +1 -1
  712. package/scripts/_dbg-daq-rowstate-shot.mjs +1 -1
  713. package/scripts/_dbg-daq-rowstate-shot2.mjs +1 -1
  714. package/scripts/_dbg-daq-rowstyle-verify.mjs +112 -0
  715. package/scripts/_dbg-dash-console-check.mjs +1 -1
  716. package/scripts/_dbg-dash-deep-probe.mjs +1 -1
  717. package/scripts/_dbg-dash-hitpoint.mjs +1 -1
  718. package/scripts/_dbg-dcw-read-rest.mjs +1 -1
  719. package/scripts/_dbg-dcw-read-ui.mjs +1 -1
  720. package/scripts/_dbg-dcw-shot2.mjs +1 -1
  721. package/scripts/_dbg-diag-mock-loop.mjs +89 -0
  722. package/scripts/_dbg-diag-watch.mjs +95 -0
  723. package/scripts/_dbg-error-probe.mjs +2 -2
  724. package/scripts/_dbg-filter-light-verify.mjs +1 -1
  725. package/scripts/_dbg-final-acceptance-2.mjs +1 -1
  726. package/scripts/_dbg-final-acceptance.mjs +1 -1
  727. package/scripts/_dbg-final-full-e2e.mjs +1 -1
  728. package/scripts/_dbg-final-shots.mjs +32 -0
  729. package/scripts/_dbg-final-t6-hitl.mjs +1 -1
  730. package/scripts/_dbg-fix-unused-imports.py +41 -0
  731. package/scripts/_dbg-fresh-scene-e2e.mjs +1 -1
  732. package/scripts/_dbg-goose-probe.mjs +33 -0
  733. package/scripts/_dbg-goose-probe.sh +10 -0
  734. package/scripts/_dbg-groups-ui-verify.mjs +122 -0
  735. package/scripts/_dbg-harness-ui-shot.py +109 -0
  736. package/scripts/_dbg-hidden-check.mjs +1 -1
  737. package/scripts/_dbg-home-repro.mjs +1 -1
  738. package/scripts/_dbg-home-stack.mjs +1 -1
  739. package/scripts/_dbg-hydration-detail.mjs +1 -1
  740. package/scripts/_dbg-infra-lifecycle.mjs +1 -1
  741. package/scripts/_dbg-line-live-e2e.mjs +1 -1
  742. package/scripts/_dbg-line-repo-test.ts +10 -0
  743. package/scripts/_dbg-login-debug.py +23 -0
  744. package/scripts/_dbg-modbus-latency.mjs +22 -0
  745. package/scripts/_dbg-mqtt-chain-e2e.mjs +1 -1
  746. package/scripts/_dbg-oneshot-impl-probe.ts +67 -0
  747. package/scripts/_dbg-opt-team-e2e.mjs +1 -1
  748. package/scripts/_dbg-panesplitter-fix-check.mjs +1 -1
  749. package/scripts/_dbg-phase-e3-monitor.mjs +1 -1
  750. package/scripts/_dbg-pi-spawn-probe.ts +33 -0
  751. package/scripts/_dbg-plc-e2e.mjs +1 -1
  752. package/scripts/_dbg-plugin-config-ui.mjs +111 -0
  753. package/scripts/_dbg-plugin-panels-ui.mjs +54 -0
  754. package/scripts/_dbg-plugin-sink-rest.mjs +1 -1
  755. package/scripts/_dbg-plugin-sink-ui.mjs +1 -1
  756. package/scripts/_dbg-plugin-ui-wizard.mjs +1 -1
  757. package/scripts/_dbg-plugin-verify-e2e.mjs +1 -1
  758. package/scripts/_dbg-pop-clamp-verify.mjs +1 -1
  759. package/scripts/_dbg-preview-console.mjs +1 -1
  760. package/scripts/_dbg-preview-minrepro.mjs +1 -1
  761. package/scripts/_dbg-preview-pixels.mjs +1 -1
  762. package/scripts/_dbg-quality-pages-e2e.mjs +1 -1
  763. package/scripts/_dbg-qwen-acp-probe.mjs +30 -0
  764. package/scripts/_dbg-qwen-capture.mjs +21 -0
  765. package/scripts/_dbg-rail-tree-e2e.mjs +1 -1
  766. package/scripts/_dbg-real-driver-e2e.mjs +1 -1
  767. package/scripts/_dbg-real-scenario-timeline.log +55 -123
  768. package/scripts/_dbg-redesign-shots.mjs +1 -1
  769. package/scripts/_dbg-release-smoke.mjs +1 -1
  770. package/scripts/_dbg-render-perf.mjs +142 -0
  771. package/scripts/_dbg-render-regression.mjs +130 -0
  772. package/scripts/_dbg-resolve-probe.ts +6 -0
  773. package/scripts/_dbg-restart-persist.mjs +1 -1
  774. package/scripts/_dbg-sc001-dispatch.mjs +1 -1
  775. package/scripts/_dbg-scenario-final-shot.mjs +1 -1
  776. package/scripts/_dbg-scenario-phase-e2.mjs +1 -1
  777. package/scripts/_dbg-scenario-phase-e3.mjs +1 -1
  778. package/scripts/_dbg-scenario-phase1.mjs +1 -1
  779. package/scripts/_dbg-scenario-phase2.mjs +1 -1
  780. package/scripts/_dbg-scenario-phase3-monitor.mjs +1 -1
  781. package/scripts/_dbg-scenario-phase3.mjs +1 -1
  782. package/scripts/_dbg-settings-draft-probe.mjs +39 -0
  783. package/scripts/_dbg-settings-probe.mjs +33 -0
  784. package/scripts/_dbg-task-cancel-probe.mjs +66 -0
  785. package/scripts/_dbg-town-alarm-e2e.mjs +1 -1
  786. package/scripts/_dbg-town-daq-shot.mjs +1 -1
  787. package/scripts/_dbg-town-full-e2e.mjs +1 -1
  788. package/scripts/_dbg-town-gate.mjs +1 -1
  789. package/scripts/_dbg-town-ins-probe.mjs +1 -1
  790. package/scripts/_dbg-town-perf.mjs +1 -1
  791. package/scripts/_dbg-town-realtime.mjs +1 -1
  792. package/scripts/_dbg-town-shot.py +25 -0
  793. package/scripts/_dbg-town-shot3.mjs +1 -1
  794. package/scripts/_dbg-town-smoke.mjs +54 -0
  795. package/scripts/_dbg-town-truth.mjs +1 -1
  796. package/scripts/_dbg-town-truth2.mjs +1 -1
  797. package/scripts/_dbg-trend-expand-test.mjs +1 -1
  798. package/scripts/_dbg-twindaq-focus.mjs +1 -1
  799. package/scripts/_dbg-ui-polish-shot.mjs +1 -1
  800. package/scripts/_dbg-ui-polish-verify1.mjs +1 -1
  801. package/scripts/_dbg-ui-polish-verify2.mjs +1 -1
  802. package/scripts/_dbg-ui-polish-verify3.mjs +1 -1
  803. package/scripts/_dbg-ui-polish-verify4.mjs +1 -1
  804. package/scripts/_dbg-unify-shot.mjs +1 -1
  805. package/scripts/_dbg-uplink-probe.mjs +1 -1
  806. package/scripts/_dbg-wizard-preview-shot.mjs +1 -1
  807. package/scripts/_dbg-wizard-ui-e2e.mjs +1 -1
  808. package/scripts/_dbg-ws-probe.mjs +1 -1
  809. package/scripts/_dbg-wsdot-sanity.mjs +1 -1
  810. package/scripts/_node-state-probe.mjs +1 -1
  811. package/scripts/_tmp-args-probe.mjs +20 -0
  812. package/scripts/_tmp-cyc-entry.mjs +8 -0
  813. package/scripts/_tmp-cyc-main.mjs +5 -0
  814. package/scripts/_tmp-cyc-mod.mjs +2 -0
  815. package/scripts/_tmp-cycle-a.mjs +6 -0
  816. package/scripts/_tmp-cycle-b.mjs +2 -0
  817. package/scripts/_tmp-cycle-probe.mjs +4 -0
  818. package/scripts/_tmp-entry-variant.mjs +2 -0
  819. package/scripts/_tmp-help-probe.mjs +19 -0
  820. package/scripts/_tmp-help-probe2.mjs +2 -0
  821. package/scripts/_tmp-trace-preload.mjs +1 -0
  822. package/scripts/aml-agent-bridge.ts +230 -0
  823. package/scripts/aml-industrial-loop.ts +232 -0
  824. package/scripts/aml-ui-smoke.mjs +67 -0
  825. package/scripts/aw-start-smoke.mjs +194 -0
  826. package/scripts/design-verify-templates.mjs +1 -1
  827. package/scripts/device-line-restore.mjs +1 -1
  828. package/scripts/e2e-aml.ts +259 -0
  829. package/scripts/e2e-config-groups.mjs +238 -0
  830. package/scripts/e2e-full-closedloop.mjs +911 -0
  831. package/scripts/e2e-full-scenario.ts +321 -0
  832. package/scripts/e2e-harness-consistency.ts +204 -0
  833. package/scripts/e2e-multi-harness.ts +233 -76
  834. package/scripts/e2e-plc-plugin-closedloop.mjs +518 -0
  835. package/scripts/e2e-real-scenario.mjs +466 -452
  836. package/scripts/e2e-template-isolation.mjs +2 -2
  837. package/scripts/experiment-castfilm-closedloop.mjs +423 -0
  838. package/scripts/experiment-castfilm-finish.mjs +194 -0
  839. package/scripts/experiment-castfilm-ui-shot.mjs +52 -0
  840. package/scripts/experiment-castfilm-viz.mjs +172 -0
  841. package/scripts/i18n-merge.mjs +152 -30
  842. package/scripts/production-closed-loop-e2e.mjs +300 -0
  843. package/scripts/team-plugins-api-smoke.mjs +149 -0
  844. package/scripts/test-aml-integration.ts +159 -0
  845. package/scripts/test-aml-job.ts +174 -0
  846. package/scripts/test-aml-unit.ts +184 -0
  847. package/scripts/test-cli-exit.mjs +235 -0
  848. package/scripts/test-daq-frame-race.mjs +310 -0
  849. package/scripts/test-data-root.mjs +208 -0
  850. package/scripts/test-log-flooding.mjs +160 -0
  851. package/scripts/test-lru.mjs +78 -0
  852. package/scripts/test-memory-month-query.mjs +62 -0
  853. package/scripts/test-plugin-hardening.mjs +45 -0
  854. package/scripts/test-rollback-index.mjs +79 -0
  855. package/scripts/test-sdk-surface.mjs +155 -0
  856. package/scripts/three-system-e2e.mjs +662 -0
  857. package/scripts/town-scene-clear.mjs +1 -1
  858. package/sdk/client.d.mts +110 -0
  859. package/sdk/client.mjs +144 -124
  860. package/sdk/context.mjs +161 -1
  861. package/sdk/index.d.mts +37 -5
  862. package/sdk/index.mjs +44 -41
  863. package/sdk/lifecycle.mjs +4 -1
  864. package/server/api/plugins/[name]/[...path].ts +46 -31
  865. package/server/api/plugins/i18n.get.ts +12 -0
  866. package/server/api/system/config-groups/[id].delete.ts +21 -0
  867. package/server/api/system/config-groups/[id].patch.ts +26 -0
  868. package/server/api/system/config-groups/index.get.ts +21 -0
  869. package/server/api/system/config-groups/index.post.ts +33 -0
  870. package/server/api/system/settings/events.get.ts +8 -4
  871. package/server/api/workshop/agent-tools/bindings/[id].delete.ts +6 -1
  872. package/server/api/workshop/agent-tools/bindings/[id].patch.ts +12 -3
  873. package/server/api/workshop/agent-tools/bindings/index.get.ts +29 -2
  874. package/server/api/workshop/agent-tools/invoke.post.ts +30 -5
  875. package/server/api/workshop/aml/datasets/[id]/preview.get.ts +68 -0
  876. package/server/api/workshop/aml/datasets/[id].get.ts +24 -0
  877. package/server/api/workshop/aml/datasets/index.get.ts +20 -0
  878. package/server/api/workshop/aml/datasets/index.post.ts +27 -0
  879. package/server/api/workshop/aml/experiments/index.get.ts +35 -0
  880. package/server/api/workshop/aml/index.get.ts +24 -0
  881. package/server/api/workshop/aml/jobs/[id]/cancel.post.ts +21 -0
  882. package/server/api/workshop/aml/jobs/[id]/logs.get.ts +23 -0
  883. package/server/api/workshop/aml/jobs/[id]/retry.post.ts +20 -0
  884. package/server/api/workshop/aml/jobs/[id].get.ts +23 -0
  885. package/server/api/workshop/aml/jobs/index.get.ts +26 -0
  886. package/server/api/workshop/aml/jobs/index.post.ts +44 -0
  887. package/server/api/workshop/aml/models/[id]/predict.post.ts +24 -0
  888. package/server/api/workshop/aml/models/[id]/promote.post.ts +30 -0
  889. package/server/api/workshop/aml/models/index.get.ts +48 -0
  890. package/server/api/workshop/channels/[id]/plugins/index.get.ts +35 -0
  891. package/server/api/workshop/channels/[id]/plugins/index.put.ts +39 -0
  892. package/server/api/workshop/channels.post.ts +17 -0
  893. package/server/api/workshop/daq/[id].delete.ts +6 -0
  894. package/server/api/workshop/dcw/[id].patch.ts +14 -2
  895. package/server/api/workshop/hitl/respond.post.ts +3 -1
  896. package/server/api/workshop/teams/[id]/plugins/index.get.ts +36 -0
  897. package/server/api/workshop/teams/[id]/plugins/index.put.ts +42 -0
  898. package/server/api/workshop/teams/index.post.ts +13 -0
  899. package/server/api/workshop/users/me.get.ts +5 -0
  900. package/server/api/workshop/ws.ts +14 -2
  901. package/server/data/daqs.json +1648 -123
  902. package/server/data/dcw-lines.json +308 -0
  903. package/server/data/dcw-products.json +147 -0
  904. package/server/data/dcw-recipes.json +891 -1
  905. package/server/data/dcw-rollback.json +11903 -5540
  906. package/server/data/dcw-runs.json +3745 -3559
  907. package/server/data/dcw-templates.json +120 -0
  908. package/server/data/dcw-writes.json +1872 -0
  909. package/server/data/dcws.json +1723 -434
  910. package/server/data/line-runs.json +137 -27
  911. package/server/data/scene-layouts.json +66 -0
  912. package/server/harness/pi-aw-tools.mjs +51 -0
  913. package/server/plugins/aw-plugins.ts +35 -27
  914. package/server/plugins/dev-stability-guard.ts +63 -63
  915. package/server/plugins/system-config.ts +10 -11
  916. package/server/plugins/workshop.ts +10 -0
  917. package/server/plugins-builtin/diag-bridge/client.mjs +84 -0
  918. package/server/plugins-builtin/diag-bridge/i18n.json +72 -0
  919. package/server/plugins-builtin/diag-bridge/index.mjs +661 -0
  920. package/server/plugins-builtin/rag-bridge/client.mjs +108 -0
  921. package/server/plugins-builtin/rag-bridge/i18n.json +60 -0
  922. package/server/plugins-builtin/rag-bridge/index.mjs +411 -0
  923. package/server/services/system-config.ts +610 -396
  924. package/server/services/workshop/agents/adapters/line-spawn.ts +15 -6
  925. package/server/services/workshop/agents/adapters/one-shot-cli-agent.ts +530 -0
  926. package/server/services/workshop/agents/base-agent.ts +210 -0
  927. package/server/services/workshop/agents/binding-authz.ts +57 -0
  928. package/server/services/workshop/agents/claude-agent.ts +546 -30
  929. package/server/services/workshop/agents/codex-agent.ts +729 -822
  930. package/server/services/workshop/agents/copilot-agent.ts +136 -0
  931. package/server/services/workshop/agents/crush-agent.ts +107 -0
  932. package/server/services/workshop/agents/cursor-agent.ts +102 -0
  933. package/server/services/workshop/agents/dsh-agent.ts +578 -670
  934. package/server/services/workshop/agents/gemini-agent.ts +121 -0
  935. package/server/services/workshop/agents/goose-agent.ts +98 -0
  936. package/server/services/workshop/agents/harness-models.ts +305 -270
  937. package/server/services/workshop/agents/hermes-agent.ts +528 -0
  938. package/server/services/workshop/agents/host-tool-bridge.ts +710 -642
  939. package/server/services/workshop/agents/industrial-tools.ts +659 -7
  940. package/server/services/workshop/agents/omp-agent.ts +1193 -1178
  941. package/server/services/workshop/agents/opencode-agent.ts +936 -987
  942. package/server/services/workshop/agents/pi-agent.ts +108 -0
  943. package/server/services/workshop/agents/plugin-tools.ts +10 -1
  944. package/server/services/workshop/agents/qwen-agent.ts +540 -0
  945. package/server/services/workshop/agents/registry.ts +117 -5
  946. package/server/services/workshop/agents/tool-approvals.ts +3 -3
  947. package/server/services/workshop/aml/aml.repo.ts +368 -0
  948. package/server/services/workshop/aml/clean.ts +120 -0
  949. package/server/services/workshop/aml/dataset-builder.ts +491 -0
  950. package/server/services/workshop/aml/gates.ts +121 -0
  951. package/server/services/workshop/aml/job-orchestrator.ts +650 -0
  952. package/server/services/workshop/aml/model-registry.ts +169 -0
  953. package/server/services/workshop/aml/predictor.ts +262 -0
  954. package/server/services/workshop/aml/python/aml_eval.py +171 -0
  955. package/server/services/workshop/aml/python/amlkit.py +120 -0
  956. package/server/services/workshop/aml/python/requirements.txt +7 -0
  957. package/server/services/workshop/aml/python/train-example.py +92 -0
  958. package/server/services/workshop/aml/python-runtime.ts +217 -0
  959. package/server/services/workshop/aml/retention.ts +98 -0
  960. package/server/services/workshop/aml/runtime.ts +45 -0
  961. package/server/services/workshop/aml/spec.ts +63 -0
  962. package/server/services/workshop/aml/stats.ts +140 -0
  963. package/server/services/workshop/daq/bus/mqtt.adapter.ts +8 -1
  964. package/server/services/workshop/daq/daq-controller.ts +147 -19
  965. package/server/services/workshop/daq/daq-node.repo.ts +13 -11
  966. package/server/services/workshop/daq/daq-runtime.ts +11 -0
  967. package/server/services/workshop/daq/drivers.ts +89 -8
  968. package/server/services/workshop/db/aml-team-seeds.ts +118 -0
  969. package/server/services/workshop/db/channel-plugins.repo.ts +91 -0
  970. package/server/services/workshop/db/database.ts +89 -1
  971. package/server/services/workshop/db/memory.repo.ts +31 -0
  972. package/server/services/workshop/db/user.repo.ts +9 -0
  973. package/server/services/workshop/dcw/dcw-controller.ts +33 -7
  974. package/server/services/workshop/dcw/dcw-line.repo.ts +5 -3
  975. package/server/services/workshop/dcw/dcw-node.repo.ts +4 -4
  976. package/server/services/workshop/dcw/dcw-product.repo.ts +8 -8
  977. package/server/services/workshop/dcw/dcw-recipe.repo.ts +6 -7
  978. package/server/services/workshop/dcw/dcw-runtime.ts +16 -2
  979. package/server/services/workshop/dcw/dcw-templates.ts +4 -4
  980. package/server/services/workshop/dcw/line-run.ts +5 -5
  981. package/server/services/workshop/dcw/recipe-rollback-manager.ts +3 -1
  982. package/server/services/workshop/dcw/recipe-rollback.repo.ts +155 -52
  983. package/server/services/workshop/logger.ts +145 -3
  984. package/server/services/workshop/plugins/host.mjs +857 -518
  985. package/server/services/workshop/prompts/loader.ts +32 -6
  986. package/server/services/workshop/runtime/manager.ts +3016 -2968
  987. package/server/services/workshop/runtime/scheduler-loop.ts +18 -1
  988. package/server/services/workshop/scene/scene-layout.repo.ts +5 -5
  989. package/server/services/workshop/settings.ts +64 -0
  990. package/shared/config/engine.mjs +5 -0
  991. package/shared/config/groups.mjs +220 -0
  992. package/shared/config/home.mjs +11 -2
  993. package/shared/config/schema.json +31 -2
  994. package/shared/daq-protocol.ts +6 -0
  995. package/shared/lru.mjs +94 -0
  996. package/shared/workshop-protocol.ts +2 -2
  997. package/.output/public/_nuxt/BAfp6tmu.js +0 -14
  998. package/.output/public/_nuxt/BUcmySDa2.js +0 -209
  999. package/.output/public/_nuxt/Bc-_IsBP.js +0 -19
  1000. package/.output/public/_nuxt/BvNJUu3s.js +0 -1
  1001. package/.output/public/_nuxt/BytVi9VX2.js +0 -4
  1002. package/.output/public/_nuxt/C1CSiSBN.js +0 -1
  1003. package/.output/public/_nuxt/CAGL7TNK.js +0 -1
  1004. package/.output/public/_nuxt/CDLv-n51.js +0 -1
  1005. package/.output/public/_nuxt/CJviSvm-.js +0 -1
  1006. package/.output/public/_nuxt/CLZWFhZC.js +0 -1
  1007. package/.output/public/_nuxt/CYzpZzB_.js +0 -1
  1008. package/.output/public/_nuxt/Cb3SnTM8.js +0 -1
  1009. package/.output/public/_nuxt/CjXIpPMR.js +0 -1
  1010. package/.output/public/_nuxt/CxY6LfeN.js +0 -1
  1011. package/.output/public/_nuxt/D6HDb-vN2.js +0 -1
  1012. package/.output/public/_nuxt/D95h62Jn.js +0 -1
  1013. package/.output/public/_nuxt/DAR70Lf52.js +0 -1
  1014. package/.output/public/_nuxt/DGAOugLt.js +0 -1
  1015. package/.output/public/_nuxt/DKHcFE1i.js +0 -1
  1016. package/.output/public/_nuxt/DSa2O56y.js +0 -1
  1017. package/.output/public/_nuxt/DUToq-k_.js +0 -1
  1018. package/.output/public/_nuxt/Dfe8vXdG.js +0 -1
  1019. package/.output/public/_nuxt/DjtE7AYt.js +0 -1
  1020. package/.output/public/_nuxt/DvgKXPgu2.js +0 -13
  1021. package/.output/public/_nuxt/JOwsShod.js +0 -2
  1022. package/.output/public/_nuxt/X6IraCTB.js +0 -1
  1023. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +0 -1
  1024. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +0 -1
  1025. package/.output/public/_nuxt/agents.CB9Ck7VQ.css +0 -1
  1026. package/.output/public/_nuxt/b50gYVZl.js +0 -1
  1027. package/.output/public/_nuxt/builds/meta/024de5f7-6a10-4f53-82ab-bc65f3ec9e35.json +0 -1
  1028. package/.output/public/_nuxt/daq.3OKj58HH.css +0 -1
  1029. package/.output/public/_nuxt/default.BbgdTDCk.css +0 -1
  1030. package/.output/public/_nuxt/entry.AZM1Culo.css +0 -1
  1031. package/.output/public/_nuxt/pages.CG8UJ2TK.css +0 -1
  1032. package/.output/public/_nuxt/plugins.DpCuwaJt.css +0 -1
  1033. package/.output/public/_nuxt/settings.BqMF2nfj.css +0 -1
  1034. package/.output/public/_nuxt/teams.DN0pAGGu.css +0 -1
  1035. package/.output/server/chunks/build/_id_-DQDqj-cZ.mjs.map +0 -1
  1036. package/.output/server/chunks/build/_id_-DY6v6sqB.mjs.map +0 -1
  1037. package/.output/server/chunks/build/agents-GnmUGZir.mjs.map +0 -1
  1038. package/.output/server/chunks/build/alert-qJnjyRcP.mjs.map +0 -1
  1039. package/.output/server/chunks/build/channel-templates-B4z6v8Z5.mjs.map +0 -1
  1040. package/.output/server/chunks/build/daq-B-3xCp_2.mjs.map +0 -1
  1041. package/.output/server/chunks/build/dcw-BL2dhuz7.mjs.map +0 -1
  1042. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +0 -1
  1043. package/.output/server/chunks/build/pages-Dc2H1QFu.mjs.map +0 -1
  1044. package/.output/server/chunks/build/permissions-BTRW2CVd.mjs.map +0 -1
  1045. package/.output/server/chunks/build/plugins-DZR0T4Mh.mjs.map +0 -1
  1046. package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs +0 -78
  1047. package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs.map +0 -1
  1048. package/.output/server/chunks/build/settings-UfGyDgM7.mjs +0 -567
  1049. package/.output/server/chunks/build/settings-UfGyDgM7.mjs.map +0 -1
  1050. package/.output/server/chunks/build/tag-NO9jEqKy.mjs.map +0 -1
  1051. package/.output/server/chunks/build/teams-Cbg27MWW.mjs.map +0 -1
  1052. package/.output/server/chunks/build/tokens-Bmm6rDfj.mjs.map +0 -1
  1053. package/.output/server/chunks/build/town-Dsh0jlwZ.mjs.map +0 -1
  1054. package/.output/server/chunks/build/useDaqStream-DkRL3tEW.mjs.map +0 -1
  1055. package/.output/server/chunks/build/useDcwStream-DyB2ufQI.mjs.map +0 -1
  1056. package/.output/server/chunks/build/users-B50HHrfi.mjs.map +0 -1
  1057. /package/.output/public/_nuxt/{ORt9oDIy.js → ORt9oDIy2.js} +0 -0
@@ -1 +0,0 @@
1
- import{I as e,U as t,V as n,W as r,q as i}from"./rqZ-1SoP.js";import{C as a,G as o,H as s,Ht as c,St as l,Ut as u,Wt as d,a as f,b as p,f as m,ft as h,g,h as _,mt as v,nt as y,p as b,rt as x,t as S,x as C}from"./BSCpFtzG.js";import{t as ee}from"./D8CqF0yy.js";import{n as te}from"./BeIfu4N3.js";import{t as w}from"./G0qIw7Gq2.js";import{r as T,t as ne}from"./DAR70Lf52.js";var re={class:`page`},ie={class:`aw-page-head`},ae={class:`sub`},oe={class:`badges mono`},se=[`title`],ce={class:`badge`},le={key:0,class:`banner bad`},ue={class:`fleet-filter`},de={class:`aw-seg`},fe=[`placeholder`],pe={class:`line-grid aw-stagger`},me={class:`lc-head`},he={class:`lc-name`},ge=[`title`,`onClick`],_e=[`title`,`onClick`],ve={key:0,class:`lc-run mono`},ye={class:`lc-stats mono`},be={class:`lc-ctl`},xe=[`onUpdate:modelValue`,`disabled`,`title`],Se={value:``},Ce=[`value`,`disabled`],we=[`disabled`,`onClick`],Te=[`disabled`,`onClick`],Ee={key:1,class:`banner`},De={key:2,class:`banner`},Oe={class:`modal`},ke={class:`m-title`},Ae={class:`f`},je=[`placeholder`],Me={class:`f`},Ne=[`placeholder`],Pe={class:`f`},Fe={class:`color-row`},Ie=[`onClick`],Le={class:`dim`},Re={key:0,class:`m-err`},ze={class:`m-actions`},Be=[`disabled`],Ve={class:`modal`},He={class:`m-title`},Ue={class:`f`},We=[`placeholder`],Ge={class:`f`},Ke=[`placeholder`],qe={class:`f`},Je={class:`color-row`},Ye=[`onClick`],Xe={class:`dim`},Ze={key:0,class:`m-err`},Qe={class:`m-actions`},$e=[`disabled`],et={class:`modal`},tt={class:`m-title danger-title`},nt={class:`del-summary`},rt={class:`del-purge`},it={key:0,class:`m-err`},at={class:`m-actions`},ot=[`disabled`],st={class:`modal wide`},ct={class:`m-title`},lt={class:`dim mono`},ut={class:`dim tpl-hint`},dt={class:`tpl-list`},ft=[`title`],pt={class:`mono dim`},mt={key:0,class:`tpl-sem`},ht=[`onClick`],gt={class:`sec-label`},_t={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},E=S(a({__name:`index`,setup(a){let{t:S}=te(),E=ne();E.load();let D=m(()=>E.lines.map(e=>({line:e,nodes:E.nodes.filter(t=>t.lineId===e.id).length,products:E.products.filter(t=>t.lineId===e.id).length,recipes:E.recipes.filter(t=>t.lineId===e.id).length}))),O=m(()=>E.nodes.filter(e=>!e.lineId).length+E.products.filter(e=>!e.lineId).length),k=v(`all`),A=v(``),j=m(()=>D.value.filter(e=>E.lineStateOf(e.line.id).active).length),M=m(()=>D.value.filter(e=>{let t=E.lineStateOf(e.line.id).active;if(k.value===`running`&&!t||k.value===`idle`&&t)return!1;let n=A.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),N=v(!1),P=v(!1),F=v(``),I=h({name:``,description:``,color:``}),L=m(()=>T[E.lines.length%T.length]??`#3aa0ff`);function Ft(){I.name=``,I.description=``,I.color=``,F.value=``,N.value=!0}async function It(){P.value=!0,F.value=``;try{await E.createLine({name:I.name.trim(),description:I.description.trim(),color:I.color||void 0}),N.value=!1}catch(e){F.value=w(e)}finally{P.value=!1}}let R=v(``),z=v(``),B=h({});async function Lt(e){R.value=e.line.id,z.value=``;try{let t=B[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await E.startLine(e.line.id,t)}catch(e){z.value=w(e)}finally{R.value=``}}async function Rt(e){R.value=e.line.id,z.value=``;try{await E.stopLine(e.line.id)}catch(e){z.value=w(e)}finally{R.value=``}}function V(e){return E.recipes.filter(t=>t.lineId===e)}let H=v(!1),U=v(!1),W=v(``),G=v(!0),K=v(null);function zt(e){K.value=e,G.value=!0,W.value=``,H.value=!0}async function Bt(){if(K.value){U.value=!0,W.value=``;try{await E.removeLine(K.value.line.id,G.value),H.value=!1}catch(e){W.value=w(e)}finally{U.value=!1}}}let q=v(!1),J=v(!1),Y=v(``),X=h({id:``,name:``,description:``,color:``});function Vt(e){X.id=e.line.id,X.name=e.line.name,X.description=e.line.description,X.color=e.line.color,Y.value=``,q.value=!0}async function Ht(){J.value=!0,Y.value=``;try{await E.updateLine(X.id,{name:X.name.trim(),description:X.description.trim(),color:X.color||void 0}),q.value=!1}catch(e){Y.value=w(e)}finally{J.value=!1}}let Z=v(!1),Q=v(``),$=h({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Wt(){Q.value=``;try{if(!$.name.trim())throw Error(S(`dcw.k6ugbw2046`));if($.min===``||$.max===``)throw Error(S(`dcw.k13awowo047`));await E.createTemplate({name:$.name.trim(),ch:$.ch.trim()||$.name.trim(),code:$.code.trim()||`CUSTOM`,unit:$.unit.trim()||`-`,min:Number($.min),max:Number($.max),decimals:Number($.decimals)||0,icon:$.icon,semantics:$.semantics.trim()||void 0}),$.name=``,$.ch=``,$.code=``,$.unit=``,$.min=``,$.max=``}catch(e){Q.value=w(e)}}async function Gt(e){Q.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=E.templates.findIndex(t=>t.key===e);t>=0&&E.templates.splice(t,1)}catch(e){Q.value=w(e)}}let Kt=m(()=>E.templates.filter(e=>e.builtin).length);return(a,m)=>{let h=ee;return s(),g(`div`,re,[b(`div`,ie,[b(`div`,null,[m[27]||=b(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),b(`h1`,null,d(a.$t(`dcw.k1b2tk5c009`)),1),b(`p`,ae,d(a.$t(`dcw.k5q0aqi010`)),1)]),b(`div`,oe,[O.value?(s(),g(`span`,{key:0,class:`badge warn-badge`,title:a.$t(`dcw.k1i5a9vw001`)},d(a.$t(`dcw.k3ootr6049`))+` `+d(O.value),9,se)):_(``,!0),b(`span`,ce,d(a.$t(`dcw.k3wj9n050`))+` `+d(l(E).lines.length),1),b(`button`,{class:`badge tpl-btn`,onClick:m[0]||=e=>Z.value=!0},d(a.$t(`dcw.k11nndsp051`))+` `+d(l(E).templates.length),1)])]),z.value?(s(),g(`p`,le,d(z.value),1)):_(``,!0),b(`div`,ue,[b(`div`,de,[b(`button`,{class:c({on:k.value===`all`}),onClick:m[1]||=e=>k.value=`all`},d(a.$t(`common.all`))+` `+d(D.value.length),3),b(`button`,{class:c({on:k.value===`running`}),onClick:m[2]||=e=>k.value=`running`},d(a.$t(`dcw.k1eox1el055`))+` `+d(j.value),3),b(`button`,{class:c({on:k.value===`idle`}),onClick:m[3]||=e=>k.value=`idle`},d(a.$t(`dcw.k149r6y7059`))+` `+d(D.value.length-j.value),3)]),x(b(`input`,{"onUpdate:modelValue":m[4]||=e=>A.value=e,class:`inp fleet-search`,type:`search`,placeholder:a.$t(`dcw.filterSearchPh`)},null,8,fe),[[r,A.value]])]),b(`div`,pe,[(s(!0),g(f,null,o(M.value,e=>(s(),g(`div`,{key:e.line.id,class:c([`line-card aw-liftable`,{idle:!l(E).lineStateOf(e.line.id).active}]),style:u({"--lc":e.line.color})},[b(`div`,me,[m[30]||=b(`span`,{class:`lc-dot`},null,-1),b(`b`,he,d(e.line.name),1),b(`span`,{class:c([`lc-state`,{on:l(E).lineStateOf(e.line.id).active}])},d(l(E).lineStateOf(e.line.id).active?a.$t(`dcw.k1eox1el055`):a.$t(`dcw.k149r6y7059`)),3),b(`button`,{class:`lc-act`,title:a.$t(`common.edit`),onClick:t=>Vt(e)},[...m[28]||=[b(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ge),b(`button`,{class:`lc-act danger`,title:a.$t(`dcw.k3xakp026`),onClick:t=>zt(e)},[...m[29]||=[b(`span`,{class:`i-tabler-trash`},null,-1)]],8,_e)]),l(E).lineStateOf(e.line.id).active?(s(),g(`small`,ve,d(l(E).lineStateOf(e.line.id).productName)+` · `+d(l(E).lineStateOf(e.line.id).recipeName)+` · `+d(a.$t(`dcw.k3zz0f052`))+` `+d(l(E).lineStateOf(e.line.id).taggedSamples),1)):(s(),g(`small`,{key:1,class:c([`lc-run dim`,{ph:!e.line.description}])},d(e.line.description||a.$t(`dcw.k18moyq1056`)),3)),b(`div`,ye,[b(`span`,null,[p(d(a.$t(`dcw.k45uio011`))+` `,1),b(`b`,null,d(e.nodes),1)]),b(`span`,null,[p(d(a.$t(`dcw.k3waz1012`))+` `,1),b(`b`,null,d(e.products),1)]),b(`span`,null,[p(d(a.$t(`dcw.k48grv013`))+` `,1),b(`b`,null,d(e.recipes),1)])]),b(`div`,be,[l(E).lineStateOf(e.line.id).active?(s(),g(`button`,{key:1,class:`pill-btn stop`,disabled:R.value===e.line.id,onClick:t=>Rt(e)},d(a.$t(`dcw.k148rclf015`)),9,Te)):(s(),g(f,{key:0},[x(b(`select`,{"onUpdate:modelValue":t=>B[e.line.id]=t,class:`inp`,disabled:V(e.line.id).length===0,title:a.$t(`dcw.k1dhaby4003`)},[b(`option`,Se,d(V(e.line.id).length?a.$t(`dcw.kutxzsz057`):a.$t(`dcw.k1elczt9060`)),1),(s(!0),g(f,null,o(V(e.line.id),e=>(s(),g(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},d(e.name)+`(`+d(e.params.length)+`) `,9,Ce))),128))],8,xe),[[t,B[e.line.id]]]),b(`button`,{class:`pill-btn`,disabled:R.value===e.line.id||!B[e.line.id],onClick:t=>Lt(e)},d(a.$t(`dcw.k149b4vg014`)),9,we)],64))]),C(h,{class:`lc-manage`,to:`/dcw/${e.line.id}`},{default:y(()=>[p(d(a.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),b(`button`,{class:`line-card new-card`,onClick:Ft},[m[31]||=b(`span`,{class:`i-tabler-plus`},null,-1),p(` `+d(a.$t(`dcw.k1efe391017`))+` `,1),b(`small`,null,d(a.$t(`dcw.k19dlbli053`)),1)])]),l(E).loaded&&l(E).lines.length===0?(s(),g(`p`,Ee,d(a.$t(`dcw.k1sk85vs018`)),1)):l(E).loaded&&M.value.length===0?(s(),g(`p`,De,d(a.$t(`dcw.filterEmpty`)),1)):_(``,!0),C(e,{name:`modal`},{default:y(()=>[N.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[8]||=i(e=>N.value=!1,[`self`])},[b(`div`,Oe,[b(`h3`,ke,d(a.$t(`dcw.k1efe391017`)),1),b(`label`,Ae,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[32]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[5]||=e=>I.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,je),[[r,I.name]])]),b(`label`,Me,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[6]||=e=>I.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ne),[[r,I.description]])]),b(`div`,Pe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Fe,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:I.color===e}]),style:u({background:e}),onClick:t=>I.color=I.color===e?``:e},null,14,Ie))),128)),b(`small`,Le,d(I.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),F.value?(s(),g(`p`,Re,d(F.value),1)):_(``,!0),b(`div`,ze,[b(`button`,{class:`mini-btn`,onClick:m[7]||=e=>N.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:P.value||!I.name.trim(),onClick:It},d(a.$t(`dcw.k3wzi2023`)),9,Be)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[q.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[12]||=i(e=>q.value=!1,[`self`])},[b(`div`,Ve,[b(`h3`,He,d(a.$t(`dcw.k5tq8wc071`)),1),b(`label`,Ue,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[33]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[9]||=e=>X.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,We),[[r,X.name]])]),b(`label`,Ge,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[10]||=e=>X.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ke),[[r,X.description]])]),b(`div`,qe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Je,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:X.color===e}]),style:u({background:e}),onClick:t=>X.color=X.color===e?``:e},null,14,Ye))),128)),b(`small`,Xe,d(X.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),Y.value?(s(),g(`p`,Ze,d(Y.value),1)):_(``,!0),b(`div`,Qe,[b(`button`,{class:`mini-btn`,onClick:m[11]||=e=>q.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:J.value||!X.name.trim(),onClick:Ht},d(a.$t(`common.save`)),9,$e)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[H.value&&K.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[15]||=i(e=>H.value=!1,[`self`])},[b(`div`,et,[b(`h3`,tt,[m[34]||=b(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(` `+d(a.$t(`dcw.k7xq2mfd063`,{p0:K.value.line.name})),1)]),b(`p`,nt,d(G.value?a.$t(`dcw.k4r7nbd073`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes}):a.$t(`dcw.k1gp649b062`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes})),1),b(`label`,rt,[x(b(`input`,{"onUpdate:modelValue":m[13]||=e=>G.value=e,type:`checkbox`},null,512),[[n,G.value]]),b(`span`,null,d(a.$t(`dcw.k9m2vxa072`)),1)]),W.value?(s(),g(`p`,it,d(W.value),1)):_(``,!0),b(`div`,at,[b(`button`,{class:`mini-btn`,onClick:m[14]||=e=>H.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn danger`,disabled:U.value,onClick:Bt},d(a.$t(`dcw.k3xakp026`)),9,ot)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[Z.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[26]||=i(e=>Z.value=!1,[`self`])},[b(`div`,st,[b(`h3`,ct,[p(d(a.$t(`dcw.k11oadmx024`))+` `,1),b(`small`,lt,d(a.$t(`dcw.k3x23c054`))+` `+d(Kt.value)+` · `+d(a.$t(`dcw.k3t616a058`))+` `+d(l(E).templates.length-Kt.value),1)]),b(`p`,ut,d(a.$t(`dcw.k2hlav5025`)),1),b(`div`,dt,[(s(!0),g(f,null,o(l(E).templates,e=>(s(),g(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[b(`b`,null,d(e.name),1),b(`small`,pt,d(e.code)+` · `+d(e.min)+`~`+d(e.max)+` `+d(e.unit),1),e.semantics?(s(),g(`small`,mt,d(e.semantics.slice(0,40))+d(e.semantics.length>40?`…`:``),1)):_(``,!0),b(`span`,{class:c([`tpl-tag`,{builtin:e.builtin}])},d(e.builtin?a.$t(`dcw.k3x23c054`):a.$t(`dcw.k3t616a058`)),3),e.builtin?_(``,!0):(s(),g(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Gt(e.key)},d(a.$t(`dcw.k3xakp026`)),9,ht))],8,ft))),128))]),b(`p`,gt,d(a.$t(`dcw.k169eb4s027`)),1),b(`div`,_t,[b(`label`,vt,[b(`span`,null,[p(d(a.$t(`dcw.k3xhia028`)),1),m[35]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[16]||=e=>$.name=e,class:`inp`,placeholder:a.$t(`dcw.k1tooi3o006`)},null,8,yt),[[r,$.name]])]),b(`label`,bt,[b(`span`,null,d(a.$t(`dcw.k1bqk219029`)),1),x(b(`input`,{"onUpdate:modelValue":m[17]||=e=>$.ch=e,class:`inp`,placeholder:a.$t(`dcw.k698qz0007`)},null,8,xt),[[r,$.ch]])]),b(`label`,St,[b(`span`,null,d(a.$t(`dcw.k1ayxrqb030`)),1),x(b(`input`,{"onUpdate:modelValue":m[18]||=e=>$.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[r,$.code]])]),b(`label`,Ct,[b(`span`,null,d(a.$t(`dcw.k3x4ef031`)),1),x(b(`input`,{"onUpdate:modelValue":m[19]||=e=>$.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[r,$.unit]])]),b(`label`,wt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv5m032`)),1),m[36]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[20]||=e=>$.min=e,type:`number`,class:`inp`},null,512),[[r,$.min,void 0,{number:!0}]])]),b(`label`,Tt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv4p033`)),1),m[37]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[21]||=e=>$.max=e,type:`number`,class:`inp`},null,512),[[r,$.max,void 0,{number:!0}]])]),b(`label`,Et,[b(`span`,null,d(a.$t(`dcw.k3mxmcx034`)),1),x(b(`input`,{"onUpdate:modelValue":m[22]||=e=>$.decimals=e,type:`number`,class:`inp`},null,512),[[r,$.decimals,void 0,{number:!0}]])]),b(`label`,Dt,[b(`span`,null,d(a.$t(`dcw.k3xx56035`)),1),x(b(`select`,{"onUpdate:modelValue":m[23]||=e=>$.icon=e,class:`inp`},[(s(),g(f,null,o(Ut,e=>b(`option`,{key:e.key,value:e.key},d(e.label),9,Ot)),64))],512),[[t,$.icon]])])]),b(`label`,kt,[b(`span`,null,d(a.$t(`dcw.k1b6qorg036`)),1),x(b(`textarea`,{"onUpdate:modelValue":m[24]||=e=>$.semantics=e,class:`inp`,rows:`3`,placeholder:a.$t(`dcw.k1qdnfzc008`)},null,8,At),[[r,$.semantics]])]),Q.value?(s(),g(`p`,jt,d(Q.value),1)):_(``,!0),b(`div`,Mt,[b(`button`,{class:`mini-btn`,onClick:m[25]||=e=>Z.value=!1},d(a.$t(`dcw.k3x62t037`)),1),b(`button`,{class:`pill-btn`,disabled:!$.name.trim()||$.min===``||$.max===``,onClick:Wt},d(a.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):_(``,!0)]),_:1}),l(E).error?(s(),g(`p`,Pt,d(l(E).error),1)):_(``,!0)])}}}),[[`__scopeId`,`data-v-a200e0d3`]]);export{E as default};
@@ -1,4 +0,0 @@
1
- import{w as e}from"./rqZ-1SoP.js";import{f as t,mt as n}from"./BSCpFtzG.js";import{i as r,t as i}from"./C3tCneTM.js";import{t as a}from"./BZGNTgTQ2.js";var o=r(`runtime-config`,()=>{let r=n([]),o=n({}),s=n({}),c=n({}),l=n(``),u=n(!1),d=n(!1),f=n(null),p=t(()=>{let e=[];for(let t of r.value){let n=e.find(e=>e.group===t.group);n?n.items.push(t):e.push({group:t.group,items:[t]})}return e});function m(e){return c.value[e]??`config.yml`}function h(e){return o.value[e]}async function g(){d.value=!0;try{let e=await a().get(`/system/settings`);_(e.data??e)}catch(e){console.warn(`[runtime-config] 读取设置失败:`,e)}finally{d.value=!1}}function _(e){r.value=e.descriptors??[],o.value=e.effective??{},s.value=e.overrides??{},c.value=e.sources??{},l.value=e.settingsPath??``,u.value=!0}async function v(e){let t=await a().request({method:`PATCH`,url:`/system/settings`,data:{override:e}}),n=t.data==null?t:t.data;return n.effective&&(o.value=n.effective),n.sources&&(c.value=n.sources),n}async function y(){let e=await a().post(`/system/settings/reset`),t=e.data??e;return t.changed?.length&&await g(),t}let b=null;function x(){C();let t=e().public.apiBase||`/api`,n=i(`token`).value??``;b=new AbortController,(async()=>{try{let e=await fetch(`${t}/system/settings/events`,{headers:n?{Authorization:`Bearer ${n}`}:{},signal:b?.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{S(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 S(e){f.value=e,e.effective&&(o.value=e.effective),e.sources&&(c.value=e.sources),e.overrides&&(s.value=e.overrides)}function C(){b&&=(b.abort(),null)}return{descriptors:r,effective:o,overrides:s,sources:c,settingsPath:l,loaded:u,loading:d,lastEvent:f,groups:p,sourceOf:m,valueOf:h,fetchAll:g,patch:v,resetAll:y,startEvents:x,stopEvents:C}});export{o as t};
@@ -1 +0,0 @@
1
- import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";import{i as r}from"./DAR70Lf52.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=e([]),o=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,nodesTotal:0,nodesOnline:0}),s=e({tsdb:`…`,queue:`…`,drivers:[],driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),d=e(a.map(e=>({...e}))),f=e({});function p(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):r.push({...e,hist:[]})}let m=[],h=null;function g(){h=null;let e=m;if(m=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=r.find(e=>e.id===n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=r.find(t=>t.id===e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function _(e){m.push(e),h||=setTimeout(g,500)}function v(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1);return}p(e.node)}}function y(e){d.splice(0,d.length,...e.map(e=>({...e})))}function b(e){if(!e.template)return;let t=d.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&d.splice(t,1);return}t>=0?d[t]={...e.template}:d.push({...e.template})}function x(e){let t=Date.parse(e.at),n=f[e.nodeId]??(f[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let i=r.find(t=>t.id===e.nodeId);i&&(i.value=e.metrics?.avg??i.value,e.state&&(i.state=e.state),i.lastAt=e.at)}let S=0,C=null;function w(){S++,S===1&&(C=n().subscribe(T));let e=!1;return()=>{e||(e=!0,--S===0&&(C?.(),C=null))}}function T(e){if(e.type===`daq.reading`)_(e.payload);else if(e.type===`daq.frame`)x(e.payload);else if(e.type===`daq.node.changed`)v(e.payload);else if(e.type===`daq.controller`)Object.assign(o,e.payload);else if(e.type===`daq.template.changed`)b(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;i.some(e=>e.id===t.id)||i.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=i.findIndex(e=>e.id===t.id);e>=0&&i.splice(e,1)}}}async function E(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),Object.assign(o,e.controller),Object.assign(s,e.meta??{}),s.driverAvailable=e.driverAvailable??{},s.infra=e.infra,e.templates?.length&&y(e.templates),W.loaded=!0,W.error=``}catch(e){W.error=t(e)}}async function D(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return p(n.node),n.node}async function O(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function k(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function A(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1)}async function j(e,t){p((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function M(e,t){p((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function N(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function P(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function F(){try{let e=await u(`/alarms?scope=open&limit=50`);i.splice(0,i.length,...e.alarms??[])}catch{}}async function I(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await F()}async function L(){let e=await u(`/infra/reconnect`,{method:`POST`});return s.infra=e.infra,await E(),e.infra}async function R(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(o,r.controller)}async function z(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function B(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return f[e]=r.frames??[],f[e]}async function V(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return b({op:`added`,template:t.template}),t.template}async function H(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return b({op:`updated`,template:n.template}),n.template}async function U(e){await u(`/templates/${e}`,{method:`DELETE`}),b({op:`removed`,template:{key:e}})}let W=e({nodes:r,controller:o,meta:s,templates:d,loaded:!1,error:``,ensureWsFeed:w,load:E,createFromTemplate:D,createTemplate:V,updateTemplate:H,removeTemplate:U,testDriver:N,testNode:P,reconnectInfra:L,patchNode:O,saveTransform:k,removeNode:A,bindNode:j,setNodeBindings:M,controllerAction:R,alarms:i,fetchAlarms:F,ackAlarm:I,nodeById:e=>r.find(t=>t.id===e),samplesOf:z,fetchFrames:B,frames:f,framesOf:e=>f[e]??[],templateOf:e=>d.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return W},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
@@ -1 +0,0 @@
1
- import{K as e}from"./rqZ-1SoP.js";import{C as t,H as n,Ht as r,St as i,Wt as a,a as o,b as s,et as c,f as l,g as u,h as d,lt as f,m as p,mt as m,nt as h,p as g,t as _,x as v}from"./BSCpFtzG.js";import{d as ee}from"./-6OnbLFb.js";import{n as y}from"./B5S_UyaC.js";import{n as b}from"./BeIfu4N3.js";import{t as te}from"./VLI2Zy4t.js";import{t as ne}from"./BMb80_tm.js";import{r as x}from"./D-Ca4BGY.js";import{t as re}from"./Cn3J3NXR.js";import{t as S}from"./BCJFMBQ6.js";import{t as C}from"./DoAlYsiF.js";import{t as w}from"./Cb3SnTM8.js";import{t as T}from"./6PZPfFcO.js";import{t as ie}from"./ORt9oDIy.js";import{t as ae}from"./C9f8QMp12.js";import{t as E}from"./BcrN7QEl2.js";import{t as D}from"./G0qIw7Gq2.js";import{t as O}from"./CNs_Ozdc2.js";var oe={class:`page`},se={key:0,class:`auth-gate`},ce={class:`sub`},le={class:`aw-page-head`},ue={class:`sub`},de={class:`font-medium`},fe={key:1,class:`tok-cell`},pe=[`title`],me={class:`once-banner`},he={class:`raw-row`},ge={class:`raw`},_e=[`title`],ve=[`title`],ye={class:`once-meta`},k=_(t({__name:`tokens`,setup(t){let{t:_}=b();O({layout:`default`});let k=E(),A=m([]),j=m(!1),M=m(!1),N=m(``),P=m(!1),F=m(``),I=m(``),L=m(!1),R=m(``),z=m(``),B=m(!1),V=async()=>{if(k.isLoggedIn){j.value=!0;try{A.value=await k.listTokens()}catch(e){x.error(e instanceof Error?e.message:_(`tokens.k19jvk54013`))}finally{j.value=!1}}};c(()=>k.isLoggedIn,e=>{e?V():A.value=[]},{immediate:!0});let H=async()=>{P.value=!0;try{let e=await k.createToken(N.value);F.value=e.token,I.value=N.value,M.value=!1,N.value=``,await V()}catch(e){x.error(D(e))}finally{P.value=!1}},U=async()=>{if(!z.value.trim()){x.warning(_(`tokens.k169z26g014`));return}B.value=!0;try{await k.renameToken(R.value,z.value),L.value=!1,await V(),x.success(_(`tokens.k3n9aij015`))}catch(e){x.error(D(e))}finally{B.value=!1}},be=e=>{let t=e.id;if(!t)return;let n=t===k.user?.tokenId;(async()=>{try{if(await k.revokeToken(t),x.success(_(`tokens.k3n64kh016`)),n)return;await V()}catch(e){x.error(D(e))}})()},W=m(!1),G=m(!1),xe=l(()=>{let e=F.value;return e?`${e.slice(0,6)}${`•`.repeat(Math.max(12,e.length-10))}${e.slice(-4)}`:``}),Se=()=>{W.value=!W.value},K=async e=>{try{return await navigator.clipboard.writeText(e),!0}catch{try{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=document.execCommand(`copy`);return document.body.removeChild(t),n}catch{return!1}}},Ce=async()=>{await K(F.value)?(G.value=!0,setTimeout(()=>{G.value=!1},1600)):x.error(_(`tokens.kjtcn2h017`))},q=()=>{F.value=``,W.value=!1,G.value=!1},J=m({}),Y=m(``),X=m(``),Z=e=>e in J.value,we=e=>Z(e.id)?J.value[e.id]:e.preview??`ut-${`•`.repeat(14)}`,Q=async e=>{if(Z(e.id)){Reflect.deleteProperty(J.value,e.id);return}if(!e.hasPlain){x.warning(_(`tokens.kkpgzo8018`));return}Y.value=e.id;try{let t=await k.revealToken(e.id);t&&(J.value[e.id]=t)}catch(e){x.error(e instanceof Error?e.message:_(`tokens.k1gj9ls019`))}finally{Y.value=``}},Te=async e=>{let t=J.value[e.id]??null;if(!t){if(!e.hasPlain){x.warning(_(`tokens.kr5ovor020`));return}Y.value=e.id;try{t=await k.revealToken(e.id)}catch(e){x.error(e instanceof Error?e.message:_(`tokens.kubtby5021`));return}finally{Y.value=``}}t&&await K(t)?(X.value=e.id,setTimeout(()=>{X.value=``},1600)):x.error(_(`tokens.kgkfcr0022`))},$=e=>e?e.replace(`T`,` `).slice(0,19):`-`,Ee=e=>{R.value=e.id??``,z.value=e.label??``,L.value=!0},De=[{title:_(`tokens.k41416002`),key:`label`,dataIndex:`label`},{title:`Token`,key:`token`,width:360},{title:_(`tokens.k1bg95gk023`),key:`createdAt`,dataIndex:`createdAt`,width:170},{title:_(`tokens.k1euotul024`),key:`lastUsedAt`,dataIndex:`lastUsedAt`,width:200},{title:_(`tokens.k40aa6025`),key:`action`,width:170}];return y({title:()=>_(`titles.tokens`)}),(t,c)=>{let l=te,m=T,_=S,y=ie,b=w,x=ne,E=ae,D=re,O=C;return n(),u(`div`,oe,[i(k).isLoggedIn?(n(),u(o,{key:1},[g(`div`,le,[g(`div`,null,[c[6]||=g(`p`,{class:`aw-kicker`},` agentworkshop / api tokens `,-1),c[7]||=g(`h1`,null,`API Token`,-1),g(`p`,ue,a(i(k).user?.name)+` · `+a(t.$t(`tokens.k1upppaw026`)),1)]),v(y,{class:`head-actions`},{default:h(()=>[i(k).user?.tokenId?(n(),p(_,{key:0,color:`green`},{default:h(()=>[s(a(t.$t(`tokens.khcxmsc006`)),1)]),_:1})):d(``,!0),v(l,{type:`primary`,onClick:c[1]||=e=>M.value=!0},{default:h(()=>[c[8]||=g(`span`,{class:`i-tabler-plus`},null,-1),s(` `+a(t.$t(`chips.issue`)),1)]),_:1})]),_:1})]),v(m,{bordered:!1,class:`table-card`},{default:h(()=>[v(E,{spinning:i(j)},{default:h(()=>[v(x,{columns:De,"data-source":i(A),pagination:!1,"row-key":`id`},{bodyCell:h(({column:e,record:f})=>[e.key===`label`?(n(),p(y,{key:0},{default:h(()=>[c[9]||=g(`span`,{class:`i-tabler-key text-primary`},null,-1),g(`span`,de,a(f.label||t.$t(`tokens.kj3mklm028`)),1),f.id===i(k).user?.tokenId?(n(),p(_,{key:0,color:`green`},{default:h(()=>[s(a(t.$t(`tokens.k1defr98007`)),1)]),_:1})):d(``,!0)]),_:2},1024)):e.key===`token`?(n(),u(`div`,fe,[g(`code`,{class:r([`tok-val`,{revealed:Z(f.id)}]),title:Z(f.id)?`已显示明文,点击眼睛遮回`:`掩码预览`},a(we(f)),11,pe),f.hasPlain?(n(),p(l,{key:0,type:`text`,size:`small`,class:`tok-op`,loading:i(Y)===f.id,title:Z(f.id)?`遮回`:`查看明文`,onClick:e=>Q(f)},{default:h(()=>[g(`span`,{class:r(Z(f.id)?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)]),_:2},1032,[`loading`,`title`,`onClick`])):d(``,!0),f.hasPlain?(n(),p(l,{key:1,type:`text`,size:`small`,class:r([`tok-op`,{ok:i(X)===f.id}]),title:i(X)===f.id?`已复制`:`复制明文`,onClick:e=>Te(f)},{default:h(()=>[g(`span`,{class:r(i(X)===f.id?`i-tabler-check`:`i-tabler-copy`)},null,2)]),_:2},1032,[`class`,`title`,`onClick`])):d(``,!0)])):e.key===`createdAt`?(n(),u(o,{key:2},[s(a($(f.createdAt)),1)],64)):e.key===`lastUsedAt`?(n(),u(o,{key:3},[s(a($(f.lastUsedAt)),1)],64)):e.key===`action`?(n(),p(y,{key:4},{default:h(()=>[v(l,{type:`link`,size:`small`,onClick:e=>Ee(f)},{default:h(()=>[c[10]||=g(`span`,{class:`i-tabler-edit`},null,-1),s(` `+a(t.$t(`tokens.k3vrpcs009`)),1)]),_:1},8,[`onClick`]),v(b,{title:f.id===i(k).user?.tokenId?`吊销当前会话 token 将退出登录`:`吊销后立即失效`,"ok-text":`吊销`,"cancel-text":`取消`,onConfirm:e=>be(f)},{default:h(()=>[v(l,{type:`text`,size:`small`,class:`tok-revoke`},{default:h(()=>[c[11]||=g(`span`,{class:`i-tabler-trash`},null,-1),s(` `+a(t.$t(`tokens.k3xmrz010`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])]),_:2},1024)):d(``,!0)]),_:1},8,[`data-source`])]),_:1},8,[`spinning`])]),_:1}),v(O,{open:i(M),"onUpdate:open":c[3]||=e=>f(M)?M.value=e:null,title:t.$t(`chips.issueTitle`),"confirm-loading":i(P),"ok-text":`创建`,"cancel-text":`取消`,onOk:H},{default:h(()=>[v(D,{value:i(N),"onUpdate:value":c[2]||=e=>f(N)?N.value=e:null,placeholder:t.$t(`tokens.k1hlqknl001`),onKeydown:e(H,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`]),v(O,{open:i(F)!==``,title:`Token 已创建`,footer:null,"mask-closable":!1,onCancel:q,onAfterClose:q},{default:h(()=>[g(`div`,me,[c[12]||=g(`span`,{class:`i-tabler-circle-check`},null,-1),g(`span`,null,a(t.$t(`tokens.k12149oy011`)),1)]),g(`div`,he,[g(`code`,ge,a(i(W)?i(F):i(xe)),1),g(`button`,{class:`raw-op`,title:i(W)?`隐藏明文`:`显示明文`,onClick:Se},[g(`span`,{class:r(i(W)?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)],8,_e),g(`button`,{class:r([`raw-op`,{ok:i(G)}]),title:i(G)?`已复制`:`复制`,onClick:Ce},[g(`span`,{class:r(i(G)?`i-tabler-check`:`i-tabler-copy`)},null,2)],10,ve)]),g(`div`,ye,[g(`span`,null,a(t.$t(`tokens.k3p0p44027`))+a(i(I)||t.$t(`tokens.kj3mklm028`)),1),c[13]||=g(`span`,null,`用法:Authorization: Bearer <token>`,-1)]),v(l,{type:`primary`,block:``,onClick:q},{default:h(()=>[s(a(t.$t(`tokens.k1s5f5zd012`)),1)]),_:1})]),_:1},8,[`open`]),v(O,{open:i(L),"onUpdate:open":c[5]||=e=>f(L)?L.value=e:null,title:`重命名 Token`,"confirm-loading":i(B),"ok-text":`保存`,"cancel-text":`取消`,onOk:U},{default:h(()=>[v(D,{value:i(z),"onUpdate:value":c[4]||=e=>f(z)?z.value=e:null,placeholder:t.$t(`tokens.k41416002`),onKeydown:e(U,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`confirm-loading`])],64)):(n(),u(`div`,se,[v(m,{class:`auth-card`},{default:h(()=>[g(`h2`,null,a(t.$t(`tokens.k1k6z0r8003`)),1),g(`p`,ce,a(t.$t(`tokens.k1gjnree004`)),1),v(l,{type:`primary`,block:``,onClick:c[0]||=e=>(`navigateTo`in t?t.navigateTo:i(ee))(`/workshop`)},{default:h(()=>[s(a(t.$t(`tokens.k1bhhheq005`)),1)]),_:1})]),_:1})]))])}}}),[[`__scopeId`,`data-v-759f0cd9`]]);export{k as default};
@@ -1 +0,0 @@
1
- import{C as e,G as t,H as n,Ht as ee,St as r,Wt as i,a,b as o,f as s,ft as c,g as l,h as u,lt as d,m as f,mt as p,nt as m,p as h,t as g,x as _}from"./BSCpFtzG.js";import{d as te}from"./-6OnbLFb.js";import{n as v}from"./B5S_UyaC.js";import{n as y}from"./BeIfu4N3.js";import{t as ne}from"./VLI2Zy4t.js";import{n as re,r as b,t as ie}from"./0jKrzLuM.js";import{t as ae}from"./BN_PdN3J.js";import{r as x}from"./D-Ca4BGY.js";import{r as oe,t as se}from"./Cn3J3NXR.js";import{i as ce,n as le,t as ue}from"./BCJFMBQ6.js";import{t as de}from"./DoAlYsiF.js";import{t as fe}from"./Cb3SnTM8.js";import{t as pe}from"./ORt9oDIy.js";import{t as me}from"./C9f8QMp12.js";import{t as he}from"./DoLasgPj2.js";import{t as S}from"./BcrN7QEl2.js";import{t as C}from"./G0qIw7Gq2.js";import{t as w}from"./kZV5TQvh2.js";import{t as T}from"./CNs_Ozdc2.js";var E={class:`page`},D={class:`head`},O={class:`sub`},k={class:`toolbar`},A={key:0,class:`admin-note`},j={class:`grid`},M={class:`card-head`},N={class:`name`},P={class:`owner`},F={key:0,class:`desc`},I={class:`member-line`},L={class:`lead-name`},R={key:0,class:`count`},ge={key:1,class:`count`},_e=[`title`],ve={class:`card-foot`},ye=[`title`],z=g(e({__name:`channel-templates`,setup(e){let{t:g}=y();T({layout:`default`});let z=w(),B=S(),V=p([]),H=p([]),U=p(!1),W=async()=>{U.value=!0;try{let[e,t]=await Promise.all([z.listChannelTemplates(),z.listTemplates()]);V.value=e?.data??[],H.value=t?.data??[]}finally{U.value=!1}};W();let G=p(`all`),K=s(()=>{let e=B.user?.id;switch(G.value){case`mine`:return V.value.filter(t=>t.ownerUserId===e);case`public`:return V.value.filter(e=>e.visibility===`public`);case`builtin`:return V.value.filter(e=>e.isBuiltin);default:return V.value}}),q=e=>!e.isBuiltin&&(e.ownerUserId===B.user?.id||B.isAdmin),J=e=>e.isBuiltin?{text:g(`ctpl.k3x23c021`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:g(`ctpl.k3wv1t022`),color:`green`}:{text:g(`ctpl.k447jj023`),color:`default`},be=e=>`templateId`in e?H.value.find(t=>t.id===e.templateId)?.name??e.templateId.slice(0,8):e.inline.name,Y=p(!1),X=c({name:``,description:``,scenarioPrompt:``,workspace:``,visibility:`private`,leadId:``,memberIds:[]}),Z=()=>{X.name=``,X.description=``,X.scenarioPrompt=``,X.workspace=``,X.visibility=`private`,X.leadId=``,X.memberIds=[],Y.value=!0},xe=async()=>{if(!X.name.trim()){x.warning(g(`ctpl.k1i0ji0y024`));return}let e=X.leadId?H.value.find(e=>e.id===X.leadId):void 0,t=X.memberIds.filter(e=>e!==X.leadId).map(e=>({templateId:e,role:`worker`}));try{await z.createChannelTemplate({name:X.name.trim(),description:X.description||void 0,scenarioPrompt:X.scenarioPrompt||void 0,workspace:X.workspace||void 0,lead:e?{name:e.name,harness:e.harness,config:e.config}:null,members:t,visibility:X.visibility}),x.success(g(`ctpl.kyppebc025`)),Y.value=!1,W()}catch(e){x.error(C(e))}},Se=async(e,t)=>{try{await z.updateChannelTemplate(e.id,{visibility:t?`public`:`private`}),x.success(g(t?`ctpl.kkziya3026`:`ctpl.k1xxabaf027`)),W()}catch(e){x.error(C(e))}},Q=p(null),Ce=async e=>{Q.value=e.id;try{let t=(await z.instantiateChannelTemplate(e.id))?.data;x.success(g(`ctpl.kefkfnl030`,{p0:e.name,p1:t?.agentCount??0}))}catch(e){x.error(C(e))}finally{Q.value=null}},$=async e=>{await z.deleteChannelTemplate(e.id),x.success(g(`ctpl.k1oxfuqj028`)),W()};return v({title:()=>g(`titles.ctpl`)}),(e,s)=>{let c=ne,p=pe,g=ie,v=ue,y=he,x=fe,S=me,C=se,w=b,T=ae,z=oe,W=le,we=ce,Te=re,Ee=de;return n(),l(`div`,E,[h(`div`,D,[h(`div`,null,[h(`h2`,null,`Channel `+i(e.$t(`ctpl.k1f54iqd029`)),1),h(`p`,O,i(e.$t(`ctpl.k18gglgp011`)),1)]),_(p,null,{default:m(()=>[_(c,{onClick:s[0]||=t=>(`navigateTo`in e?e.navigateTo:r(te))(`/workshop`)},{default:m(()=>[o(i(e.$t(`ctpl.krpx6qa012`)),1)]),_:1}),_(c,{type:`primary`,onClick:Z},{default:m(()=>[o(i(e.$t(`ctpl.k1efixrj013`)),1)]),_:1})]),_:1})]),h(`div`,k,[_(g,{value:r(G),"onUpdate:value":s[1]||=e=>d(G)?G.value=e:null,size:`small`,options:[{value:`all`,label:e.$t(`chips.chipAll`,{n:r(V).length})},{value:`mine`,label:e.$t(`chips.mine`)},{value:`public`,label:e.$t(`chips.public`)},{value:`builtin`,label:e.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),r(B).isAdmin?(n(),l(`span`,A,[s[10]||=h(`span`,{class:`i-tabler-shield-check`},null,-1),o(` `+i(e.$t(`ctpl.ka1gpdj014`)),1)])):u(``,!0)]),_(S,{spinning:r(U)},{default:m(()=>[h(`div`,j,[(n(!0),l(a,null,t(r(K),t=>(n(),l(`div`,{key:t.id,class:`card`},[h(`div`,M,[h(`span`,N,i(t.name),1),_(v,{color:J(t).color,class:`vis-tag`},{default:m(()=>[J(t).icon?(n(),l(`span`,{key:0,class:ee(J(t).icon)},null,2)):u(``,!0),o(i(J(t).text),1)]),_:2},1032,[`color`]),!t.isBuiltin&&q(t)?(n(),f(y,{key:0,checked:t.visibility===`public`,size:`small`,"checked-children":`公开`,"un-checked-children":`私有`,onChange:e=>Se(t,e===!0)},null,8,[`checked`,`onChange`])):u(``,!0),h(`span`,P,i(t.ownerName??`-`),1)]),t.description?(n(),l(`p`,F,i(t.description),1)):u(``,!0),h(`div`,I,[s[12]||=h(`span`,{class:`i-tabler-users-group`},null,-1),t.lead||t.members.length>0?(n(),l(a,{key:0},[_(v,{color:`gold`},{default:m(()=>[...s[11]||=[o(` lead `,-1)]]),_:1}),h(`span`,L,i(t.lead?.name??be(t.members.find(e=>e.role===`lead`)??t.members[0])),1),t.members.filter(e=>e.role!==`lead`).length>0?(n(),l(`span`,R,`+ `+i(t.members.filter(e=>e.role!==`lead`).length)+` worker`,1)):u(``,!0)],64)):(n(),l(`span`,ge,i(e.$t(`ctpl.k3rx4ps015`)),1))]),t.scenarioPrompt?(n(),l(`div`,{key:1,class:`scenario`,title:t.scenarioPrompt},i(t.scenarioPrompt.slice(0,90))+i(t.scenarioPrompt.length>90?`…`:``),9,_e)):u(``,!0),h(`div`,ve,[t.workspace?(n(),l(`span`,{key:0,class:`ws`,title:t.workspace},[s[13]||=h(`span`,{class:`i-tabler-folder`},null,-1),o(` `+i(t.workspace),1)],8,ye)):u(``,!0),s[14]||=h(`span`,{class:`spacer`},null,-1),q(t)?(n(),f(x,{key:1,title:e.$t(`ctpl.k117jag9001`),onConfirm:e=>$(t)},{default:m(()=>[_(c,{size:`small`,type:`text`,danger:``},{default:m(()=>[o(i(e.$t(`ctpl.k3xakp016`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])):u(``,!0),_(c,{size:`small`,type:`primary`,ghost:``,loading:r(Q)===t.id,title:e.$t(`ctpl.knjomku002`),onClick:e=>Ce(t)},{default:m(()=>[o(i(e.$t(`ctpl.k3mr1fo017`)),1)]),_:1},8,[`loading`,`title`,`onClick`])])]))),128)),r(K).length===0?(n(),l(`div`,{key:0,class:`card placeholder`,onClick:Z},[s[15]||=h(`span`,{class:`i-tabler-layout-grid-add big`},null,-1),h(`span`,null,i(e.$t(`ctpl.k19fglby018`)),1)])):u(``,!0)])]),_:1},8,[`spinning`]),_(Ee,{open:r(Y),"onUpdate:open":s[9]||=e=>d(Y)?Y.value=e:null,title:`新建 Channel 模板`,"ok-text":`创建`,"cancel-text":`取消`,onOk:xe},{default:m(()=>[_(Te,{layout:`vertical`},{default:m(()=>[_(w,{label:e.$t(`ctpl.k1f55q76003`)},{default:m(()=>[_(C,{value:r(X).name,"onUpdate:value":s[2]||=e=>r(X).name=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k40gkk004`)},{default:m(()=>[_(C,{value:r(X).description,"onUpdate:value":s[3]||=e=>r(X).description=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:`Lead 模板(实例化时克隆为 channel lead)`},{default:m(()=>[_(T,{value:r(X).leadId,"onUpdate:value":s[4]||=e=>r(X).leadId=e,"allow-clear":``,placeholder:e.$t(`ctpl.k1ju32o7005`),options:r(H).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),_(w,{label:e.$t(`ctpl.k5uq1js006`)},{default:m(()=>[_(T,{value:r(X).memberIds,"onUpdate:value":s[5]||=e=>r(X).memberIds=e,mode:`multiple`,placeholder:e.$t(`ctpl.kqmdkc9007`),options:r(H).filter(e=>e.id!==r(X).leadId).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k1q87yho008`)},{default:m(()=>[_(z,{value:r(X).scenarioPrompt,"onUpdate:value":s[6]||=e=>r(X).scenarioPrompt=e,rows:3},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.kk4u5cr009`)},{default:m(()=>[_(C,{value:r(X).workspace,"onUpdate:value":s[7]||=e=>r(X).workspace=e,placeholder:`data/workspaces/<channelId>`},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k3lrqn0010`)},{default:m(()=>[_(we,{value:r(X).visibility,"onUpdate:value":s[8]||=e=>r(X).visibility=e},{default:m(()=>[_(W,{value:`private`},{default:m(()=>[o(i(e.$t(`ctpl.k17jfge3019`)),1)]),_:1}),_(W,{value:`public`},{default:m(()=>[o(i(e.$t(`ctpl.k191u0u5020`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`])])}}}),[[`__scopeId`,`data-v-0c2ddfe8`]]);export{z as default};
@@ -1 +0,0 @@
1
- import{q as e}from"./rqZ-1SoP.js";import{C as t,G as n,H as r,Ht as i,Wt as a,a as o,b as s,f as c,g as l,h as u,m as d,mt as f,nt as p,p as m,t as h,x as g,z as _}from"./BSCpFtzG.js";import{s as v}from"./C3tCneTM.js";import{n as ee}from"./BeIfu4N3.js";import{t as y}from"./VLI2Zy4t.js";import{r as b}from"./D-Ca4BGY.js";import{t as x}from"./niDwBOZW.js";import{t as S}from"./Bp5luxkg2.js";import{t as C}from"./DoLasgPj2.js";import{t as te}from"./BcrN7QEl2.js";import{t as w}from"./G0qIw7Gq2.js";var ne={class:`plugins-page`},re={class:`aw-page-head`},ie={class:`pg-sub`},ae={class:`pg-stats`},T={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},oe={key:0},V={key:1,style:{color:`#ff6b6b`}},H={key:0,class:`dim`},U=h(t({__name:`index`,setup(t){let{t:h}=ee(),U=te(),W=f([]),G=f([]),K=f(!1),q=f(``),J=f(!1),Y=f(null);function X(){let e=U.token;return e?{authorization:`Bearer ${e}`}:{}}async function Z(){K.value=!0;try{let e=await v(`/api/workshop/plugins`,{headers:X()});W.value=e.plugins??[],G.value=e.failures??[]}catch(e){b.error(w(e,h(`plugins.loadFail`)))}finally{K.value=!1}}async function se(e){q.value=e.name;try{let t=await v(`/api/workshop/plugins/${e.name}/${e.enabled?`disable`:`enable`}`,{method:`POST`,headers:X()});if(t.code!==0||!t.data)throw Error(h(`plugins.enableFail`));e.enabled=t.data.enabled,b.success(`${e.name} · ${t.data.enabled?h(`plugins.enabled`):h(`plugins.disabled`)}`),setTimeout(Z,800)}catch(e){b.error(w(e,h(`plugins.enableFail`)))}finally{q.value=``}}let ce=c(()=>W.value.filter(e=>e.enabled).length),le=c(()=>W.value.filter(e=>e.hasClient).length);function Q(e){return h(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function $(e){Y.value=e,J.value=!0}return _(Z),(t,c)=>{let f=y,h=x,_=C,v=S;return r(),l(`div`,ne,[m(`header`,re,[m(`div`,null,[c[2]||=m(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),m(`h1`,null,a(t.$t(`plugins.title`)),1),m(`p`,ie,a(t.$t(`plugins.subtitle`)),1)]),m(`div`,ae,[m(`span`,T,[s(a(t.$t(`plugins.enabled`))+` `,1),m(`b`,null,a(ce.value),1)]),m(`span`,E,[s(a(t.$t(`plugins.hasClient`))+` `,1),m(`b`,null,a(le.value),1)]),m(`span`,D,[s(a(t.$t(`plugins.routes`))+` `,1),m(`b`,null,a(W.value.reduce((e,t)=>e+t.routes.length,0)),1)]),g(f,{size:`small`,loading:K.value,onClick:Z},{default:p(()=>[s(a(t.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),G.value.length?(r(),d(h,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:t.$t(`plugins.loadFailures`,{n:G.value.length})},{description:p(()=>[(r(!0),l(o,null,n(G.value,e=>(r(),l(`div`,{key:e.source,class:`fail-line`},a(e.source)+` — `+a(e.error),1))),128))]),_:1},8,[`message`])):u(``,!0),!W.value.length&&!K.value?(r(),l(`div`,O,[c[3]||=m(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),m(`p`,k,a(t.$t(`plugins.empty`)),1)])):u(``,!0),m(`div`,A,[(r(!0),l(o,null,n(W.value,s=>(r(),l(`article`,{key:`${s.scope}:${s.name}`,class:i([`pg-card aw-liftable`,{"is-off":!s.enabled}]),onClick:e=>$(s)},[m(`div`,M,[m(`span`,N,a(s.name),1),m(`span`,P,a(s.version),1),g(_,{checked:s.enabled,loading:q.value===s.name,size:`small`,onClick:c[0]||=e(()=>{},[`stop`]),onChange:e=>se(s)},null,8,[`checked`,`loading`,`onChange`])]),m(`p`,F,a(s.description||`—`),1),m(`div`,I,[m(`span`,{class:i([`tag`,s.scope])},a(Q(s.scope)),3),m(`span`,{class:i([`tag`,s.enabled?`on`:`off`])},a(s.enabled?t.$t(`plugins.enabled`):t.$t(`plugins.disabled`)),3),s.hasClient?(r(),l(`span`,L,a(t.$t(`plugins.hasClient`)),1)):u(``,!0)]),s.routes.length?(r(),l(`div`,R,[(r(!0),l(o,null,n(s.routes,e=>(r(),l(`code`,{key:e.method+e.path},a(e.method)+` `+a(e.path),1))),128))])):u(``,!0)],10,j))),128))]),g(v,{open:J.value,"onUpdate:open":c[1]||=e=>J.value=e,title:Y.value?.name,width:`460`},{default:p(()=>[Y.value?(r(),l(o,{key:0},[m(`dl`,z,[c[4]||=m(`dt`,null,`version`,-1),m(`dd`,null,a(Y.value.version),1),c[5]||=m(`dt`,null,`scope`,-1),m(`dd`,null,a(Q(Y.value.scope)),1),m(`dd`,B,a(Y.value.scope===`project`?t.$t(`plugins.scopeBuiltinHint`):t.$t(`plugins.scopeUserHint`)),1),c[6]||=m(`dt`,null,`enabled`,-1),m(`dd`,null,a(Y.value.enabled),1),c[7]||=m(`dt`,null,`client`,-1),m(`dd`,null,a(Y.value.hasClient?`✓`:`—`),1),Y.value.error?(r(),l(`dt`,oe,` error `)):u(``,!0),Y.value.error?(r(),l(`dd`,V,a(Y.value.error),1)):u(``,!0)]),m(`h4`,null,a(t.$t(`plugins.routes`)),1),(r(!0),l(o,null,n(Y.value.routes,e=>(r(),l(`code`,{key:e.method+e.path,class:`detail-route`},a(e.method)+` /api/plugins/`+a(Y.value.name)+a(e.path),1))),128)),Y.value.routes.length?u(``,!0):(r(),l(`p`,H,` — `))],64)):u(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-617e5e4e`]]);export{U as default};
@@ -1 +0,0 @@
1
- import{H as e,U as t,W as n,q as r}from"./rqZ-1SoP.js";import{B as i,C as a,G as o,H as s,Ht as c,St as l,Ut as ee,Wt as u,a as d,b as f,f as p,ft as m,g as h,h as g,mt as _,nt as te,p as v,rt as y,t as b,x as ne}from"./BSCpFtzG.js";import{a as re}from"./vJ4FPb-_.js";import{t as ie}from"./D8CqF0yy.js";import{n as ae}from"./BeIfu4N3.js";import{t as oe}from"./C9f8QMp12.js";import{t as x}from"./G0qIw7Gq2.js";import{n as se,t as ce}from"./DAR70Lf52.js";import{t as le}from"./C1CSiSBN.js";import{t as ue}from"./X6IraCTB.js";var de={key:0,class:`page`},fe={class:`banner bad`},pe={key:1,class:`page`},me={class:`aw-page-head`},he={class:`aw-kicker`},ge={class:`sub`},_e={class:`badges mono`},ve={class:`badge`},ye={class:`badge`},be={class:`badge`},xe={class:`aw-tile ctrl-card`},Se={class:`ctrl-left`},Ce=[`title`],we={class:`ctrl-right`},Te={class:`ctrl-metrics mono`},Ee=[`title`],De=[`title`],Oe=[`title`],ke={key:1,class:`aw-tile adopt-card`},Ae={class:`adopt-title`},je={class:`adopt-list`},Me=[`onClick`],Ne=[`onClick`],Pe={class:`aw-tile line-card`},Fe={class:`line-status`},Ie={class:`line-info`},Le={key:0,class:`mono dim`},Re={key:1,class:`dim`},ze={class:`line-ctl`},Be={class:`ctl-sel`},Ve={value:``},He=[`value`],Ue={class:`ctl-sel`},We=[`disabled`],Ge={value:``},Ke=[`value`,`disabled`],qe=[`disabled`,`title`],Je=[`disabled`],Ye={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Xe={key:1,class:`banner good`,style:{"margin-top":`10px`}},Ze={class:`modal`},Qe={class:`m-title`},$e={class:`dim mono`},et={class:`dim tpl-hint`},tt={class:`tpl-chips`},nt=[`title`],rt={class:`mono`},it={class:`sec-label`},at={class:`f-grid tpl-form`},ot={class:`f`},st=[`placeholder`],ct={class:`f`},lt=[`placeholder`],ut={class:`f`},dt={class:`f`},ft={class:`f`},pt=[`placeholder`],mt={class:`f`},ht=[`placeholder`],gt={class:`f`},_t={class:`f`},vt=[`value`],yt={class:`f`},bt=[`placeholder`],xt={key:0,class:`banner good`,style:{"margin-top":`10px`}},St={key:1,class:`m-err`},Ct={class:`m-actions`},wt=[`disabled`],Tt={class:`modal`},Et={class:`m-title`},Dt={class:`seg-row`},Ot={class:`f-grid`},kt={class:`f`},At=[`value`],jt={class:`f`},Mt=[`placeholder`],Nt={class:`f`},Pt=[`placeholder`],Ft={class:`f`},It=[`placeholder`],Lt={class:`f-grid cal-form`},Rt={class:`f`},zt={value:`none`},Bt={class:`f`},Vt={style:{display:`flex`,gap:`6px`}},Ht=[`disabled`],Ut=[`disabled`],Wt={class:`f-grid`},Gt={class:`f`},Kt=[`value`],qt={key:0,class:`f-grid driver-form`},Jt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Yt=[`onUpdate:modelValue`],Xt=[`value`],Zt=[`onUpdate:modelValue`,`type`,`placeholder`],Qt={key:2,class:`hint`},$t={class:`test-row`},en=[`disabled`],tn={class:`f`},nn=[`placeholder`],rn={key:1,class:`m-err`},an={class:`m-actions`},on=[`disabled`],sn={class:`aw-tile table-card`},cn={class:`nodes-table`},ln={class:`right`},un={class:`mono dim`},dn={class:`mono ch`},fn=[`disabled`,`title`,`onClick`],pn={key:0,class:`st-pill paused`},mn={class:`mono val`},hn={key:0,class:`dim`},gn={class:`mono val`},_n=[`title`],vn={key:0,class:`dim`},yn=[`disabled`,`title`,`onClick`],bn={class:`write-row`},xn=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],Sn=[`disabled`,`title`,`onClick`],Cn={class:`mono dim`},wn={class:`mono`},Tn=[`title`],En={class:`right`},Dn=[`onClick`],On={key:0},kn={colspan:`9`},An={class:`pane-empty`,style:{"min-height":`120px`}},jn={class:`pe-sub`},Mn={class:`aw-tile recipe-card`},Nn={class:`recipe-hd`},Pn={class:`panel-tag mono`},Fn={class:`recipe-sub`},In={key:0,class:`product-row`},Ln=[`title`,`onClick`],Rn=[`title`,`onClick`],zn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Bn={class:`recipe-grid`},Vn={class:`recipe-name`},Hn=[`title`],Un={class:`dim`},Wn={class:`mono dim`},Gn={key:0,class:`dim desc`},Kn={class:`recipe-params mono`},qn=[`title`],Jn={key:0,class:`chip-stale-tag`},Yn=[`title`],Xn={key:0,class:`chip-stale-tag`},Zn={class:`recipe-actions`},Qn=[`onClick`],$n=[`onClick`],er=[`onClick`],tr={key:0,class:`mono`},nr=[`onClick`],rr={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},ir={key:2,class:`banner good`},ar=[`disabled`],or={key:3,class:`runs`},sr={class:`sec-label`},cr={class:`nodes-table`},lr={class:`right`},ur={class:`mono`},dr={class:`mono dim`},fr={class:`right`},pr=[`disabled`,`onClick`],mr=[`onClick`],hr={class:`modal`},gr={class:`m-title`},_r={class:`sec-label`},vr={class:`nodes-table`},yr={class:`mono dim`},br={class:`mono`},xr={class:`mono`},Sr={class:`mono dim`},Cr={class:`mono dim`},wr={key:0},Tr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Er={class:`sec-label`},Dr={class:`nodes-table`},Or={class:`mono`},kr={class:`mono dim`},Ar={class:`mono dim`},jr={key:0},Mr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Nr={class:`m-actions`},Pr={class:`modal`},Fr={class:`m-title`},Ir={class:`f-grid`},Lr={class:`f`},Rr=[`value`],zr={class:`f`},Br=[`placeholder`],Vr={class:`f`},Hr=[`placeholder`],Ur={class:`sec-label`},Wr={class:`f`},Gr=[`onUpdate:modelValue`],Kr=[`value`],qr={key:0,class:`row-stale`},Jr={class:`f`},Yr=[`onUpdate:modelValue`],Xr={class:`f`},Zr=[`onUpdate:modelValue`,`placeholder`],Qr={class:`f`},$r=[`onUpdate:modelValue`,`placeholder`],ei=[`onClick`],ti={class:`sec-label`},ni={class:`f`},ri=[`onUpdate:modelValue`],ii=[`value`],ai={class:`f`},oi=[`onUpdate:modelValue`],si={class:`f`},ci=[`onUpdate:modelValue`],li=[`onClick`],ui=[`disabled`,`title`],di={key:0,class:`m-note`},fi={key:1,class:`m-err`},pi={class:`m-actions`},mi=[`disabled`],hi={class:`modal`,style:{"max-width":`760px`}},gi={class:`modal-head`},_i={key:0,class:`dim`,style:{"margin-left":`8px`,"font-size":`12px`}},vi={key:0,class:`banner good`,style:{margin:`6px 0`}},yi={key:1,class:`dim`},bi={key:2,class:`pane-empty`},xi={class:`ver-head`},Si={class:`mono ver-v`},Ci={class:`mono dim`},wi={class:`ver-actor`},Ti=[`onClick`],Ei={key:0,class:`ver-desc`},Di={class:`ver-diff mono`},Oi={class:`aw-tile query-card`},ki={class:`sec-label`},Ai={class:`q-grid`},ji={class:`f`},Mi={value:``},Ni=[`value`],Pi={class:`f`},Fi=[`disabled`],Ii={value:``},Li=[`value`],Ri={class:`f`},zi={value:``},Bi=[`value`],Vi={class:`f`},Hi={value:``},Ui=[`value`],Wi={class:`f`},Gi={class:`f`},Ki={class:`f q-actions`},qi=[`disabled`],Ji={key:0,class:`banner bad`,style:{"margin-top":`8px`}},Yi={key:1,class:`q-result`},Xi={class:`nodes-table`},Zi={class:`mono dim`},Qi={class:`mono`},$i={class:`mono`},ea={class:`mono`},ta={class:`mono dim`},na={key:6,class:`aw-tile table-card`},ra={class:`sec-label`},ia={class:`nodes-table`},aa={class:`mono dim`},oa={class:`mono`},sa={class:`mono dim`},ca={class:`dim`},la={class:`modal`},ua={class:`m-title`},da={class:`f-grid`},fa={class:`f`},pa=[`placeholder`],ma={class:`f`},ha=[`placeholder`],ga={key:0,class:`m-err`},_a={class:`m-actions`},va=[`disabled`],ya={key:8,class:`err`},ba={class:`aw-tile ledger-card`},xa={class:`ledger-head`},Sa={value:``},Ca=[`value`],wa={class:`ledger-tri`},Ta={class:`tri-cell`},Ea={class:`mono`},Da={class:`tri-cell`},Oa={class:`mono`},ka={class:`tri-cell`},Aa={class:`mono`},ja={class:`ledger-cols`},Ma={class:`ledger-col`},Na={class:`sec-t`},Pa={class:`ledger-list mono`},Fa={class:`ledger-col`},Ia={class:`sec-t`},La={class:`ledger-list`},Ra={class:`mono`},za=b(a({__name:`[id]`,setup(a){let{t:b}=ae(),za=re(),S=ce(),Ba=le(),Va=ue();Ba.load();let C=p(()=>String(za.params.id??``)),w=p(()=>S.lines.find(e=>e.id===C.value)),T=p(()=>S.lineStateOf(C.value));S.load();let Ha=S.ensureWsFeed();i(()=>Ha());let Ua=e=>(e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[])).map(e=>Wa(e)).join(` / `)||`—`,Wa=e=>e?Va.twins.find(t=>t.id===e)?.name??e:b(`dcwDetail.k3own4q121`),Ga={idle:b(`dcwDetail.k3zgkk122`),writing:b(`dcwDetail.k3l3h80123`),ok:`已 ACK`,error:b(`dcwDetail.k40reu124`),offline:b(`dcwDetail.k44c2n125`)};function Ka(e){let t=e??``;return S.templates.find(e=>e.key===(t.startsWith(`dcw-`)?t.slice(4):t))?.ch??t}function qa(e){return S.nodeById(e)?.min}function Ja(e){return S.nodeById(e)?.max}let Ya=p(()=>Ba.nodes.filter(e=>e.lineId===C.value)),E=_(``),D=_(null),Xa=_(!1);async function Za(){if(E.value){Xa.value=!0;try{D.value=await S.fetchLedger(E.value)}finally{Xa.value=!1}}}async function Qa(){E.value&&(await S.rollbackNode(E.value),await Za())}function $a(e){return Ba.nodeById(e)?.name??e}let O=p(()=>S.nodes.filter(e=>e.lineId===C.value)),k=p(()=>S.products.filter(e=>e.lineId===C.value)),eo=p(()=>S.recipes.filter(e=>e.lineId===C.value)),to=p(()=>S.runs.filter(e=>e.lineId===C.value)),no=p(()=>{let e=new Set(O.value.map(e=>e.id));return S.history.filter(t=>e.has(t.nodeId))}),ro=p(()=>S.nodes.filter(e=>!e.lineId)),io=p(()=>S.products.filter(e=>!e.lineId));async function ao(e){await S.patchNode(e,{lineId:C.value});let t=S.nodeById(e);t&&(t.lineId=C.value)}async function oo(e){await S.updateProduct(e,{lineId:C.value}),await S.load()}let A=m({}),so=_(``),j=_(``),co=_(``);async function lo(e,t){so.value=e,j.value=``,co.value=``;try{let n=await S.write(e,t);n.ok?(co.value=b(`dcwDetail.k1alcbyu182`,{p0:S.nodeById(e)?.name??e,p1:n.message}),A[e]=``):j.value=b(`dcwDetail.kl1e9x9183`,{p0:S.nodeById(e)?.name??e,p1:n.message})}catch(e){j.value=x(e)}finally{so.value=``}}let uo=_(``);async function fo(e){uo.value=e,j.value=``;try{await S.readNode(e)}catch(e){j.value=x(e)}finally{uo.value=``}}let po=_(``);async function mo(e,t){po.value=e,j.value=``;try{await S.patchNode(e,{enabled:t});let n=S.nodeById(e);n&&(n.enabled=t,t?n.state===`offline`&&(n.state=`idle`):n.state=`offline`)}catch(e){j.value=x(e)}finally{po.value=``}}let ho=_(!1),go=_(`mock`),_o=_(S.templates[0]?.key??``),M=_(`mock`),vo=_(``),yo=_(null),bo=_(null),N=_({}),P=m({kind:`none`,scale:1,offset:0}),xo=_(``),So=_(!1),F=_(null),Co=_(!1),wo=_(``),To=p(()=>se.find(e=>e.kind===M.value)),Eo=p(()=>To.value?.configFields??[]);function Do(){let e={};for(let t of Eo.value)t.default!==void 0&&(e[t.key]=t.default);N.value=e,F.value=null}Do();async function Oo(){So.value=!0,F.value=null;try{F.value=await S.testDriver(M.value,N.value)}catch(e){F.value={ok:!1,message:x(e)}}finally{So.value=!1}}async function ko(){Co.value=!0,wo.value=``;try{for(let e of Eo.value)if(e.required&&(N.value[e.key]===void 0||N.value[e.key]===``))throw Error(b(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=P.kind===`linear`?{kind:`linear`,scale:Number(P.scale),offset:Number(P.offset)}:void 0;await S.createFromTemplate(`dcw-${_o.value}`,{name:vo.value.trim()||void 0,driver:M.value,driverConfig:{...N.value},transform:e,holdIntervalMs:yo.value,readIntervalMs:bo.value,lineId:C.value,semantics:xo.value.trim()||void 0}),ho.value=!1,vo.value=``,xo.value=``}catch(e){wo.value=x(e)}finally{Co.value=!1}}let Ao=_(!1),jo=_(!1),Mo=_(``),No=_(``);function Po(){Ao.value=!0,Mo.value=``,No.value=``}let I=m({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Fo=[{key:`thermo`,label:b(`dcwDetail.k422b8126`)},{key:`pressure`,label:b(`dcwDetail.k3x6ff127`)},{key:`tension`,label:b(`dcwDetail.k3z9xc128`)},{key:`encoder`,label:b(`dcwDetail.kjb3vhs129`)},{key:`camera`,label:b(`dcwDetail.k47atw130`)},{key:`gateway`,label:b(`dcwDetail.k48c07131`)}];async function Io(){jo.value=!0,Mo.value=``,No.value=``;try{if(!I.name.trim())throw Error(b(`dcwDetail.k6ugbw2132`));if(I.unit.trim()===``)throw Error(b(`dcwDetail.kx3pg59133`));if(I.min===``||I.max===``)throw Error(b(`dcwDetail.k13awowo134`));let e=await S.createTemplate({name:I.name.trim(),ch:I.ch.trim()||I.name.trim(),code:I.code.trim()||`CUSTOM`,unit:I.unit.trim(),min:Number(I.min),max:Number(I.max),decimals:Number(I.decimals)||0,icon:I.icon,semantics:I.semantics.trim()||void 0});_o.value=e.key,No.value=b(`dcwDetail.ky4e1tr185`,{p0:e.name}),I.name=``,I.ch=``,I.code=``,I.unit=``,I.min=``,I.max=``,I.semantics=``}catch(e){Mo.value=x(e)}finally{jo.value=!1}}let L=_(``),R=_(``),z=_(!1),B=_(``),V=_(``),Lo=p(()=>eo.value.filter(e=>e.productId===L.value));async function Ro(){z.value=!0,B.value=``,V.value=``;try{if(!R.value)throw Error(b(`dcwDetail.k1b6qe0r135`));await S.startLine(C.value,R.value),B.value=b(`dcwDetail.k17jteb9186`,{p0:T.value.productName,p1:T.value.recipeName,p2:T.value.runId})}catch(e){V.value=x(e)}finally{z.value=!1}}async function zo(){z.value=!0,B.value=``,V.value=``;try{let e=`${T.value.productName??``} · ${T.value.recipeName??``}`;await S.stopLine(C.value),B.value=b(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){V.value=x(e)}finally{z.value=!1}}let Bo=_(!1),Vo=_(!1),Ho=_(``),H=m({name:``,description:``}),U=_(``);async function Uo(){Vo.value=!0,Ho.value=``;try{let e=await S.createProduct({name:H.name.trim(),description:H.description.trim(),lineId:C.value});L.value=e.id,U.value=e.id,Bo.value=!1,H.name=``,H.description=``}catch(e){Ho.value=x(e)}finally{Vo.value=!1}}let Wo=p(()=>U.value?eo.value.filter(e=>e.productId===U.value):eo.value),Go=e=>S.products.find(t=>t.id===e)?.name??e;function W(e,t){let n=S.nodes.find(t=>t.id===e);return n?n.enabled?t&&n.lineId!==t?{code:`unbound`,label:b(`dcwDetail.staleUnbound`)}:null:{code:`disabled`,label:b(`dcwDetail.staleDisabled`)}:{code:`deleted`,label:b(`dcwDetail.staleDeleted`)}}function Ko(e){return S.nodes.find(t=>t.id===e)?.name??e}function qo(e,t){let n=Ba.nodes.find(t=>t.id===e);return n?n.enabled?t&&n.lineId!==t?{code:`unbound`,label:b(`dcwDetail.staleUnbound`)}:null:{code:`disabled`,label:b(`dcwDetail.staleDisabled`)}:{code:`deleted`,label:b(`dcwDetail.staleDeleted`)}}let Jo=_(!1),G=_(null),Yo=_([]),Xo=_(!1),K=_(``);async function Zo(e){G.value=S.recipes.find(t=>t.id===e)??null,Jo.value=!0,K.value=``,Xo.value=!0;try{Yo.value=await S.recipeVersions(e)}catch(e){K.value=x(e)}finally{Xo.value=!1}}let Qo=e=>e===`agent`?`Agent`:b(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function $o(e,t){if(t===0)return b(`dcwDetail.histInit`);let n=Yo.value[t-1],r=e.params.map(e=>({p:e,old:n.params.find(t=>t.nodeId===e.nodeId)})).filter(({p:e,old:t})=>!t||t.value!==e.value).map(({p:e,old:t})=>`${S.nodes.find(t=>t.id===e.nodeId)?.name??e.nodeId}: ${t?.value??b(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):b(`dcwDetail.histNoChange`)}async function es(e){if(G.value){K.value=``;try{let t=await S.revertRecipe(G.value.id,{version:e,reason:b(`dcwDetail.revertReasonUi`)});K.value=b(`dcwDetail.revertOk`,{p0:t.version??0}),Yo.value=await S.recipeVersions(G.value.id)}catch(e){K.value=x(e)}}}let q=m({productId:``,recipeId:``,paramKey:``,nodeId:``,lastMin:30,bucketMs:15e3}),ts=_(null),ns=_(!1),rs=_(``);async function is(){ns.value=!0,rs.value=``,ts.value=null;try{ts.value=await S.queryLine({lineId:C.value,productId:q.productId||void 0,recipeId:q.recipeId||void 0,paramKey:q.paramKey||void 0,nodeId:q.nodeId||void 0,fromMs:Date.now()-q.lastMin*6e4,toMs:Date.now(),bucketMs:q.bucketMs>0?q.bucketMs:void 0,limit:2e3}),ts.value.channels.length===0&&(rs.value=b(`dcwDetail.kszv5sq136`))}catch(e){rs.value=x(e)}finally{ns.value=!1}}let as=p(()=>S.templates.map(e=>e.key)),J=_(!1),Y=_(null),os=_(!1),X=_(``),ss=_(``),Z=m({productId:``,name:``,description:``,params:[],daqWindows:[]}),Q=_(null),$=_(null),cs=_(!1);function ls(){Y.value=null,X.value=``,Z.productId=U.value||L.value||k.value[0]?.id||``,Z.name=``,Z.description=``,Z.params=[{nodeId:O.value[0]?.id??``,value:``,min:``,max:``}],Z.daqWindows=[],J.value=!0}function us(e){let t=S.recipes.find(t=>t.id===e);if(!t)return;Y.value=e,X.value=``;let n=t.params.filter(e=>S.nodes.some(t=>t.id===e.nodeId)),r=t.params.length-n.length;ss.value=r>0?b(`dcwDetail.staleDropped`,{p0:r}):``,Z.productId=t.productId,Z.name=t.name,Z.description=t.description,Z.params=n.map(e=>({nodeId:e.nodeId,value:e.value,min:e.min??``,max:e.max??``})),Z.daqWindows=(t.daqWindows??[]).map(e=>({nodeId:e.nodeId,min:e.min??``,max:e.max??``})),J.value=!0}async function ds(){os.value=!0,X.value=``;try{let e={productId:Z.productId,name:Z.name.trim(),description:Z.description.trim(),params:Z.params.filter(e=>e.nodeId&&e.value!==``&&Number.isFinite(Number(e.value))).map(e=>({nodeId:e.nodeId,value:Number(e.value),...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}})),daqWindows:Z.daqWindows.filter(e=>e.nodeId&&(e.min!==``||e.max!==``)).map(e=>({nodeId:e.nodeId,...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}}))};Y.value?await S.updateRecipe(Y.value,e):await S.createRecipe(e),J.value=!1}catch(e){X.value=x(e)}finally{os.value=!1}}async function fs(e){Q.value=null,j.value=``;try{let t=await S.applyRecipe(e),n=t.results.filter(e=>e.ok).length;Q.value={runId:t.id,ok:n,total:t.results.length},n<t.results.length&&(j.value=b(`dcwDetail.ks7szkt188`,{p0:t.results.filter(e=>!e.ok).map(e=>e.message).join(`;`)}))}catch(e){j.value=x(e)}}async function ps(e){cs.value=!0;try{let t=await S.runData(e);$.value={runId:e,data:t}}catch(e){j.value=x(e)}finally{cs.value=!1}}function ms(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(i,a)=>{let p=ie,m=oe;return l(S).loaded&&!w.value?(s(),h(`div`,de,[v(`p`,fe,u(i.$t(`dcwDetail.k19337yp018`)),1),ne(p,{class:`pill-btn`,to:`/dcw`},{default:te(()=>[f(u(i.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(s(),h(`div`,pe,[v(`div`,me,[v(`div`,null,[v(`p`,he,[v(`span`,{class:`line-chip`,style:ee({background:w.value?.color??`#3aa0ff`})},null,4),f(`AGENTWORKSHOP / LINE / `+u(w.value?.name??C.value),1)]),v(`h1`,null,u(w.value?.name??i.$t(`dcwDetail.k1b2snna151`))+` · `+u(i.$t(`dcwDetail.k1l0iow1137`)),1),v(`p`,ge,u(w.value?.description||i.$t(`dcwDetail.kzcbfki152`)),1)]),v(`div`,_e,[v(`span`,ve,u(i.$t(`dcwDetail.k45uio082`))+` `+u(O.value.length),1),v(`span`,ye,u(i.$t(`dcwDetail.k3waz1025`))+` `+u(k.value.length),1),v(`span`,be,u(i.$t(`dcwDetail.k48grv027`))+` `+u(eo.value.length),1)])]),v(`section`,xe,[v(`div`,Se,[v(`button`,{class:c([`aw-pill`,{running:l(S).controller.running}]),title:i.$t(`dcwDetail.k1snap154`),onClick:a[0]||=e=>l(S).startStop(l(S).controller.running?`pause`:`resume`)},[v(`span`,{class:c(l(S).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),f(` `+u(l(S).controller.running?i.$t(`dcwDetail.kplrsg153`):i.$t(`dcwDetail.knxgni9169`)),1)],10,Ce)]),v(`div`,we,[v(`span`,Te,[v(`span`,null,u(i.$t(`dcwDetail.k45uio082`))+` `+u(l(S).controller.nodesOnline)+`/`+u(l(S).controller.nodesTotal),1),a[55]||=v(`span`,{class:`sep`},`·`,-1),v(`span`,{title:i.$t(`dcwDetail.kd3ygmn001`)},u(i.$t(`dcwDetail.k3wtib138`))+` `+u(l(S).controller.writesTotal),9,Ee),a[56]||=v(`span`,{class:`sep`},`·`,-1),v(`span`,{class:c({warn:l(S).controller.writesFailed>0}),title:i.$t(`dcwDetail.kd3znl0002`)},u(i.$t(`dcwDetail.k3yit7139`))+` `+u(l(S).controller.writesFailed),11,De)]),v(`button`,{class:`aw-pill outline`,title:i.$t(`dcwDetail.kc4ixly003`),onClick:Po},[a[57]||=v(`span`,{class:`i-tabler-template`},null,-1),f(` `+u(i.$t(`dcwDetail.k1972dx9020`)),1)],8,Oe),v(`button`,{class:`aw-pill add-btn`,onClick:a[1]||=e=>ho.value=!0},[a[58]||=v(`span`,{class:`i-tabler-plus`},null,-1),f(` `+u(i.$t(`dcwDetail.k1976uns021`)),1)])])]),j.value||co.value?(s(),h(`p`,{key:0,class:c([`banner`,j.value?`bad`:`good`])},u(j.value||co.value),3)):g(``,!0),ro.value.length||io.value.length?(s(),h(`section`,ke,[v(`b`,Ae,u(i.$t(`dcwDetail.kaebkky022`)),1),v(`div`,je,[(s(!0),h(d,null,o(ro.value,e=>(s(),h(`span`,{key:e.id,class:`adopt-chip`},[f(u(e.name)+` `,1),v(`button`,{class:`mini-btn`,onClick:t=>ao(e.id)},u(i.$t(`dcwDetail.kyjp9fg023`)),9,Me)]))),128)),(s(!0),h(d,null,o(io.value,e=>(s(),h(`span`,{key:e.id,class:`adopt-chip`},[f(u(e.name)+`(`+u(i.$t(`dcwDetail.k3km252140`)),1),v(`button`,{class:`mini-btn`,onClick:t=>oo(e.id)},u(i.$t(`dcwDetail.kyjp9fg023`)),9,Ne)]))),128))])])):g(``,!0),v(`section`,Pe,[v(`div`,Fe,[v(`span`,{class:c([`line-dot`,{on:T.value.active}])},null,2),v(`div`,Ie,[v(`b`,null,u(T.value.active?i.$t(`dcwDetail.k1pxrhx0154`):i.$t(`dcwDetail.k1b2hxmx170`)),1),T.value.active?(s(),h(`small`,Le,u(T.value.productName)+` · `+u(T.value.recipeName)+` · `+u(i.$t(`dcwDetail.k400lb075`))+` `+u(T.value.runId)+` · `+u(i.$t(`dcwDetail.k3zkt2166`))+` `+u(T.value.startedAt?.slice(11,19))+` `+u(i.$t(`dcwDetail.k69vag8168`))+` `+u(T.value.taggedSamples)+` `+u(i.$t(`dcwDetail.k4118o085`)),1)):(s(),h(`small`,Re,u(i.$t(`dcwDetail.k19pof14024`)),1))])]),v(`div`,ze,[v(`label`,Be,[v(`span`,null,u(i.$t(`dcwDetail.k3waz1025`)),1),y(v(`select`,{"onUpdate:modelValue":a[2]||=e=>L.value=e,class:`inp`,onChange:a[3]||=e=>R.value=``},[v(`option`,Ve,u(i.$t(`dcwDetail.kuisodh026`)),1),(s(!0),h(d,null,o(k.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,He))),128))],544),[[t,L.value]])]),v(`label`,Ue,[v(`span`,null,u(i.$t(`dcwDetail.k48grv027`)),1),y(v(`select`,{"onUpdate:modelValue":a[4]||=e=>R.value=e,class:`inp`,disabled:!L.value},[v(`option`,Ge,u(i.$t(`dcwDetail.kutxzsz028`)),1),(s(!0),h(d,null,o(Lo.value,e=>(s(),h(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},u(e.name)+u(e.params.length===0?i.$t(`dcwDetail.k1hicmch155`):i.$t(`dcwDetail.k1lzfi4g180`,{p0:e.params.length})),9,Ke))),128))],8,We),[[t,R.value]])]),T.value.active?(s(),h(`button`,{key:1,class:`pill-btn stop`,disabled:z.value,onClick:zo},u(i.$t(`dcwDetail.k1xyhd2y030`)),9,Je)):(s(),h(`button`,{key:0,class:`pill-btn`,disabled:z.value||!R.value,title:R.value?`下发配方参数并开始打标数据采集`:`开跑前必须先设定配方`,onClick:Ro},u(i.$t(`dcwDetail.kfb8vml029`)),9,qe))]),V.value?(s(),h(`p`,Ye,u(V.value),1)):g(``,!0),B.value?(s(),h(`p`,Xe,u(B.value),1)):g(``,!0)]),Ao.value?(s(),h(`div`,{key:2,class:`modal-mask`,onClick:a[15]||=r(e=>Ao.value=!1,[`self`])},[v(`div`,Ze,[v(`h3`,Qe,[f(u(i.$t(`dcwDetail.k1x4vam0031`))+` `,1),v(`small`,$e,u(i.$t(`dcwDetail.k3x23c141`))+` `+u(l(S).templates.filter(e=>e.builtin).length)+` · `+u(i.$t(`dcwDetail.k3t616a142`))+` `+u(l(S).templates.filter(e=>!e.builtin).length),1)]),v(`p`,et,u(i.$t(`dcwDetail.ke1iyud032`)),1),v(`div`,tt,[(s(!0),h(d,null,o(l(S).templates,e=>(s(),h(`span`,{key:e.key,class:`tpl-chip`,title:`${e.code} · ${e.min}~${e.max} ${e.unit}${e.semantics?` · ${e.semantics}`:``}`},[f(u(e.name)+` `,1),v(`small`,rt,u(e.min)+`~`+u(e.max)+u(e.unit),1),v(`em`,{class:c([`tpl-tag`,{builtin:e.builtin}])},u(e.builtin?i.$t(`dcwDetail.k3x23c141`):i.$t(`dcwDetail.k3t616a142`)),3)],8,nt))),128))]),v(`p`,it,u(i.$t(`dcwDetail.k169eb4s033`)),1),v(`div`,at,[v(`label`,ot,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1f55q76034`)),1),a[59]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[5]||=e=>I.name=e,class:`inp`,placeholder:i.$t(`dcwDetail.k1tooi3o004`)},null,8,st),[[n,I.name]])]),v(`label`,ct,[v(`span`,null,u(i.$t(`dcwDetail.k1bqk219035`)),1),y(v(`input`,{"onUpdate:modelValue":a[6]||=e=>I.ch=e,class:`inp`,placeholder:i.$t(`dcwDetail.k698qz0005`)},null,8,lt),[[n,I.ch]])]),v(`label`,ut,[v(`span`,null,u(i.$t(`dcwDetail.k1ayxrqb036`)),1),y(v(`input`,{"onUpdate:modelValue":a[7]||=e=>I.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[n,I.code]])]),v(`label`,dt,[v(`span`,null,[f(u(i.$t(`dcwDetail.k3x4ef037`)),1),a[60]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[8]||=e=>I.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[n,I.unit]])]),v(`label`,ft,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1l9jv5m038`)),1),a[61]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[9]||=e=>I.min=e,type:`number`,class:`inp`,placeholder:i.$t(`dcwDetail.kxz9174006`)},null,8,pt),[[n,I.min,void 0,{number:!0}]])]),v(`label`,mt,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1l9jv4p039`)),1),a[62]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[10]||=e=>I.max=e,type:`number`,class:`inp`,placeholder:i.$t(`dcwDetail.kxz9167007`)},null,8,ht),[[n,I.max,void 0,{number:!0}]])]),v(`label`,gt,[v(`span`,null,u(i.$t(`dcwDetail.k3mxmcx040`)),1),y(v(`input`,{"onUpdate:modelValue":a[11]||=e=>I.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[n,I.decimals,void 0,{number:!0}]])]),v(`label`,_t,[v(`span`,null,u(i.$t(`dcwDetail.k3xx56041`)),1),y(v(`select`,{"onUpdate:modelValue":a[12]||=e=>I.icon=e,class:`inp`},[(s(),h(d,null,o(Fo,e=>v(`option`,{key:e.key,value:e.key},u(e.label),9,vt)),64))],512),[[t,I.icon]])])]),v(`label`,yt,[v(`span`,null,u(i.$t(`dcwDetail.knjmyfr042`)),1),y(v(`textarea`,{"onUpdate:modelValue":a[13]||=e=>I.semantics=e,class:`inp`,rows:`2`,placeholder:i.$t(`dcwDetail.k1qdnfzc008`)},null,8,bt),[[n,I.semantics]])]),No.value?(s(),h(`p`,xt,u(No.value),1)):g(``,!0),Mo.value?(s(),h(`p`,St,u(Mo.value),1)):g(``,!0),v(`div`,Ct,[v(`button`,{class:`aw-pill outline`,onClick:a[14]||=e=>Ao.value=!1},u(i.$t(`dcwDetail.k3x62t043`)),1),v(`button`,{class:`pill-btn`,disabled:jo.value||!I.name.trim()||I.unit.trim()===``||I.min===``||I.max===``,onClick:Io},u(jo.value?i.$t(`dcwDetail.k1bg4759156`):i.$t(`dcwDetail.k1bg9nga171`)),9,wt)])])])):g(``,!0),ho.value?(s(),h(`div`,{key:3,class:`modal-mask`,onClick:a[28]||=r(e=>ho.value=!1,[`self`])},[v(`div`,Tt,[v(`h3`,Et,u(i.$t(`dcwDetail.k1976uns021`)),1),v(`div`,Dt,[v(`button`,{class:c([`seg`,{on:go.value===`mock`}]),onClick:a[16]||=e=>go.value=`mock`},` Mock 模拟 PLC `,2),v(`button`,{class:c([`seg`,{on:go.value===`real`}]),onClick:a[17]||=e=>go.value=`real`},u(i.$t(`dcwDetail.kyj8fen044`)),3)]),v(`div`,Ot,[v(`label`,kt,[v(`span`,null,u(i.$t(`dcwDetail.k1ejzwqp045`)),1),y(v(`select`,{"onUpdate:modelValue":a[18]||=e=>_o.value=e,class:`inp`},[(s(!0),h(d,null,o(l(S).templates,e=>(s(),h(`option`,{key:e.key,value:e.key},u(e.name)+` · `+u(e.ch)+`(`+u(e.min)+`~`+u(e.max)+` `+u(e.unit)+`)`+u(e.builtin?``:i.$t(`dcwDetail.kr45rk9157`)),9,At))),128))],512),[[t,_o.value]])]),v(`label`,jt,[v(`span`,null,u(i.$t(`dcwDetail.k1ce2k1y046`)),1),y(v(`input`,{"onUpdate:modelValue":a[19]||=e=>vo.value=e,class:`inp`,placeholder:i.$t(`dcwDetail.kgpxzy3009`)},null,8,Mt),[[n,vo.value]])]),v(`label`,Nt,[v(`span`,null,u(i.$t(`dcwDetail.k1vyb8im047`)),1),y(v(`input`,{"onUpdate:modelValue":a[20]||=e=>yo.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:i.$t(`dcwDetail.kb1srz0010`)},null,8,Pt),[[n,yo.value,void 0,{number:!0}]])]),v(`label`,Ft,[v(`span`,null,u(i.$t(`dcwDetail.k9r7d4e016`)),1),y(v(`input`,{"onUpdate:modelValue":a[21]||=e=>bo.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:i.$t(`dcwDetail.k9r7d4e017`)},null,8,It),[[n,bo.value,void 0,{number:!0}]])])]),v(`div`,Lt,[v(`label`,Rt,[v(`span`,null,u(i.$t(`dcwDetail.kiune1f048`)),1),y(v(`select`,{"onUpdate:modelValue":a[22]||=e=>P.kind=e,class:`inp`},[v(`option`,zt,u(i.$t(`dcwDetail.kkzy0k049`)),1),a[63]||=v(`option`,{value:`linear`},` 线性标定:PLC值 = (物理值 - offset) / scale `,-1)],512),[[t,P.kind]])]),v(`label`,Bt,[a[64]||=v(`span`,null,`scale / offset`,-1),v(`div`,Vt,[y(v(`input`,{"onUpdate:modelValue":a[23]||=e=>P.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:P.kind!==`linear`,title:`decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆`},null,8,Ht),[[n,P.scale,void 0,{number:!0}]]),y(v(`input`,{"onUpdate:modelValue":a[24]||=e=>P.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:P.kind!==`linear`,title:`decoder 截距`},null,8,Ut),[[n,P.offset,void 0,{number:!0}]])])])]),go.value===`real`?(s(),h(d,{key:0},[v(`div`,Wt,[v(`label`,Gt,[v(`span`,null,u(i.$t(`dcwDetail.k1kt87rx050`)),1),y(v(`select`,{"onUpdate:modelValue":a[25]||=e=>M.value=e,class:`inp`},[(s(!0),h(d,null,o(l(se).filter(e=>e.status!==`builtin`),e=>(s(),h(`option`,{key:e.kind,value:e.kind},u(e.label),9,Kt))),128))],512),[[t,M.value]])])]),Eo.value.length?(s(),h(`div`,qt,[(s(!0),h(d,null,o(Eo.value,n=>(s(),h(`label`,{key:n.key,class:`f`},[v(`span`,null,[f(u(n.label),1),n.required?(s(),h(`em`,Jt,`*`)):g(``,!0)]),n.type===`select`?y((s(),h(`select`,{key:0,"onUpdate:modelValue":e=>N.value[n.key]=e,class:`inp`},[(s(!0),h(d,null,o(n.options,e=>(s(),h(`option`,{key:e.value,value:e.value},u(e.label),9,Xt))),128))],8,Yt)),[[t,N.value[n.key]]]):y((s(),h(`input`,{key:1,"onUpdate:modelValue":e=>N.value[n.key]=e,type:n.type===`number`?`number`:`text`,placeholder:n.placeholder,class:`inp`},null,8,Zt)),[[e,N.value[n.key]]]),n.hint?(s(),h(`small`,Qt,u(n.hint),1)):g(``,!0)]))),128))])):g(``,!0),v(`div`,$t,[v(`button`,{class:`pill-btn outline`,disabled:So.value,onClick:Oo},u(So.value?i.$t(`dcwDetail.k1fsh720158`):i.$t(`dcwDetail.k1fstglk172`)),9,en),F.value?(s(),h(`span`,{key:0,class:c([`test-result`,F.value.ok?`good`:`bad`])},u(F.value.ok?`✓`:`✗`)+` `+u(F.value.message),3)):g(``,!0)])],64)):g(``,!0),v(`label`,tn,[v(`span`,null,u(i.$t(`dcwDetail.k1hgizn7051`)),1),y(v(`textarea`,{"onUpdate:modelValue":a[26]||=e=>xo.value=e,class:`inp`,rows:`2`,placeholder:i.$t(`dcwDetail.k12bnyt9011`)},null,8,nn),[[n,xo.value]])]),wo.value?(s(),h(`p`,rn,u(wo.value),1)):g(``,!0),v(`div`,an,[v(`button`,{class:`aw-pill outline`,onClick:a[27]||=e=>ho.value=!1},u(i.$t(`dcwDetail.k3xdnn052`)),1),v(`button`,{class:`aw-pill`,disabled:Co.value,onClick:ko},u(Co.value?i.$t(`dcwDetail.k1bg4759156`):i.$t(`dcwDetail.k1bge46t173`)),9,on)])])])):g(``,!0),ne(m,{spinning:!l(S).loaded&&!l(S).error},{default:te(()=>[v(`section`,sn,[v(`table`,cn,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,u(i.$t(`dcwDetail.k1e2dtkt053`)),1),v(`th`,null,u(i.$t(`dcwDetail.k403cy054`)),1),v(`th`,null,u(i.$t(`dcwDetail.k42w8s055`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1deqh0d056`)),1),v(`th`,null,u(i.$t(`dcwDetail.k9r7d4e018`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1k79ec9057`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1dexou6058`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1b1nnaa059`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1i8rtqt060`)),1),v(`th`,ln,u(i.$t(`dcwDetail.k40aa6061`)),1)])]),v(`tbody`,null,[(s(!0),h(d,null,o(O.value,e=>(s(),h(`tr`,{key:e.id,class:c({"node-paused":!e.enabled})},[v(`td`,null,[v(`span`,un,u(e.id.slice(0,8)),1),v(`b`,null,u(e.name),1),v(`small`,dn,u(Ka(e.templateRef)),1)]),v(`td`,null,[v(`button`,{class:c([`ctrl-toggle`,{on:e.enabled}]),disabled:po.value===e.id,title:e.enabled?`暂停该节点控制:下发将被拒绝`:`开启该节点控制:恢复可下发`,onClick:t=>mo(e.id,!e.enabled)},[a[65]||=v(`span`,{class:`ct-dot`},null,-1),f(` `+u(e.enabled?i.$t(`dcwDetail.k3o3ib3159`):i.$t(`dcwDetail.k3n93ed062`)),1)],10,fn)]),v(`td`,null,[e.enabled?(s(),h(`span`,{key:1,class:c([`st-pill`,e.state])},u(Ga[e.state]??e.state),3)):(s(),h(`span`,pn,u(i.$t(`dcwDetail.k3n93ed062`)),1))]),v(`td`,mn,[f(u(e.value==null?`--`:e.value.toFixed(e.decimals))+` `,1),v(`small`,null,u(e.unit),1),e.lastAckAt?(s(),h(`small`,hn,` · `+u(e.lastAckAt.slice(11,19)),1)):g(``,!0)]),v(`td`,gn,[v(`span`,{title:e.lastReadError??i.$t(`dcwDetail.k9r7d4e019`),class:c({"read-stale":e.lastReadError})},u(e.readValue==null?`--`:e.readValue.toFixed(e.decimals)),11,_n),v(`small`,null,u(e.unit),1),e.lastReadAt?(s(),h(`small`,vn,` · `+u(e.lastReadAt.slice(11,19)),1)):g(``,!0),v(`button`,{class:`mini-btn read-btn`,disabled:uo.value===e.id,title:i.$t(`dcwDetail.k9r7d4e020`),onClick:t=>fo(e.id)},u(uo.value===e.id?`···`:i.$t(`dcwDetail.k9r7d4e021`)),9,yn)]),v(`td`,null,[v(`div`,bn,[y(v(`input`,{"onUpdate:modelValue":t=>A[e.id]=t,type:`number`,class:`inp write-inp mono`,placeholder:`${e.min}~${e.max}`,min:e.min,max:e.max,step:10**-e.decimals,disabled:!e.enabled,title:e.enabled?``:`当前节点暂停:开启控制后方可设定`},null,8,xn),[[n,A[e.id],void 0,{number:!0}]]),v(`button`,{class:`mini-btn write-btn`,disabled:!e.enabled||so.value===e.id||A[e.id]==null||A[e.id]===``,title:e.enabled?`下发设定值`:`当前节点暂停:开启控制后方可设定`,onClick:t=>lo(e.id,Number(A[e.id]))},u(so.value===e.id?i.$t(`dcwDetail.k3l3h80123`):i.$t(`dcwDetail.k3w6td174`)),9,Sn)])]),v(`td`,Cn,u(e.min)+` ~ `+u(e.max)+` `+u(e.unit),1),v(`td`,wn,[f(u(e.holdIntervalMs==null?i.$t(`dcwDetail.k3zul4160`):`${e.holdIntervalMs}ms`)+` `,1),v(`small`,{class:`dim`,title:i.$t(`dcwDetail.k9r7d4e016`)},`· `+u(e.readIntervalMs===0?i.$t(`dcwDetail.k9r7d4e022`):e.readIntervalMs==null?i.$t(`dcwDetail.k9r7d4e023`):`${e.readIntervalMs}ms`),9,Tn)]),v(`td`,null,u(Ua(e)),1),v(`td`,En,[v(`button`,{class:`mini-btn danger`,onClick:t=>l(S).removeNode(e.id)},u(i.$t(`dcwDetail.k3xakp063`)),9,Dn)])],2))),128)),l(S).loaded&&O.value.length===0?(s(),h(`tr`,On,[v(`td`,kn,[v(`div`,An,[v(`p`,jn,u(i.$t(`dcwDetail.k1wtecyw064`)),1)])])])):g(``,!0)])])])]),_:1},8,[`spinning`]),v(`section`,Mn,[v(`div`,Nn,[v(`h3`,null,u(i.$t(`dcwDetail.k1j8w3hd065`)),1),v(`span`,Pn,u(k.value.length)+` `+u(i.$t(`dcwDetail.k1av3wgs143`))+` `+u(Wo.value.length)+` `+u(i.$t(`dcwDetail.k48grv027`)),1),v(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:ls},u(i.$t(`dcwDetail.k1akm6dc066`)),1),v(`button`,{class:`mini-btn`,onClick:a[29]||=e=>Bo.value=!0},u(i.$t(`dcwDetail.k1aka0ki067`)),1)]),v(`p`,Fn,u(i.$t(`dcwDetail.k6bl2q8068`)),1),k.value.length?(s(),h(`div`,In,[v(`button`,{class:c([`prod-chip`,{on:U.value===``}]),onClick:a[30]||=e=>U.value=``},u(i.$t(`dcwDetail.k3x4t1069`)),3),(s(!0),h(d,null,o(k.value,e=>(s(),h(`button`,{key:e.id,class:c([`prod-chip`,{on:U.value===e.id}]),title:e.description,onClick:t=>U.value=e.id},[f(u(e.name)+` `,1),v(`span`,{class:`prod-del`,title:i.$t(`dcwDetail.k1bpfjgx012`),onClick:r(t=>l(S).removeProduct(e.id),[`stop`])},`×`,8,Rn)],10,Ln))),128))])):(s(),h(`p`,zn,u(i.$t(`dcwDetail.knov3zg070`)),1)),v(`div`,Bn,[(s(!0),h(d,null,o(Wo.value,e=>(s(),h(`div`,{key:e.id,class:`recipe-item`},[v(`div`,Vn,[v(`b`,null,u(e.name),1),e.version?(s(),h(`span`,{key:0,class:`param-chip mono`,title:l(b)(`dcwDetail.histTitle`)},`v`+u(e.version),9,Hn)):g(``,!0),v(`small`,Un,u(Go(e.productId)),1),v(`small`,Wn,u(e.id),1)]),e.description?(s(),h(`p`,Gn,u(e.description),1)):g(``,!0),v(`div`,Kn,[(s(!0),h(d,null,o(e.params,(t,n)=>(s(),h(`span`,{key:n,class:c([`param-chip`,{stale:W(t.nodeId,e.lineId)}]),title:W(t.nodeId,e.lineId)?.label??``},[f(u(Ko(t.nodeId))+` = `+u(t.value),1),W(t.nodeId,e.lineId)?(s(),h(`span`,Jn,u(W(t.nodeId,e.lineId).label),1)):g(``,!0)],10,qn))),128)),(s(!0),h(d,null,o(e.daqWindows,(t,n)=>(s(),h(`span`,{key:`w-${n}`,class:c([`param-chip daqwin`,{stale:qo(t.nodeId,e.lineId)}]),title:qo(t.nodeId,e.lineId)?.label??i.$t(`dcwDetail.k1l11api013`)},[f(` ◎ `+u($a(t.nodeId))+` ∈ [`+u(t.min??`-∞`)+`, `+u(t.max??`+∞`)+`]`,1),qo(t.nodeId,e.lineId)?(s(),h(`span`,Xn,u(qo(t.nodeId,e.lineId).label),1)):g(``,!0)],10,Yn))),128))]),v(`div`,Zn,[v(`button`,{class:`pill-btn`,onClick:t=>fs(e.id)},u(i.$t(`dcwDetail.k1497qvr071`)),9,Qn),v(`button`,{class:`mini-btn`,onClick:t=>us(e.id)},u(i.$t(`dcwDetail.k45eb0072`)),9,$n),v(`button`,{class:`mini-btn`,onClick:t=>Zo(e.id)},[f(u(l(b)(`dcwDetail.histBtn`)),1),e.version?(s(),h(`span`,tr,`·v`+u(e.version),1)):g(``,!0)],8,er),v(`button`,{class:`mini-btn danger`,onClick:t=>l(S).removeRecipe(e.id)},u(i.$t(`dcwDetail.k3xakp063`)),9,nr)])]))),128)),Wo.value.length===0?(s(),h(`div`,rr,u(i.$t(`dcwDetail.keko1xy073`)),1)):g(``,!0)]),Q.value?(s(),h(`div`,ir,[f(u(i.$t(`dcwDetail.k1l3hrvp144`))+` `+u(Q.value.runId)+` `+u(i.$t(`dcwDetail.k1g3lh2v167`))+u(Q.value.ok)+`/`+u(Q.value.total)+` `+u(i.$t(`dcwDetail.k1bqci06149`))+` `,1),v(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:cs.value,onClick:a[31]||=e=>ps(Q.value.runId)},u(cs.value?i.$t(`dcwDetail.k1br0ij9161`):i.$t(`dcwDetail.kxwei5175`)),9,ar)])):g(``,!0),to.value.length?(s(),h(`div`,or,[v(`p`,sr,u(i.$t(`dcwDetail.k1rjer8d074`)),1),v(`table`,cr,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,u(i.$t(`dcwDetail.k400lb075`)),1),v(`th`,null,u(i.$t(`dcwDetail.k48grv027`)),1),v(`th`,null,u(i.$t(`dcwDetail.k4497j076`)),1),v(`th`,null,u(i.$t(`dcwDetail.k1bqhtmu077`)),1),v(`th`,lr,u(i.$t(`dcwDetail.k40aa6061`)),1)])]),v(`tbody`,null,[(s(!0),h(d,null,o([...to.value].reverse().slice(0,8),e=>(s(),h(`tr`,{key:e.id},[v(`td`,ur,u(e.id),1),v(`td`,null,u(e.recipeName),1),v(`td`,dr,u(e.startedAt.slice(5,19))+` ~ `+u(e.endedAt?e.endedAt.slice(5,19):i.$t(`dcwDetail.k3vpfg9162`)),1),v(`td`,null,[v(`span`,{class:c([`st-pill`,e.results.every(e=>e.ok)?`ok`:`warn`])},u(e.results.filter(e=>e.ok).length)+`/`+u(e.results.length),3)]),v(`td`,fr,[v(`button`,{class:`mini-btn`,disabled:cs.value,onClick:t=>ps(e.id)},u(i.$t(`dcwDetail.k1dzwrdp078`)),9,pr),e.endedAt?g(``,!0):(s(),h(`button`,{key:0,class:`mini-btn`,onClick:t=>l(S).closeRun(e.id)},u(i.$t(`dcwDetail.k1blr7y7079`)),9,mr))])]))),128))])])])):g(``,!0),$.value?(s(),h(`div`,{key:4,class:`modal-mask`,onClick:a[33]||=r(e=>$.value=null,[`self`])},[v(`div`,hr,[v(`h3`,gr,u(i.$t(`dcwDetail.k11lq94k145`))+` `+u($.value.data.run.recipeName)+`(`+u($.value.runId)+`) `,1),v(`p`,_r,u(i.$t(`dcwDetail.k1me41w8080`)),1),v(`table`,vr,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,u(i.$t(`dcwDetail.k48hde081`)),1),v(`th`,null,u(i.$t(`dcwDetail.k45uio082`)),1),v(`th`,null,u(i.$t(`dcwDetail.k40t11083`)),1),v(`th`,null,u(i.$t(`dcwDetail.k3xuaw084`)),1),a[66]||=v(`th`,null,`min ~ max`,-1),v(`th`,null,u(i.$t(`dcwDetail.k4118o085`)),1)])]),v(`tbody`,null,[(s(!0),h(d,null,o($.value.data.daq,e=>(s(),h(`tr`,{key:e.nodeId},[v(`td`,null,[f(u(e.ch),1),v(`small`,yr,u(e.unit),1)]),v(`td`,null,u(e.nodeName),1),v(`td`,br,u(e.latest),1),v(`td`,xr,u(e.avg),1),v(`td`,Sr,u(e.min)+` ~ `+u(e.max),1),v(`td`,Cr,u(e.cnt),1)]))),128)),$.value.data.daq.length===0?(s(),h(`tr`,wr,[v(`td`,Tr,u(i.$t(`dcwDetail.kd457ry086`)),1)])):g(``,!0)])]),v(`p`,Er,u(i.$t(`dcwDetail.k12b7cxs087`)),1),v(`table`,Dr,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,u(i.$t(`dcwDetail.k3xbjr088`)),1),v(`th`,null,u(i.$t(`dcwDetail.k45uio082`)),1),v(`th`,null,u(i.$t(`dcwDetail.k3ncbsh089`)),1),v(`th`,null,u(i.$t(`dcwDetail.k3lh3mz090`)),1),v(`th`,null,u(i.$t(`dcwDetail.k454pg091`)),1),v(`th`,null,u(i.$t(`dcwDetail.k40ieu092`)),1)])]),v(`tbody`,null,[(s(!0),h(d,null,o($.value.data.writes,(e,t)=>(s(),h(`tr`,{key:t},[v(`td`,null,u(e.param),1),v(`td`,null,u(e.nodeName),1),v(`td`,Or,u(e.eng),1),v(`td`,kr,u(e.raw),1),v(`td`,null,[v(`span`,{class:c([`st-pill`,e.ok?`ok`:`alarm`])},u(e.ok?`ACK`:i.$t(`dcwDetail.k3yit7139`)),3)]),v(`td`,Ar,u(e.at.slice(5,19)),1)]))),128)),$.value.data.writes.length===0?(s(),h(`tr`,jr,[v(`td`,Mr,u(i.$t(`dcwDetail.knzcp8i093`)),1)])):g(``,!0)])]),v(`div`,Nr,[v(`button`,{class:`aw-pill outline`,onClick:a[32]||=e=>$.value=null},u(i.$t(`dcwDetail.k3x62t043`)),1)])])])):g(``,!0)]),J.value?(s(),h(`div`,{key:4,class:`modal-mask`,onClick:a[40]||=r(e=>J.value=!1,[`self`])},[v(`div`,Pr,[v(`h3`,Fr,u(Y.value?i.$t(`dcwDetail.k1iiwk0i163`):i.$t(`dcwDetail.k1efq0r9176`)),1),v(`div`,Ir,[v(`label`,Lr,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1dw4fzf094`)),1),a[67]||=v(`em`,null,`*`,-1)]),y(v(`select`,{"onUpdate:modelValue":a[34]||=e=>Z.productId=e,class:`inp`},[(s(!0),h(d,null,o(k.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Rr))),128))],512),[[t,Z.productId]])]),v(`label`,zr,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1l3f8so095`)),1),a[68]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[35]||=e=>Z.name=e,class:`inp`,placeholder:i.$t(`dcwDetail.k12c11vm014`)},null,8,Br),[[n,Z.name]])]),v(`label`,Vr,[v(`span`,null,u(i.$t(`dcwDetail.k40gkk096`)),1),y(v(`input`,{"onUpdate:modelValue":a[36]||=e=>Z.description=e,class:`inp`,placeholder:i.$t(`dcwDetail.k1hxx8hy015`)},null,8,Hr),[[n,Z.description]])])]),v(`p`,Ur,u(i.$t(`dcwDetail.ka1kfgh097`)),1),(s(!0),h(d,null,o(Z.params,(e,r)=>(s(),h(`div`,{key:r,class:`param-row`},[v(`label`,Wr,[v(`span`,null,u(i.$t(`dcwDetail.k1e2dtkt053`)),1),y(v(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(s(!0),h(d,null,o(O.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name)+`(`+u(Ka(e.templateRef))+` · `+u(e.min)+`~`+u(e.max)+` `+u(e.unit)+`) `,9,Kr))),128))],8,Gr),[[t,e.nodeId]]),W(e.nodeId,C.value)?(s(),h(`span`,qr,u(W(e.nodeId,C.value).label),1)):g(``,!0)]),v(`label`,Jr,[v(`span`,null,[f(u(i.$t(`dcwDetail.k3renp2098`)),1),a[69]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":t=>e.value=t,type:`number`,class:`inp`,step:.1},null,8,Yr),[[n,e.value,void 0,{number:!0}]])]),v(`label`,Xr,[v(`span`,null,u(i.$t(`dcwDetail.k134rw3b146`))+u(qa(e.nodeId)??`-`)+`)`,1),y(v(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1,placeholder:i.$t(`dcwDetail.k5vew9z016`)},null,8,Zr),[[n,e.min,void 0,{number:!0}]])]),v(`label`,Qr,[v(`span`,null,u(i.$t(`dcwDetail.khrv911147`))+u(Ja(e.nodeId)??`-`)+`)`,1),y(v(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1,placeholder:i.$t(`dcwDetail.kzoh5pr017`)},null,8,$r),[[n,e.max,void 0,{number:!0}]])]),v(`button`,{class:`mini-btn danger param-del`,onClick:e=>Z.params.splice(r,1)},u(i.$t(`dcwDetail.k44idg099`)),9,ei)]))),128)),v(`button`,{class:`mini-btn`,onClick:a[37]||=e=>Z.params.push({nodeId:O.value[0]?.id??``,value:``,min:``,max:``})},u(i.$t(`dcwDetail.k1broh7h100`)),1),v(`p`,ti,u(i.$t(`dcwDetail.k1h5gues101`)),1),(s(!0),h(d,null,o(Z.daqWindows,(e,r)=>(s(),h(`div`,{key:`dw-${r}`,class:`param-row`},[v(`label`,ni,[v(`span`,null,u(i.$t(`dcwDetail.k1empnnb102`)),1),y(v(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(s(!0),h(d,null,o(Ya.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name)+`(`+u(e.min)+`~`+u(e.max)+` `+u(e.unit)+`) `,9,ii))),128))],8,ri),[[t,e.nodeId]])]),v(`label`,ai,[v(`span`,null,u(i.$t(`dcwDetail.kqm08ap103`)),1),y(v(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1},null,8,oi),[[n,e.min,void 0,{number:!0}]])]),v(`label`,si,[v(`span`,null,u(i.$t(`dcwDetail.kpypf8g104`)),1),y(v(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1},null,8,ci),[[n,e.max,void 0,{number:!0}]])]),v(`button`,{class:`mini-btn danger param-del`,onClick:e=>Z.daqWindows.splice(r,1)},u(i.$t(`dcwDetail.k44idg099`)),9,li)]))),128)),v(`button`,{class:`mini-btn`,disabled:Ya.value.length===0,title:Ya.value.length===0?`本产线暂无数采节点`:``,onClick:a[38]||=e=>Z.daqWindows.push({nodeId:Ya.value[0]?.id??``,min:``,max:``})},u(i.$t(`dcwDetail.kv1de1p105`)),9,ui),ss.value?(s(),h(`p`,di,u(ss.value),1)):g(``,!0),X.value?(s(),h(`p`,fi,u(X.value),1)):g(``,!0),v(`div`,pi,[v(`button`,{class:`aw-pill outline`,onClick:a[39]||=e=>J.value=!1},u(i.$t(`dcwDetail.k3xdnn052`)),1),v(`button`,{class:`pill-btn`,disabled:os.value,onClick:ds},u(os.value?i.$t(`dcwDetail.k1b38d59164`):i.$t(`dcwDetail.k1b3kwg0177`)),9,mi)])])])):g(``,!0),Jo.value?(s(),h(`div`,{key:5,class:`modal-mask`,onClick:a[42]||=r(e=>Jo.value=!1,[`self`])},[v(`div`,hi,[v(`div`,gi,[v(`h3`,null,[f(u(l(b)(`dcwDetail.histTitle`)),1),G.value?(s(),h(`span`,_i,u(G.value.name)+` · v`+u(G.value.version),1)):g(``,!0)]),v(`button`,{class:`mini-btn`,onClick:a[41]||=e=>Jo.value=!1},` ✕ `)]),K.value?(s(),h(`p`,vi,u(K.value),1)):g(``,!0),Xo.value?(s(),h(`p`,yi,u(l(b)(`dcwDetail.histLoading`)),1)):Yo.value.length===0?(s(),h(`div`,bi,u(l(b)(`dcwDetail.histEmpty`)),1)):(s(!0),h(d,{key:3},o(Yo.value,(e,t)=>(s(),h(`div`,{key:e.version,class:c([`ver-row`,{cur:e.current}])},[v(`div`,xi,[v(`span`,Si,`v`+u(e.version),1),v(`span`,{class:c([`ver-src`,e.by??(e.current?`cur`:``)])},u(e.current?l(b)(`dcwDetail.histCurrent`):Qo(e.by)),3),v(`span`,Ci,u(e.at.slice(0,19).replace(`T`,` `)),1),v(`span`,wi,u(e.actorName||`—`),1),e.current?g(``,!0):(s(),h(`button`,{key:0,class:`mini-btn`,onClick:t=>es(e.version)},u(l(b)(`dcwDetail.revertTo`)),9,Ti))]),e.description?(s(),h(`p`,Ei,u(e.description),1)):g(``,!0),v(`p`,Di,u($o(e,t)),1)],2))),128))])])):g(``,!0),v(`section`,Oi,[v(`p`,ki,u(i.$t(`dcwDetail.k1us3jse106`)),1),v(`div`,Ai,[v(`label`,ji,[v(`span`,null,u(i.$t(`dcwDetail.k3waz1025`)),1),y(v(`select`,{"onUpdate:modelValue":a[43]||=e=>q.productId=e,class:`inp`,onChange:a[44]||=e=>q.recipeId=``},[v(`option`,Mi,u(i.$t(`dcwDetail.k1bkl1jx107`)),1),(s(!0),h(d,null,o(k.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Ni))),128))],544),[[t,q.productId]])]),v(`label`,Pi,[v(`span`,null,u(i.$t(`dcwDetail.k48grv027`)),1),y(v(`select`,{"onUpdate:modelValue":a[45]||=e=>q.recipeId=e,class:`inp`,disabled:!q.productId},[v(`option`,Ii,u(i.$t(`dcwDetail.k1bkx7cr108`)),1),(s(!0),h(d,null,o(Wo.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Li))),128))],8,Fi),[[t,q.recipeId]])]),v(`label`,Ri,[v(`span`,null,u(i.$t(`dcwDetail.k1demcae109`)),1),y(v(`select`,{"onUpdate:modelValue":a[46]||=e=>q.paramKey=e,class:`inp`},[v(`option`,zi,u(i.$t(`dcwDetail.k1bkx7ya110`)),1),(s(!0),h(d,null,o(as.value,e=>(s(),h(`option`,{key:e,value:e},u(e),9,Bi))),128))],512),[[t,q.paramKey]])]),v(`label`,Vi,[v(`span`,null,u(i.$t(`dcwDetail.k45uio082`)),1),y(v(`select`,{"onUpdate:modelValue":a[47]||=e=>q.nodeId=e,class:`inp`},[v(`option`,Hi,u(i.$t(`dcwDetail.k1bkul3k111`)),1),(s(!0),h(d,null,o(Ya.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Ui))),128))],512),[[t,q.nodeId]])]),v(`label`,Wi,[v(`span`,null,u(i.$t(`dcwDetail.kx2ojn0112`)),1),y(v(`input`,{"onUpdate:modelValue":a[48]||=e=>q.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[n,q.lastMin,void 0,{number:!0}]])]),v(`label`,Gi,[v(`span`,null,u(i.$t(`dcwDetail.kjvnvn4113`)),1),y(v(`input`,{"onUpdate:modelValue":a[49]||=e=>q.bucketMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[n,q.bucketMs,void 0,{number:!0}]])]),v(`div`,Ki,[v(`button`,{class:`pill-btn`,disabled:ns.value,onClick:is},u(ns.value?i.$t(`dcwDetail.k1eyx09r165`):i.$t(`dcwDetail.k416ek178`)),9,qi)])]),rs.value?(s(),h(`p`,Ji,u(rs.value),1)):g(``,!0),ts.value?(s(),h(`div`,Yi,[v(`table`,Xi,[v(`thead`,null,[v(`tr`,null,[v(`th`,null,u(i.$t(`dcwDetail.k48hde081`)),1),v(`th`,null,u(i.$t(`dcwDetail.k45uio082`)),1),v(`th`,null,u(i.$t(`dcwDetail.k42kcu114`)),1),v(`th`,null,u(i.$t(`dcwDetail.k49ujb115`)),1),v(`th`,null,u(i.$t(`dcwDetail.k40pvw116`)),1),v(`th`,null,u(i.$t(`dcwDetail.k3xho3117`)),1)])]),v(`tbody`,null,[(s(!0),h(d,null,o(ts.value.channels,e=>(s(),h(`tr`,{key:e.nodeId},[v(`td`,null,[f(u(e.ch),1),v(`small`,Zi,u(e.unit),1)]),v(`td`,null,u(e.nodeName),1),v(`td`,Qi,u(e.points.length),1),v(`td`,$i,u(ms(e.points[0])),1),v(`td`,ea,u(ms(e.points[e.points.length-1])),1),v(`td`,ta,u(new Date(e.points[0]?.at??0).toLocaleTimeString())+` ~ `+u(new Date(e.points[e.points.length-1]?.at??0).toLocaleTimeString()),1)]))),128))])])])):g(``,!0)]),no.value.length?(s(),h(`section`,na,[v(`p`,ra,u(i.$t(`dcwDetail.kw7ym9b148`))+` `+u(no.value.length)+` `+u(i.$t(`dcwDetail.k40bfz150`)),1),v(`table`,ia,[v(`tbody`,null,[(s(!0),h(d,null,o(no.value.slice(0,12),e=>(s(),h(`tr`,{key:e.id},[v(`td`,aa,u(e.at.slice(5,19)),1),v(`td`,null,u(e.param),1),v(`td`,null,u(e.nodeName),1),v(`td`,oa,u(e.eng),1),v(`td`,sa,` raw `+u(e.raw??`-`),1),v(`td`,null,[v(`span`,{class:c([`st-pill`,e.ok?`ok`:`alarm`])},u(e.ok?`ACK`:i.$t(`dcwDetail.k3yit7139`)),3)]),v(`td`,ca,u(e.recipeRunId?i.$t(`dcwDetail.k6vgks7181`,{p0:e.recipeRunId}):`手动`),1)]))),128))])])])):g(``,!0),Bo.value?(s(),h(`div`,{key:7,class:`modal-mask`,onClick:a[53]||=r(e=>Bo.value=!1,[`self`])},[v(`div`,la,[v(`h3`,ua,u(i.$t(`dcwDetail.k1efduyf118`)),1),v(`div`,da,[v(`label`,fa,[v(`span`,null,[f(u(i.$t(`dcwDetail.k1avjrl6119`)),1),a[70]||=v(`em`,null,`*`,-1)]),y(v(`input`,{"onUpdate:modelValue":a[50]||=e=>H.name=e,class:`inp`,placeholder:i.$t(`dcwDetail.k12c11vm014`)},null,8,pa),[[n,H.name]])]),v(`label`,ma,[v(`span`,null,u(i.$t(`dcwDetail.k40gkk096`)),1),y(v(`input`,{"onUpdate:modelValue":a[51]||=e=>H.description=e,class:`inp`,placeholder:i.$t(`dcwDetail.k1hxx8hy015`)},null,8,ha),[[n,H.description]])])]),Ho.value?(s(),h(`p`,ga,u(Ho.value),1)):g(``,!0),v(`div`,_a,[v(`button`,{class:`aw-pill outline`,onClick:a[52]||=e=>Bo.value=!1},u(i.$t(`dcwDetail.k3xdnn052`)),1),v(`button`,{class:`pill-btn`,disabled:Vo.value,onClick:Uo},u(Vo.value?i.$t(`dcwDetail.k1bg4759156`):i.$t(`dcwDetail.k1bg4kn6179`)),9,va)])])])):g(``,!0),l(S).error?(s(),h(`p`,ya,[f(u(l(S).error)+`(`,1),ne(p,{to:`/workshop`},{default:te(()=>[f(u(i.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),a[71]||=f(`) `,-1)])):g(``,!0),v(`section`,ba,[v(`div`,xa,[v(`b`,null,u(i.$t(`dcwDetail.k1ledgt001`)),1),y(v(`select`,{"onUpdate:modelValue":a[54]||=e=>E.value=e,class:`inp`,onChange:Za},[v(`option`,Sa,u(i.$t(`dcwDetail.k1ledgs001`)),1),(s(!0),h(d,null,o(O.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Ca))),128))],544),[[t,E.value]])]),D.value?(s(),h(d,{key:0},[v(`div`,wa,[v(`div`,Ta,[v(`small`,null,u(i.$t(`dcwDetail.k1ledgv001`)),1),v(`b`,Ea,u(D.value.current??`--`),1)]),v(`div`,Da,[v(`small`,null,u(i.$t(`dcwDetail.k1ledgv002`)),1),v(`b`,Oa,u(D.value.recipeTarget??`--`),1)]),v(`div`,ka,[v(`small`,null,u(i.$t(`dcwDetail.k1ledgv003`)),1),v(`b`,Aa,u(D.value.lastGood??`--`),1)]),v(`button`,{class:`mini-btn`,onClick:Za},u(i.$t(`dcwDetail.k1ledga001`)),1),v(`button`,{class:`mini-btn danger`,onClick:Qa},u(i.$t(`dcwDetail.k1ledga002`)),1)]),v(`div`,ja,[v(`div`,Ma,[v(`small`,Na,u(i.$t(`dcwDetail.k1ledgh001`)),1),v(`ul`,Pa,[(s(!0),h(d,null,o(D.value.journal,e=>(s(),h(`li`,{key:e.id},u(e.at.slice(5,16).replace(`T`,` `))+` [`+u(e.source)+`] `+u(e.prevValue??`?`)+` → `+u(e.newValue),1))),128))])]),v(`div`,Fa,[v(`small`,Ia,u(i.$t(`dcwDetail.k1ledgr001`)),1),v(`ul`,La,[(s(!0),h(d,null,o(D.value.records,e=>(s(),h(`li`,{key:e.id,class:`ledger-rec`},[v(`span`,{class:c([`rec-st`,e.status])},u(e.status),3),v(`span`,Ra,u(e.params[0]?.from??`?`)+` → `+u(e.params[0]?.to),1),v(`small`,null,u(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):g(``,!0)])]))}}}),[[`__scopeId`,`data-v-385b5f14`]]);export{za as default};
@@ -1 +0,0 @@
1
- import{C as e,G as t,H as n,Ht as ee,St as r,Wt as i,a,b as o,f as s,ft as c,g as l,h as u,lt as d,m as f,mt as p,nt as m,p as h,t as g,x as _}from"./BSCpFtzG.js";import{d as te}from"./-6OnbLFb.js";import{n as v}from"./B5S_UyaC.js";import{n as y}from"./BeIfu4N3.js";import{t as ne}from"./VLI2Zy4t.js";import{n as re,r as ie,t as ae}from"./0jKrzLuM.js";import{t as oe}from"./BN_PdN3J.js";import{r as b}from"./D-Ca4BGY.js";import{t as se}from"./Cn3J3NXR.js";import{i as ce,n as le,t as ue}from"./BCJFMBQ6.js";import{r as de,t as x}from"./CKfhtOt7.js";import{t as fe}from"./DoAlYsiF.js";import{t as pe}from"./ORt9oDIy.js";import{t as me}from"./Dy-mxvXY2.js";import{t as he}from"./C9f8QMp12.js";import{t as ge}from"./DoLasgPj2.js";import{t as S}from"./BcrN7QEl2.js";import{t as C}from"./G0qIw7Gq2.js";import{t as w}from"./kZV5TQvh2.js";import{t as T}from"./CNs_Ozdc2.js";var _e={class:`page`},ve={class:`head`},ye={class:`sub`},be={class:`toolbar`},xe={key:0,class:`admin-note`},Se={class:`grid`},Ce={class:`card-head`},we={class:`name`},Te={class:`owner`},E={class:`members`},D={class:`member-name`},O={class:`member-harness`},Ee=[`onClick`],k=g(e({__name:`teams`,setup(e){let{t:g}=y();T({layout:`default`});let k=w(),A=S(),j=p([]),M=p([]),N=p([]),P=p(!1),F=async()=>{P.value=!0;try{let[e,t,n]=await Promise.all([k.listTeams(),k.listTemplates(),k.listChannels()]);j.value=e?.data??[],M.value=t?.data??[],N.value=n?.data??[]}finally{P.value=!1}};F();let I=p({});(async()=>{try{let e=(await k.listHarnesses())?.data?.harnesses;if(Array.isArray(e)){let t={};for(let n of e)t[n.id]=n.available!==!1;I.value=t}}catch{}})();let L=e=>I.value[e.harness]===!1,De=s(()=>M.value.map(e=>{let t=L(e);return{value:e.id,label:t?`${e.name}(${e.harness} · ${e(`agents.notInstalled`)})`:`${e.name}(${e.harness})`,disabled:t}})),R=p(`all`),z=s(()=>{let e=A.user?.id;switch(R.value){case`mine`:return j.value.filter(t=>t.ownerUserId===e);case`public`:return j.value.filter(e=>e.visibility===`public`);case`builtin`:return j.value.filter(e=>e.isBuiltin);default:return j.value}}),B=e=>!e.isBuiltin&&(e.ownerUserId===A.user?.id||A.isAdmin),V=e=>e.isBuiltin?{text:g(`teams.k3x23c018`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:g(`teams.k3wv1t019`),color:`green`}:{text:g(`teams.k447jj020`),color:`default`},H=p(!1),U=c({name:``,description:``,visibility:`private`}),Oe=async()=>{if(!U.name.trim()){b.warning(g(`teams.k1bvcdo2021`));return}await k.createTeam({name:U.name.trim(),description:U.description||void 0,visibility:U.visibility}),b.success(g(`teams.k3n5hak022`)),H.value=!1,U.name=``,U.description=``,U.visibility=`private`,F()},ke=async(e,t)=>{try{await k.updateTeam(e.id,{visibility:t?`public`:`private`}),b.success(g(t?`teams.k1globhp023`:`teams.k1xxabaf024`)),F()}catch(e){b.error(C(e))}},W=p(!1),G=p(null),K=p(``),q=p(`worker`),Ae=e=>{G.value=e,K.value=``,q.value=`worker`,W.value=!0},je=async()=>{if(!G.value||!K.value){b.warning(g(`teams.k1kw4rtj025`));return}try{await k.addTeamMember(G.value.id,{agentId:K.value,role:q.value}),b.success(g(`teams.k3n5hzw026`)),W.value=!1,F()}catch(e){b.error(C(e))}},Me=async(e,t)=>{await k.removeTeamMember(e.id,t),F()},J=p(!1),Y=p(null),X=p(``),Z=p(!1),Q=e=>{Y.value=e,X.value=``,J.value=!0},Ne=async()=>{if(!Y.value||!X.value){b.warning(`选择目标 Channel`);return}Z.value=!0;try{let e=(await k.deployTeam(Y.value.id,X.value))?.data?.agents?.length??0;b.success(g(`teams.kh90glh031`,{p0:e})),J.value=!1}catch(e){b.error(C(e))}finally{Z.value=!1}},Pe=async e=>{await k.deleteTeam(e.id),b.success(g(`teams.k1oxjrxx027`)),F()};return v({title:()=>g(`titles.teams`)}),(e,s)=>{let c=ne,p=pe,g=ae,v=ue,y=ge,b=de,S=x,C=me,w=he,T=se,k=ie,M=le,F=ce,I=re,L=fe,$=oe;return n(),l(`div`,_e,[h(`div`,ve,[h(`div`,null,[h(`h2`,null,`AgentTeam `+i(e.$t(`teams.k3svl8y028`)),1),h(`p`,ye,i(e.$t(`teams.k12gl4wn008`)),1)]),_(p,null,{default:m(()=>[_(c,{onClick:s[0]||=t=>(`navigateTo`in e?e.navigateTo:r(te))(`/workshop`)},{default:m(()=>[o(i(e.$t(`teams.krpx6qa009`)),1)]),_:1}),_(c,{type:`primary`,onClick:s[1]||=e=>H.value=!0},{default:m(()=>[o(i(e.$t(`teams.k1efmuyx002`)),1)]),_:1})]),_:1})]),h(`div`,be,[_(g,{value:r(R),"onUpdate:value":s[2]||=e=>d(R)?R.value=e:null,size:`small`,options:[{value:`all`,label:e.$t(`chips.chipAll`,{n:r(j).length})},{value:`mine`,label:e.$t(`chips.mine`)},{value:`public`,label:e.$t(`chips.public`)},{value:`builtin`,label:e.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),r(A).isAdmin?(n(),l(`span`,xe,[s[13]||=h(`span`,{class:`i-tabler-shield-check`},null,-1),o(` `+i(e.$t(`teams.k1bpgi8h010`)),1)])):u(``,!0)]),_(w,{spinning:r(P)},{default:m(()=>[h(`div`,Se,[(n(!0),l(a,null,t(r(z),r=>(n(),l(`div`,{key:r.id,class:`card`},[h(`div`,Ce,[h(`span`,we,i(r.name),1),_(v,{color:V(r).color,class:`vis-tag`},{default:m(()=>[V(r).icon?(n(),l(`span`,{key:0,class:ee(V(r).icon)},null,2)):u(``,!0),o(i(V(r).text),1)]),_:2},1032,[`color`]),!r.isBuiltin&&B(r)?(n(),f(y,{key:0,checked:r.visibility===`public`,size:`small`,"checked-children":`公开`,"un-checked-children":`私有`,onChange:e=>ke(r,e===!0)},null,8,[`checked`,`onChange`])):u(``,!0),h(`span`,Te,i(r.ownerName??`-`),1),B(r)?(n(),f(C,{key:1},{overlay:m(()=>[_(S,null,{default:m(()=>[_(b,{onClick:e=>Q(r)},{default:m(()=>[...s[14]||=[o(` 部署到 Channel… `,-1)]]),_:1},8,[`onClick`]),_(b,{danger:``,onClick:e=>Pe(r)},{default:m(()=>[o(i(e.$t(`teams.k1bpojhf011`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),default:m(()=>[s[15]||=h(`span`,{class:`i-tabler-dots op`},null,-1)]),_:2},1024)):(n(),f(c,{key:2,size:`small`,type:`text`,title:e.$t(`teams.kxheuf1001`),onClick:e=>Q(r)},{default:m(()=>[o(i(e.$t(`teams.k48ja7012`)),1)]),_:1},8,[`title`,`onClick`]))]),h(`div`,E,[(n(!0),l(a,null,t(r.members,e=>(n(),l(`div`,{key:e.templateId,class:`member`},[_(v,{color:e.role===`lead`?`gold`:`blue`,class:`role`},{default:m(()=>[o(i(e.role),1)]),_:2},1032,[`color`]),h(`span`,D,i(e.name),1),h(`span`,O,i(e.harness),1),B(r)?(n(),l(`span`,{key:0,class:`i-tabler-x rm`,onClick:t=>Me(r,e.templateId)},null,8,Ee)):u(``,!0)]))),128)),B(r)?(n(),f(c,{key:0,size:`small`,type:`dashed`,block:``,onClick:e=>Ae(r)},{default:m(()=>[o(i(e.$t(`teams.krt2oib013`)),1)]),_:1},8,[`onClick`])):u(``,!0)])]))),128)),r(z).length===0?(n(),l(`div`,{key:0,class:`card placeholder`,onClick:s[3]||=e=>H.value=!0},[s[16]||=h(`span`,{class:`i-tabler-plus big`},null,-1),h(`span`,null,i(e.$t(`teams.k6cbbgf014`)),1)])):u(``,!0)])]),_:1},8,[`spinning`]),_(L,{open:r(H),"onUpdate:open":s[7]||=e=>d(H)?H.value=e:null,title:e.$t(`teams.k1efmuyx002`),"ok-text":`创建`,"cancel-text":`取消`,onOk:Oe},{default:m(()=>[_(I,{layout:`vertical`},{default:m(()=>[_(k,{label:e.$t(`teams.k3xhia003`)},{default:m(()=>[_(T,{value:r(U).name,"onUpdate:value":s[4]||=e=>r(U).name=e},null,8,[`value`])]),_:1},8,[`label`]),_(k,{label:e.$t(`teams.k40gkk004`)},{default:m(()=>[_(T,{value:r(U).description,"onUpdate:value":s[5]||=e=>r(U).description=e},null,8,[`value`])]),_:1},8,[`label`]),_(k,{label:e.$t(`teams.k3lrqn0005`)},{default:m(()=>[_(F,{value:r(U).visibility,"onUpdate:value":s[6]||=e=>r(U).visibility=e},{default:m(()=>[_(M,{value:`private`},{default:m(()=>[o(i(e.$t(`teams.k17jfge3015`)),1)]),_:1}),_(M,{value:`public`},{default:m(()=>[o(i(e.$t(`teams.k1h2lq0o016`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`,`title`]),_(L,{open:r(W),"onUpdate:open":s[10]||=e=>d(W)?W.value=e:null,title:e.$t(`teams.k6ljhyv029`,{p0:r(G)?.name??``}),"ok-text":`加入`,"cancel-text":`取消`,onOk:je},{default:m(()=>[_(I,{layout:`vertical`},{default:m(()=>[_(k,{label:e.$t(`teams.k41ds5006`)},{default:m(()=>[_($,{value:r(K),"onUpdate:value":s[8]||=e=>d(K)?K.value=e:null,options:r(De)},null,8,[`value`,`options`])]),_:1},8,[`label`]),_(k,{label:e.$t(`teams.k479op007`)},{default:m(()=>[_(F,{value:r(q),"onUpdate:value":s[9]||=e=>d(q)?q.value=e:null},{default:m(()=>[_(M,{value:`worker`},{default:m(()=>[...s[17]||=[o(` worker `,-1)]]),_:1}),_(M,{value:`lead`},{default:m(()=>[o(i(e.$t(`teams.keowzlv017`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`,`title`]),_(L,{open:r(J),"onUpdate:open":s[12]||=e=>d(J)?J.value=e:null,title:e.$t(`teams.k1c0o6oe030`,{p0:r(Y)?.name??``}),"confirm-loading":r(Z),"ok-text":`部署`,"cancel-text":`取消`,onOk:Ne},{default:m(()=>[_(I,{layout:`vertical`},{default:m(()=>[_(k,{label:`目标 Channel(须无 lead 冲突)`},{default:m(()=>[_($,{value:r(X),"onUpdate:value":s[11]||=e=>d(X)?X.value=e:null,options:r(N).map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`options`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`])])}}}),[[`__scopeId`,`data-v-79de9b56`]]);export{k as default};
@@ -1 +0,0 @@
1
- import{C as e,a as t,f as n,mt as r,vt as i,x as a}from"./BSCpFtzG.js";import{$ as o,At as s,Ct as c,J as l,L as u,R as d,at as f,d as p,h as m,it as h,j as g,kt as _,n as v,tt as y,u as b}from"./BDUjyaF4.js";import{O as x,a as S,f as C,i as w,m as T,s as E,tt as D}from"./DtBu71ev.js";import{t as O}from"./BfGc7TJp.js";import{H as k,K as A,g as j,r as M,t as N}from"./VLI2Zy4t.js";import{b as P,o as F}from"./D-Ca4BGY.js";import{n as I}from"./ORt9oDIy.js";var L=e=>{let{componentCls:t,popoverBg:n,popoverColor:r,width:i,fontWeightStrong:a,popoverPadding:o,boxShadowSecondary:s,colorTextHeading:c,borderRadiusLG:l,zIndexPopup:u,marginXS:d,colorBgElevated:f}=e;return[{[t]:_(_({},m(e)),{position:`absolute`,top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:`normal`,whiteSpace:`normal`,textAlign:`start`,cursor:`auto`,userSelect:`text`,"--antd-arrow-background-color":f,"&-rtl":{direction:`rtl`},"&-hidden":{display:`none`},[`${t}-content`]:{position:`relative`},[`${t}-inner`]:{backgroundColor:n,backgroundClip:`padding-box`,borderRadius:l,boxShadow:s,padding:o},[`${t}-title`]:{minWidth:i,marginBottom:d,color:c,fontWeight:a},[`${t}-inner-content`]:{color:r}})},E(e,{colorBg:`var(--antd-arrow-background-color)`}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`,[`${t}-content`]:{display:`inline-block`}}}]},R=e=>{let{componentCls:t}=e;return{[t]:D.map(n=>{let r=e[`${n}-6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:`transparent`}}}})}},z=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorSplit:i,paddingSM:a,controlHeight:o,fontSize:s,lineHeight:c,padding:l}=e,u=o-Math.round(s*c),d=u/2,f=u/2-n,p=l;return{[t]:{[`${t}-inner`]:{padding:0},[`${t}-title`]:{margin:0,padding:`${d}px ${p}px ${f}px`,borderBottom:`${n}px ${r} ${i}`},[`${t}-inner-content`]:{padding:`${a}px ${p}px`}}}},B=p(`Popover`,e=>{let{colorBgElevated:t,colorText:n,wireframe:r}=e,i=b(e,{popoverBg:t,popoverColor:n,popoverPadding:12});return[L(i),R(i),r&&z(i),T(i,`zoom-big`)]},e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+30,width:177}}),V=e({compatConfig:{MODE:3},name:`APopover`,inheritAttrs:!1,props:O(_(_({},C()),{content:l(),title:l()}),_(_({},S()),{trigger:`hover`,placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1})),setup(e,i){let{expose:o,slots:l,attrs:u}=i,d=r();g(e.visible===void 0,`popover`,"`visible` will be removed in next major version, please use `open` instead."),o({getPopupDomNode:()=>{var e;return((e=d.value)?.getPopupDomNode)?.call(e)}});let{prefixCls:p,configProvider:m}=v(`popover`,e),[h,_]=B(p),y=n(()=>m.getPrefixCls()),b=()=>{let{title:n=f(l.title?.call(l)),content:r=f(l.content?.call(l))}=e,i=!!(Array.isArray(n)?n.length:n),o=!!(Array.isArray(r)?r.length:n);return!i&&!o?null:a(t,null,[i&&a(`div`,{class:`${p.value}-title`},[n]),a(`div`,{class:`${p.value}-inner-content`},[r])])};return()=>{let t=c(e.overlayClassName,_.value);return h(a(w,s(s(s({},A(e,[`title`,`content`])),u),{},{prefixCls:p.value,ref:d,overlayClassName:t,transitionName:P(y.value,`zoom-big`,e.transitionName),"data-popover-inject":!0}),{title:b,default:l.default}))}}}),H=h(V),U=e=>{let{componentCls:t,iconCls:n,zIndexPopup:r,colorText:i,colorWarning:a,marginXS:o,fontSize:s,fontWeightStrong:c,lineHeight:l}=e;return{[t]:{zIndex:r,[`${t}-inner-content`]:{color:i},[`${t}-message`]:{position:`relative`,marginBottom:o,color:i,fontSize:s,display:`flex`,flexWrap:`nowrap`,alignItems:`start`,[`> ${t}-message-icon ${n}`]:{color:a,fontSize:s,flex:`none`,lineHeight:1,paddingTop:(Math.round(s*l)-s)/2},"&-title":{flex:`auto`,marginInlineStart:o},"&-title-only":{fontWeight:c}},[`${t}-description`]:{position:`relative`,marginInlineStart:s+o,marginBottom:o,color:i,fontSize:s},[`${t}-buttons`]:{textAlign:`end`,button:{marginInlineStart:o}}}}},W=p(`Popconfirm`,e=>U(e),e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}}),G=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},K=e({compatConfig:{MODE:3},name:`APopconfirm`,inheritAttrs:!1,props:O(_(_({},C()),{prefixCls:String,content:l(),title:l(),description:l(),okType:y(`primary`),disabled:{type:Boolean,default:!1},okText:l(),cancelText:l(),icon:l(),okButtonProps:o(),cancelButtonProps:o(),showCancel:{type:Boolean,default:!0},onConfirm:Function,onCancel:Function}),_(_({},S()),{trigger:`click`,placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0,okType:`primary`,disabled:!1})),slots:Object,setup(e,t){let{slots:o,emit:l,expose:f,attrs:p}=t,m=r();g(e.visible===void 0,`Popconfirm`,"`visible` will be removed in next major version, please use `open` instead."),f({getPopupDomNode:()=>{var e;return((e=m.value)?.getPopupDomNode)?.call(e)}});let[h,y]=x(!1,{value:i(e,`open`)}),b=(t,n)=>{e.open===void 0&&y(t),l(`update:open`,t),l(`openChange`,t,n)},S=e=>{b(!1,e)},C=t=>e.onConfirm?.call(e,t),w=t=>{var n;b(!1,t),(n=e.onCancel)==null||n.call(e,t)},T=e=>{e.keyCode===j.ESC&&h&&b(!1,e)},E=t=>{let{disabled:n}=e;n||b(t)},{prefixCls:D,getPrefixCls:O}=v(`popconfirm`,e),L=n(()=>O()),R=n(()=>O(`btn`)),[z]=W(D),[B]=u(`Popconfirm`,d.Popconfirm),V=()=>{let{okButtonProps:t,cancelButtonProps:n,title:r=o.title?.call(o),description:i=o.description?.call(o),cancelText:s=o.cancel?.call(o),okText:c=o.okText?.call(o),okType:l,icon:u=o.icon?.call(o)||a(F,null,null),showCancel:d=!0}=e,{cancelButton:f,okButton:p}=o,m=_({onClick:w,size:`small`},n),h=_(_(_({onClick:C},M(l)),{size:`small`}),t);return a(`div`,{class:`${D.value}-inner-content`},[a(`div`,{class:`${D.value}-message`},[u&&a(`span`,{class:`${D.value}-message-icon`},[u]),a(`div`,{class:[`${D.value}-message-title`,{[`${D.value}-message-title-only`]:!!i}]},[r])]),i&&a(`div`,{class:`${D.value}-description`},[i]),a(`div`,{class:`${D.value}-buttons`},[d?f?f(m):a(N,m,{default:()=>[s||B.value.cancelText]}):null,p?p(h):a(I,{buttonProps:_(_({size:`small`},M(l)),t),actionFn:C,close:S,prefixCls:R.value,quitOnNullishReturnValue:!0,emitEvent:!0},{default:()=>[c||B.value.okText]})])])};return()=>{let{placement:t,overlayClassName:n,trigger:r=`click`}=e,i=G(e,[`placement`,`overlayClassName`,`trigger`]),l=A(i,[`title`,`content`,`cancelText`,`okText`,`onUpdate:open`,`onConfirm`,`onCancel`,`prefixCls`]),u=c(D.value,n);return z(a(H,s(s(s({},l),p),{},{trigger:r,placement:t,onOpenChange:E,open:h.value,overlayClassName:u,transitionName:P(L.value,`zoom-big`,e.transitionName),ref:m,"data-popover-inject":!0}),{default:()=>[k(o.default?.call(o)||[],{onKeydown:e=>{T(e)}},!1)],content:V}))}}}),q=h(K);export{q as t};
@@ -1 +0,0 @@
1
- import{H as e,U as t,W as n,q as r}from"./rqZ-1SoP.js";import{C as i,F as a,G as o,H as s,Ht as c,St as l,Wt as u,a as d,b as f,et as p,f as m,ft as ee,g as h,h as g,mt as _,nt as v,p as y,rt as b,t as x,x as S,z as C}from"./BSCpFtzG.js";import{a as te}from"./vJ4FPb-_.js";import{t as ne}from"./D8CqF0yy.js";import{n as re}from"./BeIfu4N3.js";import{t as ie}from"./DXRZPxGs.js";import{t as ae}from"./G0qIw7Gq2.js";import{t as oe}from"./CNs_Ozdc2.js";import{t as se}from"./DAR70Lf52.js";import{a as ce,n as w,t as le}from"./C1CSiSBN.js";import{t as ue}from"./X6IraCTB.js";var de={class:`page`},fe={class:`aw-kicker`},pe={class:`aw-page-head`},me={key:0,class:`err`},he={key:1,class:`grid`},ge={class:`col-live`},_e={class:`aw-tile value-card`},ve={class:`aw-kicker`},ye={class:`big-val mono`},be={class:`facts mono`},xe={class:`col-form aw-tile pad`},Se={class:`sec`},Ce={class:`field`},we={class:`field`},Te={value:``},Ee=[`value`],De={class:`field`},Oe=[`value`,`disabled`],ke={class:`field row`},Ae=[`disabled`],je={class:`field row`},Me=[`disabled`],Ne=[`disabled`],Pe={class:`field row`},Fe=[`disabled`],Ie={class:`field`},Le={class:`field`},Re={class:`field-row`},ze={class:`field`},Be={class:`field`},Ve={class:`field`},He={class:`field`},Ue=[`disabled`],We={class:`sec mt`},Ge={class:`driver-grid`},Ke={key:0},qe=[`onUpdate:modelValue`],Je=[`value`],Ye=[`onUpdate:modelValue`,`type`,`placeholder`],Xe={class:`test-row`},Ze=[`disabled`],Qe={class:`sec mt`},$e={class:`bind-row`},et={value:``},tt=[`value`],nt={class:`col-hist aw-tile pad`},rt={class:`hist-hd`},it={class:`sec`},at={class:`hist-ctl mono`},ot=[`value`],st={class:`raw-table mono`},ct={key:2,class:`aw-tile pad frames-tile`},lt={class:`hist-hd`},ut={class:`sec`},dt={class:`mono frames-n`},ft=[`viewBox`],pt=[`points`],mt={class:`raw-table mono`},ht={key:0,class:`gal`},gt=[`title`,`onClick`],_t=[`src`],vt={class:`mono`},yt={key:1,class:`frames-empty`},bt=[`src`],T=320,xt=84,St=`#35e0a0`,Ct=`rgba(120,135,160,0.18)`,E=`rgba(140,155,175,0.8)`,D=x(i({__name:`[id]`,setup(i){let{t:x}=re();oe({layout:`default`});let D=te(),O=m(()=>String(D.params.id??``)),k=le(),A=se();A.load();let j=ue(),M=m(()=>k.nodeById(O.value)??null),N=m(()=>{let e=M.value?ce(M.value.templateRef):``;return k.templates.find(t=>t.key===e)??null}),wt={ok:x(`daqDetail.k41k5c026`),warn:x(`daqDetail.k49z8v027`),alarm:x(`daqDetail.k3xmid028`),offline:x(`daqDetail.k44c2n029`)},P=()=>{let e=M.value;return!e||!k.controller.running||!e.enabled?`offline`:e.state},F=null;C(()=>{F=k.ensureWsFeed(),k.load(),j.load(),L.value&&z()}),a(()=>F?.());let I=m(()=>N.value?.signalKind??`scalar`),L=m(()=>I.value!==`scalar`),R=m(()=>k.framesOf(O.value));async function z(){O.value&&await k.fetchFrames(O.value,{limit:24}).catch(()=>{})}p(O,()=>{L.value&&z()});let B=e=>new Date(e).toLocaleTimeString(`zh-CN`,{hour12:!1}),V=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `),Tt=m(()=>R.value.find(e=>e.kind===`vector`&&e.points?.length)),Et=m(()=>{let e=Tt.value?.points??[];if(e.length<2)return``;let t=Math.min(...e),n=Math.max(...e)-t||1;return e.map((r,i)=>`${(i/(e.length-1)*T).toFixed(1)},${(78-(r-t)/n*72).toFixed(1)}`).join(` `)}),H=_(null);function Dt(e){return e==null?x(`daqDetail.k9vnp9h053`,{p0:k.controller.defaultPublishIntervalMs}):e===0?x(`daqDetail.k1m1zwux030`):`${e}ms`}let U=ee({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:5e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});p(M,e=>{e&&(U.enabled=e.enabled,U.lineId=e.lineId??``,U.driver=e.driver,U.followGlobal=e.intervalMs==null,U.intervalMs=e.intervalMs??k.controller.defaultIntervalMs,U.publishFollow=e.publishIntervalMs==null,U.publishEveryFrame=e.publishIntervalMs===0,U.publishMs=e.publishIntervalMs==null?k.controller.defaultPublishIntervalMs:e.publishIntervalMs,U.unit=e.unit,U.decimals=e.decimals,U.min=e.min,U.max=e.max,U.warnLow=e.warnLow,U.warnHigh=e.warnHigh)},{immediate:!0});let W=_({}),G=m(()=>w.find(e=>e.kind===U.driver)?.configFields??[]);p(M,e=>{e&&(W.value={...e.driverConfig})},{immediate:!0}),p(()=>U.driver,()=>{if(G.value.length&&Object.keys(W.value).length===0){let e={};for(let t of G.value)t.default!==void 0&&(e[t.key]=t.default);W.value=e}},{immediate:!0});let K=_(!1),q=_(null);async function Ot(){K.value=!0,q.value=null;try{await k.patchNode(O.value,{driver:U.driver,driverConfig:{...W.value}}),q.value=await k.testNode(O.value)}catch(e){q.value={ok:!1,message:ae(e)}}finally{K.value=!1}}let J=_(!1);async function kt(){let e=M.value;if(!(!e||J.value)){J.value=!0;try{await k.patchNode(e.id,{enabled:U.enabled,driver:U.driver,lineId:U.lineId,driverConfig:{...W.value},intervalMs:U.followGlobal?null:Math.max(1e3,Math.min(6e4,Math.round(U.intervalMs))),publishIntervalMs:U.publishFollow?null:U.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(U.publishMs))),unit:U.unit,decimals:Math.max(0,Math.min(6,Math.round(U.decimals))),min:U.min,max:U.max,warnLow:U.warnLow,warnHigh:U.warnHigh})}finally{J.value=!1}}}function At(e){return k.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let Y=_(``),jt=m(()=>(M.value?.deviceIds??(M.value?.deviceBindingId?[M.value.deviceBindingId]:[])).map(e=>j.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`).join(` / `));function Mt(){k.bindNode(O.value,M.value?.deviceBindingId?null:Y.value||null)}let Nt=m(()=>j.twins.filter(e=>e.kind!==`daq`&&e.id!==M.value?.id)),X=_([]),Z=_(15e3),Pt=_(!1),Ft=[{label:`1s 桶`,ms:1e3},{label:`5s 桶`,ms:5e3},{label:`15s 桶(默认)`,ms:15e3},{label:`30s 桶`,ms:3e4},{label:`1min 桶`,ms:6e4}];async function Q(){if(O.value){Pt.value=!0;try{let e=await k.samplesOf(O.value,{toMs:Date.now(),bucketMs:Z.value||void 0,limit:400});X.value=[...e].reverse()}finally{Pt.value=!1,Lt()}}}let It=_(null);function Lt(){let e=It.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=Ct,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=X.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=E,i.font=`10px monospace`,i.fillStyle=E,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=St,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let Rt=_(null),$=null;function zt(){let e=Rt.value,t=M.value;if(!e||!t||t.hist.length<2)return;let n=Math.min(window.devicePixelRatio||1,2),r=e.clientWidth,i=e.clientHeight;(e.width!==r*n||e.height!==i*n)&&(e.width=r*n,e.height=i*n);let a=e.getContext(`2d`);if(!a)return;a.setTransform(n,0,0,n,0,0),a.clearRect(0,0,r,i);let o=Math.max(...t.hist),s=Math.min(...t.hist),c=Math.max(o-s,1e-9);a.strokeStyle=`rgba(65,200,244,0.9)`,a.lineWidth=1.5,a.beginPath(),t.hist.forEach((e,n)=>{let o=n/(t.hist.length-1)*r,l=i-(e-s)/c*(i-6)-3;n===0?a.moveTo(o,l):a.lineTo(o,l)}),a.stroke()}return C(()=>{Q(),$=ie(()=>{zt()},800)}),a(()=>{$&&clearInterval($)}),p(Z,()=>void Q()),(i,a)=>{let p=ne;return s(),h(`div`,de,[y(`p`,fe,[S(p,{to:`/daq`,class:`back`},{default:v(()=>[f(u(i.$t(`daqDetail.k1emg364001`)),1)]),_:1}),f(` / NODE `+u(O.value.slice(0,8).toUpperCase()),1)]),y(`div`,pe,[y(`h1`,null,u(M.value?.name??O.value),1),y(`span`,{class:c([`st-pill`,[P()]])},u(wt[P()]),3)]),!M.value&&l(k).error?(s(),h(`p`,me,[f(u(l(k).error)+`(`,1),S(p,{to:`/workshop`},{default:v(()=>[f(u(i.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),a[20]||=f(`) `,-1)])):g(``,!0),M.value?(s(),h(`div`,he,[y(`section`,ge,[y(`div`,_e,[y(`p`,ve,u(i.$t(`daqDetail.k1fx2vik032`))+` `+u(N.value?.ch??`-`),1),y(`div`,ye,[f(u(M.value.value==null?`--`:M.value.value.toFixed(M.value.decimals)),1),y(`small`,null,u(M.value.unit),1)]),y(`canvas`,{ref_key:`liveCanvas`,ref:Rt,class:`live-canvas`},null,512),y(`dl`,be,[y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k4a0la003`)),1),y(`dd`,null,u(M.value.driver)+u(At(M.value.driver)?i.$t(`daqDetail.kz8zr9v035`):``),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3xg3w004`)),1),y(`dd`,null,u(M.value.intervalMs??i.$t(`daqDetail.k9vnp9h053`,{p0:l(k).controller.defaultIntervalMs})),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3w6td005`)),1),y(`dd`,null,u(Dt(M.value.publishIntervalMs)),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3x5tpx006`)),1),y(`dd`,null,u(M.value.warnLow??`-∞`)+` ~ `+u(M.value.warnHigh??`+∞`),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k1hjj0jf007`)),1),y(`dd`,null,u(M.value.min)+` ~ `+u(M.value.max),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k1i8rtqt008`)),1),y(`dd`,null,u(jt.value||i.$t(`daqDetail.k3own4q036`)),1)])])])]),y(`section`,xe,[y(`h3`,Se,u(i.$t(`daqDetail.kd9d69j009`)),1),y(`form`,{class:`form-grid`,onSubmit:r(kt,[`prevent`])},[y(`label`,Ce,[y(`span`,null,u(i.$t(`daqDetail.k1iw7tbf010`)),1),y(`button`,{type:`button`,class:c([`toggle`,{on:U.enabled}]),onClick:a[0]||=e=>U.enabled=!U.enabled},u(U.enabled?i.$t(`daqDetail.k3w3j8f037`):i.$t(`daqDetail.k3n5aaj045`)),3)]),y(`label`,we,[y(`span`,null,u(i.$t(`daqDetail.k12k23od011`)),1),b(y(`select`,{"onUpdate:modelValue":a[1]||=e=>U.lineId=e,class:`input`},[y(`option`,Te,u(i.$t(`daqDetail.k3ootr6012`)),1),(s(!0),h(d,null,o(l(A).lines,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Ee))),128))],512),[[t,U.lineId]])]),y(`label`,De,[y(`span`,null,u(i.$t(`daqDetail.k1l6smxo013`)),1),b(y(`select`,{"onUpdate:modelValue":a[2]||=e=>U.driver=e,class:`input`},[(s(!0),h(d,null,o(l(w),e=>(s(),h(`option`,{key:e.kind,value:e.kind,disabled:e.status===`planned`},u(e.label)+u(e.status===`planned`?i.$t(`daqDetail.kz8zr9v035`):``),9,Oe))),128))],512),[[t,U.driver]])]),y(`label`,ke,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.followGlobal}]),onClick:a[3]||=e=>U.followGlobal=!U.followGlobal},u(U.followGlobal?i.$t(`daqDetail.k1k2ueyq038`):i.$t(`daqDetail.k1cgi8fy046`)),3),b(y(`input`,{"onUpdate:modelValue":a[4]||=e=>U.intervalMs=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`input`,disabled:U.followGlobal},null,8,Ae),[[n,U.intervalMs,void 0,{number:!0}]]),a[21]||=y(`small`,null,`ms`,-1)]),y(`label`,je,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.calKind===`linear`}]),title:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,onClick:a[5]||=e=>U.calKind=U.calKind===`linear`?`none`:`linear`},u(U.calKind===`linear`?i.$t(`daqDetail.k1eru4r1039`):i.$t(`daqDetail.k3oktae047`)),3),b(y(`input`,{"onUpdate:modelValue":a[6]||=e=>U.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:U.calKind!==`linear`,title:`decode 斜率(≠0)`},null,8,Me),[[n,U.calScale,void 0,{number:!0}]]),b(y(`input`,{"onUpdate:modelValue":a[7]||=e=>U.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:U.calKind!==`linear`,title:`decode 截距`},null,8,Ne),[[n,U.calOffset,void 0,{number:!0}]]),a[22]||=y(`small`,null,`decoder`,-1)]),y(`label`,Pe,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.publishFollow}]),onClick:a[8]||=e=>U.publishFollow=!U.publishFollow},u(U.publishFollow?i.$t(`daqDetail.k1k2t5o7040`):i.$t(`daqDetail.k1cggz5f048`)),3),y(`span`,{class:c([`toggle slim`,{on:U.publishEveryFrame}]),style:{cursor:`pointer`},onClick:a[9]||=e=>U.publishEveryFrame=!U.publishEveryFrame},u(U.publishEveryFrame?i.$t(`daqDetail.k41mvv041`):i.$t(`daqDetail.k3n42dj049`)),3),b(y(`input`,{"onUpdate:modelValue":a[10]||=e=>U.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:U.publishFollow||U.publishEveryFrame},null,8,Fe),[[n,U.publishMs,void 0,{number:!0}]]),a[23]||=y(`small`,null,`ms`,-1)]),y(`label`,Ie,[y(`span`,null,u(i.$t(`daqDetail.k3x4ef014`)),1),b(y(`input`,{"onUpdate:modelValue":a[11]||=e=>U.unit=e,class:`input`},null,512),[[n,U.unit]])]),y(`label`,Le,[y(`span`,null,u(i.$t(`daqDetail.k3mxmcx015`)),1),b(y(`input`,{"onUpdate:modelValue":a[12]||=e=>U.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[n,U.decimals,void 0,{number:!0}]])]),y(`div`,Re,[y(`label`,ze,[y(`span`,null,u(i.$t(`daqDetail.k1l9jv5m016`)),1),b(y(`input`,{"onUpdate:modelValue":a[13]||=e=>U.min=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.min,void 0,{number:!0}]])]),y(`label`,Be,[y(`span`,null,u(i.$t(`daqDetail.k1md63hm017`)),1),b(y(`input`,{"onUpdate:modelValue":a[14]||=e=>U.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.warnLow,void 0,{number:!0}]])]),y(`label`,Ve,[y(`span`,null,u(i.$t(`daqDetail.k1md63gp018`)),1),b(y(`input`,{"onUpdate:modelValue":a[15]||=e=>U.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.warnHigh,void 0,{number:!0}]])]),y(`label`,He,[y(`span`,null,u(i.$t(`daqDetail.k1l9jv4p019`)),1),b(y(`input`,{"onUpdate:modelValue":a[16]||=e=>U.max=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.max,void 0,{number:!0}]])])]),y(`button`,{class:`aw-pill`,type:`submit`,disabled:J.value},u(J.value?i.$t(`daqDetail.k1as0g50042`):i.$t(`daqDetail.ksn9cgo050`)),9,Ue)],32),G.value.length?(s(),h(d,{key:0},[y(`h3`,We,u(i.$t(`daqDetail.k1p9gioa033`))+` `+u(l(w).find(e=>e.kind===U.driver)?.label),1),y(`div`,Ge,[(s(!0),h(d,null,o(G.value,n=>(s(),h(`label`,{key:n.key,class:`field`},[y(`span`,null,[f(u(n.label),1),n.required?(s(),h(`em`,Ke,`*`)):g(``,!0)]),n.type===`select`?b((s(),h(`select`,{key:0,"onUpdate:modelValue":e=>W.value[n.key]=e,class:`input`},[(s(!0),h(d,null,o(n.options,e=>(s(),h(`option`,{key:e.value,value:e.value},u(e.label),9,Je))),128))],8,qe)),[[t,W.value[n.key]]]):b((s(),h(`input`,{key:1,"onUpdate:modelValue":e=>W.value[n.key]=e,type:n.type===`number`?`number`:`text`,placeholder:n.placeholder,class:`input`},null,8,Ye)),[[e,W.value[n.key]]])]))),128))]),y(`div`,Xe,[y(`button`,{class:`pill-btn`,disabled:K.value,onClick:Ot},u(K.value?i.$t(`daqDetail.k1fsh720043`):i.$t(`daqDetail.k1fstglk051`)),9,Ze),q.value?(s(),h(`span`,{key:0,class:c([`test-out mono`,q.value.ok?`ok`:`bad`])},u(q.value.ok?`✓`:`✗`)+` `+u(q.value.message),3)):g(``,!0)])],64)):g(``,!0),y(`h3`,Qe,u(i.$t(`daqDetail.k1ie6qju020`)),1),y(`div`,$e,[b(y(`select`,{"onUpdate:modelValue":a[17]||=e=>Y.value=e,class:`input grow`},[y(`option`,et,u(i.$t(`daqDetail.kjobzu3021`)),1),(s(!0),h(d,null,o(Nt.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,tt))),128))],512),[[t,Y.value]]),y(`button`,{class:`pill-btn`,onClick:Mt},u(jt.value?i.$t(`daqDetail.k479eh044`):i.$t(`daqDetail.k452a8052`)),1)])]),y(`section`,nt,[y(`div`,rt,[y(`h3`,it,u(i.$t(`daqDetail.k1i535i5034`))+u(l(k).meta.tsdb)+`) `,1),y(`div`,at,[b(y(`select`,{"onUpdate:modelValue":a[18]||=e=>Z.value=e,class:`input`},[(s(),h(d,null,o(Ft,e=>y(`option`,{key:e.ms,value:e.ms},u(e.label),9,ot)),64))],512),[[t,Z.value,void 0,{number:!0}]]),y(`button`,{class:`pill-btn`,onClick:Q},u(i.$t(`daqDetail.k3x1jg022`)),1)])]),y(`canvas`,{ref_key:`chartCanvas`,ref:It,class:`hist-canvas`},null,512),y(`table`,st,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,u(i.$t(`daqDetail.k40vsf023`)),1),y(`th`,null,u(i.$t(`daqDetail.k48v5024`)),1),y(`th`,null,u(i.$t(`daqDetail.k4bza025`)),1)])]),y(`tbody`,null,[(s(!0),h(d,null,o(X.value.filter(e=>e.value!=null).slice(-12).reverse(),(e,t)=>(s(),h(`tr`,{key:t},[y(`td`,null,u(new Date(e.at).toLocaleTimeString(`zh-CN`,{hour12:!1})),1),y(`td`,null,u(e.value.toFixed(M.value?.decimals??2)),1),y(`td`,null,u(e.state),1)]))),128))])])])])):g(``,!0),L.value?(s(),h(`section`,ct,[y(`div`,lt,[y(`h3`,ut,[f(u(I.value===`image`?i.$t(`daqDetail.kfrm0001`):i.$t(`daqDetail.kfrm0002`))+` `,1),y(`span`,dt,u(R.value.length),1)]),y(`button`,{class:`pill-btn`,onClick:z},u(i.$t(`daqDetail.k3x1jg022`)),1)]),I.value===`vector`?(s(),h(d,{key:0},[(s(),h(`svg`,{class:`vec-svg`,viewBox:`0 0 ${T} ${xt}`,preserveAspectRatio:`none`},[y(`polyline`,{points:Et.value,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,pt)],8,ft)),y(`table`,mt,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,u(i.$t(`daqDetail.k40vsf023`)),1),y(`th`,null,u(i.$t(`daqDetail.kfrm0004`)),1),y(`th`,null,u(i.$t(`daqDetail.kfrm0005`)),1)])]),y(`tbody`,null,[(s(!0),h(d,null,o(R.value.filter(e=>e.kind===`vector`).slice(0,12),e=>(s(),h(`tr`,{key:e.at},[y(`td`,null,u(B(e.at)),1),y(`td`,null,u(e.points?.length??0),1),y(`td`,null,u(V(e)),1)]))),128))])])],64)):(s(),h(d,{key:1},[R.value.length?(s(),h(`div`,ht,[(s(!0),h(d,null,o(R.value,e=>(s(),h(`figure`,{key:e.at,class:`gal-item`,title:i.$t(`daqDetail.kfrm0006`),onClick:t=>H.value=e},[y(`img`,{src:e.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,_t),y(`figcaption`,vt,u(B(e.at))+` · `+u(V(e)),1)],8,gt))),128))])):(s(),h(`p`,yt,u(i.$t(`daqDetail.kfrm0003`)),1)),H.value?(s(),h(`div`,{key:2,class:`gal-full`,onClick:a[19]||=e=>H.value=null},[y(`img`,{src:H.value.contentUrl??H.value.thumbUrl,alt:`daq frame full`},null,8,bt)])):g(``,!0)],64))])):g(``,!0)])}}}),[[`__scopeId`,`data-v-9c77bd7c`]]);export{D as default};
@@ -1 +0,0 @@
1
- import{C as e,K as t,U as n,W as r,q as ee}from"./rqZ-1SoP.js";import{C as i,G as a,H as o,Ht as s,St as c,Wt as l,a as u,b as d,c as te,f,ft as p,g as m,h,m as ne,mt as g,p as _,rt as v,t as y,z as re}from"./BSCpFtzG.js";import{r as b}from"./D-Ca4BGY.js";import{t as ie}from"./G0qIw7Gq2.js";import{t as ae}from"./arUY5dyq2.js";import{t as oe}from"./DAR70Lf52.js";import{t as se}from"./Dfe8vXdG.js";var ce={class:`page`},le={class:`aw-page-head`},ue={class:`sub`},de={class:`head-actions`},fe=[`title`],pe={class:`live-txt mono`},x={class:`filter-card`},S={class:`flt`},C={value:``},w=[`value`],T={class:`flt`},E={value:``},D=[`value`],O={class:`flt`},k={value:``},A=[`value`],j={class:`flt`},M={value:``},N={value:`user`},P={value:`system`},F={class:`flt`},I={value:``},L=[`value`],R={class:`flt flt-grow`},z=[`placeholder`],B=[`disabled`],me={class:`table-card`},he={key:0,class:`err`},ge={class:`log-table`},_e={class:`th-time`},ve={class:`th-src`},ye={class:`th-kind`},be={class:`th-scope`},xe={class:`th-detail`},Se={class:`mono dim`},Ce={class:`actor`},we={class:`summary`},Te={class:`mono dim action`},Ee={class:`scope`},De=[`title`],Oe=[`title`],ke={key:2,class:`scope-chip`,title:`Recipe`},Ae={key:3,class:`dim`},je={class:`detail-cell`},Me=[`onClick`],V={key:1,class:`dim`},Ne={key:0},Pe={colspan:`7`,class:`detail-td`},Fe={class:`detail-box mono`},Ie={key:0,colspan:`7`,class:`empty`},Le={class:`modal`},Re={class:`m-title`},ze={class:`m-f`},Be=[`placeholder`],Ve={class:`m-f`},He=[`placeholder`],Ue={class:`m-grid`},We={class:`m-f`},Ge={value:``},Ke=[`value`],qe={class:`m-f`},Je={value:``},Ye=[`value`],Xe={class:`m-f`},Ze={value:``},Qe=[`value`],$e={key:0,class:`err`},et={class:`m-actions`},tt=[`disabled`],H=y(i({name:`OpsLogsPage`,setup(i){let y=t=>e().$i18n.t(t),H=oe(),nt=ae(),U=se(),rt=[`write`,`manual`,`alarm`,`line`,`recipe`,`rollback`,`daq`,`system`],W=p({lineId:``,productId:``,recipeId:``,actorKind:``,kind:``,text:``}),G=g(null),K=g(!1),q=p({summary:``,detail:``,lineId:``,productId:``,recipeId:``}),it=f(()=>!!(W.lineId||W.productId||W.recipeId||W.actorKind||W.kind||W.text.trim())),J=f(()=>H.products.filter(e=>!W.lineId||e.lineId===W.lineId)),Y=f(()=>H.recipes.filter(e=>(!W.lineId||e.lineId===W.lineId)&&(!W.productId||e.productId===W.productId)));function X(){U.fetchLogs({lineId:W.lineId,productId:W.productId,recipeId:W.recipeId,actorKind:W.actorKind,kind:W.kind,q:W.text.trim(),limit:300}),G.value=null}function at(){W.lineId=``,W.productId=``,W.recipeId=``,W.actorKind=``,W.kind=``,W.text=``,X()}function ot(){q.summary=``,q.detail=``,q.lineId=W.lineId,q.productId=W.productId,q.recipeId=W.recipeId,K.value=!0}async function st(){try{let e=q.detail.trim();await U.postManual({summary:q.summary.trim(),lineId:q.lineId,productId:q.productId,recipeId:q.recipeId,...e?{detail:{note:e}}:{}}),b.success(y(`logs.mOk`)),K.value=!1,X()}catch(e){b.error(ie(e))}}function ct(e){return!!e.detailJson&&e.detailJson!==`{}`}function lt(e){G.value=G.value===e.id?null:e.id}function ut(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function dt(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return e;let n=e=>String(e).padStart(2,`0`);return`${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function ft(e){return e===`agent`?`Agent`:y(e===`user`?`logs.src.user`:`logs.src.system`)}function pt(e){return e?y(`logs.kind.${e}`):`—`}function Z(e){return H.lines.find(t=>t.id===e)?.name??``}function Q(e){return H.products.find(t=>t.id===e)?.name??``}function $(e){return H.recipes.find(t=>t.id===e)?.name??``}return re(()=>{nt.ensureConnected(),U.ensureLive(),H.load(),X()}),(e,i)=>(o(),m(`div`,ce,[_(`header`,le,[_(`div`,null,[i[17]||=_(`p`,{class:`aw-kicker`},` agentworkshop / audit log `,-1),_(`h1`,null,l(e.$t(`logs.title`)),1),_(`p`,ue,l(e.$t(`logs.sub`)),1)]),_(`div`,de,[_(`span`,{class:`live-dot`,title:e.$t(`logs.liveHint`)},null,8,fe),_(`span`,pe,l(e.$t(`logs.live`))+` `+l(c(U).recent.length),1),_(`button`,{class:`pill-btn`,onClick:ot},[i[18]||=_(`span`,{class:`i-tabler-plus`},null,-1),d(` `+l(e.$t(`logs.manual`)),1)])])]),_(`section`,x,[_(`label`,S,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[0]||=e=>W.lineId=e,class:`inp-sel`,onChange:i[1]||=e=>{W.productId=``,W.recipeId=``}},[_(`option`,C,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,w))),128))],544),[[n,W.lineId]])]),_(`label`,T,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[2]||=e=>W.productId=e,class:`inp-sel`,onChange:i[3]||=e=>W.recipeId=``},[_(`option`,E,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,D))),128))],544),[[n,W.productId]])]),_(`label`,O,[i[19]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[4]||=e=>W.recipeId=e,class:`inp-sel`},[_(`option`,k,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,A))),128))],512),[[n,W.recipeId]])]),_(`label`,j,[_(`span`,null,l(e.$t(`logs.fSource`)),1),v(_(`select`,{"onUpdate:modelValue":i[5]||=e=>W.actorKind=e,class:`inp-sel`},[_(`option`,M,l(e.$t(`logs.all`)),1),_(`option`,N,l(e.$t(`logs.src.user`)),1),i[20]||=_(`option`,{value:`agent`},` Agent `,-1),_(`option`,P,l(e.$t(`logs.src.system`)),1)],512),[[n,W.actorKind]])]),_(`label`,F,[_(`span`,null,l(e.$t(`logs.fKind`)),1),v(_(`select`,{"onUpdate:modelValue":i[6]||=e=>W.kind=e,class:`inp-sel`},[_(`option`,I,l(e.$t(`logs.all`)),1),(o(),m(u,null,a(rt,t=>_(`option`,{key:t,value:t},l(e.$t(`logs.kind.${t}`)),9,L)),64))],512),[[n,W.kind]])]),_(`label`,R,[_(`span`,null,l(e.$t(`logs.fKeyword`)),1),v(_(`input`,{"onUpdate:modelValue":i[7]||=e=>W.text=e,class:`inp-sel`,type:`search`,placeholder:e.$t(`logs.fKeywordPh`),onKeydown:t(X,[`enter`])},null,40,z),[[r,W.text]])]),_(`button`,{class:`pill-btn`,disabled:c(U).loading.list,onClick:X},[i[21]||=_(`span`,{class:`i-tabler-search`},null,-1),d(` `+l(e.$t(`logs.query`)),1)],8,B),it.value?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:at},l(e.$t(`logs.reset`)),1)):h(``,!0)]),_(`section`,me,[c(U).error.list?(o(),m(`p`,he,l(c(U).error.list),1)):h(``,!0),_(`table`,ge,[_(`thead`,null,[_(`tr`,null,[_(`th`,_e,l(e.$t(`logs.thTime`)),1),_(`th`,ve,l(e.$t(`logs.fSource`)),1),_(`th`,null,l(e.$t(`logs.thActor`)),1),_(`th`,ye,l(e.$t(`logs.fKind`)),1),_(`th`,null,l(e.$t(`logs.thSummary`)),1),_(`th`,be,l(e.$t(`logs.thScope`)),1),_(`th`,xe,l(e.$t(`logs.thDetail`)),1)])]),_(`tbody`,null,[(o(!0),m(u,null,a(c(U).results,t=>(o(),m(u,{key:t.id},[_(`tr`,null,[_(`td`,Se,l(dt(t.at)),1),_(`td`,null,[_(`span`,{class:s([`src-badge`,t.actorKind])},l(ft(t.actorKind)),3)]),_(`td`,Ce,l(t.actorName||t.actor||`—`),1),_(`td`,null,[_(`span`,{class:s([`kind-chip`,t.kind])},l(pt(t.kind)),3)]),_(`td`,we,[d(l(t.summary)+` `,1),_(`small`,Te,l(t.action),1)]),_(`td`,Ee,[Z(t.lineId)?(o(),m(`span`,{key:0,class:`scope-chip`,title:e.$t(`logs.fLine`)},l(Z(t.lineId)),9,De)):h(``,!0),Q(t.productId)?(o(),m(`span`,{key:1,class:`scope-chip`,title:e.$t(`logs.fProduct`)},l(Q(t.productId)),9,Oe)):h(``,!0),$(t.recipeId)?(o(),m(`span`,ke,l($(t.recipeId)),1)):h(``,!0),!t.lineId&&!t.productId&&!t.recipeId?(o(),m(`span`,Ae,`—`)):h(``,!0)]),_(`td`,je,[ct(t)?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:e=>lt(t)},l(G.value===t.id?e.$t(`logs.fold`):e.$t(`logs.expand`)),9,Me)):(o(),m(`span`,V,l(e.$t(`logs.noDetail`)),1))])]),G.value===t.id?(o(),m(`tr`,Ne,[_(`td`,Pe,[_(`pre`,Fe,l(ut(t.detailJson)),1)])])):h(``,!0)],64))),128)),_(`tr`,null,[c(U).results.length===0?(o(),m(`td`,Ie,[c(U).loading.list?(o(),m(u,{key:0},[d(l(e.$t(`logs.loading`)),1)],64)):(o(),m(u,{key:1},[d(l(e.$t(`logs.empty`)),1)],64))])):h(``,!0)])])])]),(o(),ne(te,{to:`body`},[K.value?(o(),m(`div`,{key:0,class:`modal-mask`,onClick:i[16]||=ee(e=>K.value=!1,[`self`])},[_(`div`,Le,[_(`h3`,Re,l(e.$t(`logs.manual`)),1),_(`label`,ze,[_(`span`,null,l(e.$t(`logs.mSummary`))+` *`,1),v(_(`textarea`,{"onUpdate:modelValue":i[8]||=e=>q.summary=e,rows:`3`,placeholder:e.$t(`logs.mSummaryPh`)},null,8,Be),[[r,q.summary]])]),_(`label`,Ve,[_(`span`,null,l(e.$t(`logs.mDetail`)),1),v(_(`textarea`,{"onUpdate:modelValue":i[9]||=e=>q.detail=e,rows:`2`,placeholder:e.$t(`logs.mDetailPh`)},null,8,He),[[r,q.detail]])]),_(`div`,Ue,[_(`label`,We,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[10]||=e=>q.lineId=e,class:`inp-sel`,onChange:i[11]||=e=>{q.productId=``,q.recipeId=``}},[_(`option`,Ge,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ke))),128))],544),[[n,q.lineId]])]),_(`label`,qe,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[12]||=e=>q.productId=e,class:`inp-sel`,onChange:i[13]||=e=>q.recipeId=``},[_(`option`,Je,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ye))),128))],544),[[n,q.productId]])]),_(`label`,Xe,[i[22]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[14]||=e=>q.recipeId=e,class:`inp-sel`},[_(`option`,Ze,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Qe))),128))],512),[[n,q.recipeId]])])]),c(U).error.post?(o(),m(`p`,$e,l(c(U).error.post),1)):h(``,!0),_(`div`,et,[_(`button`,{class:`ghost-btn`,onClick:i[15]||=e=>K.value=!1},l(e.$t(`common.cancel`)),1),_(`button`,{class:`pill-btn`,disabled:c(U).loading.posting||!q.summary.trim(),onClick:st},l(e.$t(`logs.mSubmit`)),9,tt)])])])):h(``,!0)]))]))}}),[[`__scopeId`,`data-v-0b613117`]]);export{H as default};
@@ -1 +0,0 @@
1
- import{G as e,I as t,K as n,L as r,q as i}from"./rqZ-1SoP.js";import{C as a,F as o,G as s,H as c,Ht as l,K as u,O as d,St as f,U as p,Ut as m,Wt as h,a as g,b as _,et as v,f as y,g as b,gt as x,h as S,m as C,mt as w,nt as T,p as E,rt as D,t as O,x as k,y as A,z as j}from"./BSCpFtzG.js";import{d as M,p as N}from"./-6OnbLFb.js";import{i as ee}from"./C3tCneTM.js";import{n as te,r as ne,t as re}from"./Cz9gD2Yo.js";import{n as ie}from"./BeIfu4N3.js";import{t as ae}from"./DpojD719.js";import{At as oe,Ct as P,d as se,kt as F,n as I,nt as L,t as R,u as z}from"./BDUjyaF4.js";import{i as ce}from"./DtBu71ev.js";import{t as B}from"./BfGc7TJp.js";import{t as le}from"./VLI2Zy4t.js";import{t as ue}from"./BN_PdN3J.js";import{h as V,r as de}from"./D-Ca4BGY.js";import{a as H,i as fe,n as pe,r as me,t as he}from"./CKfhtOt7.js";import{t as U}from"./lO5tpDZ5.js";import{n as W}from"./D1z7i2UP.js";import{t as G}from"./B7wL3pDk.js";import{t as ge}from"./Dy-mxvXY2.js";import{t as _e}from"./BSSUlJnx2.js";import{t as ve}from"./BcrN7QEl2.js";import{t as ye}from"./C4OAdbVK2.js";import{t as be}from"./G0qIw7Gq2.js";import{m as xe,p as Se,t as Ce}from"./arUY5dyq2.js";import{t as we}from"./kZV5TQvh2.js";var K=e=>{let{componentCls:t,colorBgContainer:n,colorBgBody:r,colorText:i}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:i,background:n},[`${t}-sider-zero-width-trigger`]:{color:i,background:n,border:`1px solid ${r}`,borderInlineStart:0}}}},Te=e=>{let{antCls:t,componentCls:n,colorText:r,colorTextLightSolid:i,colorBgHeader:a,colorBgBody:o,colorBgTrigger:s,layoutHeaderHeight:c,layoutHeaderPaddingInline:l,layoutHeaderColor:u,layoutFooterPadding:d,layoutTriggerHeight:f,layoutZeroTriggerSize:p,motionDurationMid:m,motionDurationSlow:h,fontSize:g,borderRadius:_}=e;return{[n]:F(F({display:`flex`,flex:`auto`,flexDirection:`column`,color:r,minHeight:0,background:o,"&, *":{boxSizing:`border-box`},[`&${n}-has-sider`]:{flexDirection:`row`,[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:`0 0 auto`},[`${n}-header`]:{height:c,paddingInline:l,color:u,lineHeight:`${c}px`,background:a,[`${t}-menu`]:{lineHeight:`inherit`}},[`${n}-footer`]:{padding:d,color:r,fontSize:g,background:o},[`${n}-content`]:{flex:`auto`,minHeight:0},[`${n}-sider`]:{position:`relative`,minWidth:0,background:a,transition:`all ${m}, background 0s`,"&-children":{height:`100%`,marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:`auto`}},"&-has-trigger":{paddingBottom:f},"&-right":{order:1},"&-trigger":{position:`fixed`,bottom:0,zIndex:1,height:f,color:i,lineHeight:`${f}px`,textAlign:`center`,background:s,cursor:`pointer`,transition:`all ${m}`},"&-zero-width":{"> *":{overflow:`hidden`},"&-trigger":{position:`absolute`,top:c,insetInlineEnd:-p,zIndex:1,width:p,height:p,color:i,fontSize:e.fontSizeXL,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a,borderStartStartRadius:0,borderStartEndRadius:_,borderEndEndRadius:_,borderEndStartRadius:0,cursor:`pointer`,transition:`background ${h} ease`,"&::after":{position:`absolute`,inset:0,background:`transparent`,transition:`all ${h}`,content:`""`},"&:hover::after":{background:`rgba(255, 255, 255, 0.2)`},"&-right":{insetInlineStart:-p,borderStartStartRadius:_,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:_}}}}},K(e)),{"&-rtl":{direction:`rtl`}})}},Ee=se(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[Te(z(e,{layoutHeaderHeight:r*2,layoutHeaderPaddingInline:o,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${o}px`,layoutTriggerHeight:i+a*2,layoutZeroTriggerSize:i}))]},e=>{let{colorBgLayout:t}=e;return{colorBgHeader:`#001529`,colorBgBody:t,colorBgTrigger:`#002140`}}),q=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function J(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>a({compatConfig:{MODE:3},name:r,props:q(),setup(r,i){let{slots:a}=i,{prefixCls:o}=I(t,r);return()=>{let t=F(F({},r),{prefixCls:o.value,tagName:n});return k(e,t,a)}}})}var Y=a({compatConfig:{MODE:3},props:q(),setup(e,t){let{slots:n}=t;return()=>k(e.tagName,{class:e.prefixCls},n)}}),De=a({compatConfig:{MODE:3},inheritAttrs:!1,props:q(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=I(``,e),[o,s]=Ee(i),c=w([]);p(H,{addSider:e=>{c.value=[...c.value,e]},removeSider:e=>{c.value=c.value.filter(t=>t!==e)}});let l=y(()=>{let{prefixCls:t,hasSider:n}=e;return{[s.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:c.value.length>0,[`${t}-rtl`]:a.value===`rtl`}});return()=>{let{tagName:t}=e;return o(k(t,F(F({},r),{class:[l.value,r.class]}),n))}}}),Oe=J({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(De),X=J({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(Y),Z=J({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(Y),Q=J({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(Y),ke={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`bars`,theme:`outlined`};function Ae(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){je(e,t,n[t])})}return e}function je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Me=function(e,t){var n=Ae({},e,t.attrs);return k(V,Ae({},n,{icon:ke}),null)};Me.displayName=`BarsOutlined`,Me.inheritAttrs=!1;var Ne={xs:`479.98px`,sm:`575.98px`,md:`767.98px`,lg:`991.98px`,xl:`1199.98px`,xxl:`1599.98px`,xxxl:`1999.98px`},Pe=()=>({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:R.any,width:R.oneOfType([R.number,R.string]),collapsedWidth:R.oneOfType([R.number,R.string]),breakpoint:R.oneOf(L(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:R.oneOf(L(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),Fe=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),$=a({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:B(Pe(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,t){let{emit:n,attrs:r,slots:i}=t,{prefixCls:a}=I(`layout-sider`,e),s=d(H,void 0),c=x(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),l=x(!1);v(()=>e.collapsed,()=>{c.value=!!e.collapsed}),p(fe,c);let u=(t,r)=>{e.collapsed===void 0&&(c.value=t),n(`update:collapsed`,t),n(`collapse`,t,r)},f=x(e=>{l.value=e.matches,n(`breakpoint`,e.matches),c.value!==e.matches&&u(e.matches,`responsive`)}),m;function h(e){return f.value(e)}let g=Fe(`ant-sider-`);s&&s.addSider(g),j(()=>{v(()=>e.breakpoint,()=>{try{m?.removeEventListener(`change`,h)}catch{m?.removeListener(h)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in Ne){m=t(`(max-width: ${Ne[e.breakpoint]})`);try{m.addEventListener(`change`,h)}catch{m.addListener(h)}h(m)}}},{immediate:!0})}),o(()=>{try{m?.removeEventListener(`change`,h)}catch{m?.removeListener(h)}s&&s.removeSider(g)});let _=()=>{u(!c.value,`clickTrigger`)};return()=>{let t=a.value,{collapsedWidth:n,width:o,reverseArrow:s,zeroWidthTriggerStyle:u,trigger:d=i.trigger?.call(i),collapsible:f,theme:p}=e,m=c.value?n:o,h=U(m)?`${m}px`:String(m),g=parseFloat(String(n||0))===0?k(`span`,{onClick:_,class:P(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${s?`right`:`left`}`),style:u},[d||k(Me,null,null)]):null,v={expanded:k(s?W:G,null,null),collapsed:k(s?G:W,null,null)}[c.value?`collapsed`:`expanded`],y=d===null?null:g||k(`div`,{class:`${t}-trigger`,onClick:_,style:{width:h}},[d||v]),b=[r.style,{flex:`0 0 ${h}`,maxWidth:h,minWidth:h,width:h}],x=P(t,`${t}-${p}`,{[`${t}-collapsed`]:!!c.value,[`${t}-has-trigger`]:f&&d!==null&&!g,[`${t}-below`]:!!l.value,[`${t}-zero-width`]:parseFloat(h)===0},r.class);return k(`aside`,oe(oe({},r),{},{class:x,style:b}),[k(`div`,{class:`${t}-children`},[i.default?.call(i)]),f||l.value&&g?y:null])}}}),Ie=X,Le=Z,Re=$,ze=Q,Be=F(Oe,{Header:X,Footer:Z,Content:Q,Sider:$,install:e=>(e.component(Oe.name,Oe),e.component(X.name,X),e.component(Z.name,Z),e.component($.name,$),e.component(Q.name,Q),e)}),Ve=[`width`,`height`],He=Object.assign(a({__name:`AwLogo`,props:{size:{default:32}},setup(e){return(t,n)=>(c(),b(`svg`,{width:e.size,height:e.size,viewBox:`0 0 64 64`,fill:`none`,"aria-hidden":`true`},[...n[0]||=[A(`<defs><linearGradient id="aw-logo-gradient" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#35e0a0"></stop><stop offset="1" stop-color="#41c8f4"></stop></linearGradient></defs><path d="M32 4 L56 18 V46 L32 60 L8 46 V18 Z" stroke="url(#aw-logo-gradient)" stroke-width="4" stroke-linejoin="round"></path><path d="M32 15 L46.7 23.5 V40.5 L32 49 L17.3 40.5 V23.5 Z" stroke="#41c8f4" stroke-opacity="0.45" stroke-width="1.8" stroke-dasharray="4 3"></path><path d="M32 23 L25 38 M32 23 L39 38 M25 38 L39 38" stroke="#35e0a0" stroke-width="1.8" stroke-opacity="0.75"></path><circle cx="32" cy="23" r="3.4" fill="#35e0a0"></circle><circle cx="25" cy="38" r="3.4" fill="#41c8f4"></circle><circle cx="39" cy="38" r="3.4" fill="#41c8f4"></circle>`,7)]],8,Ve))}}),{__name:`AwLogo`}),Ue={class:`logo`},We={class:`logo-mark`,"aria-hidden":`true`},Ge={class:`logo-text`},Ke={class:`logo-title`},qe={class:`app-menu`},Je=[`title`,`onClick`],Ye={class:`sider-footer`},Xe={class:`footer-line`},Ze=Object.assign(O(a({__name:`AppSidebar`,setup(n){let r=ve(),{t:i}=ie(),a=N(),o=re(),u=te(),d=y(()=>[{key:`/`,icon:`i-tabler-layout-dashboard`,label:i(`menu.dashboard`),motion:`im-pop`},{key:`/workshop`,icon:`i-tabler-box`,label:i(`menu.workshop`),motion:`im-pop`},{key:`/town`,icon:`i-tabler-map-2`,label:i(`menu.town`),motion:`im-pop`},{key:`/tokens`,icon:`i-tabler-key`,label:i(`menu.tokens`),motion:`im-nudge-up`},{key:`/daq`,icon:`i-tabler-activity`,label:i(`menu.daq`),motion:`im-pop`},{key:`/dcw`,icon:`i-tabler-settings-automation`,label:i(`menu.dcw`),motion:`im-pop`},{key:`/logs`,icon:`i-tabler-list-details`,label:i(`menu.logs`),motion:`im-pop`},{key:`/users`,icon:`i-tabler-users-group`,label:i(`menu.users`),motion:`im-pop`},{key:`/permissions`,icon:`i-tabler-shield-lock`,label:i(`menu.permissions`),motion:`im-pop`,adminOnly:!0},{key:`/monitor`,icon:`i-tabler-cpu`,label:i(`menu.monitor`),motion:`im-pulse`},{key:`/plugins`,icon:`i-tabler-puzzle`,label:i(`menu.plugins`),motion:`im-pop`},{key:`/settings`,icon:`i-tabler-settings`,label:i(`menu.settings`),motion:`im-rotate`}].filter(e=>!e.adminOnly||r.isAdmin)),p=e=>e===`/`?a.path===`/`:a.path.startsWith(e),m=e=>{p(e)||M(e)};return(n,r)=>{let a=He,_=Re;return c(),C(_,{collapsed:f(u).sidebarCollapsed,"onUpdate:collapsed":r[0]||=e=>f(u).sidebarCollapsed=e,trigger:null,collapsible:``,breakpoint:`lg`,width:228,"collapsed-width":64,class:`app-sider`},{default:T(()=>[E(`div`,Ue,[E(`div`,We,[k(a,{size:30})]),k(t,{name:`slide-fade`},{default:T(()=>[D(E(`div`,Ge,[E(`span`,Ke,h(f(o).name),1),r[1]||=E(`span`,{class:`logo-sub`},`digital twin`,-1)],512),[[e,!f(u).sidebarCollapsed]])]),_:1})]),D(E(`div`,{class:`sider-section-label`},h(f(i)(`menu.system`)),513),[[e,!f(u).sidebarCollapsed]]),E(`nav`,qe,[(c(!0),b(g,null,s(f(d),t=>(c(),b(`button`,{key:t.key,type:`button`,class:l([`menu-item im`,{active:p(t.key)}]),title:f(u).sidebarCollapsed?t.label:void 0,onClick:e=>m(t.key)},[E(`span`,{class:l([`menu-icon`,[t.icon,t.motion]])},null,2),D(E(`span`,{class:`menu-label`},h(t.label),513),[[e,!f(u).sidebarCollapsed]])],10,Je))),128))]),D(E(`div`,Ye,[E(`div`,Xe,[E(`span`,null,`v`+h(f(o).version),1),r[2]||=E(`span`,{class:`sep`},`/`,-1),E(`span`,null,h(f(o).mode),1)])],512),[[e,!f(u).sidebarCollapsed]])]),_:1},8,[`collapsed`])}}}),[[`__scopeId`,`data-v-62a7e637`]]),{__name:`AppSidebar`}),Qe=ee(`app.routeTrail`,()=>{let e=w([]);function t(t){if(!t||t.startsWith(`/api`))return;let n=e.value.filter(e=>e.path!==t);e.value=[...n,{path:t,at:Date.now()}].slice(-8)}function n(t){let n=e.value.findIndex(e=>e.path===t);return n>=0&&(e.value=e.value.filter(e=>e.path!==t)),n}function r(){e.value=[]}return{waypoints:e,visit:t,remove:n,clear:r}},{persist:{pick:[`waypoints`],storage:ne.localStorage()}});function $e(){let{t:e}=ie(),t=ye(),n={"/":{key:`menu.dashboard`,icon:`i-tabler-layout-dashboard`},"/workshop":{key:`menu.workshop`,icon:`i-tabler-box`},"/workshop/agents":{key:`meta.agents`,icon:`i-tabler-users`},"/workshop/teams":{key:`meta.teams`,icon:`i-tabler-users-group`},"/workshop/channel-templates":{key:`meta.ctpl`,icon:`i-tabler-layout-grid-add`},"/town":{key:`menu.town`,icon:`i-tabler-map-2`},"/tokens":{key:`menu.tokens`,icon:`i-tabler-key`},"/daq":{key:`menu.daq`,icon:`i-tabler-activity`},"/dcw":{key:`menu.dcw`,icon:`i-tabler-settings-automation`},"/logs":{key:`menu.logs`,icon:`i-tabler-list-details`},"/permissions":{key:`menu.permissions`,icon:`i-tabler-shield-lock`},"/plugins":{key:`menu.plugins`,icon:`i-tabler-puzzle`},"/users":{key:`menu.users`,icon:`i-tabler-users-group`},"/monitor":{key:`menu.monitor`,icon:`i-tabler-cpu`},"/settings":{key:`menu.settings`,icon:`i-tabler-settings`}};return{metaFor:r=>{let i=n[r];if(i)return{title:e(i.key),icon:i.icon};let a=r.match(/^\/workshop\/w\/([^/]+)$/);if(a){let n=a[1];return{title:t.workspaces.find(e=>e.id===n)?.name??`${e(`header.workspace`)} ${n.slice(0,6)}`,icon:`i-tabler-console`}}let o=r.split(`/`).filter(Boolean).pop()??`·`;return{title:o.charAt(0).toUpperCase()+o.slice(1),icon:`i-tabler-point`}}}}var et={class:`header-left`},tt=[`aria-label`],nt=[`aria-label`],rt=[`title`,`onClick`,`onKeydown`],it={class:`node-title`},at=[`aria-label`,`title`,`onClick`],ot={class:`header-right`},st=[`title`],ct={class:`hitl-count`},lt={class:`hitl-menu`},ut={class:`hitl-menu-title`},dt=[`onClick`],ft={class:`hitl-item-top`},pt={class:`hitl-item-agent`},mt={class:`hitl-item-kind`},ht={class:`hitl-item-title`},gt=[`title`],_t={class:`user-chip`},vt={class:`user-initial aw-avatar`},yt={class:`user-meta`},bt={class:`user-name`},xt={class:`user-role`},St=Object.assign(O(a({__name:`AppHeader`,setup(e){let{t,locale:a,locales:u,setLocale:d}=ie(),p=te(),m=N(),x=Qe(),D=ve(),{metaFor:O}=$e(),A=Se(),ee=Ce(),ne=()=>{D.isLoggedIn&&ee.ensureConnected()};v(()=>D.token,e=>{e?(ne(),A.loadSnapshot()):A.clear()},{immediate:!0});let re=new Set([`codex-approval`,`opencode-permission`,`dsh-permission`]),oe=e=>{switch(e){case`omp-dialog`:return t(`appHeader.hitlKindOmp`);case`dcw-approval`:return t(`appHeader.hitlKindDcw`);case`codex-approval`:return t(`appHeader.hitlKindCodex`);case`opencode-permission`:return t(`appHeader.hitlKindOpencode`);case`dsh-permission`:return t(`appHeader.hitlKindDsh`);default:return e}},P=e=>{M({path:`/monitor`,query:{agentId:e.agentId,channelId:e.channelId}})},se=we(),F=w(null),I=async(e,t)=>{F.value=`${e.kind}:${e.id}`;try{await se.respondHitl({kind:e.kind,id:e.id,confirmed:t,cancelled:!t}),await A.loadSnapshot()}catch(e){de.error(be(e))}finally{F.value=null}},L=y(()=>u.value.map(e=>({label:e.name,value:e.code}))),R=e=>{e!=null&&(localStorage.setItem(`aw.locale`,String(e)),d(String(e)),window.location.reload())},z=w(!1),B=w(!1),V=null;v(()=>m.path,()=>{x.visit(m.path),B.value=!1,requestAnimationFrame(()=>{B.value=!0,V&&clearTimeout(V),V=setTimeout(()=>{B.value=!1},620)})},{immediate:!1}),j(()=>{z.value=!0,x.visit(m.path)}),o(()=>{V&&clearTimeout(V)});let H=e=>{e!==m.path&&M(e)},fe=e=>{let t=x.remove(e);if(e!==m.path)return;let n=x.waypoints,r=n[Math.min(Math.max(t-1,0),Math.max(n.length-1,0))]?.path??`/`;M(r)},U=w(!1);function W(){document.fullscreenElement?(document.exitFullscreen(),U.value=!1):(document.documentElement.requestFullscreen(),U.value=!0)}let G=y(()=>(D.user?.name??`?`).trim().charAt(0).toUpperCase()),_e=y(()=>D.user?.name??t(`header.guest`)),ye=y(()=>D.isLoggedIn?D.user?.role??`user`:`anonymous`),K=xe(),Te=y(()=>K.state!==`closed`||K.lastDataAt>0),Ee=y(()=>K.state===`open`?K.pendingReplay?`syncing`:`live`:K.state===`connecting`?`syncing`:`down`),q=y(()=>K.state===`open`?K.pendingReplay?t(`appHeader.kwsdot0002`):t(`appHeader.kwsdot0001`):K.state===`connecting`?t(`appHeader.kwsdot0003`):t(`appHeader.kwsdot0004`)),J=y(()=>{let e=[{key:`tokens`,icon:`i-tabler-key`,label:t(`menu.tokens`)},{key:`settings`,icon:`i-tabler-adjustments`,label:t(`menu.settings`)}];return D.isLoggedIn&&(e.push({key:`d-logout`,label:``,divider:!0}),e.push({key:`logout`,icon:`i-tabler-logout`,label:t(`header.logout`),danger:!0})),e}),Y=async({key:e})=>{e===`settings`?M(`/settings`):e===`tokens`?M(`/tokens`):e===`logout`&&(await D.logout(),M(`/workshop`))};return(e,o)=>{let u=le,d=ge,v=ae,y=ce,w=ue,D=pe,j=me,M=he,N=Ie;return c(),C(N,{class:`app-header app-header-glass`},{default:T(()=>[E(`div`,et,[E(`button`,{class:`collapse-btn`,"aria-label":f(p).sidebarCollapsed?f(t)(`header.expand`):f(t)(`header.collapse`),onClick:o[0]||=e=>f(p).toggleSidebar()},[...o[3]||=[E(`span`,{class:`i-tabler-menu-2`},null,-1)]],8,tt),o[5]||=E(`span`,{class:`rail-mark i-tabler-route`},null,-1),E(`nav`,{class:`trail`,"aria-label":f(t)(`header.trail`)},[k(r,{name:`stamp`,tag:`div`,class:`trail-row`},{default:T(()=>[f(z)?(c(!0),b(g,{key:0},s(f(x).waypoints,(t,r)=>(c(),b(g,{key:t.path},[r>0?(c(),b(`span`,{key:`link-${t.path}`,class:`trail-link`,"aria-hidden":`true`})):S(``,!0),E(`div`,{class:l([`trail-node`,{active:t.path===f(m).path}]),role:`button`,tabindex:`0`,title:f(O)(t.path).title,onClick:e=>H(t.path),onKeydown:n(i(e=>H(t.path),[`prevent`]),[`enter`])},[E(`span`,{class:l([`node-icon`,f(O)(t.path).icon])},null,2),E(`span`,it,h(f(O)(t.path).title),1),E(`button`,{class:`node-close`,"aria-label":e.$t(`appHeader.kzwjv99001`,{p0:f(O)(t.path).title}),title:e.$t(`appHeader.kzwjv99001`,{p0:f(O)(t.path).title}),onClick:i(e=>fe(t.path),[`stop`])},[...o[4]||=[E(`span`,{class:`i-tabler-x`},null,-1)]],8,at)],42,rt)],64))),128)):S(``,!0)]),_:1})],8,nt)]),E(`div`,ot,[k(v,null,{default:T(()=>[f(A).count>0?(c(),C(d,{key:0,placement:`bottomRight`},{overlay:T(()=>[E(`div`,lt,[E(`div`,ut,h(f(t)(`appHeader.hitlBadge`))+` · `+h(f(A).count),1),(c(!0),b(g,null,s(f(A).items,e=>(c(),b(`button`,{key:`${e.kind}:${e.id}`,class:`hitl-item`,onClick:t=>P(e)},[E(`span`,ft,[E(`span`,pt,h(e.agentName),1),E(`span`,mt,h(oe(e.kind)),1)]),E(`span`,ht,h(e.title),1),f(re).has(e.kind)?(c(),b(`span`,{key:0,class:`hitl-item-actions`,onClick:o[1]||=i(()=>{},[`stop`])},[k(u,{size:`small`,type:`primary`,loading:f(F)===`${e.kind}:${e.id}`,onClick:t=>I(e,!0)},{default:T(()=>[_(h(f(t)(`appHeader.hitlApprove`)),1)]),_:1},8,[`loading`,`onClick`]),k(u,{size:`small`,danger:``,disabled:f(F)===`${e.kind}:${e.id}`,onClick:t=>I(e,!1)},{default:T(()=>[_(h(f(t)(`appHeader.hitlReject`)),1)]),_:1},8,[`disabled`,`onClick`])])):S(``,!0)],8,dt))),128))])]),default:T(()=>[E(`button`,{class:`icon-btn hitl-bell`,title:f(t)(`appHeader.hitlBadge`)},[o[6]||=E(`span`,{class:`i-tabler-bell-ringing`},null,-1),E(`span`,ct,h(f(A).count),1)],8,st)]),_:1})):S(``,!0)]),_:1}),f(Te)?(c(),b(`span`,{key:0,class:l([`ws-dot`,f(Ee)]),title:f(q)},null,10,gt)):S(``,!0),k(y,{title:f(t)(`header.fullscreen`)},{default:T(()=>[E(`button`,{class:`icon-btn`,onClick:W},[E(`span`,{class:l([`i-tabler-arrows-maximize`,{hidden:f(U)}])},null,2),E(`span`,{class:l([`i-tabler-arrows-minimize`,{hidden:!f(U)}])},null,2)])]),_:1},8,[`title`]),k(w,{id:`hdr-locale`,value:f(a),size:`middle`,options:f(L),class:`lang-select`,onChange:R},null,8,[`value`,`options`]),k(y,{title:f(p).isDark?f(t)(`common.light`):f(t)(`common.dark`)},{default:T(()=>[E(`button`,{class:`icon-btn`,onClick:o[2]||=e=>f(p).toggleDark()},[E(`span`,{class:l([`i-tabler-sun-high`,{hidden:f(p).isDark}])},null,2),E(`span`,{class:l([`i-tabler-moon-stars`,{hidden:!f(p).isDark}])},null,2)])]),_:1},8,[`title`]),k(d,null,{overlay:T(()=>[k(M,{onClick:Y},{default:T(()=>[(c(!0),b(g,null,s(f(J),e=>(c(),b(g,{key:e.key},[e.divider?(c(),C(D,{key:0})):(c(),C(j,{key:e.key,danger:e.danger},{default:T(()=>[E(`span`,{class:l([e.icon,`mr-2`])},null,2),_(` `+h(e.label),1)]),_:2},1032,[`danger`]))],64))),128))]),_:1})]),default:T(()=>[E(`div`,_t,[k(v,null,{fallback:T(()=>[...o[7]||=[E(`span`,{class:`user-initial aw-avatar`},`·`,-1),E(`span`,{class:`user-meta`},[E(`span`,{class:`user-name`},`·`),E(`span`,{class:`user-role`},`·`)],-1)]]),default:T(()=>[E(`span`,vt,h(f(G)),1),E(`span`,yt,[E(`span`,bt,h(f(_e)),1),E(`span`,xt,h(f(ye)),1)])]),_:1})])]),_:1})]),E(`span`,{class:l([`plotter-line`,{run:f(B)}]),"aria-hidden":`true`},null,2)]),_:1})}}}),[[`__scopeId`,`data-v-057ba9d0`]]),{__name:`AppHeader`}),Ct={class:`footer-title aw-serif-accent`},wt=O(a({__name:`default`,setup(e){let{token:t}=_e.useToken(),n=re();return(e,r)=>{let i=Ze,a=St,o=ze,s=Le,l=Be;return c(),C(l,{class:`app-layout`},{default:T(()=>[k(i),k(l,{class:`app-main`,style:m({background:`transparent`,"--app-bg-container":f(t)?.colorBgContainer,"--app-bg-layout":f(t)?.colorBgLayout,"--app-text":f(t)?.colorText,"--app-text-secondary":f(t)?.colorTextSecondary,"--app-border":f(t)?.colorBorderSecondary,"--app-fill":f(t)?.colorFillQuaternary,"--app-header-h":`56px`,"--app-footer-h":`46px`})},{default:T(()=>[k(a),k(o,{class:`app-content`},{default:T(()=>[u(e.$slots,`default`,{},void 0,!0)]),_:3}),k(s,{class:`app-footer`,style:m({color:f(t)?.colorTextSecondary})},{default:T(()=>[E(`span`,Ct,h(f(n).title),1),r[0]||=E(`span`,{class:`sep`},`/`,-1),E(`span`,null,`v`+h(f(n).version),1),r[1]||=E(`span`,{class:`sep`},`/`,-1),E(`span`,null,`mode=`+h(f(n).mode),1)]),_:1},8,[`style`])]),_:3},8,[`style`]),r[2]||=E(`span`,{class:`aw-noise`,"aria-hidden":`true`},null,-1)]),_:3})}}}),[[`__scopeId`,`data-v-05636ece`]]);export{wt as default};
@@ -1 +0,0 @@
1
- import{f as e}from"./BSCpFtzG.js";import{kt as t,l as n}from"./BDUjyaF4.js";var r=[`xxxl`,`xxl`,`xl`,`lg`,`md`,`sm`,`xs`],i=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`{min-width: ${e.screenXXXL}px}`});function a(){let[,r]=n();return e(()=>{let e=i(r.value),n=new Map,a=-1,o={};return{matchHandlers:{},dispatch(e){return o=e,n.forEach(e=>e(o)),n.size>=1},subscribe(e){return n.size||this.register(),a+=1,n.set(a,e),e(o),a},unsubscribe(e){n.delete(e),n.size||this.unregister()},unregister(){Object.keys(e).forEach(t=>{let n=e[t],r=this.matchHandlers[n];r?.mql.removeListener(r?.listener)}),n.clear()},register(){Object.keys(e).forEach(n=>{let r=e[n],i=e=>{let{matches:r}=e;this.dispatch(t(t({},o),{[n]:r}))},a=window.matchMedia(r);a.addListener(i),this.matchHandlers[r]={mql:a,listener:i},i(a)})},responsiveMap:e}})}export{a as n,r as t};
@@ -1 +0,0 @@
1
- import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";var r=class extends Error{code;status;constructor(e,t,n){super(n),this.name=`ApiError`,this.code=e,this.status=t}};function i(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}var a=e=>new Promise(t=>setTimeout(t,e));function o(e){let t=(e?.method??`GET`).toUpperCase();return t===`GET`||t===`HEAD`}async function s(e,t,n){let a;try{a=await fetch(e+t,{...n,headers:{...i(!!n?.body),...n?.headers},signal:n?.signal??AbortSignal.timeout(n?.method&&n.method.toUpperCase()!==`GET`?3e4:15e3)})}catch(e){throw e instanceof Error&&(e.name===`TimeoutError`||e.name===`AbortError`)?new r(`TIMEOUT`,0,`请求超时,请检查网络或服务状态`):new r(`NETWORK`,0,`无法连接服务器,请检查网络或服务状态`)}let o=null;try{o=await a.json()}catch{}if(!a.ok)throw new r(o?.code??`HTTP_${a.status}`,a.status,o?.message||`请求失败(HTTP ${a.status})`);if(o?.code!==0)throw new r(o?.code??`REQUEST_ERROR`,a.status,o?.message||`请求失败`);return o.data}async function c(e){let{base:n,path:i=``,init:c,retries:l=0}=e,u=o(c),d=u?l+1:1,f;for(let e=0;e<d;e++)try{return await s(n,i,c)}catch(n){let i=n instanceof r?n:new r(`INTERNAL_ERROR`,0,t(n)),o=u&&(i.code===`NETWORK`||i.status>=500);if(f=i,!o||e===d-1)throw i;await a(400*(e+1))}throw f??new r(`INTERNAL_ERROR`,0,`请求失败`)}var l=[{key:`temp-sp`,name:`温度设定器`,code:`TEMP · SP`,ch:`烘箱温度设定`,unit:`℃`,min:150,max:200,decimals:1,icon:`thermo`,semantics:`烘箱/熔体温度设定:升高使热塑温度上升(成膜更均匀但能耗高、过热降解风险),降低则偏冷易厚度不均。调整后需等待热惯性(数十秒级)再评估效果。`},{key:`speed-sp`,name:`速度设定器`,code:`LINE · SP`,ch:`产线速度设定`,unit:`m/min`,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度设定:升速提高产能但缩短物料受热时间(温度补偿需联动),降速利于精细工艺。速度变化会同步影响张力与厚度分布。`},{key:`tension-sp`,name:`张力设定器`,code:`TENSION · SP`,ch:`膜张力设定`,unit:`kN`,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力设定:张力过大易断膜/拉伸变形,过小则跑偏起皱。调整需平缓,并与速度联动观察。`},{key:`pressure-sp`,name:`压力设定器`,code:`PRESSURE · SP`,ch:`熔体压力设定`,unit:`MPa`,min:.6,max:1.2,decimals:2,icon:`pressure`,semantics:`熔体压力设定:反映挤出/泵送负荷,压力偏高提示阻力大或温度偏低,偏低可能是料位不足。调整需小幅步进。`}],u=[{kind:`mock`,label:`Mock 模拟 PLC`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`,hint:`如 int16 用 0~2000 表示 0.1 分辨率`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`opcua`,label:`OPC UA(PLC/MES 写节点值)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.SetTemp`,hint:`要写入的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`mqtt`,label:`MQTT(发布设定值到 Broker)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20`,hint:`MQTT Broker 地址(与边缘网关约定同一 Broker)`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 端口 1883`},{key:`topic`,label:`下发主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/setpoint`,hint:`网关订阅的控制主题(勿与采集主题相同)`},{key:`jsonKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = 纯数字报文;填写 = {"键":值} JSON 报文`},{key:`qos`,label:`QoS`,type:`number`,default:1,hint:`0=至多一次 1=至少一次(推荐)`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(POST 设定值)`,status:`real`,configFields:[{key:`url`,label:`写接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/setpoint`,hint:`接收设定值的 HTTP 接口(POST JSON)`},{key:`bodyKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = {"value": 设定值};填写 = {"键": 设定值}`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]}],d=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],f=(e,t)=>c({base:`/api/workshop/dcw`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0});function p(){let r=e([]),i=e({running:!0,nodesTotal:0,nodesOnline:0,writesTotal:0,writesFailed:0}),a=e(l.map(e=>({...e}))),o=e([]),s=e([]),c=e([]),u=e([]),d=e([]),p=e({}),m=e([]);function h(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):r.push(e)}function g(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1);return}h(e.node)}}let _=0,v=null;function y(){_++,_===1&&(v=n().subscribe(b));let e=!1;return()=>{e||(e=!0,--_===0&&(v?.(),v=null))}}function b(e){if(e.type===`dcw.written`){let t=e.payload,n=r.find(e=>e.id===t.nodeId);n&&(n.value=t.value,n.state=t.ok?`ok`:`error`,n.lastWriteAt=t.at,t.ok&&(n.lastAckAt=t.at)),c.unshift({id:`${t.nodeId}-${t.at}`,nodeId:t.nodeId,nodeName:n?.name??t.nodeId,param:``,eng:t.value,raw:t.raw,ok:t.ok,message:t.message,recipeRunId:t.recipeRunId,at:t.at}),c.length>60&&c.splice(60)}else if(e.type===`dcw.read`){let t=e.payload,n=r.find(e=>e.id===t.nodeId);n&&(t.ok&&(n.readValue=t.value),n.lastReadAt=t.at,n.lastReadError=t.ok?null:t.message)}else if(e.type===`dcw.node.changed`)g(e.payload);else if(e.type===`dcw.controller`)Object.assign(i,e.payload);else if(e.type===`dcw.optimization.changed`){let t=e.payload.record,n=m.findIndex(e=>e.id===t.id);n>=0?m[n]=t:m.unshift(t),m.length>200&&(m.length=200)}}async function x(){try{let e=await f(``);r.splice(0,r.length,...e.nodes),Object.assign(i,e.controller),e.templates?.length&&a.splice(0,a.length,...e.templates.map(e=>({...e}))),o.splice(0,o.length,...e.recipes??[]),s.splice(0,s.length,...e.runs??[]),c.splice(0,c.length,...e.history??[]),u.splice(0,u.length,...e.products??[]),d.splice(0,d.length,...e.lines??[]);for(let e of Object.keys(p))Reflect.deleteProperty(p,e);for(let t of e.lineStates??[])p[t.lineId]=t;S.loaded=!0,S.error=``}catch(e){S.error=t(e)}}let S=e({nodes:r,controller:i,templates:a,recipes:o,runs:s,history:c,products:u,lines:d,lineStates:p,optimizations:m,loaded:!1,error:``,ensureWsFeed:y,load:x,loadOptimizations:async e=>{let t=new URLSearchParams;e?.lineId&&t.set(`lineId`,e.lineId),e?.recipeId&&t.set(`recipeId`,e.recipeId),e?.nodeId&&t.set(`nodeId`,e.nodeId),e?.status&&t.set(`status`,e.status),t.set(`limit`,String(e?.limit??100));let n=await f(`/optimizations?${t.toString()}`);m.splice(0,m.length,...n.records)},fetchLedger:async e=>(await f(`/${e}/param-ledger`)).ledger,optimizationSeries:async(e,t)=>f(`/optimizations/${e}/series${t?`?windowMs=${t}`:``}`),judgeOptimization:async(e,t,n)=>{await f(`/optimizations/${e}/judge`,{method:`POST`,body:JSON.stringify({verdict:t,reason:n})})},rollbackOptimization:async e=>{await f(`/optimizations/${e}/rollback`,{method:`POST`,body:JSON.stringify({})})},rollbackNode:async(e,t)=>{await f(`/journal/node/${e}/rollback`,{method:`POST`,body:JSON.stringify({to:t})})},markGood:async(e,t)=>{await f(`/recipes/${e}/mark-good`,{method:`POST`,body:JSON.stringify({runId:t})})},rollbackRecipeGood:async e=>{await f(`/recipes/${e}/rollback-good`,{method:`POST`,body:JSON.stringify({})})},createFromTemplate:async(e,t)=>{let n=await f(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return h(n.node),n.node},patchNode:async(e,t)=>{await f(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})},removeNode:async e=>{await f(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1)},bindNode:async(e,t)=>{h((await f(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)},write:async(e,t)=>f(`/${e}/write`,{method:`POST`,body:JSON.stringify({value:t})}).then(e=>e.outcome),readNode:async e=>f(`/${e}/read`,{method:`POST`,body:JSON.stringify({})}).then(e=>e.read),testDriver:async(e,t)=>f(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})}).then(e=>e.test),testNode:async e=>f(`/${e}/test`,{method:`POST`}).then(e=>e.test),startStop:async e=>{let t=await f(`/controller`,{method:`POST`,body:JSON.stringify({action:e})});Object.assign(i,t.controller)},createTemplate:async e=>{let t=await f(`/templates`,{method:`POST`,body:JSON.stringify(e)});return a.push(t.template),t.template},createRecipe:async e=>{let t=await f(`/recipes`,{method:`POST`,body:JSON.stringify(e)});return o.push(t.recipe),t.recipe},updateRecipe:async(e,t)=>{let n=await f(`/recipes/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=o.findIndex(t=>t.id===e);return r>=0&&(o[r]=n.recipe),n.recipe},removeRecipe:async e=>{await f(`/recipes/${e}`,{method:`DELETE`});let t=o.findIndex(t=>t.id===e);t>=0&&o.splice(t,1)},applyRecipe:async e=>{let t=await f(`/recipes/${e}/apply`,{method:`POST`});return s.push(t.run),t.run},recipeVersions:async e=>(await f(`/recipes/${e}/versions`)).versions??[],revertRecipe:async(e,t)=>{let n=await f(`/recipes/${e}/revert`,{method:`POST`,body:JSON.stringify(t)}),r=o.findIndex(t=>t.id===e);return r>=0&&(o[r]=n.recipe),n.recipe},closeRun:async e=>{let t=await f(`/runs/${e}/close`,{method:`POST`}),n=s.findIndex(t=>t.id===e);return n>=0&&(s[n]=t.run),t.run},runData:e=>f(`/runs/${e}/data`),nodeById:e=>r.find(t=>t.id===e),createProduct:async e=>{let t=await f(`/products`,{method:`POST`,body:JSON.stringify(e)});return u.push(t.product),t.product},updateProduct:async(e,t)=>f(`/products/${e}`,{method:`PATCH`,body:JSON.stringify(t)}).then(e=>(C(),e.product)),removeProduct:async e=>{await f(`/products/${e}`,{method:`DELETE`});let t=u.findIndex(t=>t.id===e);t>=0&&u.splice(t,1)},createLine:async e=>{let t=await f(`/lines`,{method:`POST`,body:JSON.stringify(e)});return d.push(t.line),t.line},updateLine:async(e,t)=>{let n=await f(`/lines/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=d.findIndex(t=>t.id===e);r>=0&&(d[r]=n.line)},removeLine:async(e,t=!1)=>{await f(`/lines/${e}${t?`?purge=1`:``}`,{method:`DELETE`});let n=d.findIndex(t=>t.id===e);n>=0&&d.splice(n,1),Reflect.deleteProperty(p,e),await x()},startLine:async(e,t)=>{let n=await f(`/lines/${e}/start`,{method:`POST`,body:JSON.stringify({recipeId:t})});p[e]=n.line},stopLine:async e=>{let t=await f(`/lines/${e}/stop`,{method:`POST`});p[e]=t.line},lineStateOf:e=>p[e]??{lineId:e,active:!1,runId:null,recipeId:null,recipeName:null,productId:null,productName:null,startedAt:null,taggedSamples:0},queryLine:e=>{let t=new URLSearchParams;return e.lineId&&t.set(`lineId`,e.lineId),e.productId&&t.set(`productId`,e.productId),e.recipeId&&t.set(`recipeId`,e.recipeId),e.paramKey&&t.set(`paramKey`,e.paramKey),e.nodeId&&t.set(`nodeId`,e.nodeId),e.fromMs!=null&&t.set(`from`,String(e.fromMs)),e.toMs!=null&&t.set(`to`,String(e.toMs)),e.bucketMs!=null&&t.set(`bucketMs`,String(e.bucketMs)),e.limit!=null&&t.set(`limit`,String(e.limit)),f(`/line/query?${t.toString()}`)}});async function C(){try{let e=await f(``);u.splice(0,u.length,...e.products??[]),o.splice(0,o.length,...e.recipes??[])}catch{}}return S}var m=`__dcwStream`;function h(){let e=globalThis;return e[m]||(e[m]=p()),e[m]}export{c as i,u as n,d as r,h as t};
@@ -1 +0,0 @@
1
- import{K as e,q as t}from"./rqZ-1SoP.js";import{C as n,G as r,H as i,Ht as ee,St as a,Wt as o,a as s,b as c,et as l,g as u,h as d,lt as f,m as p,mt as m,nt as h,p as g,t as _,x as v,z as y}from"./BSCpFtzG.js";import{d as b}from"./-6OnbLFb.js";import{s as x}from"./C3tCneTM.js";import{n as S}from"./B5S_UyaC.js";import{n as C}from"./BeIfu4N3.js";import{t as te}from"./VLI2Zy4t.js";import{r as w}from"./D-Ca4BGY.js";import{n as ne,t as re}from"./Cn3J3NXR.js";import{n as ie,t as ae}from"./CmHzfVc5.js";import{t as oe}from"./DoAlYsiF.js";import{t as se}from"./6PZPfFcO.js";import{t as ce}from"./ORt9oDIy.js";import{t as le}from"./C9f8QMp12.js";import{t as T}from"./BcrN7QEl2.js";import{t as E}from"./C4OAdbVK2.js";import{t as D}from"./G0qIw7Gq2.js";import{n as ue,t as de}from"./arUY5dyq2.js";import{t as fe}from"./CNs_Ozdc2.js";var pe={class:`page`},me={key:0,class:`auth-gate aw-orbs`},he={class:`sub`},ge={class:`hint`},_e={class:`hint`},ve={class:`aw-page-head`},ye={class:`sub`},O={class:`head-acts`},k={class:`lib-links`},A={class:`grid`},j={class:`card-head`},M={class:`name`},N={class:`card-body`},P=[`onClick`],be={class:`ch-name`},xe={class:`ch-meta`},Se={key:0,class:`empty`},Ce={class:`card-foot`},F=[`onClick`],we=[`onClick`],I=_(n({__name:`index`,setup(n){let{t:_}=C();fe({layout:`default`});let I=T(),L=E(),R=ue(),{subscribe:Te}=de(),z=m(`login`),B=m(``),V=m(``),H=m(``),U=m(``),W=m(!1),G=m(!1);y(async()=>{try{let e=await x(`/api/users/setup-status`);e.code===0&&e.data?.needsSetup&&(G.value=!0,z.value=`register`)}catch{}});let K=async()=>{if(!B.value.trim()){w.warning(_(`wsHome.k1vnhyks019`));return}if(!V.value.trim()){w.warning(_(`wsHome.k8ieqzj020`));return}if(H.value.length<6){w.warning(_(`wsHome.ksx73ra021`));return}W.value=!0;try{let e=await I.register(B.value,V.value,H.value);w.success(G.value?`管理员账号创建成功:${e.name} 已进入系统`:_(`wsHome.k1mbatbh030`,{p0:e.name})),G.value=!1,B.value=``,V.value=``,H.value=``}catch(e){w.error(D(e))}finally{W.value=!1}},q=async()=>{if(!V.value.trim()){w.warning(_(`wsHome.k8ieqzj020`));return}W.value=!0;try{let e=await I.login(V.value,H.value);w.success(_(`wsHome.kwixbdl031`,{p0:e.name})),G.value=!1,H.value=``}catch(e){w.error(D(e))}finally{W.value=!1}},J=async()=>{W.value=!0;try{let e=await I.loginWithToken(U.value);w.success(_(`wsHome.kwixbdl031`,{p0:e.name})),G.value=!1,U.value=``}catch(e){w.error(D(e))}finally{W.value=!1}},Ee=()=>{I.logout(),w.success(_(`wsHome.k3ngm6p022`))},Y=m(!1);l(()=>I.isLoggedIn,async e=>{if(!e){Y.value=!1;return}if(await I.refresh(),I.isLoggedIn)try{await L.load(),Y.value=!0}catch(e){w.error(e instanceof Error?e.message:_(`wsHome.k1br33vc023`))}},{immediate:!0}),l(()=>Y.value&&L.workspaces.map(e=>e.channelIds.join(`,`)).join(`|`),()=>{if(Y.value)for(let e of L.workspaces)for(let t of e.channelIds)Te(t)},{immediate:!0});let X=m(!1),Z=m(``),Q=m(!1),$=async()=>{let e=Z.value.trim();if(!e){w.warning(`Workspace 名称必填`);return}Q.value=!0;try{let t=await L.create(e);X.value=!1,Z.value=``,L.setActiveWorkspaceId(t.id),b(`/workshop/w/${t.id}`)}catch(e){w.error(D(e))}finally{Q.value=!1}},De=async e=>{await L.remove(e),w.success(_(`wsHome.k3n5sd7024`))},Oe=e=>e.map(e=>{let t=R.channels[e],n=R.agents[e]??[];return{id:e,name:t?.name??e.slice(0,8),synced:t!==void 0,agents:n.length,busy:n.filter(e=>e.state===`busy`).length,activeTasks:(R.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length}});return S({title:()=>_(`titles.workshop`)}),(n,l)=>{let m=re,_=ne,y=te,x=ce,S=ie,C=ae,w=se,T=le,E=oe;return i(),u(`div`,pe,[a(I).isLoggedIn?(i(),u(s,{key:1},[g(`div`,ve,[g(`div`,null,[l[16]||=g(`p`,{class:`aw-kicker`},` workshop / overview `,-1),g(`h1`,null,`Workshop `+o(n.$t(`wsHome.k3n4m5c025`)),1),g(`p`,ye,o(a(I).user?.name)+` `+o(n.$t(`wsHome.ke16e53026`)),1)]),g(`div`,O,[g(`div`,k,[g(`button`,{type:`button`,class:`lib-link`,onClick:l[7]||=e=>(`navigateTo`in n?n.navigateTo:a(b))(`/workshop/agents`)},o(n.$t(`wsHome.k3pa5h4013`)),1),g(`button`,{type:`button`,class:`lib-link`,onClick:l[8]||=e=>(`navigateTo`in n?n.navigateTo:a(b))(`/workshop/teams`)},o(n.$t(`wsHome.k3svl8y014`)),1),g(`button`,{type:`button`,class:`lib-link`,onClick:l[9]||=e=>(`navigateTo`in n?n.navigateTo:a(b))(`/workshop/channel-templates`)},` Channel `+o(n.$t(`wsHome.k41ds5027`)),1),g(`button`,{type:`button`,class:`lib-link`,onClick:l[10]||=e=>(`navigateTo`in n?n.navigateTo:a(b))(`/tokens`)},` API Token `),g(`button`,{type:`button`,class:`lib-link`,onClick:Ee},o(n.$t(`wsHome.k484e7015`)),1)]),g(`button`,{class:`aw-pill im`,onClick:l[11]||=e=>X.value=!0},[l[17]||=g(`span`,{class:`i-tabler-plus im-pop`},null,-1),c(` `+o(n.$t(`wsHome.newWs`)),1)])])]),v(T,{spinning:!a(Y)},{default:h(()=>[g(`div`,A,[(i(!0),u(s,null,r(a(L).workspaces,e=>(i(),u(`div`,{key:e.id,class:`card`},[g(`div`,j,[l[18]||=g(`span`,{class:`card-mark`},[g(`span`,{class:`i-tabler-box`})],-1),g(`span`,M,o(e.name),1)]),g(`div`,N,[(i(!0),u(s,null,r(Oe(e.channelIds),t=>(i(),u(`div`,{key:t.id,class:`ch-row`,onClick:t=>(`navigateTo`in n?n.navigateTo:a(b))(`/workshop/w/${e.id}`)},[g(`span`,{class:ee([`dot`,{live:t.activeTasks>0}])},null,2),g(`span`,be,o(t.name),1),g(`span`,xe,[t.synced?(i(),u(s,{key:0},[c(o(t.agents)+` `+o(n.$t(`wsHome.k1ggoa45028`))+` `+o(t.busy)+` / `+o(n.$t(`wsHome.k3wcox029`))+` `+o(t.activeTasks),1)],64)):(i(),u(s,{key:1},[c(o(n.$t(`wsHome.k1bst7s9016`)),1)],64))])],8,P))),128)),e.channelIds.length===0?(i(),u(`div`,Se,o(n.$t(`wsHome.k1ylgrbc017`)),1)):d(``,!0)]),g(`div`,Ce,[g(`button`,{class:`aw-pill outline im`,onClick:t=>(`navigateTo`in n?n.navigateTo:a(b))(`/workshop/w/${e.id}`)},[l[19]||=g(`span`,{class:`i-tabler-arrow-right im-pop`},null,-1),c(` `+o(n.$t(`wsHome.kr1uwwi018`)),1)],8,F),g(`button`,{class:`aw-ghost im`,title:`删除 Workspace`,onClick:t(t=>De(e.id),[`stop`])},[...l[20]||=[g(`span`,{class:`i-tabler-trash im-shake`},null,-1)]],8,we)])]))),128)),a(L).workspaces.length===0&&a(Y)?(i(),u(`button`,{key:0,class:`ws-empty`,onClick:l[12]||=e=>X.value=!0},[...l[21]||=[g(`span`,{class:`i-tabler-layout-2 ws-empty-ico`},null,-1),g(`span`,{class:`aw-empty-title`},`从一条产线、一个 Agent 开始`,-1),g(`span`,{class:`aw-empty-sub`},`Workspace 是频道与任务的容器 —— 建立第一个工作区后,你的 Agent 团队即可上线作业。`,-1),g(`span`,{class:`pill-btn ws-empty-cta`},[g(`span`,{class:`i-tabler-plus`}),c(` 新建第一个 Workspace `)],-1)]])):d(``,!0)])]),_:1},8,[`spinning`]),v(E,{open:a(X),"onUpdate:open":l[14]||=e=>f(X)?X.value=e:null,title:n.$t(`wsHome.newWs`),"confirm-loading":a(Q),"ok-text":`创建并进入`,"cancel-text":`取消`,onOk:$},{default:h(()=>[v(m,{value:a(Z),"onUpdate:value":l[13]||=e=>f(Z)?Z.value=e:null,placeholder:n.$t(`wsHome.ksmpk8l007`),onKeydown:e($,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`])],64)):(i(),u(`div`,me,[v(w,{class:`auth-card`},{default:h(()=>[l[15]||=g(`p`,{class:`aw-kicker`},` agentworkshop / sign in `,-1),g(`h2`,null,o(a(G)?`创建管理员账号`:n.$t(`wsHome.kr0vzqu008`)),1),g(`p`,he,o(a(G)?`系统尚无任何用户:首个注册的账号将成为管理员,创建后自动进入系统。`:`全局用户系统统管身份;每个用户可管理多个 API Token,管理 API 需用户 token(Authorization: Bearer)。`),1),v(C,{"active-key":a(z),"onUpdate:activeKey":l[6]||=e=>f(z)?z.value=e:null},{default:h(()=>[a(G)?d(``,!0):(i(),p(S,{key:`login`,tab:`账号登录`},{default:h(()=>[v(x,{direction:`vertical`,style:{width:`100%`}},{default:h(()=>[v(m,{value:a(V),"onUpdate:value":l[0]||=e=>f(V)?V.value=e:null,type:`email`,placeholder:n.$t(`wsHome.k48h2c001`),onKeydown:e(q,[`enter`])},null,8,[`value`,`placeholder`]),v(_,{value:a(H),"onUpdate:value":l[1]||=e=>f(H)?H.value=e:null,placeholder:n.$t(`wsHome.k3yvgs002`),onKeydown:e(q,[`enter`])},null,8,[`value`,`placeholder`]),v(y,{type:`primary`,block:``,loading:a(W),onClick:q},{default:h(()=>[c(o(n.$t(`wsHome.k43kol009`)),1)]),_:1},8,[`loading`]),g(`p`,ge,o(n.$t(`wsHome.k17x74cj010`)),1)]),_:1})]),_:1})),v(S,{key:`register`,tab:a(G)?`注册管理员`:`注册新用户`},{default:h(()=>[v(x,{direction:`vertical`,style:{width:`100%`}},{default:h(()=>[v(m,{value:a(B),"onUpdate:value":l[2]||=e=>f(B)?B.value=e:null,placeholder:n.$t(`wsHome.kwgbai9003`)},null,8,[`value`,`placeholder`]),v(m,{value:a(V),"onUpdate:value":l[3]||=e=>f(V)?V.value=e:null,type:`email`,placeholder:n.$t(`wsHome.kizjkbo004`)},null,8,[`value`,`placeholder`]),v(_,{value:a(H),"onUpdate:value":l[4]||=e=>f(H)?H.value=e:null,placeholder:n.$t(`wsHome.kh3cqfn005`),onKeydown:e(K,[`enter`])},null,8,[`value`,`placeholder`]),v(y,{type:`primary`,block:``,loading:a(W),onClick:K},{default:h(()=>[c(o(a(G)?`创建管理员并进入`:n.$t(`wsHome.k1so6a0v011`)),1)]),_:1},8,[`loading`]),g(`p`,_e,o(n.$t(`wsHome.k1r0a4u3012`)),1)]),_:1})]),_:1},8,[`tab`]),a(G)?d(``,!0):(i(),p(S,{key:`token`,tab:`Token 登录`},{default:h(()=>[v(x,{direction:`vertical`,style:{width:`100%`}},{default:h(()=>[v(_,{value:a(U),"onUpdate:value":l[5]||=e=>f(U)?U.value=e:null,placeholder:n.$t(`wsHome.k15qunld006`),onKeydown:e(J,[`enter`])},null,8,[`value`,`placeholder`]),v(y,{type:`primary`,block:``,loading:a(W),onClick:J},{default:h(()=>[c(o(n.$t(`wsHome.k43kol009`)),1)]),_:1},8,[`loading`])]),_:1})]),_:1}))]),_:1},8,[`active-key`])]),_:1})]))])}}}),[[`__scopeId`,`data-v-21bd37bc`]]);export{I as default};
@@ -1 +0,0 @@
1
- import{G as e,w as t}from"./rqZ-1SoP.js";import{C as n,G as r,H as i,Ht as a,St as o,Ut as ee,Wt as s,a as c,b as l,et as u,f as d,g as f,h as p,m,mt as h,nt as g,p as _,rt as v,t as y,x as b}from"./BSCpFtzG.js";import{n as x,t as S}from"./Cz9gD2Yo.js";import{n as C}from"./BeIfu4N3.js";import{t as te}from"./BN_PdN3J.js";import{r as w}from"./D-Ca4BGY.js";import{t as ne}from"./Cn3J3NXR.js";import{t as re}from"./niDwBOZW.js";import{t as ie}from"./6PZPfFcO.js";import{n as ae,r as oe,t as se}from"./DvgKXPgu2.js";import{t as ce}from"./DoLasgPj2.js";import{t as T}from"./BcrN7QEl2.js";import{t as le}from"./BytVi9VX2.js";var ue={class:`settings-page`},de={class:`aw-page-head`},fe={class:`aw-kicker`},pe={class:`aw-stamp`},me={class:`settings-layout`},he={class:`settings-nav`},ge=[`onClick`],E={class:`settings-body`},D={class:`section-title`},O={class:`section-desc`},k={class:`set-row`},A={class:`set-text`},j={class:`set-title`},M={class:`set-sub`},N={class:`color-swatches`},P=[`title`,`onClick`],F={class:`swatch-label`},I={key:0,class:`i-tabler-check swatch-check`},L={class:`toggle-row`},_e={class:`set-text`},ve={class:`set-title`},ye={class:`set-sub`},be=[`aria-checked`],xe={class:`toggle-row`},Se={class:`set-text`},Ce={class:`set-title`},we={class:`set-sub`},Te={class:`section-title`},Ee={class:`section-desc`},De={class:`rt-group-title`},Oe={class:`rt-main`},ke={class:`rt-title`},Ae={class:`rt-sub`},je={class:`rt-ctrl`},Me={key:3,class:`rt-color`},Ne=[`value`,`onInput`],Pe=[`title`,`onClick`],Fe={class:`rt-actions`},Ie=[`disabled`],Le={class:`rt-path aw-mono`},Re={class:`section-title`},ze={class:`section-desc`},Be={class:`aw-mono`},Ve={class:`identity-note`},R=y(n({__name:`settings`,setup(n){let{t:y,locale:R,locales:He,setLocale:Ue}=C(),z=x(),B=S(),V=t().public,H=T(),U=h(`appearance`),W=le(),G=h({}),K=h(new Set),q=h(!1),J=h(null);function Y(){G.value={...W.effective},K.value=new Set}u(()=>W.loaded,e=>{e&&Y()}),u(()=>W.effective,()=>{K.value.size===0&&Y()},{deep:!0});function X(e){K.value.add(e),J.value=null}async function We(){if(K.value.size){q.value=!0,J.value=null;try{let e={};for(let t of K.value)e[t]=G.value[t];let t=await W.patch(e);Y();let n=t.restartRequired??[];J.value=n.length?{type:`warning`,text:y(`settings.runtime.restartNotice`,{keys:n.join(`, `)})}:{type:`success`,text:y(`settings.runtime.savedLive`)}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}finally{q.value=!1}}}async function Ge(e){try{await W.patch({[e]:null}),K.value.delete(e),G.value[e]=W.effective[e],J.value={type:`success`,text:y(`settings.runtime.keyReset`,{key:e})}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}}async function Ke(){try{await W.resetAll(),Y(),J.value={type:`success`,text:y(`settings.runtime.resetAllDone`)}}catch(e){J.value={type:`error`,text:e?.response?.data?.message||e?.message||String(e)}}}function Z(e){return{server:y(`settings.runtime.groupServer`),app:y(`settings.runtime.groupApp`),api:y(`settings.runtime.groupApi`),theme:y(`settings.runtime.groupTheme`),i18n:y(`settings.runtime.groupI18n`),security:y(`settings.runtime.groupSecurity`),daq:y(`settings.runtime.groupDaq`),memory:y(`settings.runtime.groupMemory`),omp:y(`settings.runtime.groupOmp`),harness:y(`settings.runtime.groupHarness`),dcw:y(`settings.runtime.groupDcw`),workshop:y(`settings.runtime.groupWorkshop`),backup:y(`settings.runtime.groupBackup`),retention:y(`settings.runtime.groupRetention`),log:y(`settings.runtime.groupLog`)}[e]??e}function qe(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function Je(e){let t=e.labelKey;return t&&y(t)!==t?y(t):e.label}let Q=String(V.primaryColor),Ye=[{value:Q,label:y(`settings.accentInk`)},{value:`#c9963f`,label:y(`settings.accentStone`)},{value:`#44615a`,label:y(`settings.accentMoss`)},{value:`#3f6094`,label:y(`settings.accentSlate`)},{value:`#6b5aa0`,label:y(`settings.accentPlum`)},{value:`#9c5744`,label:y(`settings.accentClay`)}],$=d(()=>z.accent??Q);function Xe(e){z.setAccent(e===Q?null:e),w.success(y(`settings.accentApplied`))}function Ze(){z.setAccent(null),w.success(y(`settings.accentReset`))}let Qe=d(()=>He.value.map(e=>({label:e.name,value:e.code}))),$e=e=>{e!=null&&(localStorage.setItem(`aw.locale`,String(e)),Ue(String(e)),window.location.reload())},et=d(()=>[{label:y(`home.fields.name`),value:B.name},{label:y(`home.fields.version`),value:`v${B.version}`},{label:y(`home.fields.mode`),value:B.mode},{label:y(`home.fields.apiBase`),value:`${B.apiBase} (${V.apiTimeout}ms)`},{label:y(`home.fields.primary`),value:Q},{label:`i18n`,value:R.value}]),tt=d(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:y(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:y(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:y(`settings.systemTab`)}]);return(t,n)=>{let u=te,d=re,h=se,x=ce,S=ne,C=oe,w=ae,T=ie;return i(),f(`div`,ue,[_(`div`,de,[_(`div`,null,[_(`p`,fe,s(o(y)(`menu.system`))+` / settings `,1),_(`h1`,null,s(o(y)(`settings.title`)),1)]),_(`span`,pe,`v`+s(o(B).version),1)]),b(T,{bordered:!1,class:`settings-card`},{default:g(()=>[_(`div`,me,[_(`div`,he,[(i(!0),f(c,null,r(o(tt),e=>(i(),f(`button`,{key:e.key,class:a([`nav-item`,{active:o(U)===e.key}]),onClick:t=>U.value=e.key},[_(`span`,{class:a(e.icon)},null,2),_(`span`,null,s(e.label),1)],10,ge))),128))]),_(`div`,E,[v(_(`div`,null,[_(`h3`,D,s(o(y)(`settings.theme`)),1),_(`p`,O,s(o(y)(`settings.appearanceDesc`)),1),_(`div`,k,[_(`div`,A,[_(`div`,j,s(o(y)(`settings.primaryColor`)),1),_(`div`,M,s(o(y)(`settings.accentDesc`)),1)])]),_(`div`,N,[(i(),f(c,null,r(Ye,e=>_(`button`,{key:e.value,class:a([`swatch`,{on:o($).toLowerCase()===e.value.toLowerCase()}]),style:ee({"--sw":e.value}),title:e.label,onClick:t=>Xe(e.value)},[n[1]||=_(`span`,{class:`swatch-dot`},null,-1),_(`span`,F,s(e.label),1),o($).toLowerCase()===e.value.toLowerCase()?(i(),f(`span`,I)):p(``,!0)],14,P)),64))]),_(`button`,{class:`aw-pill outline reset-btn`,onClick:Ze},[n[2]||=_(`span`,{class:`i-tabler-rotate`},null,-1),l(` `+s(o(y)(`settings.accentResetAction`)),1)]),_(`div`,L,[_(`div`,_e,[_(`div`,ve,s(o(z).isDark?o(y)(`common.dark`):o(y)(`common.light`)),1),_(`div`,ye,s(o(y)(`settings.darkDesc`)),1)]),_(`button`,{class:a([`switch`,{on:o(z).isDark}]),role:`switch`,"aria-checked":o(z).isDark,onClick:n[0]||=e=>o(z).toggleDark()},[...n[3]||=[_(`span`,{class:`knob`},null,-1)]],10,be)]),_(`div`,xe,[_(`div`,Se,[_(`div`,Ce,s(o(y)(`header.language`)),1),_(`div`,we,s(o(y)(`settings.languageDesc`)),1)]),b(u,{value:o(R),options:o(Qe),style:{width:`140px`},onChange:$e},null,8,[`value`,`options`])])],512),[[e,o(U)===`appearance`]]),v(_(`div`,null,[_(`h3`,Te,s(o(y)(`settings.runtimeTab`)),1),_(`p`,Ee,s(o(y)(`settings.runtime.desc`)),1),o(J)?(i(),m(d,{key:0,type:o(J).type,"show-icon":``,class:`rt-notice`,message:o(J).text},null,8,[`type`,`message`])):p(``,!0),(i(!0),f(c,null,r(o(W).groups,e=>(i(),f(c,{key:e.group},[_(`h4`,De,s(Z(e.group)),1),(i(!0),f(c,null,r(e.items,e=>(i(),f(`div`,{key:e.key,class:`rt-row`},[_(`div`,Oe,[_(`div`,ke,[l(s(Je(e))+` `,1),_(`span`,{class:a([`rt-tag`,qe(o(W).sourceOf(e.key))])},s(o(W).sourceOf(e.key)),3),_(`span`,{class:a([`rt-tag`,e.applies])},s(e.applies===`live`?o(y)(`settings.runtime.live`):o(y)(`settings.runtime.restart`)),3)]),_(`div`,Ae,s(e.description),1)]),_(`div`,je,[e.type===`number`?(i(),m(h,{key:0,value:o(G)[e.key],"onUpdate:value":t=>o(G)[e.key]=t,min:e.min,max:e.max,onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`min`,`max`,`onChange`])):e.type===`boolean`?(i(),m(x,{key:1,checked:o(G)[e.key],"onUpdate:checked":t=>o(G)[e.key]=t,onChange:t=>X(e.key)},null,8,[`checked`,`onUpdate:checked`,`onChange`])):e.type===`select`?(i(),m(u,{key:2,value:o(G)[e.key],"onUpdate:value":t=>o(G)[e.key]=t,style:{width:`160px`},options:(e.options??[]).map(e=>({label:e,value:e})),onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`options`,`onChange`])):e.type===`color`?(i(),f(`span`,Me,[_(`input`,{type:`color`,value:String(o(G)[e.key]??`#35e0a0`),onInput:t=>{o(G)[e.key]=t.target.value,X(e.key)}},null,40,Ne),b(S,{value:String(o(G)[e.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:t=>{o(G)[e.key]=t.target.value,X(e.key)}},null,8,[`value`,`onChange`])])):(i(),m(S,{key:4,value:o(G)[e.key],"onUpdate:value":t=>o(G)[e.key]=t,style:{width:`220px`},onChange:t=>X(e.key)},null,8,[`value`,`onUpdate:value`,`onChange`])),_(`button`,{class:`aw-pill outline rt-reset`,title:o(y)(`settings.runtime.resetKey`),onClick:t=>Ge(e.key)},[...n[4]||=[_(`span`,{class:`i-tabler-rotate`},null,-1)]],8,Pe)])]))),128))],64))),128)),_(`div`,Fe,[_(`button`,{class:`aw-pill primary`,disabled:!o(K).size||o(q),onClick:We},[n[5]||=_(`span`,{class:`i-tabler-device-floppy`},null,-1),l(` `+s(o(q)?`…`:o(y)(`settings.runtime.save`)),1)],8,Ie),_(`button`,{class:`aw-pill outline`,onClick:Ke},s(o(y)(`settings.runtime.resetAll`)),1),_(`span`,Le,s(o(W).settingsPath),1)])],512),[[e,o(U)===`runtime`]]),v(_(`div`,null,[_(`h3`,Re,s(o(y)(`settings.systemTab`)),1),_(`p`,ze,s(o(y)(`settings.systemDesc`)),1),b(w,{bordered:``,column:1,size:`small`},{default:g(()=>[(i(!0),f(c,null,r(o(et),e=>(i(),m(C,{key:e.label,label:e.label},{default:g(()=>[_(`span`,Be,s(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),_(`p`,Ve,s(o(H).isLoggedIn?`${o(y)(`settings.identity`)}: ${o(H).user?.name} (${o(H).user?.role})`:o(y)(`settings.identityGuest`)),1)],512),[[e,o(U)===`system`]])])])]),_:1})])}}}),[[`__scopeId`,`data-v-1145bd88`]]);export{R as default};
@@ -1 +0,0 @@
1
- import{C as e,H as t,St as n,Wt as r,b as i,et as a,f as o,g as s,h as c,lt as l,m as u,mt as d,nt as f,p,t as m,x as h}from"./BSCpFtzG.js";import{s as g}from"./C3tCneTM.js";import{n as _}from"./B5S_UyaC.js";import{n as v}from"./BeIfu4N3.js";import{t as y}from"./VLI2Zy4t.js";import{t as b}from"./BMb80_tm.js";import{t as x}from"./BN_PdN3J.js";import{r as S}from"./D-Ca4BGY.js";import{i as C}from"./Cn3J3NXR.js";import{t as w}from"./BCJFMBQ6.js";import{t as T}from"./Cb3SnTM8.js";import{t as E}from"./6PZPfFcO.js";import{t as D}from"./ORt9oDIy.js";import{t as O}from"./BcrN7QEl2.js";var k={class:`page-wrap`},A={class:`aw-page-head`},j={class:`sub`},M={class:`gate-title`},N={class:`gate-hint`},P=m(e({__name:`users`,setup(e){let{t:m}=v(),P=O(),F=d(!1),I=d([]),L=d(``),R=o(()=>P.authHeaders()),z=async()=>{if(P.isAdmin){F.value=!0;try{let e=await g(`/api/users`,{headers:R.value,query:{pageSize:100,keyword:L.value||void 0}});I.value=e.data?.items??[]}catch(e){S.error(e instanceof Error?e.message:m(`users.k1br33vc006`))}finally{F.value=!1}}};a(()=>P.isLoggedIn,e=>{e&&z()},{immediate:!0});let B={admin:`volcano`,editor:`blue`,user:`default`},V=o(()=>[{title:m(`users.name`),dataIndex:`name`,key:`name`},{title:m(`users.email`),dataIndex:`email`,key:`email`},{title:m(`users.role`),dataIndex:`role`,key:`role`,width:110},{title:m(`common.status`),dataIndex:`status`,key:`status`,width:90},{title:m(`users.created`),dataIndex:`createdAt`,key:`createdAt`,width:150},{title:m(`common.actions`),key:`action`,width:220}]);function H(e){return m(`users.role${e.charAt(0).toUpperCase()}${e.slice(1)}`)}let U=async(e,t)=>{try{await g(`/api/users/${e.id}`,{method:`PUT`,headers:R.value,body:{role:t}}),S.success(m(`users.krkb23h011`,{p0:e.name,p1:t})),z()}catch(e){S.error(e instanceof Error?e.message:m(`users.k1enhqn3007`))}},W=async e=>{let t=e.status===`active`?`disabled`:`active`;try{await g(`/api/users/${e.id}`,{method:`PUT`,headers:R.value,body:{status:t}}),S.success(m(`users.k1u7u12g012`,{p0:e.name,p1:m(t===`active`?`users.k3xhfg009`:`users.k3wsi1010`)})),z()}catch(e){S.error(e instanceof Error?e.message:m(`users.k1enhqn3007`))}},G=async e=>{try{await g(`/api/users/${e.id}`,{method:`DELETE`,headers:R.value}),S.success(m(`users.knh5f2r013`,{p0:e.name})),z()}catch(e){S.error(e instanceof Error?e.message:m(`users.k1bphrb3008`))}},K=e=>e.id===P.user?.id;return _({title:()=>m(`titles.users`)}),(e,a)=>{let o=w,d=C,g=E,_=x,v=y,S=T,O=D,R=b;return t(),s(`div`,k,[p(`div`,A,[p(`div`,null,[a[2]||=p(`p`,{class:`aw-kicker`},` agentworkshop / identity `,-1),p(`h1`,null,[i(r(n(m)(`users.title`))+` `,1),h(o,{color:`volcano`,class:`admin-tag`},{default:f(()=>[...a[1]||=[p(`span`,{class:`i-tabler-shield-check`},null,-1),i(` admin `,-1)]]),_:1})]),p(`p`,j,r(e.$t(`users.k1flpho5002`)),1)]),h(d,{value:n(L),"onUpdate:value":a[0]||=e=>l(L)?L.value=e:null,placeholder:n(m)(`users.search`),style:{width:`240px`},onSearch:z},null,8,[`value`,`placeholder`])]),n(P).isAdmin?(t(),u(g,{key:1,bordered:!1,class:`table-card`},{default:f(()=>[h(R,{"data-source":n(I),columns:n(V),loading:n(F),"row-key":`id`,size:`small`,pagination:!1},{bodyCell:f(({column:n,record:a})=>[n.key===`role`?(t(),u(o,{key:0,color:B[a.role]},{default:f(()=>[i(r(H(a.role)),1)]),_:2},1032,[`color`])):n.key===`status`?(t(),u(o,{key:1,color:a.status===`active`?`green`:`default`},{default:f(()=>[i(r(a.status===`active`?e.$t(`users.k3xhfg009`):e.$t(`users.k3wsi1010`)),1)]),_:2},1032,[`color`])):n.key===`action`?(t(),u(O,{key:2,size:`small`},{default:f(()=>[h(_,{value:a.role,size:`small`,style:{width:`92px`},disabled:K(a),options:[{value:`user`,label:`user`},{value:`editor`,label:`editor`},{value:`admin`,label:`admin`}],onChange:e=>U(a,e)},null,8,[`value`,`disabled`,`onChange`]),h(v,{size:`small`,type:`text`,disabled:K(a),onClick:e=>W(a)},{default:f(()=>[i(r(a.status===`active`?e.$t(`users.k3wsi1010`):e.$t(`users.k3xhfg009`)),1)]),_:2},1032,[`disabled`,`onClick`]),h(S,{title:e.$t(`users.k1jk2os9001`),disabled:K(a),onConfirm:e=>G(a)},{default:f(()=>[h(v,{size:`small`,type:`text`,danger:``,disabled:K(a)},{default:f(()=>[i(r(e.$t(`users.k3xakp005`)),1)]),_:1},8,[`disabled`])]),_:2},1032,[`title`,`disabled`,`onConfirm`])]),_:2},1024)):c(``,!0)]),_:1},8,[`data-source`,`columns`,`loading`])]),_:1})):(t(),u(g,{key:0,bordered:!1,class:`gate-card`},{default:f(()=>[a[3]||=p(`span`,{class:`i-tabler-lock gate-icon`},null,-1),p(`p`,M,r(e.$t(`users.kpdo6rc003`)),1),p(`p`,N,r(e.$t(`users.k1mue9bl004`)),1)]),_:1}))])}}}),[[`__scopeId`,`data-v-4f234dd7`]]);export{P as default};