agentworkshop 0.7.23 → 0.7.27

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 (344) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/0jKrzLuM.js +19 -0
  3. package/.output/public/_nuxt/2jaJHWIJ.js +1 -0
  4. package/.output/public/_nuxt/{Cor9siSf.js → 6PZPfFcO.js} +1 -1
  5. package/.output/public/_nuxt/B7gZokg82.js +209 -0
  6. package/.output/public/_nuxt/B8kt898d.js +1 -0
  7. package/.output/public/_nuxt/{B-xskWta.js → BCJFMBQ6.js} +1 -1
  8. package/.output/public/_nuxt/BFGpEo8S.js +1 -0
  9. package/.output/public/_nuxt/BG4zduPf.js +14 -0
  10. package/.output/public/_nuxt/{DNxVTfhe.js → BGhOrgle.js} +1 -1
  11. package/.output/public/_nuxt/{n3vMFfrv.js → BHcpzI2n.js} +3 -3
  12. package/.output/public/_nuxt/{CEHmSufQ.js → BTLEvDxM.js} +1 -1
  13. package/.output/public/_nuxt/{CYBq3kS7.js → BWyR3awA.js} +1 -1
  14. package/.output/public/_nuxt/Bc89zKq2.js +1 -0
  15. package/.output/public/_nuxt/BetmGSO4.js +1 -0
  16. package/.output/public/_nuxt/{DAR70Lf5.js → BgCrZKv_2.js} +1 -1
  17. package/.output/public/_nuxt/BowTbasd.js +1 -0
  18. package/.output/public/_nuxt/BvtknqSC2.js +1 -0
  19. package/.output/public/_nuxt/CJviSvm-.js +1 -0
  20. package/.output/public/_nuxt/CTfqWGdy.js +1 -0
  21. package/.output/public/_nuxt/Cb3SnTM8.js +1 -0
  22. package/.output/public/_nuxt/Chc5pfAA.js +1 -0
  23. package/.output/public/_nuxt/CmHzfVc5.js +3 -0
  24. package/.output/public/_nuxt/Cn3J3NXR.js +23 -0
  25. package/.output/public/_nuxt/CobSUzQv.js +2 -0
  26. package/.output/public/_nuxt/{kZV5TQvh2.js → CucID8qg2.js} +1 -1
  27. package/.output/public/_nuxt/{CfVAr2nf.js → Cz9gD2Yo.js} +1 -1
  28. package/.output/public/_nuxt/{E88a-JCG.js → DGAOugLt.js} +1 -1
  29. package/.output/public/_nuxt/DHbTyoAV.js +1 -0
  30. package/.output/public/_nuxt/{BxtpDtzC.js → DNQF_TXX.js} +1 -1
  31. package/.output/public/_nuxt/DfLUN8kY.js +1 -0
  32. package/.output/public/_nuxt/DjU9Dx5Y.js +1 -0
  33. package/.output/public/_nuxt/DnziMlcX.js +1 -0
  34. package/.output/public/_nuxt/{BBwMH_hG.js → DoAlYsiF.js} +1 -1
  35. package/.output/public/_nuxt/{DA4lxCWC2.js → DosOJEmZ2.js} +2 -2
  36. package/.output/public/_nuxt/{DWcEk1ur2.js → DvgKXPgu2.js} +1 -1
  37. package/.output/public/_nuxt/{ed5qX-x5.js → Q_SJDSgx.js} +1 -1
  38. package/.output/public/_nuxt/{TownView.zu2rU5nS.css → TownView.CtskuMXS.css} +1 -1
  39. package/.output/public/_nuxt/XY2z78rj.js +1 -0
  40. package/.output/public/_nuxt/_id_.DdbYeLqn.css +1 -0
  41. package/.output/public/_nuxt/bFnZa2yd.js +1 -0
  42. package/.output/public/_nuxt/builds/latest.json +1 -1
  43. package/.output/public/_nuxt/builds/meta/f7a8e33d-5422-45ac-895d-27168f97e3ad.json +1 -0
  44. package/.output/public/_nuxt/daq.DGV9QS8d.css +1 -0
  45. package/.output/public/_nuxt/entry.BN02X8iR.css +1 -0
  46. package/.output/public/_nuxt/monitor.B--1dPzs.css +1 -0
  47. package/.output/public/_nuxt/permissions.B1pjGChZ.css +1 -0
  48. package/.output/public/_nuxt/plugins.DpCuwaJt.css +1 -0
  49. package/.output/public/_nuxt/rkVgzg62.js +1 -0
  50. package/.output/public/_nuxt/settings.W6qrYAui.css +1 -0
  51. package/.output/public/_nuxt/teams.BBXVkyKq.css +1 -0
  52. package/.output/public/_nuxt/tokens.xRb1fSPU.css +1 -0
  53. package/.output/public/_nuxt/users.DuAt_Zwf.css +1 -0
  54. package/.output/public/_nuxt/workshop.BJg84pOK.css +1 -0
  55. package/.output/public/assets/game/character/yangyang-walk.glb +0 -0
  56. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  57. package/.output/server/chunks/_/nitro.mjs +1073 -925
  58. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  59. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs → OmpTerminalPanel-Cw_Vw9oO.mjs} +3 -3
  60. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs.map → OmpTerminalPanel-Cw_Vw9oO.mjs.map} +1 -1
  61. package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs → TownView-ftIylqiD.mjs} +178 -151
  62. package/.output/server/chunks/build/{TownView-DxeQe1Bl.mjs.map → TownView-ftIylqiD.mjs.map} +1 -1
  63. package/.output/server/chunks/build/{_id_-DQDqj-cZ.mjs → _id_-3Axz2-gV.mjs} +35 -35
  64. package/.output/server/chunks/build/{_id_-DQDqj-cZ.mjs.map → _id_-3Axz2-gV.mjs.map} +1 -1
  65. package/.output/server/chunks/build/{_id_-DY6v6sqB.mjs → _id_-CahfkmEt.mjs} +5 -5
  66. package/.output/server/chunks/build/{_id_-DY6v6sqB.mjs.map → _id_-CahfkmEt.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{_wsId_-C2O5zZsI.mjs → _wsId_-BymlQhzS.mjs} +13 -15
  68. package/.output/server/chunks/build/{_wsId_-C2O5zZsI.mjs.map → _wsId_-BymlQhzS.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{agents--6bzGtES.mjs → agents-DuMiSWKp.mjs} +7 -9
  70. package/.output/server/chunks/build/agents-DuMiSWKp.mjs.map +1 -0
  71. package/.output/server/chunks/build/button-DEcZFcqN.mjs +1 -1
  72. package/.output/server/chunks/build/{card-CCPQoKlh.mjs → card-Dipvaykh.mjs} +4 -4
  73. package/.output/server/chunks/build/{card-CCPQoKlh.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  74. package/.output/server/chunks/build/{channel-templates-C1Bb-U75.mjs → channel-templates-BStqJ-of.mjs} +5 -7
  75. package/.output/server/chunks/build/channel-templates-BStqJ-of.mjs.map +1 -0
  76. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs → checkbox-C1gABOca.mjs} +5 -5
  77. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs.map → checkbox-C1gABOca.mjs.map} +1 -1
  78. package/.output/server/chunks/build/{daq-B-3xCp_2.mjs → daq-ChYCABz1.mjs} +312 -426
  79. package/.output/server/chunks/build/daq-ChYCABz1.mjs.map +1 -0
  80. package/.output/server/chunks/build/{dcw-BL2dhuz7.mjs → dcw-CcQNGggh.mjs} +3 -3
  81. package/.output/server/chunks/build/{dcw-BL2dhuz7.mjs.map → dcw-CcQNGggh.mjs.map} +1 -1
  82. package/.output/server/chunks/build/{default-DdV642BY.mjs → default-95-zOTPt.mjs} +3 -4
  83. package/.output/server/chunks/build/{default-DdV642BY.mjs.map → default-95-zOTPt.mjs.map} +1 -1
  84. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +1 -1
  85. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs → input-number-Bd55elNN.mjs} +3 -3
  86. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{input-DxDqeyQW.mjs → input-sf_BT6o6.mjs} +553 -5
  88. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +1 -0
  89. package/.output/server/chunks/build/{logs-Dto_umFY.mjs → logs-D-2UyGtE.mjs} +3 -3
  90. package/.output/server/chunks/build/{logs-Dto_umFY.mjs.map → logs-D-2UyGtE.mjs.map} +1 -1
  91. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +2 -2
  92. package/.output/server/chunks/build/modal-yvUquPj5.mjs +2 -2
  93. package/.output/server/chunks/build/{monitor-miqq9xHB.mjs → monitor-mfG5jBtz.mjs} +70 -192
  94. package/.output/server/chunks/build/monitor-mfG5jBtz.mjs.map +1 -0
  95. package/.output/server/chunks/build/{pages-D9tOoJsf.mjs → pages-Dfosfchr.mjs} +5 -6
  96. package/.output/server/chunks/build/pages-Dfosfchr.mjs.map +1 -0
  97. package/.output/server/chunks/build/{permissions-CxEgXic0.mjs → permissions-B-hhZuzm.mjs} +288 -194
  98. package/.output/server/chunks/build/permissions-B-hhZuzm.mjs.map +1 -0
  99. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs → plugins-DZR0T4Mh.mjs} +17 -17
  100. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs.map → plugins-DZR0T4Mh.mjs.map} +1 -1
  101. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +1 -1
  102. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs → segmented-LPPREMtZ.mjs} +336 -5
  103. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs.map → segmented-LPPREMtZ.mjs.map} +1 -1
  104. package/.output/server/chunks/build/{settings-BPBll_7K.mjs → settings-BajN9TQW.mjs} +254 -27
  105. package/.output/server/chunks/build/settings-BajN9TQW.mjs.map +1 -0
  106. package/.output/server/chunks/build/space-CCBYAkXt.mjs +1 -1
  107. package/.output/server/chunks/build/switch-CelRXpcy.mjs +1 -1
  108. package/.output/server/chunks/build/{table-BtksyDlQ.mjs → table-Bf1r2JjE.mjs} +5 -5
  109. package/.output/server/chunks/build/{table-BtksyDlQ.mjs.map → table-Bf1r2JjE.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs → tabs-BM3tAh_J.mjs} +2 -2
  111. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  112. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs → tag-NO9jEqKy.mjs} +3 -3
  113. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  114. package/.output/server/chunks/build/{teams-DD8ZXTKL.mjs → teams-t2SkRlJP.mjs} +349 -51
  115. package/.output/server/chunks/build/teams-t2SkRlJP.mjs.map +1 -0
  116. package/.output/server/chunks/build/{tokens-Dxnuw96_.mjs → tokens-DiCojbN8.mjs} +296 -200
  117. package/.output/server/chunks/build/tokens-DiCojbN8.mjs.map +1 -0
  118. package/.output/server/chunks/build/{town-Dsh0jlwZ.mjs → town-C7QM8DYK.mjs} +5 -5
  119. package/.output/server/chunks/build/{town-Dsh0jlwZ.mjs.map → town-C7QM8DYK.mjs.map} +1 -1
  120. package/.output/server/chunks/build/{useDaqStream-DkRL3tEW.mjs → useDaqStream-BeA2X8KR.mjs} +26 -11
  121. package/.output/server/chunks/build/useDaqStream-BeA2X8KR.mjs.map +1 -0
  122. package/.output/server/chunks/build/{useDcwStream-DyB2ufQI.mjs → useDcwStream-BJW_MitY.mjs} +14 -6
  123. package/.output/server/chunks/build/useDcwStream-BJW_MitY.mjs.map +1 -0
  124. package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs → useDeviceTwins-Dwz_EY_i.mjs} +2 -2
  125. package/.output/server/chunks/build/{useDeviceTwins-ZbT86L9O.mjs.map → useDeviceTwins-Dwz_EY_i.mjs.map} +1 -1
  126. package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs → useOpsLog-Dm8QEb1I.mjs} +2 -2
  127. package/.output/server/chunks/build/{useOpsLog-8HCYFb6n.mjs.map → useOpsLog-Dm8QEb1I.mjs.map} +1 -1
  128. package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs → useWorkshopApi-B-L3MmIX.mjs} +9 -2
  129. package/.output/server/chunks/build/{useWorkshopApi-D2gq06N2.mjs.map → useWorkshopApi-B-L3MmIX.mjs.map} +1 -1
  130. package/.output/server/chunks/build/{users-D6RNylrW.mjs → users-B9SAdEtH.mjs} +12 -13
  131. package/.output/server/chunks/build/users-B9SAdEtH.mjs.map +1 -0
  132. package/.output/server/chunks/build/{workshop-CTcYDq2i.mjs → workshop-81xhz368.mjs} +21 -22
  133. package/.output/server/chunks/build/workshop-81xhz368.mjs.map +1 -0
  134. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +14 -2
  135. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  137. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +40 -0
  138. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -0
  139. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +21 -9
  140. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +33 -0
  142. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -0
  143. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
  144. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +15 -1
  145. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  146. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
  147. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
  148. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -1
  150. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
  151. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
  152. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
  153. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
  154. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -1
  155. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
  156. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
  157. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
  165. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
  166. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  167. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  169. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
  170. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  171. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  173. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  174. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  175. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
  176. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
  178. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
  180. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  181. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  184. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  197. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  209. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
  213. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  219. package/.output/server/chunks/routes/renderer.mjs +3 -3
  220. package/.output/server/chunks/virtual/entry.mjs +381 -438
  221. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  222. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  223. package/.output/server/package.json +1 -1
  224. package/app/app.vue +7 -0
  225. package/app/assets/css/main.css +12 -1
  226. package/app/components/workshop/DaqNodeRow.vue +398 -0
  227. package/app/components/workshop/town/ModelPreview3D.vue +26 -4
  228. package/app/components/workshop/town/TownScene3D.ts +60 -12
  229. package/app/components/workshop/town/TownView.vue +4 -3
  230. package/app/composables/workshop/useCharacterAssets.ts +1 -0
  231. package/app/composables/workshop/useDaqStream.ts +24 -5
  232. package/app/composables/workshop/useDcwStream.ts +13 -4
  233. package/app/composables/workshop/useWorkshopApi.ts +294 -259
  234. package/app/pages/daq/[id].vue +27 -3
  235. package/app/pages/daq/index.vue +8 -355
  236. package/app/pages/monitor.vue +56 -68
  237. package/app/pages/permissions/index.vue +86 -82
  238. package/app/pages/plugins/index.vue +12 -7
  239. package/app/pages/settings.vue +253 -2
  240. package/app/pages/tokens.vue +94 -96
  241. package/app/pages/users.vue +10 -18
  242. package/app/pages/workshop/index.vue +34 -5
  243. package/app/pages/workshop/teams.vue +212 -2
  244. package/i18n/dicts/_en.json +361 -1
  245. package/i18n/dicts/plugins.json +10 -0
  246. package/i18n/dicts/settings.json +1 -0
  247. package/i18n/dicts/teamPlugins.json +10 -0
  248. package/i18n/locales/en.ts +1861 -1901
  249. package/i18n/locales/zh-CN.ts +1789 -1830
  250. package/package.json +149 -148
  251. package/public/assets/game/character/yangyang-walk.glb +0 -0
  252. package/scripts/_dbg-cpu-profile.mjs +53 -0
  253. package/scripts/_dbg-logs-ui-e2e.py +3 -2
  254. package/scripts/_dbg-render-perf.mjs +142 -0
  255. package/scripts/_dbg-render-regression.mjs +130 -0
  256. package/scripts/_dbg-ui-survey.py +52 -0
  257. package/scripts/i18n-merge.mjs +152 -30
  258. package/scripts/production-closed-loop-e2e.mjs +254 -0
  259. package/scripts/team-plugins-api-smoke.mjs +149 -0
  260. package/scripts/three-system-e2e.mjs +448 -0
  261. package/server/api/plugins/[name]/[...path].ts +46 -31
  262. package/server/api/workshop/channels/[id]/plugins/index.get.ts +35 -0
  263. package/server/api/workshop/channels/[id]/plugins/index.put.ts +39 -0
  264. package/server/api/workshop/channels.post.ts +17 -0
  265. package/server/data/dcw-lines.json +14 -0
  266. package/server/data/dcw-products.json +14 -0
  267. package/server/data/dcw-recipes.json +23 -1
  268. package/server/data/dcw-rollback.json +585 -10
  269. package/server/data/dcw-runs.json +27 -27
  270. package/server/data/dcw-writes.json +96 -0
  271. package/server/data/dcws.json +394 -366
  272. package/server/data/scene-layouts.json +66 -0
  273. package/server/plugins/aw-plugins.ts +35 -27
  274. package/server/plugins-builtin/diag-bridge/index.mjs +556 -0
  275. package/server/plugins-builtin/rag-bridge/index.mjs +364 -0
  276. package/server/services/workshop/agents/host-tool-bridge.ts +659 -642
  277. package/server/services/workshop/agents/omp-agent.ts +1178 -1178
  278. package/server/services/workshop/agents/plugin-tools.ts +10 -1
  279. package/server/services/workshop/db/channel-plugins.repo.ts +65 -0
  280. package/server/services/workshop/plugins/host.mjs +52 -4
  281. package/server/services/workshop/runtime/manager.ts +2976 -2968
  282. package/shared/config/schema.json +4 -0
  283. package/.output/public/_nuxt/BJbhwS5o.js +0 -1
  284. package/.output/public/_nuxt/BUcmySDa2.js +0 -209
  285. package/.output/public/_nuxt/BWC4HQHQ.js +0 -1
  286. package/.output/public/_nuxt/BbZAzXjZ2.js +0 -1
  287. package/.output/public/_nuxt/BgOhoDTI.js +0 -1
  288. package/.output/public/_nuxt/Bo8t5fkJ.js +0 -1
  289. package/.output/public/_nuxt/BuiGDfMB.js +0 -1
  290. package/.output/public/_nuxt/BxPPAkGA.js +0 -3
  291. package/.output/public/_nuxt/C53drffV.js +0 -1
  292. package/.output/public/_nuxt/CcwJ2mrD2.js +0 -1
  293. package/.output/public/_nuxt/Cr9DkD1d.js +0 -1
  294. package/.output/public/_nuxt/DTYBfjRY.js +0 -1
  295. package/.output/public/_nuxt/DVoWWlUW.js +0 -1
  296. package/.output/public/_nuxt/Dc32T41C.js +0 -1
  297. package/.output/public/_nuxt/Dhqra7NB.js +0 -1
  298. package/.output/public/_nuxt/DlRO_q5L.js +0 -1
  299. package/.output/public/_nuxt/DsUUYP292.js +0 -1
  300. package/.output/public/_nuxt/Dsdy4Ua-.js +0 -1
  301. package/.output/public/_nuxt/DtzZqC0z.js +0 -1
  302. package/.output/public/_nuxt/Ko9mMsJj.js +0 -14
  303. package/.output/public/_nuxt/RzXYI9FM.js +0 -23
  304. package/.output/public/_nuxt/UtviM1bg.js +0 -1
  305. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +0 -1
  306. package/.output/public/_nuxt/bAFueD6a.js +0 -1
  307. package/.output/public/_nuxt/builds/meta/1adc96e0-8bbd-4a79-ac7e-b6952556fef8.json +0 -1
  308. package/.output/public/_nuxt/daq.3OKj58HH.css +0 -1
  309. package/.output/public/_nuxt/dbi5bHkY.js +0 -2
  310. package/.output/public/_nuxt/eHYnGew0.js +0 -19
  311. package/.output/public/_nuxt/entry.OR_psZHp.css +0 -1
  312. package/.output/public/_nuxt/jyQyulh-.js +0 -1
  313. package/.output/public/_nuxt/monitor.CmwpEUCI.css +0 -1
  314. package/.output/public/_nuxt/permissions.DTRtZeTw.css +0 -1
  315. package/.output/public/_nuxt/plugins.BcSEwwGb.css +0 -1
  316. package/.output/public/_nuxt/settings.BqMF2nfj.css +0 -1
  317. package/.output/public/_nuxt/teams.DN0pAGGu.css +0 -1
  318. package/.output/public/_nuxt/tokens.BVXU1jOK.css +0 -1
  319. package/.output/public/_nuxt/users.D8lcLE62.css +0 -1
  320. package/.output/public/_nuxt/workshop.CbymC2LY.css +0 -1
  321. package/.output/public/_nuxt/zVkqCZ78.js +0 -1
  322. package/.output/server/chunks/build/Col-biaNnEPf.mjs +0 -338
  323. package/.output/server/chunks/build/Col-biaNnEPf.mjs.map +0 -1
  324. package/.output/server/chunks/build/agents--6bzGtES.mjs.map +0 -1
  325. package/.output/server/chunks/build/channel-templates-C1Bb-U75.mjs.map +0 -1
  326. package/.output/server/chunks/build/daq-B-3xCp_2.mjs.map +0 -1
  327. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs +0 -554
  328. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs.map +0 -1
  329. package/.output/server/chunks/build/input-DxDqeyQW.mjs.map +0 -1
  330. package/.output/server/chunks/build/monitor-miqq9xHB.mjs.map +0 -1
  331. package/.output/server/chunks/build/pages-D9tOoJsf.mjs.map +0 -1
  332. package/.output/server/chunks/build/permissions-CxEgXic0.mjs.map +0 -1
  333. package/.output/server/chunks/build/settings-BPBll_7K.mjs.map +0 -1
  334. package/.output/server/chunks/build/teams-DD8ZXTKL.mjs.map +0 -1
  335. package/.output/server/chunks/build/tokens-Dxnuw96_.mjs.map +0 -1
  336. package/.output/server/chunks/build/useDaqStream-DkRL3tEW.mjs.map +0 -1
  337. package/.output/server/chunks/build/useDcwStream-DyB2ufQI.mjs.map +0 -1
  338. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs +0 -27
  339. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs.map +0 -1
  340. package/.output/server/chunks/build/users-D6RNylrW.mjs.map +0 -1
  341. package/.output/server/chunks/build/workshop-CTcYDq2i.mjs.map +0 -1
  342. /package/.output/public/_nuxt/{CNs_Ozdc.js → CNs_Ozdc2.js} +0 -0
  343. /package/.output/public/_nuxt/{Cno6kYiO.js → Cno6kYiO2.js} +0 -0
  344. /package/.output/public/_nuxt/{ORt9oDIy2.js → ORt9oDIy.js} +0 -0
@@ -1,17 +1,18 @@
1
1
  import { _ as _plugin_vue_export_helper_default, u as useI18n, b as useUserStore, c as useHead$1, n as navigateTo, d as api$1 } from '../virtual/entry.mjs';
2
2
  import { b as button_default } from './button-DEcZFcqN.mjs';
3
- import { s as segmented_default, f as form_default, F as FormItem_default } from './segmented-ChmQZwz6.mjs';
3
+ import { s as segmented_default, f as form_default, F as FormItem_default } from './segmented-LPPREMtZ.mjs';
4
4
  import { S as Select } from './select-D-CeE5vY.mjs';
5
- import { i as input_default } from './input-DxDqeyQW.mjs';
6
- import { T as Tag, G as Group_default, r as radio_default } from './tag-A0tZ2Ouq.mjs';
5
+ import { i as input_default } from './input-sf_BT6o6.mjs';
6
+ import { T as Tag, G as Group_default, r as radio_default } from './tag-NO9jEqKy.mjs';
7
7
  import { m as menu_default, M as MenuItem_default } from './menu-WCrlpYVh.mjs';
8
8
  import { m as modal_default } from './modal-yvUquPj5.mjs';
9
9
  import { S as Space } from './space-CCBYAkXt.mjs';
10
+ import { G as Group_default$1, c as checkbox_default } from './checkbox-C1gABOca.mjs';
10
11
  import { d as dropdown_default } from './dropdown-CGQ0KAzA.mjs';
11
12
  import { s as spin_default } from './spin-HVY81X_L.mjs';
12
13
  import { s as switch_default } from './switch-CelRXpcy.mjs';
13
14
  import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
14
- import { u as useWorkshopApi } from './useWorkshopApi-D2gq06N2.mjs';
15
+ import { u as useWorkshopApi } from './useWorkshopApi-B-L3MmIX.mjs';
15
16
  import { defineComponent, ref, computed, reactive, mergeProps, withCtx, unref, createTextVNode, toDisplayString, createVNode, isRef, openBlock, createBlock, createCommentVNode, Fragment, renderList, useSSRContext } from 'vue';
16
17
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderList, ssrRenderClass } from 'vue/server-renderer';
17
18
  import '../_/nitro.mjs';
@@ -46,8 +47,6 @@ import '@ant-design/colors';
46
47
  import 'axios';
47
48
  import './initDefaultProps-DIbWwP4R.mjs';
48
49
  import '../_/SearchOutlined.mjs';
49
- import './hasIn-vQ9LWt-J.mjs';
50
- import './Col-biaNnEPf.mjs';
51
50
  import './responsiveObserve-CS0UB6wQ.mjs';
52
51
  import './dropdown-vhn1NPFs.mjs';
53
52
 
@@ -125,21 +124,38 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
125
124
  description: "",
126
125
  visibility: "private"
127
126
  });
127
+ const platformPlugins = ref([]);
128
+ const createPluginSel = ref({});
129
+ /** checkbox-group 双向绑定(勾选集 ↔ plugins 开关视图) */
130
+ const pluginChecked = computed({
131
+ get: () => Object.entries(createPluginSel.value).filter(([, v]) => v).map(([k]) => k),
132
+ set: (vals) => {
133
+ const next = {};
134
+ for (const p of platformPlugins.value) next[p.name] = vals.includes(p.name);
135
+ createPluginSel.value = next;
136
+ }
137
+ });
128
138
  const create = async () => {
129
139
  if (!createForm.name.trim()) {
130
140
  api$1.warning(t("teams.k1bvcdo2021"));
131
141
  return;
132
142
  }
143
+ const plugins = Object.entries(createPluginSel.value).map(([name, enabled]) => ({
144
+ name,
145
+ enabled
146
+ }));
133
147
  await api$1$1.createTeam({
134
148
  name: createForm.name.trim(),
135
149
  description: createForm.description || void 0,
136
- visibility: createForm.visibility
150
+ visibility: createForm.visibility,
151
+ plugins
137
152
  });
138
153
  api$1.success(t("teams.k3n5hak022"));
139
154
  createOpen.value = false;
140
155
  createForm.name = "";
141
156
  createForm.description = "";
142
157
  createForm.visibility = "private";
158
+ createPluginSel.value = Object.fromEntries(Object.entries(createPluginSel.value).map(([k]) => [k, true]));
143
159
  load();
144
160
  };
145
161
  /** 一键切换可见性(属主/admin) */
@@ -213,6 +229,50 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
213
229
  api$1.success(t("teams.k1oxjrxx027"));
214
230
  load();
215
231
  };
232
+ const plugOpen = ref(false);
233
+ const plugTeamRef = ref(null);
234
+ const plugRows = ref([]);
235
+ const plugSource = ref("default");
236
+ const plugLoading = ref(false);
237
+ const plugSaving = ref(null);
238
+ const openPlugins = (team) => {
239
+ plugTeamRef.value = team;
240
+ plugRows.value = [];
241
+ plugSource.value = "default";
242
+ plugOpen.value = true;
243
+ loadTeamPlugins(team);
244
+ };
245
+ const loadTeamPlugins = async (team) => {
246
+ plugLoading.value = true;
247
+ try {
248
+ const data = (await api$1$1.listChannelPlugins(team.id))?.data ?? {};
249
+ plugRows.value = data.plugins ?? [];
250
+ plugSource.value = data.source === "explicit" ? "explicit" : "default";
251
+ } catch (e) {
252
+ api$1.error(apiErrorMessage(e));
253
+ } finally {
254
+ plugLoading.value = false;
255
+ }
256
+ };
257
+ const toggleTeamPlugin = async (row, next) => {
258
+ if (!plugTeamRef.value || plugSaving.value) return;
259
+ const teamId = plugTeamRef.value.id;
260
+ plugSaving.value = row.name;
261
+ try {
262
+ const payload = plugRows.value.map((r) => ({
263
+ name: r.name,
264
+ enabled: r.name === row.name ? next : r.enabled
265
+ }));
266
+ const data = (await api$1$1.putChannelPlugins(teamId, { plugins: payload }))?.data ?? {};
267
+ plugRows.value = data.plugins ?? payload.map((p) => ({ ...p }));
268
+ plugSource.value = data.source === "explicit" ? "explicit" : "default";
269
+ api$1.success(t("teams.k1plugon043"));
270
+ } catch (e) {
271
+ api$1.error(apiErrorMessage(e));
272
+ } finally {
273
+ plugSaving.value = null;
274
+ }
275
+ };
216
276
  useHead$1({ title: () => t("titles.teams") });
217
277
  return (_ctx, _push, _parent, _attrs) => {
218
278
  const _component_a_space = Space;
@@ -230,8 +290,10 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
230
290
  const _component_a_input = input_default;
231
291
  const _component_a_radio_group = Group_default;
232
292
  const _component_a_radio = radio_default;
293
+ const _component_a_checkbox_group = Group_default$1;
294
+ const _component_a_checkbox = checkbox_default;
233
295
  const _component_a_select = Select;
234
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-79de9b56><div class="head" data-v-79de9b56><div data-v-79de9b56><h2 data-v-79de9b56>AgentTeam ${ssrInterpolate(_ctx.$t("teams.k3svl8y028"))}</h2><p class="sub" data-v-79de9b56>${ssrInterpolate(_ctx.$t("teams.k12gl4wn008"))}</p></div>`);
296
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-56172f39><div class="head" data-v-56172f39><div data-v-56172f39><h2 data-v-56172f39>AgentTeam ${ssrInterpolate(_ctx.$t("teams.k3svl8y028"))}</h2><p class="sub" data-v-56172f39>${ssrInterpolate(_ctx.$t("teams.k12gl4wn008"))}</p></div>`);
235
297
  _push(ssrRenderComponent(_component_a_space, null, {
236
298
  default: withCtx((_, _push, _parent, _scopeId) => {
237
299
  if (_push) {
@@ -265,7 +327,7 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
265
327
  }),
266
328
  _: 1
267
329
  }, _parent));
268
- _push(`</div><div class="toolbar" data-v-79de9b56>`);
330
+ _push(`</div><div class="toolbar" data-v-56172f39>`);
269
331
  _push(ssrRenderComponent(_component_a_segmented, {
270
332
  value: unref(filter),
271
333
  "onUpdate:value": ($event) => isRef(filter) ? filter.value = $event : null,
@@ -289,22 +351,22 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
289
351
  }
290
352
  ]
291
353
  }, null, _parent));
292
- if (unref(userStore).isAdmin) _push(`<span class="admin-note" data-v-79de9b56><span class="i-tabler-shield-check" data-v-79de9b56></span> ${ssrInterpolate(_ctx.$t("teams.k1bpgi8h010"))}</span>`);
354
+ if (unref(userStore).isAdmin) _push(`<span class="admin-note" data-v-56172f39><span class="i-tabler-shield-check" data-v-56172f39></span> ${ssrInterpolate(_ctx.$t("teams.k1bpgi8h010"))}</span>`);
293
355
  else _push(`<!---->`);
294
356
  _push(`</div>`);
295
357
  _push(ssrRenderComponent(_component_a_spin, { spinning: unref(loading) }, {
296
358
  default: withCtx((_, _push, _parent, _scopeId) => {
297
359
  if (_push) {
298
- _push(`<div class="grid" data-v-79de9b56${_scopeId}><!--[-->`);
360
+ _push(`<div class="grid" data-v-56172f39${_scopeId}><!--[-->`);
299
361
  ssrRenderList(unref(shown), (team) => {
300
- _push(`<div class="card" data-v-79de9b56${_scopeId}><div class="card-head" data-v-79de9b56${_scopeId}><span class="name" data-v-79de9b56${_scopeId}>${ssrInterpolate(team.name)}</span>`);
362
+ _push(`<div class="card" data-v-56172f39${_scopeId}><div class="card-head" data-v-56172f39${_scopeId}><span class="name" data-v-56172f39${_scopeId}>${ssrInterpolate(team.name)}</span>`);
301
363
  _push(ssrRenderComponent(_component_a_tag, {
302
364
  color: visTag(team).color,
303
365
  class: "vis-tag"
304
366
  }, {
305
367
  default: withCtx((_, _push, _parent, _scopeId) => {
306
368
  if (_push) {
307
- if (visTag(team).icon) _push(`<span class="${ssrRenderClass(visTag(team).icon)}" data-v-79de9b56${_scopeId}></span>`);
369
+ if (visTag(team).icon) _push(`<span class="${ssrRenderClass(visTag(team).icon)}" data-v-56172f39${_scopeId}></span>`);
308
370
  else _push(`<!---->`);
309
371
  _push(`${ssrInterpolate(visTag(team).text)}`);
310
372
  } else return [visTag(team).icon ? (openBlock(), createBlock("span", {
@@ -322,7 +384,7 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
322
384
  onChange: (v) => toggleVisibility(team, v === true)
323
385
  }, null, _parent, _scopeId));
324
386
  else _push(`<!---->`);
325
- _push(`<span class="owner" data-v-79de9b56${_scopeId}>${ssrInterpolate(team.ownerName ?? "-")}</span>`);
387
+ _push(`<span class="owner" data-v-56172f39${_scopeId}>${ssrInterpolate(team.ownerName ?? "-")}</span>`);
326
388
  if (canWrite(team)) _push(ssrRenderComponent(_component_a_dropdown, null, {
327
389
  overlay: withCtx((_, _push, _parent, _scopeId) => {
328
390
  if (_push) _push(ssrRenderComponent(_component_a_menu, null, {
@@ -335,6 +397,13 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
335
397
  }),
336
398
  _: 2
337
399
  }, _parent, _scopeId));
400
+ _push(ssrRenderComponent(_component_a_menu_item, { onClick: ($event) => openPlugins(team) }, {
401
+ default: withCtx((_, _push, _parent, _scopeId) => {
402
+ if (_push) _push(`${ssrInterpolate(_ctx.$t("teams.k1plugon047"))}`);
403
+ else return [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon047")), 1)];
404
+ }),
405
+ _: 2
406
+ }, _parent, _scopeId));
338
407
  _push(ssrRenderComponent(_component_a_menu_item, {
339
408
  danger: "",
340
409
  onClick: ($event) => removeTeam(team)
@@ -345,35 +414,49 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
345
414
  }),
346
415
  _: 2
347
416
  }, _parent, _scopeId));
348
- } else return [createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
417
+ } else return [
418
+ createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
419
+ default: withCtx(() => [createTextVNode(" 部署到 Channel… ")]),
420
+ _: 1
421
+ }, 8, ["onClick"]),
422
+ createVNode(_component_a_menu_item, { onClick: ($event) => openPlugins(team) }, {
423
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon047")), 1)]),
424
+ _: 1
425
+ }, 8, ["onClick"]),
426
+ createVNode(_component_a_menu_item, {
427
+ danger: "",
428
+ onClick: ($event) => removeTeam(team)
429
+ }, {
430
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1bpojhf011")), 1)]),
431
+ _: 1
432
+ }, 8, ["onClick"])
433
+ ];
434
+ }),
435
+ _: 2
436
+ }, _parent, _scopeId));
437
+ else return [createVNode(_component_a_menu, null, {
438
+ default: withCtx(() => [
439
+ createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
349
440
  default: withCtx(() => [createTextVNode(" 部署到 Channel… ")]),
350
441
  _: 1
351
- }, 8, ["onClick"]), createVNode(_component_a_menu_item, {
442
+ }, 8, ["onClick"]),
443
+ createVNode(_component_a_menu_item, { onClick: ($event) => openPlugins(team) }, {
444
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon047")), 1)]),
445
+ _: 1
446
+ }, 8, ["onClick"]),
447
+ createVNode(_component_a_menu_item, {
352
448
  danger: "",
353
449
  onClick: ($event) => removeTeam(team)
354
450
  }, {
355
451
  default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1bpojhf011")), 1)]),
356
452
  _: 1
357
- }, 8, ["onClick"])];
358
- }),
359
- _: 2
360
- }, _parent, _scopeId));
361
- else return [createVNode(_component_a_menu, null, {
362
- default: withCtx(() => [createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
363
- default: withCtx(() => [createTextVNode(" 部署到 Channel… ")]),
364
- _: 1
365
- }, 8, ["onClick"]), createVNode(_component_a_menu_item, {
366
- danger: "",
367
- onClick: ($event) => removeTeam(team)
368
- }, {
369
- default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1bpojhf011")), 1)]),
370
- _: 1
371
- }, 8, ["onClick"])]),
453
+ }, 8, ["onClick"])
454
+ ]),
372
455
  _: 2
373
456
  }, 1024)];
374
457
  }),
375
458
  default: withCtx((_, _push, _parent, _scopeId) => {
376
- if (_push) _push(`<span class="i-tabler-dots op" data-v-79de9b56${_scopeId}></span>`);
459
+ if (_push) _push(`<span class="i-tabler-dots op" data-v-56172f39${_scopeId}></span>`);
377
460
  else return [createVNode("span", { class: "i-tabler-dots op" })];
378
461
  }),
379
462
  _: 2
@@ -390,9 +473,9 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
390
473
  }),
391
474
  _: 2
392
475
  }, _parent, _scopeId));
393
- _push(`</div><div class="members" data-v-79de9b56${_scopeId}><!--[-->`);
476
+ _push(`</div><div class="members" data-v-56172f39${_scopeId}><!--[-->`);
394
477
  ssrRenderList(team.members, (m) => {
395
- _push(`<div class="member" data-v-79de9b56${_scopeId}>`);
478
+ _push(`<div class="member" data-v-56172f39${_scopeId}>`);
396
479
  _push(ssrRenderComponent(_component_a_tag, {
397
480
  color: m.role === "lead" ? "gold" : "blue",
398
481
  class: "role"
@@ -403,8 +486,8 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
403
486
  }),
404
487
  _: 2
405
488
  }, _parent, _scopeId));
406
- _push(`<span class="member-name" data-v-79de9b56${_scopeId}>${ssrInterpolate(m.name)}</span><span class="member-harness" data-v-79de9b56${_scopeId}>${ssrInterpolate(m.harness)}</span>`);
407
- if (canWrite(team)) _push(`<span class="i-tabler-x rm" data-v-79de9b56${_scopeId}></span>`);
489
+ _push(`<span class="member-name" data-v-56172f39${_scopeId}>${ssrInterpolate(m.name)}</span><span class="member-harness" data-v-56172f39${_scopeId}>${ssrInterpolate(m.harness)}</span>`);
490
+ if (canWrite(team)) _push(`<span class="i-tabler-x rm" data-v-56172f39${_scopeId}></span>`);
408
491
  else _push(`<!---->`);
409
492
  _push(`</div>`);
410
493
  });
@@ -425,7 +508,7 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
425
508
  _push(`</div></div>`);
426
509
  });
427
510
  _push(`<!--]-->`);
428
- if (unref(shown).length === 0) _push(`<div class="card placeholder" data-v-79de9b56${_scopeId}><span class="i-tabler-plus big" data-v-79de9b56${_scopeId}></span><span data-v-79de9b56${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k6cbbgf014"))}</span></div>`);
511
+ if (unref(shown).length === 0) _push(`<div class="card placeholder" data-v-56172f39${_scopeId}><span class="i-tabler-plus big" data-v-56172f39${_scopeId}></span><span data-v-56172f39${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k6cbbgf014"))}</span></div>`);
429
512
  else _push(`<!---->`);
430
513
  _push(`</div>`);
431
514
  } else return [createVNode("div", { class: "grid" }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(shown), (team) => {
@@ -455,16 +538,23 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
455
538
  createVNode("span", { class: "owner" }, toDisplayString(team.ownerName ?? "-"), 1),
456
539
  canWrite(team) ? (openBlock(), createBlock(_component_a_dropdown, { key: 1 }, {
457
540
  overlay: withCtx(() => [createVNode(_component_a_menu, null, {
458
- default: withCtx(() => [createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
459
- default: withCtx(() => [createTextVNode(" 部署到 Channel… ")]),
460
- _: 1
461
- }, 8, ["onClick"]), createVNode(_component_a_menu_item, {
462
- danger: "",
463
- onClick: ($event) => removeTeam(team)
464
- }, {
465
- default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1bpojhf011")), 1)]),
466
- _: 1
467
- }, 8, ["onClick"])]),
541
+ default: withCtx(() => [
542
+ createVNode(_component_a_menu_item, { onClick: ($event) => openDeploy(team) }, {
543
+ default: withCtx(() => [createTextVNode(" 部署到 Channel… ")]),
544
+ _: 1
545
+ }, 8, ["onClick"]),
546
+ createVNode(_component_a_menu_item, { onClick: ($event) => openPlugins(team) }, {
547
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon047")), 1)]),
548
+ _: 1
549
+ }, 8, ["onClick"]),
550
+ createVNode(_component_a_menu_item, {
551
+ danger: "",
552
+ onClick: ($event) => removeTeam(team)
553
+ }, {
554
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.$t("teams.k1bpojhf011")), 1)]),
555
+ _: 1
556
+ }, 8, ["onClick"])
557
+ ]),
468
558
  _: 2
469
559
  }, 1024)]),
470
560
  default: withCtx(() => [createVNode("span", { class: "i-tabler-dots op" })]),
@@ -603,6 +693,75 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
603
693
  }),
604
694
  _: 1
605
695
  }, _parent, _scopeId));
696
+ if (unref(platformPlugins).length) _push(ssrRenderComponent(_component_a_form_item, { label: _ctx.$t("teams.k1plugon041") }, {
697
+ default: withCtx((_, _push, _parent, _scopeId) => {
698
+ if (_push) {
699
+ _push(ssrRenderComponent(_component_a_checkbox_group, {
700
+ value: unref(pluginChecked),
701
+ "onUpdate:value": ($event) => isRef(pluginChecked) ? pluginChecked.value = $event : null,
702
+ class: "plug-create-group"
703
+ }, {
704
+ default: withCtx((_, _push, _parent, _scopeId) => {
705
+ if (_push) {
706
+ _push(`<!--[-->`);
707
+ ssrRenderList(unref(platformPlugins), (p) => {
708
+ _push(ssrRenderComponent(_component_a_checkbox, {
709
+ key: p.name,
710
+ value: p.name
711
+ }, {
712
+ default: withCtx((_, _push, _parent, _scopeId) => {
713
+ if (_push) {
714
+ _push(`<span class="aw-mono" data-v-56172f39${_scopeId}>${ssrInterpolate(p.name)}</span>`);
715
+ if (p.builtin) _push(`<span class="plug-builtin-tag" data-v-56172f39${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k3x23c018"))}</span>`);
716
+ else _push(`<!---->`);
717
+ } else return [createVNode("span", { class: "aw-mono" }, toDisplayString(p.name), 1), p.builtin ? (openBlock(), createBlock("span", {
718
+ key: 0,
719
+ class: "plug-builtin-tag"
720
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)];
721
+ }),
722
+ _: 2
723
+ }, _parent, _scopeId));
724
+ });
725
+ _push(`<!--]-->`);
726
+ } else return [(openBlock(true), createBlock(Fragment, null, renderList(unref(platformPlugins), (p) => {
727
+ return openBlock(), createBlock(_component_a_checkbox, {
728
+ key: p.name,
729
+ value: p.name
730
+ }, {
731
+ default: withCtx(() => [createVNode("span", { class: "aw-mono" }, toDisplayString(p.name), 1), p.builtin ? (openBlock(), createBlock("span", {
732
+ key: 0,
733
+ class: "plug-builtin-tag"
734
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]),
735
+ _: 2
736
+ }, 1032, ["value"]);
737
+ }), 128))];
738
+ }),
739
+ _: 1
740
+ }, _parent, _scopeId));
741
+ _push(`<div class="plug-hint" data-v-56172f39${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k1plugon042"))}</div>`);
742
+ } else return [createVNode(_component_a_checkbox_group, {
743
+ value: unref(pluginChecked),
744
+ "onUpdate:value": ($event) => isRef(pluginChecked) ? pluginChecked.value = $event : null,
745
+ class: "plug-create-group"
746
+ }, {
747
+ default: withCtx(() => [(openBlock(true), createBlock(Fragment, null, renderList(unref(platformPlugins), (p) => {
748
+ return openBlock(), createBlock(_component_a_checkbox, {
749
+ key: p.name,
750
+ value: p.name
751
+ }, {
752
+ default: withCtx(() => [createVNode("span", { class: "aw-mono" }, toDisplayString(p.name), 1), p.builtin ? (openBlock(), createBlock("span", {
753
+ key: 0,
754
+ class: "plug-builtin-tag"
755
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]),
756
+ _: 2
757
+ }, 1032, ["value"]);
758
+ }), 128))]),
759
+ _: 1
760
+ }, 8, ["value", "onUpdate:value"]), createVNode("div", { class: "plug-hint" }, toDisplayString(_ctx.$t("teams.k1plugon042")), 1)];
761
+ }),
762
+ _: 1
763
+ }, _parent, _scopeId));
764
+ else _push(`<!---->`);
606
765
  } else return [
607
766
  createVNode(_component_a_form_item, { label: _ctx.$t("teams.k3xhia003") }, {
608
767
  default: withCtx(() => [createVNode(_component_a_input, {
@@ -633,7 +792,32 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
633
792
  _: 1
634
793
  }, 8, ["value", "onUpdate:value"])]),
635
794
  _: 1
636
- }, 8, ["label"])
795
+ }, 8, ["label"]),
796
+ unref(platformPlugins).length ? (openBlock(), createBlock(_component_a_form_item, {
797
+ key: 0,
798
+ label: _ctx.$t("teams.k1plugon041")
799
+ }, {
800
+ default: withCtx(() => [createVNode(_component_a_checkbox_group, {
801
+ value: unref(pluginChecked),
802
+ "onUpdate:value": ($event) => isRef(pluginChecked) ? pluginChecked.value = $event : null,
803
+ class: "plug-create-group"
804
+ }, {
805
+ default: withCtx(() => [(openBlock(true), createBlock(Fragment, null, renderList(unref(platformPlugins), (p) => {
806
+ return openBlock(), createBlock(_component_a_checkbox, {
807
+ key: p.name,
808
+ value: p.name
809
+ }, {
810
+ default: withCtx(() => [createVNode("span", { class: "aw-mono" }, toDisplayString(p.name), 1), p.builtin ? (openBlock(), createBlock("span", {
811
+ key: 0,
812
+ class: "plug-builtin-tag"
813
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]),
814
+ _: 2
815
+ }, 1032, ["value"]);
816
+ }), 128))]),
817
+ _: 1
818
+ }, 8, ["value", "onUpdate:value"]), createVNode("div", { class: "plug-hint" }, toDisplayString(_ctx.$t("teams.k1plugon042")), 1)]),
819
+ _: 1
820
+ }, 8, ["label"])) : createCommentVNode("", true)
637
821
  ];
638
822
  }),
639
823
  _: 1
@@ -669,7 +853,32 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
669
853
  _: 1
670
854
  }, 8, ["value", "onUpdate:value"])]),
671
855
  _: 1
672
- }, 8, ["label"])
856
+ }, 8, ["label"]),
857
+ unref(platformPlugins).length ? (openBlock(), createBlock(_component_a_form_item, {
858
+ key: 0,
859
+ label: _ctx.$t("teams.k1plugon041")
860
+ }, {
861
+ default: withCtx(() => [createVNode(_component_a_checkbox_group, {
862
+ value: unref(pluginChecked),
863
+ "onUpdate:value": ($event) => isRef(pluginChecked) ? pluginChecked.value = $event : null,
864
+ class: "plug-create-group"
865
+ }, {
866
+ default: withCtx(() => [(openBlock(true), createBlock(Fragment, null, renderList(unref(platformPlugins), (p) => {
867
+ return openBlock(), createBlock(_component_a_checkbox, {
868
+ key: p.name,
869
+ value: p.name
870
+ }, {
871
+ default: withCtx(() => [createVNode("span", { class: "aw-mono" }, toDisplayString(p.name), 1), p.builtin ? (openBlock(), createBlock("span", {
872
+ key: 0,
873
+ class: "plug-builtin-tag"
874
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]),
875
+ _: 2
876
+ }, 1032, ["value"]);
877
+ }), 128))]),
878
+ _: 1
879
+ }, 8, ["value", "onUpdate:value"]), createVNode("div", { class: "plug-hint" }, toDisplayString(_ctx.$t("teams.k1plugon042")), 1)]),
880
+ _: 1
881
+ }, 8, ["label"])) : createCommentVNode("", true)
673
882
  ]),
674
883
  _: 1
675
884
  })];
@@ -894,6 +1103,95 @@ var teams_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
894
1103
  }),
895
1104
  _: 1
896
1105
  }, _parent));
1106
+ _push(ssrRenderComponent(_component_a_modal, {
1107
+ open: unref(plugOpen),
1108
+ "onUpdate:open": ($event) => isRef(plugOpen) ? plugOpen.value = $event : null,
1109
+ title: _ctx.$t("teams.k1plugon040", { p0: unref(plugTeamRef)?.name ?? "" }),
1110
+ footer: null
1111
+ }, {
1112
+ default: withCtx((_, _push, _parent, _scopeId) => {
1113
+ if (_push) _push(ssrRenderComponent(_component_a_spin, { spinning: unref(plugLoading) }, {
1114
+ default: withCtx((_, _push, _parent, _scopeId) => {
1115
+ if (_push) {
1116
+ _push(`<p class="plug-source" data-v-56172f39${_scopeId}>`);
1117
+ if (unref(plugSource) === "explicit") _push(`<!--[-->${ssrInterpolate(_ctx.$t("teams.k1plugon045"))}<!--]-->`);
1118
+ else _push(`<!--[-->${ssrInterpolate(_ctx.$t("teams.k1plugon044"))}<!--]-->`);
1119
+ _push(`</p><!--[-->`);
1120
+ ssrRenderList(unref(plugRows), (row) => {
1121
+ _push(`<div class="plug-row" data-v-56172f39${_scopeId}><div class="plug-text" data-v-56172f39${_scopeId}><div class="plug-name" data-v-56172f39${_scopeId}><span class="aw-mono" data-v-56172f39${_scopeId}>${ssrInterpolate(row.name)}</span>`);
1122
+ if (row.builtin) _push(`<span class="plug-builtin-tag" data-v-56172f39${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k3x23c018"))}</span>`);
1123
+ else _push(`<!---->`);
1124
+ _push(`</div><div class="plug-desc" data-v-56172f39${_scopeId}>${ssrInterpolate(row.description || "—")}</div></div>`);
1125
+ _push(ssrRenderComponent(_component_a_switch, {
1126
+ checked: row.enabled,
1127
+ size: "small",
1128
+ loading: unref(plugSaving) === row.name,
1129
+ onChange: (v) => toggleTeamPlugin(row, v === true)
1130
+ }, null, _parent, _scopeId));
1131
+ _push(`</div>`);
1132
+ });
1133
+ _push(`<!--]-->`);
1134
+ if (unref(plugRows).length === 0 && !unref(plugLoading)) _push(`<div class="plug-hint" data-v-56172f39${_scopeId}>${ssrInterpolate(_ctx.$t("teams.k1plugon046"))}</div>`);
1135
+ else _push(`<!---->`);
1136
+ } else return [
1137
+ createVNode("p", { class: "plug-source" }, [unref(plugSource) === "explicit" ? (openBlock(), createBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon045")), 1)], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon044")), 1)], 64))]),
1138
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(plugRows), (row) => {
1139
+ return openBlock(), createBlock("div", {
1140
+ key: row.name,
1141
+ class: "plug-row"
1142
+ }, [createVNode("div", { class: "plug-text" }, [createVNode("div", { class: "plug-name" }, [createVNode("span", { class: "aw-mono" }, toDisplayString(row.name), 1), row.builtin ? (openBlock(), createBlock("span", {
1143
+ key: 0,
1144
+ class: "plug-builtin-tag"
1145
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]), createVNode("div", { class: "plug-desc" }, toDisplayString(row.description || "—"), 1)]), createVNode(_component_a_switch, {
1146
+ checked: row.enabled,
1147
+ size: "small",
1148
+ loading: unref(plugSaving) === row.name,
1149
+ onChange: (v) => toggleTeamPlugin(row, v === true)
1150
+ }, null, 8, [
1151
+ "checked",
1152
+ "loading",
1153
+ "onChange"
1154
+ ])]);
1155
+ }), 128)),
1156
+ unref(plugRows).length === 0 && !unref(plugLoading) ? (openBlock(), createBlock("div", {
1157
+ key: 0,
1158
+ class: "plug-hint"
1159
+ }, toDisplayString(_ctx.$t("teams.k1plugon046")), 1)) : createCommentVNode("", true)
1160
+ ];
1161
+ }),
1162
+ _: 1
1163
+ }, _parent, _scopeId));
1164
+ else return [createVNode(_component_a_spin, { spinning: unref(plugLoading) }, {
1165
+ default: withCtx(() => [
1166
+ createVNode("p", { class: "plug-source" }, [unref(plugSource) === "explicit" ? (openBlock(), createBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon045")), 1)], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(_ctx.$t("teams.k1plugon044")), 1)], 64))]),
1167
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(plugRows), (row) => {
1168
+ return openBlock(), createBlock("div", {
1169
+ key: row.name,
1170
+ class: "plug-row"
1171
+ }, [createVNode("div", { class: "plug-text" }, [createVNode("div", { class: "plug-name" }, [createVNode("span", { class: "aw-mono" }, toDisplayString(row.name), 1), row.builtin ? (openBlock(), createBlock("span", {
1172
+ key: 0,
1173
+ class: "plug-builtin-tag"
1174
+ }, toDisplayString(_ctx.$t("teams.k3x23c018")), 1)) : createCommentVNode("", true)]), createVNode("div", { class: "plug-desc" }, toDisplayString(row.description || "—"), 1)]), createVNode(_component_a_switch, {
1175
+ checked: row.enabled,
1176
+ size: "small",
1177
+ loading: unref(plugSaving) === row.name,
1178
+ onChange: (v) => toggleTeamPlugin(row, v === true)
1179
+ }, null, 8, [
1180
+ "checked",
1181
+ "loading",
1182
+ "onChange"
1183
+ ])]);
1184
+ }), 128)),
1185
+ unref(plugRows).length === 0 && !unref(plugLoading) ? (openBlock(), createBlock("div", {
1186
+ key: 0,
1187
+ class: "plug-hint"
1188
+ }, toDisplayString(_ctx.$t("teams.k1plugon046")), 1)) : createCommentVNode("", true)
1189
+ ]),
1190
+ _: 1
1191
+ }, 8, ["spinning"])];
1192
+ }),
1193
+ _: 1
1194
+ }, _parent));
897
1195
  _push(`</div>`);
898
1196
  };
899
1197
  }
@@ -906,7 +1204,7 @@ teams_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
906
1204
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/workshop/teams.vue");
907
1205
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
908
1206
  };
909
- var teams_default = /*#__PURE__*/ _plugin_vue_export_helper_default(teams_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-79de9b56"]]);
1207
+ var teams_default = /*#__PURE__*/ _plugin_vue_export_helper_default(teams_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-56172f39"]]);
910
1208
 
911
1209
  export { teams_default as default };
912
- //# sourceMappingURL=teams-DD8ZXTKL.mjs.map
1210
+ //# sourceMappingURL=teams-t2SkRlJP.mjs.map