agentworkshop 0.7.7 → 0.7.9

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 (337) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +1 -1
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +1 -1
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/-6OnbLFb.js +1 -0
  5. package/.output/public/_nuxt/{BUxYN2mw.js → -nb2uqVg.js} +1 -1
  6. package/.output/public/_nuxt/{DM8DS9MA.js → 6PZPfFcO.js} +1 -1
  7. package/.output/public/_nuxt/91DZTUMJ.js +1 -0
  8. package/.output/public/_nuxt/B0HpdCKS.js +1 -0
  9. package/.output/public/_nuxt/B1g8pJmr.js +2 -0
  10. package/.output/public/_nuxt/B1kA8LhC.js +14 -0
  11. package/.output/public/_nuxt/{uBbDCfTz.js → B5S_UyaC.js} +1 -1
  12. package/.output/public/_nuxt/{DZk24ego.js → B7wL3pDk.js} +1 -1
  13. package/.output/public/_nuxt/B9MUiDFl.js +1 -0
  14. package/.output/public/_nuxt/B9dLFSYI.js +1 -0
  15. package/.output/public/_nuxt/BC8s1Guv.js +1 -0
  16. package/.output/public/_nuxt/{BSXx2vqR.js → BCJFMBQ6.js} +1 -1
  17. package/.output/public/_nuxt/{BYL0Rjqj.js → BDASpD_i.js} +3 -3
  18. package/.output/public/_nuxt/{VnIWJ0ts.js → BN_PdN3J.js} +1 -1
  19. package/.output/public/_nuxt/BUPj10t4.js +1 -0
  20. package/.output/public/_nuxt/BZGNTgTQ2.js +1 -0
  21. package/.output/public/_nuxt/{NIM0Wglj2.js → BaMkWl5i2.js} +1 -1
  22. package/.output/public/_nuxt/BmHvC_OU.js +1 -0
  23. package/.output/public/_nuxt/{BkfchkK62.js → Bp5luxkg2.js} +1 -1
  24. package/.output/public/_nuxt/{ZugRk0CM2.js → BuktKVqK2.js} +1 -1
  25. package/.output/public/_nuxt/By8BpbKH.js +1 -0
  26. package/.output/public/_nuxt/{pRQri7vQ2.js → BytVi9VX2.js} +1 -1
  27. package/.output/public/_nuxt/{D5KJ7_0V.js → C3tCneTM.js} +1 -1
  28. package/.output/public/_nuxt/{CblLEiCZ.js → C9cU_Ujd.js} +3 -3
  29. package/.output/public/_nuxt/{BJ-fxrSw.js → CBciOiTQ.js} +1 -1
  30. package/.output/public/_nuxt/CFn4vHwD.js +1 -0
  31. package/.output/public/_nuxt/{DCXIGxzT.js → CKfhtOt7.js} +2 -2
  32. package/.output/public/_nuxt/CUMdhxg9.js +1 -0
  33. package/.output/public/_nuxt/{ChEKFMxj.js → CUXCQXjG.js} +1 -1
  34. package/.output/public/_nuxt/CfVAr2nf.js +1 -0
  35. package/.output/public/_nuxt/{CvbHIGQY2.js → CgvGu2IO.js} +1 -1
  36. package/.output/public/_nuxt/CjDQPXfv.js +1 -0
  37. package/.output/public/_nuxt/{B4Fia4FB.js → CmHzfVc5.js} +1 -1
  38. package/.output/public/_nuxt/{Do88WZG2.js → Cn3J3NXR.js} +1 -1
  39. package/.output/public/_nuxt/{DNzaswei.js → Cst47G4-.js} +1 -1
  40. package/.output/public/_nuxt/{DYZBdSSg2.js → Ct68Z0232.js} +1 -1
  41. package/.output/public/_nuxt/{BsMpJf7S.js → D-Ca4BGY.js} +6 -6
  42. package/.output/public/_nuxt/D0Szyn_D.js +1 -0
  43. package/.output/public/_nuxt/{CsCpu2Zh.js → D1z7i2UP.js} +1 -1
  44. package/.output/public/_nuxt/{Du-eSpo2.js → D3VJ3lex.js} +1 -1
  45. package/.output/public/_nuxt/D8CqF0yy.js +1 -0
  46. package/.output/public/_nuxt/D8EfUxO2.js +1 -0
  47. package/.output/public/_nuxt/D8wyHvcz2.js +1 -0
  48. package/.output/public/_nuxt/{zwdqvGN_.js → DDdEnkdw.js} +1 -1
  49. package/.output/public/_nuxt/DM4CNkXz.js +1 -0
  50. package/.output/public/_nuxt/DN5RuZ8k.js +18 -0
  51. package/.output/public/_nuxt/DXRZPxGs.js +1 -0
  52. package/.output/public/_nuxt/{C2iWjzEC2.js → DoLasgPj2.js} +1 -1
  53. package/.output/public/_nuxt/{DRq09ZmT.js → DpojD719.js} +1 -1
  54. package/.output/public/_nuxt/Dqj2h40U.js +1 -0
  55. package/.output/public/_nuxt/{BCipft_k2.js → DsUUYP292.js} +1 -1
  56. package/.output/public/_nuxt/DtBu71ev.js +32 -0
  57. package/.output/public/_nuxt/{fQUs58kX2.js → DvgKXPgu2.js} +1 -1
  58. package/.output/public/_nuxt/{C_gFA2H_2.js → DxrgFxIr2.js} +1 -1
  59. package/.output/public/_nuxt/Dy-mxvXY2.js +1 -0
  60. package/.output/public/_nuxt/G0qIw7Gq2.js +1 -0
  61. package/.output/public/_nuxt/{DCEyMaN-.js → MyA0Oeqd.js} +3 -3
  62. package/.output/public/_nuxt/{tRBT-plo.js → OV6PBW2z.js} +1 -1
  63. package/.output/public/_nuxt/TownView.BHLKAjEu.css +1 -0
  64. package/.output/public/_nuxt/VLI2Zy4t.js +5 -0
  65. package/.output/public/_nuxt/_id_.DIxEKj88.css +1 -0
  66. package/.output/public/_nuxt/_id_.DTvjd6VN.css +1 -0
  67. package/.output/public/_nuxt/{_wsId_.COUzMXpP.css → _wsId_.BFyCuUwS.css} +1 -1
  68. package/.output/public/_nuxt/agents.CEbox5-D.css +1 -0
  69. package/.output/public/_nuxt/builds/latest.json +1 -1
  70. package/.output/public/_nuxt/builds/meta/92d6bd39-dbc5-46d5-90d8-8387f36715fa.json +1 -0
  71. package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +1 -0
  72. package/.output/public/_nuxt/daq.6IrhVVfy.css +1 -0
  73. package/.output/public/_nuxt/dcw.DcDjwvqv.css +1 -0
  74. package/.output/public/_nuxt/{default.V3_hUJq1.css → default.BR3e5fPY.css} +1 -1
  75. package/.output/public/_nuxt/{entry.DvlXlPwx.css → entry.5qf6EqfN.css} +1 -1
  76. package/.output/public/_nuxt/{Cyk3du4K2.js → kZV5TQvh2.js} +1 -1
  77. package/.output/public/_nuxt/logs.BO-BSyjm.css +1 -0
  78. package/.output/public/_nuxt/{D4qXvjuV.js → niDwBOZW.js} +2 -2
  79. package/.output/public/_nuxt/pKv_VWR4.js +1 -0
  80. package/.output/public/_nuxt/plugins.Clsky_kl.css +1 -0
  81. package/.output/public/_nuxt/rqZ-1SoP.js +2 -0
  82. package/.output/public/_nuxt/teams.CUMnbQGf.css +1 -0
  83. package/.output/public/_nuxt/tokens.BPLe9ioQ.css +1 -0
  84. package/.output/public/_nuxt/{C8dxXc6K.js → u7KWCGSb.js} +1 -1
  85. package/.output/public/_nuxt/{Bi6AiCuP.js → vJ4FPb-_.js} +1 -1
  86. package/.output/public/_nuxt/wirVyscc.js +1 -0
  87. package/.output/public/_nuxt/workshop.BIdoGfoC.css +1 -0
  88. package/.output/server/chunks/_/nitro.mjs +2042 -1967
  89. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  90. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs → TownView-D8DSdO3H.mjs} +182 -181
  91. package/.output/server/chunks/build/{TownView-B5KifIaT.mjs.map → TownView-D8DSdO3H.mjs.map} +1 -1
  92. package/.output/server/chunks/build/{_id_-Ct4Jhvl1.mjs → _id_-BV4FfiYd.mjs} +37 -36
  93. package/.output/server/chunks/build/_id_-BV4FfiYd.mjs.map +1 -0
  94. package/.output/server/chunks/build/{_id_-C-ewLgfl.mjs → _id_-TP9hvnBM.mjs} +126 -125
  95. package/.output/server/chunks/build/_id_-TP9hvnBM.mjs.map +1 -0
  96. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs → _wsId_-Mm9sQSz2.mjs} +125 -124
  97. package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs.map → _wsId_-Mm9sQSz2.mjs.map} +1 -1
  98. package/.output/server/chunks/build/{agents-DSOptxXA.mjs → agents-To3a5xcZ.mjs} +16 -15
  99. package/.output/server/chunks/build/agents-To3a5xcZ.mjs.map +1 -0
  100. package/.output/server/chunks/build/api-error-dul30BYQ.mjs +47 -0
  101. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -0
  102. package/.output/server/chunks/build/{channel-templates-BK0KuPOd.mjs → channel-templates-DRsP-qxl.mjs} +23 -22
  103. package/.output/server/chunks/build/channel-templates-DRsP-qxl.mjs.map +1 -0
  104. package/.output/server/chunks/build/{daq-D9RA_uze.mjs → daq-_hCEaYLd.mjs} +112 -111
  105. package/.output/server/chunks/build/daq-_hCEaYLd.mjs.map +1 -0
  106. package/.output/server/chunks/build/{dcw-BTM5YU-B.mjs → dcw-C7pJ4Y0p.mjs} +47 -46
  107. package/.output/server/chunks/build/dcw-C7pJ4Y0p.mjs.map +1 -0
  108. package/.output/server/chunks/build/{default-BfWGTlbj.mjs → default-Dnjs36e8.mjs} +16 -15
  109. package/.output/server/chunks/build/{default-BfWGTlbj.mjs.map → default-Dnjs36e8.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{logs-Dyk0I2I9.mjs → logs-C039TFW1.mjs} +38 -37
  111. package/.output/server/chunks/build/logs-C039TFW1.mjs.map +1 -0
  112. package/.output/server/chunks/build/{pages-DR2bzczM.mjs → pages-C_VSGSGo.mjs} +5 -4
  113. package/.output/server/chunks/build/pages-C_VSGSGo.mjs.map +1 -0
  114. package/.output/server/chunks/build/{plugins-DnOBIWGg.mjs → plugins-4FMWkN8d.mjs} +25 -22
  115. package/.output/server/chunks/build/plugins-4FMWkN8d.mjs.map +1 -0
  116. package/.output/server/chunks/build/table-Cswq-l2r.mjs +1 -1
  117. package/.output/server/chunks/build/{teams-BhSKBBBM.mjs → teams-DA1lkf1n.mjs} +19 -18
  118. package/.output/server/chunks/build/teams-DA1lkf1n.mjs.map +1 -0
  119. package/.output/server/chunks/build/{tokens-D_eyxmcv.mjs → tokens-DKMvvk3e.mjs} +18 -17
  120. package/.output/server/chunks/build/tokens-DKMvvk3e.mjs.map +1 -0
  121. package/.output/server/chunks/build/{town-DPtOPRRO.mjs → town-D0thZ7PK.mjs} +6 -5
  122. package/.output/server/chunks/build/town-D0thZ7PK.mjs.map +1 -0
  123. package/.output/server/chunks/build/{useDaqStream-hwkhJHFU.mjs → useDaqStream-BVTRw8_H.mjs} +5 -4
  124. package/.output/server/chunks/build/useDaqStream-BVTRw8_H.mjs.map +1 -0
  125. package/.output/server/chunks/build/{useDcwStream-Bdew_yrr.mjs → useDcwStream-DNsivqI_.mjs} +5 -4
  126. package/.output/server/chunks/build/useDcwStream-DNsivqI_.mjs.map +1 -0
  127. package/.output/server/chunks/build/{useDeviceTwins-C6EBg9oN.mjs → useDeviceTwins-WeIom7A6.mjs} +4 -3
  128. package/.output/server/chunks/build/useDeviceTwins-WeIom7A6.mjs.map +1 -0
  129. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -1
  130. package/.output/server/chunks/build/{useOpsLog-DdCqKVVG.mjs → useOpsLog-DcKnPO43.mjs} +5 -4
  131. package/.output/server/chunks/build/useOpsLog-DcKnPO43.mjs.map +1 -0
  132. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +1 -1
  133. package/.output/server/chunks/build/{workshop-iCzNRifn.mjs → workshop-BhWnJMWs.mjs} +50 -43
  134. package/.output/server/chunks/build/workshop-BhWnJMWs.mjs.map +1 -0
  135. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +25 -0
  136. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -0
  137. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
  138. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  139. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  140. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +3 -2
  141. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  142. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
  143. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
  144. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  145. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  146. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  147. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
  148. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
  150. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
  151. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  152. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  153. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  154. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
  155. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  156. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
  157. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  165. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  166. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  167. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +1 -1
  168. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  170. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  173. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  174. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  175. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
  176. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  179. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  180. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  181. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
  184. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -3
  193. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  194. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -3
  195. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  196. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  197. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  199. package/.output/server/chunks/routes/renderer.mjs +2 -2
  200. package/.output/server/chunks/virtual/entry.mjs +57 -23
  201. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  202. package/.output/server/package.json +1 -1
  203. package/README-zh.md +27 -7
  204. package/README.md +455 -435
  205. package/app/components/AppHeader.vue +1 -1
  206. package/app/components/workshop/A2aRpcDebugger.vue +1 -1
  207. package/app/components/workshop/AgentInspectorDrawer.vue +3 -3
  208. package/app/components/workshop/AgentLanesView.vue +6 -6
  209. package/app/components/workshop/AssetLibrary.vue +2 -2
  210. package/app/components/workshop/ChannelSessionList.vue +5 -5
  211. package/app/components/workshop/Composer.vue +1 -1
  212. package/app/components/workshop/DeviceTwinPanel.vue +2 -2
  213. package/app/components/workshop/TaskBoardView.vue +1 -1
  214. package/app/components/workshop/TaskInspectorDrawer.vue +2 -2
  215. package/app/components/workshop/town/TownView.vue +23 -23
  216. package/app/composables/workshop/apiClient.ts +1 -1
  217. package/app/composables/workshop/useCharacterAssets.ts +1 -1
  218. package/app/composables/workshop/useDaqStream.ts +1 -1
  219. package/app/composables/workshop/useDcwStream.ts +1 -1
  220. package/app/composables/workshop/useDeviceTwins.ts +1 -1
  221. package/app/composables/workshop/useOpsLog.ts +2 -2
  222. package/app/composables/workshop/useSceneLayouts.ts +1 -1
  223. package/app/pages/daq/[id].vue +1 -1
  224. package/app/pages/daq/index.vue +8 -8
  225. package/app/pages/dcw/[id].vue +13 -13
  226. package/app/pages/dcw/index.vue +7 -7
  227. package/app/pages/logs/index.vue +1 -1
  228. package/app/pages/plugins/index.vue +14 -6
  229. package/app/pages/tokens.vue +3 -3
  230. package/app/pages/workshop/agents.vue +2 -2
  231. package/app/pages/workshop/channel-templates.vue +3 -3
  232. package/app/pages/workshop/index.vue +29 -10
  233. package/app/pages/workshop/teams.vue +3 -3
  234. package/app/utils/api-error.ts +75 -0
  235. package/cli/commands/plugin.mjs +2 -2
  236. package/config.yml +11 -1
  237. package/i18n/dicts/settings.json +4 -0
  238. package/i18n/locales/en.ts +20 -3
  239. package/i18n/locales/zh-CN.ts +20 -3
  240. package/package.json +1 -1
  241. package/scripts/_dbg-codex-handshake.ts +30 -0
  242. package/scripts/_dbg-codex-sandbox.ts +58 -0
  243. package/scripts/_dbg-codex-turn.ts +65 -0
  244. package/scripts/_dbg-interval-config.mjs +156 -0
  245. package/scripts/_dbg-plugins-e2e.mjs +101 -0
  246. package/scripts/_dbg-repo-setup-verify.mjs +31 -0
  247. package/scripts/_dbg-setup-e2e.mjs +88 -0
  248. package/scripts/e2e-harness-provider-task.mjs +126 -0
  249. package/server/api/users/setup-status.get.ts +8 -0
  250. package/server/api/workshop/daq/[id]/samples.get.ts +4 -2
  251. package/server/api/workshop/plugins/[name]/disable.post.ts +5 -3
  252. package/server/api/workshop/plugins/[name]/enable.post.ts +5 -3
  253. package/server/data/daqs.json +138 -42
  254. package/server/data/dcw-lines.json +28 -0
  255. package/server/data/dcw-products.json +140 -0
  256. package/server/data/dcw-recipes.json +506 -0
  257. package/server/data/dcw-rollback.json +226 -6
  258. package/server/data/dcw-runs.json +1807 -1690
  259. package/server/data/dcw-writes.json +240 -0
  260. package/server/data/dcws.json +673 -173
  261. package/server/data/line-runs.json +26 -6
  262. package/server/plugins/security.ts +46 -50
  263. package/server/repositories/user.repository.ts +384 -414
  264. package/server/services/system-config.ts +7 -0
  265. package/server/services/user.service.ts +8 -3
  266. package/server/services/workshop/agents/adapters/line-spawn.ts +6 -3
  267. package/server/services/workshop/agents/host-tool-bridge.ts +21 -1
  268. package/server/services/workshop/agents/industrial-tools.ts +5 -3
  269. package/server/services/workshop/daq/daq-controller.ts +34 -6
  270. package/server/services/workshop/daq/daq-node.ts +3 -3
  271. package/server/services/workshop/daq/daq-runtime.ts +4 -3
  272. package/server/services/workshop/daq/storage/sqlite.adapter.ts +10 -5
  273. package/server/services/workshop/dcw/dcw-controller.ts +4 -2
  274. package/server/services/workshop/plugins/host.mjs +2 -1
  275. package/server/services/workshop/settings.ts +33 -0
  276. package/shared/config/schema.json +4 -0
  277. package/.output/public/_nuxt/2LwEn9gX.js +0 -2
  278. package/.output/public/_nuxt/3612gD2V.js +0 -32
  279. package/.output/public/_nuxt/8eIQAVlb.js +0 -1
  280. package/.output/public/_nuxt/Ah9qOv1m.js +0 -1
  281. package/.output/public/_nuxt/B7aqqzkY.js +0 -1
  282. package/.output/public/_nuxt/BH0Z05CS.js +0 -1
  283. package/.output/public/_nuxt/BJvGPTpC.js +0 -1
  284. package/.output/public/_nuxt/BVZjSVs2.js +0 -1
  285. package/.output/public/_nuxt/BVzDoF8t.js +0 -1
  286. package/.output/public/_nuxt/BjVLsC3M.js +0 -1
  287. package/.output/public/_nuxt/BnVoQ74r.js +0 -1
  288. package/.output/public/_nuxt/Bnp4vIAf.js +0 -1
  289. package/.output/public/_nuxt/Bt_HDizI.js +0 -5
  290. package/.output/public/_nuxt/Bu-P92Pe.js +0 -18
  291. package/.output/public/_nuxt/ButLXkjo.js +0 -2
  292. package/.output/public/_nuxt/By-LNp3k.js +0 -1
  293. package/.output/public/_nuxt/C-GarxYC.js +0 -1
  294. package/.output/public/_nuxt/CGdPdJPP.js +0 -1
  295. package/.output/public/_nuxt/CQiKcuoG.js +0 -14
  296. package/.output/public/_nuxt/CRGlf1Gb.js +0 -1
  297. package/.output/public/_nuxt/CS8R0_J3.js +0 -1
  298. package/.output/public/_nuxt/CUxV8Bw_.js +0 -1
  299. package/.output/public/_nuxt/Cd15nPnG2.js +0 -1
  300. package/.output/public/_nuxt/DNJSkm3Q.js +0 -1
  301. package/.output/public/_nuxt/DXK1U43I.js +0 -1
  302. package/.output/public/_nuxt/Dk6pq9JB2.js +0 -1
  303. package/.output/public/_nuxt/GP2wXyuY.js +0 -1
  304. package/.output/public/_nuxt/PQLnLxYe.js +0 -1
  305. package/.output/public/_nuxt/TownView.Bt33bo1M.css +0 -1
  306. package/.output/public/_nuxt/_id_.BzKMZnLe.css +0 -1
  307. package/.output/public/_nuxt/_id_.CbpDAWRh.css +0 -1
  308. package/.output/public/_nuxt/agents.BlejnOOC.css +0 -1
  309. package/.output/public/_nuxt/builds/meta/14df171d-89cb-43ec-ad6f-9df72d6da7f5.json +0 -1
  310. package/.output/public/_nuxt/channel-templates.lkqEYlWY.css +0 -1
  311. package/.output/public/_nuxt/daq.zZ8GR433.css +0 -1
  312. package/.output/public/_nuxt/dcw.C46dGiF_.css +0 -1
  313. package/.output/public/_nuxt/eHGLpQSg2.js +0 -1
  314. package/.output/public/_nuxt/logs.DaIsHWZE.css +0 -1
  315. package/.output/public/_nuxt/p7wSGMtc.js +0 -1
  316. package/.output/public/_nuxt/plugins.FTm0PcEe.css +0 -1
  317. package/.output/public/_nuxt/teams.B8JNbUZg.css +0 -1
  318. package/.output/public/_nuxt/tokens.CWOTXM-Z.css +0 -1
  319. package/.output/public/_nuxt/ubPfs9mQ.js +0 -1
  320. package/.output/public/_nuxt/workshop.B98sHiJq.css +0 -1
  321. package/.output/server/chunks/build/_id_-C-ewLgfl.mjs.map +0 -1
  322. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +0 -1
  323. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +0 -1
  324. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +0 -1
  325. package/.output/server/chunks/build/daq-D9RA_uze.mjs.map +0 -1
  326. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +0 -1
  327. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs.map +0 -1
  328. package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +0 -1
  329. package/.output/server/chunks/build/plugins-DnOBIWGg.mjs.map +0 -1
  330. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +0 -1
  331. package/.output/server/chunks/build/tokens-D_eyxmcv.mjs.map +0 -1
  332. package/.output/server/chunks/build/town-DPtOPRRO.mjs.map +0 -1
  333. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs.map +0 -1
  334. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +0 -1
  335. package/.output/server/chunks/build/useDeviceTwins-C6EBg9oN.mjs.map +0 -1
  336. package/.output/server/chunks/build/useOpsLog-DdCqKVVG.mjs.map +0 -1
  337. package/.output/server/chunks/build/workshop-iCzNRifn.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, V as getQuery, an as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, V as getQuery, ao as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, o as readBody, ar as getDcwTemplateRegistry } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, o as readBody, as as getDcwTemplateRegistry } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, an as getRecipeRollBackManager, U as audit } from '../../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, ao as getRecipeRollBackManager, U as audit } from '../../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, V as getQuery, am as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, V as getQuery, an as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, am as getDcwController, ab as getActiveLineRun, a4 as recordOps, ap as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, an as getDcwController, ab as getActiveLineRun, a4 as recordOps, aq as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, ab as getActiveLineRun, am as getDcwController, a4 as recordOps, ap as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, ab as getActiveLineRun, an as getDcwController, a4 as recordOps, aq as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, V as getQuery, a8 as getDcwLineRepo, am as getDcwController, a4 as recordOps } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, V as getQuery, a8 as getDcwLineRepo, an as getDcwController, a4 as recordOps } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, o as readBody, am as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, o as readBody, an as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, H as AppError, aq as ErrorCodes, an as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, H as AppError, ar as ErrorCodes, ao as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, al as gateDangerous, u as useRuntimeConfig, R as setResponseStatus, an as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, am as gateDangerous, u as useRuntimeConfig, R as setResponseStatus, ao as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, V as getQuery, an as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, V as getQuery, ao as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, an as getRecipeRollBackManager, H as AppError, aq as ErrorCodes } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, ao as getRecipeRollBackManager, H as AppError, ar as ErrorCodes } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, am as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, an as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, am as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, an as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, al as gateDangerous, u as useRuntimeConfig, R as setResponseStatus, am as getDcwController, a4 as recordOps } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, o as readBody, am as gateDangerous, u as useRuntimeConfig, R as setResponseStatus, an as getDcwController, a4 as recordOps } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, o as readBody, H as AppError, aq as ErrorCodes, a9 as getDcwRecipeRepo, U as audit } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, o as readBody, H as AppError, ar as ErrorCodes, a9 as getDcwRecipeRepo, U as audit } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, an as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, ao as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, am as getDcwController } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, an as getDcwController } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, am as getDcwController } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, an as getDcwController } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, an as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, q as getRouterParam, ao as getRecipeRollBackManager, U as audit } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, ar as getDcwTemplateRegistry } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, as as getDcwTemplateRegistry } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, o as readBody, ar as getDcwTemplateRegistry } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, o as readBody, as as getDcwTemplateRegistry } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, o as readBody, am as getDcwController } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, o as readBody, an as getDcwController } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, f as getDeviceTwinRepo, H as AppError, a3 as getDaqController, am as getDcwController, a2 as broadcastSceneEvent } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, f as getDeviceTwinRepo, H as AppError, a3 as getDaqController, an as getDcwController, a2 as broadcastSceneEvent } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { at as StdioJsonRpcClient, au as spawnLineProcess, c as defineApiHandler, q as getRouterParam } from '../../../../../_/nitro.mjs';
1
+ import { au as StdioJsonRpcClient, av as spawnLineProcess, c as defineApiHandler, q as getRouterParam } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import { resolve, sep } from 'node:path';
4
4
  import 'node:crypto';
@@ -1,5 +1,5 @@
1
1
  import { resolveUser } from './caller.mjs';
2
- import { c as defineApiHandler, as as harnessMetas } from '../../../_/nitro.mjs';
2
+ import { c as defineApiHandler, at as harnessMetas } from '../../../_/nitro.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, V as getQuery, g as getWorkshopManager, av as getHitlRegistry } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, V as getQuery, g as getWorkshopManager, aw as getHitlRegistry } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, o as readBody, H as AppError, av as getHitlRegistry, g as getWorkshopManager, z as respondTerminalUi, U as audit, T as getToolApprovals } from '../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, o as readBody, H as AppError, aw as getHitlRegistry, g as getWorkshopManager, z as respondTerminalUi, U as audit, T as getToolApprovals } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,5 @@
1
1
  import { resolveUser } from './caller.mjs';
2
- import { c as defineApiHandler, a2 as broadcastSceneEvent, ad as tsdbReady, ae as getDaqQueue, a3 as getDaqController, af as listDaqTemplates, ag as daqInfraStatus } from '../../../_/nitro.mjs';
2
+ import { c as defineApiHandler, a2 as broadcastSceneEvent, ae as tsdbReady, af as getDaqQueue, a3 as getDaqController, ag as listDaqTemplates, ah as daqInfraStatus } from '../../../_/nitro.mjs';
3
3
  import { b as bindDaqHost } from '../../../_/host-bindings.mjs';
4
4
  import 'node:crypto';
5
5
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, o as readBody, am as getDcwController, U as audit } from '../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, o as readBody, an as getDcwController, U as audit } from '../../../_/nitro.mjs';
2
2
  import { resolveUser } from './caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,5 @@
1
1
  import { resolveUser } from './caller.mjs';
2
- import { c as defineApiHandler, ak as bindDcwBroadcast, a2 as broadcastSceneEvent, am as getDcwController, ao as listDcwTemplates } from '../../../_/nitro.mjs';
2
+ import { c as defineApiHandler, al as bindDcwBroadcast, a2 as broadcastSceneEvent, an as getDcwController, ap as listDcwTemplates } from '../../../_/nitro.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, o as readBody, H as AppError, aq as ErrorCodes, a4 as recordOps } from '../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, o as readBody, H as AppError, ar as ErrorCodes, a4 as recordOps } from '../../../_/nitro.mjs';
2
2
  import { resolveUser } from './caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,5 @@
1
- import { h as defineEventHandler, x as pluginManifest, n as createError, aw as setPluginEnabled, ax as reloadPluginHost } from '../../../../../_/nitro.mjs';
2
1
  import { resolveUser, requireAdmin } from '../../caller.mjs';
2
+ import { c as defineApiHandler, x as pluginManifest, H as AppError, ar as ErrorCodes, ax as setPluginEnabled, ay as reloadPluginHost } from '../../../../../_/nitro.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -18,13 +18,13 @@ import 'node:module';
18
18
  import 'node:fs/promises';
19
19
  import 'node:zlib';
20
20
 
21
- const disable_post = defineEventHandler(async (event) => {
21
+ const disable_post = defineApiHandler(async (event) => {
22
22
  var _a, _b, _c;
23
23
  const user = resolveUser(event);
24
24
  requireAdmin(event);
25
25
  const name = String((_b = (_a = event.context.params) == null ? void 0 : _a.name) != null ? _b : "");
26
26
  if (!pluginManifest().some((p2) => p2.name === name)) {
27
- throw createError({ statusCode: 404, statusMessage: `plugin not found: ${name}` });
27
+ throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63D2\u4EF6\u4E0D\u5B58\u5728: ${name}`);
28
28
  }
29
29
  setPluginEnabled(name, false);
30
30
  await reloadPluginHost();
@@ -1 +1 @@
1
- {"version":3,"file":"disable.post.mjs","sources":["../../../../../../../../server/api/workshop/plugins/[name]/disable.post.ts"],"names":["p"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,qBAAe,kBAAA,CAAmB,OAAO,KAAA,KAAU;AAPnD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAQE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,YAAA,CAAa,KAAK,CAAA;AAClB,EAAA,MAAM,IAAA,GAAO,QAAO,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAAA,CAAQ,WAAd,IAAA,GAAA,MAAA,GAAA,EAAA,CAAsB,IAAA,KAAtB,YAA8B,EAAE,CAAA;AACpD,EAAA,IAAI,CAAC,gBAAe,CAAE,IAAA,CAAK,CAAAA,EAAAA,KAAKA,EAAAA,CAAE,IAAA,KAAS,IAAI,CAAA,EAAG;AAChD,IAAA,MAAM,WAAA,CAAY,EAAE,UAAA,EAAY,GAAA,EAAK,eAAe,CAAA,kBAAA,EAAqB,IAAI,IAAI,CAAA;AAAA,EACnF;AACA,EAAA,gBAAA,CAAiB,MAAM,KAAK,CAAA;AAC5B,EAAA,MAAM,gBAAA,EAAiB;AACvB,EAAA,MAAM,IAAI,cAAA,EAAe,CAAE,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAI,CAAA;AACpD,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,OAAA,EAAA,CAAS,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,YAAH,IAAA,GAAA,EAAA,GAAc,KAAA,EAAO,EAAA,EAAI,IAAA,CAAK,IAAA,EAAK;AACjE,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"disable.post.mjs","sources":["../../../../../../../../server/api/workshop/plugins/[name]/disable.post.ts"],"names":["p"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,qBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAUE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,YAAA,CAAa,KAAK,CAAA;AAClB,EAAA,MAAM,IAAA,GAAO,QAAO,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAAA,CAAQ,WAAd,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,IAAA,KAAtB,YAA8B,EAAE,CAAA;AACpD,EAAA,IAAI,CAAC,gBAAe,CAAE,IAAA,CAAK,CAAAA,EAAAA,KAAKA,EAAAA,CAAE,IAAA,KAAS,IAAI,CAAA,EAAG;AAChD,IAAA,MAAM,IAAI,QAAA,CAAS,GAAA,EAAK,WAAW,SAAA,EAAW,CAAA,gCAAA,EAAU,IAAI,CAAA,CAAE,CAAA;AAAA,EAChE;AACA,EAAA,gBAAA,CAAiB,MAAM,KAAK,CAAA;AAC5B,EAAA,MAAM,gBAAA,EAAiB;AACvB,EAAA,MAAM,IAAI,cAAA,EAAe,CAAE,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAI,CAAA;AACpD,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,OAAA,EAAA,CAAS,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,YAAH,IAAA,GAAA,EAAA,GAAc,KAAA,EAAO,EAAA,EAAI,IAAA,CAAK,IAAA,EAAK;AACjE,CAAC,CAAA;;;;"}
@@ -1,5 +1,5 @@
1
- import { h as defineEventHandler, x as pluginManifest, n as createError, aw as setPluginEnabled, ax as reloadPluginHost } from '../../../../../_/nitro.mjs';
2
1
  import { resolveUser, requireAdmin } from '../../caller.mjs';
2
+ import { c as defineApiHandler, x as pluginManifest, H as AppError, ar as ErrorCodes, ax as setPluginEnabled, ay as reloadPluginHost } from '../../../../../_/nitro.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -18,13 +18,13 @@ import 'node:module';
18
18
  import 'node:fs/promises';
19
19
  import 'node:zlib';
20
20
 
21
- const enable_post = defineEventHandler(async (event) => {
21
+ const enable_post = defineApiHandler(async (event) => {
22
22
  var _a, _b, _c;
23
23
  const user = resolveUser(event);
24
24
  requireAdmin(event);
25
25
  const name = String((_b = (_a = event.context.params) == null ? void 0 : _a.name) != null ? _b : "");
26
26
  if (!pluginManifest().some((p2) => p2.name === name)) {
27
- throw createError({ statusCode: 404, statusMessage: `plugin not found: ${name}` });
27
+ throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63D2\u4EF6\u4E0D\u5B58\u5728: ${name}`);
28
28
  }
29
29
  setPluginEnabled(name, true);
30
30
  await reloadPluginHost();
@@ -1 +1 @@
1
- {"version":3,"file":"enable.post.mjs","sources":["../../../../../../../../server/api/workshop/plugins/[name]/enable.post.ts"],"names":["p"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,oBAAe,kBAAA,CAAmB,OAAO,KAAA,KAAU;AAPnD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAQE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,YAAA,CAAa,KAAK,CAAA;AAClB,EAAA,MAAM,IAAA,GAAO,QAAO,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAAA,CAAQ,WAAd,IAAA,GAAA,MAAA,GAAA,EAAA,CAAsB,IAAA,KAAtB,YAA8B,EAAE,CAAA;AACpD,EAAA,IAAI,CAAC,gBAAe,CAAE,IAAA,CAAK,CAAAA,EAAAA,KAAKA,EAAAA,CAAE,IAAA,KAAS,IAAI,CAAA,EAAG;AAChD,IAAA,MAAM,WAAA,CAAY,EAAE,UAAA,EAAY,GAAA,EAAK,eAAe,CAAA,kBAAA,EAAqB,IAAI,IAAI,CAAA;AAAA,EACnF;AACA,EAAA,gBAAA,CAAiB,MAAM,IAAI,CAAA;AAC3B,EAAA,MAAM,gBAAA,EAAiB;AACvB,EAAA,MAAM,IAAI,cAAA,EAAe,CAAE,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAI,CAAA;AACpD,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,OAAA,EAAA,CAAS,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,YAAH,IAAA,GAAA,EAAA,GAAc,IAAA,EAAM,EAAA,EAAI,IAAA,CAAK,IAAA,EAAK;AAChE,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"enable.post.mjs","sources":["../../../../../../../../server/api/workshop/plugins/[name]/enable.post.ts"],"names":["p"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,oBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAUE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,YAAA,CAAa,KAAK,CAAA;AAClB,EAAA,MAAM,IAAA,GAAO,QAAO,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAAA,CAAQ,WAAd,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,IAAA,KAAtB,YAA8B,EAAE,CAAA;AACpD,EAAA,IAAI,CAAC,gBAAe,CAAE,IAAA,CAAK,CAAAA,EAAAA,KAAKA,EAAAA,CAAE,IAAA,KAAS,IAAI,CAAA,EAAG;AAChD,IAAA,MAAM,IAAI,QAAA,CAAS,GAAA,EAAK,WAAW,SAAA,EAAW,CAAA,gCAAA,EAAU,IAAI,CAAA,CAAE,CAAA;AAAA,EAChE;AACA,EAAA,gBAAA,CAAiB,MAAM,IAAI,CAAA;AAC3B,EAAA,MAAM,gBAAA,EAAiB;AACvB,EAAA,MAAM,IAAI,cAAA,EAAe,CAAE,KAAK,CAAA,CAAA,KAAK,CAAA,CAAE,SAAS,IAAI,CAAA;AACpD,EAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,OAAA,EAAA,CAAS,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,YAAH,IAAA,GAAA,EAAA,GAAc,IAAA,EAAM,EAAA,EAAI,IAAA,CAAK,IAAA,EAAK;AAChE,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, g as getWorkshopManager, H as AppError, ay as publishSceneLayoutEvent } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, g as getWorkshopManager, H as AppError, az as publishSceneLayoutEvent } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import { g as getSceneLayoutRepo } from '../../../../../_/scene-layout.repo.mjs';
4
4
  import 'node:crypto';
@@ -1,4 +1,4 @@
1
- import { c as defineApiHandler, q as getRouterParam, o as readBody, g as getWorkshopManager, ay as publishSceneLayoutEvent } from '../../../../../_/nitro.mjs';
1
+ import { c as defineApiHandler, q as getRouterParam, o as readBody, g as getWorkshopManager, az as publishSceneLayoutEvent } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import { g as getSceneLayoutRepo } from '../../../../../_/scene-layout.repo.mjs';
4
4
  import 'node:crypto';
@@ -33,7 +33,7 @@ const _tplId__post = defineApiHandler(async (event) => {
33
33
  if (result.leadAgentId) {
34
34
  ensureLeadSchedulerLoop(manager, result.channelId);
35
35
  }
36
- const { ensureStream } = await import('../../../../../../_/nitro.mjs').then(function (n) { return n.a$; });
36
+ const { ensureStream } = await import('../../../../../../_/nitro.mjs').then(function (n) { return n.b0; });
37
37
  ensureStream(manager, result.channelId);
38
38
  return result;
39
39
  });
@@ -1,4 +1,4 @@
1
- import { u as useRuntimeConfig, az as encodePath, aA as buildAssetsURL, aB as publicAssetsURL, aC as defineRenderHandler, V as getQuery, n as createError, d as destr, aD as getRouteRules, aE as relative, aF as joinURL, aG as getResponseStatusText, aH as getResponseStatus, b as useNitroApp } from '../_/nitro.mjs';
1
+ import { u as useRuntimeConfig, aA as encodePath, aB as buildAssetsURL, aC as publicAssetsURL, aD as defineRenderHandler, V as getQuery, n as createError, d as destr, aE as getRouteRules, aF as relative, aG as joinURL, aH as getResponseStatusText, aI as getResponseStatus, b as useNitroApp } from '../_/nitro.mjs';
2
2
  import { createHead as createHead$1, propsToString, renderSSRHead } from 'unhead/server';
3
3
  import { hasInjectionContext, inject, isRef, toValue } from 'vue';
4
4
  import { DeprecationsPlugin } from 'unhead/legacy';
@@ -230,7 +230,7 @@ function encodeForwardSlashes(str) {
230
230
 
231
231
  const renderSSRHeadOptions = {"omitLineBreaks":true};
232
232
 
233
- const entryFileName = "CQiKcuoG.js";
233
+ const entryFileName = "B1kA8LhC.js";
234
234
 
235
235
  //#region src/runtime/handlers/renderer.ts
236
236
  globalThis.__buildAssetsURL = buildAssetsURL;
@@ -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 { aI as createHooks, n as createError, aJ as sanitizeStatusCode, aK as klona, P as getRequestHeader, aL as isEqual$1, aM as setCookie, aN as getCookie, aO as deleteCookie, aP as $fetch, aQ as baseURL, k as getRequestHeaders, aR as defu, aS as getRequestProtocol, aT as appendResponseHeader } from '../_/nitro.mjs';
2
+ import { aJ as createHooks, n as createError, aK as sanitizeStatusCode, aL as klona, Q as getRequestHeader, aM as isEqual$1, aN as setCookie, aO as getCookie, aP as deleteCookie, aQ as $fetch, aR as baseURL, k as getRequestHeaders, aS as defu, aT as getRequestProtocol, aU 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';
@@ -9353,52 +9353,52 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9353
9353
  name: "workshop-w-wsId",
9354
9354
  path: "/workshop/w/:wsId()",
9355
9355
  meta: { layout: "default" },
9356
- component: () => import('../build/_wsId_-CanI_6Su.mjs')
9356
+ component: () => import('../build/_wsId_-Mm9sQSz2.mjs')
9357
9357
  },
9358
9358
  {
9359
9359
  name: "workshop-agents",
9360
9360
  path: "/workshop/agents",
9361
9361
  meta: { layout: "default" },
9362
- component: () => import('../build/agents-DSOptxXA.mjs')
9362
+ component: () => import('../build/agents-To3a5xcZ.mjs')
9363
9363
  },
9364
9364
  {
9365
9365
  name: "workshop-channel-templates",
9366
9366
  path: "/workshop/channel-templates",
9367
9367
  meta: { layout: "default" },
9368
- component: () => import('../build/channel-templates-BK0KuPOd.mjs')
9368
+ component: () => import('../build/channel-templates-DRsP-qxl.mjs')
9369
9369
  },
9370
9370
  {
9371
9371
  name: "workshop-teams",
9372
9372
  path: "/workshop/teams",
9373
9373
  meta: { layout: "default" },
9374
- component: () => import('../build/teams-BhSKBBBM.mjs')
9374
+ component: () => import('../build/teams-DA1lkf1n.mjs')
9375
9375
  },
9376
9376
  {
9377
9377
  name: "daq-id",
9378
9378
  path: "/daq/:id()",
9379
9379
  meta: { layout: "default" },
9380
- component: () => import('../build/_id_-Ct4Jhvl1.mjs')
9380
+ component: () => import('../build/_id_-BV4FfiYd.mjs')
9381
9381
  },
9382
9382
  {
9383
9383
  name: "dcw-id",
9384
9384
  path: "/dcw/:id()",
9385
- component: () => import('../build/_id_-C-ewLgfl.mjs')
9385
+ component: () => import('../build/_id_-TP9hvnBM.mjs')
9386
9386
  },
9387
9387
  {
9388
9388
  name: "daq",
9389
9389
  path: "/daq",
9390
9390
  meta: { layout: "default" },
9391
- component: () => import('../build/daq-D9RA_uze.mjs')
9391
+ component: () => import('../build/daq-_hCEaYLd.mjs')
9392
9392
  },
9393
9393
  {
9394
9394
  name: "dcw",
9395
9395
  path: "/dcw",
9396
- component: () => import('../build/dcw-BTM5YU-B.mjs')
9396
+ component: () => import('../build/dcw-C7pJ4Y0p.mjs')
9397
9397
  },
9398
9398
  {
9399
9399
  name: "logs",
9400
9400
  path: "/logs",
9401
- component: () => import('../build/logs-Dyk0I2I9.mjs')
9401
+ component: () => import('../build/logs-C039TFW1.mjs')
9402
9402
  },
9403
9403
  {
9404
9404
  name: "monitor",
@@ -9409,7 +9409,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9409
9409
  {
9410
9410
  name: "plugins",
9411
9411
  path: "/plugins",
9412
- component: () => import('../build/plugins-DnOBIWGg.mjs')
9412
+ component: () => import('../build/plugins-4FMWkN8d.mjs')
9413
9413
  },
9414
9414
  {
9415
9415
  name: "settings",
@@ -9420,7 +9420,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9420
9420
  name: "tokens",
9421
9421
  path: "/tokens",
9422
9422
  meta: { layout: "default" },
9423
- component: () => import('../build/tokens-D_eyxmcv.mjs')
9423
+ component: () => import('../build/tokens-DKMvvk3e.mjs')
9424
9424
  },
9425
9425
  {
9426
9426
  name: "town",
@@ -9429,7 +9429,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9429
9429
  layout: "town",
9430
9430
  title: "Digital Twin"
9431
9431
  },
9432
- component: () => import('../build/town-DPtOPRRO.mjs')
9432
+ component: () => import('../build/town-D0thZ7PK.mjs')
9433
9433
  },
9434
9434
  {
9435
9435
  name: "users",
@@ -9440,12 +9440,12 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9440
9440
  name: "workshop",
9441
9441
  path: "/workshop",
9442
9442
  meta: { layout: "default" },
9443
- component: () => import('../build/workshop-iCzNRifn.mjs')
9443
+ component: () => import('../build/workshop-BhWnJMWs.mjs')
9444
9444
  },
9445
9445
  {
9446
9446
  name: "index",
9447
9447
  path: "/",
9448
- component: () => import('../build/pages-DR2bzczM.mjs')
9448
+ component: () => import('../build/pages-C_VSGSGo.mjs')
9449
9449
  }
9450
9450
  ];
9451
9451
  //#endregion
@@ -13069,6 +13069,10 @@ var zh_CN_default$1 = {
13069
13069
  "runtime.daq.mqttPassword": "MQTT 密码",
13070
13070
  "runtime.daq.mqttCaFile": "MQTT CA 证书",
13071
13071
  "runtime.daq.mqttRejectUnauthorized": "MQTT 校验证书",
13072
+ "runtime.daq.samplingDefaultIntervalMs": "节点采样默认间隔(ms)",
13073
+ "runtime.daq.samplingMinIntervalMs": "节点采样下限(ms)",
13074
+ "runtime.daq.queryDefaultBucketMs": "时序查询默认间隔(ms)",
13075
+ "runtime.daq.queryMinBucketMs": "时序查询下限(ms)",
13072
13076
  "runtime.daq.tsRetentionH": "标量时序保留(h)",
13073
13077
  "runtime.daq.frameRetentionH": "帧元数据保留(h)",
13074
13078
  "runtime.daq.alarmWebhookUrl": "告警 Webhook",
@@ -14756,12 +14760,15 @@ var zh_CN_default$1 = {
14756
14760
  },
14757
14761
  plugins: {
14758
14762
  title: "插件管理",
14759
- subtitle: "配置根 plugins/ 目录 · 启停即时热重载",
14763
+ subtitle: "内置示例与用户级扩展插件 · 启停即时热重载",
14760
14764
  refresh: "刷新",
14761
14765
  enabled: "已启用",
14762
14766
  disabled: "已停用",
14763
- scopeProject: "项目级",
14764
- scopeUser: "用户级",
14767
+ scopeProject: "内置示例",
14768
+ scopeUser: "用户级扩展",
14769
+ scopeBuiltinHint: "内置示例插件:随项目检出提供(仓库 .AgentWorkShop/plugins),可启停",
14770
+ scopeUserHint: "用户级扩展插件:位于 ~/.AgentWorkShop/plugins,由使用者自行创建维护",
14771
+ loadFail: "插件列表加载失败",
14765
14772
  hasClient: "浏览器增强",
14766
14773
  routes: "API 路由",
14767
14774
  empty: "暂无插件 —— aw plugin create <name> 创建,或 aw plugin enable 开启示例",
@@ -14770,6 +14777,16 @@ var zh_CN_default$1 = {
14770
14777
  enableFail: "启停操作失败",
14771
14778
  detail: "插件详情"
14772
14779
  },
14780
+ errors: {
14781
+ http400: "请求参数有误,请检查后重试",
14782
+ http401: "登录已过期,请重新登录",
14783
+ http403: "权限不足:该操作需要管理员权限",
14784
+ http404: "目标不存在或已被删除",
14785
+ http409: "操作冲突:资源已存在或状态不允许",
14786
+ http5xx: "服务器内部错误,请稍后重试",
14787
+ network: "无法连接服务器,请检查网络与服务状态",
14788
+ fallback: "操作失败,请稍后重试"
14789
+ },
14773
14790
  error: {
14774
14791
  backHome: "返回首页",
14775
14792
  lost: "页面走失了"
@@ -14951,6 +14968,10 @@ var en_default = {
14951
14968
  "runtime.daq.mqttPassword": "MQTT password",
14952
14969
  "runtime.daq.mqttCaFile": "MQTT CA certificate",
14953
14970
  "runtime.daq.mqttRejectUnauthorized": "MQTT verify certificate",
14971
+ "runtime.daq.samplingDefaultIntervalMs": "Default sampling interval (ms)",
14972
+ "runtime.daq.samplingMinIntervalMs": "Sampling floor (ms)",
14973
+ "runtime.daq.queryDefaultBucketMs": "Default TS query bucket (ms)",
14974
+ "runtime.daq.queryMinBucketMs": "TS query floor (ms)",
14954
14975
  "runtime.daq.tsRetentionH": "Scalar TS retention (h)",
14955
14976
  "runtime.daq.frameRetentionH": "Frame retention (h)",
14956
14977
  "runtime.daq.alarmWebhookUrl": "Alarm webhook",
@@ -16638,12 +16659,15 @@ var en_default = {
16638
16659
  },
16639
16660
  plugins: {
16640
16661
  title: "Plugins",
16641
- subtitle: "Config-root plugins/ · toggles hot-reload instantly",
16662
+ subtitle: "Built-in samples & user extensions · toggles hot-reload instantly",
16642
16663
  refresh: "Refresh",
16643
16664
  enabled: "Enabled",
16644
16665
  disabled: "Disabled",
16645
- scopeProject: "Project",
16646
- scopeUser: "User",
16666
+ scopeProject: "Built-in sample",
16667
+ scopeUser: "User extension",
16668
+ scopeBuiltinHint: "Built-in sample plugin: shipped with the project checkout (repo .AgentWorkShop/plugins), can be toggled",
16669
+ scopeUserHint: "User extension plugin: lives in ~/.AgentWorkShop/plugins, created and maintained by you",
16670
+ loadFail: "Failed to load plugin list",
16647
16671
  hasClient: "Client enhancer",
16648
16672
  routes: "API routes",
16649
16673
  empty: "No plugins yet — aw plugin create <name>, or aw plugin enable to turn on examples",
@@ -16652,6 +16676,16 @@ var en_default = {
16652
16676
  enableFail: "Toggle failed",
16653
16677
  detail: "Plugin detail"
16654
16678
  },
16679
+ errors: {
16680
+ http400: "Invalid request, please check and retry",
16681
+ http401: "Session expired, please sign in again",
16682
+ http403: "Insufficient permission: this action requires an administrator",
16683
+ http404: "Target not found or already removed",
16684
+ http409: "Conflict: resource already exists or state does not allow it",
16685
+ http5xx: "Server error, please retry later",
16686
+ network: "Cannot reach the server, check network and service status",
16687
+ fallback: "Action failed, please retry later"
16688
+ },
16655
16689
  error: {
16656
16690
  backHome: "Back to Home",
16657
16691
  lost: "Page lost"
@@ -17908,7 +17942,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
17908
17942
  //#endregion
17909
17943
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs
17910
17944
  var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Flayouts_default = {
17911
- default: defineAsyncComponent(() => import('../build/default-BfWGTlbj.mjs').then((m) => m.default || m)),
17945
+ default: defineAsyncComponent(() => import('../build/default-Dnjs36e8.mjs').then((m) => m.default || m)),
17912
17946
  town: defineAsyncComponent(() => import('../build/town-BUqRobze.mjs').then((m) => m.default || m))
17913
17947
  };
17914
17948
  //#endregion
@@ -18667,5 +18701,5 @@ const entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
18667
18701
  default: entry_default
18668
18702
  }, Symbol.toStringTag, { value: 'Module' }));
18669
18703
 
18670
- export { tuple as $, eventType as A, presetPrimaryColors as B, CloseCircleFilled as C, genFocusStyle as D, sanitizeTag as E, isValidElement as F, isFragment as G, getTransitionName as H, getStyle$1 as I, getSlot as J, Keyframe as K, getEvents as L, contains as M, hasProp as N, getComponent as O, PropTypes as P, findDOMNode as Q, useProvidePortal as R, getOptionProps as S, getMotion$1 as T, Icon as U, useInjectDisabled as V, LoadingOutlined as W, canUseDom as X, Portal_default as Y, useToken$1 as Z, _plugin_vue_export_helper_default as _, useRoute as a, useProviderSize as a0, useProviderDisabled as a1, useInjectGlobalForm as a2, ExclamationCircleFilled as a3, useLocaleReceiver as a4, localeValues$1 as a5, arrayType as a6, getTransitionGroupProps as a7, textEllipsis as a8, getTransitionDirection as a9, isEmptyElement as aA, vNodeType as aB, ExclamationCircleOutlined as aC, CloseCircleOutlined as aD, InfoCircleOutlined as aE, CheckCircleOutlined as aF, useAppStore as aG, useRuntimeConfig as aH, useRuntimeConfigStore as aI, theme_default as aJ, composables_exports as aK, storages as aL, entry as aM, DefaultRenderEmpty as aa, resetIcon as ab, clearFix as ac, getClass as ad, capitalize$1 as ae, genFocusOutline as af, isValid as ag, skipFlattenKey as ah, TinyColor as ai, camelize as aj, toPx as ak, InfoCircleFilled as al, useConfigContextInject as am, globalConfigForApi as an, ConfigProvider as ao, getConfirmLocale as ap, $fetch$2 as aq, useHttp as ar, appDiagnostics as as, en_US_default$1 as at, splitAttrs as au, zh_CN_default$2 as av, empty_default as aw, NuxtLink as ax, useNuxtApp as ay, filterEmptyWithUndefined as az, useHead$1 as b, api$1 as c, useConfigInject_default as d, _extends as e, flattenChildren as f, getPropsSlot as g, classNames as h, _objectSpread2 as i, getTransitionProps as j, genComponentStyleHook as k, filterEmpty as l, merge as m, navigateTo as n, warning$1 as o, CloseOutlined as p, CheckCircleFilled as q, someType as r, stringType as s, objectType as t, useI18n as u, anyType as v, withInstall as w, booleanType as x, functionType as y, resetComponent as z };
18704
+ export { tuple as $, eventType as A, presetPrimaryColors as B, CloseCircleFilled as C, genFocusStyle as D, sanitizeTag as E, isValidElement as F, isFragment as G, getTransitionName as H, getStyle$1 as I, getSlot as J, Keyframe as K, getEvents as L, contains as M, hasProp as N, getComponent as O, PropTypes as P, findDOMNode as Q, useProvidePortal as R, getOptionProps as S, getMotion$1 as T, Icon as U, useInjectDisabled as V, LoadingOutlined as W, canUseDom as X, Portal_default as Y, useToken$1 as Z, _plugin_vue_export_helper_default as _, useRoute as a, useProviderSize as a0, useProviderDisabled as a1, useInjectGlobalForm as a2, ExclamationCircleFilled as a3, useLocaleReceiver as a4, localeValues$1 as a5, arrayType as a6, getTransitionGroupProps as a7, textEllipsis as a8, getTransitionDirection as a9, isEmptyElement as aA, vNodeType as aB, ExclamationCircleOutlined as aC, CloseCircleOutlined as aD, InfoCircleOutlined as aE, CheckCircleOutlined as aF, useAppStore as aG, useRuntimeConfig as aH, useRuntimeConfigStore as aI, theme_default as aJ, composables_exports as aK, storages as aL, entry as aM, DefaultRenderEmpty as aa, resetIcon as ab, clearFix as ac, getClass as ad, capitalize$1 as ae, genFocusOutline as af, isValid as ag, skipFlattenKey as ah, TinyColor as ai, camelize as aj, toPx as ak, InfoCircleFilled as al, useConfigContextInject as am, globalConfigForApi as an, ConfigProvider as ao, getConfirmLocale as ap, $fetch$2 as aq, useNuxtApp as ar, useHttp as as, appDiagnostics as at, en_US_default$1 as au, splitAttrs as av, zh_CN_default$2 as aw, empty_default as ax, NuxtLink as ay, filterEmptyWithUndefined as az, useHead$1 as b, api$1 as c, useConfigInject_default as d, _extends as e, flattenChildren as f, getPropsSlot as g, classNames as h, _objectSpread2 as i, getTransitionProps as j, genComponentStyleHook as k, filterEmpty as l, merge as m, navigateTo as n, warning$1 as o, CloseOutlined as p, CheckCircleFilled as q, someType as r, stringType as s, objectType as t, useI18n as u, anyType as v, withInstall as w, booleanType as x, functionType as y, resetComponent as z };
18671
18705
  //# sourceMappingURL=entry.mjs.map