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
@@ -1152,5 +1152,365 @@
1152
1152
  "帧元数据保留(h)": "Frame retention (h)",
1153
1153
  "告警 Webhook": "Alarm webhook",
1154
1154
  "告警升级时限(min)": "Alarm escalate (min)",
1155
- "HITL 审批超时(ms)": "HITL approval timeout (ms)"
1155
+ "HITL 审批超时(ms)": "HITL approval timeout (ms)",
1156
+ "平台插件清单:启停(admin,热重载生效)与连接健康检测。": "Platform plugin list: enable/disable (admin, hot-reload) and connection health checks.",
1157
+ "登录后可查看与管理插件": "Sign in to view and manage plugins",
1158
+ "该操作需要管理员权限": "This action requires an administrator",
1159
+ "检测连接": "Check connection",
1160
+ "检测中…": "Checking…",
1161
+ "启用插件": "Enable plugins",
1162
+ "未选中的插件其工具不会注入该团队 Agent,避免上下文污染": "Tools of unchecked plugins are not injected into this team's agents, avoiding context pollution",
1163
+ "插件开关": "Plugin toggles",
1164
+ "默认全启用(尚未单独配置)": "All enabled by default (not yet configured)",
1165
+ "已单独配置": "Explicitly configured",
1166
+ "插件已全部停用": "All plugins are disabled",
1167
+ "插件": "Plugins",
1168
+ "用户": "User",
1169
+ "人工": "Manual",
1170
+ "回退": "Rollback",
1171
+ "(已有 lead,不能再添加 lead)": "(Lead already exists; cannot add another)",
1172
+ "(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)": "(The channel already has a lead, which conflicts with a lead member in the group; remove the existing lead first or pick a group without one)",
1173
+ "{p0}· 对话框已撤销({p1}){p2}": " {p0}· Dialog revoked ({p1}){p2}",
1174
+ " {p0}· 对话框已撤销({p1}){p2}": " {p0}· Dialog revoked ({p1}){p2}",
1175
+ "{p0}── 已接入 omp 进程 PID {p1}(会话重放 {p2} 帧)──{p3}": "{p0}── omp process attached, PID {p1} (session replay {p2} frames) ──{p3}",
1176
+ "{p0}✗ 终端连接未就绪,命令未发送{p1}": "{p0}✗ Terminal not connected, command not sent{p1}",
1177
+ "{p0}✔ HITL 已应答:{p1}{p2}": "{p0}✔ HITL answered:{p1}{p2}",
1178
+ "超出{p0} {p1}": "Exceeds {p0} {p1}",
1179
+ "成员同步中…": "Syncing members…",
1180
+ "任务同步中…": "Syncing tasks…",
1181
+ "亮色": "Light",
1182
+ "暗色": "Dark",
1183
+ "确定": "OK",
1184
+ "保存": "Save",
1185
+ "搜索": "Search",
1186
+ "AgentWorkShop": "AgentWorkShop",
1187
+ "仪表盘": "Dashboard",
1188
+ "Agent 工作台": "Agent Harness",
1189
+ "API Token": "API Tokens",
1190
+ "日志管理": "Log management",
1191
+ "用户管理": "User Management",
1192
+ "插件管理": "Plugins",
1193
+ "权限管理": "Permissions",
1194
+ "折叠菜单": "Collapse menu",
1195
+ "展开菜单": "Expand menu",
1196
+ "语言": "Language",
1197
+ "通知": "Notifications",
1198
+ "个人中心": "Profile",
1199
+ "退出登录": "Log out",
1200
+ "航迹导航(点击返回对应页面)": "Route trail (click to return)",
1201
+ "DIGITAL TWIN · 产线运营": "DIGITAL TWIN · LINE OPS",
1202
+ "虚实映射的产线": "The operations hub where lines run",
1203
+ "运营中枢": "in twin",
1204
+ "智控下发与数采回流同屏共振:配方开跑、参数设定、实时工况、越限告警一屏尽览,孪生界面与真实 PLC 同拍运行。": "Write control and data acquisition resonate on one screen: recipe starts, setpoints, live conditions and limit alarms — the twin stays in step with real PLCs.",
1205
+ "进入数字孪生": "Open Digital Twin",
1206
+ "产线运营管理": "Line Operations",
1207
+ "LIVE": "LIVE",
1208
+ "{": "{",
1209
+ "量程占比 %": "Range %",
1210
+ "正在等待实时数据流…": "Waiting for live data…",
1211
+ "{ produced: '已发布', consumed: '已消费', stored: '已入库' }": "{ produced: 'Produced', consumed: 'Consumed', stored: 'Stored' }",
1212
+ "{ ok: '正常', warn: '预警', alarm: '告警', writing: '写入中', idle: '待机', error: '故障', offline: '离线' }": "{ ok: 'OK', warn: 'Warn', alarm: 'Alarm', writing: 'Writing', idle: 'Idle', error: 'Error', offline: 'Offline' }",
1213
+ "运行批次": "Batch",
1214
+ "已打标样本": "Tagged samples",
1215
+ "暂无产线 —— 前往「产线运营」创建": "No lines yet — create one in Line Operations",
1216
+ "查看全部产线": "View all lines",
1217
+ "运行中优先 · 最多展示 8 条": "Running first · top 8 shown",
1218
+ "管理系统用户、角色与访问权限": "Manage system users, roles and access permissions",
1219
+ "新增用户": "Add User",
1220
+ "搜索用户名或邮箱": "Search name or email",
1221
+ "确定要删除该用户吗?": "Are you sure to delete this user?",
1222
+ "普通用户": "User",
1223
+ "已禁用": "Disabled",
1224
+ "节点采样默认间隔(ms)": "Default sampling interval (ms)",
1225
+ "节点采样下限(ms)": "Sampling floor (ms)",
1226
+ "时序查询默认间隔(ms)": "Default TS query bucket (ms)",
1227
+ "时序查询下限(ms)": "TS query floor (ms)",
1228
+ "配置应用基本信息、主题外观与通知偏好": "Configure app basics, theme appearance and notifications",
1229
+ "基本设置": "General",
1230
+ "应用的名称、描述等基础信息": "Application name, description and other basics",
1231
+ "主题设置": "Appearance",
1232
+ "自定义主色调与显示模式": "Customize primary color and display mode",
1233
+ "通知设置": "Notifications",
1234
+ "管理系统消息通知的推送方式": "Manage how system messages are delivered",
1235
+ "应用名称": "App Name",
1236
+ "应用描述": "Description",
1237
+ "主题色": "Primary Color",
1238
+ "显示模式": "Display Mode",
1239
+ "主题色、深浅模式与语言偏好,实时生效并自动持久化(localStorage)。": "Accent color, dark mode and language, applied live and persisted automatically (localStorage).",
1240
+ "默认品牌绿,与 Digital Twin 控制室同源;可选低饱和预设,悬停预览即时生效。": "Warm-editorial defaults to the ink pill; pick a muted preset to preview instantly.",
1241
+ "品牌": "Ink",
1242
+ "琥珀": "Amber",
1243
+ "苔绿": "Moss",
1244
+ "靛蓝": "Slate",
1245
+ "紫檀": "Plum",
1246
+ "陶赭": "Clay",
1247
+ "主题色已应用": "Accent applied",
1248
+ "已恢复默认主题色(跟随 config.yml)": "Reset to default ink (follows config.yml)",
1249
+ "恢复默认": "Reset to default ink",
1250
+ "深海军蓝控制室暗阶,与数字孪生空间同一视觉语言;亮色模式保留编辑风格。": "Deep-navy control-room dark ramp; light mode keeps the editorial paper look.",
1251
+ "界面语言(zh-CN / en),选择即生效。": "Interface language (zh-CN / en); applies immediately.",
1252
+ "只读运行参数(同源 config.yml,经 nuxt.config runtimeConfig 注入)。": "Read-only runtime parameters (sourced from config.yml via nuxt.config runtimeConfig).",
1253
+ "当前身份": "Signed in as",
1254
+ "当前未登录(工作台数据需登录后查看)": "Not signed in (workshop data requires sign-in)",
1255
+ "邮件通知": "Email Notifications",
1256
+ "重要事件通过邮件推送给管理员": "Push important events to administrators via email",
1257
+ "短信通知": "SMS Notifications",
1258
+ "紧急告警通过短信即时送达": "Deliver urgent alerts instantly via SMS",
1259
+ "站内推送": "In-App Push",
1260
+ "浏览器内实时消息提醒": "Real-time message alerts in the browser",
1261
+ "设置已保存": "Settings saved",
1262
+ "运行配置": "Runtime config",
1263
+ "已装配的 ChannelRuntime / AgentRuntime 与 harness 进程台账": "Wired ChannelRunTimes / AgentRunTimes and harness processes ledger",
1264
+ "自动刷新": "Auto refresh",
1265
+ "需要登录后才能查看运行时资源": "Sign in required to inspect runtime resources",
1266
+ "加载监控数据失败": "Failed to load monitor data",
1267
+ "Channel 运行时": "Channel Runtimes",
1268
+ "Agent 运行时": "Agent Runtimes",
1269
+ "活跃 harness 进程": "Alive harness procs",
1270
+ "孤儿": "orphan",
1271
+ "服务进程": "Server process",
1272
+ "快照": "snapshot",
1273
+ "ChannelRunTime": "ChannelRunTime",
1274
+ "AgentRunTime": "AgentRunTime",
1275
+ "harness 进程": "harness processes",
1276
+ "Channel": "Channel",
1277
+ "成员数": "Members",
1278
+ "已装配": "Wired",
1279
+ "调度循环": "Scheduler",
1280
+ "Lead": "Lead",
1281
+ "harness": "harness",
1282
+ "空闲": "idle",
1283
+ "当前任务": "Current task",
1284
+ "终止": "Terminate",
1285
+ "已终止": "terminated",
1286
+ "终止该进程后,对应 AgentRuntime 将随之停止并卸载。确认终止": "Terminating this process will also stop and unload its AgentRuntime. Confirm terminate",
1287
+ "强杀该进程(PID),若已绑定 runtime 会一同停止。确认终止": "Force-kill this process (PID); a bound runtime is stopped along with it. Confirm",
1288
+ "归属": "Binding",
1289
+ "已绑定": "bound",
1290
+ "Agent": "Agent",
1291
+ "命令": "Command",
1292
+ "启动时间": "Started",
1293
+ "存活": "Alive",
1294
+ "接入该 omp 进程的原生终端(实时 TUI 输出 + HITL 人工控制)": "Attach to this omp process native terminal (live TUI output + HITL control)",
1295
+ "harness 原生终端": "harness terminal",
1296
+ "中止回合": "Abort",
1297
+ "清屏": "Clear",
1298
+ "回合执行中": "turn running",
1299
+ "流式输出中": "streaming",
1300
+ "进程已退出": "process exited",
1301
+ "连接中": "connecting",
1302
+ "重连中": "retrying",
1303
+ "终端内直接输入并回车注入 omp 会话(流式中=steer 同轮注入 / 空闲=follow_up 新回合)/ ↑↓ 历史 / Ctrl+C 中止": "Type in the terminal and press Enter to inject into the omp session (steer while streaming / follow-up when idle) / ↑↓ history / Ctrl+C abort",
1304
+ "HITL 对话框 · 等待你的回答": "HITL dialog · waiting for your answer",
1305
+ "取消对话框": "Cancel dialog",
1306
+ "拒绝": "Reject",
1307
+ "提交": "Submit",
1308
+ "未安装": "not installed",
1309
+ "进程内引擎 · 恒可用": "In-process engine · always available",
1310
+ "· 自定义": " · Custom",
1311
+ "Agent 优化记录": "Agent optimization log",
1312
+ "全部 Recipe": "All recipes",
1313
+ "全部模板": "All templates",
1314
+ "全部驱动": "All drivers",
1315
+ "按最后采样时间过滤": "Filter by last sample time",
1316
+ "数据时间": "Data Age",
1317
+ "全部时间": "Any age",
1318
+ "5 分钟内": "Last 5 min",
1319
+ "1 小时内": "Last hour",
1320
+ "24 小时内": "Last 24 h",
1321
+ "24 小时前": "Older than 24 h",
1322
+ "从未上报": "Never reported",
1323
+ "节点名称 / ID…": "Node name / ID…",
1324
+ "暂无优化记录 —— Agent 经 dcw_control 调控后自动在册": "No optimization records yet — registered automatically after agent dcw_control",
1325
+ "窗口内无数采数据(产线未运行或节点未绑定)": "No DAQ data in window (line not running or node unbound)",
1326
+ "序列": "Series",
1327
+ "进行中:待 Agent dcw_judge 判定": "Open: awaiting agent dcw_judge",
1328
+ "窗口聚合计算中…": "Aggregating window…",
1329
+ "越限": "breach",
1330
+ "已判定·保留": "Judged · keep",
1331
+ "已回退": "Rolled back",
1332
+ "被新设定替代": "Superseded",
1333
+ "被手动写替代": "Superseded by manual",
1334
+ "停线封窗": "Closed on line stop",
1335
+ "已判定·回退未执行": "Judged · rollback not executed",
1336
+ "趋势": "Trend",
1337
+ "实时趋势:最近 60 个读数,虚线为上下限": "Live trend: last 60 readings, dashed = limits",
1338
+ "高于上限": "above max",
1339
+ "低于下限": "below min",
1340
+ "配方窗": "recipe window",
1341
+ "安全量程": "safe range",
1342
+ "绑定设备(与数字孪生/节点检查器同源,server 落库)": "Bind device (same source as Digital Twin / node inspector, persisted server-side)",
1343
+ "产品 / Recipe": "Product / Recipe",
1344
+ "产线运行中但无新数据(>{p0}s 未采样)—— 节点离线或驱动故障": "Line is running but no fresh samples (> {p0}s) — node offline or driver fault",
1345
+ "节点所属产线的开跑状态:运行中才采集": "Run state of the line this node belongs to: sampling only while running",
1346
+ "本产线当前运行批次的产品与配方": "Product & recipe of the active run on this line",
1347
+ "时序存储后端:DAQ_TSDB_URL 可切换 TimescaleDB": "Time-series backend: switch via DAQ_TSDB_URL (TimescaleDB compatible)",
1348
+ "消息队列:DAQ_MQTT_URL 可切换标准 MQTT broker": "Message queue: switch via DAQ_MQTT_URL (standard MQTT broker)",
1349
+ "队列丢失(produced-consumed)": "Queue drops (produced-consumed)",
1350
+ "如 1000": "e.g. 1000",
1351
+ "真实场景需先通过测试连接": "Real-device scenario requires a passing connection test",
1352
+ "预留协议:待真实通道接入": "Reserved protocol: awaiting real channel support",
1353
+ "产线未运行:开跑后本节点开始采集": "Line not running: this node starts sampling after the line starts",
1354
+ "数采网关已暂停 —— 全部节点停止采集": "DAQ gateway is paused — all nodes stop sampling",
1355
+ "未确认报警": "Unacked alarms",
1356
+ "已升级 {p0} 次重发通知": "Escalated {p0} times (notification re-sent)",
1357
+ "报警已确认": "Alarm acknowledged",
1358
+ "暂停全部采集:停止所有启用节点的采样。节点级启停独立:手动停用的节点保持停用,恢复后仅启用节点恢复采集": "Pause all collection: stops sampling for every enabled node. Node-level enable/stop is independent — manually stopped nodes stay stopped; resume restores only enabled nodes",
1359
+ "停止采集": "Stop collection",
1360
+ "启动采集": "Start collection",
1361
+ "暂无未确认告警": "No unacknowledged alarms",
1362
+ "暂无事件,等待操作…": "No events yet — waiting for activity…",
1363
+ "运维日志": "Operations log",
1364
+ "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询": "One unified record of every operation: what control was issued, what users and agents did — queryable by line / product / recipe",
1365
+ "实时": "Live",
1366
+ "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)": "Receiving operation events over WS (summary rendering only; full details queryable below)",
1367
+ "来源": "Source",
1368
+ "分类": "Kind",
1369
+ "关键词": "Keyword",
1370
+ "搜索摘要/操作/操作者…": "Search summary / action / actor…",
1371
+ "操作者": "Actor",
1372
+ "事件摘要": "Event summary",
1373
+ "归属(产线/产品/Recipe)": "Scope (line / product / recipe)",
1374
+ "无匹配日志": "No matching log entries",
1375
+ "记录内容": "Entry content",
1376
+ "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟": "e.g. Replaced heater coil of oven #3; extended soaking for current batch by 10 min",
1377
+ "入册": "Record",
1378
+ "已入册": "Recorded",
1379
+ "人工记录": "Manual entry",
1380
+ "无": "None",
1381
+ "详情(可选)": "Detail (optional)",
1382
+ "补充说明、处置过程、关联单号等(将存入日志详情)": "Context, handling notes, related ticket… (stored in the log detail)",
1383
+ "删除产线「{p0}」?": "Delete line \"{p0}\"?",
1384
+ "编辑产线": "Edit line",
1385
+ "连同旗下节点/产品/配方一起删除(不可恢复)": "Also delete its nodes, products & recipes (irreversible)",
1386
+ "产线「{p0}」及其 {p1} 节点 · {p2} 产品 · {p3} 配方将一并删除,不可恢复": "Line \"{p0}\" and its {p1} nodes · {p2} products · {p3} recipes will be permanently deleted",
1387
+ "跟随主题自动配色": "Color follows the theme",
1388
+ "产线是节点/产品/配方/数据的顶层隔离单元:每个控制节点挂载到产线,开跑后本产线数采逐样本携带产线标识;\\n 控制模板只定义参数分类与工艺量程,真正下发 PLC 的是节点。": "Lines are the top-level isolation unit for nodes/products/recipes/data: every control node mounts to a line, and after a run starts each acquired sample carries the line identity;\\n control templates only define parameter classes and process ranges — nodes are what actually write to PLCs.",
1389
+ "产线是节点/产品/配方/数据的顶层隔离单元:每个控制节点挂载到产线,开跑后本产线数采逐样本携带产线标识;\\n 控制模板只定义参数分类与工艺量程,真正下发 PLC 的是节点。": "Lines are the top-level isolation unit for nodes/products/recipes/data: every control node mounts to a line, and after a run starts each acquired sample carries the line identity;\\n control templates only define parameter classes and process ranges — nodes are what actually write to PLCs.",
1390
+ "搜索产线名称…": "Search line names…",
1391
+ "没有匹配的产线 —— 调整筛选或搜索条件', k1b2ioko019: '产线名称": "No lines match — adjust the filter or search",
1392
+ "已取消绑定": "unbound",
1393
+ "已自动移除 {p0} 条失效参数(节点已删除);如需恢复请重新添加有效节点": "Removed {p0} stale param(s) (node deleted); re-add with a live node if needed",
1394
+ "版本历史": "History",
1395
+ "配方版本历史": "Recipe Version History",
1396
+ "暂无版本历史(配方参数修改后自动入史)": "No version history yet (param edits are recorded automatically)",
1397
+ "当前": "Current",
1398
+ "初始版本": "Initial version",
1399
+ "新增": "added",
1400
+ "参数未变": "No param changes",
1401
+ "回退到此版": "Revert to",
1402
+ "已回退并生成新版本 v{p0}": "Reverted; new version v{p0} created",
1403
+ "界面回退到历史版本": "UI revert to history version",
1404
+ "暂停全部控制:停止所有启用节点的下发。节点级启停独立:手动停用的节点保持停用,恢复后仅启用节点恢复控制": "Pause all control: stops writes for every enabled node. Node-level enable/stop is independent — manually stopped nodes stay stopped; resume restores only enabled nodes",
1405
+ "一个产品可有多个配方;配方 = 工艺参数集(控制模板 + 目标工程值)。产线开跑时选定配方,其参数随开跑下发,\\n 数采数据逐样本携带产品/配方/批次标识。": "A product can have multiple recipes; a recipe = a set of process parameters (control template + target engineering value). The recipe chosen at line start is written on start,\\n and every acquired sample is tagged with product/recipe/batch.",
1406
+ "一个产品可有多个配方;配方 = 工艺参数集(控制模板 + 目标工程值)。产线开跑时选定配方,其参数随开跑下发,\\n 数采数据逐样本携带产品/配方/批次标识。": "A product can have multiple recipes; a recipe = a set of process parameters (control template + target engineering value). The recipe chosen at line start is written on start,\\n and every acquired sample is tagged with product/recipe/batch.",
1407
+ "参数台账": "Parameter ledger",
1408
+ "配方目标": "Recipe target",
1409
+ "上次良好": "Last good",
1410
+ "单步回退": "Step rollback",
1411
+ "设定历史(账本)": "Setpoint history (journal)",
1412
+ "优化记录": "Optimization records",
1413
+ "邮箱 / 用户名": "Email or username",
1414
+ "直发 {\\'@\\'}{p0}": "Direct to {\\'@\\'}{p0}",
1415
+ "任务已下发 → {\\'@\\'}{p0}({p1})": "Task dispatched → {\\'@\\'}{p0} ({p1})",
1416
+ "消息已发送给 {\\'@\\'}{p0}({p1})": "Message sent to {\\'@\\'}{p0} ({p1})",
1417
+ "· 直发": " · direct",
1418
+ "· 默认": " · default",
1419
+ "请选择目标 Agent(可用 {\\'@\\'} 提及)": "Select a target agent ({\\'@\\'} mention available)",
1420
+ "输入任务下发(首行标题,{\\'@\\'} 成员直发,缺省 lead)… ⌘/Ctrl+Enter 提交": "Type a task (first line = title, {\\'@\\'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to submit",
1421
+ "输入任务下发(首行标题,{\\'@\\'} 成员直发,缺省 lead)… ⌘/Ctrl+Enter 提交": "Type a task (first line = title, {\\'@\\'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to submit",
1422
+ "输入消息/通知({\\'@\\'} 成员指定目标,缺省 lead)… ⌘/Ctrl+Enter 发送": "Type a message/notice ({\\'@\\'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to send",
1423
+ "输入消息/通知({\\'@\\'} 成员指定目标,缺省 lead)… ⌘/Ctrl+Enter 发送": "Type a message/notice ({\\'@\\'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to send",
1424
+ "{p0} · {p1} · 拖到设备旁自动绑定,量程 {p2} ~ {p3} {p4}": "{p0} · {p1} · auto-binds near a device, range {p2} ~ {p3} {p4}",
1425
+ "{p0} · {p1} · 设定值域 {p2} ~ {p3} {p4} · 拖到设备旁自动绑定": "{p0} · {p1} · setpoint range {p2} ~ {p3} {p4} · auto-binds near a device",
1426
+ "当前绑定「{p0}」,点击改绑到本设备": "Bound to \"{p0}\" — click to re-bind to this device",
1427
+ "点击绑定到本设备": "Click to bind to this device",
1428
+ "未落位": "Not placed",
1429
+ "暂无可绑定的节点 — 在左侧模板行 + 新建,或到「数采中心」添加": "No bindable nodes — use + on a template row in the left rail, or create in DAQ Center",
1430
+ "点击展开/收起「{p0}」节点 · {p1} · 量程 {p2} ~ {p3} {p4}": "Click to expand/collapse \"{p0}\" nodes · {p1} · range {p2} ~ {p3} {p4}",
1431
+ "新建「{p0}」节点(创建后拖入场景)": "New \"{p0}\" node (drag into scene after creation)",
1432
+ "暂无节点 — 点模板行 + 新建,或到「数采中心」添加": "No nodes yet — use + on the template row, or add in DAQ Center",
1433
+ "已在场景 · 点击定位选中;拖拽可重新落位": "Placed · click to locate & select; drag to re-place",
1434
+ "拖拽到场景放置(±95 内设备自动绑定)": "Drag onto the scene to place (auto-binds a device within ±95)",
1435
+ "展开全部 {p0} 路通道": "Show all {p0} channels",
1436
+ "帧率上限": "FPS Cap",
1437
+ "场景渲染节拍上限;数据实时消费不受此限制(帧到达即入缓冲,渲染每帧取最新值上屏)": "Render-rate cap only; live data consumption is not throttled (frames land in the buffer on arrival, each rendered frame shows the latest values)",
1438
+ "画质": "Quality",
1439
+ "自动 = 按实测帧率升降档;普通/高清/超清 = 手动固定渲染配置(超清发挥 WebGL 最佳性能)": "Auto = tier by measured fps; Normal/HD/Ultra = fixed render config (Ultra unlocks full WebGL quality)",
1440
+ "高清": "HD",
1441
+ "超清": "Ultra",
1442
+ "渲染": "Render",
1443
+ "后自动拒绝(超时默认拒绝)": "to auto-reject (timeout default-deny)",
1444
+ "下发 write": "Write",
1445
+ "保存全部设备布局": "Save all device layout",
1446
+ "运行模式只读": "Read-only in run mode",
1447
+ "仪表盘 · AgentWorkShop": "Dashboard · AgentWorkShop",
1448
+ "数采中心 · AgentWorkShop": "DAQ Console · AgentWorkShop",
1449
+ "数采节点控制台 · AgentWorkShop": "DAQ Node Console · AgentWorkShop",
1450
+ "产线运营 · AgentWorkShop": "Line Operations · AgentWorkShop",
1451
+ "产线详情 · AgentWorkShop": "Line Detail · AgentWorkShop",
1452
+ "API Token · AgentWorkShop": "API Tokens · AgentWorkShop",
1453
+ "Workshop · Agent Harness": "Workshop · AgentWorkShop",
1454
+ "Agent 模板库 · Workshop": "Agent Templates · Workshop",
1455
+ "AgentTeam 编组库 · Workshop": "Agent Team Groups · Workshop",
1456
+ "系统设置 · AgentWorkShop": "Settings · AgentWorkShop",
1457
+ "全部 {n}": "All {n}",
1458
+ "我的 {n}": "Mine {n}",
1459
+ "公开 {n}": "Public {n}",
1460
+ "内置 {n}": "Built-in {n}",
1461
+ "他人私有 {n}": "Others\\' private {n}",
1462
+ "我的": "Mine",
1463
+ "实时连接正常": "Live connection healthy",
1464
+ "实时同步中…": "Syncing in real time…",
1465
+ "连接中…": "Connecting…",
1466
+ "连接已断开": "Connection lost",
1467
+ "待人工处理": "Needs human input",
1468
+ "omp 对话框": "omp dialog",
1469
+ "下发审批": "write approval",
1470
+ "codex 审批": "codex approval",
1471
+ "opencode 权限": "opencode permission",
1472
+ "dsh 权限": "dsh permission",
1473
+ "批准": "Approve",
1474
+ "内置示例与用户级扩展插件 · 启停即时热重载": "Built-in samples & user extensions · toggles hot-reload instantly",
1475
+ "内置示例": "Built-in sample",
1476
+ "用户级扩展": "User extension",
1477
+ "内置示例插件:随项目检出提供(仓库 .AgentWorkShop/plugins),可启停": "Built-in sample plugin: shipped with the project checkout (repo .AgentWorkShop/plugins), can be toggled",
1478
+ "用户级扩展插件:位于 ~/.AgentWorkShop/plugins,由使用者自行创建维护": "User extension plugin: lives in ~/.AgentWorkShop/plugins, created and maintained by you",
1479
+ "插件列表加载失败": "Failed to load plugin list",
1480
+ "浏览器增强": "Client enhancer",
1481
+ "API 路由": "API routes",
1482
+ "暂无插件 —— 执行 aw plugin create my-plugin 创建,或 aw plugin enable 开启内置示例": "No plugins yet — run aw plugin create my-plugin, or aw plugin enable to turn on examples",
1483
+ "装载失败": "Load failures",
1484
+ "{n} 个插件装载失败,详情见服务启动日志": "{n} plugin(s) failed to load, see server startup log",
1485
+ "启停操作失败": "Toggle failed",
1486
+ "插件详情": "Plugin detail",
1487
+ "请求参数有误,请检查后重试": "Invalid request, please check and retry",
1488
+ "登录已过期,请重新登录": "Session expired, please sign in again",
1489
+ "权限不足:该操作需要管理员权限": "Insufficient permission: this action requires an administrator",
1490
+ "目标不存在或已被删除": "Target not found or already removed",
1491
+ "操作冲突:资源已存在或状态不允许": "Conflict: resource already exists or state does not allow it",
1492
+ "服务器内部错误,请稍后重试": "Server error, please retry later",
1493
+ "无法连接服务器,请检查网络与服务状态": "Cannot reach the server, check network and service status",
1494
+ "操作失败,请稍后重试": "Action failed, please retry later",
1495
+ "用户 × 产线三态授权:无权 / 仅查看(数采只读) / 可操控(数采+数控全量);普通用户默认无权": "User × line three-state grants: none / read-only (DAQ) / operate (DAQ+DCW); users default to none",
1496
+ "权限数据加载失败": "Failed to load permission data",
1497
+ "保存授权失败": "Failed to save grants",
1498
+ "已保存 {n} 项授权变更": "Saved {n} grant change(s)",
1499
+ "Channel 数": "Channels",
1500
+ "产线授权": "Line grants",
1501
+ "授权管理": "Manage",
1502
+ "权限详情": "Permission detail",
1503
+ "基本信息": "Profile",
1504
+ "创建的 Channel": "Created channels",
1505
+ "该用户尚未创建 Channel": "No channels created by this user",
1506
+ "产线授权矩阵": "Line grant matrix",
1507
+ "保存变更({n})": "Save ({n})",
1508
+ "无权=后端不返回该产线数据(前端/数字孪生不可见);仅查看=数采节点只读;可操控=数采读取+数控写控全量。": "none = line data is withheld server-side (invisible in UI & digital twin); read-only = DAQ read; operate = full DAQ read + DCW write.",
1509
+ "无权": "None",
1510
+ "仅查看": "Read-only",
1511
+ "可操控": "Operate",
1512
+ "返回首页": "Back to Home",
1513
+ "页面走失了": "Page lost",
1514
+ "插件开关 · {p0}": "Plugin switches · {p0}",
1515
+ "插件开关…": "Plugin switches…"
1156
1516
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "desc": "平台插件清单:启停(admin,热重载生效)与连接健康检测。",
3
+ "needLogin": "登录后可查看与管理插件",
4
+ "builtin": "内置",
5
+ "adminRequired": "该操作需要管理员权限",
6
+ "healthCheck": "检测连接",
7
+ "healthChecking": "检测中…",
8
+ "healthOk": "正常",
9
+ "healthBad": "异常"
10
+ }
@@ -3,6 +3,7 @@
3
3
  "runtime.groupOmp": "Agent Harness",
4
4
  "runtime.groupDcw": "数控写控",
5
5
  "runtime.groupWorkshop": "车间运行",
6
+ "runtime.groupPlugins": "插件",
6
7
  "runtime.groupBackup": "数据备份",
7
8
  "runtime.groupRetention": "数据保留",
8
9
  "runtime.groupLog": "日志",
@@ -0,0 +1,10 @@
1
+ {
2
+ "k1plugon040": "插件开关 · {p0}",
3
+ "k1plugon041": "启用插件",
4
+ "k1plugon042": "未选中的插件其工具不会注入该团队 Agent,避免上下文污染",
5
+ "k1plugon043": "已保存",
6
+ "k1plugon044": "默认全启用(尚未单独配置)",
7
+ "k1plugon045": "已单独配置",
8
+ "k1plugon046": "插件已全部停用",
9
+ "k1plugon047": "插件开关…"
10
+ }