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,11 @@
1
1
  export default {
2
2
  common: {
3
+ stop: 'Stop',
4
+ add: 'Add',
5
+ remove: 'Remove',
6
+ create: 'Create',
7
+ revoke: 'Revoke',
8
+ close: 'Close',
3
9
  light: 'Light',
4
10
  dark: 'Dark',
5
11
  confirm: 'OK',
@@ -415,6 +421,17 @@ export default {
415
421
  hitlSubmit: 'Submit',
416
422
  },
417
423
  agents: {
424
+ hMock: 'mock (testing)',
425
+ hOmp: 'omp (real LLM)',
426
+ badConfigJson: 'config is not valid JSON',
427
+ toPrivate: 'Click to make private',
428
+ toPublic: 'Click to make public (readable and usable by everyone)',
429
+ builtinNoEdit: 'Built-in templates cannot be modified',
430
+ ownerOnlyEdit: 'Only the owner can modify',
431
+ builtinNoDelete: 'Built-in templates cannot be deleted',
432
+ editTpl: 'Edit template',
433
+ newTpl: 'New template',
434
+ configLabel: 'config (JSON; mock supports delayMs)',
418
435
  notInstalled: 'not installed',
419
436
  installLink: 'Open official site to install ↗',
420
437
  harnessInprocess: 'In-process engine · always available',
@@ -445,6 +462,10 @@ export default {
445
462
  k1xxabaf024: 'Switched to private',
446
463
  },
447
464
  ctpl: {
465
+ visPublic: 'Public',
466
+ visPrivate: 'Private',
467
+ newTplTitle: 'New channel template',
468
+ leadTplLabel: 'Lead template (cloned as the channel lead when instantiated)',
448
469
  kefkfnl030: 'Instantiated: {p0} ({p1} members); mount it from the workspace',
449
470
  k1f54iqd029: 'Template Hub',
450
471
  k117jag9001: 'Delete template? (Instantiated Channels are not affected)',
@@ -477,6 +498,7 @@ export default {
477
498
  k1oxfuqj028: 'Template deleted',
478
499
  },
479
500
  daq: {
501
+ unitPh: 'e.g. %RH',
480
502
  k1bge46t118: 'Create Node',
481
503
  k1b3dtga119: 'Save Template',
482
504
  k3v957u120: '{p0} running: {p1} · {p2}',
@@ -505,7 +527,7 @@ export default {
505
527
  k427eu088: 'Consumed',
506
528
  k3w8go089: 'Dropped',
507
529
  k3wusd090: 'Stored',
508
- k48oi091: '位',
530
+ k48oi091: 'decimal places',
509
531
  k4118o092: 'Samples',
510
532
  k1ukoy0v093: 'Go to Line Management',
511
533
  k1ld43ur094: 'Reconnecting…',
@@ -669,6 +691,14 @@ export default {
669
691
  k1evt004: 'No events yet — waiting for activity…',
670
692
  },
671
693
  daqDetail: {
694
+ bucket1s: '1s bucket',
695
+ bucket5s: '5s bucket',
696
+ bucket15s: '15s bucket (default)',
697
+ bucket30s: '30s bucket',
698
+ bucket60s: '1min bucket',
699
+ calDecoderTip: 'Collection calibration decoder: physical = scale × PLC raw + offset',
700
+ calScaleTip: 'decode slope (≠0)',
701
+ calOffsetTip: 'decode intercept',
672
702
  kfrm0001: 'Image frame gallery',
673
703
  kfrm0002: 'Profile frames',
674
704
  kfrm0003: 'No frames yet (data flows only while the line is running)',
@@ -731,52 +761,54 @@ export default {
731
761
  k1rfrshint001: 'Trend auto-pull interval (ms); empty or 0 = follow server default (daq.query.displayIntervalMs), min {p0}ms',
732
762
  },
733
763
  logs: {
734
- title: '运维日志',
735
- sub: '全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询',
736
- live: '实时',
737
- liveHint: 'WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)',
764
+ title: 'Ops Log',
765
+ sub: 'One unified record of every operation — what controls were written, what users and agents did; query isolated by line/product/recipe',
766
+ live: 'Live',
767
+ liveHint: 'Receives operation events over WS (summary rendering only; full details in the table below)',
738
768
  all: 'All',
739
769
  fLine: 'Line',
740
770
  fProduct: 'Product',
741
- fSource: '来源',
742
- fKind: '分类',
743
- fKeyword: '关键词',
744
- fKeywordPh: '搜索摘要/操作/操作者…',
771
+ fSource: 'Source',
772
+ fKind: 'Category',
773
+ fKeyword: 'Keyword',
774
+ fKeywordPh: 'Search summary/action/actor…',
745
775
  query: 'Query',
746
776
  reset: 'Reset',
747
777
  thTime: 'Time',
748
- thActor: '操作者',
749
- thSummary: '事件摘要',
750
- thScope: '归属(产线/产品/Recipe)',
778
+ thActor: 'Actor',
779
+ thSummary: 'Event summary',
780
+ thScope: 'Scope (line/product/recipe)',
751
781
  thDetail: 'Details',
752
782
  expand: 'Details',
753
783
  fold: 'Collapse',
754
784
  loading: 'Querying…',
755
- empty: '无匹配日志',
756
- mSummary: '记录内容',
757
- mSummaryPh: '如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟',
758
- mSubmit: '入册',
759
- mOk: '已入册',
785
+ empty: 'No matching log entries',
786
+ mSummary: 'Entry content',
787
+ mSummaryPh: 'e.g. replaced the heater of oven No.3 and extended holding by 10 min for the current batch',
788
+ mSubmit: 'Record',
789
+ mOk: 'Recorded',
760
790
  manual: 'Manual entry',
761
791
  noDetail: 'None',
762
792
  mDetail: 'Detail (optional)',
763
793
  mDetailPh: 'Context, handling notes, related ticket… (stored in the log detail)',
764
794
  src: {
765
- user: '用户',
795
+ user: 'User',
766
796
  system: 'System',
767
797
  },
768
798
  kind: {
769
799
  write: 'Apply',
770
- manual: '人工',
800
+ manual: 'Manual',
771
801
  alarm: 'Alarm',
772
802
  line: 'Line',
773
803
  recipe: 'Recipe',
774
- rollback: '回退',
804
+ rollback: 'Rollback',
775
805
  daq: 'DAQ',
776
806
  system: 'System',
777
807
  },
778
808
  },
779
809
  dcw: {
810
+ codePh: 'e.g. MOTOR · I',
811
+ unitPh: 'e.g. A',
780
812
  k1qidbpy061: 'Default {p0} (by creation order)',
781
813
  k1gp649b062: '{p0} ({p1} nodes / {p2} products / {p3} recipes will be unmounted)',
782
814
  k7xq2mfd063: 'Delete line "{p0}"?',
@@ -847,6 +879,21 @@ export default {
847
879
  k1bphrb3048: 'Delete failed',
848
880
  },
849
881
  dcwDetail: {
882
+ stAck: 'ACKed',
883
+ startNeedRecipe: 'A recipe must be set before starting',
884
+ startTip: 'Push recipe parameters and start tagged data collection',
885
+ codePh: 'e.g. MOTOR · I',
886
+ unitPh: 'e.g. A',
887
+ mockPlc: 'Mock PLC simulator',
888
+ linearCalOpt: 'Linear calibration: PLC = (physical − offset) / scale',
889
+ calScaleTip: 'decoder slope (≠0): physical = scale × PLC + offset; inverted automatically on write',
890
+ calOffsetTip: 'decoder intercept',
891
+ pauseCtrlTip: 'Pause control on this node: writes will be rejected',
892
+ enableCtrlTip: 'Enable control on this node: writes allowed again',
893
+ pausedTip: 'Node paused: enable control before setting',
894
+ writeTip: 'Write setpoint',
895
+ noDaqTip: 'No DAQ nodes on this line',
896
+ manualTag: 'Manual',
850
897
  staleDeleted: 'deleted',
851
898
  staleDisabled: 'disabled',
852
899
  staleUnbound: 'unbound',
@@ -1072,6 +1119,13 @@ export default {
1072
1119
  kszv5sq136: 'No matching data in the window (check product/recipe/time range; only samples from running lines carry the line identity)',
1073
1120
  },
1074
1121
  teams: {
1122
+ selectChannel: 'Select a target channel',
1123
+ toPrivate: 'Click to make private',
1124
+ toPublic: 'Click to make public (deployable by everyone)',
1125
+ deployToChannel: 'Deploy to channel…',
1126
+ joinOk: 'Join',
1127
+ deployOk: 'Deploy',
1128
+ targetChannelLabel: 'Target channel (must have no lead conflict)',
1075
1129
  k6ljhyv029: 'Add Member · {p0}',
1076
1130
  k1c0o6oe030: 'Deploy · {p0}',
1077
1131
  kh90glh031: 'Deployed {p0} instances to the Channel',
@@ -1113,6 +1167,20 @@ export default {
1113
1167
  k1plugon047: 'Plugin switches…',
1114
1168
  },
1115
1169
  tokens: {
1170
+ maskBackTip: 'Plain text shown; click the eye to mask again',
1171
+ maskPreview: 'Masked preview',
1172
+ maskBack: 'Mask again',
1173
+ revealPlain: 'Reveal plain text',
1174
+ copied: 'Copied',
1175
+ copyPlain: 'Copy plain text',
1176
+ revokeCurrentWarn: 'Revoking the current session token will log you out',
1177
+ revokeWarn: 'Revocation takes effect immediately',
1178
+ createdTitle: 'Token created',
1179
+ hidePlain: 'Hide plain text',
1180
+ showPlain: 'Show plain text',
1181
+ copy: 'Copy',
1182
+ usage: 'Usage: Authorization: Bearer <token>',
1183
+ renameTitle: 'Rename token',
1116
1184
  k1upppaw026: 'Each token can be revoked independently; plaintext is archived server-side and can be viewed/copied anytime',
1117
1185
  k3p0p44027: 'Tags:',
1118
1186
  kj3mklm028: '(unnamed)',
@@ -1150,6 +1218,21 @@ export default {
1150
1218
  k1uc5mup004: 'Connecting to the AgentWorkShop twin space (subscribing to the live event stream)…',
1151
1219
  },
1152
1220
  wsHome: {
1221
+ adminCreated: 'Admin account created: {p0} is now signed in',
1222
+ nameRequired: 'Workspace name is required',
1223
+ setupTitle: 'Create admin account',
1224
+ setupSub: 'The system has no users yet: the first registered account becomes the admin and enters the system automatically.',
1225
+ normalSub: 'A global user system manages identity; each user can hold multiple API tokens. Managing the API requires a user token (Authorization: Bearer).',
1226
+ tabLogin: 'Account sign-in',
1227
+ tabRegAdmin: 'Register admin',
1228
+ tabRegUser: 'Register new user',
1229
+ setupCta: 'Create admin & enter',
1230
+ tabToken: 'Token sign-in',
1231
+ delWs: 'Delete workspace',
1232
+ emptyTitle: 'Start with one line, one agent',
1233
+ emptySub: 'A workspace holds channels and tasks — create your first one and your agent team goes live.',
1234
+ emptyCta: 'Create your first workspace',
1235
+ createEnterOk: 'Create & enter',
1153
1236
  k1mbatbh030: 'Registered: {p0}; sign-in token saved',
1154
1237
  kwixbdl031: 'Signed in: {p0}',
1155
1238
  newWs: 'New Workspace',
@@ -1184,6 +1267,11 @@ export default {
1184
1267
  k3n5sd7024: 'Deleted',
1185
1268
  },
1186
1269
  wsView: {
1270
+ inspector: 'Inspector',
1271
+ unknownWs: 'Unknown workspace',
1272
+ channelListTitle: 'Channel session list',
1273
+ a2aTitle: 'A2A RPC/SSE debugger',
1274
+ loadingWs: 'Loading workspace…',
1187
1275
  kqwckjr001: 'Hotkeys 1-5 switch views',
1188
1276
  k1tsy2e4002: 'Collapse/expand session bar',
1189
1277
  k1tx0ppf003: 'Collapse/expand inspector',
@@ -1204,6 +1292,12 @@ export default {
1204
1292
  ctpl: 'Channel Template Hub',
1205
1293
  },
1206
1294
  a2aRpcDebugger: {
1295
+ methodSse: 'tasks/sendSubscribe (SSE stream)',
1296
+ methodToken: 'message/send (token required)',
1297
+ badParams: 'params is not valid JSON',
1298
+ title: 'A2A RPC / SSE Debugger',
1299
+ tokenPh: 'Bearer token (required for message/send; leave empty for anonymous)',
1300
+ outputEmpty: '(Output; sendSubscribe renders SSE events as they arrive)',
1207
1301
  k6hcbxi001: 'Drag to resize drawer',
1208
1302
  k34cz76002: 'Target agent instance',
1209
1303
  k1bqe2pj003: 'Parameter Template',
@@ -1214,6 +1308,16 @@ export default {
1214
1308
  k1vryfv008: 'Select target agent',
1215
1309
  },
1216
1310
  agentInspectorDrawer: {
1311
+ tabStream: 'Independent stream',
1312
+ tabMemory: 'Memory',
1313
+ grpWorking: 'Running',
1314
+ grpQueued: 'Queued',
1315
+ grpDone: 'Done',
1316
+ swOn: 'On',
1317
+ swOff: 'Off',
1318
+ okRemove: 'Remove',
1319
+ prioImmediate: 'Immediate',
1320
+ prioQueued: 'Queued',
1217
1321
  k3ypnl022: 'Done',
1218
1322
  k16t80ax023: 'Focus main timeline',
1219
1323
  k6hcbxi001: 'Drag to resize drawer',
@@ -1239,22 +1343,30 @@ export default {
1239
1343
  k1y2jrsr021: 'Message injected',
1240
1344
  },
1241
1345
  agentLanesView: {
1346
+ cloneFail: 'Template clone failed{p0}',
1347
+ leadExistsShort: ' (a lead already exists; cannot add another lead)',
1348
+ deployFail: 'Team deploy failed{p0}',
1349
+ leadExistsChannel: ' (channel already has a lead; team lead members conflict — remove the existing lead or pick a team without one)',
1350
+ hitlStopTitle: 'HITL-stop this agent runtime',
1351
+ namePh: 'e.g. db-migrator / test-writer',
1352
+ ompFull: 'omp (full LLM agent)',
1353
+ tplCloneLabel: 'Select an agent template (clones name/harness/config as an independent instance)',
1354
+ tplDisabled: ' · disabled',
1355
+ withLead: ', with lead',
1356
+ roleHarnessLabel: 'Role / harness',
1357
+ syspromptLabel: 'Scene system prompt (systemPromptPrefix)',
1242
1358
  k1wn2vmt036: 'omp process PID {p0} · harness session state',
1243
1359
  k1l029kf037: 'Interrupt member {p0}\'s runtime? Running tasks will be aborted; the member is kept',
1244
1360
  kt3n27m038: 'Remove member {p0}? Its queued tasks will be reclaimed automatically',
1245
1361
  k7xt1y6039: 'Drag to resize the {p0} lane',
1246
1362
  k1qcmxyu040: '{p0} ({p1} members{p2})',
1247
1363
  k19j5rho041: 'Edit member {p0}',
1248
- kg2slvf042: '(已有 lead,不能再添加 lead)',
1249
- kpr6a3f043: '(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)',
1250
1364
  k21xjz2044: 'Member {p0} updated (runtime reloads with the new prompt)',
1251
1365
  k3jmrw1045: 'Update failed: {p0}',
1252
1366
  k1g5ykr3046: 'Member {p0} added (waiting for the agent.member event to converge)',
1253
1367
  k1j97j74047: 'Add member failed: {p0}',
1254
1368
  kk3uwzo048: 'Cloned template member {p0} as {p1} (waiting for event convergence)',
1255
- k1rrfz5h049: '模板克隆失败{\'$\'}{\'{\'}text.includes(\'LEAD_EXISTS\') ? t(\'agentLanesView.kg2slvf042\') : ',
1256
1369
  k1gslqf9050: 'Group {p0} deployed ({p1} members, waiting for event convergence)',
1257
- k6nzyd3051: '编组部署失败{\'$\'}{\'{\'}text.includes(\'LEAD_EXISTS\') ? t(\'agentLanesView.kpr6a3f043\') : ',
1258
1370
  k1n3o03a052: 'Member {p0} removed',
1259
1371
  k13dsp10053: 'Remove member failed: {p0}',
1260
1372
  kcpbv47054: 'Interrupted the runtime of member {p0}',
@@ -1296,12 +1408,14 @@ export default {
1296
1408
  k1tjd5ab035: 'Select an AgentTeam to deploy',
1297
1409
  },
1298
1410
  artifactCard: {
1411
+ empty: '(empty)',
1299
1412
  k3yu62003: 'Expand',
1300
1413
  k3y694004: 'Copy',
1301
1414
  k40p82001: 'Collapse',
1302
1415
  k3n6o1m002: 'Copied',
1303
1416
  },
1304
1417
  assetLibrary: {
1418
+ badModelFile: 'Only .glb/.gltf/.obj/.fbx model files are supported',
1305
1419
  katn7lo015: 'Drag onto the twin scene to create a device instance · {p0}',
1306
1420
  k8nv3or016: 'Uploaded → {p0}',
1307
1421
  k1hhga4h014: 'Confirm Upload',
@@ -1320,6 +1434,22 @@ export default {
1320
1434
  k8n918k013: 'Model file deleted',
1321
1435
  },
1322
1436
  channelSessionList: {
1437
+ nameRequired: 'Channel name is required',
1438
+ defaultSuffix: ' (default)',
1439
+ tplCenterTitle: 'Channel template center',
1440
+ newChannelTitle: 'New channel',
1441
+ unmountTitle: 'Remove from workspace',
1442
+ mountFromTpl: 'Mount from channel template',
1443
+ pfxBuiltin: 'Built-in · ',
1444
+ pfxPublic: 'Public · ',
1445
+ nameLabel: 'Channel name',
1446
+ wsPh1: 'Empty = data/workspaces/<channelId>',
1447
+ llmDefaultLabel: 'Default model (optional; falls back to each harness default)',
1448
+ catalogLoading: 'Loading catalog…',
1449
+ effortPh: 'effort (optional)',
1450
+ variantPh: 'variant (optional)',
1451
+ builtinTag: 'Built-in',
1452
+ saveTplOk: 'Save as template',
1323
1453
  kjmldih035: 'Settings {p0}',
1324
1454
  k1yurooi036: 'Move out {p0}',
1325
1455
  kfe4pzq037: 'Working directory: {p0} (click to copy path)',
@@ -1368,24 +1498,36 @@ export default {
1368
1498
  k1plugsrc046: 'Not explicitly configured (all enabled by default); applies per-row after first toggle',
1369
1499
  },
1370
1500
  clusterArtifact: {
1501
+ view: 'View',
1371
1502
  kyh87lw001: 'Deliverable body matches the reply above',
1372
1503
  k49les002: 'Hide',
1373
1504
  },
1374
1505
  clusterError: {
1506
+ showAll: 'All {p0}',
1375
1507
  k40p82001: 'Collapse',
1376
1508
  },
1377
1509
  clusterLife: {
1510
+ done: 'Done',
1378
1511
  k1xthifv001: 'Non-status event',
1379
1512
  k498bf002: 'Queue',
1380
1513
  k3pi5z1003: 'Sub-state',
1381
1514
  },
1382
1515
  clusterMember: {
1516
+ showAll: 'All {p0}',
1517
+ byUser: 'User',
1518
+ vAdded: 'Added member {p0}',
1519
+ vUpdated: 'Updated member {p0}',
1520
+ vDisabled: 'Disabled member {p0}',
1521
+ vRemoved: 'Removed member {p0}',
1522
+ reason: ', reason: {p0}',
1383
1523
  k40p82001: 'Collapse',
1384
1524
  },
1385
1525
  clusterMemory: {
1526
+ showAll: 'All {p0}',
1386
1527
  k40p82001: 'Collapse',
1387
1528
  },
1388
1529
  clusterOther: {
1530
+ showAll: 'All {p0}',
1389
1531
  k40p82001: 'Collapse',
1390
1532
  },
1391
1533
  clusterRoute: {
@@ -1404,6 +1546,7 @@ export default {
1404
1546
  k1bka5dz009: 'Collaboration Message',
1405
1547
  },
1406
1548
  clusterStatus: {
1549
+ empty: '(empty)',
1407
1550
  k1fpy8te001: 'Thinking / intermediate output',
1408
1551
  },
1409
1552
  clusterStream: {
@@ -1420,9 +1563,13 @@ export default {
1420
1563
  k3n5vg5007: 'Cancelled',
1421
1564
  },
1422
1565
  clusterTool: {
1566
+ expandAll: 'Expand all {p0} calls',
1423
1567
  k40p82001: 'Collapse',
1424
1568
  },
1425
1569
  commandPalette: {
1570
+ gotoTeams: 'Go to: AgentTeam groups',
1571
+ viewLanes: 'View: Agent lanes',
1572
+ actA2a: 'Action: A2A RPC/SSE debugger',
1426
1573
  k1nz14ux013: 'Switch Channel: {p0}',
1427
1574
  k1d8xtez014: 'Timeline filter: {p0}',
1428
1575
  k1nn6i83001: 'Type a command… (navigate/views/Channel/filter/actions)',
@@ -1439,6 +1586,11 @@ export default {
1439
1586
  k1tm54il012: 'Action: focus the task input',
1440
1587
  },
1441
1588
  composer: {
1589
+ loopIntervalRange: 'Loop interval must be between 1 and 86400 seconds',
1590
+ defaultLeadTitle: 'No {\'@\'} target: tasks route through lead scheduling; {\'@\'} a member to send directly',
1591
+ chipHint: 'Type {\'@\'} to mention members · ⌘/Ctrl+Enter to send',
1592
+ seconds: 's',
1593
+ sendTitle: 'Send (⌘/Ctrl+Enter)',
1442
1594
  kl3604i033: 'Direct to {\'@\'}{p0}',
1443
1595
  k1cxjc4m034: 'Live Injection',
1444
1596
  k1d2idgj035: 'Task dispatched → {\'@\'}{p0} ({p1})',
@@ -1477,10 +1629,14 @@ export default {
1477
1629
  k15mwzt7031: 'Type a message/notice ({\'@\'} to target a member, defaults to lead)… ⌘/Ctrl+Enter to send',
1478
1630
  },
1479
1631
  deviceTwinPanel: {
1632
+ armDelete: 'Click again to confirm deleting this device instance',
1633
+ delDevice: 'Delete this device instance',
1634
+ winRecipe: 'Process window of the running recipe',
1635
+ winRange: 'Node global range',
1480
1636
  k9r7d4e030: 'Current PLC reading (actual)',
1481
1637
  kq2jssk008: 'Recipe Process Window',
1482
1638
  k1iwj796009: 'Node Range',
1483
- kxddket010: '超出{p0} {p1}',
1639
+ kxddket010: 'Exceeds {p0}: {p1}',
1484
1640
  k1j04u8001: 'Write setpoint (out-of-range values are rejected)',
1485
1641
  k7k6evr002: 'Device Console',
1486
1642
  kkw7sn5003: 'Loading device registers…',
@@ -1490,6 +1646,11 @@ export default {
1490
1646
  k44653007: 'Acknowledge',
1491
1647
  },
1492
1648
  eventBlock: {
1649
+ stBusy: 'Running',
1650
+ stStopped: 'Stopped',
1651
+ stIdle: 'Idle',
1652
+ copied: 'Copied',
1653
+ copyAll: 'Copy full text',
1493
1654
  kc918hn001: 'A response or human acknowledgement is required',
1494
1655
  kcugdph002: 'Content duplicated from delta stream merged into one block',
1495
1656
  kknq700003: 'Quote into input',
@@ -1498,14 +1659,22 @@ export default {
1498
1659
  k3xk4t006: 'Deduped',
1499
1660
  },
1500
1661
  fileSelectorModal: {
1662
+ title: 'Select working directory',
1663
+ pickHere: 'Select this directory',
1664
+ pathPh: 'Enter an absolute path to jump to (e.g. D:\\\\projects\\\\my-app)',
1665
+ go: 'Go',
1501
1666
  kvwnnvn001: '.. (up one level)',
1502
1667
  k268o2o002: '(no subdirectories; use “Select This Directory” to take the current location)',
1503
1668
  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.',
1504
1669
  kz99pgv004: 'Failed to read directory',
1505
1670
  },
1506
1671
  inspectorPanel: {
1507
- k1tqitzl008: '成员同步中…',
1508
- kks0y5h009: '任务同步中…',
1672
+ tabMembers: 'Members',
1673
+ tabTasks: 'Tasks',
1674
+ tabMemory: 'Memory',
1675
+ tabStats: 'Stats',
1676
+ k1tqitzl008: 'Syncing members…',
1677
+ kks0y5h009: 'Syncing tasks…',
1509
1678
  k12oip5c010: 'Success {p0}% / avg {p1}s / failed {p2}',
1510
1679
  k498bf001: 'Queue',
1511
1680
  k3ypnl002: 'Done',
@@ -1530,6 +1699,12 @@ export default {
1530
1699
  k1sf0ymy002: 'Running ·',
1531
1700
  },
1532
1701
  memoryPanel: {
1702
+ tokenAuto: 'Member token injected automatically',
1703
+ tokenManual: 'Auto-inject failed; enter the member token manually',
1704
+ tokenPh: 'Bearer token (member identity, manual fallback)',
1705
+ searchPh: 'Hybrid memory search (FTS + vector, same source as agent search_memory)…',
1706
+ writeOk: 'Write',
1707
+ dedupLabel: 'dedupKey (optional, idempotent)',
1533
1708
  k1du3379001: 'Member Identity',
1534
1709
  k1bbee8p002: 'Write Memory',
1535
1710
  k419s4003: 'Title',
@@ -1554,10 +1729,10 @@ export default {
1554
1729
  k3o5eky002: 'Run:',
1555
1730
  },
1556
1731
  multiChannelView: {
1732
+ a2aMessage: 'Text {p0}',
1733
+ a2aArtifact: 'Artifact {p0}',
1557
1734
  k3wcox005: 'Task',
1558
1735
  kvfx0mh006: 'Drag to resize the {p0} column',
1559
- kp9ap3k007: '消息 {p0}> {\'|\'} undefined)?.[0]?.text ?? \'\').slice(0, 30)}',
1560
- k1688yr4008: '交付 {p0} {\'|\'} undefined)?.name ?? \'\')}',
1561
1736
  kfvue7n009: 'Memory {p0}',
1562
1737
  khq39oe010: 'Member {p0} {p1}',
1563
1738
  k16wopr9011: 'Error {p0}',
@@ -1576,6 +1751,8 @@ export default {
1576
1751
  k1pevwxl004: '(no events)',
1577
1752
  },
1578
1753
  taskBoardView: {
1754
+ emptySubNew: 'Submit the first task in the Composer below (title on the first line; goal / loop / pipeline modes supported)',
1755
+ emptySubSync: 'Appears automatically once the task snapshot syncs',
1579
1756
  k8m7hm6020: 'Routing reason: {p0}',
1580
1757
  k1f9c17l019: 'Syncing',
1581
1758
  k43pyn001: 'Board',
@@ -1598,6 +1775,9 @@ export default {
1598
1775
  k1dx9ysj018: 'Open Details',
1599
1776
  },
1600
1777
  taskInspectorDrawer: {
1778
+ fallbackTitle: 'Task details',
1779
+ failReason: 'Failure reason',
1780
+ tabTimeline: 'Status timeline',
1601
1781
  kkp77tf015: 'Deliverables ({p0})',
1602
1782
  khnua62016: 'Subtasks ({p0})',
1603
1783
  kxj74io017: 'Raw content ({p0} parts)',
@@ -1617,6 +1797,18 @@ export default {
1617
1797
  ke7bh8u014: 'Re-dispatched for execution',
1618
1798
  },
1619
1799
  townView: {
1800
+ saveLayoutTip: 'Write all devices\' position/rotation/scale to the database',
1801
+ readonlyTip: 'Read-only in run mode',
1802
+ daqPauseTip: 'Pause all collection: stops sampling on all enabled nodes (per-node toggles stay independent)',
1803
+ daqResumeTip: 'Resume all collection: enabled nodes resume sampling (manually stopped nodes stay stopped)',
1804
+ chPlaced: 'Already placed; click to focus',
1805
+ chDragHint: 'Drag onto the scene to place',
1806
+ viewTop: 'Top · TOP',
1807
+ viewFront: 'Front · FRONT',
1808
+ viewSide: 'Side · SIDE',
1809
+ deviceName: 'Device name',
1810
+ transformBlender: 'Transform · BLENDER',
1811
+ unboundTip: 'No industrial node bound — after binding, agents can use the dcw_control / daq_query tools',
1620
1812
  k1k6wg8j185: 'Device Instance',
1621
1813
  k44c2n186: 'Offline',
1622
1814
  k1w6xehu187: '{p0} · {p1} · auto-binds near a device, range {p2} ~ {p3} {p4}',
@@ -1844,11 +2036,13 @@ export default {
1844
2036
  krotip182: 'Read-only in run mode',
1845
2037
  },
1846
2038
  transcriptTimeline: {
2039
+ syncLag: 'Connection lost; missed events will realign after reconnect',
2040
+ none: 'n/a',
1847
2041
  k44c2n024: 'Offline',
1848
2042
  kglov3b025: 'Data last updated: {p0}',
1849
2043
  k3wwxl026: 'just now',
1850
2044
  k2gyl6l027: '{p0}s ago',
1851
- k2hda35028: '{p0} 年 ',
2045
+ k2hda35028: '{p0}/',
1852
2046
  kbs29zx029: '{p0}{p1}-{p2}',
1853
2047
  k3y2p8020: 'Online',
1854
2048
  kywgd38021: 'Load earlier events',
@@ -1917,11 +2111,11 @@ export default {
1917
2111
  hitlReject: 'Reject',
1918
2112
  },
1919
2113
  ompTerminalPanel: {
1920
- k14jk3nu001: ' {p0}· 对话框已撤销({p1}){p2}',
1921
- k68kkpc002: '{p0}── 已接入 omp 进程 PID {p1}(会话重放 {p2} 帧)──{p3}',
1922
- k59zj91003: '{p0}✗ 终端连接未就绪,命令未发送{p1}',
1923
- kvzhi95004: '{p0}✔ HITL 已应答:{p1}{p2}',
1924
- ke67kwf005: '{p0}── 切换目标 · {\'$\'}{\'{\'}props.pid ? ',
2114
+ switchTarget: '── Switch target · {p0} ──',
2115
+ k14jk3nu001: ' {p0}· dialog cancelled ({p1}){p2}',
2116
+ k68kkpc002: '{p0}── attached to omp process PID {p1} (session replay {p2} frames)──{p3}',
2117
+ k59zj91003: '{p0}✗ terminal not ready; command not sent{p1}',
2118
+ kvzhi95004: '{p0}✔ HITL answered: {p1}{p2}',
1925
2119
  },
1926
2120
  plugins: {
1927
2121
  title: 'Plugins',
@@ -1992,6 +2186,12 @@ export default {
1992
2186
  lost: 'Page lost',
1993
2187
  },
1994
2188
  aml: {
2189
+ blockerVenv: 'Training environment (./aml/.venv) not created yet: click "Create training environment" in the Runtime Environment panel',
2190
+ blockerPython: 'Python interpreter unavailable',
2191
+ rootSourceEnv: 'Set via the AW_AML_DIR environment variable',
2192
+ rootSourceRepo: 'Project checkout root (./aml)',
2193
+ rootSourceHome: 'User config root (~/.AgentWorkShop/aml)',
2194
+ rootSourceCwd: 'Current working directory (./aml)',
1995
2195
  k1amlx001: 'AML Auto-Modeling',
1996
2196
  k1amlx002: 'Dataset snapshots → training jobs → gated experiments → model registry; job progress streams over WS, platform gates are authoritative.',
1997
2197
  k1amlx003: 'Python runtime',
@@ -2205,5 +2405,63 @@ export default {
2205
2405
  k1plugon045: 'Explicitly configured',
2206
2406
  k1plugon046: 'All plugins are disabled',
2207
2407
  k1plugon047: 'Plugin switches…',
2408
+ descLineSentinel: 'Line Sentinel: DAQ limit alarms + heartbeat + line lifecycle tracking',
2409
+ descOpsNotifier: 'Ops Notifier: write-control & line event echo — rolling recent events + query API + client notifications',
2410
+ descSampleInsight: 'SDK sample: DAQ sample counting + stats API + client badge',
2411
+ 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.',
2412
+ descRagBridge: 'rag-knowledge bridge: three tools for industrial knowledge search / experience capture / document ingestion',
2413
+ 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.',
2414
+ },
2415
+ tplCatalog: {
2416
+ 'temp-tc': 'Temperature Sensor',
2417
+ 'pressure-tx': 'Pressure Transmitter',
2418
+ 'tension-cell': 'Tension Sensor',
2419
+ 'line-encoder': 'Speed Encoder',
2420
+ 'vision-cam': 'Vision Inspection Camera',
2421
+ 'power-meter': 'Power Meter',
2422
+ 'thickness-scan': 'Thickness Scanner',
2423
+ 'ccd-image': 'CCD Vision Camera',
2424
+ 'temp-sp': 'Temperature Setpoint',
2425
+ 'speed-sp': 'Speed Setpoint',
2426
+ 'tension-sp': 'Tension Setpoint',
2427
+ 'pressure-sp': 'Pressure Setpoint',
2428
+ },
2429
+ builtinSeeds: {
2430
+ tplDefaultLead: 'Lead Developer',
2431
+ tplDefaultBackend: 'Backend Engineer',
2432
+ tplDefaultFrontend: 'Frontend Engineer',
2433
+ tplDefaultQa: 'QA Engineer',
2434
+ tplDefaultDocs: 'Documentation Writer',
2435
+ tplScenarioPaymentLead: 'Payment Gateway Delivery Lead (scenario: high-concurrency payments)',
2436
+ tplAmlLead: 'AML Principal Data Scientist',
2437
+ tplAmlData: 'AML Data Engineer',
2438
+ tplAmlTrainer: 'AML Training Engineer',
2439
+ tplAmlEval: 'AML Evaluation Engineer',
2440
+ teamDefaultFullstack: 'Full-stack Delivery Team',
2441
+ teamDefaultDocs: 'Docs Maintenance Team',
2442
+ teamAmlShadow: 'AML Shadow Modeling Team',
2443
+ chtplDefaultFullstack: 'Full-stack Delivery Channel',
2444
+ chtplDefaultFullstackDesc: 'Built-in: lead + backend/frontend/QA, ready for routine delivery work',
2445
+ chtplDefaultFullstackScenario: 'The team delivers under lead scheduling; the lead reviews each finished subtask and outcomes are consolidated as artifacts.',
2446
+ chtplDefaultReview: 'Docs Review Channel',
2447
+ chtplDefaultReviewDesc: 'Built-in: documentation writer + QA review, for documents, reports and review flows',
2448
+ chtplDefaultReviewScenario: 'Focused on document output and quality review: after drafting, the reviewer checks and gives revision feedback.',
2449
+ chtplPresetOpticalFilm: 'Optical Film Coating Line Optimization Team',
2450
+ chtplPresetOpticalFilmDesc: 'Industrial preset: coating line digital-twin optimization — production lead + process engineer + data analyst, for oven temperature control and coating-quality closed loops',
2451
+ 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.',
2452
+ chtplPresetExtrusion: 'Film Extrusion Casting Line Optimization Team',
2453
+ chtplPresetExtrusionDesc: 'Industrial preset: extrusion casting line digital-twin optimization — production lead + process engineer + data analyst, for coupled melt pressure/temperature control',
2454
+ 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.',
2455
+ mKnight: 'Grey-feather Knight',
2456
+ mMage: 'Amethyst Mage',
2457
+ mBot: 'Cyan-Hub Mech',
2458
+ mHero3d: 'Standard Worker Model',
2459
+ mHero3dHint: 'Default worker 3D model',
2460
+ mYangyang: 'Yangyang (walking)',
2461
+ mYangyangHint: 'Custom character: skeletal walk animation (clip WALK; large file — bind sparingly)',
2462
+ mDevice3d: 'Industrial Pump Device',
2463
+ mDevice3dHint: 'Digital-twin entity model (drag into the scene to create a device)',
2464
+ mDeviceFallbackHint: 'Device entity (drag into the scene to create a digital twin)',
2465
+ mScannedCharacterHint: 'Character 3D model (set in channel member management)',
2208
2466
  },
2209
2467
  }