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,5 +1,5 @@
1
1
  import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:import.meta.url,env:process.env};import { getCurrentScope, ref, watchEffect, getCurrentInstance, onBeforeUnmount, onDeactivated, onActivated, shallowReactive, reactive, effectScope, hasInjectionContext, inject, toRef, customRef, defineComponent, shallowRef, h, resolveComponent, computed, unref, isRef, toValue, onServerPrefetch, nextTick, queuePostFlushCb, provide, watch, triggerRef, Fragment, isVNode, createVNode, Comment, Text, TransitionGroup, toRaw, Teleport, render, createApp, onErrorCaptured, resolveDynamicComponent, mergeProps, withCtx, defineAsyncComponent, createCommentVNode, isReadonly, Suspense, useSSRContext, isShallow, isReactive } from 'vue';
2
- import { aQ as createHooks, n as createError, aR as sanitizeStatusCode, aS as klona, Q as getRequestHeader, aT as isEqual$1, aU as setCookie, aV as getCookie, aW as deleteCookie, aX as $fetch, aY as baseURL, k as getRequestHeaders, aZ as defu, a_ as getRequestProtocol, a$ as appendResponseHeader } from '../_/nitro.mjs';
2
+ import { aS as createHooks, n as createError, aT as sanitizeStatusCode, aU as klona, Q as getRequestHeader, aV as isEqual$1, aW as setCookie, aX as getCookie, aY as deleteCookie, aZ as $fetch, a_ as baseURL, k as getRequestHeaders, a$ as defu, b0 as getRequestProtocol, b1 as appendResponseHeader } from '../_/nitro.mjs';
3
3
  import { walkResolver } from 'unhead/utils';
4
4
  import { i as injectHead$1, V as VueResolver, h as headSymbol } from '../routes/renderer.mjs';
5
5
  import { START_LOCATION, useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, isNavigationFailure } from 'vue-router';
@@ -2317,6 +2317,29 @@ var useAppStore = (0, composables_exports.defineStore)("app", () => {
2317
2317
  ],
2318
2318
  storage: storages.localStorage()
2319
2319
  } });
2320
+ //#endregion
2321
+ //#region app/composables/useSiteConfig.ts
2322
+ /**
2323
+ * 统一读取运行时配置(来自 config.yml -> runtimeConfig.public)
2324
+ * 全应用通过 useSiteConfig() 消费,避免散落 useRuntimeConfig()。
2325
+ */
2326
+ function useSiteConfig() {
2327
+ const c = useRuntimeConfig().public;
2328
+ return {
2329
+ name: c.appName,
2330
+ title: c.appTitle,
2331
+ version: c.version,
2332
+ description: c.description,
2333
+ mode: c.mode,
2334
+ apiBase: c.apiBase,
2335
+ apiTimeout: c.apiTimeout,
2336
+ primaryColor: c.primaryColor,
2337
+ themeMode: c.themeMode,
2338
+ serverHost: c.serverHost,
2339
+ devPort: c.devPort,
2340
+ prodPort: c.prodPort
2341
+ };
2342
+ }
2320
2343
 
2321
2344
  //#region node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/typeof.js
2322
2345
  function _typeof(o) {
@@ -9353,79 +9376,79 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9353
9376
  name: "workshop-w-wsId",
9354
9377
  path: "/workshop/w/:wsId()",
9355
9378
  meta: { layout: "default" },
9356
- component: () => import('../build/_wsId_-C2O5zZsI.mjs')
9379
+ component: () => import('../build/_wsId_-BymlQhzS.mjs')
9357
9380
  },
9358
9381
  {
9359
9382
  name: "workshop-agents",
9360
9383
  path: "/workshop/agents",
9361
9384
  meta: { layout: "default" },
9362
- component: () => import('../build/agents--6bzGtES.mjs')
9385
+ component: () => import('../build/agents-DuMiSWKp.mjs')
9363
9386
  },
9364
9387
  {
9365
9388
  name: "workshop-channel-templates",
9366
9389
  path: "/workshop/channel-templates",
9367
9390
  meta: { layout: "default" },
9368
- component: () => import('../build/channel-templates-C1Bb-U75.mjs')
9391
+ component: () => import('../build/channel-templates-BStqJ-of.mjs')
9369
9392
  },
9370
9393
  {
9371
9394
  name: "workshop-teams",
9372
9395
  path: "/workshop/teams",
9373
9396
  meta: { layout: "default" },
9374
- component: () => import('../build/teams-DD8ZXTKL.mjs')
9397
+ component: () => import('../build/teams-t2SkRlJP.mjs')
9375
9398
  },
9376
9399
  {
9377
9400
  name: "daq-id",
9378
9401
  path: "/daq/:id()",
9379
9402
  meta: { layout: "default" },
9380
- component: () => import('../build/_id_-DQDqj-cZ.mjs')
9403
+ component: () => import('../build/_id_-3Axz2-gV.mjs')
9381
9404
  },
9382
9405
  {
9383
9406
  name: "dcw-id",
9384
9407
  path: "/dcw/:id()",
9385
- component: () => import('../build/_id_-DY6v6sqB.mjs')
9408
+ component: () => import('../build/_id_-CahfkmEt.mjs')
9386
9409
  },
9387
9410
  {
9388
9411
  name: "daq",
9389
9412
  path: "/daq",
9390
9413
  meta: { layout: "default" },
9391
- component: () => import('../build/daq-B-3xCp_2.mjs')
9414
+ component: () => import('../build/daq-ChYCABz1.mjs')
9392
9415
  },
9393
9416
  {
9394
9417
  name: "dcw",
9395
9418
  path: "/dcw",
9396
- component: () => import('../build/dcw-BL2dhuz7.mjs')
9419
+ component: () => import('../build/dcw-CcQNGggh.mjs')
9397
9420
  },
9398
9421
  {
9399
9422
  name: "logs",
9400
9423
  path: "/logs",
9401
- component: () => import('../build/logs-Dto_umFY.mjs')
9424
+ component: () => import('../build/logs-D-2UyGtE.mjs')
9402
9425
  },
9403
9426
  {
9404
9427
  name: "monitor",
9405
9428
  path: "/monitor",
9406
9429
  meta: { layout: "default" },
9407
- component: () => import('../build/monitor-miqq9xHB.mjs')
9430
+ component: () => import('../build/monitor-mfG5jBtz.mjs')
9408
9431
  },
9409
9432
  {
9410
9433
  name: "permissions",
9411
9434
  path: "/permissions",
9412
- component: () => import('../build/permissions-CxEgXic0.mjs')
9435
+ component: () => import('../build/permissions-B-hhZuzm.mjs')
9413
9436
  },
9414
9437
  {
9415
9438
  name: "plugins",
9416
9439
  path: "/plugins",
9417
- component: () => import('../build/plugins-wLIKHcIE.mjs')
9440
+ component: () => import('../build/plugins-DZR0T4Mh.mjs')
9418
9441
  },
9419
9442
  {
9420
9443
  name: "settings",
9421
9444
  path: "/settings",
9422
- component: () => import('../build/settings-BPBll_7K.mjs')
9445
+ component: () => import('../build/settings-BajN9TQW.mjs')
9423
9446
  },
9424
9447
  {
9425
9448
  name: "tokens",
9426
9449
  path: "/tokens",
9427
9450
  meta: { layout: "default" },
9428
- component: () => import('../build/tokens-Dxnuw96_.mjs')
9451
+ component: () => import('../build/tokens-DiCojbN8.mjs')
9429
9452
  },
9430
9453
  {
9431
9454
  name: "town",
@@ -9434,23 +9457,23 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9434
9457
  layout: "town",
9435
9458
  title: "Digital Twin"
9436
9459
  },
9437
- component: () => import('../build/town-Dsh0jlwZ.mjs')
9460
+ component: () => import('../build/town-C7QM8DYK.mjs')
9438
9461
  },
9439
9462
  {
9440
9463
  name: "users",
9441
9464
  path: "/users",
9442
- component: () => import('../build/users-D6RNylrW.mjs')
9465
+ component: () => import('../build/users-B9SAdEtH.mjs')
9443
9466
  },
9444
9467
  {
9445
9468
  name: "workshop",
9446
9469
  path: "/workshop",
9447
9470
  meta: { layout: "default" },
9448
- component: () => import('../build/workshop-CTcYDq2i.mjs')
9471
+ component: () => import('../build/workshop-81xhz368.mjs')
9449
9472
  },
9450
9473
  {
9451
9474
  name: "index",
9452
9475
  path: "/",
9453
- component: () => import('../build/pages-D9tOoJsf.mjs')
9476
+ component: () => import('../build/pages-Dfosfchr.mjs')
9454
9477
  }
9455
9478
  ];
9456
9479
  //#endregion
@@ -13040,94 +13063,51 @@ var zh_CN_default$1 = {
13040
13063
  disabled: "已禁用"
13041
13064
  },
13042
13065
  settings: {
13043
- "runtime.groupMemory": "记忆系统",
13044
- "runtime.groupOmp": "Agent Harness",
13045
- "runtime.groupDcw": "数控写控",
13046
- "runtime.groupWorkshop": "车间运行",
13047
- "runtime.groupBackup": "数据备份",
13048
- "runtime.groupRetention": "数据保留",
13049
- "runtime.groupLog": "日志",
13050
- "runtime.memory.primerTokens": "记忆引子预算",
13051
- "runtime.memory.injectTotal": "记忆注入硬顶",
13052
- "runtime.memory.maintenanceMs": "记忆维护周期(ms)",
13053
- "runtime.memory.expireDays": "情景记忆过期(天)",
13054
- "runtime.memory.expireSessionDays": "会话记忆过期(天)",
13055
- "runtime.memory.cap": "记忆条目上限",
13056
- "runtime.memory.reflectTrigger": "反思触发阈值",
13057
- "runtime.memory.embedBaseUrl": "Embedding 端点",
13058
- "runtime.memory.embedModel": "Embedding 模型",
13059
- "runtime.memory.embedApiKey": "Embedding 密钥",
13060
- "runtime.omp.compactEnabled": "上下文自动压缩",
13061
- "runtime.omp.compactThreshold": "压缩阈值",
13062
- "runtime.omp.compactMinIntervalMs": "压缩最小间隔(ms)",
13063
- "runtime.omp.compactWaitMs": "压缩等待超时(ms)",
13064
- "runtime.dcw.rollbackCooldownMs": "回退冷却(ms)",
13065
- "runtime.dcw.rollbackMinWindowMs": "回退最小观察窗(ms)",
13066
- "runtime.dcw.rollbackBaselineMs": "基线稳定窗(ms)",
13067
- "runtime.dcw.rollbackStaleMs": "open 记录过期(ms)",
13068
- "runtime.workshop.idleSweepMs": "空产线扫描(ms)",
13069
- "runtime.workshop.idleGraceMs": "空闲宽限(ms)",
13070
- "runtime.backup.disabled": "禁用自动备份",
13071
- "runtime.backup.intervalHours": "备份间隔(h)",
13072
- "runtime.backup.keep": "备份保留份数",
13073
- "runtime.retention.disabled": "禁用数据保留策略",
13074
- "runtime.retention.eventsDays": "事件保留(天)",
13075
- "runtime.retention.messagesDays": "消息保留(天)",
13076
- "runtime.retention.auditDays": "审计日志保留(天)",
13077
- "runtime.retention.approvalDays": "审批历史保留(天)",
13078
- "runtime.log.level": "日志级别",
13079
- "runtime.daq.mqttQos": "MQTT QoS",
13080
- "runtime.daq.mqttUsername": "MQTT 用户名",
13081
- "runtime.daq.mqttPassword": "MQTT 密码",
13082
- "runtime.daq.mqttCaFile": "MQTT CA 证书",
13083
- "runtime.daq.mqttRejectUnauthorized": "MQTT 校验证书",
13084
- "runtime.daq.samplingDefaultIntervalMs": "节点采样默认间隔(ms)",
13085
- "runtime.daq.samplingMinIntervalMs": "节点采样下限(ms)",
13086
- "runtime.daq.queryDefaultBucketMs": "时序查询默认间隔(ms)",
13087
- "runtime.daq.queryMinBucketMs": "时序查询下限(ms)",
13088
- "runtime.daq.tsRetentionH": "标量时序保留(h)",
13089
- "runtime.daq.frameRetentionH": "帧元数据保留(h)",
13090
- "runtime.daq.alarmWebhookUrl": "告警 Webhook",
13091
- "runtime.daq.alarmEscalateMinutes": "告警升级时限(min)",
13092
- "runtime.security.hitlTimeoutMs": "HITL 审批超时(ms)",
13093
- "title": "系统设置",
13094
- "subtitle": "配置应用基本信息、主题外观与通知偏好",
13095
- "basic": "基本设置",
13096
- "basicDesc": "应用的名称、描述等基础信息",
13097
- "theme": "主题设置",
13098
- "themeDesc": "自定义主色调与显示模式",
13099
- "notification": "通知设置",
13100
- "notificationDesc": "管理系统消息通知的推送方式",
13101
- "appName": "应用名称",
13102
- "appDesc": "应用描述",
13103
- "primaryColor": "主题色",
13104
- "themeMode": "显示模式",
13105
- "appearanceDesc": "主题色、深浅模式与语言偏好,实时生效并自动持久化(localStorage)。",
13106
- "accentDesc": "默认品牌绿,与 Digital Twin 控制室同源;可选低饱和预设,悬停预览即时生效。",
13107
- "accentInk": "品牌",
13108
- "accentStone": "琥珀",
13109
- "accentMoss": "苔绿",
13110
- "accentSlate": "靛蓝",
13111
- "accentPlum": "紫檀",
13112
- "accentClay": "陶赭",
13113
- "accentApplied": "主题色已应用",
13114
- "accentReset": "已恢复默认主题色(跟随 config.yml)",
13115
- "accentResetAction": "恢复默认",
13116
- "darkDesc": "深海军蓝控制室暗阶,与数字孪生空间同一视觉语言;亮色模式保留编辑风格。",
13117
- "languageDesc": "界面语言(zh-CN / en),选择即生效。",
13118
- "systemTab": "系统",
13119
- "systemDesc": "只读运行参数(同源 config.yml,经 nuxt.config runtimeConfig 注入)。",
13120
- "identity": "当前身份",
13121
- "identityGuest": "当前未登录(工作台数据需登录后查看)",
13122
- "emailNotify": "邮件通知",
13123
- "emailNotifyDesc": "重要事件通过邮件推送给管理员",
13124
- "smsNotify": "短信通知",
13125
- "smsNotifyDesc": "紧急告警通过短信即时送达",
13126
- "pushNotify": "站内推送",
13127
- "pushNotifyDesc": "浏览器内实时消息提醒",
13128
- "saveSuccess": "设置已保存",
13129
- "runtimeTab": "运行配置",
13130
- "runtime": {
13066
+ title: "系统设置",
13067
+ subtitle: "配置应用基本信息、主题外观与通知偏好",
13068
+ basic: "基本设置",
13069
+ basicDesc: "应用的名称、描述等基础信息",
13070
+ theme: "主题设置",
13071
+ themeDesc: "自定义主色调与显示模式",
13072
+ notification: "通知设置",
13073
+ notificationDesc: "管理系统消息通知的推送方式",
13074
+ appName: "应用名称",
13075
+ appDesc: "应用描述",
13076
+ primaryColor: "主题色",
13077
+ themeMode: "显示模式",
13078
+ appearanceDesc: "主题色、深浅模式与语言偏好,实时生效并自动持久化(localStorage)。",
13079
+ accentDesc: "默认品牌绿,与 Digital Twin 控制室同源;可选低饱和预设,悬停预览即时生效。",
13080
+ accentInk: "品牌",
13081
+ accentStone: "琥珀",
13082
+ accentMoss: "苔绿",
13083
+ accentSlate: "靛蓝",
13084
+ accentPlum: "紫檀",
13085
+ accentClay: "陶赭",
13086
+ accentApplied: "主题色已应用",
13087
+ accentReset: "已恢复默认主题色(跟随 config.yml)",
13088
+ accentResetAction: "恢复默认",
13089
+ darkDesc: "深海军蓝控制室暗阶,与数字孪生空间同一视觉语言;亮色模式保留编辑风格。",
13090
+ languageDesc: "界面语言(zh-CN / en),选择即生效。",
13091
+ systemTab: "系统",
13092
+ systemDesc: "只读运行参数(同源 config.yml,经 nuxt.config runtimeConfig 注入)。",
13093
+ identity: "当前身份",
13094
+ identityGuest: "当前未登录(工作台数据需登录后查看)",
13095
+ emailNotify: "邮件通知",
13096
+ emailNotifyDesc: "重要事件通过邮件推送给管理员",
13097
+ smsNotify: "短信通知",
13098
+ smsNotifyDesc: "紧急告警通过短信即时送达",
13099
+ pushNotify: "站内推送",
13100
+ pushNotifyDesc: "浏览器内实时消息提醒",
13101
+ saveSuccess: "设置已保存",
13102
+ runtimeTab: "运行配置",
13103
+ runtime: {
13104
+ groupMemory: "记忆系统",
13105
+ groupOmp: "Agent Harness",
13106
+ groupDcw: "数控写控",
13107
+ groupWorkshop: "车间运行",
13108
+ groupBackup: "数据备份",
13109
+ groupRetention: "数据保留",
13110
+ groupLog: "日志",
13131
13111
  title: "运行配置",
13132
13112
  desc: "服务端持久化的运行参数:live 键保存即热重载生效(无需刷新),restart 键下次启动生效。与 CLI(aw config)同源同通道。",
13133
13113
  live: "实时",
@@ -13146,14 +13126,73 @@ var zh_CN_default$1 = {
13146
13126
  groupSecurity: "安全",
13147
13127
  groupDaq: "数采",
13148
13128
  groupApi: "API",
13149
- groupMemory: "记忆系统",
13150
- groupOmp: "Agent Harness",
13151
13129
  groupHarness: "Harness 接入",
13152
- groupDcw: "数控写控",
13153
- groupWorkshop: "车间运行",
13154
- groupBackup: "数据备份",
13155
- groupRetention: "数据保留",
13156
- groupLog: "日志",
13130
+ groupPlugins: "插件",
13131
+ memory: {
13132
+ primerTokens: "记忆引子预算",
13133
+ injectTotal: "记忆注入硬顶",
13134
+ maintenanceMs: "记忆维护周期(ms)",
13135
+ expireDays: "情景记忆过期(天)",
13136
+ expireSessionDays: "会话记忆过期(天)",
13137
+ cap: "记忆条目上限",
13138
+ reflectTrigger: "反思触发阈值",
13139
+ embedBaseUrl: "Embedding 端点",
13140
+ embedModel: "Embedding 模型",
13141
+ embedApiKey: "Embedding 密钥"
13142
+ },
13143
+ omp: {
13144
+ compactEnabled: "上下文自动压缩",
13145
+ compactThreshold: "压缩阈值",
13146
+ compactMinIntervalMs: "压缩最小间隔(ms)",
13147
+ compactWaitMs: "压缩等待超时(ms)"
13148
+ },
13149
+ dcw: {
13150
+ rollbackCooldownMs: "回退冷却(ms)",
13151
+ rollbackMinWindowMs: "回退最小观察窗(ms)",
13152
+ rollbackBaselineMs: "基线稳定窗(ms)",
13153
+ rollbackStaleMs: "open 记录过期(ms)"
13154
+ },
13155
+ workshop: {
13156
+ idleSweepMs: "空产线扫描(ms)",
13157
+ idleGraceMs: "空闲宽限(ms)"
13158
+ },
13159
+ backup: {
13160
+ disabled: "禁用自动备份",
13161
+ intervalHours: "备份间隔(h)",
13162
+ keep: "备份保留份数"
13163
+ },
13164
+ retention: {
13165
+ disabled: "禁用数据保留策略",
13166
+ eventsDays: "事件保留(天)",
13167
+ messagesDays: "消息保留(天)",
13168
+ auditDays: "审计日志保留(天)",
13169
+ approvalDays: "审批历史保留(天)"
13170
+ },
13171
+ log: { level: "日志级别" },
13172
+ daq: {
13173
+ mqttQos: "MQTT QoS",
13174
+ mqttUsername: "MQTT 用户名",
13175
+ mqttPassword: "MQTT 密码",
13176
+ mqttCaFile: "MQTT CA 证书",
13177
+ mqttRejectUnauthorized: "MQTT 校验证书",
13178
+ samplingDefaultIntervalMs: "节点采样默认间隔(ms)",
13179
+ samplingMinIntervalMs: "节点采样下限(ms)",
13180
+ queryDefaultBucketMs: "时序查询默认间隔(ms)",
13181
+ queryMinBucketMs: "时序查询下限(ms)",
13182
+ tsRetentionH: "标量时序保留(h)",
13183
+ frameRetentionH: "帧元数据保留(h)",
13184
+ alarmWebhookUrl: "告警 Webhook",
13185
+ alarmEscalateMinutes: "告警升级时限(min)",
13186
+ startInfrastructure: "数采基础设施拉起策略",
13187
+ mqttHost: "MQTT Broker 地址",
13188
+ mqttPort: "MQTT Broker 端口",
13189
+ tsHost: "时序库地址",
13190
+ tsPort: "时序库端口"
13191
+ },
13192
+ security: {
13193
+ hitlTimeoutMs: "HITL 审批超时(ms)",
13194
+ approvalGate: "高危操作双人复核"
13195
+ },
13157
13196
  server: {
13158
13197
  host: "监听地址",
13159
13198
  devPort: "开发端口",
@@ -13173,15 +13212,7 @@ var zh_CN_default$1 = {
13173
13212
  primaryColor: "主题色",
13174
13213
  mode: "显示模式"
13175
13214
  },
13176
- i18n: { defaultLocale: "默认语言" },
13177
- security: { approvalGate: "高危操作双人复核" },
13178
- daq: {
13179
- startInfrastructure: "数采基础设施拉起策略",
13180
- mqttHost: "MQTT Broker 地址",
13181
- mqttPort: "MQTT Broker 端口",
13182
- tsHost: "时序库地址",
13183
- tsPort: "时序库端口"
13184
- }
13215
+ i18n: { defaultLocale: "默认语言" }
13185
13216
  }
13186
13217
  },
13187
13218
  monitor: {
@@ -13570,103 +13601,41 @@ var zh_CN_default$1 = {
13570
13601
  k3lha20031: "原始点"
13571
13602
  },
13572
13603
  logs: {
13573
- "src.user": "用户",
13574
- "src.system": "系统",
13575
- "kind.write": "下发",
13576
- "kind.manual": "人工",
13577
- "kind.alarm": "告警",
13578
- "kind.line": "产线",
13579
- "kind.recipe": "配方",
13580
- "kind.rollback": "回退",
13581
- "kind.daq": "数采",
13582
- "kind.system": "系统",
13583
- "title": "运维日志",
13584
- "sub": "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
13585
- "live": "实时",
13586
- "liveHint": "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
13587
- "all": "全部",
13588
- "fLine": "产线",
13589
- "fProduct": "产品",
13590
- "fSource": "来源",
13591
- "fKind": "分类",
13592
- "fKeyword": "关键词",
13593
- "fKeywordPh": "搜索摘要/操作/操作者…",
13594
- "query": "查询",
13595
- "reset": "重置",
13596
- "thTime": "时间",
13597
- "thActor": "操作者",
13598
- "thSummary": "事件摘要",
13599
- "thScope": "归属(产线/产品/Recipe)",
13600
- "thDetail": "详情",
13601
- "expand": "详情",
13602
- "fold": "收起",
13603
- "loading": "查询中…",
13604
- "empty": "无匹配日志",
13605
- "src.user": "用户",
13606
- "src.system": "系统",
13607
- "kind.write": "下发",
13608
- "kind.manual": "人工",
13609
- "kind.alarm": "告警",
13610
- "kind.line": "产线",
13611
- "kind.recipe": "配方",
13612
- "kind.rollback": "回退",
13613
- "kind.daq": "数采",
13614
- "kind.system": "系统",
13615
- "mSummary": "记录内容",
13616
- "mSummaryPh": "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
13617
- "mDetail": "详情(可选)",
13618
- "mDetailPh": "补充说明、处置过程、关联单号等(将存入日志详情)",
13619
- "mSubmit": "入册",
13620
- "mOk": "已入册",
13621
- "src.user": "用户",
13622
- "src.system": "系统",
13623
- "kind.write": "下发",
13624
- "kind.manual": "人工",
13625
- "kind.alarm": "告警",
13626
- "kind.line": "产线",
13627
- "kind.recipe": "配方",
13628
- "kind.rollback": "回退",
13629
- "kind.daq": "数采",
13630
- "kind.system": "系统",
13631
- "src.user": "用户",
13632
- "src.system": "系统",
13633
- "kind.write": "下发",
13634
- "kind.manual": "人工",
13635
- "kind.alarm": "告警",
13636
- "kind.line": "产线",
13637
- "kind.recipe": "配方",
13638
- "kind.rollback": "回退",
13639
- "kind.daq": "数采",
13640
- "kind.system": "系统",
13641
- "title": "运维日志",
13642
- "sub": "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
13643
- "live": "实时",
13644
- "liveHint": "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
13645
- "manual": "人工记录",
13646
- "all": "全部",
13647
- "fLine": "产线",
13648
- "fProduct": "产品",
13649
- "fSource": "来源",
13650
- "fKind": "分类",
13651
- "fKeyword": "关键词",
13652
- "fKeywordPh": "搜索摘要/操作/操作者…",
13653
- "query": "查询",
13654
- "reset": "重置",
13655
- "thTime": "时间",
13656
- "thActor": "操作者",
13657
- "thSummary": "事件摘要",
13658
- "thScope": "归属(产线/产品/Recipe)",
13659
- "thDetail": "详情",
13660
- "expand": "详情",
13661
- "fold": "收起",
13662
- "noDetail": "无",
13663
- "loading": "查询中…",
13664
- "empty": "无匹配日志",
13665
- "src": {
13604
+ title: "运维日志",
13605
+ sub: "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
13606
+ live: "实时",
13607
+ liveHint: "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
13608
+ all: "全部",
13609
+ fLine: "产线",
13610
+ fProduct: "产品",
13611
+ fSource: "来源",
13612
+ fKind: "分类",
13613
+ fKeyword: "关键词",
13614
+ fKeywordPh: "搜索摘要/操作/操作者…",
13615
+ query: "查询",
13616
+ reset: "重置",
13617
+ thTime: "时间",
13618
+ thActor: "操作者",
13619
+ thSummary: "事件摘要",
13620
+ thScope: "归属(产线/产品/Recipe)",
13621
+ thDetail: "详情",
13622
+ expand: "详情",
13623
+ fold: "收起",
13624
+ loading: "查询中…",
13625
+ empty: "无匹配日志",
13626
+ mSummary: "记录内容",
13627
+ mSummaryPh: "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
13628
+ mDetail: "详情(可选)",
13629
+ mDetailPh: "补充说明、处置过程、关联单号等(将存入日志详情)",
13630
+ mSubmit: "入册",
13631
+ mOk: "已入册",
13632
+ manual: "人工记录",
13633
+ noDetail: "无",
13634
+ src: {
13666
13635
  user: "用户",
13667
13636
  system: "系统"
13668
13637
  },
13669
- "kind": {
13638
+ kind: {
13670
13639
  write: "下发",
13671
13640
  manual: "人工",
13672
13641
  alarm: "告警",
@@ -13675,13 +13644,7 @@ var zh_CN_default$1 = {
13675
13644
  rollback: "回退",
13676
13645
  daq: "数采",
13677
13646
  system: "系统"
13678
- },
13679
- "mSummary": "记录内容",
13680
- "mSummaryPh": "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
13681
- "mDetail": "详情(可选)",
13682
- "mDetailPh": "补充说明、处置过程、关联单号等(将存入日志详情)",
13683
- "mSubmit": "入册",
13684
- "mOk": "已入册"
13647
+ }
13685
13648
  },
13686
13649
  dcw: {
13687
13650
  k1qidbpy061: "缺省 {p0}(按创建序)",
@@ -13751,7 +13714,8 @@ var zh_CN_default$1 = {
13751
13714
  k48c07045: "通用",
13752
13715
  k6ugbw2046: "模板名称必填",
13753
13716
  k13awowo047: "工艺量程(min/max)必填",
13754
- k1bphrb3048: "删除失败"
13717
+ k1bphrb3048: "删除失败",
13718
+ k1b2ioko019: "产线名称"
13755
13719
  },
13756
13720
  dcwDetail: {
13757
13721
  staleDeleted: "已删除",
@@ -14816,11 +14780,19 @@ var zh_CN_default$1 = {
14816
14780
  loadFail: "插件列表加载失败",
14817
14781
  hasClient: "浏览器增强",
14818
14782
  routes: "API 路由",
14819
- empty: "暂无插件 —— aw plugin create <name> 创建,或 aw plugin enable 开启示例",
14783
+ empty: "暂无插件 —— 执行 aw plugin create my-plugin 创建,或 aw plugin enable 开启内置示例",
14820
14784
  failures: "装载失败",
14821
14785
  loadFailures: "{n} 个插件装载失败,详情见服务启动日志",
14822
14786
  enableFail: "启停操作失败",
14823
- detail: "插件详情"
14787
+ detail: "插件详情",
14788
+ desc: "平台插件清单:启停(admin,热重载生效)与连接健康检测。",
14789
+ needLogin: "登录后可查看与管理插件",
14790
+ builtin: "内置",
14791
+ adminRequired: "该操作需要管理员权限",
14792
+ healthCheck: "检测连接",
14793
+ healthChecking: "检测中…",
14794
+ healthOk: "正常",
14795
+ healthBad: "异常"
14824
14796
  },
14825
14797
  errors: {
14826
14798
  http400: "请求参数有误,请检查后重试",
@@ -14862,6 +14834,16 @@ var zh_CN_default$1 = {
14862
14834
  error: {
14863
14835
  backHome: "返回首页",
14864
14836
  lost: "页面走失了"
14837
+ },
14838
+ teamPlugins: {
14839
+ k1plugon040: "插件开关 · {p0}",
14840
+ k1plugon041: "启用插件",
14841
+ k1plugon042: "未选中的插件其工具不会注入该团队 Agent,避免上下文污染",
14842
+ k1plugon043: "已保存",
14843
+ k1plugon044: "默认全启用(尚未单独配置)",
14844
+ k1plugon045: "已单独配置",
14845
+ k1plugon046: "插件已全部停用",
14846
+ k1plugon047: "插件开关…"
14865
14847
  }
14866
14848
  };
14867
14849
  //#endregion
@@ -15006,94 +14988,51 @@ var en_default = {
15006
14988
  disabled: "Disabled"
15007
14989
  },
15008
14990
  settings: {
15009
- "runtime.groupMemory": "Memory",
15010
- "runtime.groupOmp": "Agent Harness",
15011
- "runtime.groupDcw": "Write Control",
15012
- "runtime.groupWorkshop": "Workshop",
15013
- "runtime.groupBackup": "Backup",
15014
- "runtime.groupRetention": "Retention",
15015
- "runtime.groupLog": "Logs",
15016
- "runtime.memory.primerTokens": "Memory primer budget",
15017
- "runtime.memory.injectTotal": "Memory inject cap",
15018
- "runtime.memory.maintenanceMs": "Memory maintenance (ms)",
15019
- "runtime.memory.expireDays": "Episodic expiry (days)",
15020
- "runtime.memory.expireSessionDays": "Session expiry (days)",
15021
- "runtime.memory.cap": "Memory entry cap",
15022
- "runtime.memory.reflectTrigger": "Reflection trigger",
15023
- "runtime.memory.embedBaseUrl": "Embedding endpoint",
15024
- "runtime.memory.embedModel": "Embedding model",
15025
- "runtime.memory.embedApiKey": "Embedding key",
15026
- "runtime.omp.compactEnabled": "Auto compaction",
15027
- "runtime.omp.compactThreshold": "Compaction threshold",
15028
- "runtime.omp.compactMinIntervalMs": "Min compaction interval (ms)",
15029
- "runtime.omp.compactWaitMs": "Compaction wait timeout (ms)",
15030
- "runtime.dcw.rollbackCooldownMs": "Rollback cooldown (ms)",
15031
- "runtime.dcw.rollbackMinWindowMs": "Min observe window (ms)",
15032
- "runtime.dcw.rollbackBaselineMs": "Baseline window (ms)",
15033
- "runtime.dcw.rollbackStaleMs": "Open record staleness (ms)",
15034
- "runtime.workshop.idleSweepMs": "Idle sweep (ms)",
15035
- "runtime.workshop.idleGraceMs": "Idle grace (ms)",
15036
- "runtime.backup.disabled": "Disable auto backup",
15037
- "runtime.backup.intervalHours": "Backup interval (h)",
15038
- "runtime.backup.keep": "Backups to keep",
15039
- "runtime.retention.disabled": "Disable retention sweep",
15040
- "runtime.retention.eventsDays": "Events retention (days)",
15041
- "runtime.retention.messagesDays": "Messages retention (days)",
15042
- "runtime.retention.auditDays": "Audit retention (days)",
15043
- "runtime.retention.approvalDays": "Approval history retention (days)",
15044
- "runtime.log.level": "Log level",
15045
- "runtime.daq.mqttQos": "MQTT QoS",
15046
- "runtime.daq.mqttUsername": "MQTT username",
15047
- "runtime.daq.mqttPassword": "MQTT password",
15048
- "runtime.daq.mqttCaFile": "MQTT CA certificate",
15049
- "runtime.daq.mqttRejectUnauthorized": "MQTT verify certificate",
15050
- "runtime.daq.samplingDefaultIntervalMs": "Default sampling interval (ms)",
15051
- "runtime.daq.samplingMinIntervalMs": "Sampling floor (ms)",
15052
- "runtime.daq.queryDefaultBucketMs": "Default TS query bucket (ms)",
15053
- "runtime.daq.queryMinBucketMs": "TS query floor (ms)",
15054
- "runtime.daq.tsRetentionH": "Scalar TS retention (h)",
15055
- "runtime.daq.frameRetentionH": "Frame retention (h)",
15056
- "runtime.daq.alarmWebhookUrl": "Alarm webhook",
15057
- "runtime.daq.alarmEscalateMinutes": "Alarm escalate (min)",
15058
- "runtime.security.hitlTimeoutMs": "HITL approval timeout (ms)",
15059
- "title": "System Settings",
15060
- "subtitle": "Configure app basics, theme appearance and notifications",
15061
- "basic": "General",
15062
- "basicDesc": "Application name, description and other basics",
15063
- "theme": "Appearance",
15064
- "themeDesc": "Customize primary color and display mode",
15065
- "notification": "Notifications",
15066
- "notificationDesc": "Manage how system messages are delivered",
15067
- "appName": "App Name",
15068
- "appDesc": "Description",
15069
- "primaryColor": "Primary Color",
15070
- "themeMode": "Display Mode",
15071
- "appearanceDesc": "Accent color, dark mode and language, applied live and persisted automatically (localStorage).",
15072
- "accentDesc": "Warm-editorial defaults to the ink pill; pick a muted preset to preview instantly.",
15073
- "accentInk": "Ink",
15074
- "accentStone": "Amber",
15075
- "accentMoss": "Moss",
15076
- "accentSlate": "Slate",
15077
- "accentPlum": "Plum",
15078
- "accentClay": "Clay",
15079
- "accentApplied": "Accent applied",
15080
- "accentReset": "Reset to default ink (follows config.yml)",
15081
- "accentResetAction": "Reset to default ink",
15082
- "darkDesc": "Deep-navy control-room dark ramp; light mode keeps the editorial paper look.",
15083
- "languageDesc": "Interface language (zh-CN / en); applies immediately.",
15084
- "systemTab": "System",
15085
- "systemDesc": "Read-only runtime parameters (sourced from config.yml via nuxt.config runtimeConfig).",
15086
- "identity": "Signed in as",
15087
- "identityGuest": "Not signed in (workshop data requires sign-in)",
15088
- "emailNotify": "Email Notifications",
15089
- "emailNotifyDesc": "Push important events to administrators via email",
15090
- "smsNotify": "SMS Notifications",
15091
- "smsNotifyDesc": "Deliver urgent alerts instantly via SMS",
15092
- "pushNotify": "In-App Push",
15093
- "pushNotifyDesc": "Real-time message alerts in the browser",
15094
- "saveSuccess": "Settings saved",
15095
- "runtimeTab": "Runtime config",
15096
- "runtime": {
14991
+ title: "System Settings",
14992
+ subtitle: "Configure app basics, theme appearance and notifications",
14993
+ basic: "General",
14994
+ basicDesc: "Application name, description and other basics",
14995
+ theme: "Appearance",
14996
+ themeDesc: "Customize primary color and display mode",
14997
+ notification: "Notifications",
14998
+ notificationDesc: "Manage how system messages are delivered",
14999
+ appName: "App Name",
15000
+ appDesc: "Description",
15001
+ primaryColor: "Primary Color",
15002
+ themeMode: "Display Mode",
15003
+ appearanceDesc: "Accent color, dark mode and language, applied live and persisted automatically (localStorage).",
15004
+ accentDesc: "Warm-editorial defaults to the ink pill; pick a muted preset to preview instantly.",
15005
+ accentInk: "Ink",
15006
+ accentStone: "Amber",
15007
+ accentMoss: "Moss",
15008
+ accentSlate: "Slate",
15009
+ accentPlum: "Plum",
15010
+ accentClay: "Clay",
15011
+ accentApplied: "Accent applied",
15012
+ accentReset: "Reset to default ink (follows config.yml)",
15013
+ accentResetAction: "Reset to default ink",
15014
+ darkDesc: "Deep-navy control-room dark ramp; light mode keeps the editorial paper look.",
15015
+ languageDesc: "Interface language (zh-CN / en); applies immediately.",
15016
+ systemTab: "System",
15017
+ systemDesc: "Read-only runtime parameters (sourced from config.yml via nuxt.config runtimeConfig).",
15018
+ identity: "Signed in as",
15019
+ identityGuest: "Not signed in (workshop data requires sign-in)",
15020
+ emailNotify: "Email Notifications",
15021
+ emailNotifyDesc: "Push important events to administrators via email",
15022
+ smsNotify: "SMS Notifications",
15023
+ smsNotifyDesc: "Deliver urgent alerts instantly via SMS",
15024
+ pushNotify: "In-App Push",
15025
+ pushNotifyDesc: "Real-time message alerts in the browser",
15026
+ saveSuccess: "Settings saved",
15027
+ runtimeTab: "Runtime config",
15028
+ runtime: {
15029
+ groupMemory: "Memory",
15030
+ groupOmp: "Agent Harness",
15031
+ groupDcw: "Write Control",
15032
+ groupWorkshop: "Workshop",
15033
+ groupBackup: "Backup",
15034
+ groupRetention: "Retention",
15035
+ groupLog: "Logs",
15097
15036
  title: "Runtime config",
15098
15037
  desc: "Server-backed runtime parameters: live keys apply instantly over SSE (no reload); restart keys take effect on the next launch of the matching mode. Same channel as the `aw config` CLI.",
15099
15038
  live: "live",
@@ -15112,14 +15051,73 @@ var en_default = {
15112
15051
  groupSecurity: "Security",
15113
15052
  groupDaq: "DAQ",
15114
15053
  groupApi: "API",
15115
- groupMemory: "Memory",
15116
- groupOmp: "Agent Harness",
15117
15054
  groupHarness: "Harness Adapters",
15118
- groupDcw: "Write Control",
15119
- groupWorkshop: "Workshop",
15120
- groupBackup: "Backup",
15121
- groupRetention: "Retention",
15122
- groupLog: "Logs",
15055
+ groupPlugins: "Plugins",
15056
+ memory: {
15057
+ primerTokens: "Memory primer budget",
15058
+ injectTotal: "Memory inject cap",
15059
+ maintenanceMs: "Memory maintenance (ms)",
15060
+ expireDays: "Episodic expiry (days)",
15061
+ expireSessionDays: "Session expiry (days)",
15062
+ cap: "Memory entry cap",
15063
+ reflectTrigger: "Reflection trigger",
15064
+ embedBaseUrl: "Embedding endpoint",
15065
+ embedModel: "Embedding model",
15066
+ embedApiKey: "Embedding key"
15067
+ },
15068
+ omp: {
15069
+ compactEnabled: "Auto compaction",
15070
+ compactThreshold: "Compaction threshold",
15071
+ compactMinIntervalMs: "Min compaction interval (ms)",
15072
+ compactWaitMs: "Compaction wait timeout (ms)"
15073
+ },
15074
+ dcw: {
15075
+ rollbackCooldownMs: "Rollback cooldown (ms)",
15076
+ rollbackMinWindowMs: "Min observe window (ms)",
15077
+ rollbackBaselineMs: "Baseline window (ms)",
15078
+ rollbackStaleMs: "Open record staleness (ms)"
15079
+ },
15080
+ workshop: {
15081
+ idleSweepMs: "Idle sweep (ms)",
15082
+ idleGraceMs: "Idle grace (ms)"
15083
+ },
15084
+ backup: {
15085
+ disabled: "Disable auto backup",
15086
+ intervalHours: "Backup interval (h)",
15087
+ keep: "Backups to keep"
15088
+ },
15089
+ retention: {
15090
+ disabled: "Disable retention sweep",
15091
+ eventsDays: "Events retention (days)",
15092
+ messagesDays: "Messages retention (days)",
15093
+ auditDays: "Audit retention (days)",
15094
+ approvalDays: "Approval history retention (days)"
15095
+ },
15096
+ log: { level: "Log level" },
15097
+ daq: {
15098
+ mqttQos: "MQTT QoS",
15099
+ mqttUsername: "MQTT username",
15100
+ mqttPassword: "MQTT password",
15101
+ mqttCaFile: "MQTT CA certificate",
15102
+ mqttRejectUnauthorized: "MQTT verify certificate",
15103
+ samplingDefaultIntervalMs: "Default sampling interval (ms)",
15104
+ samplingMinIntervalMs: "Sampling floor (ms)",
15105
+ queryDefaultBucketMs: "Default TS query bucket (ms)",
15106
+ queryMinBucketMs: "TS query floor (ms)",
15107
+ tsRetentionH: "Scalar TS retention (h)",
15108
+ frameRetentionH: "Frame retention (h)",
15109
+ alarmWebhookUrl: "Alarm webhook",
15110
+ alarmEscalateMinutes: "Alarm escalate (min)",
15111
+ startInfrastructure: "DAQ infra policy",
15112
+ mqttHost: "MQTT broker host",
15113
+ mqttPort: "MQTT broker port",
15114
+ tsHost: "Timescale host",
15115
+ tsPort: "Timescale port"
15116
+ },
15117
+ security: {
15118
+ hitlTimeoutMs: "HITL approval timeout (ms)",
15119
+ approvalGate: "Dual approval for high-risk ops"
15120
+ },
15123
15121
  server: {
15124
15122
  host: "Listen address",
15125
15123
  devPort: "Dev port",
@@ -15139,15 +15137,7 @@ var en_default = {
15139
15137
  primaryColor: "Primary color",
15140
15138
  mode: "Theme mode"
15141
15139
  },
15142
- i18n: { defaultLocale: "Default locale" },
15143
- security: { approvalGate: "Dual approval for high-risk ops" },
15144
- daq: {
15145
- startInfrastructure: "DAQ infra policy",
15146
- mqttHost: "MQTT broker host",
15147
- mqttPort: "MQTT broker port",
15148
- tsHost: "Timescale host",
15149
- tsPort: "Timescale port"
15150
- }
15140
+ i18n: { defaultLocale: "Default locale" }
15151
15141
  }
15152
15142
  },
15153
15143
  monitor: {
@@ -15536,116 +15526,50 @@ var en_default = {
15536
15526
  k3lha20031: "Raw points"
15537
15527
  },
15538
15528
  logs: {
15539
- "src.user": "用户",
15540
- "src.system": "System",
15541
- "kind.write": "Apply",
15542
- "kind.manual": "人工",
15543
- "kind.alarm": "Alarm",
15544
- "kind.line": "Line",
15545
- "kind.recipe": "Recipe",
15546
- "kind.rollback": "回退",
15547
- "kind.daq": "DAQ",
15548
- "kind.system": "System",
15549
- "title": "运维日志",
15550
- "sub": "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
15551
- "live": "实时",
15552
- "liveHint": "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
15553
- "all": "All",
15554
- "fLine": "Line",
15555
- "fProduct": "Product",
15556
- "fSource": "来源",
15557
- "fKind": "分类",
15558
- "fKeyword": "关键词",
15559
- "fKeywordPh": "搜索摘要/操作/操作者…",
15560
- "query": "Query",
15561
- "reset": "Reset",
15562
- "thTime": "Time",
15563
- "thActor": "操作者",
15564
- "thSummary": "事件摘要",
15565
- "thScope": "归属(产线/产品/Recipe)",
15566
- "thDetail": "Details",
15567
- "expand": "Details",
15568
- "fold": "Collapse",
15569
- "loading": "Querying…",
15570
- "empty": "无匹配日志",
15571
- "src.user": "用户",
15572
- "src.system": "System",
15573
- "kind.write": "Apply",
15574
- "kind.manual": "人工",
15575
- "kind.alarm": "Alarm",
15576
- "kind.line": "Line",
15577
- "kind.recipe": "Recipe",
15578
- "kind.rollback": "回退",
15579
- "kind.daq": "DAQ",
15580
- "kind.system": "System",
15581
- "mSummary": "记录内容",
15582
- "mSummaryPh": "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
15583
- "mSubmit": "入册",
15584
- "mOk": "已入册",
15585
- "src.user": "用户",
15586
- "src.system": "System",
15587
- "kind.write": "Apply",
15588
- "kind.manual": "人工",
15589
- "kind.alarm": "Alarm",
15590
- "kind.line": "Line",
15591
- "kind.recipe": "Recipe",
15592
- "kind.rollback": "回退",
15593
- "kind.daq": "DAQ",
15594
- "kind.system": "System",
15595
- "src.user": "用户",
15596
- "src.system": "System",
15597
- "kind.write": "Apply",
15598
- "kind.manual": "人工",
15599
- "kind.alarm": "Alarm",
15600
- "kind.line": "Line",
15601
- "kind.recipe": "Recipe",
15602
- "kind.rollback": "回退",
15603
- "kind.daq": "DAQ",
15604
- "kind.system": "System",
15605
- "title": "Operations log",
15606
- "sub": "One unified record of every operation: what control was issued, what users and agents did — queryable by line / product / recipe",
15607
- "live": "Live",
15608
- "liveHint": "Receiving operation events over WS (summary rendering only; full details queryable below)",
15609
- "manual": "Manual entry",
15610
- "all": "All",
15611
- "fLine": "Line",
15612
- "fProduct": "Product",
15613
- "fSource": "Source",
15614
- "fKind": "Kind",
15615
- "fKeyword": "Keyword",
15616
- "fKeywordPh": "Search summary / action / actor…",
15617
- "query": "Query",
15618
- "reset": "Reset",
15619
- "thTime": "Time",
15620
- "thActor": "Actor",
15621
- "thSummary": "Event summary",
15622
- "thScope": "Scope (line / product / recipe)",
15623
- "thDetail": "Detail",
15624
- "expand": "Detail",
15625
- "fold": "Fold",
15626
- "noDetail": "None",
15627
- "loading": "Querying…",
15628
- "empty": "No matching log entries",
15629
- "src": {
15630
- user: "User",
15529
+ title: "运维日志",
15530
+ sub: "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
15531
+ live: "实时",
15532
+ liveHint: "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
15533
+ all: "All",
15534
+ fLine: "Line",
15535
+ fProduct: "Product",
15536
+ fSource: "来源",
15537
+ fKind: "分类",
15538
+ fKeyword: "关键词",
15539
+ fKeywordPh: "搜索摘要/操作/操作者…",
15540
+ query: "Query",
15541
+ reset: "Reset",
15542
+ thTime: "Time",
15543
+ thActor: "操作者",
15544
+ thSummary: "事件摘要",
15545
+ thScope: "归属(产线/产品/Recipe)",
15546
+ thDetail: "Details",
15547
+ expand: "Details",
15548
+ fold: "Collapse",
15549
+ loading: "Querying…",
15550
+ empty: "无匹配日志",
15551
+ mSummary: "记录内容",
15552
+ mSummaryPh: "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
15553
+ mSubmit: "入册",
15554
+ mOk: "已入册",
15555
+ manual: "Manual entry",
15556
+ noDetail: "None",
15557
+ mDetail: "Detail (optional)",
15558
+ mDetailPh: "Context, handling notes, related ticket… (stored in the log detail)",
15559
+ src: {
15560
+ user: "用户",
15631
15561
  system: "System"
15632
15562
  },
15633
- "kind": {
15634
- write: "Write",
15635
- manual: "Manual",
15563
+ kind: {
15564
+ write: "Apply",
15565
+ manual: "人工",
15636
15566
  alarm: "Alarm",
15637
15567
  line: "Line",
15638
15568
  recipe: "Recipe",
15639
- rollback: "Rollback",
15569
+ rollback: "回退",
15640
15570
  daq: "DAQ",
15641
15571
  system: "System"
15642
- },
15643
- "mSummary": "Entry content",
15644
- "mSummaryPh": "e.g. Replaced heater coil of oven #3; extended soaking for current batch by 10 min",
15645
- "mDetail": "Detail (optional)",
15646
- "mDetailPh": "Context, handling notes, related ticket… (stored in the log detail)",
15647
- "mSubmit": "Record",
15648
- "mOk": "Recorded"
15572
+ }
15649
15573
  },
15650
15574
  dcw: {
15651
15575
  k1qidbpy061: "Default {p0} (by creation order)",
@@ -16780,11 +16704,19 @@ var en_default = {
16780
16704
  loadFail: "Failed to load plugin list",
16781
16705
  hasClient: "Client enhancer",
16782
16706
  routes: "API routes",
16783
- empty: "No plugins yet — aw plugin create <name>, or aw plugin enable to turn on examples",
16707
+ empty: "No plugins yet — run aw plugin create my-plugin, or aw plugin enable to turn on examples",
16784
16708
  failures: "Load failures",
16785
16709
  loadFailures: "{n} plugin(s) failed to load, see server startup log",
16786
16710
  enableFail: "Toggle failed",
16787
- detail: "Plugin detail"
16711
+ detail: "Plugin detail",
16712
+ desc: "Platform plugin list: enable/disable (admin, hot-reload) and connection health checks.",
16713
+ needLogin: "Sign in to view and manage plugins",
16714
+ builtin: "Built-in",
16715
+ adminRequired: "This action requires an administrator",
16716
+ healthCheck: "Check connection",
16717
+ healthChecking: "Checking…",
16718
+ healthOk: "OK",
16719
+ healthBad: "Error"
16788
16720
  },
16789
16721
  errors: {
16790
16722
  http400: "Invalid request, please check and retry",
@@ -16826,6 +16758,16 @@ var en_default = {
16826
16758
  error: {
16827
16759
  backHome: "Back to Home",
16828
16760
  lost: "Page lost"
16761
+ },
16762
+ teamPlugins: {
16763
+ k1plugon040: "Plugin switches · {p0}",
16764
+ k1plugon041: "Enable plugins",
16765
+ k1plugon042: "Tools of unchecked plugins are not injected into this team's agents, avoiding context pollution",
16766
+ k1plugon043: "Saved",
16767
+ k1plugon044: "All enabled by default (not yet configured)",
16768
+ k1plugon045: "Explicitly configured",
16769
+ k1plugon046: "All plugins are disabled",
16770
+ k1plugon047: "Plugin switches…"
16829
16771
  }
16830
16772
  };
16831
16773
  //#endregion
@@ -18238,7 +18180,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
18238
18180
  //#endregion
18239
18181
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs
18240
18182
  var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Flayouts_default = {
18241
- default: defineAsyncComponent(() => import('../build/default-DdV642BY.mjs').then((m) => m.default || m)),
18183
+ default: defineAsyncComponent(() => import('../build/default-95-zOTPt.mjs').then((m) => m.default || m)),
18242
18184
  town: defineAsyncComponent(() => import('../build/town-BUqRobze.mjs').then((m) => m.default || m))
18243
18185
  };
18244
18186
  //#endregion
@@ -18754,6 +18696,7 @@ var app_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompon
18754
18696
  const store = useAppStore();
18755
18697
  const config = useRuntimeConfig().public;
18756
18698
  const runtimeCfg = useRuntimeConfigStore();
18699
+ store.isDark = (useSiteConfig().themeMode ?? "dark") !== "light";
18757
18700
  const antdLocale = computed(() => locale.value.startsWith("en") ? localeValues$1 : localeValues);
18758
18701
  /** 将 hex 向白混合(lighten),供暗色模式强调色提亮 */
18759
18702
  function mixWhite(hex, ratio) {
@@ -18997,5 +18940,5 @@ const entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
18997
18940
  default: entry_default
18998
18941
  }, Symbol.toStringTag, { value: 'Module' }));
18999
18942
 
19000
- export { useToken$1 as $, resetComponent as A, eventType as B, CloseCircleFilled as C, presetPrimaryColors as D, genFocusStyle as E, sanitizeTag as F, isValidElement as G, isFragment as H, getTransitionName as I, getStyle$1 as J, Keyframe as K, getSlot as L, getEvents as M, contains as N, hasProp as O, PropTypes as P, getComponent as Q, findDOMNode as R, useProvidePortal as S, getOptionProps as T, getMotion$1 as U, Icon as V, useInjectDisabled as W, LoadingOutlined as X, canUseDom as Y, Portal_default as Z, _plugin_vue_export_helper_default as _, useRoute as a, tuple as a0, useProviderSize as a1, useProviderDisabled as a2, useInjectGlobalForm as a3, ExclamationCircleFilled as a4, useLocaleReceiver as a5, localeValues$1 as a6, arrayType as a7, getTransitionGroupProps as a8, textEllipsis as a9, filterEmptyWithUndefined as aA, isEmptyElement as aB, vNodeType as aC, ExclamationCircleOutlined as aD, CloseCircleOutlined as aE, InfoCircleOutlined as aF, CheckCircleOutlined as aG, useAppStore as aH, useRuntimeConfig as aI, useRuntimeConfigStore as aJ, theme_default as aK, composables_exports as aL, storages as aM, entry as aN, getTransitionDirection as aa, DefaultRenderEmpty as ab, resetIcon as ac, getClass as ad, clearFix as ae, capitalize$1 as af, genFocusOutline as ag, isValid as ah, skipFlattenKey as ai, TinyColor as aj, camelize as ak, toPx as al, InfoCircleFilled as am, useConfigContextInject as an, globalConfigForApi as ao, ConfigProvider as ap, getConfirmLocale as aq, $fetch$2 as ar, useNuxtApp as as, useHttp as at, appDiagnostics as au, en_US_default$1 as av, splitAttrs as aw, zh_CN_default$2 as ax, empty_default as ay, NuxtLink as az, useUserStore as b, useHead$1 as c, api$1 as d, useConfigInject_default as e, flattenChildren as f, getPropsSlot as g, _extends as h, classNames as i, _objectSpread2 as j, getTransitionProps as k, genComponentStyleHook as l, merge as m, navigateTo as n, filterEmpty as o, warning$1 as p, CloseOutlined as q, CheckCircleFilled as r, stringType as s, someType as t, useI18n as u, objectType as v, withInstall as w, anyType as x, booleanType as y, functionType as z };
18943
+ export { useToken$1 as $, resetComponent as A, eventType as B, CloseCircleFilled as C, presetPrimaryColors as D, genFocusStyle as E, sanitizeTag as F, isValidElement as G, isFragment as H, getTransitionName as I, getStyle$1 as J, Keyframe as K, getSlot as L, getEvents as M, contains as N, hasProp as O, PropTypes as P, getComponent as Q, findDOMNode as R, useProvidePortal as S, getOptionProps as T, getMotion$1 as U, Icon as V, useInjectDisabled as W, LoadingOutlined as X, canUseDom as Y, Portal_default as Z, _plugin_vue_export_helper_default as _, useRoute as a, tuple as a0, useProviderSize as a1, useProviderDisabled as a2, useInjectGlobalForm as a3, ExclamationCircleFilled as a4, useLocaleReceiver as a5, localeValues$1 as a6, arrayType as a7, getTransitionGroupProps as a8, textEllipsis as a9, filterEmptyWithUndefined as aA, isEmptyElement as aB, vNodeType as aC, ExclamationCircleOutlined as aD, CloseCircleOutlined as aE, InfoCircleOutlined as aF, CheckCircleOutlined as aG, useAppStore as aH, useSiteConfig as aI, useRuntimeConfig as aJ, useRuntimeConfigStore as aK, theme_default as aL, composables_exports as aM, storages as aN, entry as aO, getTransitionDirection as aa, DefaultRenderEmpty as ab, resetIcon as ac, clearFix as ad, getClass as ae, capitalize$1 as af, genFocusOutline as ag, isValid as ah, skipFlattenKey as ai, TinyColor as aj, camelize as ak, toPx as al, InfoCircleFilled as am, useConfigContextInject as an, globalConfigForApi as ao, ConfigProvider as ap, getConfirmLocale as aq, $fetch$2 as ar, useNuxtApp as as, useHttp as at, appDiagnostics as au, en_US_default$1 as av, splitAttrs as aw, zh_CN_default$2 as ax, empty_default as ay, NuxtLink as az, useUserStore as b, useHead$1 as c, api$1 as d, useConfigInject_default as e, flattenChildren as f, getPropsSlot as g, _extends as h, classNames as i, _objectSpread2 as j, getTransitionProps as k, genComponentStyleHook as l, merge as m, navigateTo as n, filterEmpty as o, warning$1 as p, CloseOutlined as q, CheckCircleFilled as r, stringType as s, someType as t, useI18n as u, objectType as v, withInstall as w, anyType as x, booleanType as y, functionType as z };
19001
18944
  //# sourceMappingURL=entry.mjs.map