agentworkshop 0.5.8 → 0.6.0

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 (571) hide show
  1. package/.AgentWorkShop/prompts/compaction-hints.md +9 -9
  2. package/.AgentWorkShop/prompts/host-tools.json +42 -0
  3. package/.output/.AgentWorkShop/prompts/compaction-hints.md +9 -9
  4. package/.output/.AgentWorkShop/prompts/host-tools.json +42 -0
  5. package/.output/nitro.json +1 -1
  6. package/.output/public/_nuxt/{Dm5mD6XT.js → BD9D9pl4.js} +1 -1
  7. package/.output/public/_nuxt/{BdKzfJiM.js → BxD8Fg_Z.js} +1 -1
  8. package/.output/public/_nuxt/{dRAyjbJ6.js → C-Y5ydB6.js} +3 -3
  9. package/.output/public/_nuxt/{Bok1DRqh.js → C0FogB-p.js} +1 -1
  10. package/.output/public/_nuxt/{BUNGEK2z.js → C2QSTAWf.js} +1 -1
  11. package/.output/public/_nuxt/{CWDzKGtj.js → CclO6GyL.js} +1 -1
  12. package/.output/public/_nuxt/{B3__nfxM.js → Ck6tznoQ.js} +1 -1
  13. package/.output/public/_nuxt/CwS_UHeH.js +1 -0
  14. package/.output/public/_nuxt/{CE2ynNi9.js → CwcOEM8m.js} +1 -1
  15. package/.output/public/_nuxt/MhK4buEJ.js +1 -0
  16. package/.output/public/_nuxt/_id_.DN3U6EF9.css +1 -0
  17. package/.output/public/_nuxt/builds/latest.json +1 -1
  18. package/.output/public/_nuxt/builds/meta/a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba.json +1 -0
  19. package/.output/public/_nuxt/{entry.DjhxLu-f.css → entry.DvlXlPwx.css} +1 -1
  20. package/.output/public/_nuxt/settings.BG0K9_MG.css +1 -0
  21. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  22. package/.output/server/chunks/_/nitro.mjs +2634 -1387
  23. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  24. package/.output/server/chunks/build/{OmpTerminalPanel-CZnxR3M_.mjs → OmpTerminalPanel-B_SYhmgb.mjs} +2 -2
  25. package/.output/server/chunks/build/{OmpTerminalPanel-CZnxR3M_.mjs.map → OmpTerminalPanel-B_SYhmgb.mjs.map} +1 -1
  26. package/.output/server/chunks/build/{TownView-DYlUNRZe.mjs → TownView-D9yCQe1T.mjs} +6 -6
  27. package/.output/server/chunks/build/{TownView-DYlUNRZe.mjs.map → TownView-D9yCQe1T.mjs.map} +1 -1
  28. package/.output/server/chunks/build/{_id_-BOhG2yz8.mjs → _id_-CmKAEFHV.mjs} +4 -2
  29. package/.output/server/chunks/build/_id_-CmKAEFHV.mjs.map +1 -0
  30. package/.output/server/chunks/build/{_id_-CuyMYmhY.mjs → _id_-xR3AChMO.mjs} +74 -26
  31. package/.output/server/chunks/build/_id_-xR3AChMO.mjs.map +1 -0
  32. package/.output/server/chunks/build/{_wsId_-B5f5BdW2.mjs → _wsId_-C45nVrl-.mjs} +12 -10
  33. package/.output/server/chunks/build/{_wsId_-B5f5BdW2.mjs.map → _wsId_-C45nVrl-.mjs.map} +1 -1
  34. package/.output/server/chunks/build/{agents-BVaxN75W.mjs → agents-D4l1icvn.mjs} +5 -3
  35. package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +1 -0
  36. package/.output/server/chunks/build/{channel-templates-D1K2IKrE.mjs → channel-templates-DqjtC-R0.mjs} +5 -3
  37. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +1 -0
  38. package/.output/server/chunks/build/{client-only-CFTHwakk.mjs → client-only-D5BzSQc6.mjs} +2 -2
  39. package/.output/server/chunks/build/client-only-D5BzSQc6.mjs.map +1 -0
  40. package/.output/server/chunks/build/{daq-ObtN1TQ4.mjs → daq-Boz_dlAQ.mjs} +6 -4
  41. package/.output/server/chunks/build/daq-Boz_dlAQ.mjs.map +1 -0
  42. package/.output/server/chunks/build/{dcw-fINr-He1.mjs → dcw-wTRwBAUi.mjs} +3 -1
  43. package/.output/server/chunks/build/dcw-wTRwBAUi.mjs.map +1 -0
  44. package/.output/server/chunks/build/{default-CVVO40Jj.mjs → default-Dt6xLdpd.mjs} +7 -5
  45. package/.output/server/chunks/build/{default-CVVO40Jj.mjs.map → default-Dt6xLdpd.mjs.map} +1 -1
  46. package/.output/server/chunks/build/interval-WlxgjTzO.mjs +9 -0
  47. package/.output/server/chunks/build/interval-WlxgjTzO.mjs.map +1 -0
  48. package/.output/server/chunks/build/{logs-DqNgCJAn.mjs → logs-Cdi-eXlN.mjs} +5 -3
  49. package/.output/server/chunks/build/logs-Cdi-eXlN.mjs.map +1 -0
  50. package/.output/server/chunks/build/{monitor-CTZLwbdw.mjs → monitor-yNoV98rf.mjs} +6 -4
  51. package/.output/server/chunks/build/{monitor-CTZLwbdw.mjs.map → monitor-yNoV98rf.mjs.map} +1 -1
  52. package/.output/server/chunks/build/{pages-DC52d7z7.mjs → pages-bWKy0ZsA.mjs} +6 -4
  53. package/.output/server/chunks/build/pages-bWKy0ZsA.mjs.map +1 -0
  54. package/.output/server/chunks/build/{plugins-DVQty7qG.mjs → plugins-B-ZNey0Z.mjs} +4 -2
  55. package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs.map +1 -0
  56. package/.output/server/chunks/build/{settings-BeergncK.mjs → settings-C3T5hR2A.mjs} +21 -19
  57. package/.output/server/chunks/build/settings-C3T5hR2A.mjs.map +1 -0
  58. package/.output/server/chunks/build/{teams-CFeDlHDh.mjs → teams-QR3BBF7A.mjs} +5 -3
  59. package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +1 -0
  60. package/.output/server/chunks/build/{tokens-CBAUbOce.mjs → tokens-DFvr_TLj.mjs} +4 -2
  61. package/.output/server/chunks/build/tokens-DFvr_TLj.mjs.map +1 -0
  62. package/.output/server/chunks/build/town-BUqRobze.mjs +2 -0
  63. package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
  64. package/.output/server/chunks/build/{town-BxH-XXth.mjs → town-CKg6Qxba.mjs} +9 -7
  65. package/.output/server/chunks/build/town-CKg6Qxba.mjs.map +1 -0
  66. package/.output/server/chunks/build/{useDaqStream-CwORhsD7.mjs → useDaqStream-zHEptJQ_.mjs} +44 -1
  67. package/.output/server/chunks/build/useDaqStream-zHEptJQ_.mjs.map +1 -0
  68. package/.output/server/chunks/build/{useSiteConfig-Cc-ABesl.mjs → useSiteConfig-DJe_KMVr.mjs} +1 -1
  69. package/.output/server/chunks/build/{useSiteConfig-Cc-ABesl.mjs.map → useSiteConfig-DJe_KMVr.mjs.map} +1 -1
  70. package/.output/server/chunks/build/{useWorkshopApi-5er8_EHZ.mjs → useWorkshopApi-Bh5VUHWu.mjs} +1 -1
  71. package/.output/server/chunks/build/{useWorkshopApi-5er8_EHZ.mjs.map → useWorkshopApi-Bh5VUHWu.mjs.map} +1 -1
  72. package/.output/server/chunks/build/{useWorkshopWs-Dwr_1Q8f.mjs → useWorkshopWs-xcdeiSmJ.mjs} +2 -2
  73. package/.output/server/chunks/build/{useWorkshopWs-Dwr_1Q8f.mjs.map → useWorkshopWs-xcdeiSmJ.mjs.map} +1 -1
  74. package/.output/server/chunks/build/{user-CpVY4OAA.mjs → user-Dk-ytEUV.mjs} +1 -1
  75. package/.output/server/chunks/build/{user-CpVY4OAA.mjs.map → user-Dk-ytEUV.mjs.map} +1 -1
  76. package/.output/server/chunks/build/{users-BMs4s_6K.mjs → users-4FZ0yFUO.mjs} +4 -2
  77. package/.output/server/chunks/build/users-4FZ0yFUO.mjs.map +1 -0
  78. package/.output/server/chunks/build/{workshop-CJAyZ5zS.mjs → workshop-CLhwe5eo.mjs} +6 -4
  79. package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +1 -0
  80. package/.output/server/chunks/build/{workspaces-Dq-1zvu9.mjs → workspaces-IfORCDJE.mjs} +2 -2
  81. package/.output/server/chunks/build/{workspaces-Dq-1zvu9.mjs.map → workspaces-IfORCDJE.mjs.map} +1 -1
  82. package/.output/server/chunks/routes/api/health.get.mjs +2 -0
  83. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  84. package/.output/server/chunks/routes/api/index.get.mjs +2 -0
  85. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  86. package/.output/server/chunks/routes/api/index.post.mjs +2 -0
  87. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  88. package/.output/server/chunks/routes/api/mcp/workshop.mjs +2 -0
  89. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  90. package/.output/server/chunks/routes/api/metrics.mjs +2 -0
  91. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  92. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -0
  93. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  94. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -0
  95. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  96. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -0
  97. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  98. package/.output/server/chunks/routes/api/system/config.get.mjs +2 -0
  99. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  100. package/.output/server/chunks/routes/api/system/index.get.mjs +2 -0
  101. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  102. package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -0
  103. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  104. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +2 -0
  105. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  106. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -0
  107. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  108. package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -0
  109. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  110. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -2
  111. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  112. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -0
  113. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  114. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -0
  115. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  116. package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -0
  117. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  118. package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -0
  119. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  120. package/.output/server/chunks/routes/api/users/index.get.mjs +2 -0
  121. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  122. package/.output/server/chunks/routes/api/users/index.post.mjs +2 -0
  123. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/users/login.post.mjs +2 -0
  125. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  126. package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -0
  127. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/users/me.get.mjs +2 -0
  129. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  130. package/.output/server/chunks/routes/api/users/register.post.mjs +2 -0
  131. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -0
  133. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -0
  135. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -0
  137. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -0
  139. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -0
  141. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  142. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -0
  143. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  144. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -0
  145. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  146. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +2 -0
  147. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  148. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -0
  149. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  150. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -0
  151. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  152. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +2 -0
  153. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  154. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -0
  155. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  156. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -0
  157. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  158. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -0
  159. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  160. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -0
  161. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  162. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -0
  163. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  164. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -0
  165. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -0
  167. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -0
  169. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -0
  171. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  172. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -0
  173. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  174. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -0
  175. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -0
  177. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  178. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -0
  179. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  180. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -0
  181. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  182. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -0
  183. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  184. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -0
  185. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  186. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -0
  187. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  188. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -0
  189. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  190. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -0
  191. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  192. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -0
  193. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  194. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -0
  195. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  196. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -0
  197. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  198. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -0
  199. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  200. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -0
  201. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  202. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -0
  203. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  204. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -0
  205. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  206. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -0
  207. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  208. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -0
  209. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  210. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -0
  211. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  212. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -0
  213. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  214. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -0
  215. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  216. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -0
  217. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -0
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -0
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -0
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -0
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -0
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -0
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +2 -0
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +2 -0
  233. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  234. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +2 -0
  235. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  236. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -0
  237. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  238. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -0
  239. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  240. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -0
  241. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  242. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -0
  243. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  244. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -0
  245. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  246. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +2 -0
  247. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  248. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -0
  249. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  250. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +2 -0
  251. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  252. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -0
  253. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  254. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +36 -0
  255. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -0
  256. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +53 -0
  257. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -0
  258. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -0
  259. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  260. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -0
  261. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  262. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -0
  263. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  264. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -0
  265. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  266. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -0
  267. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  268. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -0
  269. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  270. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -0
  271. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  272. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -0
  273. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  274. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -0
  275. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  276. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -0
  277. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  278. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -0
  279. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  280. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -0
  281. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  282. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -0
  283. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  284. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -0
  285. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  286. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -0
  287. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  288. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -0
  289. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  290. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -0
  291. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  292. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -0
  293. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  294. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -0
  295. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  296. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -0
  297. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  298. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -0
  299. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  300. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -0
  301. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  302. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -0
  303. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -0
  305. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  306. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -0
  307. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -0
  309. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -0
  311. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -0
  313. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -0
  315. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -0
  317. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -0
  319. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -0
  321. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -0
  323. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -0
  325. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -0
  327. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -0
  329. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -0
  331. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -0
  333. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -0
  335. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -0
  337. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -0
  339. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -0
  341. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -0
  343. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -0
  345. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -0
  347. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -0
  349. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -0
  351. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -0
  353. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -0
  355. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -0
  357. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -0
  359. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -0
  361. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -0
  363. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -0
  365. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -0
  367. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -0
  369. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +2 -0
  371. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -0
  373. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -0
  375. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +2 -0
  377. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -0
  379. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -0
  381. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -0
  383. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -0
  385. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -0
  387. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -0
  389. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -0
  391. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -0
  393. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -0
  395. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -0
  397. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -0
  399. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +2 -0
  401. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +2 -0
  403. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +2 -0
  405. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +2 -0
  407. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -0
  409. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -0
  411. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -0
  413. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -0
  415. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -0
  417. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -0
  419. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -0
  421. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -0
  423. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -0
  425. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -0
  427. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -0
  429. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -0
  431. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -0
  433. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -0
  435. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -0
  437. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +2 -0
  439. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -0
  441. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -0
  443. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -0
  445. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -0
  447. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -0
  449. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -0
  451. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -0
  453. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -0
  455. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -0
  457. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -0
  459. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -0
  461. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -0
  463. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -0
  465. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -0
  467. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  468. package/.output/server/chunks/routes/renderer.mjs +1 -1
  469. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  470. package/.output/server/chunks/virtual/entry.mjs +166 -114
  471. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  472. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  473. package/.output/server/index.mjs +2 -0
  474. package/.output/server/index.mjs.map +1 -1
  475. package/.output/server/package.json +1 -1
  476. package/app/composables/workshop/useDaqStream.ts +59 -1
  477. package/app/config/schema.ts +8 -0
  478. package/app/pages/daq/[id].vue +141 -1
  479. package/app/pages/settings.vue +10 -5
  480. package/app/plugins/runtime-config.client.ts +65 -65
  481. package/app/stores/runtime-config.ts +212 -212
  482. package/config.yml +77 -70
  483. package/docker-compose.yml +19 -2
  484. package/docs/plugins.md +271 -197
  485. package/i18n/dicts/_en.json +7 -2
  486. package/i18n/dicts/daqDetail.json +8 -2
  487. package/i18n/locales/en.ts +55 -29
  488. package/i18n/locales/zh-CN.ts +55 -29
  489. package/nuxt.config.ts +1 -1
  490. package/package.json +144 -143
  491. package/scripts/_dbg-collab-scenario-e2e.mjs +185 -0
  492. package/scripts/_dbg-daq-frame-alarm.mjs +49 -0
  493. package/scripts/_dbg-daq-frame-ui.mjs +62 -0
  494. package/scripts/_dbg-daq-frame-ws.mjs +72 -0
  495. package/scripts/_dbg-daq-frames-e2e.mjs +118 -0
  496. package/scripts/_dbg-host.mjs +16 -0
  497. package/scripts/_dbg-plugin-agent-read.ts +56 -0
  498. package/scripts/_dbg-plugin-sink-rest.mjs +70 -0
  499. package/scripts/_dbg-plugin-sink-ui.mjs +81 -0
  500. package/scripts/_dbg-prompts-hotreload-test.ts +76 -0
  501. package/scripts/_dbg-release-smoke.mjs +104 -0
  502. package/scripts/home-bootstrap.mjs +18 -0
  503. package/scripts/i18n-merge.mjs +69 -67
  504. package/scripts/test-context-governor.ts +176 -176
  505. package/scripts/test-daq-frames.ts +180 -0
  506. package/scripts/test-daq-minio.ts +77 -0
  507. package/scripts/test-memory-rrf-mmr.ts +114 -114
  508. package/scripts/test-plugin-ext.ts +173 -0
  509. package/server/api/system/settings/events.get.ts +27 -28
  510. package/server/api/system/settings/index.get.ts +14 -14
  511. package/server/api/system/settings/index.patch.ts +22 -22
  512. package/server/api/system/settings/reset.post.ts +12 -12
  513. package/server/api/workshop/daq/[id]/frames/content.get.ts +24 -0
  514. package/server/api/workshop/daq/[id]/frames.get.ts +44 -0
  515. package/server/data/daqs.json +89 -89
  516. package/server/data/dcw-rollback.json +1 -1
  517. package/server/data/dcw-runs.json +3136 -2492
  518. package/server/data/dcw-writes.json +672 -0
  519. package/server/data/dcws.json +4 -4
  520. package/server/data/line-runs.json +1 -232
  521. package/server/plugins/daq.ts +11 -0
  522. package/server/plugins/system-config.ts +38 -38
  523. package/server/services/system-config.ts +365 -356
  524. package/server/services/workshop/agents/industrial-tools.ts +91 -25
  525. package/server/services/workshop/agents/omp-agent.ts +1955 -1895
  526. package/server/services/workshop/agents/plugin-tools.ts +145 -0
  527. package/server/services/workshop/daq/bus/queue-port.ts +18 -0
  528. package/server/services/workshop/daq/daq-controller.ts +216 -14
  529. package/server/services/workshop/daq/daq-node.ts +257 -247
  530. package/server/services/workshop/daq/daq-runtime.ts +36 -4
  531. package/server/services/workshop/daq/daq-templates.ts +213 -157
  532. package/server/services/workshop/daq/drivers.ts +134 -30
  533. package/server/services/workshop/daq/frames.ts +227 -0
  534. package/server/services/workshop/daq/infra.ts +31 -17
  535. package/server/services/workshop/daq/objectstore/disk.adapter.ts +38 -0
  536. package/server/services/workshop/daq/objectstore/index.ts +88 -0
  537. package/server/services/workshop/daq/objectstore/minio.adapter.ts +60 -0
  538. package/server/services/workshop/daq/objectstore/objectstore-port.ts +27 -0
  539. package/server/services/workshop/daq/plugin-bridge.ts +73 -0
  540. package/server/services/workshop/daq/png-enc.ts +71 -0
  541. package/server/services/workshop/daq/storage/sqlite.adapter.ts +104 -1
  542. package/server/services/workshop/daq/storage/timescale.adapter.ts +95 -4
  543. package/server/services/workshop/daq/storage/tsdb-port.ts +46 -0
  544. package/server/services/workshop/plugins/host.mjs +479 -417
  545. package/server/services/workshop/runtime/agent-runtime.ts +744 -744
  546. package/shared/config/schema.json +6 -1
  547. package/shared/daq-protocol.ts +88 -0
  548. package/.output/public/_nuxt/B-PgoIPN.js +0 -1
  549. package/.output/public/_nuxt/DVNYfGsj.js +0 -1
  550. package/.output/public/_nuxt/_id_.CbiF5PrV.css +0 -1
  551. package/.output/public/_nuxt/builds/meta/998b4cce-8563-44e5-b0ef-ff3d71a8480f.json +0 -1
  552. package/.output/public/_nuxt/settings.BANibAnV.css +0 -1
  553. package/.output/server/chunks/build/_id_-BOhG2yz8.mjs.map +0 -1
  554. package/.output/server/chunks/build/_id_-CuyMYmhY.mjs.map +0 -1
  555. package/.output/server/chunks/build/agents-BVaxN75W.mjs.map +0 -1
  556. package/.output/server/chunks/build/channel-templates-D1K2IKrE.mjs.map +0 -1
  557. package/.output/server/chunks/build/client-only-CFTHwakk.mjs.map +0 -1
  558. package/.output/server/chunks/build/daq-ObtN1TQ4.mjs.map +0 -1
  559. package/.output/server/chunks/build/dcw-fINr-He1.mjs.map +0 -1
  560. package/.output/server/chunks/build/interval-Bt11uRPw.mjs +0 -9
  561. package/.output/server/chunks/build/interval-Bt11uRPw.mjs.map +0 -1
  562. package/.output/server/chunks/build/logs-DqNgCJAn.mjs.map +0 -1
  563. package/.output/server/chunks/build/pages-DC52d7z7.mjs.map +0 -1
  564. package/.output/server/chunks/build/plugins-DVQty7qG.mjs.map +0 -1
  565. package/.output/server/chunks/build/settings-BeergncK.mjs.map +0 -1
  566. package/.output/server/chunks/build/teams-CFeDlHDh.mjs.map +0 -1
  567. package/.output/server/chunks/build/tokens-CBAUbOce.mjs.map +0 -1
  568. package/.output/server/chunks/build/town-BxH-XXth.mjs.map +0 -1
  569. package/.output/server/chunks/build/useDaqStream-CwORhsD7.mjs.map +0 -1
  570. package/.output/server/chunks/build/users-BMs4s_6K.mjs.map +0 -1
  571. package/.output/server/chunks/build/workshop-CJAyZ5zS.mjs.map +0 -1
@@ -532,6 +532,12 @@ export default {
532
532
  k1evt004: '暂无事件,等待操作…',
533
533
  },
534
534
  daqDetail: {
535
+ kfrm0001: '图像帧画廊',
536
+ kfrm0002: '多点轮廓帧',
537
+ kfrm0003: '暂无帧(产线运行中才有数据)',
538
+ kfrm0004: '点数',
539
+ kfrm0005: '指标',
540
+ kfrm0006: '点击查看原图',
535
541
  k9vnp9h053: '全局 {p0}ms',
536
542
  k3n5aaj045: '已停用',
537
543
  k1cgi8fy046: '节点独立周期',
@@ -587,34 +593,54 @@ export default {
587
593
  k3lha20031: '原始点',
588
594
  },
589
595
  logs: {
590
- title: '运维日志',
591
- sub: '全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询',
592
- live: '实时',
593
- liveHint: 'WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)',
594
- manual: '人工记录',
595
- all: '全部',
596
- fLine: '产线',
597
- fProduct: '产品',
598
- fSource: '来源',
599
- fKind: '分类',
600
- fKeyword: '关键词',
601
- fKeywordPh: '搜索摘要/操作/操作者…',
602
- query: '查询',
603
- reset: '重置',
604
- thTime: '时间',
605
- thActor: '操作者',
606
- thSummary: '事件摘要',
607
- thScope: '归属(产线/产品/Recipe)',
608
- thDetail: '详情',
609
- expand: '详情',
610
- fold: '收起',
611
- loading: '查询中…',
612
- empty: '无匹配日志',
613
- src: {
596
+ 'src.user': '用户',
597
+ 'src.system': '系统',
598
+ 'kind.write': '下发',
599
+ 'kind.manual': '人工',
600
+ 'kind.alarm': '告警',
601
+ 'kind.line': '产线',
602
+ 'kind.recipe': '配方',
603
+ 'kind.rollback': '回退',
604
+ 'kind.daq': '数采',
605
+ 'kind.system': '系统',
606
+ 'src.user': '用户',
607
+ 'src.system': '系统',
608
+ 'kind.write': '下发',
609
+ 'kind.manual': '人工',
610
+ 'kind.alarm': '告警',
611
+ 'kind.line': '产线',
612
+ 'kind.recipe': '配方',
613
+ 'kind.rollback': '回退',
614
+ 'kind.daq': '数采',
615
+ 'kind.system': '系统',
616
+ 'title': '运维日志',
617
+ 'sub': '全操作统一记录:下发了什么控制、用户与 Agent 做了什么操作;按产线/产品/Recipe 隔离查询',
618
+ 'live': '实时',
619
+ 'liveHint': 'WS 实时接收操作事件(仅摘要渲染;完整详情查询于下表)',
620
+ 'manual': '人工记录',
621
+ 'all': '全部',
622
+ 'fLine': '产线',
623
+ 'fProduct': '产品',
624
+ 'fSource': '来源',
625
+ 'fKind': '分类',
626
+ 'fKeyword': '关键词',
627
+ 'fKeywordPh': '搜索摘要/操作/操作者…',
628
+ 'query': '查询',
629
+ 'reset': '重置',
630
+ 'thTime': '时间',
631
+ 'thActor': '操作者',
632
+ 'thSummary': '事件摘要',
633
+ 'thScope': '归属(产线/产品/Recipe)',
634
+ 'thDetail': '详情',
635
+ 'expand': '详情',
636
+ 'fold': '收起',
637
+ 'loading': '查询中…',
638
+ 'empty': '无匹配日志',
639
+ 'src': {
614
640
  user: '用户',
615
641
  system: '系统',
616
642
  },
617
- kind: {
643
+ 'kind': {
618
644
  write: '下发',
619
645
  manual: '人工',
620
646
  alarm: '告警',
@@ -624,10 +650,10 @@ export default {
624
650
  daq: '数采',
625
651
  system: '系统',
626
652
  },
627
- mSummary: '记录内容',
628
- mSummaryPh: '如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟',
629
- mSubmit: '入册',
630
- mOk: '已入册',
653
+ 'mSummary': '记录内容',
654
+ 'mSummaryPh': '如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟',
655
+ 'mSubmit': '入册',
656
+ 'mOk': '已入册',
631
657
  },
632
658
  dcw: {
633
659
  k1qidbpy061: '缺省 {p0}(按创建序)',
package/nuxt.config.ts CHANGED
@@ -117,7 +117,7 @@ export default defineNuxtConfig({
117
117
  // pg/mqtt/modbus-serial/node-opcua 被 bundle 后,Windows 下动态 import 会变成
118
118
  // 绝对盘符路径('d:\...')→ ESM loader 报 "protocol 'd:'";外置后由 Node 原生加载。
119
119
  externals: {
120
- external: ['pg', 'mqtt', 'modbus-serial', 'node-opcua', '@serialport/bindings-cpp'],
120
+ external: ['pg', 'mqtt', 'modbus-serial', 'node-opcua', '@serialport/bindings-cpp', 'minio'],
121
121
  // shared/config/engine.mjs 从 server 树外 import 会被 nitro dev 外部化,且在
122
122
  // Windows 上算错嵌套相对路径('../../..' 溢出盘符根)→ 强制内联进服务端 bundle;
123
123
  // 运行时 engine.loadDescriptors 经 cwd 兜底读 schema.json。
package/package.json CHANGED
@@ -1,143 +1,144 @@
1
- {
2
- "name": "agentworkshop",
3
- "version": "0.5.8",
4
- "type": "module",
5
- "description": "AgentWorkShop 软件开发系统 - 基于 Nuxt 4 的配置驱动运行范式",
6
- "license": "PolyForm-Noncommercial-1.0.0",
7
- "exports": {
8
- ".": {
9
- "types": "./sdk/index.d.mts",
10
- "default": "./sdk/index.mjs"
11
- },
12
- "./sdk": {
13
- "types": "./sdk/index.d.mts",
14
- "default": "./sdk/index.mjs"
15
- },
16
- "./sdk/client": {
17
- "types": "./sdk/client.d.mts",
18
- "default": "./sdk/client.mjs"
19
- },
20
- "./package.json": "./package.json"
21
- },
22
- "bin": {
23
- "aw": "bin/aw.mjs",
24
- "agentworkshop": "bin/aw.mjs"
25
- },
26
- "files": [
27
- ".output",
28
- "bin",
29
- "cli",
30
- "sdk",
31
- "app",
32
- "server",
33
- "shared",
34
- "i18n",
35
- "public",
36
- "scripts",
37
- ".AgentWorkShop/prompts",
38
- "config.yml",
39
- "nuxt.config.ts",
40
- "tsconfig.json",
41
- "uno.config.ts",
42
- "docker-compose.yml",
43
- ".env.example",
44
- "README-zh.md",
45
- "docs/cli.md",
46
- "docs/plugins.md",
47
- "docs/sdk.md"
48
- ],
49
- "packageManager": "pnpm@11.9.0",
50
- "engines": {
51
- "node": ">=23.4.0"
52
- },
53
- "scripts": {
54
- "dev": "node bin/aw.mjs dev",
55
- "build": "node bin/aw.mjs build",
56
- "start": "node bin/aw.mjs start",
57
- "generate": "nuxt generate",
58
- "preview": "node bin/aw.mjs start",
59
- "cli": "node bin/aw.mjs",
60
- "postinstall": "node scripts/home-bootstrap.mjs",
61
- "prepublishOnly": "node bin/aw.mjs build",
62
- "lint": "eslint .",
63
- "lint:fix": "eslint . --fix",
64
- "typecheck": "nuxt typecheck",
65
- "prepare": "husky",
66
- "game:test": "tsx scripts/test-agent-brain.ts && tsx scripts/test-game-session.ts",
67
- "test:api-live": "node scripts/api-live-e2e.mjs",
68
- "game:verify": "node scripts/verify-game.mjs",
69
- "game:build-assets": "node scripts/build-player-sheet.mjs",
70
- "game:build-wuwa": "node scripts/build-wuwa-assets.mjs",
71
- "game:build-models": "node scripts/build-character-models.mjs",
72
- "game:build-world": "node scripts/build-world-map.mjs",
73
- "game:build-model3d": "node scripts/build-model-3d.mjs"
74
- },
75
- "lint-staged": {
76
- "*.{js,mjs,cjs,ts,vue}": "eslint --fix"
77
- },
78
- "dependencies": {
79
- "@ant-design-vue/nuxt": "^1.4.6",
80
- "@ant-design/icons-vue": "^7.0.1",
81
- "@fontsource-variable/fraunces": "^5.3.0",
82
- "@fontsource-variable/geist": "^5.3.0",
83
- "@fontsource-variable/geist-mono": "^5.3.0",
84
- "@fontsource-variable/inter": "^5.3.0",
85
- "@fontsource/eb-garamond": "^5.3.0",
86
- "@fontsource/ibm-plex-mono": "^5.3.0",
87
- "@iconify-json/tabler": "^1.2.0",
88
- "@modelcontextprotocol/sdk": "^1.30.0",
89
- "@nuxtjs/i18n": "^9.0.0",
90
- "@pinia/nuxt": "^0.11.0",
91
- "@unocss/nuxt": "^66.0.0",
92
- "@unocss/preset-attributify": "^66.0.0",
93
- "@unocss/preset-icons": "^66.7.5",
94
- "@unocss/preset-typography": "^66.0.0",
95
- "@vueuse/core": "^13.0.0",
96
- "@vueuse/nuxt": "^13.0.0",
97
- "@xterm/addon-fit": "^0.11.0",
98
- "@xterm/xterm": "^6.0.0",
99
- "ant-design-vue": "^4.2.6",
100
- "axios": "^1.7.9",
101
- "echarts": "^5.6.0",
102
- "h3": "2.0.1-rc.26",
103
- "js-yaml": "^4.1.0",
104
- "modbus-serial": "^8.0.25",
105
- "mqtt": "^5.15.2",
106
- "node-opcua": "^2.178.0",
107
- "nuxt": "^4.0.0",
108
- "nuxt-auth-utils": "^0.5.0",
109
- "pg": "^8.23.0",
110
- "phaser": "^4.0.0",
111
- "pinia": "^3.0.0",
112
- "pinia-plugin-persistedstate": "^4.2.0",
113
- "sqlite-vec": "^0.1.9",
114
- "three": "^0.185.1",
115
- "unocss": "^66.0.0",
116
- "unplugin-icons": "^22.0.0",
117
- "vue": "^3.5.13",
118
- "vue-echarts": "^7.0.3",
119
- "vue-router": "^4.5.0",
120
- "zod": "^3.24.1"
121
- },
122
- "devDependencies": {
123
- "@commitlint/cli": "^19.6.1",
124
- "@commitlint/config-conventional": "^19.6.0",
125
- "@nuxt/eslint": "^1.0.0",
126
- "@types/js-yaml": "^4.0.9",
127
- "@types/node": "^26.2.0",
128
- "@types/three": "^0.185.4",
129
- "eslint": "^9.17.0",
130
- "husky": "^9.1.7",
131
- "lint-staged": "^15.3.0",
132
- "pngjs": "^7.0.0",
133
- "puppeteer-core": "^25.5.0",
134
- "tsx": "^4.23.12",
135
- "typescript": "^5.7.3",
136
- "vue-tsc": "^3.3.10"
137
- },
138
- "pnpm": {
139
- "ignoredBuiltDependencies": [
140
- "@serialport/bindings-cpp"
141
- ]
142
- }
143
- }
1
+ {
2
+ "name": "agentworkshop",
3
+ "version": "0.6.0",
4
+ "type": "module",
5
+ "description": "AgentWorkShop 软件开发系统 - 基于 Nuxt 4 的配置驱动运行范式",
6
+ "license": "PolyForm-Noncommercial-1.0.0",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./sdk/index.d.mts",
10
+ "default": "./sdk/index.mjs"
11
+ },
12
+ "./sdk": {
13
+ "types": "./sdk/index.d.mts",
14
+ "default": "./sdk/index.mjs"
15
+ },
16
+ "./sdk/client": {
17
+ "types": "./sdk/client.d.mts",
18
+ "default": "./sdk/client.mjs"
19
+ },
20
+ "./package.json": "./package.json"
21
+ },
22
+ "bin": {
23
+ "aw": "bin/aw.mjs",
24
+ "agentworkshop": "bin/aw.mjs"
25
+ },
26
+ "files": [
27
+ ".output",
28
+ "bin",
29
+ "cli",
30
+ "sdk",
31
+ "app",
32
+ "server",
33
+ "shared",
34
+ "i18n",
35
+ "public",
36
+ "scripts",
37
+ ".AgentWorkShop/prompts",
38
+ "config.yml",
39
+ "nuxt.config.ts",
40
+ "tsconfig.json",
41
+ "uno.config.ts",
42
+ "docker-compose.yml",
43
+ ".env.example",
44
+ "README-zh.md",
45
+ "docs/cli.md",
46
+ "docs/plugins.md",
47
+ "docs/sdk.md"
48
+ ],
49
+ "packageManager": "pnpm@11.9.0",
50
+ "engines": {
51
+ "node": ">=23.4.0"
52
+ },
53
+ "scripts": {
54
+ "dev": "node bin/aw.mjs dev",
55
+ "build": "node bin/aw.mjs build",
56
+ "start": "node bin/aw.mjs start",
57
+ "generate": "nuxt generate",
58
+ "preview": "node bin/aw.mjs start",
59
+ "cli": "node bin/aw.mjs",
60
+ "postinstall": "node scripts/home-bootstrap.mjs",
61
+ "prepublishOnly": "node bin/aw.mjs build",
62
+ "lint": "eslint .",
63
+ "lint:fix": "eslint . --fix",
64
+ "typecheck": "nuxt typecheck",
65
+ "prepare": "husky",
66
+ "game:test": "tsx scripts/test-agent-brain.ts && tsx scripts/test-game-session.ts",
67
+ "test:api-live": "node scripts/api-live-e2e.mjs",
68
+ "game:verify": "node scripts/verify-game.mjs",
69
+ "game:build-assets": "node scripts/build-player-sheet.mjs",
70
+ "game:build-wuwa": "node scripts/build-wuwa-assets.mjs",
71
+ "game:build-models": "node scripts/build-character-models.mjs",
72
+ "game:build-world": "node scripts/build-world-map.mjs",
73
+ "game:build-model3d": "node scripts/build-model-3d.mjs"
74
+ },
75
+ "lint-staged": {
76
+ "*.{js,mjs,cjs,ts,vue}": "eslint --fix"
77
+ },
78
+ "dependencies": {
79
+ "@ant-design-vue/nuxt": "^1.4.6",
80
+ "@ant-design/icons-vue": "^7.0.1",
81
+ "@fontsource-variable/fraunces": "^5.3.0",
82
+ "@fontsource-variable/geist": "^5.3.0",
83
+ "@fontsource-variable/geist-mono": "^5.3.0",
84
+ "@fontsource-variable/inter": "^5.3.0",
85
+ "@fontsource/eb-garamond": "^5.3.0",
86
+ "@fontsource/ibm-plex-mono": "^5.3.0",
87
+ "@iconify-json/tabler": "^1.2.0",
88
+ "@modelcontextprotocol/sdk": "^1.30.0",
89
+ "@nuxtjs/i18n": "^9.0.0",
90
+ "@pinia/nuxt": "^0.11.0",
91
+ "@unocss/nuxt": "^66.0.0",
92
+ "@unocss/preset-attributify": "^66.0.0",
93
+ "@unocss/preset-icons": "^66.7.5",
94
+ "@unocss/preset-typography": "^66.0.0",
95
+ "@vueuse/core": "^13.0.0",
96
+ "@vueuse/nuxt": "^13.0.0",
97
+ "@xterm/addon-fit": "^0.11.0",
98
+ "@xterm/xterm": "^6.0.0",
99
+ "ant-design-vue": "^4.2.6",
100
+ "axios": "^1.7.9",
101
+ "echarts": "^5.6.0",
102
+ "h3": "2.0.1-rc.26",
103
+ "js-yaml": "^4.1.0",
104
+ "minio": "^8.0.7",
105
+ "modbus-serial": "^8.0.25",
106
+ "mqtt": "^5.15.2",
107
+ "node-opcua": "^2.178.0",
108
+ "nuxt": "^4.0.0",
109
+ "nuxt-auth-utils": "^0.5.0",
110
+ "pg": "^8.23.0",
111
+ "phaser": "^4.0.0",
112
+ "pinia": "^3.0.0",
113
+ "pinia-plugin-persistedstate": "^4.2.0",
114
+ "sqlite-vec": "^0.1.9",
115
+ "three": "^0.185.1",
116
+ "unocss": "^66.0.0",
117
+ "unplugin-icons": "^22.0.0",
118
+ "vue": "^3.5.13",
119
+ "vue-echarts": "^7.0.3",
120
+ "vue-router": "^4.5.0",
121
+ "zod": "^3.24.1"
122
+ },
123
+ "devDependencies": {
124
+ "@commitlint/cli": "^19.6.1",
125
+ "@commitlint/config-conventional": "^19.6.0",
126
+ "@nuxt/eslint": "^1.0.0",
127
+ "@types/js-yaml": "^4.0.9",
128
+ "@types/node": "^26.2.0",
129
+ "@types/three": "^0.185.4",
130
+ "eslint": "^9.17.0",
131
+ "husky": "^9.1.7",
132
+ "lint-staged": "^15.3.0",
133
+ "pngjs": "^7.0.0",
134
+ "puppeteer-core": "^25.5.0",
135
+ "tsx": "^4.23.12",
136
+ "typescript": "^5.7.3",
137
+ "vue-tsc": "^3.3.10"
138
+ },
139
+ "pnpm": {
140
+ "ignoredBuiltDependencies": [
141
+ "@serialport/bindings-cpp"
142
+ ]
143
+ }
144
+ }
@@ -0,0 +1,185 @@
1
+ /**
2
+ * 真实场景串测(轻量,零 LLM token,~2 分钟):记忆系统 + Channel 内/间通信 + HITL。
3
+ * 场景:东线团队沉淀「淬火工艺结论」→ 西线 worker 跨团队检索命中 → 西线 lead 跨 Channel
4
+ * 发信给东线 lead(自动回执)→ 西线把 182℃ 用于本线生产 → agent 发起数控下发触发
5
+ * HITL → 用户批准 → 写入生效 → 西线沉淀作业结论。
6
+ * 运行: AW_BASE=http://127.0.0.1:3001 node scripts/_dbg-collab-scenario-e2e.mjs
7
+ */
8
+ const ROOT = process.env.AW_BASE ?? 'http://127.0.0.1:3000'
9
+ let TOKEN = ''
10
+ const H = () => ({ authorization: `Bearer ${TOKEN}`, 'content-type': 'application/json' })
11
+ const sleep = (ms) => new Promise(r => setTimeout(r, ms))
12
+ let failures = 0
13
+ const check = (name, ok, detail = '') => {
14
+ console.log(` ${ok ? 'PASS' : 'FAIL'} ${name}${detail ? ` — ${detail}` : ''}`)
15
+ if (!ok) failures++
16
+ }
17
+ const fail = (m) => { console.error('FATAL:', m); process.exit(1) }
18
+
19
+ async function api(method, path, body) {
20
+ const res = await fetch(ROOT + path, { method, headers: H(), body: body !== undefined ? JSON.stringify(body) : undefined })
21
+ const json = await res.json().catch(() => ({}))
22
+ return { status: res.status, ...json }
23
+ }
24
+ const jpost = (u, b) => api('POST', u, b ?? {})
25
+ const jget = (u) => api('GET', u)
26
+ const invoke = async (agentId, tool, args = {}) => {
27
+ const r = await jpost('/api/workshop/agent-tools/invoke', { agentId, tool, args })
28
+ const result = r.data?.result
29
+ return { status: r.status, text: String(result?.text ?? JSON.stringify(r).slice(0, 160)), isError: result?.isError === true }
30
+ }
31
+ const cleanup = []
32
+ const tag = Math.random().toString(36).slice(2, 8)
33
+
34
+ async function main() {
35
+ console.log('━━━ 0. 注册 + 双团队部署 ━━━')
36
+ const reg = await jpost('/api/workshop/users/register', { name: 'scen-' + tag })
37
+ TOKEN = reg.data?.token
38
+ if (!TOKEN) fail('注册失败: ' + JSON.stringify(reg).slice(0, 120))
39
+ check('注册并取得 token', !!TOKEN)
40
+
41
+ const deploy = async (name, withWorker) => {
42
+ const ch = (await jpost('/api/workshop/channels', { name, description: '协同场景验证' })).data.channelId
43
+ cleanup.push(['channel', ch])
44
+ const team = (await jpost('/api/workshop/teams', { name: name + '-组' })).data
45
+ cleanup.push(['team', team.id])
46
+ await jpost(`/api/workshop/teams/${team.id}/members`, { agentId: 'tpl-default-lead', role: 'lead' })
47
+ let worker = null
48
+ if (withWorker) {
49
+ const tpl = (await jpost('/api/workshop/agents', { name: name + '-worker', harness: 'mock', config: {} })).data
50
+ cleanup.push(['agent-tpl', tpl.id])
51
+ await jpost(`/api/workshop/teams/${team.id}/members`, { agentId: tpl.id, role: 'worker' })
52
+ }
53
+ await jpost(`/api/workshop/teams/${team.id}/deploy`, { channelId: ch })
54
+ const agents = (await jget(`/api/workshop/channels/${ch}/agents`)).data
55
+ const lead = agents.find(a => a.role === 'lead')
56
+ worker = agents.find(a => a.role === 'worker') ?? null
57
+ if (lead) cleanup.push(['channel-agent', `${ch}:${lead.id}`])
58
+ if (worker) cleanup.push(['channel-agent', `${ch}:${worker.id}`])
59
+ return { channelId: ch, lead, worker }
60
+ }
61
+ const east = await deploy('东线团队-' + tag, false)
62
+ const west = await deploy('西线团队-' + tag, true)
63
+ check('东西两线团队就绪(lead/worker 到位)',
64
+ !!east.lead?.id && !!west.lead?.id && !!west.worker?.id,
65
+ `E:${east.lead.id.slice(0, 6)} W:${west.lead.id.slice(0, 6)}/${west.worker.id.slice(0, 6)}`)
66
+
67
+ // ===== 1. 记忆系统:东线把作业结论沉淀到团队共享域 =====
68
+ console.log('\n━━━ 1. 记忆系统(东线沉淀 → 西线检索)━━━')
69
+ const mem = await jpost(`/api/workshop/channels/${east.channelId}/memories`, {
70
+ title: '淬火工艺结论-' + tag,
71
+ content: '淬火温度 182℃ 保温 30 分钟,硬度 HRC58 达标;超过 190℃ 过回火软化。西线同类工件可直接采用该参数。',
72
+ importance: 0.9,
73
+ })
74
+ check('东线共享记忆写入', mem.status === 200, `status=${mem.status}`)
75
+ const hit = await invoke(west.worker.id, 'search_other_teams_memory', { query: '淬火 温度 硬度' })
76
+ check('西线 worker 跨团队检索命中(带归属)', hit.status === 200
77
+ && String(hit.text).includes('淬火工艺结论-' + tag) && String(hit.text).includes('东线团队-' + tag),
78
+ String(hit.text).slice(0, 70))
79
+
80
+ // ===== 2. Channel 间:西线 lead → 东线 lead 请求协作 =====
81
+ console.log('\n━━━ 2. 跨 Channel 通信(lead → lead)━━━')
82
+ const ask = await jpost(`/api/workshop/channels/${west.channelId}/messages`, {
83
+ toChannelId: east.channelId,
84
+ fromAgentId: west.lead.id,
85
+ text: '我已检索到你们团队的淬火结论(182℃/HRC58)。请确认参数有效性,并知会贵队成员配合我线复检。',
86
+ requireReply: true,
87
+ })
88
+ const askId = ask.data?.messageId
89
+ cleanup.push(['cross-message', askId])
90
+ check('西线 lead → 东线 lead 发信成功', ask.status === 200 && !!askId, `id=${String(askId ?? '').slice(0, 8)}`)
91
+ const denied = await jpost(`/api/workshop/channels/${west.channelId}/messages`, {
92
+ toChannelId: east.channelId, fromAgentId: west.worker.id, text: 'worker 越权(应拒)',
93
+ })
94
+ check('worker 跨 Channel 被拒(403)', denied.status === 403)
95
+ let reply = null
96
+ for (let i = 0; i < 15; i++) {
97
+ await sleep(1500)
98
+ const msgs = (await jget(`/api/workshop/channels/${west.channelId}/messages?limit=20`)).data
99
+ const list = Array.isArray(msgs) ? msgs : msgs?.messages ?? []
100
+ reply = list.find(m => m.metadata?.['x-aw-in-reply-to'] === askId && m.fromAgentId === east.lead.id)
101
+ if (reply) break
102
+ }
103
+ check('东线 lead 自动回执到达西线(闭环)', !!reply,
104
+ reply ? String(reply.parts?.[0]?.text ?? '').slice(0, 50) + '…' : '22s 未收到')
105
+
106
+ // ===== 3. 西线生产: Hitl 下发 182℃(基于东线结论)=====
107
+ console.log('\n━━━ 3. 西线产线 + HITL(手动确认下发 182℃)━━━')
108
+ const line = (await jpost('/api/workshop/dcw/lines', { name: '西线产线-' + tag })).data.line
109
+ cleanup.push(['dcw-line', line.id])
110
+ const prod = (await jpost('/api/workshop/dcw/products', { name: '西线产品-' + tag, lineId: line.id })).data.product
111
+ cleanup.push(['dcw-product', prod.id])
112
+ const dq = (await jpost('/api/workshop/daq', { templateRef: 'daq-temp-tc', name: 'SC-温度采集', lineId: line.id, intervalMs: 500 })).data.node
113
+ cleanup.push(['daq', dq.id])
114
+ const dw = (await jpost('/api/workshop/dcw', { templateRef: 'dcw-temp-sp', name: 'SC-温度设定', lineId: line.id })).data.node
115
+ cleanup.push(['dcw', dw.id])
116
+ const rc = (await jpost('/api/workshop/dcw/recipes', {
117
+ productId: prod.id, name: '西线配方-' + tag,
118
+ params: [{ templateRef: 'dcw-temp-sp', nodeId: dw.id, value: 175, min: 170, max: 190 }],
119
+ daqWindows: [{ nodeId: dq.id, min: 100, max: 260 }],
120
+ })).data.recipe
121
+ cleanup.push(['dcw-recipe', rc.id])
122
+ await jpost(`/api/workshop/dcw/lines/${line.id}/start`, { recipeId: rc.id })
123
+ await sleep(2500)
124
+ const st = (await jget('/api/workshop/dcw/lines')).data.states.find(s => s.lineId === line.id)
125
+ check('西线产线开跑(active)', !!st?.active, `runId=${String(st?.runId ?? '').slice(0, 8)}`)
126
+
127
+ // worker 绑定数控节点(手动确认)→ agent 工具桥发起下发 → HITL(桥阻塞等审批,异步发起)
128
+ await jpost('/api/workshop/agent-tools/bindings', { agentId: west.worker.id, nodeId: dw.id, kind: 'dcw', mode: 'manual' })
129
+ const bl = (await jget(`/api/workshop/agent-tools/bindings?agentId=${west.worker.id}`)).data.bindings
130
+ check('worker 绑定数控节点(manual)', bl.length > 0, `n=${bl.length}`)
131
+ const pendingInv = invoke(west.worker.id, 'dcw_control', { node_id: dw.id, value: 182, hypothesis: '按东线淬火工艺结论调整设定值' })
132
+ let approvals = []
133
+ for (let i = 0; i < 20; i++) {
134
+ await sleep(1000)
135
+ approvals = (await jget(`/api/workshop/agent-tools/approvals?agentId=${west.worker.id}`)).data.approvals
136
+ if (approvals.length > 0) break
137
+ }
138
+ check('agent 发起下发 → HITL 待审批', approvals.length > 0, `pending=${approvals.length}`)
139
+ if (approvals.length > 0) {
140
+ const appr = await jpost(`/api/workshop/agent-tools/approvals/${approvals[0].id}/decide`, { approved: true, comment: '同意,采用东线结论 182℃' })
141
+ check('用户批准 HITL', appr.status === 200)
142
+ }
143
+ const inv = await pendingInv
144
+ check('HITL 批准后下发执行(回执非错误)', !inv.isError, String(inv.text).slice(0, 80))
145
+ await sleep(1500)
146
+ const dwNow = (await jget('/api/workshop/dcw')).data.nodes.find(n => n.id === dw.id)
147
+ check('写入生效 + 回读校验(182℃)', Math.abs((dwNow?.value ?? 0) - 182) < 0.01, `value=${dwNow?.value}℃`)
148
+
149
+ // ===== 4. 西线沉淀作业结论(闭环收尾)=====
150
+ const out = await jpost(`/api/workshop/channels/${west.channelId}/memories`, {
151
+ title: '西线复检结论-' + tag,
152
+ content: '采用东线淬火结论(182℃/HRC58),经 HITL 批准下发并回读校验通过。后续西线同类工件沿用该参数。',
153
+ importance: 0.85,
154
+ })
155
+ check('西线沉淀作业结论到共享记忆', out.status === 200)
156
+ const memList = (await jget(`/api/workshop/channels/${west.channelId}/memories`)).data
157
+ const memListArr = Array.isArray(memList) ? memList : memList?.memories ?? memList?.items ?? []
158
+ check('团队记忆列表可见(可审计)', memListArr.length >= 1, `n=${memListArr.length}`)
159
+
160
+ // ===== 清理 =====
161
+ console.log('\n━━━ 清理 ━━━')
162
+ await jpost(`/api/workshop/dcw/lines/${line.id}/stop`, {})
163
+ for (const [kind, id] of [...cleanup].reverse()) {
164
+ try {
165
+ if (kind === 'channel') await api('DELETE', `/api/workshop/channels/${id}`)
166
+ else if (kind === 'team') await api('DELETE', `/api/workshop/teams/${id}`)
167
+ else if (kind === 'agent-tpl') await api('DELETE', `/api/workshop/agents/${id}`)
168
+ else if (kind === 'channel-agent') {
169
+ const [cid, aid] = String(id).split(':')
170
+ if (cid && aid) await api('DELETE', `/api/workshop/channels/${cid}/agents/${aid}`)
171
+ }
172
+ else if (kind === 'daq') await api('DELETE', `/api/workshop/daq/${id}`)
173
+ else if (kind === 'dcw') await api('DELETE', `/api/workshop/dcw/${id}`)
174
+ else if (kind === 'dcw-line') await api('DELETE', `/api/workshop/dcw/lines/${id}`)
175
+ else if (kind === 'dcw-product') await api('DELETE', `/api/workshop/dcw/products/${id}`)
176
+ }
177
+ catch { /* 清理失败不阻断 */ }
178
+ }
179
+ console.log('清理完成')
180
+
181
+ console.log(failures === 0 ? '\nSCENARIO ALL PASS' : `\nSCENARIO ${failures} FAILED`)
182
+ if (failures > 0) process.exit(1)
183
+ }
184
+
185
+ main().catch((e) => { console.error(e); process.exit(1) })
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 补充验证 C:帧派生指标 → 既有告警链路(确定性:自定义模板阈值必越)。
3
+ * 建自定义 vector 模板(avg alarmHigh=0.30,mock avg≈0.52 恒越)→ 建节点开跑
4
+ * → 断言 alarm_events 出现 metric=<template>.avg 告警 → 清理(节点+模板+停线)。
5
+ * 运行: node scripts/_dbg-daq-frame-alarm.mjs
6
+ */
7
+ const ROOT = process.env.E2E_ROOT ?? 'http://127.0.0.1:3000'
8
+ const sleep = ms => new Promise(r => setTimeout(r, ms))
9
+ const fail = (msg) => { console.error('FAIL:', msg); process.exitCode = 1 }
10
+
11
+ const login = await fetch(`${ROOT}/api/users/login`, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ email: 'zhangwei@awshop.io', password: 'Awshop@123' }) }).then(r => r.json())
12
+ const H = { authorization: `Bearer ${login.data.token}`, 'content-type': 'application/json' }
13
+ const j = (u, m = 'GET', b) => fetch(ROOT + u, { method: m, headers: H, body: b ? JSON.stringify(b) : undefined }).then(r => r.json())
14
+
15
+ const tplKey = `ct-alarm${Date.now().toString(36).slice(-4)}`
16
+ const tpl = (await j('/api/workshop/daq/templates', 'POST', {
17
+ name: `E2E 告警模板 ${tplKey.slice(-4)}`,
18
+ unit: 'mm',
19
+ min: 0.4,
20
+ max: 0.65,
21
+ base: 0.52,
22
+ amp: 0.015,
23
+ signalKind: 'vector',
24
+ vector: { points: 16, min: 0.4, max: 0.65 },
25
+ sink: { processors: [{ name: 'derive-metric', args: { name: 'avg', op: 'avg' } }] },
26
+ metrics: [{ key: 'avg', label: '平均厚度', unit: 'mm', alarmHigh: 0.3 }],
27
+ })).data.template
28
+ if (!tpl?.key) { console.error('FAIL: create template:', JSON.stringify(tpl).slice(0, 200)); process.exit(1) }
29
+
30
+ const d = (await j('/api/workshop/dcw')).data
31
+ const cand = d.lines.map(l => ({ line: l, recipe: d.recipes.find(r => r.lineId === l.id) })).find(x => x.recipe)
32
+ await j(`/api/workshop/dcw/lines/${cand.line.id}/stop`, 'POST').catch(() => {})
33
+ await sleep(1000)
34
+ await j(`/api/workshop/dcw/lines/${cand.line.id}/start`, 'POST', { recipeId: cand.recipe.id })
35
+ const node = (await j('/api/workshop/daq', 'POST', { templateRef: tpl.key, lineId: cand.line.id, name: 'E2E 告警' })).data.node
36
+
37
+ let hit = null
38
+ try {
39
+ await sleep(6000)
40
+ const alarms = (await j('/api/workshop/daq/alarms?scope=all&limit=100')).data.alarms
41
+ hit = alarms.find(a => a.nodeId === node.id && a.metric === `${tpl.key}.avg`)
42
+ if (hit) console.log(`PASS 指标告警: metric=${hit.metric} value=${hit.value} rule=${hit.rule} threshold=${hit.threshold}`)
43
+ else fail(`no frame alarm for ${tpl.key}.avg (alarms=${alarms.length})`)
44
+ } finally {
45
+ await j(`/api/workshop/daq/${node.id}`, 'DELETE').catch(() => {})
46
+ await j(`/api/workshop/daq/templates/${tpl.key}`, 'DELETE').catch(() => {})
47
+ await j(`/api/workshop/dcw/lines/${cand.line.id}/stop`, 'POST').catch(() => {})
48
+ }
49
+ console.log(process.exitCode ? '\nALARM E2E FAILED' : '\nALARM E2E PASS')