agentworkshop 0.7.40 → 0.7.44

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 (327) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B8uy9iRW.js +1 -0
  3. package/.output/public/_nuxt/BGTYYQH-.js +1 -0
  4. package/.output/public/_nuxt/BUmHEJ77.js +2 -0
  5. package/.output/public/_nuxt/BY7YrV_D.js +1 -0
  6. package/.output/public/_nuxt/Bqcgz95s.js +18 -0
  7. package/.output/public/_nuxt/C7UlqPeD.js +1 -0
  8. package/.output/public/_nuxt/CTmDn-YP.js +1 -0
  9. package/.output/public/_nuxt/Cs8pVeVG.js +1 -0
  10. package/.output/public/_nuxt/{DcsCcxp4.js → D98NH8kG.js} +1 -1
  11. package/.output/public/_nuxt/DKySmNPI.js +14 -0
  12. package/.output/public/_nuxt/Di0NY_ht.js +1 -0
  13. package/.output/public/_nuxt/Du9v6qGB.js +1 -0
  14. package/.output/public/_nuxt/{C_iYD-EB.js → EHlEMRii.js} +1 -1
  15. package/.output/public/_nuxt/Eke1fs-U.js +1 -0
  16. package/.output/public/_nuxt/{DeJykBFf.js → H0BcqZtT.js} +1 -1
  17. package/.output/public/_nuxt/{C4oW1HsE.js → HSYEkkce.js} +1 -1
  18. package/.output/public/_nuxt/{DZshyNLa.js → IREZ1eC2.js} +1 -1
  19. package/.output/public/_nuxt/{D_OTvQza.js → J9oU00D1.js} +1 -1
  20. package/.output/public/_nuxt/OmpTerminalPanel.BxR5-lvi.css +1 -0
  21. package/.output/public/_nuxt/SSyAPaHc.js +1 -0
  22. package/.output/public/_nuxt/TownView.li4EMQxK.css +1 -0
  23. package/.output/public/_nuxt/VdLk4jLE2.js +1 -0
  24. package/.output/public/_nuxt/_id_.BhsXoEuk.css +1 -0
  25. package/.output/public/_nuxt/_id_.DQyj-WKN.css +1 -0
  26. package/.output/public/_nuxt/{_wsId_.B4WiqkIS.css → _wsId_.CTx-BlfF.css} +1 -1
  27. package/.output/public/_nuxt/aShsv_rG.js +19 -0
  28. package/.output/public/_nuxt/{yF0aYMF1.js → aesgXKSr.js} +3 -3
  29. package/.output/public/_nuxt/agents.B21nUEUX.css +1 -0
  30. package/.output/public/_nuxt/aml.ekTjxFkf.css +1 -0
  31. package/.output/public/_nuxt/builds/latest.json +1 -1
  32. package/.output/public/_nuxt/builds/meta/b5506ef0-f48e-4f14-a6c0-d65e505d0b09.json +1 -0
  33. package/.output/public/_nuxt/ca4TJ3Op.js +1 -0
  34. package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +1 -0
  35. package/.output/public/_nuxt/daq.BdVmoIfe.css +1 -0
  36. package/.output/public/_nuxt/dcw.DCgyzpWV.css +1 -0
  37. package/.output/public/_nuxt/{default.J32SgqFY.css → default.Bh3L2HU8.css} +1 -1
  38. package/.output/public/_nuxt/lHAxdSsj.js +1 -0
  39. package/.output/public/_nuxt/pages.j9rzRocr.css +1 -0
  40. package/.output/public/_nuxt/plugins.DhiZbHU8.css +1 -0
  41. package/.output/public/_nuxt/settings.BRx9rIDg.css +1 -0
  42. package/.output/public/_nuxt/teams.BLlOPB_Z.css +1 -0
  43. package/.output/public/_nuxt/tokens.De8xzszn.css +1 -0
  44. package/.output/public/_nuxt/workshop.D1jFNkrn.css +1 -0
  45. package/.output/server/chunks/_/nitro.mjs +1058 -830
  46. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  47. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs → OmpTerminalPanel-CVvxpsF7.mjs} +15 -15
  48. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs.map → OmpTerminalPanel-CVvxpsF7.mjs.map} +1 -1
  49. package/.output/server/chunks/build/{TownView-BuLAsmpR.mjs → TownView-CJ6IsDCc.mjs} +229 -228
  50. package/.output/server/chunks/build/{TownView-BuLAsmpR.mjs.map → TownView-CJ6IsDCc.mjs.map} +1 -1
  51. package/.output/server/chunks/build/{_id_-BU1wfOID.mjs → _id_-CVD_H0ir.mjs} +149 -147
  52. package/.output/server/chunks/build/_id_-CVD_H0ir.mjs.map +1 -0
  53. package/.output/server/chunks/build/{_id_-BYsEua57.mjs → _id_-CtxMb3qp.mjs} +47 -46
  54. package/.output/server/chunks/build/_id_-CtxMb3qp.mjs.map +1 -0
  55. package/.output/server/chunks/build/{_wsId_-BxlDcJHg.mjs → _wsId_-DpY3T-md.mjs} +516 -446
  56. package/.output/server/chunks/build/{_wsId_-BxlDcJHg.mjs.map → _wsId_-DpY3T-md.mjs.map} +1 -1
  57. package/.output/server/chunks/build/{agents-CLQqJF2y.mjs → agents-DsCkuXDV.mjs} +49 -46
  58. package/.output/server/chunks/build/agents-DsCkuXDV.mjs.map +1 -0
  59. package/.output/server/chunks/build/{aml-_7FdFL2p.mjs → aml-CT0xKGKI.mjs} +122 -105
  60. package/.output/server/chunks/build/aml-CT0xKGKI.mjs.map +1 -0
  61. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +117 -0
  62. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
  63. package/.output/server/chunks/build/{channel-templates-p6SZNjlM.mjs → channel-templates-Dla9FbYa.mjs} +49 -37
  64. package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs.map +1 -0
  65. package/.output/server/chunks/build/{daq-cgyjKmJu.mjs → daq-DWWSKGAV.mjs} +95 -93
  66. package/.output/server/chunks/build/daq-DWWSKGAV.mjs.map +1 -0
  67. package/.output/server/chunks/build/{dcw-CoTxBlAZ.mjs → dcw-CT8k17_E.mjs} +46 -45
  68. package/.output/server/chunks/build/dcw-CT8k17_E.mjs.map +1 -0
  69. package/.output/server/chunks/build/{default-BE4r0FZN.mjs → default-D3525UFX.mjs} +16 -15
  70. package/.output/server/chunks/build/{default-BE4r0FZN.mjs.map → default-D3525UFX.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{logs-BSOeZwwI.mjs → logs--dByNyhw.mjs} +2 -2
  72. package/.output/server/chunks/build/{logs-BSOeZwwI.mjs.map → logs--dByNyhw.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs → monitor-Dh2Kvaq5.mjs} +2 -2
  74. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs.map → monitor-Dh2Kvaq5.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{pages-DFxjn9Xa.mjs → pages-BHcSBM2D.mjs} +26 -20
  76. package/.output/server/chunks/build/pages-BHcSBM2D.mjs.map +1 -0
  77. package/.output/server/chunks/build/{plugins-lGlUr1lj.mjs → plugins-BNgIi61W.mjs} +23 -17
  78. package/.output/server/chunks/build/plugins-BNgIi61W.mjs.map +1 -0
  79. package/.output/server/chunks/build/{settings-Ddd1qx2Z.mjs → settings-ipYBDWdn.mjs} +45 -44
  80. package/.output/server/chunks/build/settings-ipYBDWdn.mjs.map +1 -0
  81. package/.output/server/chunks/build/{teams-MEDLZdMn.mjs → teams-5lx-CwFa.mjs} +47 -44
  82. package/.output/server/chunks/build/teams-5lx-CwFa.mjs.map +1 -0
  83. package/.output/server/chunks/build/{tokens-C7fTM5C2.mjs → tokens-q-IDT8Io.mjs} +73 -53
  84. package/.output/server/chunks/build/tokens-q-IDT8Io.mjs.map +1 -0
  85. package/.output/server/chunks/build/{town-qMPql9Se.mjs → town-QJWB5wng.mjs} +5 -4
  86. package/.output/server/chunks/build/town-QJWB5wng.mjs.map +1 -0
  87. package/.output/server/chunks/build/{useDaqStream-CIBaiGAl.mjs → useDaqStream-DfCFpb3p.mjs} +9 -3
  88. package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +1 -0
  89. package/.output/server/chunks/build/{useDcwStream-CBbiYnWe.mjs → useDcwStream-UPiX-3iO.mjs} +11 -2
  90. package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +1 -0
  91. package/.output/server/chunks/build/{workshop-BL5bhfs0.mjs → workshop-BIlCj_ZP.mjs} +45 -45
  92. package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs.map +1 -0
  93. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  94. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  95. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
  96. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  97. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  98. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
  99. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
  100. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  101. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  102. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  103. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  104. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  105. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  106. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  107. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -1
  108. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  109. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +3 -1
  110. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  111. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  112. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  113. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  114. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  115. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  116. package/.output/server/chunks/routes/renderer.mjs +2 -2
  117. package/.output/server/chunks/virtual/entry.mjs +639 -88
  118. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  119. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  120. package/.output/server/package.json +1 -1
  121. package/README-zh.md +16 -6
  122. package/README.md +17 -7
  123. package/app/components/AppHeader.vue +961 -959
  124. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  125. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  126. package/app/components/workshop/AgentLanesView.vue +998 -998
  127. package/app/components/workshop/ArtifactCard.vue +120 -120
  128. package/app/components/workshop/AssetLibrary.vue +452 -452
  129. package/app/components/workshop/ChannelSessionList.vue +812 -804
  130. package/app/components/workshop/CommandPalette.vue +269 -269
  131. package/app/components/workshop/Composer.vue +827 -827
  132. package/app/components/workshop/DeviceTwinPanel.vue +643 -643
  133. package/app/components/workshop/EventBlock.vue +602 -602
  134. package/app/components/workshop/FileSelectorModal.vue +188 -188
  135. package/app/components/workshop/InspectorPanel.vue +301 -301
  136. package/app/components/workshop/MemoryPanel.vue +364 -364
  137. package/app/components/workshop/MultiChannelView.vue +189 -189
  138. package/app/components/workshop/TaskBoardView.vue +686 -686
  139. package/app/components/workshop/TaskInspectorDrawer.vue +390 -390
  140. package/app/components/workshop/TranscriptTimeline.vue +601 -601
  141. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  142. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  143. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  144. package/app/components/workshop/blocks/ClusterMember.vue +95 -93
  145. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  146. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  147. package/app/components/workshop/blocks/ClusterStatus.vue +149 -147
  148. package/app/components/workshop/blocks/ClusterTool.vue +158 -158
  149. package/app/components/workshop/terminal/OmpTerminalPanel.vue +1011 -1011
  150. package/app/components/workshop/town/TownView.vue +56 -56
  151. package/app/composables/workshop/useDaqStream.ts +7 -4
  152. package/app/composables/workshop/useDcwStream.ts +8 -2
  153. package/app/middleware/locale-cookie.global.ts +22 -0
  154. package/app/pages/aml/index.vue +24 -2
  155. package/app/pages/daq/[id].vue +20 -16
  156. package/app/pages/daq/index.vue +2310 -2307
  157. package/app/pages/dcw/[id].vue +26 -23
  158. package/app/pages/dcw/index.vue +3 -3
  159. package/app/pages/index.vue +987 -981
  160. package/app/pages/plugins/index.vue +317 -311
  161. package/app/pages/settings.vue +1564 -1562
  162. package/app/pages/tokens.vue +15 -15
  163. package/app/pages/workshop/agents.vue +612 -609
  164. package/app/pages/workshop/channel-templates.vue +18 -11
  165. package/app/pages/workshop/index.vue +668 -668
  166. package/app/pages/workshop/teams.vue +743 -740
  167. package/app/pages/workshop/w/[wsId].vue +704 -704
  168. package/app/plugins/locale-restore.client.ts +16 -1
  169. package/app/utils/builtin-catalog.ts +104 -0
  170. package/config.yml +170 -170
  171. package/docs/cli.en.md +2 -2
  172. package/docs/cli.md +2 -2
  173. package/docs/full-test-plan.md +2 -3
  174. package/docs/plugins.en.md +33 -1
  175. package/docs/plugins.md +29 -1
  176. package/docs/sdk.en.md +1 -1
  177. package/docs/sdk.md +1 -1
  178. package/i18n/locales/en.ts +293 -35
  179. package/i18n/locales/zh-CN.ts +265 -7
  180. package/package.json +4 -3
  181. package/scripts/_dbg-perms-e2e.mjs +132 -109
  182. package/scripts/_demo-agentteam-capture.mjs +278 -0
  183. package/scripts/_e2e-ui-functional.mjs +371 -0
  184. package/scripts/_i18n-en-cjk-scan.mjs +28 -0
  185. package/scripts/_i18n-en-verify.mjs +107 -0
  186. package/scripts/_i18n-extra-checks.mjs +53 -0
  187. package/scripts/_i18n-scan-hardcoded.mjs +180 -0
  188. package/scripts/_i18n-verify-keys.mjs +50 -0
  189. package/scripts/_loop-biax-campaign.mjs +130 -0
  190. package/scripts/_sweep-button-contrast.mjs +87 -0
  191. package/scripts/test-serial-bridge.mjs +418 -0
  192. package/scripts/ui/e2e-interactive.mjs +328 -0
  193. package/scripts/ui/record-demo.mjs +557 -0
  194. package/scripts/ui/seed-industrial-demo.mjs +171 -0
  195. package/server/api/workshop/daq/index.get.ts +3 -1
  196. package/server/api/workshop/dcw/index.get.ts +3 -0
  197. package/server/plugins/aw-plugins.ts +9 -7
  198. package/server/plugins-builtin/diag-bridge/index.mjs +608 -661
  199. package/server/plugins-builtin/rag-bridge/index.mjs +57 -133
  200. package/server/plugins-builtin/serial-bridge/client.mjs +210 -0
  201. package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -0
  202. package/server/plugins-builtin/serial-bridge/i18n.json +62 -0
  203. package/server/plugins-builtin/serial-bridge/index.mjs +247 -0
  204. package/server/plugins-builtin/serial-bridge/lib.mjs +208 -0
  205. package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -0
  206. package/server/services/workshop/daq/daq-controller.ts +7 -2
  207. package/server/services/workshop/daq/drivers.ts +89 -3
  208. package/server/services/workshop/dcw/dcw-controller.ts +5 -1
  209. package/server/services/workshop/dcw/drivers.ts +85 -2
  210. package/server/services/workshop/dcw/plugin-bridge.ts +45 -0
  211. package/server/services/workshop/plugins/host.mjs +30 -0
  212. package/shared/daq-protocol.ts +15 -0
  213. package/.output/public/_nuxt/88GOowgO2.js +0 -1
  214. package/.output/public/_nuxt/BOt2SP4z.js +0 -1
  215. package/.output/public/_nuxt/BP-NyKVG.js +0 -18
  216. package/.output/public/_nuxt/BXxH0UQE.js +0 -1
  217. package/.output/public/_nuxt/BsROmY89.js +0 -1
  218. package/.output/public/_nuxt/ClILjvWH.js +0 -1
  219. package/.output/public/_nuxt/CzOCSGLe.js +0 -1
  220. package/.output/public/_nuxt/D8qvkfyY.js +0 -1
  221. package/.output/public/_nuxt/DCn7QZ5N.js +0 -2
  222. package/.output/public/_nuxt/DS8qj8EL.js +0 -1
  223. package/.output/public/_nuxt/DUjW5Yq5.js +0 -1
  224. package/.output/public/_nuxt/Dihnimlk.js +0 -19
  225. package/.output/public/_nuxt/Dqw1lpr-.js +0 -1
  226. package/.output/public/_nuxt/Dr9v6C0f.js +0 -14
  227. package/.output/public/_nuxt/Du9ZJtnj.js +0 -1
  228. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +0 -1
  229. package/.output/public/_nuxt/TownView.f-YOdXRs.css +0 -1
  230. package/.output/public/_nuxt/_id_.CM4bIgKY.css +0 -1
  231. package/.output/public/_nuxt/_id_.bNV69Dtf.css +0 -1
  232. package/.output/public/_nuxt/agents.ZD0rVdHE.css +0 -1
  233. package/.output/public/_nuxt/aml.BN8ZEW4h.css +0 -1
  234. package/.output/public/_nuxt/builds/meta/f4707884-7cf4-4a31-80d2-e3d72b73745f.json +0 -1
  235. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +0 -1
  236. package/.output/public/_nuxt/daq.B0D3dPAc.css +0 -1
  237. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +0 -1
  238. package/.output/public/_nuxt/pages.D7aSDlUI.css +0 -1
  239. package/.output/public/_nuxt/plugins.sb4nDGqr.css +0 -1
  240. package/.output/public/_nuxt/qr6R6Ha1.js +0 -1
  241. package/.output/public/_nuxt/settings.BTgR-NiE.css +0 -1
  242. package/.output/public/_nuxt/teams.CxnxKVVs.css +0 -1
  243. package/.output/public/_nuxt/tokens.BFY7qv4f.css +0 -1
  244. package/.output/public/_nuxt/workshop.CR_QzeAN.css +0 -1
  245. package/.output/server/chunks/build/_id_-BU1wfOID.mjs.map +0 -1
  246. package/.output/server/chunks/build/_id_-BYsEua57.mjs.map +0 -1
  247. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +0 -1
  248. package/.output/server/chunks/build/aml-_7FdFL2p.mjs.map +0 -1
  249. package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs.map +0 -1
  250. package/.output/server/chunks/build/daq-cgyjKmJu.mjs.map +0 -1
  251. package/.output/server/chunks/build/dcw-CoTxBlAZ.mjs.map +0 -1
  252. package/.output/server/chunks/build/pages-DFxjn9Xa.mjs.map +0 -1
  253. package/.output/server/chunks/build/plugins-lGlUr1lj.mjs.map +0 -1
  254. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +0 -1
  255. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +0 -1
  256. package/.output/server/chunks/build/tokens-C7fTM5C2.mjs.map +0 -1
  257. package/.output/server/chunks/build/town-qMPql9Se.mjs.map +0 -1
  258. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs.map +0 -1
  259. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs.map +0 -1
  260. package/.output/server/chunks/build/workshop-BL5bhfs0.mjs.map +0 -1
  261. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.continue.json +0 -1
  262. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.json +0 -1
  263. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/054bb4bc4e4217a2ab0b0c6b663747214a9af464f5568ea60e784704e340bb0f.source +0 -153
  264. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/0554197c3d2bac203a1f5c48a5d52495d1336db1bd7aa4f4c19875810363e684.source +0 -153
  265. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/05c203d12a954fffba942e1d626e3f5fec05b18a5aef2bac003b7884a4b77406.source +0 -431
  266. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/145a6e6ba811af35aed31e0cc3211f53706a14980fa069ee9e3c1591139f96f0.source +0 -180
  267. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/1ae0fb281f97899c025e368ca73f41349b01fb5f85b19e08d7ebccff49095ed5.source +0 -112
  268. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/20ee9967aa0541c516db7575bdd4a1a745939bc7016bd10d7635903113edb8ec.source +0 -227
  269. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/233751843aeba9d4c5263f275b8102de00443c06f286918cbd23e0b6729e01aa.source +0 -131
  270. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/263c2e05b425e5c322e60c6475279f963bab3a873eb521b21df7fec935a46597.source +0 -160
  271. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/2ac5eaac28eaaee2178c4b32014df8e732f9dd432a285a872f5b7f31c1395fa4.source +0 -157
  272. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/33a0db0d2d95d2c11d0720090458e5fba1425376f5ceb5b422d1d3471be3226b.source +0 -348
  273. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/359e474ae83db35e4615d3728de6bf694b64d4dce9b536730a3b6518f9c0494a.source +0 -296
  274. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/37a4c3c31c4b70f6b719c53d1e9c4fcba603f31adfdd11bb6ef9f0d094923c56.source +0 -285
  275. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/461feca1c14a695eb8b0f17a6f95fe97eeceabc0510faaea4ba6d25bde147d8d.source +0 -217
  276. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/4cfadbda8591f29d5e1e230dc000e701b756e850441b3900fb596a4d2f6e98c2.source +0 -301
  277. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/50ca2810cf0b248c96948994c0c404531bbad6e553166b6816b3b03bfa0f75d2.source +0 -151
  278. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/52d9e8cb591a9ae86e238c3620a610cd386717bee222c0f37b25b2ac7e523dc4.source +0 -135
  279. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/6c87daafa4c006560a954636a97333f6123153c9d34d96203f7ee3a14e556357.source +0 -156
  280. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/77bc47854b577900621cacf1697f81fa2bc005af129d37614a97a3441c08f99f.source +0 -72
  281. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/7bbb789d3a527817118cf8399ed1861d6a962ade10878fd07223435d333a7089.source +0 -469
  282. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/86b7c1daafc8b60ba9982dde5bf1bcc74265709483c176e71f23ec6fc267451f.source +0 -259
  283. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/8df66d62bd41984d0970e8236882080c5085ac937d07a29779463d6a03b37c76.source +0 -97
  284. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/9962f2d1b3a85137bd40cc835725600b39f89ee02a27c06b2e0402e1eafde115.source +0 -277
  285. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a1090ea066b792cb201739f4994e37bf7c12f52e805239a1eab87f18a537f266.source +0 -171
  286. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a5241091650134d0919897e086a606a3846c8b2b54f8b4c84a8696c145ac3e9e.source +0 -425
  287. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/af19fa4c6e34d5540028be4b17600161283af3a2a2dfc61a3fdc0834436a0c14.source +0 -99
  288. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3713d78e2b2f93905ff6be8d58a8d0a2f42dea322eb67c987fda22ff6a084d5.source +0 -325
  289. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3849943c3aff102d1af815631fc843a2a52c17646a4b04696ece323e483bbec.source +0 -332
  290. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/bac735a3803a6650b7f1eb8f587e6dc5c68ea055000c3c99a11789438b78e837.source +0 -43
  291. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d32c24d61eb8b33c73e5a8fc7e4dc7ef437aed238ee4371c2b00617e6104090a.source +0 -154
  292. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d5170dc9a9879fda04fdf91d8a110d4efb6787ee38dda596d4da899883d36a72.source +0 -531
  293. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/dc59bcd7bb397be63ba2f2c3fec23f3782dcb17d2d75a9981eeced761f33eb32.source +0 -439
  294. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/eb5ff8cf66b92aec7bf6726781d8df74faa2b030c3aaac17d6b00c1fc04c9b32.source +0 -323
  295. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f10615a6fae18436e70d1201b2d44fdae3174a3aa7bb4db97dea1b3ed291d721.source +0 -433
  296. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f36d3e271668bc1260c2823542d22dbf1d0f7041ff16b1ac175bce2256e582ca.source +0 -280
  297. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f94449380af09f31ac352152007146a75cc80bae8d6411ffe57b2c56f933b0ff.source +0 -117
  298. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/fe4dfd81178fd6b648335f6405d9ede71319aebde796008e50db21f8adf44c99.source +0 -160
  299. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/ffb4e3aa548cfdadabaa44ab599f9b6a3ca6288176a2cc7a4b2fc2a12b5fb848.source +0 -101
  300. package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +0 -14
  301. package/scripts/_dbg-audit-all-pages.mjs +0 -43
  302. package/scripts/_dbg-daq-frames-e2e.mjs +0 -118
  303. package/scripts/_dbg-daq-rowstyle-verify.mjs +0 -112
  304. package/scripts/_dbg-hitl-timeout-e2e.mjs +0 -93
  305. package/scripts/_dbg-live-line-e2e.mjs +0 -279
  306. package/scripts/_dbg-minimal-omp.mjs +0 -77
  307. package/scripts/_dbg-mode-nav.mjs +0 -173
  308. package/scripts/_dbg-real-scenario-timeline.log +0 -55
  309. package/scripts/_dbg-team-repro.mjs +0 -76
  310. package/scripts/_dbg-town-agents-probe.mjs +0 -60
  311. package/scripts/_dbg-visual-acceptance.mjs +0 -63
  312. package/scripts/_townview_style.css +0 -1185
  313. package/scripts/_townview_template.html +0 -1215
  314. package/server/data/agent-node-bindings.json +0 -554
  315. package/server/data/daq-templates.json +0 -16
  316. package/server/data/daqs.json +0 -7464
  317. package/server/data/dcw-lines.json +0 -1787
  318. package/server/data/dcw-products.json +0 -1626
  319. package/server/data/dcw-recipes.json +0 -4672
  320. package/server/data/dcw-rollback.json +0 -20754
  321. package/server/data/dcw-runs.json +0 -6354
  322. package/server/data/dcw-templates.json +0 -146
  323. package/server/data/dcw-writes.json +0 -15650
  324. package/server/data/dcws.json +0 -9033
  325. package/server/data/device-twins.json +0 -133
  326. package/server/data/line-runs.json +0 -322
  327. package/server/data/scene-layouts.json +0 -277
@@ -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 { bh as createHooks, n as createError, bi as sanitizeStatusCode, bj as klona, S as getRequestHeader, bk as isEqual$1, bl as setCookie, bm as getCookie, bn as deleteCookie, bo as $fetch, bp as baseURL, k as getRequestHeaders, bq as defu, br as getRequestProtocol, bs as appendResponseHeader } from '../_/nitro.mjs';
2
+ import { bi as createHooks, n as createError, bj as sanitizeStatusCode, bk as klona, S as getRequestHeader, bl as isEqual$1, bm as setCookie, bn as getCookie, bo as deleteCookie, bp as $fetch, bq as baseURL, k as getRequestHeaders, br as defu, bs as getRequestProtocol, bt 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';
@@ -9386,18 +9386,29 @@ Object.assign(Object.create(null), {});
9386
9386
  var pageIslandRoutes = Object.assign(Object.create(null), {});
9387
9387
  //#endregion
9388
9388
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs
9389
- var globalMiddleware = [defineNuxtRouteMiddleware(async (to) => {
9390
- let __temp, __restore;
9391
- if (!to.meta?.validate) return;
9392
- const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
9393
- if (result === true) return;
9394
- return createError$1({
9395
- fatal: false,
9396
- status: result && (result.status || result.statusCode) || 404,
9397
- statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,
9398
- data: { path: to.fullPath }
9399
- });
9400
- }), /* @__PURE__ */ defineNuxtRouteMiddleware((to) => {})];
9389
+ var globalMiddleware = [
9390
+ defineNuxtRouteMiddleware(async (to) => {
9391
+ let __temp, __restore;
9392
+ if (!to.meta?.validate) return;
9393
+ const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
9394
+ if (result === true) return;
9395
+ return createError$1({
9396
+ fatal: false,
9397
+ status: result && (result.status || result.statusCode) || 404,
9398
+ statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,
9399
+ data: { path: to.fullPath }
9400
+ });
9401
+ }),
9402
+ defineNuxtRouteMiddleware(async () => {
9403
+ let __temp, __restore;
9404
+ const saved = useCookie("aw.locale").value;
9405
+ if (saved !== "en" && saved !== "zh-CN") return;
9406
+ const $i18n = useNuxtApp().$i18n;
9407
+ if (!$i18n) return;
9408
+ if (saved !== $i18n.locale.value) [__temp, __restore] = executeAsync(() => $i18n.setLocale(saved)), __temp = await __temp, __restore();
9409
+ }),
9410
+ /* @__PURE__ */ defineNuxtRouteMiddleware((to) => {})
9411
+ ];
9401
9412
  var namedMiddleware = {};
9402
9413
  //#endregion
9403
9414
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs
@@ -9406,64 +9417,64 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9406
9417
  name: "workshop-w-wsId",
9407
9418
  path: "/workshop/w/:wsId()",
9408
9419
  meta: { layout: "default" },
9409
- component: () => import('../build/_wsId_-BxlDcJHg.mjs')
9420
+ component: () => import('../build/_wsId_-DpY3T-md.mjs')
9410
9421
  },
9411
9422
  {
9412
9423
  name: "workshop-agents",
9413
9424
  path: "/workshop/agents",
9414
9425
  meta: { layout: "default" },
9415
- component: () => import('../build/agents-CLQqJF2y.mjs')
9426
+ component: () => import('../build/agents-DsCkuXDV.mjs')
9416
9427
  },
9417
9428
  {
9418
9429
  name: "workshop-channel-templates",
9419
9430
  path: "/workshop/channel-templates",
9420
9431
  meta: { layout: "default" },
9421
- component: () => import('../build/channel-templates-p6SZNjlM.mjs')
9432
+ component: () => import('../build/channel-templates-Dla9FbYa.mjs')
9422
9433
  },
9423
9434
  {
9424
9435
  name: "workshop-teams",
9425
9436
  path: "/workshop/teams",
9426
9437
  meta: { layout: "default" },
9427
- component: () => import('../build/teams-MEDLZdMn.mjs')
9438
+ component: () => import('../build/teams-5lx-CwFa.mjs')
9428
9439
  },
9429
9440
  {
9430
9441
  name: "daq-id",
9431
9442
  path: "/daq/:id()",
9432
9443
  meta: { layout: "default" },
9433
- component: () => import('../build/_id_-BYsEua57.mjs')
9444
+ component: () => import('../build/_id_-CtxMb3qp.mjs')
9434
9445
  },
9435
9446
  {
9436
9447
  name: "dcw-id",
9437
9448
  path: "/dcw/:id()",
9438
- component: () => import('../build/_id_-BU1wfOID.mjs')
9449
+ component: () => import('../build/_id_-CVD_H0ir.mjs')
9439
9450
  },
9440
9451
  {
9441
9452
  name: "aml",
9442
9453
  path: "/aml",
9443
9454
  meta: { layout: "default" },
9444
- component: () => import('../build/aml-_7FdFL2p.mjs')
9455
+ component: () => import('../build/aml-CT0xKGKI.mjs')
9445
9456
  },
9446
9457
  {
9447
9458
  name: "daq",
9448
9459
  path: "/daq",
9449
9460
  meta: { layout: "default" },
9450
- component: () => import('../build/daq-cgyjKmJu.mjs')
9461
+ component: () => import('../build/daq-DWWSKGAV.mjs')
9451
9462
  },
9452
9463
  {
9453
9464
  name: "dcw",
9454
9465
  path: "/dcw",
9455
- component: () => import('../build/dcw-CoTxBlAZ.mjs')
9466
+ component: () => import('../build/dcw-CT8k17_E.mjs')
9456
9467
  },
9457
9468
  {
9458
9469
  name: "logs",
9459
9470
  path: "/logs",
9460
- component: () => import('../build/logs-BSOeZwwI.mjs')
9471
+ component: () => import('../build/logs--dByNyhw.mjs')
9461
9472
  },
9462
9473
  {
9463
9474
  name: "monitor",
9464
9475
  path: "/monitor",
9465
9476
  meta: { layout: "default" },
9466
- component: () => import('../build/monitor-C0okQaXz.mjs')
9477
+ component: () => import('../build/monitor-Dh2Kvaq5.mjs')
9467
9478
  },
9468
9479
  {
9469
9480
  name: "permissions",
@@ -9473,18 +9484,18 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9473
9484
  {
9474
9485
  name: "plugins",
9475
9486
  path: "/plugins",
9476
- component: () => import('../build/plugins-lGlUr1lj.mjs')
9487
+ component: () => import('../build/plugins-BNgIi61W.mjs')
9477
9488
  },
9478
9489
  {
9479
9490
  name: "settings",
9480
9491
  path: "/settings",
9481
- component: () => import('../build/settings-Ddd1qx2Z.mjs')
9492
+ component: () => import('../build/settings-ipYBDWdn.mjs')
9482
9493
  },
9483
9494
  {
9484
9495
  name: "tokens",
9485
9496
  path: "/tokens",
9486
9497
  meta: { layout: "default" },
9487
- component: () => import('../build/tokens-C7fTM5C2.mjs')
9498
+ component: () => import('../build/tokens-q-IDT8Io.mjs')
9488
9499
  },
9489
9500
  {
9490
9501
  name: "town",
@@ -9493,7 +9504,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9493
9504
  layout: "town",
9494
9505
  title: "Digital Twin"
9495
9506
  },
9496
- component: () => import('../build/town-qMPql9Se.mjs')
9507
+ component: () => import('../build/town-QJWB5wng.mjs')
9497
9508
  },
9498
9509
  {
9499
9510
  name: "users",
@@ -9504,12 +9515,12 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9504
9515
  name: "workshop",
9505
9516
  path: "/workshop",
9506
9517
  meta: { layout: "default" },
9507
- component: () => import('../build/workshop-BL5bhfs0.mjs')
9518
+ component: () => import('../build/workshop-BIlCj_ZP.mjs')
9508
9519
  },
9509
9520
  {
9510
9521
  name: "index",
9511
9522
  path: "/",
9512
- component: () => import('../build/pages-DFxjn9Xa.mjs')
9523
+ component: () => import('../build/pages-BHcSBM2D.mjs')
9513
9524
  }
9514
9525
  ];
9515
9526
  //#endregion
@@ -12961,6 +12972,12 @@ registerLocaleFallbacker(fallbackWithLocaleChain);
12961
12972
  //#region i18n/locales/zh-CN.ts
12962
12973
  var zh_CN_default$1 = {
12963
12974
  common: {
12975
+ stop: "停止",
12976
+ add: "添加",
12977
+ remove: "移除",
12978
+ create: "创建",
12979
+ revoke: "吊销",
12980
+ close: "关闭",
12964
12981
  light: "亮色",
12965
12982
  dark: "暗色",
12966
12983
  confirm: "确定",
@@ -13383,6 +13400,17 @@ var zh_CN_default$1 = {
13383
13400
  hitlSubmit: "提交"
13384
13401
  },
13385
13402
  agents: {
13403
+ hMock: "mock(测试)",
13404
+ hOmp: "omp(真实 LLM)",
13405
+ badConfigJson: "config 不是合法 JSON",
13406
+ toPrivate: "点击转为私有",
13407
+ toPublic: "点击公开(全员可读可用)",
13408
+ builtinNoEdit: "内置模板不可修改",
13409
+ ownerOnlyEdit: "仅属主可修改",
13410
+ builtinNoDelete: "内置模板不可删除",
13411
+ editTpl: "编辑模板",
13412
+ newTpl: "新建模板",
13413
+ configLabel: "config(JSON;mock 可配 delayMs)",
13386
13414
  notInstalled: "未安装",
13387
13415
  installLink: "前往官网安装 ↗",
13388
13416
  harnessInprocess: "进程内引擎 · 恒可用",
@@ -13413,6 +13441,10 @@ var zh_CN_default$1 = {
13413
13441
  k1xxabaf024: "已转为私有"
13414
13442
  },
13415
13443
  ctpl: {
13444
+ visPublic: "公开",
13445
+ visPrivate: "私有",
13446
+ newTplTitle: "新建 Channel 模板",
13447
+ leadTplLabel: "Lead 模板(实例化时克隆为 channel lead)",
13416
13448
  kefkfnl030: "已实例化:{p0}(成员 {p1} 个),到工作区挂载使用",
13417
13449
  k1f54iqd029: "模板中心",
13418
13450
  k117jag9001: "删除模板?(已实例化的 Channel 不受影响)",
@@ -13445,6 +13477,7 @@ var zh_CN_default$1 = {
13445
13477
  k1oxfuqj028: "已删除模板"
13446
13478
  },
13447
13479
  daq: {
13480
+ unitPh: "如 %RH",
13448
13481
  k1bge46t118: "创建节点",
13449
13482
  k1b3dtga119: "保存模板",
13450
13483
  k3v957u120: "{p0} 运行中:{p1} · {p2}",
@@ -13637,6 +13670,14 @@ var zh_CN_default$1 = {
13637
13670
  k1evt004: "暂无事件,等待操作…"
13638
13671
  },
13639
13672
  daqDetail: {
13673
+ bucket1s: "1s 桶",
13674
+ bucket5s: "5s 桶",
13675
+ bucket15s: "15s 桶(默认)",
13676
+ bucket30s: "30s 桶",
13677
+ bucket60s: "1min 桶",
13678
+ calDecoderTip: "采集标定 decoder:物理值 = scale × PLC采集值 + offset",
13679
+ calScaleTip: "decode 斜率(≠0)",
13680
+ calOffsetTip: "decode 截距",
13640
13681
  kfrm0001: "图像帧画廊",
13641
13682
  kfrm0002: "多点轮廓帧",
13642
13683
  kfrm0003: "暂无帧(产线运行中才有数据)",
@@ -13745,6 +13786,8 @@ var zh_CN_default$1 = {
13745
13786
  }
13746
13787
  },
13747
13788
  dcw: {
13789
+ codePh: "如 MOTOR · I",
13790
+ unitPh: "如 A",
13748
13791
  k1qidbpy061: "缺省 {p0}(按创建序)",
13749
13792
  k1gp649b062: "{p0}(节点 {p1}/产品 {p2}/配方 {p3} 将解除挂载)",
13750
13793
  k7xq2mfd063: "删除产线「{p0}」?",
@@ -13816,6 +13859,21 @@ var zh_CN_default$1 = {
13816
13859
  k1b2ioko019: "产线名称"
13817
13860
  },
13818
13861
  dcwDetail: {
13862
+ stAck: "已 ACK",
13863
+ startNeedRecipe: "开跑前必须先设定配方",
13864
+ startTip: "下发配方参数并开始打标数据采集",
13865
+ codePh: "如 MOTOR · I",
13866
+ unitPh: "如 A",
13867
+ mockPlc: "Mock 模拟 PLC",
13868
+ linearCalOpt: "线性标定:PLC值 = (物理值 - offset) / scale",
13869
+ calScaleTip: "decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆",
13870
+ calOffsetTip: "decoder 截距",
13871
+ pauseCtrlTip: "暂停该节点控制:下发将被拒绝",
13872
+ enableCtrlTip: "开启该节点控制:恢复可下发",
13873
+ pausedTip: "当前节点暂停:开启控制后方可设定",
13874
+ writeTip: "下发设定值",
13875
+ noDaqTip: "本产线暂无数采节点",
13876
+ manualTag: "手动",
13819
13877
  staleDeleted: "已删除",
13820
13878
  staleDisabled: "已停用",
13821
13879
  staleUnbound: "已取消绑定",
@@ -14041,6 +14099,13 @@ var zh_CN_default$1 = {
14041
14099
  kszv5sq136: "窗口内无匹配数据(检查产品/配方/时间范围;仅产线运行中的样本带产线标识)"
14042
14100
  },
14043
14101
  teams: {
14102
+ selectChannel: "选择目标 Channel",
14103
+ toPrivate: "点击转为私有",
14104
+ toPublic: "点击公开(全员可部署)",
14105
+ deployToChannel: "部署到 Channel…",
14106
+ joinOk: "加入",
14107
+ deployOk: "部署",
14108
+ targetChannelLabel: "目标 Channel(须无 lead 冲突)",
14044
14109
  k6ljhyv029: "添加成员 · {p0}",
14045
14110
  k1c0o6oe030: "部署 · {p0}",
14046
14111
  kh90glh031: "已部署 {p0} 个实例到 Channel",
@@ -14082,6 +14147,20 @@ var zh_CN_default$1 = {
14082
14147
  k1plugon047: "插件开关…"
14083
14148
  },
14084
14149
  tokens: {
14150
+ maskBackTip: "已显示明文,点击眼睛遮回",
14151
+ maskPreview: "掩码预览",
14152
+ maskBack: "遮回",
14153
+ revealPlain: "查看明文",
14154
+ copied: "已复制",
14155
+ copyPlain: "复制明文",
14156
+ revokeCurrentWarn: "吊销当前会话 token 将退出登录",
14157
+ revokeWarn: "吊销后立即失效",
14158
+ createdTitle: "Token 已创建",
14159
+ hidePlain: "隐藏明文",
14160
+ showPlain: "显示明文",
14161
+ copy: "复制",
14162
+ usage: "用法:Authorization: Bearer <token>",
14163
+ renameTitle: "重命名 Token",
14085
14164
  k1upppaw026: "每个 token 可独立吊销;明文存档于服务端,可随时查看复制",
14086
14165
  k3p0p44027: "标签:",
14087
14166
  kj3mklm028: "(未命名)",
@@ -14119,6 +14198,21 @@ var zh_CN_default$1 = {
14119
14198
  k1uc5mup004: "正在接入 AgentWorkShop 孪生空间(订阅实时事件流)…"
14120
14199
  },
14121
14200
  wsHome: {
14201
+ adminCreated: "管理员账号创建成功:{p0} 已进入系统",
14202
+ nameRequired: "Workspace 名称必填",
14203
+ setupTitle: "创建管理员账号",
14204
+ setupSub: "系统尚无任何用户:首个注册的账号将成为管理员,创建后自动进入系统。",
14205
+ normalSub: "全局用户系统统管身份;每个用户可管理多个 API Token,管理 API 需用户 token(Authorization: Bearer)。",
14206
+ tabLogin: "账号登录",
14207
+ tabRegAdmin: "注册管理员",
14208
+ tabRegUser: "注册新用户",
14209
+ setupCta: "创建管理员并进入",
14210
+ tabToken: "Token 登录",
14211
+ delWs: "删除 Workspace",
14212
+ emptyTitle: "从一条产线、一个 Agent 开始",
14213
+ emptySub: "Workspace 是频道与任务的容器 —— 建立第一个工作区后,你的 Agent 团队即可上线作业。",
14214
+ emptyCta: "新建第一个 Workspace",
14215
+ createEnterOk: "创建并进入",
14122
14216
  k1mbatbh030: "注册成功:{p0};登录 token 已保存",
14123
14217
  kwixbdl031: "已登录:{p0}",
14124
14218
  newWs: "新建 Workspace",
@@ -14153,6 +14247,11 @@ var zh_CN_default$1 = {
14153
14247
  k3n5sd7024: "已删除"
14154
14248
  },
14155
14249
  wsView: {
14250
+ inspector: "检查器",
14251
+ unknownWs: "未知 Workspace",
14252
+ channelListTitle: "频道会话列表",
14253
+ a2aTitle: "A2A RPC/SSE 调试器",
14254
+ loadingWs: "正在加载 Workspace…",
14156
14255
  kqwckjr001: "快捷键 1-5 直切视图",
14157
14256
  k1tsy2e4002: "收起/展开 会话栏",
14158
14257
  k1tx0ppf003: "收起/展开 检查器",
@@ -14173,6 +14272,12 @@ var zh_CN_default$1 = {
14173
14272
  ctpl: "Channel 模板中心"
14174
14273
  },
14175
14274
  a2aRpcDebugger: {
14275
+ methodSse: "tasks/sendSubscribe(SSE 流)",
14276
+ methodToken: "message/send(需 token)",
14277
+ badParams: "params 不是合法 JSON",
14278
+ title: "A2A RPC / SSE 调试器",
14279
+ tokenPh: "Bearer token(message/send 需要;留空匿名)",
14280
+ outputEmpty: "(输出;sendSubscribe 将逐条渲染 SSE 事件)",
14176
14281
  k6hcbxi001: "拖拽调节抽屉宽度",
14177
14282
  k34cz76002: "目标 agent 实例",
14178
14283
  k1bqe2pj003: "参数模板",
@@ -14183,6 +14288,16 @@ var zh_CN_default$1 = {
14183
14288
  k1vryfv008: "选择目标 agent"
14184
14289
  },
14185
14290
  agentInspectorDrawer: {
14291
+ tabStream: "独立输出流",
14292
+ tabMemory: "记忆",
14293
+ grpWorking: "执行中",
14294
+ grpQueued: "待执行",
14295
+ grpDone: "已完成",
14296
+ swOn: "启用",
14297
+ swOff: "停用",
14298
+ okRemove: "移除",
14299
+ prioImmediate: "即时",
14300
+ prioQueued: "排队",
14186
14301
  k3ypnl022: "完成",
14187
14302
  k16t80ax023: "聚焦主时间线",
14188
14303
  k6hcbxi001: "拖拽调节抽屉宽度",
@@ -14208,22 +14323,30 @@ var zh_CN_default$1 = {
14208
14323
  k1y2jrsr021: "消息已注入"
14209
14324
  },
14210
14325
  agentLanesView: {
14326
+ cloneFail: "模板克隆失败{p0}",
14327
+ leadExistsShort: "(已有 lead,不能再添加 lead)",
14328
+ deployFail: "编组部署失败{p0}",
14329
+ leadExistsChannel: "(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)",
14330
+ hitlStopTitle: "HITL 停止该 Agent 运行时",
14331
+ namePh: "如 db-migrator / test-writer",
14332
+ ompFull: "omp(完整 LLM agent)",
14333
+ tplCloneLabel: "选择 Agent 模板(克隆 name/harness/config 为独立实例)",
14334
+ tplDisabled: " · 已停用",
14335
+ withLead: ",含 lead",
14336
+ roleHarnessLabel: "角色 / harness",
14337
+ syspromptLabel: "场景系统提示词(systemPromptPrefix)",
14211
14338
  k1wn2vmt036: "omp 进程 PID {p0} · harness 会话状态",
14212
14339
  k1l029kf037: "中断成员 {p0} 的运行时?执行中任务将中止,成员保留",
14213
14340
  kt3n27m038: "移除成员 {p0}?其排队任务将自动回收",
14214
14341
  k7xt1y6039: "拖拽调节 {p0} 泳道宽度",
14215
14342
  k1qcmxyu040: "{p0}({p1} 名成员{p2})",
14216
14343
  k19j5rho041: "编辑成员 {p0}",
14217
- kg2slvf042: "(已有 lead,不能再添加 lead)",
14218
- kpr6a3f043: "(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)",
14219
14344
  k21xjz2044: "成员 {p0} 已更新(运行时将按新提示词重载)",
14220
14345
  k3jmrw1045: "更新失败: {p0}",
14221
14346
  k1g5ykr3046: "成员 {p0} 已添加(等待 agent.member 事件回流对齐)",
14222
14347
  k1j97j74047: "添加成员失败: {p0}",
14223
14348
  kk3uwzo048: "已克隆模板添加 {p0} 成员 {p1}(等待事件回流对齐)",
14224
- k1rrfz5h049: "模板克隆失败{'$'}{'{'}text.includes('LEAD_EXISTS') ? t('agentLanesView.kg2slvf042') : ",
14225
14349
  k1gslqf9050: "编组 {p0} 已部署({p1} 名成员,等待事件回流对齐)",
14226
- k6nzyd3051: "编组部署失败{'$'}{'{'}text.includes('LEAD_EXISTS') ? t('agentLanesView.kpr6a3f043') : ",
14227
14350
  k1n3o03a052: "成员 {p0} 已移除",
14228
14351
  k13dsp10053: "移除成员失败: {p0}",
14229
14352
  kcpbv47054: "已中断成员 {p0} 的运行时",
@@ -14265,12 +14388,14 @@ var zh_CN_default$1 = {
14265
14388
  k1tjd5ab035: "请选择要部署的 AgentTeam"
14266
14389
  },
14267
14390
  artifactCard: {
14391
+ empty: "(空)",
14268
14392
  k3yu62003: "展开",
14269
14393
  k3y694004: "复制",
14270
14394
  k40p82001: "收起",
14271
14395
  k3n6o1m002: "已复制"
14272
14396
  },
14273
14397
  assetLibrary: {
14398
+ badModelFile: "仅支持 .glb/.gltf/.obj/.fbx 模型文件",
14274
14399
  katn7lo015: "拖到孪生场景即生成设备实例 · {p0}",
14275
14400
  k8nv3or016: "已上传 → {p0}",
14276
14401
  k1hhga4h014: "确认上传",
@@ -14289,6 +14414,22 @@ var zh_CN_default$1 = {
14289
14414
  k8n918k013: "已删除模型文件"
14290
14415
  },
14291
14416
  channelSessionList: {
14417
+ nameRequired: "Channel 名称必填",
14418
+ defaultSuffix: "(默认)",
14419
+ tplCenterTitle: "Channel 模板中心",
14420
+ newChannelTitle: "新建 Channel",
14421
+ unmountTitle: "移出 workspace",
14422
+ mountFromTpl: "从 Channel 模板挂载",
14423
+ pfxBuiltin: "内置 · ",
14424
+ pfxPublic: "公开 · ",
14425
+ nameLabel: "Channel 名称",
14426
+ wsPh1: "留空 = data/workspaces/<channelId>",
14427
+ llmDefaultLabel: "默认模型(可选;留空用各 Harness 默认)",
14428
+ catalogLoading: "目录加载中…",
14429
+ effortPh: "effort(可选)",
14430
+ variantPh: "variant(可选)",
14431
+ builtinTag: "内置",
14432
+ saveTplOk: "保存模板",
14292
14433
  kjmldih035: "设置 {p0}",
14293
14434
  k1yurooi036: "移出 {p0}",
14294
14435
  kfe4pzq037: "工作目录:{p0}(点击复制路径)",
@@ -14337,18 +14478,38 @@ var zh_CN_default$1 = {
14337
14478
  k1plugsrc046: "未显式配置(默认全启用);首次切换后按行生效"
14338
14479
  },
14339
14480
  clusterArtifact: {
14481
+ view: "查看",
14340
14482
  kyh87lw001: "交付物正文与上方回复一致",
14341
14483
  k49les002: "隐藏"
14342
14484
  },
14343
- clusterError: { k40p82001: "收起" },
14485
+ clusterError: {
14486
+ showAll: "全部 {p0} 条",
14487
+ k40p82001: "收起"
14488
+ },
14344
14489
  clusterLife: {
14490
+ done: "完成",
14345
14491
  k1xthifv001: "非状态事件",
14346
14492
  k498bf002: "队列",
14347
14493
  k3pi5z1003: "次状态"
14348
14494
  },
14349
- clusterMember: { k40p82001: "收起" },
14350
- clusterMemory: { k40p82001: "收起" },
14351
- clusterOther: { k40p82001: "收起" },
14495
+ clusterMember: {
14496
+ showAll: "全部 {p0} 条",
14497
+ byUser: "用户",
14498
+ vAdded: "新增成员 {p0}",
14499
+ vUpdated: "更新成员 {p0}",
14500
+ vDisabled: "禁用成员 {p0}",
14501
+ vRemoved: "移除成员 {p0}",
14502
+ reason: ",理由:{p0}",
14503
+ k40p82001: "收起"
14504
+ },
14505
+ clusterMemory: {
14506
+ showAll: "全部 {p0} 条",
14507
+ k40p82001: "收起"
14508
+ },
14509
+ clusterOther: {
14510
+ showAll: "全部 {p0} 条",
14511
+ k40p82001: "收起"
14512
+ },
14352
14513
  clusterRoute: {
14353
14514
  k12448jn010: "人类发送者:{p0}",
14354
14515
  khsfl59011: "查看 {p0}",
@@ -14364,7 +14525,10 @@ var zh_CN_default$1 = {
14364
14525
  k1cxjc4m008: "实时注入",
14365
14526
  k1bka5dz009: "协作消息"
14366
14527
  },
14367
- clusterStatus: { k1fpy8te001: "思考 / 中间输出" },
14528
+ clusterStatus: {
14529
+ empty: "(空)",
14530
+ k1fpy8te001: "思考 / 中间输出"
14531
+ },
14368
14532
  clusterStream: { kpk9wff001: "内容并入了后续回复块(不再重复渲染)" },
14369
14533
  clusterTask: {
14370
14534
  kfwdcd4008: "状态代码 {p0}",
@@ -14376,8 +14540,14 @@ var zh_CN_default$1 = {
14376
14540
  k4u7566006: "失败·待改派",
14377
14541
  k3n5vg5007: "已取消"
14378
14542
  },
14379
- clusterTool: { k40p82001: "收起" },
14543
+ clusterTool: {
14544
+ expandAll: "展开全部 {p0} 个调用",
14545
+ k40p82001: "收起"
14546
+ },
14380
14547
  commandPalette: {
14548
+ gotoTeams: "前往:AgentTeam 编组库",
14549
+ viewLanes: "视图:Agent lanes",
14550
+ actA2a: "动作:A2A RPC/SSE 调试器",
14381
14551
  k1nz14ux013: "切换 Channel:{p0}",
14382
14552
  k1d8xtez014: "时间线过滤:{p0}",
14383
14553
  k1nn6i83001: "输入命令…(导航/视图/Channel/过滤/动作)",
@@ -14394,6 +14564,11 @@ var zh_CN_default$1 = {
14394
14564
  k1tm54il012: "动作:聚焦任务输入框"
14395
14565
  },
14396
14566
  composer: {
14567
+ loopIntervalRange: "loop 间隔需设置为 1 到 86400 秒",
14568
+ defaultLeadTitle: "未 {'@'} 指定:任务自动路由 lead 调度;{'@'} 某成员可直发",
14569
+ chipHint: "输入 {'@'} 提及成员 · ⌘/Ctrl+Enter 发送",
14570
+ seconds: "秒",
14571
+ sendTitle: "发送(⌘/Ctrl+Enter)",
14397
14572
  kl3604i033: "直发 {'@'}{p0}",
14398
14573
  k1cxjc4m034: "实时注入",
14399
14574
  k1d2idgj035: "任务已下发 → {'@'}{p0}({p1})",
@@ -14432,6 +14607,10 @@ var zh_CN_default$1 = {
14432
14607
  k15mwzt7031: "输入消息/通知({'@'} 成员指定目标,缺省 lead)… ⌘/Ctrl+Enter 发送"
14433
14608
  },
14434
14609
  deviceTwinPanel: {
14610
+ armDelete: "再次点击确认删除该设备实例",
14611
+ delDevice: "删除该设备实例",
14612
+ winRecipe: "当前运行配方工艺窗口",
14613
+ winRange: "节点全局量程",
14435
14614
  k9r7d4e030: "PLC 当前读数(实际值)",
14436
14615
  kq2jssk008: "配方工艺窗口",
14437
14616
  k1iwj796009: "节点量程",
@@ -14445,6 +14624,11 @@ var zh_CN_default$1 = {
14445
14624
  k44653007: "确认"
14446
14625
  },
14447
14626
  eventBlock: {
14627
+ stBusy: "运行中",
14628
+ stStopped: "已停止",
14629
+ stIdle: "空闲",
14630
+ copied: "已复制",
14631
+ copyAll: "复制全文",
14448
14632
  kc918hn001: "需要回应或人工知悉",
14449
14633
  kcugdph002: "与 delta 增量重复的内容已合并为一段",
14450
14634
  kknq700003: "引用到输入框",
@@ -14453,12 +14637,20 @@ var zh_CN_default$1 = {
14453
14637
  k3xk4t006: "去重"
14454
14638
  },
14455
14639
  fileSelectorModal: {
14640
+ title: "选择工作目录",
14641
+ pickHere: "选择此目录",
14642
+ pathPh: "输入绝对路径跳转(如 D:\\\\projects\\\\my-app)",
14643
+ go: "跳转",
14456
14644
  kvwnnvn001: "..(上一级)",
14457
14645
  k268o2o002: "(无子目录;可直接「选择此目录」使用当前位置)",
14458
14646
  k1rt80dq003: "双击目录 = 直接选用;选定路径将作为团队工作目录(Agent 作业 cwd),不存在时会自动创建。",
14459
14647
  kz99pgv004: "目录读取失败"
14460
14648
  },
14461
14649
  inspectorPanel: {
14650
+ tabMembers: "成员",
14651
+ tabTasks: "任务",
14652
+ tabMemory: "记忆",
14653
+ tabStats: "统计",
14462
14654
  k1tqitzl008: "成员同步中…",
14463
14655
  kks0y5h009: "任务同步中…",
14464
14656
  k12oip5c010: "成功率 {p0}% / 均耗 {p1}s / 失败 {p2}",
@@ -14485,6 +14677,12 @@ var zh_CN_default$1 = {
14485
14677
  k1sf0ymy002: "正在执行 ·"
14486
14678
  },
14487
14679
  memoryPanel: {
14680
+ tokenAuto: "成员 token 已自动装配",
14681
+ tokenManual: "自动装配失败,可手动填入成员 token",
14682
+ tokenPh: "Bearer token(成员身份,兜底手填)",
14683
+ searchPh: "混合检索记忆(FTS+向量,与 agent search_memory 同源)…",
14684
+ writeOk: "写入",
14685
+ dedupLabel: "dedupKey(可选,幂等)",
14488
14686
  k1du3379001: "成员身份",
14489
14687
  k1bbee8p002: "写入记忆",
14490
14688
  k419s4003: "标题",
@@ -14509,10 +14707,10 @@ var zh_CN_default$1 = {
14509
14707
  k3o5eky002: "执行:"
14510
14708
  },
14511
14709
  multiChannelView: {
14710
+ a2aMessage: "文本 {p0}",
14711
+ a2aArtifact: "交付 {p0}",
14512
14712
  k3wcox005: "任务",
14513
14713
  kvfx0mh006: "拖拽调节 {p0} 列宽",
14514
- kp9ap3k007: "消息 {p0}> {'|'} undefined)?.[0]?.text ?? '').slice(0, 30)}",
14515
- k1688yr4008: "交付 {p0} {'|'} undefined)?.name ?? '')}",
14516
14714
  kfvue7n009: "记忆 {p0}",
14517
14715
  khq39oe010: "成员 {p0} {p1}",
14518
14716
  k16wopr9011: "错误 {p0}",
@@ -14529,6 +14727,8 @@ var zh_CN_default$1 = {
14529
14727
  k1pevwxl004: "(暂无事件)"
14530
14728
  },
14531
14729
  taskBoardView: {
14730
+ emptySubNew: "在下方 Composer 提交首个任务(首行标题,支持 goal / loop / pipeline 模式)",
14731
+ emptySubSync: "任务快照对齐后自动呈现",
14532
14732
  k8m7hm6020: "路由理由:{p0}",
14533
14733
  k1f9c17l019: "正在同步",
14534
14734
  k43pyn001: "看板",
@@ -14551,6 +14751,9 @@ var zh_CN_default$1 = {
14551
14751
  k1dx9ysj018: "打开详情"
14552
14752
  },
14553
14753
  taskInspectorDrawer: {
14754
+ fallbackTitle: "任务详情",
14755
+ failReason: "失败原因",
14756
+ tabTimeline: "状态时间线",
14554
14757
  kkp77tf015: "交付物({p0})",
14555
14758
  khnua62016: "子任务({p0})",
14556
14759
  kxj74io017: "原始内容({p0} parts)",
@@ -14570,6 +14773,18 @@ var zh_CN_default$1 = {
14570
14773
  ke7bh8u014: "已重新投递执行"
14571
14774
  },
14572
14775
  townView: {
14776
+ saveLayoutTip: "把全部设备的位置/朝向/缩放写入数据库",
14777
+ readonlyTip: "运行模式只读",
14778
+ daqPauseTip: "暂停全部采集:停止所有启用节点的采样(节点级启停独立)",
14779
+ daqResumeTip: "恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)",
14780
+ chPlaced: "已在场景中,点击定位",
14781
+ chDragHint: "拖拽到场景放置",
14782
+ viewTop: "俯视 · TOP",
14783
+ viewFront: "前视 · FRONT",
14784
+ viewSide: "侧视 · SIDE",
14785
+ deviceName: "设备名称",
14786
+ transformBlender: "变换 · BLENDER",
14787
+ unboundTip: "未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具",
14573
14788
  k1k6wg8j185: "设备实例",
14574
14789
  k44c2n186: "离线",
14575
14790
  k1w6xehu187: "{p0} · {p1} · 拖到设备旁自动绑定,量程 {p2} ~ {p3} {p4}",
@@ -14797,6 +15012,8 @@ var zh_CN_default$1 = {
14797
15012
  krotip182: "运行模式只读"
14798
15013
  },
14799
15014
  transcriptTimeline: {
15015
+ syncLag: "连接中断,重连后将自动对齐缺失事件",
15016
+ none: "无",
14800
15017
  k44c2n024: "离线",
14801
15018
  kglov3b025: "最后数据更新:{p0}",
14802
15019
  k3wwxl026: "刚刚",
@@ -14870,11 +15087,11 @@ var zh_CN_default$1 = {
14870
15087
  hitlReject: "拒绝"
14871
15088
  },
14872
15089
  ompTerminalPanel: {
15090
+ switchTarget: "── 切换目标 · {p0} ──",
14873
15091
  k14jk3nu001: " {p0}· 对话框已撤销({p1}){p2}",
14874
15092
  k68kkpc002: "{p0}── 已接入 omp 进程 PID {p1}(会话重放 {p2} 帧)──{p3}",
14875
15093
  k59zj91003: "{p0}✗ 终端连接未就绪,命令未发送{p1}",
14876
- kvzhi95004: "{p0}✔ HITL 已应答:{p1}{p2}",
14877
- ke67kwf005: "{p0}── 切换目标 · {'$'}{'{'}props.pid ? "
15094
+ kvzhi95004: "{p0}✔ HITL 已应答:{p1}{p2}"
14878
15095
  },
14879
15096
  plugins: {
14880
15097
  title: "插件管理",
@@ -14945,6 +15162,12 @@ var zh_CN_default$1 = {
14945
15162
  lost: "页面走失了"
14946
15163
  },
14947
15164
  aml: {
15165
+ blockerVenv: "训练环境(./aml/.venv)尚未创建:请在「运行环境」面板点击「创建训练环境」",
15166
+ blockerPython: "Python 解释器不可用",
15167
+ rootSourceEnv: "环境变量 AW_AML_DIR 指定",
15168
+ rootSourceRepo: "项目检出根(./aml)",
15169
+ rootSourceHome: "用户配置根(~/.AgentWorkShop/aml)",
15170
+ rootSourceCwd: "当前工作目录(./aml)",
14948
15171
  k1amlx001: "AML 自动建模",
14949
15172
  k1amlx002: "数据集快照 → 训练作业 → 实验门禁 → 模型注册全链路;作业进度经 WS 实时帧推送,平台门禁判定为准。",
14950
15173
  k1amlx003: "Python 运行时",
@@ -15157,13 +15380,77 @@ var zh_CN_default$1 = {
15157
15380
  k1plugon044: "默认全启用(尚未单独配置)",
15158
15381
  k1plugon045: "已单独配置",
15159
15382
  k1plugon046: "插件已全部停用",
15160
- k1plugon047: "插件开关…"
15383
+ k1plugon047: "插件开关…",
15384
+ descLineSentinel: "产线哨兵:数采越限告警 + 心跳 + 产线生命周期跟踪",
15385
+ descOpsNotifier: "写控与产线事件回声:滚动记录最近事件 + 查询 API + 客户端通知",
15386
+ descSampleInsight: "SDK 示例:数采采样计数 + 统计 API + 客户端徽标",
15387
+ descDiagBridge: "深度诊断桥接:导出 DAQ 时序快照 CSV,发起 industrial-deep-diagnostic 深度诊断并跟踪状态,完成后报告自动入知识库。",
15388
+ descRagBridge: "rag-knowledge 知识库桥接:工业知识检索/经验沉淀/文档入库三工具",
15389
+ descSerialBridge: "串口通信协议桥:Modbus RTU(RS-485/232)与 ASCII 行协议读驱动、带回读校验的写驱动、串口枚举/探针 API 与前端面板。"
15390
+ },
15391
+ tplCatalog: {
15392
+ "temp-tc": "温度传感器",
15393
+ "pressure-tx": "压力变送器",
15394
+ "tension-cell": "张力传感器",
15395
+ "line-encoder": "速度编码器",
15396
+ "vision-cam": "视觉检测相机",
15397
+ "power-meter": "电参采集器",
15398
+ "thickness-scan": "测厚扫描仪",
15399
+ "ccd-image": "CCD 视觉相机",
15400
+ "temp-sp": "温度设定器",
15401
+ "speed-sp": "速度设定器",
15402
+ "tension-sp": "张力设定器",
15403
+ "pressure-sp": "压力设定器"
15404
+ },
15405
+ builtinSeeds: {
15406
+ tplDefaultLead: "开发主管",
15407
+ tplDefaultBackend: "后端工程师",
15408
+ tplDefaultFrontend: "前端工程师",
15409
+ tplDefaultQa: "测试工程师",
15410
+ tplDefaultDocs: "文档撰写",
15411
+ tplScenarioPaymentLead: "支付网关交付主管(场景:高并发支付)",
15412
+ tplAmlLead: "AML 首席数据科学家",
15413
+ tplAmlData: "AML 数据工程师",
15414
+ tplAmlTrainer: "AML 训练工程师",
15415
+ tplAmlEval: "AML 评测工程师",
15416
+ teamDefaultFullstack: "全栈交付组",
15417
+ teamDefaultDocs: "文档维护组",
15418
+ teamAmlShadow: "AML 影子建模团队",
15419
+ chtplDefaultFullstack: "全栈交付通道",
15420
+ chtplDefaultFullstackDesc: "内置模板:主管带队 + 后端/前端/测试,适合常规交付任务",
15421
+ chtplDefaultFullstackScenario: "团队按主管调度协作交付;每个子任务完成后由主管复核,产出统一沉淀为 artifact。",
15422
+ chtplDefaultReview: "文档评审通道",
15423
+ chtplDefaultReviewDesc: "内置模板:文档撰写 + 测试复核,适合文档、报告与评审场景",
15424
+ chtplDefaultReviewScenario: "以文档产出与质量复核为主线;撰写完成后由复核角色检查并反馈修改意见。",
15425
+ chtplPresetOpticalFilm: "光学薄膜涂布产线优化组",
15426
+ chtplPresetOpticalFilmDesc: "工业场景预设:涂布产线数字孪生优化 —— 生产主管 + 工艺工程师 + 数据分析师,面向烘箱温控与涂层质量闭环",
15427
+ chtplPresetOpticalFilmScenario: "光学薄膜涂布产线:烘箱多段温控与涂层质量闭环;数据先行、窗口内小步幅、单变量调整、复测闭环。",
15428
+ chtplPresetExtrusion: "薄膜挤出流延产线优化组",
15429
+ chtplPresetExtrusionDesc: "工业场景预设:挤出流延产线数字孪生优化 —— 生产主管 + 工艺工程师 + 数据分析师,面向熔体压力/温度耦合控制",
15430
+ chtplPresetExtrusionScenario: "薄膜挤出流延产线:熔体压力/温度强耦合下的膜厚质量控制;数据先行、窗口内小步幅、单变量调整、复测闭环。",
15431
+ mKnight: "灰羽骑士",
15432
+ mMage: "紫晶法师",
15433
+ mBot: "青枢机械",
15434
+ mHero3d: "标准员工模型",
15435
+ mHero3dHint: "默认员工 3D 模型",
15436
+ mYangyang: "杨杨(走路)",
15437
+ mYangyangHint: "自定义角色:骨骼走路动画(剪辑 WALK;文件较大,建议少量绑定)",
15438
+ mDevice3d: "工业泵设备",
15439
+ mDevice3dHint: "数字孪生实体模型(拖入场景生成设备)",
15440
+ mDeviceFallbackHint: "设备实体(拖入场景生成数字孪生)",
15441
+ mScannedCharacterHint: "角色 3D 模型(在频道成员管理中设置)"
15161
15442
  }
15162
15443
  };
15163
15444
  //#endregion
15164
15445
  //#region i18n/locales/en.ts
15165
15446
  var en_default = {
15166
15447
  common: {
15448
+ stop: "Stop",
15449
+ add: "Add",
15450
+ remove: "Remove",
15451
+ create: "Create",
15452
+ revoke: "Revoke",
15453
+ close: "Close",
15167
15454
  light: "Light",
15168
15455
  dark: "Dark",
15169
15456
  confirm: "OK",
@@ -15586,6 +15873,17 @@ var en_default = {
15586
15873
  hitlSubmit: "Submit"
15587
15874
  },
15588
15875
  agents: {
15876
+ hMock: "mock (testing)",
15877
+ hOmp: "omp (real LLM)",
15878
+ badConfigJson: "config is not valid JSON",
15879
+ toPrivate: "Click to make private",
15880
+ toPublic: "Click to make public (readable and usable by everyone)",
15881
+ builtinNoEdit: "Built-in templates cannot be modified",
15882
+ ownerOnlyEdit: "Only the owner can modify",
15883
+ builtinNoDelete: "Built-in templates cannot be deleted",
15884
+ editTpl: "Edit template",
15885
+ newTpl: "New template",
15886
+ configLabel: "config (JSON; mock supports delayMs)",
15589
15887
  notInstalled: "not installed",
15590
15888
  installLink: "Open official site to install ↗",
15591
15889
  harnessInprocess: "In-process engine · always available",
@@ -15616,6 +15914,10 @@ var en_default = {
15616
15914
  k1xxabaf024: "Switched to private"
15617
15915
  },
15618
15916
  ctpl: {
15917
+ visPublic: "Public",
15918
+ visPrivate: "Private",
15919
+ newTplTitle: "New channel template",
15920
+ leadTplLabel: "Lead template (cloned as the channel lead when instantiated)",
15619
15921
  kefkfnl030: "Instantiated: {p0} ({p1} members); mount it from the workspace",
15620
15922
  k1f54iqd029: "Template Hub",
15621
15923
  k117jag9001: "Delete template? (Instantiated Channels are not affected)",
@@ -15648,6 +15950,7 @@ var en_default = {
15648
15950
  k1oxfuqj028: "Template deleted"
15649
15951
  },
15650
15952
  daq: {
15953
+ unitPh: "e.g. %RH",
15651
15954
  k1bge46t118: "Create Node",
15652
15955
  k1b3dtga119: "Save Template",
15653
15956
  k3v957u120: "{p0} running: {p1} · {p2}",
@@ -15676,7 +15979,7 @@ var en_default = {
15676
15979
  k427eu088: "Consumed",
15677
15980
  k3w8go089: "Dropped",
15678
15981
  k3wusd090: "Stored",
15679
- k48oi091: "位",
15982
+ k48oi091: "decimal places",
15680
15983
  k4118o092: "Samples",
15681
15984
  k1ukoy0v093: "Go to Line Management",
15682
15985
  k1ld43ur094: "Reconnecting…",
@@ -15840,6 +16143,14 @@ var en_default = {
15840
16143
  k1evt004: "No events yet — waiting for activity…"
15841
16144
  },
15842
16145
  daqDetail: {
16146
+ bucket1s: "1s bucket",
16147
+ bucket5s: "5s bucket",
16148
+ bucket15s: "15s bucket (default)",
16149
+ bucket30s: "30s bucket",
16150
+ bucket60s: "1min bucket",
16151
+ calDecoderTip: "Collection calibration decoder: physical = scale × PLC raw + offset",
16152
+ calScaleTip: "decode slope (≠0)",
16153
+ calOffsetTip: "decode intercept",
15843
16154
  kfrm0001: "Image frame gallery",
15844
16155
  kfrm0002: "Profile frames",
15845
16156
  kfrm0003: "No frames yet (data flows only while the line is running)",
@@ -15902,52 +16213,54 @@ var en_default = {
15902
16213
  k1rfrshint001: "Trend auto-pull interval (ms); empty or 0 = follow server default (daq.query.displayIntervalMs), min {p0}ms"
15903
16214
  },
15904
16215
  logs: {
15905
- title: "运维日志",
15906
- sub: "全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询",
15907
- live: "实时",
15908
- liveHint: "WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)",
16216
+ title: "Ops Log",
16217
+ sub: "One unified record of every operation — what controls were written, what users and agents did; query isolated by line/product/recipe",
16218
+ live: "Live",
16219
+ liveHint: "Receives operation events over WS (summary rendering only; full details in the table below)",
15909
16220
  all: "All",
15910
16221
  fLine: "Line",
15911
16222
  fProduct: "Product",
15912
- fSource: "来源",
15913
- fKind: "分类",
15914
- fKeyword: "关键词",
15915
- fKeywordPh: "搜索摘要/操作/操作者…",
16223
+ fSource: "Source",
16224
+ fKind: "Category",
16225
+ fKeyword: "Keyword",
16226
+ fKeywordPh: "Search summary/action/actor…",
15916
16227
  query: "Query",
15917
16228
  reset: "Reset",
15918
16229
  thTime: "Time",
15919
- thActor: "操作者",
15920
- thSummary: "事件摘要",
15921
- thScope: "归属(产线/产品/Recipe)",
16230
+ thActor: "Actor",
16231
+ thSummary: "Event summary",
16232
+ thScope: "Scope (line/product/recipe)",
15922
16233
  thDetail: "Details",
15923
16234
  expand: "Details",
15924
16235
  fold: "Collapse",
15925
16236
  loading: "Querying…",
15926
- empty: "无匹配日志",
15927
- mSummary: "记录内容",
15928
- mSummaryPh: "如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟",
15929
- mSubmit: "入册",
15930
- mOk: "已入册",
16237
+ empty: "No matching log entries",
16238
+ mSummary: "Entry content",
16239
+ mSummaryPh: "e.g. replaced the heater of oven No.3 and extended holding by 10 min for the current batch",
16240
+ mSubmit: "Record",
16241
+ mOk: "Recorded",
15931
16242
  manual: "Manual entry",
15932
16243
  noDetail: "None",
15933
16244
  mDetail: "Detail (optional)",
15934
16245
  mDetailPh: "Context, handling notes, related ticket… (stored in the log detail)",
15935
16246
  src: {
15936
- user: "用户",
16247
+ user: "User",
15937
16248
  system: "System"
15938
16249
  },
15939
16250
  kind: {
15940
16251
  write: "Apply",
15941
- manual: "人工",
16252
+ manual: "Manual",
15942
16253
  alarm: "Alarm",
15943
16254
  line: "Line",
15944
16255
  recipe: "Recipe",
15945
- rollback: "回退",
16256
+ rollback: "Rollback",
15946
16257
  daq: "DAQ",
15947
16258
  system: "System"
15948
16259
  }
15949
16260
  },
15950
16261
  dcw: {
16262
+ codePh: "e.g. MOTOR · I",
16263
+ unitPh: "e.g. A",
15951
16264
  k1qidbpy061: "Default {p0} (by creation order)",
15952
16265
  k1gp649b062: "{p0} ({p1} nodes / {p2} products / {p3} recipes will be unmounted)",
15953
16266
  k7xq2mfd063: "Delete line \"{p0}\"?",
@@ -16018,6 +16331,21 @@ var en_default = {
16018
16331
  k1bphrb3048: "Delete failed"
16019
16332
  },
16020
16333
  dcwDetail: {
16334
+ stAck: "ACKed",
16335
+ startNeedRecipe: "A recipe must be set before starting",
16336
+ startTip: "Push recipe parameters and start tagged data collection",
16337
+ codePh: "e.g. MOTOR · I",
16338
+ unitPh: "e.g. A",
16339
+ mockPlc: "Mock PLC simulator",
16340
+ linearCalOpt: "Linear calibration: PLC = (physical − offset) / scale",
16341
+ calScaleTip: "decoder slope (≠0): physical = scale × PLC + offset; inverted automatically on write",
16342
+ calOffsetTip: "decoder intercept",
16343
+ pauseCtrlTip: "Pause control on this node: writes will be rejected",
16344
+ enableCtrlTip: "Enable control on this node: writes allowed again",
16345
+ pausedTip: "Node paused: enable control before setting",
16346
+ writeTip: "Write setpoint",
16347
+ noDaqTip: "No DAQ nodes on this line",
16348
+ manualTag: "Manual",
16021
16349
  staleDeleted: "deleted",
16022
16350
  staleDisabled: "disabled",
16023
16351
  staleUnbound: "unbound",
@@ -16243,6 +16571,13 @@ var en_default = {
16243
16571
  kszv5sq136: "No matching data in the window (check product/recipe/time range; only samples from running lines carry the line identity)"
16244
16572
  },
16245
16573
  teams: {
16574
+ selectChannel: "Select a target channel",
16575
+ toPrivate: "Click to make private",
16576
+ toPublic: "Click to make public (deployable by everyone)",
16577
+ deployToChannel: "Deploy to channel…",
16578
+ joinOk: "Join",
16579
+ deployOk: "Deploy",
16580
+ targetChannelLabel: "Target channel (must have no lead conflict)",
16246
16581
  k6ljhyv029: "Add Member · {p0}",
16247
16582
  k1c0o6oe030: "Deploy · {p0}",
16248
16583
  kh90glh031: "Deployed {p0} instances to the Channel",
@@ -16284,6 +16619,20 @@ var en_default = {
16284
16619
  k1plugon047: "Plugin switches…"
16285
16620
  },
16286
16621
  tokens: {
16622
+ maskBackTip: "Plain text shown; click the eye to mask again",
16623
+ maskPreview: "Masked preview",
16624
+ maskBack: "Mask again",
16625
+ revealPlain: "Reveal plain text",
16626
+ copied: "Copied",
16627
+ copyPlain: "Copy plain text",
16628
+ revokeCurrentWarn: "Revoking the current session token will log you out",
16629
+ revokeWarn: "Revocation takes effect immediately",
16630
+ createdTitle: "Token created",
16631
+ hidePlain: "Hide plain text",
16632
+ showPlain: "Show plain text",
16633
+ copy: "Copy",
16634
+ usage: "Usage: Authorization: Bearer <token>",
16635
+ renameTitle: "Rename token",
16287
16636
  k1upppaw026: "Each token can be revoked independently; plaintext is archived server-side and can be viewed/copied anytime",
16288
16637
  k3p0p44027: "Tags:",
16289
16638
  kj3mklm028: "(unnamed)",
@@ -16321,6 +16670,21 @@ var en_default = {
16321
16670
  k1uc5mup004: "Connecting to the AgentWorkShop twin space (subscribing to the live event stream)…"
16322
16671
  },
16323
16672
  wsHome: {
16673
+ adminCreated: "Admin account created: {p0} is now signed in",
16674
+ nameRequired: "Workspace name is required",
16675
+ setupTitle: "Create admin account",
16676
+ setupSub: "The system has no users yet: the first registered account becomes the admin and enters the system automatically.",
16677
+ normalSub: "A global user system manages identity; each user can hold multiple API tokens. Managing the API requires a user token (Authorization: Bearer).",
16678
+ tabLogin: "Account sign-in",
16679
+ tabRegAdmin: "Register admin",
16680
+ tabRegUser: "Register new user",
16681
+ setupCta: "Create admin & enter",
16682
+ tabToken: "Token sign-in",
16683
+ delWs: "Delete workspace",
16684
+ emptyTitle: "Start with one line, one agent",
16685
+ emptySub: "A workspace holds channels and tasks — create your first one and your agent team goes live.",
16686
+ emptyCta: "Create your first workspace",
16687
+ createEnterOk: "Create & enter",
16324
16688
  k1mbatbh030: "Registered: {p0}; sign-in token saved",
16325
16689
  kwixbdl031: "Signed in: {p0}",
16326
16690
  newWs: "New Workspace",
@@ -16355,6 +16719,11 @@ var en_default = {
16355
16719
  k3n5sd7024: "Deleted"
16356
16720
  },
16357
16721
  wsView: {
16722
+ inspector: "Inspector",
16723
+ unknownWs: "Unknown workspace",
16724
+ channelListTitle: "Channel session list",
16725
+ a2aTitle: "A2A RPC/SSE debugger",
16726
+ loadingWs: "Loading workspace…",
16358
16727
  kqwckjr001: "Hotkeys 1-5 switch views",
16359
16728
  k1tsy2e4002: "Collapse/expand session bar",
16360
16729
  k1tx0ppf003: "Collapse/expand inspector",
@@ -16375,6 +16744,12 @@ var en_default = {
16375
16744
  ctpl: "Channel Template Hub"
16376
16745
  },
16377
16746
  a2aRpcDebugger: {
16747
+ methodSse: "tasks/sendSubscribe (SSE stream)",
16748
+ methodToken: "message/send (token required)",
16749
+ badParams: "params is not valid JSON",
16750
+ title: "A2A RPC / SSE Debugger",
16751
+ tokenPh: "Bearer token (required for message/send; leave empty for anonymous)",
16752
+ outputEmpty: "(Output; sendSubscribe renders SSE events as they arrive)",
16378
16753
  k6hcbxi001: "Drag to resize drawer",
16379
16754
  k34cz76002: "Target agent instance",
16380
16755
  k1bqe2pj003: "Parameter Template",
@@ -16385,6 +16760,16 @@ var en_default = {
16385
16760
  k1vryfv008: "Select target agent"
16386
16761
  },
16387
16762
  agentInspectorDrawer: {
16763
+ tabStream: "Independent stream",
16764
+ tabMemory: "Memory",
16765
+ grpWorking: "Running",
16766
+ grpQueued: "Queued",
16767
+ grpDone: "Done",
16768
+ swOn: "On",
16769
+ swOff: "Off",
16770
+ okRemove: "Remove",
16771
+ prioImmediate: "Immediate",
16772
+ prioQueued: "Queued",
16388
16773
  k3ypnl022: "Done",
16389
16774
  k16t80ax023: "Focus main timeline",
16390
16775
  k6hcbxi001: "Drag to resize drawer",
@@ -16410,22 +16795,30 @@ var en_default = {
16410
16795
  k1y2jrsr021: "Message injected"
16411
16796
  },
16412
16797
  agentLanesView: {
16798
+ cloneFail: "Template clone failed{p0}",
16799
+ leadExistsShort: " (a lead already exists; cannot add another lead)",
16800
+ deployFail: "Team deploy failed{p0}",
16801
+ leadExistsChannel: " (channel already has a lead; team lead members conflict — remove the existing lead or pick a team without one)",
16802
+ hitlStopTitle: "HITL-stop this agent runtime",
16803
+ namePh: "e.g. db-migrator / test-writer",
16804
+ ompFull: "omp (full LLM agent)",
16805
+ tplCloneLabel: "Select an agent template (clones name/harness/config as an independent instance)",
16806
+ tplDisabled: " · disabled",
16807
+ withLead: ", with lead",
16808
+ roleHarnessLabel: "Role / harness",
16809
+ syspromptLabel: "Scene system prompt (systemPromptPrefix)",
16413
16810
  k1wn2vmt036: "omp process PID {p0} · harness session state",
16414
16811
  k1l029kf037: "Interrupt member {p0}'s runtime? Running tasks will be aborted; the member is kept",
16415
16812
  kt3n27m038: "Remove member {p0}? Its queued tasks will be reclaimed automatically",
16416
16813
  k7xt1y6039: "Drag to resize the {p0} lane",
16417
16814
  k1qcmxyu040: "{p0} ({p1} members{p2})",
16418
16815
  k19j5rho041: "Edit member {p0}",
16419
- kg2slvf042: "(已有 lead,不能再添加 lead)",
16420
- kpr6a3f043: "(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)",
16421
16816
  k21xjz2044: "Member {p0} updated (runtime reloads with the new prompt)",
16422
16817
  k3jmrw1045: "Update failed: {p0}",
16423
16818
  k1g5ykr3046: "Member {p0} added (waiting for the agent.member event to converge)",
16424
16819
  k1j97j74047: "Add member failed: {p0}",
16425
16820
  kk3uwzo048: "Cloned template member {p0} as {p1} (waiting for event convergence)",
16426
- k1rrfz5h049: "模板克隆失败{'$'}{'{'}text.includes('LEAD_EXISTS') ? t('agentLanesView.kg2slvf042') : ",
16427
16821
  k1gslqf9050: "Group {p0} deployed ({p1} members, waiting for event convergence)",
16428
- k6nzyd3051: "编组部署失败{'$'}{'{'}text.includes('LEAD_EXISTS') ? t('agentLanesView.kpr6a3f043') : ",
16429
16822
  k1n3o03a052: "Member {p0} removed",
16430
16823
  k13dsp10053: "Remove member failed: {p0}",
16431
16824
  kcpbv47054: "Interrupted the runtime of member {p0}",
@@ -16467,12 +16860,14 @@ var en_default = {
16467
16860
  k1tjd5ab035: "Select an AgentTeam to deploy"
16468
16861
  },
16469
16862
  artifactCard: {
16863
+ empty: "(empty)",
16470
16864
  k3yu62003: "Expand",
16471
16865
  k3y694004: "Copy",
16472
16866
  k40p82001: "Collapse",
16473
16867
  k3n6o1m002: "Copied"
16474
16868
  },
16475
16869
  assetLibrary: {
16870
+ badModelFile: "Only .glb/.gltf/.obj/.fbx model files are supported",
16476
16871
  katn7lo015: "Drag onto the twin scene to create a device instance · {p0}",
16477
16872
  k8nv3or016: "Uploaded → {p0}",
16478
16873
  k1hhga4h014: "Confirm Upload",
@@ -16491,6 +16886,22 @@ var en_default = {
16491
16886
  k8n918k013: "Model file deleted"
16492
16887
  },
16493
16888
  channelSessionList: {
16889
+ nameRequired: "Channel name is required",
16890
+ defaultSuffix: " (default)",
16891
+ tplCenterTitle: "Channel template center",
16892
+ newChannelTitle: "New channel",
16893
+ unmountTitle: "Remove from workspace",
16894
+ mountFromTpl: "Mount from channel template",
16895
+ pfxBuiltin: "Built-in · ",
16896
+ pfxPublic: "Public · ",
16897
+ nameLabel: "Channel name",
16898
+ wsPh1: "Empty = data/workspaces/<channelId>",
16899
+ llmDefaultLabel: "Default model (optional; falls back to each harness default)",
16900
+ catalogLoading: "Loading catalog…",
16901
+ effortPh: "effort (optional)",
16902
+ variantPh: "variant (optional)",
16903
+ builtinTag: "Built-in",
16904
+ saveTplOk: "Save as template",
16494
16905
  kjmldih035: "Settings {p0}",
16495
16906
  k1yurooi036: "Move out {p0}",
16496
16907
  kfe4pzq037: "Working directory: {p0} (click to copy path)",
@@ -16539,18 +16950,38 @@ var en_default = {
16539
16950
  k1plugsrc046: "Not explicitly configured (all enabled by default); applies per-row after first toggle"
16540
16951
  },
16541
16952
  clusterArtifact: {
16953
+ view: "View",
16542
16954
  kyh87lw001: "Deliverable body matches the reply above",
16543
16955
  k49les002: "Hide"
16544
16956
  },
16545
- clusterError: { k40p82001: "Collapse" },
16957
+ clusterError: {
16958
+ showAll: "All {p0}",
16959
+ k40p82001: "Collapse"
16960
+ },
16546
16961
  clusterLife: {
16962
+ done: "Done",
16547
16963
  k1xthifv001: "Non-status event",
16548
16964
  k498bf002: "Queue",
16549
16965
  k3pi5z1003: "Sub-state"
16550
16966
  },
16551
- clusterMember: { k40p82001: "Collapse" },
16552
- clusterMemory: { k40p82001: "Collapse" },
16553
- clusterOther: { k40p82001: "Collapse" },
16967
+ clusterMember: {
16968
+ showAll: "All {p0}",
16969
+ byUser: "User",
16970
+ vAdded: "Added member {p0}",
16971
+ vUpdated: "Updated member {p0}",
16972
+ vDisabled: "Disabled member {p0}",
16973
+ vRemoved: "Removed member {p0}",
16974
+ reason: ", reason: {p0}",
16975
+ k40p82001: "Collapse"
16976
+ },
16977
+ clusterMemory: {
16978
+ showAll: "All {p0}",
16979
+ k40p82001: "Collapse"
16980
+ },
16981
+ clusterOther: {
16982
+ showAll: "All {p0}",
16983
+ k40p82001: "Collapse"
16984
+ },
16554
16985
  clusterRoute: {
16555
16986
  k12448jn010: "Human sender: {p0}",
16556
16987
  khsfl59011: "View {p0}",
@@ -16566,7 +16997,10 @@ var en_default = {
16566
16997
  k1cxjc4m008: "Live Injection",
16567
16998
  k1bka5dz009: "Collaboration Message"
16568
16999
  },
16569
- clusterStatus: { k1fpy8te001: "Thinking / intermediate output" },
17000
+ clusterStatus: {
17001
+ empty: "(empty)",
17002
+ k1fpy8te001: "Thinking / intermediate output"
17003
+ },
16570
17004
  clusterStream: { kpk9wff001: "Content merged into a later reply block (not rendered twice)" },
16571
17005
  clusterTask: {
16572
17006
  kfwdcd4008: "Status code {p0}",
@@ -16578,8 +17012,14 @@ var en_default = {
16578
17012
  k4u7566006: "Failed · awaiting re-dispatch",
16579
17013
  k3n5vg5007: "Cancelled"
16580
17014
  },
16581
- clusterTool: { k40p82001: "Collapse" },
17015
+ clusterTool: {
17016
+ expandAll: "Expand all {p0} calls",
17017
+ k40p82001: "Collapse"
17018
+ },
16582
17019
  commandPalette: {
17020
+ gotoTeams: "Go to: AgentTeam groups",
17021
+ viewLanes: "View: Agent lanes",
17022
+ actA2a: "Action: A2A RPC/SSE debugger",
16583
17023
  k1nz14ux013: "Switch Channel: {p0}",
16584
17024
  k1d8xtez014: "Timeline filter: {p0}",
16585
17025
  k1nn6i83001: "Type a command… (navigate/views/Channel/filter/actions)",
@@ -16596,6 +17036,11 @@ var en_default = {
16596
17036
  k1tm54il012: "Action: focus the task input"
16597
17037
  },
16598
17038
  composer: {
17039
+ loopIntervalRange: "Loop interval must be between 1 and 86400 seconds",
17040
+ defaultLeadTitle: "No {'@'} target: tasks route through lead scheduling; {'@'} a member to send directly",
17041
+ chipHint: "Type {'@'} to mention members · ⌘/Ctrl+Enter to send",
17042
+ seconds: "s",
17043
+ sendTitle: "Send (⌘/Ctrl+Enter)",
16599
17044
  kl3604i033: "Direct to {'@'}{p0}",
16600
17045
  k1cxjc4m034: "Live Injection",
16601
17046
  k1d2idgj035: "Task dispatched → {'@'}{p0} ({p1})",
@@ -16634,10 +17079,14 @@ var en_default = {
16634
17079
  k15mwzt7031: "Type a message/notice ({'@'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to send"
16635
17080
  },
16636
17081
  deviceTwinPanel: {
17082
+ armDelete: "Click again to confirm deleting this device instance",
17083
+ delDevice: "Delete this device instance",
17084
+ winRecipe: "Process window of the running recipe",
17085
+ winRange: "Node global range",
16637
17086
  k9r7d4e030: "Current PLC reading (actual)",
16638
17087
  kq2jssk008: "Recipe Process Window",
16639
17088
  k1iwj796009: "Node Range",
16640
- kxddket010: "超出{p0} {p1}",
17089
+ kxddket010: "Exceeds {p0}: {p1}",
16641
17090
  k1j04u8001: "Write setpoint (out-of-range values are rejected)",
16642
17091
  k7k6evr002: "Device Console",
16643
17092
  kkw7sn5003: "Loading device registers…",
@@ -16647,6 +17096,11 @@ var en_default = {
16647
17096
  k44653007: "Acknowledge"
16648
17097
  },
16649
17098
  eventBlock: {
17099
+ stBusy: "Running",
17100
+ stStopped: "Stopped",
17101
+ stIdle: "Idle",
17102
+ copied: "Copied",
17103
+ copyAll: "Copy full text",
16650
17104
  kc918hn001: "A response or human acknowledgement is required",
16651
17105
  kcugdph002: "Content duplicated from delta stream merged into one block",
16652
17106
  kknq700003: "Quote into input",
@@ -16655,14 +17109,22 @@ var en_default = {
16655
17109
  k3xk4t006: "Deduped"
16656
17110
  },
16657
17111
  fileSelectorModal: {
17112
+ title: "Select working directory",
17113
+ pickHere: "Select this directory",
17114
+ pathPh: "Enter an absolute path to jump to (e.g. D:\\\\projects\\\\my-app)",
17115
+ go: "Go",
16658
17116
  kvwnnvn001: ".. (up one level)",
16659
17117
  k268o2o002: "(no subdirectories; use “Select This Directory” to take the current location)",
16660
17118
  k1rt80dq003: "Double-click a directory to take it directly; the chosen path becomes the team working directory (agents' cwd) and is created automatically if missing.",
16661
17119
  kz99pgv004: "Failed to read directory"
16662
17120
  },
16663
17121
  inspectorPanel: {
16664
- k1tqitzl008: "成员同步中…",
16665
- kks0y5h009: "任务同步中…",
17122
+ tabMembers: "Members",
17123
+ tabTasks: "Tasks",
17124
+ tabMemory: "Memory",
17125
+ tabStats: "Stats",
17126
+ k1tqitzl008: "Syncing members…",
17127
+ kks0y5h009: "Syncing tasks…",
16666
17128
  k12oip5c010: "Success {p0}% / avg {p1}s / failed {p2}",
16667
17129
  k498bf001: "Queue",
16668
17130
  k3ypnl002: "Done",
@@ -16687,6 +17149,12 @@ var en_default = {
16687
17149
  k1sf0ymy002: "Running ·"
16688
17150
  },
16689
17151
  memoryPanel: {
17152
+ tokenAuto: "Member token injected automatically",
17153
+ tokenManual: "Auto-inject failed; enter the member token manually",
17154
+ tokenPh: "Bearer token (member identity, manual fallback)",
17155
+ searchPh: "Hybrid memory search (FTS + vector, same source as agent search_memory)…",
17156
+ writeOk: "Write",
17157
+ dedupLabel: "dedupKey (optional, idempotent)",
16690
17158
  k1du3379001: "Member Identity",
16691
17159
  k1bbee8p002: "Write Memory",
16692
17160
  k419s4003: "Title",
@@ -16711,10 +17179,10 @@ var en_default = {
16711
17179
  k3o5eky002: "Run:"
16712
17180
  },
16713
17181
  multiChannelView: {
17182
+ a2aMessage: "Text {p0}",
17183
+ a2aArtifact: "Artifact {p0}",
16714
17184
  k3wcox005: "Task",
16715
17185
  kvfx0mh006: "Drag to resize the {p0} column",
16716
- kp9ap3k007: "消息 {p0}> {'|'} undefined)?.[0]?.text ?? '').slice(0, 30)}",
16717
- k1688yr4008: "交付 {p0} {'|'} undefined)?.name ?? '')}",
16718
17186
  kfvue7n009: "Memory {p0}",
16719
17187
  khq39oe010: "Member {p0} {p1}",
16720
17188
  k16wopr9011: "Error {p0}",
@@ -16731,6 +17199,8 @@ var en_default = {
16731
17199
  k1pevwxl004: "(no events)"
16732
17200
  },
16733
17201
  taskBoardView: {
17202
+ emptySubNew: "Submit the first task in the Composer below (title on the first line; goal / loop / pipeline modes supported)",
17203
+ emptySubSync: "Appears automatically once the task snapshot syncs",
16734
17204
  k8m7hm6020: "Routing reason: {p0}",
16735
17205
  k1f9c17l019: "Syncing",
16736
17206
  k43pyn001: "Board",
@@ -16753,6 +17223,9 @@ var en_default = {
16753
17223
  k1dx9ysj018: "Open Details"
16754
17224
  },
16755
17225
  taskInspectorDrawer: {
17226
+ fallbackTitle: "Task details",
17227
+ failReason: "Failure reason",
17228
+ tabTimeline: "Status timeline",
16756
17229
  kkp77tf015: "Deliverables ({p0})",
16757
17230
  khnua62016: "Subtasks ({p0})",
16758
17231
  kxj74io017: "Raw content ({p0} parts)",
@@ -16772,6 +17245,18 @@ var en_default = {
16772
17245
  ke7bh8u014: "Re-dispatched for execution"
16773
17246
  },
16774
17247
  townView: {
17248
+ saveLayoutTip: "Write all devices' position/rotation/scale to the database",
17249
+ readonlyTip: "Read-only in run mode",
17250
+ daqPauseTip: "Pause all collection: stops sampling on all enabled nodes (per-node toggles stay independent)",
17251
+ daqResumeTip: "Resume all collection: enabled nodes resume sampling (manually stopped nodes stay stopped)",
17252
+ chPlaced: "Already placed; click to focus",
17253
+ chDragHint: "Drag onto the scene to place",
17254
+ viewTop: "Top · TOP",
17255
+ viewFront: "Front · FRONT",
17256
+ viewSide: "Side · SIDE",
17257
+ deviceName: "Device name",
17258
+ transformBlender: "Transform · BLENDER",
17259
+ unboundTip: "No industrial node bound — after binding, agents can use the dcw_control / daq_query tools",
16775
17260
  k1k6wg8j185: "Device Instance",
16776
17261
  k44c2n186: "Offline",
16777
17262
  k1w6xehu187: "{p0} · {p1} · auto-binds near a device, range {p2} ~ {p3} {p4}",
@@ -16999,11 +17484,13 @@ var en_default = {
16999
17484
  krotip182: "Read-only in run mode"
17000
17485
  },
17001
17486
  transcriptTimeline: {
17487
+ syncLag: "Connection lost; missed events will realign after reconnect",
17488
+ none: "n/a",
17002
17489
  k44c2n024: "Offline",
17003
17490
  kglov3b025: "Data last updated: {p0}",
17004
17491
  k3wwxl026: "just now",
17005
17492
  k2gyl6l027: "{p0}s ago",
17006
- k2hda35028: "{p0} 年 ",
17493
+ k2hda35028: "{p0}/",
17007
17494
  kbs29zx029: "{p0}{p1}-{p2}",
17008
17495
  k3y2p8020: "Online",
17009
17496
  kywgd38021: "Load earlier events",
@@ -17072,11 +17559,11 @@ var en_default = {
17072
17559
  hitlReject: "Reject"
17073
17560
  },
17074
17561
  ompTerminalPanel: {
17075
- k14jk3nu001: " {p0}· 对话框已撤销({p1}){p2}",
17076
- k68kkpc002: "{p0}── 已接入 omp 进程 PID {p1}(会话重放 {p2} 帧)──{p3}",
17077
- k59zj91003: "{p0}✗ 终端连接未就绪,命令未发送{p1}",
17078
- kvzhi95004: "{p0}✔ HITL 已应答:{p1}{p2}",
17079
- ke67kwf005: "{p0}── 切换目标 · {'$'}{'{'}props.pid ? "
17562
+ switchTarget: "── Switch target · {p0} ──",
17563
+ k14jk3nu001: " {p0}· dialog cancelled ({p1}){p2}",
17564
+ k68kkpc002: "{p0}── attached to omp process PID {p1} (session replay {p2} frames)──{p3}",
17565
+ k59zj91003: "{p0}✗ terminal not ready; command not sent{p1}",
17566
+ kvzhi95004: "{p0}✔ HITL answered: {p1}{p2}"
17080
17567
  },
17081
17568
  plugins: {
17082
17569
  title: "Plugins",
@@ -17147,6 +17634,12 @@ var en_default = {
17147
17634
  lost: "Page lost"
17148
17635
  },
17149
17636
  aml: {
17637
+ blockerVenv: "Training environment (./aml/.venv) not created yet: click \"Create training environment\" in the Runtime Environment panel",
17638
+ blockerPython: "Python interpreter unavailable",
17639
+ rootSourceEnv: "Set via the AW_AML_DIR environment variable",
17640
+ rootSourceRepo: "Project checkout root (./aml)",
17641
+ rootSourceHome: "User config root (~/.AgentWorkShop/aml)",
17642
+ rootSourceCwd: "Current working directory (./aml)",
17150
17643
  k1amlx001: "AML Auto-Modeling",
17151
17644
  k1amlx002: "Dataset snapshots → training jobs → gated experiments → model registry; job progress streams over WS, platform gates are authoritative.",
17152
17645
  k1amlx003: "Python runtime",
@@ -17359,7 +17852,65 @@ var en_default = {
17359
17852
  k1plugon044: "All enabled by default (not yet configured)",
17360
17853
  k1plugon045: "Explicitly configured",
17361
17854
  k1plugon046: "All plugins are disabled",
17362
- k1plugon047: "Plugin switches…"
17855
+ k1plugon047: "Plugin switches…",
17856
+ descLineSentinel: "Line Sentinel: DAQ limit alarms + heartbeat + line lifecycle tracking",
17857
+ descOpsNotifier: "Ops Notifier: write-control & line event echo — rolling recent events + query API + client notifications",
17858
+ descSampleInsight: "SDK sample: DAQ sample counting + stats API + client badge",
17859
+ descDiagBridge: "Deep diagnosis bridge: export DAQ timeseries snapshots as CSV, launch an industrial-deep-diagnostic run and track its status; the report lands in the knowledge base when done.",
17860
+ descRagBridge: "rag-knowledge bridge: three tools for industrial knowledge search / experience capture / document ingestion",
17861
+ descSerialBridge: "Serial protocol bridge: Modbus RTU (RS-485/232) and ASCII line protocol read drivers, write drivers with read-back verification, serial enumeration/probe APIs and a frontend panel."
17862
+ },
17863
+ tplCatalog: {
17864
+ "temp-tc": "Temperature Sensor",
17865
+ "pressure-tx": "Pressure Transmitter",
17866
+ "tension-cell": "Tension Sensor",
17867
+ "line-encoder": "Speed Encoder",
17868
+ "vision-cam": "Vision Inspection Camera",
17869
+ "power-meter": "Power Meter",
17870
+ "thickness-scan": "Thickness Scanner",
17871
+ "ccd-image": "CCD Vision Camera",
17872
+ "temp-sp": "Temperature Setpoint",
17873
+ "speed-sp": "Speed Setpoint",
17874
+ "tension-sp": "Tension Setpoint",
17875
+ "pressure-sp": "Pressure Setpoint"
17876
+ },
17877
+ builtinSeeds: {
17878
+ tplDefaultLead: "Lead Developer",
17879
+ tplDefaultBackend: "Backend Engineer",
17880
+ tplDefaultFrontend: "Frontend Engineer",
17881
+ tplDefaultQa: "QA Engineer",
17882
+ tplDefaultDocs: "Documentation Writer",
17883
+ tplScenarioPaymentLead: "Payment Gateway Delivery Lead (scenario: high-concurrency payments)",
17884
+ tplAmlLead: "AML Principal Data Scientist",
17885
+ tplAmlData: "AML Data Engineer",
17886
+ tplAmlTrainer: "AML Training Engineer",
17887
+ tplAmlEval: "AML Evaluation Engineer",
17888
+ teamDefaultFullstack: "Full-stack Delivery Team",
17889
+ teamDefaultDocs: "Docs Maintenance Team",
17890
+ teamAmlShadow: "AML Shadow Modeling Team",
17891
+ chtplDefaultFullstack: "Full-stack Delivery Channel",
17892
+ chtplDefaultFullstackDesc: "Built-in: lead + backend/frontend/QA, ready for routine delivery work",
17893
+ chtplDefaultFullstackScenario: "The team delivers under lead scheduling; the lead reviews each finished subtask and outcomes are consolidated as artifacts.",
17894
+ chtplDefaultReview: "Docs Review Channel",
17895
+ chtplDefaultReviewDesc: "Built-in: documentation writer + QA review, for documents, reports and review flows",
17896
+ chtplDefaultReviewScenario: "Focused on document output and quality review: after drafting, the reviewer checks and gives revision feedback.",
17897
+ chtplPresetOpticalFilm: "Optical Film Coating Line Optimization Team",
17898
+ chtplPresetOpticalFilmDesc: "Industrial preset: coating line digital-twin optimization — production lead + process engineer + data analyst, for oven temperature control and coating-quality closed loops",
17899
+ chtplPresetOpticalFilmScenario: "Optical film coating line: multi-zone oven temperature control and coating-quality closed loop; data first, small steps within the window, single-variable changes, re-check after each adjustment.",
17900
+ chtplPresetExtrusion: "Film Extrusion Casting Line Optimization Team",
17901
+ chtplPresetExtrusionDesc: "Industrial preset: extrusion casting line digital-twin optimization — production lead + process engineer + data analyst, for coupled melt pressure/temperature control",
17902
+ chtplPresetExtrusionScenario: "Film extrusion casting line: film-thickness quality control under strongly coupled melt pressure/temperature; data first, small steps within the window, single-variable changes, re-check after each adjustment.",
17903
+ mKnight: "Grey-feather Knight",
17904
+ mMage: "Amethyst Mage",
17905
+ mBot: "Cyan-Hub Mech",
17906
+ mHero3d: "Standard Worker Model",
17907
+ mHero3dHint: "Default worker 3D model",
17908
+ mYangyang: "Yangyang (walking)",
17909
+ mYangyangHint: "Custom character: skeletal walk animation (clip WALK; large file — bind sparingly)",
17910
+ mDevice3d: "Industrial Pump Device",
17911
+ mDevice3dHint: "Digital-twin entity model (drag into the scene to create a device)",
17912
+ mDeviceFallbackHint: "Device entity (drag into the scene to create a digital twin)",
17913
+ mScannedCharacterHint: "Character 3D model (set in channel member management)"
17363
17914
  }
17364
17915
  };
17365
17916
  //#endregion
@@ -18772,7 +19323,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
18772
19323
  //#endregion
18773
19324
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs
18774
19325
  var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Flayouts_default = {
18775
- default: defineAsyncComponent(() => import('../build/default-BE4r0FZN.mjs').then((m) => m.default || m)),
19326
+ default: defineAsyncComponent(() => import('../build/default-D3525UFX.mjs').then((m) => m.default || m)),
18776
19327
  town: defineAsyncComponent(() => import('../build/town-BUqRobze.mjs').then((m) => m.default || m))
18777
19328
  };
18778
19329
  //#endregion