agentworkshop 0.6.0 → 0.7.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 (540) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +17 -0
  2. package/.env.example +37 -0
  3. package/.output/.AgentWorkShop/prompts/host-tools.json +17 -0
  4. package/.output/nitro.json +1 -1
  5. package/.output/public/_nuxt/{Bc_mM2cU.js → BH0Z05CS.js} +1 -1
  6. package/.output/public/_nuxt/Bxgaym6j.js +1 -0
  7. package/.output/public/_nuxt/{DRlJ2-4p.js → By-LNp3k.js} +1 -1
  8. package/.output/public/_nuxt/{C2QSTAWf.js → Bz40vyZS.js} +1 -1
  9. package/.output/public/_nuxt/{CwS_UHeH.js → CS8R0_J3.js} +1 -1
  10. package/.output/public/_nuxt/{ClptO7LA.js → CUxV8Bw_.js} +1 -1
  11. package/.output/public/_nuxt/CXmkVXS5.js +1 -0
  12. package/.output/public/_nuxt/DC-QMEk1.js +2 -0
  13. package/.output/public/_nuxt/{C-Y5ydB6.js → Dgp2wK2U.js} +6 -6
  14. package/.output/public/_nuxt/{Ck6tznoQ.js → DjqcbFBE.js} +1 -1
  15. package/.output/public/_nuxt/{B0haAGoq.js → GP2wXyuY.js} +1 -1
  16. package/.output/public/_nuxt/TownView.Bt33bo1M.css +1 -0
  17. package/.output/public/_nuxt/{MhK4buEJ.js → XVB9_zwP.js} +1 -1
  18. package/.output/public/_nuxt/_id_.BeqSLvl_.css +1 -0
  19. package/.output/public/_nuxt/builds/latest.json +1 -1
  20. package/.output/public/_nuxt/builds/meta/90ae66f6-f649-4b44-8df9-bcd9e9a957a2.json +1 -0
  21. package/.output/public/_nuxt/{Bq_KKxCg.js → i_MKObHo.js} +1 -1
  22. package/.output/public/_nuxt/settings.DeRNNUcP.css +1 -0
  23. package/.output/public/_nuxt/{CclO6GyL.js → tpDMVY5w.js} +1 -1
  24. package/.output/public/_nuxt/{C0FogB-p.js → zwdqvGN_.js} +1 -1
  25. package/.output/server/chunks/_/nitro.mjs +2672 -2350
  26. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  27. package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs → TownView-BkHxMiwZ.mjs} +168 -159
  28. package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs.map → TownView-BkHxMiwZ.mjs.map} +1 -1
  29. package/.output/server/chunks/build/{_id_-xR3AChMO.mjs → _id_-Bna1_JuB.mjs} +5 -4
  30. package/.output/server/chunks/build/_id_-Bna1_JuB.mjs.map +1 -0
  31. package/.output/server/chunks/build/{_id_-CmKAEFHV.mjs → _id_-GnRJPykX.mjs} +161 -119
  32. package/.output/server/chunks/build/_id_-GnRJPykX.mjs.map +1 -0
  33. package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs → _wsId_-CzLDGT_V.mjs} +6 -5
  34. package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs.map → _wsId_-CzLDGT_V.mjs.map} +1 -1
  35. package/.output/server/chunks/build/agents-D4l1icvn.mjs +1 -0
  36. package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +1 -1
  37. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs +1 -0
  38. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +1 -1
  39. package/.output/server/chunks/build/{daq-Boz_dlAQ.mjs → daq-D_W59QOe.mjs} +6 -5
  40. package/.output/server/chunks/build/daq-D_W59QOe.mjs.map +1 -0
  41. package/.output/server/chunks/build/{dcw-wTRwBAUi.mjs → dcw-BTM5YU-B.mjs} +3 -2
  42. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +1 -0
  43. package/.output/server/chunks/build/default-Dt6xLdpd.mjs +1 -0
  44. package/.output/server/chunks/build/{logs-Cdi-eXlN.mjs → logs-CUQt1z7D.mjs} +4 -3
  45. package/.output/server/chunks/build/logs-CUQt1z7D.mjs.map +1 -0
  46. package/.output/server/chunks/build/monitor-yNoV98rf.mjs +1 -0
  47. package/.output/server/chunks/build/{pages-bWKy0ZsA.mjs → pages-DR2bzczM.mjs} +4 -3
  48. package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +1 -0
  49. package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs +1 -0
  50. package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs.map +1 -1
  51. package/.output/server/chunks/build/{settings-C3T5hR2A.mjs → settings-Cr06lbRy.mjs} +26 -18
  52. package/.output/server/chunks/build/settings-Cr06lbRy.mjs.map +1 -0
  53. package/.output/server/chunks/build/teams-QR3BBF7A.mjs +1 -0
  54. package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +1 -1
  55. package/.output/server/chunks/build/tokens-DFvr_TLj.mjs +1 -0
  56. package/.output/server/chunks/build/tokens-DFvr_TLj.mjs.map +1 -1
  57. package/.output/server/chunks/build/{town-CKg6Qxba.mjs → town-BN4vQPb8.mjs} +6 -5
  58. package/.output/server/chunks/build/town-BN4vQPb8.mjs.map +1 -0
  59. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -0
  60. package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
  61. package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs → useDaqStream-hwkhJHFU.mjs} +2 -2
  62. package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs.map → useDaqStream-hwkhJHFU.mjs.map} +1 -1
  63. package/.output/server/chunks/build/{useDcwStream-BkWDGaWp.mjs → useDcwStream-Bdew_yrr.mjs} +16 -1
  64. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +1 -0
  65. package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs → useDeviceTwins-C6EBg9oN.mjs} +2 -2
  66. package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs.map → useDeviceTwins-C6EBg9oN.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs → useOpsLog-DdCqKVVG.mjs} +2 -2
  68. package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs.map → useOpsLog-DdCqKVVG.mjs.map} +1 -1
  69. package/.output/server/chunks/build/users-4FZ0yFUO.mjs +1 -0
  70. package/.output/server/chunks/build/users-4FZ0yFUO.mjs.map +1 -1
  71. package/.output/server/chunks/build/workshop-CLhwe5eo.mjs +1 -0
  72. package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +1 -1
  73. package/.output/server/chunks/routes/api/health.get.mjs +1 -0
  74. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  75. package/.output/server/chunks/routes/api/index.get.mjs +1 -0
  76. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  77. package/.output/server/chunks/routes/api/index.post.mjs +1 -0
  78. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  79. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -0
  80. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  81. package/.output/server/chunks/routes/api/metrics.mjs +1 -0
  82. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  83. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -0
  84. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  85. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -0
  86. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  87. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -0
  88. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  89. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -0
  90. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  91. package/.output/server/chunks/routes/api/system/index.get.mjs +1 -0
  92. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  93. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -0
  94. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  95. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -0
  96. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  97. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -0
  98. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  99. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -0
  100. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  101. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -0
  102. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  103. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -0
  104. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  105. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
  106. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  107. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -0
  108. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  109. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -0
  110. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  111. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -0
  112. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  113. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -0
  114. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  115. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -0
  116. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -0
  118. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -0
  120. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  121. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -0
  122. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  123. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -0
  124. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  125. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -0
  126. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -0
  128. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -0
  130. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -0
  132. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -0
  134. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -0
  136. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  137. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -0
  138. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  139. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -0
  140. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -0
  142. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -0
  144. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  145. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -0
  146. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -0
  148. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +1 -0
  150. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  151. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -0
  152. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -0
  154. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -0
  156. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -0
  158. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  159. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -0
  160. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -0
  162. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  163. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -0
  164. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  165. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -0
  166. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  167. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -0
  168. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  169. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -0
  170. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  171. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -0
  172. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  173. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -0
  174. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  175. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -0
  176. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  177. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -0
  178. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  179. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -0
  180. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  181. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -0
  182. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  183. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -0
  184. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  185. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -0
  186. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  187. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -0
  188. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  189. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -0
  190. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  191. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -0
  192. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  193. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -0
  194. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  195. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -0
  196. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  197. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -0
  198. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  199. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -0
  200. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  201. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -0
  202. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  203. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -0
  204. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  205. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -0
  206. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  207. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -0
  208. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  209. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -0
  210. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  211. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -0
  212. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  213. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -0
  214. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  215. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -0
  216. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  217. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -0
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -0
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -0
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -0
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -0
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -0
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -0
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -0
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  233. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -0
  234. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  235. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -0
  236. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  237. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -0
  238. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  239. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -0
  240. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  241. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -0
  242. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  243. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -0
  244. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  245. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +1 -0
  246. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  247. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -0
  248. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  249. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -0
  250. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  251. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -0
  252. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  253. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -0
  254. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  255. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -0
  256. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  257. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -0
  258. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  259. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +1 -0
  260. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  261. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -0
  262. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  263. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -0
  264. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  265. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -0
  266. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  267. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -0
  268. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  269. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -0
  270. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  271. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -0
  272. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  273. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -0
  274. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  275. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -0
  276. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  277. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -0
  278. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  279. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +31 -0
  280. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -0
  281. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -0
  282. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  283. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -0
  284. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -0
  286. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  287. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -0
  288. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  289. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -0
  290. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -0
  292. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  293. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -0
  294. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  295. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -0
  296. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  297. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -0
  298. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  299. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -0
  300. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  301. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -0
  302. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  303. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -0
  304. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  305. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -0
  306. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  307. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -0
  308. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -0
  310. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -0
  312. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -0
  314. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  315. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -0
  316. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  317. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -0
  318. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  319. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +1 -0
  320. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  321. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -0
  322. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  323. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -0
  324. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  325. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -0
  326. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  327. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -0
  328. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  329. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -0
  330. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  331. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -0
  332. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -0
  334. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  335. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -0
  336. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  337. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -0
  338. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  339. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -0
  340. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  341. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +1 -0
  342. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +1 -1
  343. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -0
  344. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -0
  346. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  347. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -0
  348. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  349. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -0
  350. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  351. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -0
  352. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  353. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -0
  354. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -0
  356. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -0
  358. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -0
  360. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  361. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -0
  362. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  363. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -0
  364. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  365. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -0
  366. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  367. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -0
  368. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  369. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -0
  370. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  371. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -0
  372. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  373. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -0
  374. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  375. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -0
  376. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  377. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -0
  378. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  379. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -0
  380. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  381. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -0
  382. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  383. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -0
  384. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  385. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -0
  386. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  387. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -0
  388. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  389. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -0
  390. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  391. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -0
  392. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  393. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -0
  394. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  395. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -0
  396. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  397. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -0
  398. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  399. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -0
  400. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  401. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -0
  402. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  403. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -0
  404. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  405. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -0
  406. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  407. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -0
  408. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  409. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -0
  410. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  411. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -0
  412. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  413. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -0
  414. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  415. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -0
  416. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  417. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -0
  418. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  419. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -0
  420. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  421. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -0
  422. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  423. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -0
  424. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  425. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -0
  426. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  427. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -0
  428. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  429. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -0
  430. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  431. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -0
  432. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  433. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -0
  434. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  435. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -0
  436. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  437. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -0
  438. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  439. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -0
  440. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  441. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -0
  442. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  443. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -0
  444. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -0
  446. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -0
  448. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -0
  450. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -0
  452. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -0
  454. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -0
  456. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -0
  458. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  459. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -0
  460. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  461. package/.output/server/chunks/routes/renderer.mjs +1 -1
  462. package/.output/server/chunks/virtual/entry.mjs +287 -85
  463. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  464. package/.output/server/index.mjs +1 -0
  465. package/.output/server/package.json +1 -1
  466. package/README-zh.md +434 -430
  467. package/README.md +5 -1
  468. package/app/components/workshop/DeviceTwinPanel.vue +34 -0
  469. package/app/components/workshop/town/TownView.vue +5 -0
  470. package/app/composables/workshop/useDcwStream.ts +15 -1
  471. package/app/config/schema.ts +54 -0
  472. package/app/pages/dcw/[id].vue +57 -0
  473. package/app/pages/settings.vue +2 -1
  474. package/config.yml +58 -1
  475. package/i18n/dicts/_en.json +56 -2
  476. package/i18n/dicts/dcwDetail.json +9 -1
  477. package/i18n/dicts/deviceTwinPanel.json +2 -1
  478. package/i18n/dicts/settings.json +48 -1
  479. package/i18n/locales/en.ts +139 -38
  480. package/i18n/locales/zh-CN.ts +139 -38
  481. package/package.json +1 -1
  482. package/scripts/_dbg-agent-dcw-rw.ts +131 -0
  483. package/scripts/_dbg-config-smoke.ts +28 -0
  484. package/scripts/_dbg-dcw-read-rest.mjs +103 -0
  485. package/scripts/_dbg-dcw-read-toolface.ts +13 -0
  486. package/scripts/_dbg-dcw-read-ui.mjs +74 -0
  487. package/scripts/_dbg-plugin-tools-inject.ts +80 -0
  488. package/scripts/_dbg-plugin-ui-wizard.mjs +125 -0
  489. package/scripts/_dbg-plugin-verify-e2e.mjs +123 -0
  490. package/scripts/test-config-precedence.ts +124 -0
  491. package/scripts/test-dcw-read.ts +153 -0
  492. package/server/api/workshop/dcw/[id]/read.post.ts +18 -0
  493. package/server/api/workshop/ws.ts +6 -4
  494. package/server/data/daqs.json +78 -8
  495. package/server/data/dcw-rollback.json +221 -1
  496. package/server/data/dcw-runs.json +123 -54
  497. package/server/data/dcw-writes.json +312 -0
  498. package/server/data/dcws.json +646 -4
  499. package/server/data/line-runs.json +12 -1
  500. package/server/plugins/backup.ts +7 -5
  501. package/server/plugins/retention.ts +59 -57
  502. package/server/plugins/workshop.ts +5 -4
  503. package/server/services/workshop/agents/industrial-tools.ts +50 -1
  504. package/server/services/workshop/agents/omp-agent.ts +10 -8
  505. package/server/services/workshop/agents/tool-approvals.ts +175 -174
  506. package/server/services/workshop/daq/alarm-notify.ts +102 -100
  507. package/server/services/workshop/daq/bus/mqtt.adapter.ts +14 -15
  508. package/server/services/workshop/daq/daq-controller.ts +3 -3
  509. package/server/services/workshop/daq/storage/sqlite.adapter.ts +5 -4
  510. package/server/services/workshop/daq/storage/timescale.adapter.ts +5 -4
  511. package/server/services/workshop/db/retention.ts +49 -50
  512. package/server/services/workshop/dcw/dcw-controller.ts +56 -1
  513. package/server/services/workshop/dcw/dcw-node.ts +233 -200
  514. package/server/services/workshop/dcw/dcw-runtime.ts +46 -9
  515. package/server/services/workshop/dcw/drivers.ts +98 -0
  516. package/server/services/workshop/dcw/recipe-rollback-manager.ts +16 -15
  517. package/server/services/workshop/logger.ts +65 -58
  518. package/server/services/workshop/runtime/embedding-provider.ts +9 -5
  519. package/server/services/workshop/runtime/manager.ts +16 -7
  520. package/server/services/workshop/runtime/memory.ts +14 -7
  521. package/server/services/workshop/settings.ts +143 -0
  522. package/shared/config/engine.mjs +6 -2
  523. package/shared/config/schema.json +48 -1
  524. package/shared/dcw-protocol.ts +21 -0
  525. package/.output/public/_nuxt/BD9D9pl4.js +0 -1
  526. package/.output/public/_nuxt/BxD8Fg_Z.js +0 -2
  527. package/.output/public/_nuxt/CwcOEM8m.js +0 -1
  528. package/.output/public/_nuxt/TownView.CI2Wpzty.css +0 -1
  529. package/.output/public/_nuxt/_id_.Ci4u30cR.css +0 -1
  530. package/.output/public/_nuxt/builds/meta/a0ac51ef-51c0-4ff9-8484-7c90d8dd10ba.json +0 -1
  531. package/.output/public/_nuxt/settings.BG0K9_MG.css +0 -1
  532. package/.output/server/chunks/build/_id_-CmKAEFHV.mjs.map +0 -1
  533. package/.output/server/chunks/build/_id_-xR3AChMO.mjs.map +0 -1
  534. package/.output/server/chunks/build/daq-Boz_dlAQ.mjs.map +0 -1
  535. package/.output/server/chunks/build/dcw-wTRwBAUi.mjs.map +0 -1
  536. package/.output/server/chunks/build/logs-Cdi-eXlN.mjs.map +0 -1
  537. package/.output/server/chunks/build/pages-bWKy0ZsA.mjs.map +0 -1
  538. package/.output/server/chunks/build/settings-C3T5hR2A.mjs.map +0 -1
  539. package/.output/server/chunks/build/town-CKg6Qxba.mjs.map +0 -1
  540. package/.output/server/chunks/build/useDcwStream-BkWDGaWp.mjs.map +0 -1
@@ -1,58 +1,4 @@
1
1
  [
2
- {
3
- "id": "rr-f9620cd7",
4
- "recipeId": "rc-d04a7e04",
5
- "recipeName": "探针配方Q5",
6
- "productId": "pd-5f4ba882",
7
- "lineId": "ln-73c3b1e4",
8
- "startedAt": "2026-08-30T01:49:02.645Z",
9
- "endedAt": "2026-08-30T01:57:02.510Z",
10
- "results": [
11
- {
12
- "templateRef": "dcw-temp-sp",
13
- "nodeId": "dw-f0769f22",
14
- "ok": true,
15
- "message": "写入并回读一致:180 → raw 1200,回读 180(标定后物理值 180)",
16
- "value": 180
17
- }
18
- ]
19
- },
20
- {
21
- "id": "rr-2339e74a",
22
- "recipeId": "rc-0c5201dd",
23
- "recipeName": "工具审计配方",
24
- "productId": "pd-39f76bc4",
25
- "lineId": "ln-c8f08cbd",
26
- "startedAt": "2026-08-30T01:57:03.037Z",
27
- "endedAt": "2026-08-30T01:57:21.695Z",
28
- "results": [
29
- {
30
- "templateRef": "dcw-temp-sp",
31
- "nodeId": "dw-2ed2e19a",
32
- "ok": true,
33
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
34
- "value": 180
35
- }
36
- ]
37
- },
38
- {
39
- "id": "rr-06f366cf",
40
- "recipeId": "rc-84cbf4ae",
41
- "recipeName": "控制终审X线配方",
42
- "productId": "pd-6ab53e1d",
43
- "lineId": "ln-38a7c26b",
44
- "startedAt": "2026-08-30T01:57:22.043Z",
45
- "endedAt": "2026-08-30T01:57:27.855Z",
46
- "results": [
47
- {
48
- "templateRef": "dcw-temp-sp",
49
- "nodeId": "dw-a11c1063",
50
- "ok": true,
51
- "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
52
- "value": 180
53
- }
54
- ]
55
- },
56
2
  {
57
3
  "id": "rr-0662ccf4",
58
4
  "recipeId": "rc-a53fbadc",
@@ -5411,5 +5357,128 @@
5411
5357
  "max": 1
5412
5358
  }
5413
5359
  ]
5360
+ },
5361
+ {
5362
+ "id": "rr-8b294482",
5363
+ "recipeId": "rc-7bf584db",
5364
+ "recipeName": "A-标准工艺",
5365
+ "productId": "pd-6348a595",
5366
+ "lineId": "ln-af002514",
5367
+ "startedAt": "2026-09-03T10:17:58.886Z",
5368
+ "endedAt": "2026-09-03T10:41:13.654Z",
5369
+ "results": [
5370
+ {
5371
+ "templateRef": "dcw-temp-sp",
5372
+ "nodeId": "dw-322b1978",
5373
+ "ok": true,
5374
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
5375
+ "value": 182
5376
+ },
5377
+ {
5378
+ "templateRef": "dcw-pressure-sp",
5379
+ "nodeId": "dw-e92bb0e7",
5380
+ "ok": true,
5381
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
5382
+ "value": 0.92
5383
+ }
5384
+ ],
5385
+ "paramsSnapshot": [
5386
+ {
5387
+ "nodeId": "dw-322b1978",
5388
+ "templateRef": "dcw-temp-sp",
5389
+ "value": 182,
5390
+ "min": 176,
5391
+ "max": 188
5392
+ },
5393
+ {
5394
+ "nodeId": "dw-e92bb0e7",
5395
+ "templateRef": "dcw-pressure-sp",
5396
+ "value": 0.92,
5397
+ "min": 0.85,
5398
+ "max": 1
5399
+ }
5400
+ ]
5401
+ },
5402
+ {
5403
+ "id": "rr-b1f6156d",
5404
+ "recipeId": "rc-7bf584db",
5405
+ "recipeName": "A-标准工艺",
5406
+ "productId": "pd-6348a595",
5407
+ "lineId": "ln-af002514",
5408
+ "startedAt": "2026-09-03T10:41:14.527Z",
5409
+ "endedAt": "2026-09-03T10:44:04.580Z",
5410
+ "results": [
5411
+ {
5412
+ "templateRef": "dcw-temp-sp",
5413
+ "nodeId": "dw-322b1978",
5414
+ "ok": true,
5415
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
5416
+ "value": 182
5417
+ },
5418
+ {
5419
+ "templateRef": "dcw-pressure-sp",
5420
+ "nodeId": "dw-e92bb0e7",
5421
+ "ok": true,
5422
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
5423
+ "value": 0.92
5424
+ }
5425
+ ],
5426
+ "paramsSnapshot": [
5427
+ {
5428
+ "nodeId": "dw-322b1978",
5429
+ "templateRef": "dcw-temp-sp",
5430
+ "value": 182,
5431
+ "min": 176,
5432
+ "max": 188
5433
+ },
5434
+ {
5435
+ "nodeId": "dw-e92bb0e7",
5436
+ "templateRef": "dcw-pressure-sp",
5437
+ "value": 0.92,
5438
+ "min": 0.85,
5439
+ "max": 1
5440
+ }
5441
+ ]
5442
+ },
5443
+ {
5444
+ "id": "rr-6da3f412",
5445
+ "recipeId": "rc-7bf584db",
5446
+ "recipeName": "A-标准工艺",
5447
+ "productId": "pd-6348a595",
5448
+ "lineId": "ln-af002514",
5449
+ "startedAt": "2026-09-03T11:18:01.213Z",
5450
+ "endedAt": null,
5451
+ "results": [
5452
+ {
5453
+ "templateRef": "dcw-temp-sp",
5454
+ "nodeId": "dw-322b1978",
5455
+ "ok": true,
5456
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
5457
+ "value": 182
5458
+ },
5459
+ {
5460
+ "templateRef": "dcw-pressure-sp",
5461
+ "nodeId": "dw-e92bb0e7",
5462
+ "ok": true,
5463
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
5464
+ "value": 0.92
5465
+ }
5466
+ ],
5467
+ "paramsSnapshot": [
5468
+ {
5469
+ "nodeId": "dw-322b1978",
5470
+ "templateRef": "dcw-temp-sp",
5471
+ "value": 182,
5472
+ "min": 176,
5473
+ "max": 188
5474
+ },
5475
+ {
5476
+ "nodeId": "dw-e92bb0e7",
5477
+ "templateRef": "dcw-pressure-sp",
5478
+ "value": 0.92,
5479
+ "min": 0.85,
5480
+ "max": 1
5481
+ }
5482
+ ]
5414
5483
  }
5415
5484
  ]
@@ -10690,5 +10690,317 @@
10690
10690
  "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
10691
10691
  "recipeRunId": "rr-a6881136",
10692
10692
  "at": "2026-09-03T01:13:27.665Z"
10693
+ },
10694
+ {
10695
+ "id": "wh-72cc0d94",
10696
+ "nodeId": "dw-322b1978",
10697
+ "nodeName": "温度设定器(示例)",
10698
+ "param": "烘箱温度设定",
10699
+ "eng": 182,
10700
+ "raw": 182,
10701
+ "ok": true,
10702
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
10703
+ "recipeRunId": "rr-8b294482",
10704
+ "at": "2026-09-03T10:17:58.888Z"
10705
+ },
10706
+ {
10707
+ "id": "wh-2daf0cf4",
10708
+ "nodeId": "dw-e92bb0e7",
10709
+ "nodeName": "压力设定器(示例)",
10710
+ "param": "熔体压力设定",
10711
+ "eng": 0.92,
10712
+ "raw": 0.92,
10713
+ "ok": true,
10714
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
10715
+ "recipeRunId": "rr-8b294482",
10716
+ "at": "2026-09-03T10:17:58.993Z"
10717
+ },
10718
+ {
10719
+ "id": "wh-d865e72d",
10720
+ "nodeId": "dw-322b1978",
10721
+ "nodeName": "温度设定器(示例)",
10722
+ "param": "烘箱温度设定",
10723
+ "eng": 182,
10724
+ "raw": 182,
10725
+ "ok": true,
10726
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
10727
+ "recipeRunId": "rr-b1f6156d",
10728
+ "at": "2026-09-03T10:41:14.529Z"
10729
+ },
10730
+ {
10731
+ "id": "wh-ef8ea3a1",
10732
+ "nodeId": "dw-e92bb0e7",
10733
+ "nodeName": "压力设定器(示例)",
10734
+ "param": "熔体压力设定",
10735
+ "eng": 0.92,
10736
+ "raw": 0.92,
10737
+ "ok": true,
10738
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
10739
+ "recipeRunId": "rr-b1f6156d",
10740
+ "at": "2026-09-03T10:41:14.679Z"
10741
+ },
10742
+ {
10743
+ "id": "wh-1b66a42b",
10744
+ "nodeId": "dw-322b1978",
10745
+ "nodeName": "温度设定器(示例)",
10746
+ "param": "烘箱温度设定",
10747
+ "eng": 182,
10748
+ "raw": 182,
10749
+ "ok": true,
10750
+ "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
10751
+ "recipeRunId": "rr-6da3f412",
10752
+ "at": "2026-09-03T11:18:01.215Z"
10753
+ },
10754
+ {
10755
+ "id": "wh-9660ff2a",
10756
+ "nodeId": "dw-e92bb0e7",
10757
+ "nodeName": "压力设定器(示例)",
10758
+ "param": "熔体压力设定",
10759
+ "eng": 0.92,
10760
+ "raw": 0.92,
10761
+ "ok": true,
10762
+ "message": "Mock PLC 写入成功:0.92 → raw 0.92,回读一致(标定后物理值 0.92)",
10763
+ "recipeRunId": "rr-6da3f412",
10764
+ "at": "2026-09-03T11:18:01.287Z"
10765
+ },
10766
+ {
10767
+ "id": "wh-f530a836",
10768
+ "nodeId": "dw-6df62f07",
10769
+ "nodeName": "读写验证·mock 手动",
10770
+ "param": "烘箱温度设定",
10771
+ "eng": 165.5,
10772
+ "raw": 165.5,
10773
+ "ok": true,
10774
+ "message": "Mock PLC 写入成功:165.5 → raw 165.5,回读一致(标定后物理值 165.5)",
10775
+ "recipeRunId": null,
10776
+ "at": "2026-09-03T12:07:07.468Z"
10777
+ },
10778
+ {
10779
+ "id": "wh-3c7e537b",
10780
+ "nodeId": "dw-6df62f07",
10781
+ "nodeName": "读写验证·mock 手动",
10782
+ "param": "烘箱温度设定",
10783
+ "eng": 180,
10784
+ "raw": 180,
10785
+ "ok": true,
10786
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
10787
+ "recipeRunId": null,
10788
+ "at": "2026-09-03T12:07:07.603Z"
10789
+ },
10790
+ {
10791
+ "id": "wh-5e7dabb3",
10792
+ "nodeId": "dw-82ebb64a",
10793
+ "nodeName": "读写验证·mock 手动",
10794
+ "param": "烘箱温度设定",
10795
+ "eng": 165.5,
10796
+ "raw": 165.5,
10797
+ "ok": true,
10798
+ "message": "Mock PLC 写入成功:165.5 → raw 165.5,回读一致(标定后物理值 165.5)",
10799
+ "recipeRunId": null,
10800
+ "at": "2026-09-03T12:08:19.738Z"
10801
+ },
10802
+ {
10803
+ "id": "wh-a979474c",
10804
+ "nodeId": "dw-82ebb64a",
10805
+ "nodeName": "读写验证·mock 手动",
10806
+ "param": "烘箱温度设定",
10807
+ "eng": 180,
10808
+ "raw": 180,
10809
+ "ok": true,
10810
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
10811
+ "recipeRunId": null,
10812
+ "at": "2026-09-03T12:08:19.863Z"
10813
+ },
10814
+ {
10815
+ "id": "wh-31f7fe80",
10816
+ "nodeId": "dw-f6aeca63",
10817
+ "nodeName": "读写验证·标定×2",
10818
+ "param": "烘箱温度设定",
10819
+ "eng": 100,
10820
+ "raw": 50,
10821
+ "ok": true,
10822
+ "message": "Mock PLC 写入成功:50 → raw 50,回读一致(标定后物理值 100)",
10823
+ "recipeRunId": null,
10824
+ "at": "2026-09-03T12:08:20.046Z"
10825
+ },
10826
+ {
10827
+ "id": "wh-78272430",
10828
+ "nodeId": "dw-787402f0",
10829
+ "nodeName": "读写验证·周期读",
10830
+ "param": "烘箱温度设定",
10831
+ "eng": 155,
10832
+ "raw": 155,
10833
+ "ok": true,
10834
+ "message": "Mock PLC 写入成功:155 → raw 155,回读一致(标定后物理值 155)",
10835
+ "recipeRunId": null,
10836
+ "at": "2026-09-03T12:08:20.182Z"
10837
+ },
10838
+ {
10839
+ "id": "wh-5c734d1c",
10840
+ "nodeId": "dw-fe8cdcbb",
10841
+ "nodeName": "读写验证·Modbus真实链路",
10842
+ "param": "烘箱温度设定",
10843
+ "eng": 3.1,
10844
+ "raw": 3.1416,
10845
+ "ok": true,
10846
+ "message": "写入并回读一致:3.1416 → raw 3.1416,回读 3.1416(标定后物理值 3.1)",
10847
+ "recipeRunId": null,
10848
+ "at": "2026-09-03T12:08:23.080Z"
10849
+ },
10850
+ {
10851
+ "id": "wh-fbcde0f2",
10852
+ "nodeId": "dw-fe8cdcbb",
10853
+ "nodeName": "读写验证·Modbus真实链路",
10854
+ "param": "烘箱温度设定",
10855
+ "eng": 2.7,
10856
+ "raw": 2.71828,
10857
+ "ok": true,
10858
+ "message": "写入并回读一致:2.71828 → raw 2.71828,回读 2.7183(标定后物理值 2.7)",
10859
+ "recipeRunId": null,
10860
+ "at": "2026-09-03T12:08:23.158Z"
10861
+ },
10862
+ {
10863
+ "id": "wh-8f52688b",
10864
+ "nodeId": "dw-47b4957b",
10865
+ "nodeName": "读写验证·mock 手动",
10866
+ "param": "烘箱温度设定",
10867
+ "eng": 165.5,
10868
+ "raw": 165.5,
10869
+ "ok": true,
10870
+ "message": "Mock PLC 写入成功:165.5 → raw 165.5,回读一致(标定后物理值 165.5)",
10871
+ "recipeRunId": null,
10872
+ "at": "2026-09-03T12:09:40.538Z"
10873
+ },
10874
+ {
10875
+ "id": "wh-53e50899",
10876
+ "nodeId": "dw-47b4957b",
10877
+ "nodeName": "读写验证·mock 手动",
10878
+ "param": "烘箱温度设定",
10879
+ "eng": 180,
10880
+ "raw": 180,
10881
+ "ok": true,
10882
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
10883
+ "recipeRunId": null,
10884
+ "at": "2026-09-03T12:09:40.694Z"
10885
+ },
10886
+ {
10887
+ "id": "wh-cc0a70ed",
10888
+ "nodeId": "dw-828f683b",
10889
+ "nodeName": "读写验证·标定×2",
10890
+ "param": "烘箱温度设定",
10891
+ "eng": 100,
10892
+ "raw": 50,
10893
+ "ok": true,
10894
+ "message": "Mock PLC 写入成功:50 → raw 50,回读一致(标定后物理值 100)",
10895
+ "recipeRunId": null,
10896
+ "at": "2026-09-03T12:09:40.841Z"
10897
+ },
10898
+ {
10899
+ "id": "wh-65f92877",
10900
+ "nodeId": "dw-e9b4575e",
10901
+ "nodeName": "读写验证·周期读",
10902
+ "param": "烘箱温度设定",
10903
+ "eng": 155,
10904
+ "raw": 155,
10905
+ "ok": true,
10906
+ "message": "Mock PLC 写入成功:155 → raw 155,回读一致(标定后物理值 155)",
10907
+ "recipeRunId": null,
10908
+ "at": "2026-09-03T12:09:40.967Z"
10909
+ },
10910
+ {
10911
+ "id": "wh-f37c46c9",
10912
+ "nodeId": "dw-167e357a",
10913
+ "nodeName": "读写验证·Modbus真实链路",
10914
+ "param": "烘箱温度设定",
10915
+ "eng": 3.1,
10916
+ "raw": 3.1416,
10917
+ "ok": true,
10918
+ "message": "写入并回读一致:3.1416 → raw 3.1416,回读 3.1416(标定后物理值 3.1)",
10919
+ "recipeRunId": null,
10920
+ "at": "2026-09-03T12:09:43.820Z"
10921
+ },
10922
+ {
10923
+ "id": "wh-1fb5df67",
10924
+ "nodeId": "dw-167e357a",
10925
+ "nodeName": "读写验证·Modbus真实链路",
10926
+ "param": "烘箱温度设定",
10927
+ "eng": 2.7,
10928
+ "raw": 2.71828,
10929
+ "ok": true,
10930
+ "message": "写入并回读一致:2.71828 → raw 2.71828,回读 2.7183(标定后物理值 2.7)",
10931
+ "recipeRunId": null,
10932
+ "at": "2026-09-03T12:09:43.879Z"
10933
+ },
10934
+ {
10935
+ "id": "wh-cfbac08d",
10936
+ "nodeId": "dw-a970a489",
10937
+ "nodeName": "读写验证·mock 手动",
10938
+ "param": "烘箱温度设定",
10939
+ "eng": 165.5,
10940
+ "raw": 165.5,
10941
+ "ok": true,
10942
+ "message": "Mock PLC 写入成功:165.5 → raw 165.5,回读一致(标定后物理值 165.5)",
10943
+ "recipeRunId": null,
10944
+ "at": "2026-09-03T13:34:21.742Z"
10945
+ },
10946
+ {
10947
+ "id": "wh-6f323fd7",
10948
+ "nodeId": "dw-a970a489",
10949
+ "nodeName": "读写验证·mock 手动",
10950
+ "param": "烘箱温度设定",
10951
+ "eng": 180,
10952
+ "raw": 180,
10953
+ "ok": true,
10954
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
10955
+ "recipeRunId": null,
10956
+ "at": "2026-09-03T13:34:21.895Z"
10957
+ },
10958
+ {
10959
+ "id": "wh-49375867",
10960
+ "nodeId": "dw-365a3630",
10961
+ "nodeName": "读写验证·标定×2",
10962
+ "param": "烘箱温度设定",
10963
+ "eng": 100,
10964
+ "raw": 50,
10965
+ "ok": true,
10966
+ "message": "Mock PLC 写入成功:50 → raw 50,回读一致(标定后物理值 100)",
10967
+ "recipeRunId": null,
10968
+ "at": "2026-09-03T13:34:22.069Z"
10969
+ },
10970
+ {
10971
+ "id": "wh-66340fa3",
10972
+ "nodeId": "dw-2259a4eb",
10973
+ "nodeName": "读写验证·周期读",
10974
+ "param": "烘箱温度设定",
10975
+ "eng": 155,
10976
+ "raw": 155,
10977
+ "ok": true,
10978
+ "message": "Mock PLC 写入成功:155 → raw 155,回读一致(标定后物理值 155)",
10979
+ "recipeRunId": null,
10980
+ "at": "2026-09-03T13:34:22.239Z"
10981
+ },
10982
+ {
10983
+ "id": "wh-ae2c041b",
10984
+ "nodeId": "dw-7eec4a83",
10985
+ "nodeName": "读写验证·Modbus真实链路",
10986
+ "param": "烘箱温度设定",
10987
+ "eng": 3.1,
10988
+ "raw": 3.1416,
10989
+ "ok": true,
10990
+ "message": "写入并回读一致:3.1416 → raw 3.1416,回读 3.1416(标定后物理值 3.1)",
10991
+ "recipeRunId": null,
10992
+ "at": "2026-09-03T13:34:25.104Z"
10993
+ },
10994
+ {
10995
+ "id": "wh-2152e0ff",
10996
+ "nodeId": "dw-7eec4a83",
10997
+ "nodeName": "读写验证·Modbus真实链路",
10998
+ "param": "烘箱温度设定",
10999
+ "eng": 2.7,
11000
+ "raw": 2.71828,
11001
+ "ok": true,
11002
+ "message": "写入并回读一致:2.71828 → raw 2.71828,回读 2.7183(标定后物理值 2.7)",
11003
+ "recipeRunId": null,
11004
+ "at": "2026-09-03T13:34:25.182Z"
10693
11005
  }
10694
11006
  ]