agentworkshop 0.7.6 → 0.7.7

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 (517) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +1 -1
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +1 -1
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/{rzGB_ojX.js → 3612gD2V.js} +2 -2
  5. package/.output/public/_nuxt/8eIQAVlb.js +1 -0
  6. package/.output/public/_nuxt/Ah9qOv1m.js +1 -0
  7. package/.output/public/_nuxt/{DdPeifHR.js → B4Fia4FB.js} +1 -1
  8. package/.output/public/_nuxt/B7aqqzkY.js +1 -0
  9. package/.output/public/_nuxt/BJ-fxrSw.js +1 -0
  10. package/.output/public/_nuxt/{DPDqAD1e.js → BSXx2vqR.js} +1 -1
  11. package/.output/public/_nuxt/{CdSgfcYR.js → BVZjSVs2.js} +1 -1
  12. package/.output/public/_nuxt/{DP6bdyIp.js → BVzDoF8t.js} +1 -1
  13. package/.output/public/_nuxt/BYL0Rjqj.js +7 -0
  14. package/.output/public/_nuxt/{CXmkVXS5.js → BjVLsC3M.js} +1 -1
  15. package/.output/public/_nuxt/{7ZABjMRh2.js → BkfchkK62.js} +1 -1
  16. package/.output/public/_nuxt/BnVoQ74r.js +1 -0
  17. package/.output/public/_nuxt/Bnp4vIAf.js +1 -0
  18. package/.output/public/_nuxt/BsMpJf7S.js +70 -0
  19. package/.output/public/_nuxt/{Z8k0uMSI.js → Bt_HDizI.js} +1 -1
  20. package/.output/public/_nuxt/Bu-P92Pe.js +18 -0
  21. package/.output/public/_nuxt/ButLXkjo.js +2 -0
  22. package/.output/public/_nuxt/C-GarxYC.js +1 -0
  23. package/.output/public/_nuxt/{D8DDDzV62.js → C2iWjzEC2.js} +1 -1
  24. package/.output/public/_nuxt/{HWXLx5Hz.js → C8dxXc6K.js} +5 -5
  25. package/.output/public/_nuxt/CGdPdJPP.js +1 -0
  26. package/.output/public/_nuxt/{CyygA0q4.js → CQiKcuoG.js} +4 -4
  27. package/.output/public/_nuxt/{CN7Zh8GQ.js → CRGlf1Gb.js} +1 -1
  28. package/.output/public/_nuxt/{DSBfvCi5.js → CblLEiCZ.js} +7 -7
  29. package/.output/public/_nuxt/Cd15nPnG2.js +1 -0
  30. package/.output/public/_nuxt/{OwJ1LJkF.js → CsCpu2Zh.js} +1 -1
  31. package/.output/public/_nuxt/CvbHIGQY2.js +1 -0
  32. package/.output/public/_nuxt/Cyk3du4K2.js +1 -0
  33. package/.output/public/_nuxt/{DVQAz9WI.js → D4qXvjuV.js} +2 -2
  34. package/.output/public/_nuxt/{CfIXY-ET.js → DCEyMaN-.js} +1 -1
  35. package/.output/public/_nuxt/{BFYNhG9S.js → DCXIGxzT.js} +1 -1
  36. package/.output/public/_nuxt/{B9aPoQvt.js → DM8DS9MA.js} +1 -1
  37. package/.output/public/_nuxt/{ChnfyQHz.js → DNzaswei.js} +1 -1
  38. package/.output/public/_nuxt/{CrFGZYVB2.js → DYZBdSSg2.js} +1 -1
  39. package/.output/public/_nuxt/{dObsRdSQ.js → DZk24ego.js} +1 -1
  40. package/.output/public/_nuxt/DeYsUzhr.js +1 -0
  41. package/.output/public/_nuxt/Dk6pq9JB2.js +1 -0
  42. package/.output/public/_nuxt/{ByGNWgAr.js → Do88WZG2.js} +3 -3
  43. package/.output/public/_nuxt/{R_WxTozV2.js → Du-eSpo2.js} +1 -1
  44. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +1 -0
  45. package/.output/public/_nuxt/{Bsc69G4x.js → VnIWJ0ts.js} +3 -3
  46. package/.output/public/_nuxt/_id_.BzKMZnLe.css +1 -0
  47. package/.output/public/_nuxt/_id_.CbpDAWRh.css +1 -0
  48. package/.output/public/_nuxt/{_wsId_.DET_GinP.css → _wsId_.COUzMXpP.css} +1 -1
  49. package/.output/public/_nuxt/agents.BlejnOOC.css +1 -0
  50. package/.output/public/_nuxt/builds/latest.json +1 -1
  51. package/.output/public/_nuxt/builds/meta/14df171d-89cb-43ec-ad6f-9df72d6da7f5.json +1 -0
  52. package/.output/public/_nuxt/daq.zZ8GR433.css +1 -0
  53. package/.output/public/_nuxt/{default.D17kXlD6.css → default.V3_hUJq1.css} +1 -1
  54. package/.output/public/_nuxt/{B4GHHF6d2.js → fQUs58kX2.js} +1 -1
  55. package/.output/public/_nuxt/p7wSGMtc.js +1 -0
  56. package/.output/public/_nuxt/tRBT-plo.js +1 -0
  57. package/.output/server/chunks/_/SearchOutlined.mjs +4 -4
  58. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  59. package/.output/server/chunks/_/character-asset.repo.mjs +3 -6
  60. package/.output/server/chunks/_/character-asset.repo.mjs.map +1 -1
  61. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  62. package/.output/server/chunks/_/nitro.mjs +4967 -2035
  63. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  64. package/.output/server/chunks/_/scene-layout.repo.mjs +4 -10
  65. package/.output/server/chunks/_/scene-layout.repo.mjs.map +1 -1
  66. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs → Col-biaNnEPf.mjs} +2 -2
  67. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs.map → Col-biaNnEPf.mjs.map} +1 -1
  68. package/.output/server/chunks/build/{OmpTerminalPanel-B_SYhmgb.mjs → OmpTerminalPanel-COphA1br.mjs} +20 -19
  69. package/.output/server/chunks/build/OmpTerminalPanel-COphA1br.mjs.map +1 -0
  70. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs → TownView-B5KifIaT.mjs} +4 -4
  71. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs.map → TownView-B5KifIaT.mjs.map} +1 -1
  72. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs → _id_-C-ewLgfl.mjs} +119 -119
  73. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs.map → _id_-C-ewLgfl.mjs.map} +1 -1
  74. package/.output/server/chunks/build/{_id_-CWLFGZjV.mjs → _id_-Ct4Jhvl1.mjs} +42 -38
  75. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +1 -0
  76. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs → _wsId_-CanI_6Su.mjs} +591 -53
  77. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs.map → _wsId_-CanI_6Su.mjs.map} +1 -1
  78. package/.output/server/chunks/build/{agents-D4l1icvn.mjs → agents-DSOptxXA.mjs} +146 -91
  79. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +1 -0
  80. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs → alert-qJnjyRcP.mjs} +3 -3
  81. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs.map → alert-qJnjyRcP.mjs.map} +1 -1
  82. package/.output/server/chunks/build/{button-BhbX5ACI.mjs → button-DEcZFcqN.mjs} +3 -3
  83. package/.output/server/chunks/build/{button-BhbX5ACI.mjs.map → button-DEcZFcqN.mjs.map} +1 -1
  84. package/.output/server/chunks/build/{card-l4BbX67w.mjs → card-Dipvaykh.mjs} +5 -5
  85. package/.output/server/chunks/build/{card-l4BbX67w.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  86. package/.output/server/chunks/build/{channel-templates-DqjtC-R0.mjs → channel-templates-BK0KuPOd.mjs} +13 -12
  87. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +1 -0
  88. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs → checkbox-dzcpU_Cd.mjs} +4 -4
  89. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs.map → checkbox-dzcpU_Cd.mjs.map} +1 -1
  90. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs → daq-D9RA_uze.mjs} +102 -102
  91. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs.map → daq-D9RA_uze.mjs.map} +1 -1
  92. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs +1 -1
  93. package/.output/server/chunks/build/{default-CKJWhkot.mjs → default-BfWGTlbj.mjs} +81 -23
  94. package/.output/server/chunks/build/{default-CKJWhkot.mjs.map → default-BfWGTlbj.mjs.map} +1 -1
  95. package/.output/server/chunks/build/{drawer-CVValqoh.mjs → drawer-Cmh90erI.mjs} +3 -3
  96. package/.output/server/chunks/build/{drawer-CVValqoh.mjs.map → drawer-Cmh90erI.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs → dropdown-CGQ0KAzA.mjs} +2 -2
  98. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs.map → dropdown-CGQ0KAzA.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs → dropdown-vhn1NPFs.mjs} +4 -4
  100. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs.map → dropdown-vhn1NPFs.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs → input-number-Bd55elNN.mjs} +5 -5
  102. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{input--KMeLYqZ.mjs → input-sf_BT6o6.mjs} +3 -3
  104. package/.output/server/chunks/build/{input--KMeLYqZ.mjs.map → input-sf_BT6o6.mjs.map} +1 -1
  105. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs +1 -1
  106. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs → menu-WCrlpYVh.mjs} +3 -3
  107. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs.map → menu-WCrlpYVh.mjs.map} +1 -1
  108. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs → modal-yvUquPj5.mjs} +4 -4
  109. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs.map → modal-yvUquPj5.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs → monitor-MIOvsyLa.mjs} +21 -21
  111. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs.map → monitor-MIOvsyLa.mjs.map} +1 -1
  112. package/.output/server/chunks/build/pages-DR2bzczM.mjs +1 -1
  113. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs → plugins-DnOBIWGg.mjs} +7 -7
  114. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs.map → plugins-DnOBIWGg.mjs.map} +1 -1
  115. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs → popconfirm-CRaHcz5O.mjs} +4 -4
  116. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs.map → popconfirm-CRaHcz5O.mjs.map} +1 -1
  117. package/.output/server/chunks/build/{useWorkshopApi-Bh5VUHWu.mjs → segmented-DPe9ZzLO.mjs} +7 -78
  118. package/.output/server/chunks/build/segmented-DPe9ZzLO.mjs.map +1 -0
  119. package/.output/server/chunks/build/{select-D7H2ysgT.mjs → select-D-CeE5vY.mjs} +3 -3
  120. package/.output/server/chunks/build/{select-D7H2ysgT.mjs.map → select-D-CeE5vY.mjs.map} +1 -1
  121. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs → settings-DA8IkGLo.mjs} +11 -11
  122. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs.map → settings-DA8IkGLo.mjs.map} +1 -1
  123. package/.output/server/chunks/build/{space-DCwIlnkI.mjs → space-CCBYAkXt.mjs} +2 -2
  124. package/.output/server/chunks/build/{space-DCwIlnkI.mjs.map → space-CCBYAkXt.mjs.map} +1 -1
  125. package/.output/server/chunks/build/{switch-VC0m9ede.mjs → switch-CelRXpcy.mjs} +3 -3
  126. package/.output/server/chunks/build/{switch-VC0m9ede.mjs.map → switch-CelRXpcy.mjs.map} +1 -1
  127. package/.output/server/chunks/build/{table-BksLg3Q_.mjs → table-Cswq-l2r.mjs} +10 -10
  128. package/.output/server/chunks/build/{table-BksLg3Q_.mjs.map → table-Cswq-l2r.mjs.map} +1 -1
  129. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs → tabs-BM3tAh_J.mjs} +5 -5
  130. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  131. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs → tag-NO9jEqKy.mjs} +4 -4
  132. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  133. package/.output/server/chunks/build/{teams-QR3BBF7A.mjs → teams-BhSKBBBM.mjs} +15 -14
  134. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +1 -0
  135. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs → tokens-D_eyxmcv.mjs} +16 -16
  136. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs.map → tokens-D_eyxmcv.mjs.map} +1 -1
  137. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -1
  138. package/.output/server/chunks/build/{town-_4tEEEVW.mjs → town-DPtOPRRO.mjs} +4 -4
  139. package/.output/server/chunks/build/{town-_4tEEEVW.mjs.map → town-DPtOPRRO.mjs.map} +1 -1
  140. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +42 -0
  141. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +1 -0
  142. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +81 -0
  143. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs.map +1 -0
  144. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs +1 -1
  145. package/.output/server/chunks/build/user-Dk-ytEUV.mjs +1 -1
  146. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs → users-CmVvb1oq.mjs} +16 -16
  147. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs.map → users-CmVvb1oq.mjs.map} +1 -1
  148. package/.output/server/chunks/build/{workshop-k0XZTFKg.mjs → workshop-iCzNRifn.mjs} +9 -9
  149. package/.output/server/chunks/build/{workshop-k0XZTFKg.mjs.map → workshop-iCzNRifn.mjs.map} +1 -1
  150. package/.output/server/chunks/build/workspaces-IfORCDJE.mjs +1 -1
  151. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  152. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  153. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  154. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  155. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  156. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  157. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  158. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  159. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  160. package/.output/server/chunks/routes/api/system/index.get.mjs +3 -3
  161. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  162. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -1
  163. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
  164. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
  165. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -1
  166. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
  167. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  169. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
  170. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  171. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  173. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  174. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
  175. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
  176. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  178. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  179. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  180. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  181. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  184. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -14
  191. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  192. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +39 -0
  193. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -0
  194. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  197. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -2
  203. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -2
  205. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
  208. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  209. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  213. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  235. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  237. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +9 -2
  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 -1
  240. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +2 -2
  241. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -2
  242. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -2
  243. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -2
  244. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +6 -4
  245. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  246. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
  247. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
  248. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -2
  249. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -2
  250. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  251. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -2
  252. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  253. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  254. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  255. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  256. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  257. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  258. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -2
  259. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  260. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  261. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -2
  262. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -2
  263. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  264. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  265. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  266. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  267. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -2
  268. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -2
  269. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -2
  270. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  271. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  272. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  273. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  274. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -2
  275. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  276. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
  277. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
  278. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
  279. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  280. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  281. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  282. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  283. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  284. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  285. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  286. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  287. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  288. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  289. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  290. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  291. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -2
  292. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  293. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
  294. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  295. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  296. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  297. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  298. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  299. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  300. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  301. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  302. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  303. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +247 -0
  304. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -0
  305. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +27 -0
  306. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -0
  307. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  308. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +19 -7
  309. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  311. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  312. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -1
  313. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  314. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  315. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  316. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -2
  317. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -2
  318. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  319. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -2
  320. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  321. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  323. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  324. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  325. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -1
  326. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  327. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  329. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  330. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  331. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  332. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  334. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  335. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  336. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  337. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  338. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  339. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  340. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  341. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  342. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  343. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  344. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  345. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  346. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  347. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  348. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  349. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  350. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  352. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  354. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
  355. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  356. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  357. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  358. package/.output/server/chunks/routes/renderer.mjs +1 -1
  359. package/.output/server/chunks/virtual/entry.mjs +123 -113
  360. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  361. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  362. package/.output/server/index.mjs +1 -1
  363. package/.output/server/package.json +1 -1
  364. package/app/components/AppHeader.vue +56 -2
  365. package/app/components/workshop/ChannelSessionList.vue +703 -593
  366. package/app/components/workshop/terminal/OmpTerminalPanel.vue +2 -1
  367. package/app/composables/workshop/useLocalTime.ts +16 -0
  368. package/app/composables/workshop/useSceneLayouts.ts +2 -1
  369. package/app/composables/workshop/useWorkshopApi.ts +249 -224
  370. package/app/pages/daq/[id].vue +7 -6
  371. package/app/pages/daq/index.vue +2 -2
  372. package/app/pages/dcw/[id].vue +3 -3
  373. package/app/pages/workshop/agents.vue +432 -382
  374. package/bin/aw.mjs +0 -0
  375. package/cli/aw.mjs +8 -1
  376. package/cli/commands/stop.mjs +7 -4
  377. package/cli/commands/tui.mjs +10 -1
  378. package/cli/core/registry.mjs +5 -3
  379. package/config.yml +134 -134
  380. package/docs/tui.md +1 -1
  381. package/i18n/locales/en.ts +5 -0
  382. package/i18n/locales/zh-CN.ts +5 -0
  383. package/package.json +148 -140
  384. package/scripts/_dbg-catalog-smoke.ts +20 -0
  385. package/scripts/_dbg-codex-probe.mjs +58 -0
  386. package/scripts/_dbg-dsh-probe.mjs +31 -0
  387. package/scripts/_dbg-interval-scenario.mjs +126 -0
  388. package/scripts/_dbg-line-spawn.ts +31 -0
  389. package/scripts/_dbg-live-engine-probe.mjs +80 -0
  390. package/scripts/_dbg-mcp-bridge-probe.mjs +147 -0
  391. package/scripts/_dbg-opencode-sse.mjs +101 -0
  392. package/scripts/_dbg-opencode-start.ts +57 -0
  393. package/scripts/_dbg-plugin-matrix.mjs +212 -0
  394. package/scripts/_dbg-protocol-matrix.mjs +425 -0
  395. package/scripts/_dbg-real-scenario-timeline.log +123 -0
  396. package/scripts/_dbg-registry-smoke.ts +14 -0
  397. package/scripts/_dbg-sim-keeper.mjs +100 -0
  398. package/scripts/_dbg-team-drill.mjs +173 -0
  399. package/scripts/dev-guard.mjs +11 -3
  400. package/scripts/dev-protocol-simulators.mjs +28 -1
  401. package/scripts/e2e-multi-harness.ts +374 -0
  402. package/scripts/e2e-multiharness-team.mjs +319 -0
  403. package/scripts/e2e-plc-scenario.mjs +292 -0
  404. package/scripts/e2e-real-scenario.mjs +452 -0
  405. package/scripts/migrate-local-time.mjs +123 -0
  406. package/scripts/start.mjs +30 -2
  407. package/server/api/system/settings/index.get.ts +3 -3
  408. package/server/api/workshop/agent-tools/invoke.post.ts +27 -41
  409. package/server/api/workshop/agent-tools/list.get.ts +25 -0
  410. package/server/api/workshop/channels/[id]/index.patch.ts +38 -30
  411. package/server/api/workshop/daq/[id]/samples.get.ts +6 -3
  412. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -0
  413. package/server/api/workshop/harnesses.get.ts +12 -0
  414. package/server/api/workshop/hitl/respond.post.ts +87 -67
  415. package/server/api/workshop/ws.ts +13 -0
  416. package/server/data/daqs.json +1366 -16
  417. package/server/data/dcw-lines.json +266 -0
  418. package/server/data/dcw-products.json +203 -0
  419. package/server/data/dcw-recipes.json +784 -0
  420. package/server/data/dcw-rollback.json +1144 -1
  421. package/server/data/dcw-runs.json +983 -791
  422. package/server/data/dcw-writes.json +1080 -0
  423. package/server/data/dcws.json +3278 -203
  424. package/server/data/line-runs.json +52 -2
  425. package/server/harness/aw-mcp-bridge.mjs +153 -0
  426. package/server/plugins/00-local-time.ts +10 -0
  427. package/server/plugins/aw-plugins.ts +3 -0
  428. package/server/plugins/backup.ts +116 -97
  429. package/server/plugins/dev-stability-guard.ts +24 -15
  430. package/server/plugins/retention.ts +1 -0
  431. package/server/plugins/security.ts +24 -3
  432. package/server/plugins/workshop.ts +156 -153
  433. package/server/repositories/user.repository.ts +414 -391
  434. package/server/services/system-config.ts +30 -6
  435. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +1 -0
  436. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +14 -0
  437. package/server/services/workshop/agents/adapters/line-spawn.ts +108 -0
  438. package/server/services/workshop/agents/adapters/stdio-jsonrpc.ts +316 -0
  439. package/server/services/workshop/agents/agent-interface.ts +17 -0
  440. package/server/services/workshop/agents/codex-agent.ts +822 -0
  441. package/server/services/workshop/agents/dsh-agent.ts +670 -0
  442. package/server/services/workshop/agents/factory.ts +4 -16
  443. package/server/services/workshop/agents/harness-env.ts +54 -0
  444. package/server/services/workshop/agents/harness-models.ts +270 -0
  445. package/server/services/workshop/agents/host-tool-bridge.ts +592 -0
  446. package/server/services/workshop/agents/industrial-tools.ts +5 -1
  447. package/server/services/workshop/agents/node-bindings.repo.ts +4 -5
  448. package/server/services/workshop/agents/omp-agent.ts +1178 -1957
  449. package/server/services/workshop/agents/opencode-agent.ts +987 -0
  450. package/server/services/workshop/agents/prompt-builder.ts +393 -0
  451. package/server/services/workshop/agents/registry.ts +125 -0
  452. package/server/services/workshop/assets/character-asset.repo.ts +3 -5
  453. package/server/services/workshop/assets/device-twin.repo.ts +3 -5
  454. package/server/services/workshop/daq/daq-controller.ts +8 -4
  455. package/server/services/workshop/daq/daq-node.repo.ts +3 -5
  456. package/server/services/workshop/daq/daq-node.ts +2 -2
  457. package/server/services/workshop/daq/daq-templates.ts +3 -5
  458. package/server/services/workshop/daq/drivers.ts +41 -12
  459. package/server/services/workshop/daq/storage/sqlite.adapter.ts +313 -309
  460. package/server/services/workshop/db/backup-registry.ts +33 -0
  461. package/server/services/workshop/db/channel.repo.ts +104 -101
  462. package/server/services/workshop/db/database.ts +956 -949
  463. package/server/services/workshop/dcw/dcw-controller.ts +3 -1
  464. package/server/services/workshop/dcw/dcw-line.repo.ts +4 -11
  465. package/server/services/workshop/dcw/dcw-node.repo.ts +3 -5
  466. package/server/services/workshop/dcw/dcw-node.ts +13 -1
  467. package/server/services/workshop/dcw/dcw-product.repo.ts +3 -4
  468. package/server/services/workshop/dcw/dcw-recipe.repo.ts +3 -19
  469. package/server/services/workshop/dcw/dcw-templates.ts +3 -5
  470. package/server/services/workshop/dcw/drivers.ts +37 -13
  471. package/server/services/workshop/dcw/line-run.ts +3 -5
  472. package/server/services/workshop/dcw/recipe-rollback.repo.ts +4 -10
  473. package/server/services/workshop/json-store.mjs +72 -0
  474. package/server/services/workshop/plugins/host.mjs +2 -1
  475. package/server/services/workshop/runtime/agent-runtime.ts +44 -0
  476. package/server/services/workshop/runtime/manager.ts +2953 -2868
  477. package/server/services/workshop/scene/scene-layout.repo.ts +4 -11
  478. package/server/services/workshop/settings.ts +7 -0
  479. package/shared/config/schema.json +5 -0
  480. package/shared/config/single-instance.mjs +5 -1
  481. package/shared/local-time.mjs +36 -0
  482. package/shared/workshop-protocol.ts +11 -5
  483. package/tui/aw-tui.mjs +28 -10
  484. package/tui/components/hitl-card.mjs +47 -36
  485. package/tui/lib/ws.mjs +2 -1
  486. package/.output/public/_nuxt/9X0fVBD7.js +0 -57
  487. package/.output/public/_nuxt/B6M2WJWm2.js +0 -1
  488. package/.output/public/_nuxt/B9Yie5HN.js +0 -2
  489. package/.output/public/_nuxt/BF9XPEuw.js +0 -1
  490. package/.output/public/_nuxt/BbQornXa.js +0 -1
  491. package/.output/public/_nuxt/Bxgaym6j.js +0 -1
  492. package/.output/public/_nuxt/Bxh5nf8j.js +0 -1
  493. package/.output/public/_nuxt/CXLI50Sq.js +0 -1
  494. package/.output/public/_nuxt/CdfAP_IH2.js +0 -1
  495. package/.output/public/_nuxt/Ce1zyNYu.js +0 -1
  496. package/.output/public/_nuxt/D-Ne4C9a.js +0 -1
  497. package/.output/public/_nuxt/DEHNjlTq2.js +0 -1
  498. package/.output/public/_nuxt/DFnGFEav.js +0 -18
  499. package/.output/public/_nuxt/DYWgGHNo.js +0 -7
  500. package/.output/public/_nuxt/OmpTerminalPanel.Bc9GjNU5.css +0 -1
  501. package/.output/public/_nuxt/W1E3-5ML.js +0 -14
  502. package/.output/public/_nuxt/XVB9_zwP.js +0 -1
  503. package/.output/public/_nuxt/Xaf_HIR3.js +0 -1
  504. package/.output/public/_nuxt/_id_.BeqSLvl_.css +0 -1
  505. package/.output/public/_nuxt/_id_.DN3U6EF9.css +0 -1
  506. package/.output/public/_nuxt/agents.BJwgTLFZ.css +0 -1
  507. package/.output/public/_nuxt/builds/meta/55c10854-ee0e-4be4-924b-a1b0e100fe11.json +0 -1
  508. package/.output/public/_nuxt/daq.BXsnevQv.css +0 -1
  509. package/.output/public/_nuxt/yIKY_V1P.js +0 -1
  510. package/.output/server/chunks/build/OmpTerminalPanel-B_SYhmgb.mjs.map +0 -1
  511. package/.output/server/chunks/build/_id_-CWLFGZjV.mjs.map +0 -1
  512. package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +0 -1
  513. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +0 -1
  514. package/.output/server/chunks/build/interval-WlxgjTzO.mjs +0 -9
  515. package/.output/server/chunks/build/interval-WlxgjTzO.mjs.map +0 -1
  516. package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +0 -1
  517. package/.output/server/chunks/build/useWorkshopApi-Bh5VUHWu.mjs.map +0 -1
@@ -11338,5 +11338,1085 @@
11338
11338
  "message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
11339
11339
  "recipeRunId": null,
11340
11340
  "at": "2026-09-04T05:12:13.804Z"
11341
+ },
11342
+ {
11343
+ "id": "wh-ef3c874d",
11344
+ "nodeId": "dw-5b0d764a",
11345
+ "nodeName": "联调温度设定器",
11346
+ "param": "烘箱温度设定",
11347
+ "eng": 175,
11348
+ "raw": 175,
11349
+ "ok": true,
11350
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
11351
+ "recipeRunId": null,
11352
+ "at": "2026-09-05T02:05:03.057Z"
11353
+ },
11354
+ {
11355
+ "id": "wh-422892aa",
11356
+ "nodeId": "dw-ca91fe4b",
11357
+ "nodeName": "联调温度设定器",
11358
+ "param": "烘箱温度设定",
11359
+ "eng": 175,
11360
+ "raw": 175,
11361
+ "ok": true,
11362
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
11363
+ "recipeRunId": null,
11364
+ "at": "2026-09-05T02:42:52.519Z"
11365
+ },
11366
+ {
11367
+ "id": "wh-58cb9b9c",
11368
+ "nodeId": "dw-a9e448a3",
11369
+ "nodeName": "联调温度设定器",
11370
+ "param": "烘箱温度设定",
11371
+ "eng": 175,
11372
+ "raw": 175,
11373
+ "ok": true,
11374
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
11375
+ "recipeRunId": null,
11376
+ "at": "2026-09-05T03:07:49.558Z"
11377
+ },
11378
+ {
11379
+ "id": "wh-b07793fb",
11380
+ "nodeId": "dw-c5cc2e42",
11381
+ "nodeName": "联调温度设定器",
11382
+ "param": "烘箱温度设定",
11383
+ "eng": 175,
11384
+ "raw": 175,
11385
+ "ok": true,
11386
+ "message": "Mock PLC 写入成功:175 → raw 175,回读一致(标定后物理值 175)",
11387
+ "recipeRunId": null,
11388
+ "at": "2026-09-05T03:32:31.881Z"
11389
+ },
11390
+ {
11391
+ "id": "wh-c36074e4",
11392
+ "nodeId": "dw-34014c7e",
11393
+ "nodeName": "PLC-SP温度-mtny0lcv",
11394
+ "param": "烘箱温度设定",
11395
+ "eng": 180,
11396
+ "raw": 180,
11397
+ "ok": true,
11398
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11399
+ "recipeRunId": "rr-901d3630",
11400
+ "at": "2026-09-05T05:29:21.553Z"
11401
+ },
11402
+ {
11403
+ "id": "wh-de356388",
11404
+ "nodeId": "dw-1fead1a0",
11405
+ "nodeName": "MQTT-SP-mtny0lcv",
11406
+ "param": "烘箱温度设定",
11407
+ "eng": 165.5,
11408
+ "raw": 165.5,
11409
+ "ok": true,
11410
+ "message": "已发布 165.5 → aw/sim/setpoint-mtny0lcv(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11411
+ "recipeRunId": null,
11412
+ "at": "2026-09-05T05:29:30.923Z"
11413
+ },
11414
+ {
11415
+ "id": "wh-5f2e1971",
11416
+ "nodeId": "dw-b0e970e1",
11417
+ "nodeName": "HTTP-SP-mtny0lcv",
11418
+ "param": "烘箱温度设定",
11419
+ "eng": 168.3,
11420
+ "raw": 168.25,
11421
+ "ok": true,
11422
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11423
+ "recipeRunId": null,
11424
+ "at": "2026-09-05T05:29:40.960Z"
11425
+ },
11426
+ {
11427
+ "id": "wh-80ba0a7d",
11428
+ "nodeId": "dw-0f49c369",
11429
+ "nodeName": "OPCUA-SP-mtny0lcv",
11430
+ "param": "烘箱温度设定",
11431
+ "eng": 172.5,
11432
+ "raw": 172.5,
11433
+ "ok": true,
11434
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11435
+ "recipeRunId": null,
11436
+ "at": "2026-09-05T05:29:40.977Z"
11437
+ },
11438
+ {
11439
+ "id": "wh-9893d70c",
11440
+ "nodeId": "dw-34014c7e",
11441
+ "nodeName": "PLC-SP温度-mtny0lcv",
11442
+ "param": "烘箱温度设定",
11443
+ "eng": 182,
11444
+ "raw": 182,
11445
+ "ok": true,
11446
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11447
+ "recipeRunId": null,
11448
+ "at": "2026-09-05T05:29:42.239Z"
11449
+ },
11450
+ {
11451
+ "id": "wh-82082c30",
11452
+ "nodeId": "dw-07787cf7",
11453
+ "nodeName": "PLC-SP温度-mtnyemlz",
11454
+ "param": "烘箱温度设定",
11455
+ "eng": 180,
11456
+ "raw": 180,
11457
+ "ok": true,
11458
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11459
+ "recipeRunId": "rr-f0e4d57d",
11460
+ "at": "2026-09-05T05:40:12.228Z"
11461
+ },
11462
+ {
11463
+ "id": "wh-05a821ec",
11464
+ "nodeId": "dw-4937418a",
11465
+ "nodeName": "MQTT-SP-mtnyemlz",
11466
+ "param": "烘箱温度设定",
11467
+ "eng": 165.5,
11468
+ "raw": 165.5,
11469
+ "ok": true,
11470
+ "message": "已发布 165.5 → aw/sim/setpoint-mtnyemlz(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11471
+ "recipeRunId": null,
11472
+ "at": "2026-09-05T05:40:21.578Z"
11473
+ },
11474
+ {
11475
+ "id": "wh-265fc4ea",
11476
+ "nodeId": "dw-b1fb42e5",
11477
+ "nodeName": "HTTP-SP-mtnyemlz",
11478
+ "param": "烘箱温度设定",
11479
+ "eng": 168.3,
11480
+ "raw": 168.25,
11481
+ "ok": true,
11482
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11483
+ "recipeRunId": null,
11484
+ "at": "2026-09-05T05:40:31.604Z"
11485
+ },
11486
+ {
11487
+ "id": "wh-9840fc4e",
11488
+ "nodeId": "dw-c62ed812",
11489
+ "nodeName": "OPCUA-SP-mtnyemlz",
11490
+ "param": "烘箱温度设定",
11491
+ "eng": 172.5,
11492
+ "raw": 172.5,
11493
+ "ok": true,
11494
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11495
+ "recipeRunId": null,
11496
+ "at": "2026-09-05T05:40:31.611Z"
11497
+ },
11498
+ {
11499
+ "id": "wh-43810646",
11500
+ "nodeId": "dw-07787cf7",
11501
+ "nodeName": "PLC-SP温度-mtnyemlz",
11502
+ "param": "烘箱温度设定",
11503
+ "eng": 182,
11504
+ "raw": 182,
11505
+ "ok": true,
11506
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11507
+ "recipeRunId": null,
11508
+ "at": "2026-09-05T05:40:32.862Z"
11509
+ },
11510
+ {
11511
+ "id": "wh-c1923f3d",
11512
+ "nodeId": "dw-9aed2808",
11513
+ "nodeName": "sb-node",
11514
+ "param": "烘箱温度设定",
11515
+ "eng": 165.5,
11516
+ "raw": 165.5,
11517
+ "ok": true,
11518
+ "message": "已发布 165.5 → aw/split-brain-1788587015630(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11519
+ "recipeRunId": null,
11520
+ "at": "2026-09-05T05:43:36.258Z"
11521
+ },
11522
+ {
11523
+ "id": "wh-9582d319",
11524
+ "nodeId": "dw-8960e2f8",
11525
+ "nodeName": "PLC-SP温度-mtnynfph",
11526
+ "param": "烘箱温度设定",
11527
+ "eng": 180,
11528
+ "raw": null,
11529
+ "ok": false,
11530
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
11531
+ "recipeRunId": "rr-6a0c3b60",
11532
+ "at": "2026-09-05T05:47:26.481Z"
11533
+ },
11534
+ {
11535
+ "id": "wh-2c2ca4f9",
11536
+ "nodeId": "dw-782343d3",
11537
+ "nodeName": "HTTP-SP-mtnynfph",
11538
+ "param": "烘箱温度设定",
11539
+ "eng": 168.3,
11540
+ "raw": null,
11541
+ "ok": false,
11542
+ "message": "HTTP 写入失败: fetch failed",
11543
+ "recipeRunId": null,
11544
+ "at": "2026-09-05T05:47:36.294Z"
11545
+ },
11546
+ {
11547
+ "id": "wh-157e7560",
11548
+ "nodeId": "dw-75093843",
11549
+ "nodeName": "OPCUA-SP-mtnynfph",
11550
+ "param": "烘箱温度设定",
11551
+ "eng": 172.5,
11552
+ "raw": null,
11553
+ "ok": false,
11554
+ "message": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
11555
+ "recipeRunId": null,
11556
+ "at": "2026-09-05T05:47:36.311Z"
11557
+ },
11558
+ {
11559
+ "id": "wh-d1545985",
11560
+ "nodeId": "dw-ded0b84a",
11561
+ "nodeName": "PLC-SP温度-mtnyz0bo",
11562
+ "param": "烘箱温度设定",
11563
+ "eng": 180,
11564
+ "raw": null,
11565
+ "ok": false,
11566
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
11567
+ "recipeRunId": "rr-b7161a8a",
11568
+ "at": "2026-09-05T05:56:36.839Z"
11569
+ },
11570
+ {
11571
+ "id": "wh-73bac86e",
11572
+ "nodeId": "dw-20311c49",
11573
+ "nodeName": "HTTP-SP-mtnyz0bo",
11574
+ "param": "烘箱温度设定",
11575
+ "eng": 168.3,
11576
+ "raw": null,
11577
+ "ok": false,
11578
+ "message": "HTTP 写入失败: fetch failed",
11579
+ "recipeRunId": null,
11580
+ "at": "2026-09-05T05:56:46.719Z"
11581
+ },
11582
+ {
11583
+ "id": "wh-caa90dac",
11584
+ "nodeId": "dw-e10b0378",
11585
+ "nodeName": "OPCUA-SP-mtnyz0bo",
11586
+ "param": "烘箱温度设定",
11587
+ "eng": 172.5,
11588
+ "raw": null,
11589
+ "ok": false,
11590
+ "message": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
11591
+ "recipeRunId": null,
11592
+ "at": "2026-09-05T05:56:46.753Z"
11593
+ },
11594
+ {
11595
+ "id": "wh-2949c95a",
11596
+ "nodeId": "dw-ded0b84a",
11597
+ "nodeName": "PLC-SP温度-mtnyz0bo",
11598
+ "param": "烘箱温度设定",
11599
+ "eng": 182,
11600
+ "raw": null,
11601
+ "ok": false,
11602
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
11603
+ "recipeRunId": null,
11604
+ "at": "2026-09-05T05:56:49.055Z"
11605
+ },
11606
+ {
11607
+ "id": "wh-77609718",
11608
+ "nodeId": "dw-9f172fc2",
11609
+ "nodeName": "PLC-SP温度-mtnzg090",
11610
+ "param": "烘箱温度设定",
11611
+ "eng": 180,
11612
+ "raw": null,
11613
+ "ok": false,
11614
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
11615
+ "recipeRunId": "rr-08f535dc",
11616
+ "at": "2026-09-05T06:09:36.936Z"
11617
+ },
11618
+ {
11619
+ "id": "wh-e0d51271",
11620
+ "nodeId": "dw-514628fa",
11621
+ "nodeName": "HTTP-SP-mtnzg090",
11622
+ "param": "烘箱温度设定",
11623
+ "eng": 168.3,
11624
+ "raw": null,
11625
+ "ok": false,
11626
+ "message": "HTTP 写入失败: fetch failed",
11627
+ "recipeRunId": null,
11628
+ "at": "2026-09-05T06:09:46.766Z"
11629
+ },
11630
+ {
11631
+ "id": "wh-2cb9eb2a",
11632
+ "nodeId": "dw-695d97ed",
11633
+ "nodeName": "OPCUA-SP-mtnzg090",
11634
+ "param": "烘箱温度设定",
11635
+ "eng": 172.5,
11636
+ "raw": null,
11637
+ "ok": false,
11638
+ "message": "OPC UA 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(The connection cannot be established with server opc.tcp://127.0.0.1:4840 .\nPlease check that the server is up and running or your network configuration.\nErr = (connect ECONNREFUSED 127.0.0.1:4840))",
11639
+ "recipeRunId": null,
11640
+ "at": "2026-09-05T06:09:46.778Z"
11641
+ },
11642
+ {
11643
+ "id": "wh-54210937",
11644
+ "nodeId": "dw-9f172fc2",
11645
+ "nodeName": "PLC-SP温度-mtnzg090",
11646
+ "param": "烘箱温度设定",
11647
+ "eng": 182,
11648
+ "raw": null,
11649
+ "ok": false,
11650
+ "message": "Modbus 写入失败: 无法建立连接——检查 PLC 电源/IP/端口与防火墙(connect ECONNREFUSED 127.0.0.1:15040)",
11651
+ "recipeRunId": null,
11652
+ "at": "2026-09-05T06:09:49.071Z"
11653
+ },
11654
+ {
11655
+ "id": "wh-804db7b9",
11656
+ "nodeId": "dw-c30656ec",
11657
+ "nodeName": "PLC-SP温度-mtnzli8v",
11658
+ "param": "烘箱温度设定",
11659
+ "eng": 180,
11660
+ "raw": 180,
11661
+ "ok": true,
11662
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11663
+ "recipeRunId": "rr-09d52cc2",
11664
+ "at": "2026-09-05T06:13:58.605Z"
11665
+ },
11666
+ {
11667
+ "id": "wh-93f661ea",
11668
+ "nodeId": "dw-2dddfcb3",
11669
+ "nodeName": "MQTT-SP-mtnzli8v",
11670
+ "param": "烘箱温度设定",
11671
+ "eng": 165.5,
11672
+ "raw": 165.5,
11673
+ "ok": true,
11674
+ "message": "已发布 165.5 → aw/sim/setpoint-mtnzli8v(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11675
+ "recipeRunId": null,
11676
+ "at": "2026-09-05T06:14:08.076Z"
11677
+ },
11678
+ {
11679
+ "id": "wh-98aa4cf5",
11680
+ "nodeId": "dw-f475e275",
11681
+ "nodeName": "HTTP-SP-mtnzli8v",
11682
+ "param": "烘箱温度设定",
11683
+ "eng": 168.3,
11684
+ "raw": 168.25,
11685
+ "ok": true,
11686
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11687
+ "recipeRunId": null,
11688
+ "at": "2026-09-05T06:14:18.101Z"
11689
+ },
11690
+ {
11691
+ "id": "wh-c7ad251d",
11692
+ "nodeId": "dw-318f7efc",
11693
+ "nodeName": "OPCUA-SP-mtnzli8v",
11694
+ "param": "烘箱温度设定",
11695
+ "eng": 172.5,
11696
+ "raw": 172.5,
11697
+ "ok": true,
11698
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11699
+ "recipeRunId": null,
11700
+ "at": "2026-09-05T06:14:18.111Z"
11701
+ },
11702
+ {
11703
+ "id": "wh-d0f9dc1b",
11704
+ "nodeId": "dw-c30656ec",
11705
+ "nodeName": "PLC-SP温度-mtnzli8v",
11706
+ "param": "烘箱温度设定",
11707
+ "eng": 182,
11708
+ "raw": 182,
11709
+ "ok": true,
11710
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11711
+ "recipeRunId": null,
11712
+ "at": "2026-09-05T06:14:19.351Z"
11713
+ },
11714
+ {
11715
+ "id": "wh-d5ee3980",
11716
+ "nodeId": "dw-553bf1fb",
11717
+ "nodeName": "PLC-SP温度-mto01hxw",
11718
+ "param": "烘箱温度设定",
11719
+ "eng": 180,
11720
+ "raw": 180,
11721
+ "ok": true,
11722
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11723
+ "recipeRunId": "rr-fd00b56d",
11724
+ "at": "2026-09-05T06:26:18.623Z"
11725
+ },
11726
+ {
11727
+ "id": "wh-4b95d5fb",
11728
+ "nodeId": "dw-640da431",
11729
+ "nodeName": "MQTT-SP-mto01hxw",
11730
+ "param": "烘箱温度设定",
11731
+ "eng": 165.5,
11732
+ "raw": 165.5,
11733
+ "ok": true,
11734
+ "message": "已发布 165.5 → aw/sim/setpoint-mto01hxw(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11735
+ "recipeRunId": null,
11736
+ "at": "2026-09-05T06:26:28.009Z"
11737
+ },
11738
+ {
11739
+ "id": "wh-77b6b5b2",
11740
+ "nodeId": "dw-d88af90e",
11741
+ "nodeName": "HTTP-SP-mto01hxw",
11742
+ "param": "烘箱温度设定",
11743
+ "eng": 168.3,
11744
+ "raw": 168.25,
11745
+ "ok": true,
11746
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11747
+ "recipeRunId": null,
11748
+ "at": "2026-09-05T06:26:38.040Z"
11749
+ },
11750
+ {
11751
+ "id": "wh-d4ac2311",
11752
+ "nodeId": "dw-2a3792ba",
11753
+ "nodeName": "OPCUA-SP-mto01hxw",
11754
+ "param": "烘箱温度设定",
11755
+ "eng": 172.5,
11756
+ "raw": 172.5,
11757
+ "ok": true,
11758
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11759
+ "recipeRunId": null,
11760
+ "at": "2026-09-05T06:26:38.050Z"
11761
+ },
11762
+ {
11763
+ "id": "wh-2218de4e",
11764
+ "nodeId": "dw-553bf1fb",
11765
+ "nodeName": "PLC-SP温度-mto01hxw",
11766
+ "param": "烘箱温度设定",
11767
+ "eng": 182,
11768
+ "raw": 182,
11769
+ "ok": true,
11770
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11771
+ "recipeRunId": null,
11772
+ "at": "2026-09-05T06:26:39.295Z"
11773
+ },
11774
+ {
11775
+ "id": "wh-43a0e812",
11776
+ "nodeId": "dw-8e07e4f3",
11777
+ "nodeName": "PLC-SP温度-mto0h8o5",
11778
+ "param": "烘箱温度设定",
11779
+ "eng": 180,
11780
+ "raw": 180,
11781
+ "ok": true,
11782
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11783
+ "recipeRunId": "rr-1bebca32",
11784
+ "at": "2026-09-05T06:38:33.548Z"
11785
+ },
11786
+ {
11787
+ "id": "wh-f0ced889",
11788
+ "nodeId": "dw-338fd553",
11789
+ "nodeName": "MQTT-SP-mto0h8o5",
11790
+ "param": "烘箱温度设定",
11791
+ "eng": 165.5,
11792
+ "raw": 165.5,
11793
+ "ok": true,
11794
+ "message": "已发布 165.5 → aw/sim/setpoint-mto0h8o5(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11795
+ "recipeRunId": null,
11796
+ "at": "2026-09-05T06:38:42.952Z"
11797
+ },
11798
+ {
11799
+ "id": "wh-ec83bb1a",
11800
+ "nodeId": "dw-9b5d4225",
11801
+ "nodeName": "HTTP-SP-mto0h8o5",
11802
+ "param": "烘箱温度设定",
11803
+ "eng": 168.3,
11804
+ "raw": 168.25,
11805
+ "ok": true,
11806
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11807
+ "recipeRunId": null,
11808
+ "at": "2026-09-05T06:38:53.028Z"
11809
+ },
11810
+ {
11811
+ "id": "wh-a7778e2a",
11812
+ "nodeId": "dw-bd474c10",
11813
+ "nodeName": "OPCUA-SP-mto0h8o5",
11814
+ "param": "烘箱温度设定",
11815
+ "eng": 172.5,
11816
+ "raw": 172.5,
11817
+ "ok": true,
11818
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11819
+ "recipeRunId": null,
11820
+ "at": "2026-09-05T06:38:53.044Z"
11821
+ },
11822
+ {
11823
+ "id": "wh-071b65a1",
11824
+ "nodeId": "dw-8e07e4f3",
11825
+ "nodeName": "PLC-SP温度-mto0h8o5",
11826
+ "param": "烘箱温度设定",
11827
+ "eng": 182,
11828
+ "raw": 182,
11829
+ "ok": true,
11830
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11831
+ "recipeRunId": null,
11832
+ "at": "2026-09-05T06:38:54.283Z"
11833
+ },
11834
+ {
11835
+ "id": "wh-5a2c663c",
11836
+ "nodeId": "dw-96091e58",
11837
+ "nodeName": "PLC-SP温度-mto0m9es",
11838
+ "param": "烘箱温度设定",
11839
+ "eng": 180,
11840
+ "raw": 180,
11841
+ "ok": true,
11842
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11843
+ "recipeRunId": "rr-54b34bb5",
11844
+ "at": "2026-09-05T06:42:28.625Z"
11845
+ },
11846
+ {
11847
+ "id": "wh-1998ed66",
11848
+ "nodeId": "dw-bc310f3b",
11849
+ "nodeName": "MQTT-SP-mto0m9es",
11850
+ "param": "烘箱温度设定",
11851
+ "eng": 165.5,
11852
+ "raw": 165.5,
11853
+ "ok": true,
11854
+ "message": "已发布 165.5 → aw/sim/setpoint-mto0m9es(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11855
+ "recipeRunId": null,
11856
+ "at": "2026-09-05T06:42:38.124Z"
11857
+ },
11858
+ {
11859
+ "id": "wh-40356a23",
11860
+ "nodeId": "dw-bc310f3b",
11861
+ "nodeName": "MQTT-SP-mto0m9es",
11862
+ "param": "烘箱温度设定",
11863
+ "eng": 165.5,
11864
+ "raw": 165.5,
11865
+ "ok": true,
11866
+ "message": "已发布 165.5 → aw/sim/setpoint-mto0m9es(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11867
+ "recipeRunId": null,
11868
+ "at": "2026-09-05T06:42:48.154Z"
11869
+ },
11870
+ {
11871
+ "id": "wh-bd1eed56",
11872
+ "nodeId": "dw-1f0372a3",
11873
+ "nodeName": "HTTP-SP-mto0m9es",
11874
+ "param": "烘箱温度设定",
11875
+ "eng": 168.3,
11876
+ "raw": 168.25,
11877
+ "ok": true,
11878
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11879
+ "recipeRunId": null,
11880
+ "at": "2026-09-05T06:42:56.186Z"
11881
+ },
11882
+ {
11883
+ "id": "wh-1a77facf",
11884
+ "nodeId": "dw-9ae723f6",
11885
+ "nodeName": "OPCUA-SP-mto0m9es",
11886
+ "param": "烘箱温度设定",
11887
+ "eng": 172.5,
11888
+ "raw": 172.5,
11889
+ "ok": true,
11890
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11891
+ "recipeRunId": null,
11892
+ "at": "2026-09-05T06:42:56.196Z"
11893
+ },
11894
+ {
11895
+ "id": "wh-a751cb68",
11896
+ "nodeId": "dw-96091e58",
11897
+ "nodeName": "PLC-SP温度-mto0m9es",
11898
+ "param": "烘箱温度设定",
11899
+ "eng": 182,
11900
+ "raw": 182,
11901
+ "ok": true,
11902
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11903
+ "recipeRunId": null,
11904
+ "at": "2026-09-05T06:42:57.442Z"
11905
+ },
11906
+ {
11907
+ "id": "wh-a92d77c0",
11908
+ "nodeId": "dw-f1c1826f",
11909
+ "nodeName": "iso-node",
11910
+ "param": "烘箱温度设定",
11911
+ "eng": 165.5,
11912
+ "raw": 165.5,
11913
+ "ok": true,
11914
+ "message": "已发布 165.5 → aw/sim/setpoint-isolate-1788590796405(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11915
+ "recipeRunId": null,
11916
+ "at": "2026-09-05T06:46:36.572Z"
11917
+ },
11918
+ {
11919
+ "id": "wh-049d716a",
11920
+ "nodeId": "dw-ceb01b44",
11921
+ "nodeName": "dbg2-node",
11922
+ "param": "烘箱温度设定",
11923
+ "eng": 165.5,
11924
+ "raw": 165.5,
11925
+ "ok": true,
11926
+ "message": "已发布 165.5 → aw/sim/setpoint-dbg2-1788591014909(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11927
+ "recipeRunId": null,
11928
+ "at": "2026-09-05T06:50:15.592Z"
11929
+ },
11930
+ {
11931
+ "id": "wh-e68f3ce1",
11932
+ "nodeId": "dw-77703120",
11933
+ "nodeName": "1883check-node",
11934
+ "param": "烘箱温度设定",
11935
+ "eng": 165.5,
11936
+ "raw": 165.5,
11937
+ "ok": true,
11938
+ "message": "已发布 165.5 → aw/sim/setpoint-1883check-1788591049995(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11939
+ "recipeRunId": null,
11940
+ "at": "2026-09-05T06:50:50.654Z"
11941
+ },
11942
+ {
11943
+ "id": "wh-c866cbb1",
11944
+ "nodeId": "dw-ab89beb3",
11945
+ "nodeName": "PLC-SP温度-mto113i2",
11946
+ "param": "烘箱温度设定",
11947
+ "eng": 180,
11948
+ "raw": 180,
11949
+ "ok": true,
11950
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
11951
+ "recipeRunId": "rr-4e40cab0",
11952
+ "at": "2026-09-05T06:54:01.587Z"
11953
+ },
11954
+ {
11955
+ "id": "wh-1cb40e34",
11956
+ "nodeId": "dw-b221bb65",
11957
+ "nodeName": "MQTT-SP-mto113i2",
11958
+ "param": "烘箱温度设定",
11959
+ "eng": 165.5,
11960
+ "raw": 165.5,
11961
+ "ok": true,
11962
+ "message": "已发布 165.5 → aw/sim/setpoint-mto113i2(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
11963
+ "recipeRunId": null,
11964
+ "at": "2026-09-05T06:54:10.939Z"
11965
+ },
11966
+ {
11967
+ "id": "wh-a3615d90",
11968
+ "nodeId": "dw-4350c146",
11969
+ "nodeName": "HTTP-SP-mto113i2",
11970
+ "param": "烘箱温度设定",
11971
+ "eng": 168.3,
11972
+ "raw": 168.25,
11973
+ "ok": true,
11974
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
11975
+ "recipeRunId": null,
11976
+ "at": "2026-09-05T06:54:21.980Z"
11977
+ },
11978
+ {
11979
+ "id": "wh-377259ed",
11980
+ "nodeId": "dw-767219b4",
11981
+ "nodeName": "OPCUA-SP-mto113i2",
11982
+ "param": "烘箱温度设定",
11983
+ "eng": 172.5,
11984
+ "raw": 172.5,
11985
+ "ok": true,
11986
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
11987
+ "recipeRunId": null,
11988
+ "at": "2026-09-05T06:54:21.997Z"
11989
+ },
11990
+ {
11991
+ "id": "wh-91bb2f67",
11992
+ "nodeId": "dw-ab89beb3",
11993
+ "nodeName": "PLC-SP温度-mto113i2",
11994
+ "param": "烘箱温度设定",
11995
+ "eng": 182,
11996
+ "raw": 182,
11997
+ "ok": true,
11998
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
11999
+ "recipeRunId": null,
12000
+ "at": "2026-09-05T06:54:23.219Z"
12001
+ },
12002
+ {
12003
+ "id": "wh-fb818e36",
12004
+ "nodeId": "dw-4c6c6920",
12005
+ "nodeName": "PLC-SP温度-mto1771y",
12006
+ "param": "烘箱温度设定",
12007
+ "eng": 180,
12008
+ "raw": 180,
12009
+ "ok": true,
12010
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12011
+ "recipeRunId": "rr-27719005",
12012
+ "at": "2026-09-05T07:14:22.920Z"
12013
+ },
12014
+ {
12015
+ "id": "wh-32df248c",
12016
+ "nodeId": "dw-d89fb28d",
12017
+ "nodeName": "MQTT-SP-mto1771y",
12018
+ "param": "烘箱温度设定",
12019
+ "eng": 165.5,
12020
+ "raw": 165.5,
12021
+ "ok": true,
12022
+ "message": "已发布 165.5 → aw/sim/setpoint-mto1771y(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
12023
+ "recipeRunId": null,
12024
+ "at": "2026-09-05T07:14:32.326Z"
12025
+ },
12026
+ {
12027
+ "id": "wh-6a2a652b",
12028
+ "nodeId": "dw-5cbf4389",
12029
+ "nodeName": "HTTP-SP-mto1771y",
12030
+ "param": "烘箱温度设定",
12031
+ "eng": 168.3,
12032
+ "raw": 168.25,
12033
+ "ok": true,
12034
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
12035
+ "recipeRunId": null,
12036
+ "at": "2026-09-05T07:14:43.360Z"
12037
+ },
12038
+ {
12039
+ "id": "wh-d710dd19",
12040
+ "nodeId": "dw-59162a94",
12041
+ "nodeName": "OPCUA-SP-mto1771y",
12042
+ "param": "烘箱温度设定",
12043
+ "eng": 172.5,
12044
+ "raw": 172.5,
12045
+ "ok": true,
12046
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
12047
+ "recipeRunId": null,
12048
+ "at": "2026-09-05T07:14:43.371Z"
12049
+ },
12050
+ {
12051
+ "id": "wh-e4830756",
12052
+ "nodeId": "dw-4c6c6920",
12053
+ "nodeName": "PLC-SP温度-mto1771y",
12054
+ "param": "烘箱温度设定",
12055
+ "eng": 182,
12056
+ "raw": 182,
12057
+ "ok": true,
12058
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12059
+ "recipeRunId": null,
12060
+ "at": "2026-09-05T07:14:44.613Z"
12061
+ },
12062
+ {
12063
+ "id": "wh-654a3393",
12064
+ "nodeId": "dw-b393fc82",
12065
+ "nodeName": "runp2-dcw",
12066
+ "param": "烘箱温度设定",
12067
+ "eng": 182,
12068
+ "raw": 182,
12069
+ "ok": true,
12070
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12071
+ "recipeRunId": null,
12072
+ "at": "2026-09-05T07:21:42.887Z"
12073
+ },
12074
+ {
12075
+ "id": "wh-51737f61",
12076
+ "nodeId": "dw-06590507",
12077
+ "nodeName": "runp3-dcw",
12078
+ "param": "烘箱温度设定",
12079
+ "eng": 180,
12080
+ "raw": 180,
12081
+ "ok": true,
12082
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12083
+ "recipeRunId": "rr-d667a896",
12084
+ "at": "2026-09-05T07:23:51.976Z"
12085
+ },
12086
+ {
12087
+ "id": "wh-2b535e71",
12088
+ "nodeId": "dw-06590507",
12089
+ "nodeName": "runp3-dcw",
12090
+ "param": "烘箱温度设定",
12091
+ "eng": 182,
12092
+ "raw": 182,
12093
+ "ok": true,
12094
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12095
+ "recipeRunId": null,
12096
+ "at": "2026-09-05T07:24:04.091Z"
12097
+ },
12098
+ {
12099
+ "id": "wh-8050fedb",
12100
+ "nodeId": "dw-ed7f4682",
12101
+ "nodeName": "PLC-SP温度-mto2mf6i",
12102
+ "param": "烘箱温度设定",
12103
+ "eng": 180,
12104
+ "raw": 180,
12105
+ "ok": true,
12106
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12107
+ "recipeRunId": "rr-3d8e141a",
12108
+ "at": "2026-09-05T07:38:47.418Z"
12109
+ },
12110
+ {
12111
+ "id": "wh-0fb240b3",
12112
+ "nodeId": "dw-94177895",
12113
+ "nodeName": "MQTT-SP-mto2mf6i",
12114
+ "param": "烘箱温度设定",
12115
+ "eng": 165.5,
12116
+ "raw": 165.5,
12117
+ "ok": true,
12118
+ "message": "已发布 165.5 → aw/sim/setpoint-mto2mf6i(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
12119
+ "recipeRunId": null,
12120
+ "at": "2026-09-05T07:38:56.770Z"
12121
+ },
12122
+ {
12123
+ "id": "wh-1cf9bf13",
12124
+ "nodeId": "dw-fed28840",
12125
+ "nodeName": "HTTP-SP-mto2mf6i",
12126
+ "param": "烘箱温度设定",
12127
+ "eng": 168.3,
12128
+ "raw": 168.25,
12129
+ "ok": true,
12130
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
12131
+ "recipeRunId": null,
12132
+ "at": "2026-09-05T07:39:07.832Z"
12133
+ },
12134
+ {
12135
+ "id": "wh-832856f6",
12136
+ "nodeId": "dw-1e1ccafe",
12137
+ "nodeName": "OPCUA-SP-mto2mf6i",
12138
+ "param": "烘箱温度设定",
12139
+ "eng": 172.5,
12140
+ "raw": 172.5,
12141
+ "ok": true,
12142
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
12143
+ "recipeRunId": null,
12144
+ "at": "2026-09-05T07:39:07.849Z"
12145
+ },
12146
+ {
12147
+ "id": "wh-bc36fade",
12148
+ "nodeId": "dw-ed7f4682",
12149
+ "nodeName": "PLC-SP温度-mto2mf6i",
12150
+ "param": "烘箱温度设定",
12151
+ "eng": 182,
12152
+ "raw": 182,
12153
+ "ok": true,
12154
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12155
+ "recipeRunId": null,
12156
+ "at": "2026-09-05T07:39:09.089Z"
12157
+ },
12158
+ {
12159
+ "id": "wh-4e05a9c1",
12160
+ "nodeId": "dw-5fdc7f6f",
12161
+ "nodeName": "PLC-SP温度-mto2w44t",
12162
+ "param": "烘箱温度设定",
12163
+ "eng": 180,
12164
+ "raw": 180,
12165
+ "ok": true,
12166
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12167
+ "recipeRunId": "rr-a41a21fd",
12168
+ "at": "2026-09-05T07:46:23.426Z"
12169
+ },
12170
+ {
12171
+ "id": "wh-e0c0069d",
12172
+ "nodeId": "dw-d6b03bf8",
12173
+ "nodeName": "MQTT-SP-mto2w44t",
12174
+ "param": "烘箱温度设定",
12175
+ "eng": 165.5,
12176
+ "raw": 165.5,
12177
+ "ok": true,
12178
+ "message": "已发布 165.5 → aw/sim/setpoint-mto2w44t(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
12179
+ "recipeRunId": null,
12180
+ "at": "2026-09-05T07:46:32.819Z"
12181
+ },
12182
+ {
12183
+ "id": "wh-e18ed91a",
12184
+ "nodeId": "dw-8c8f6183",
12185
+ "nodeName": "HTTP-SP-mto2w44t",
12186
+ "param": "烘箱温度设定",
12187
+ "eng": 168.3,
12188
+ "raw": 168.25,
12189
+ "ok": true,
12190
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
12191
+ "recipeRunId": null,
12192
+ "at": "2026-09-05T07:46:43.888Z"
12193
+ },
12194
+ {
12195
+ "id": "wh-989ff1bf",
12196
+ "nodeId": "dw-ea296377",
12197
+ "nodeName": "OPCUA-SP-mto2w44t",
12198
+ "param": "烘箱温度设定",
12199
+ "eng": 172.5,
12200
+ "raw": 172.5,
12201
+ "ok": true,
12202
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
12203
+ "recipeRunId": null,
12204
+ "at": "2026-09-05T07:46:43.898Z"
12205
+ },
12206
+ {
12207
+ "id": "wh-05aa8cef",
12208
+ "nodeId": "dw-5fdc7f6f",
12209
+ "nodeName": "PLC-SP温度-mto2w44t",
12210
+ "param": "烘箱温度设定",
12211
+ "eng": 182,
12212
+ "raw": 182,
12213
+ "ok": true,
12214
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12215
+ "recipeRunId": null,
12216
+ "at": "2026-09-05T07:46:45.140Z"
12217
+ },
12218
+ {
12219
+ "id": "wh-1d044c14",
12220
+ "nodeId": "dw-d324afad",
12221
+ "nodeName": "PLC-SP温度-mto30yeb",
12222
+ "param": "烘箱温度设定",
12223
+ "eng": 180,
12224
+ "raw": 180,
12225
+ "ok": true,
12226
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12227
+ "recipeRunId": "rr-f5a55ecb",
12228
+ "at": "2026-09-05T07:50:14.495Z"
12229
+ },
12230
+ {
12231
+ "id": "wh-abf1c6d3",
12232
+ "nodeId": "dw-92561dfb",
12233
+ "nodeName": "MQTT-SP-mto30yeb",
12234
+ "param": "烘箱温度设定",
12235
+ "eng": 165.5,
12236
+ "raw": 165.5,
12237
+ "ok": true,
12238
+ "message": "已发布 165.5 → aw/sim/setpoint-mto30yeb(QoS 1;MQTT 无回读,建议以同主题数采节点验证)(标定后物理值 165.5)",
12239
+ "recipeRunId": null,
12240
+ "at": "2026-09-05T07:50:23.866Z"
12241
+ },
12242
+ {
12243
+ "id": "wh-38e53d92",
12244
+ "nodeId": "dw-3c44cc62",
12245
+ "nodeName": "HTTP-SP-mto30yeb",
12246
+ "param": "烘箱温度设定",
12247
+ "eng": 168.3,
12248
+ "raw": 168.25,
12249
+ "ok": true,
12250
+ "message": "POST 成功(HTTP 200;接口未回传数值)(标定后物理值 168.3)",
12251
+ "recipeRunId": null,
12252
+ "at": "2026-09-05T07:50:34.907Z"
12253
+ },
12254
+ {
12255
+ "id": "wh-51d4dc50",
12256
+ "nodeId": "dw-f6809af1",
12257
+ "nodeName": "OPCUA-SP-mto30yeb",
12258
+ "param": "烘箱温度设定",
12259
+ "eng": 172.5,
12260
+ "raw": 172.5,
12261
+ "ok": true,
12262
+ "message": "写入并回读一致:172.5,回读 172.5(标定后物理值 172.5)",
12263
+ "recipeRunId": null,
12264
+ "at": "2026-09-05T07:50:34.915Z"
12265
+ },
12266
+ {
12267
+ "id": "wh-a531512e",
12268
+ "nodeId": "dw-d324afad",
12269
+ "nodeName": "PLC-SP温度-mto30yeb",
12270
+ "param": "烘箱温度设定",
12271
+ "eng": 182,
12272
+ "raw": 182,
12273
+ "ok": true,
12274
+ "message": "写入并回读一致:182 → raw 182,回读 182(标定后物理值 182)",
12275
+ "recipeRunId": null,
12276
+ "at": "2026-09-05T07:50:36.180Z"
12277
+ },
12278
+ {
12279
+ "id": "wh-3e773b16",
12280
+ "nodeId": "dw-511d0e81",
12281
+ "nodeName": "插件参数-mto3p7ny",
12282
+ "param": "烘箱温度设定",
12283
+ "eng": 180,
12284
+ "raw": 180,
12285
+ "ok": true,
12286
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12287
+ "recipeRunId": "rr-3da13dd0",
12288
+ "at": "2026-09-05T08:08:23.555Z"
12289
+ },
12290
+ {
12291
+ "id": "wh-ee01812d",
12292
+ "nodeId": "dw-a470230d",
12293
+ "nodeName": "PLC设定-mto47ec9",
12294
+ "param": "烘箱温度设定",
12295
+ "eng": 180,
12296
+ "raw": 180,
12297
+ "ok": true,
12298
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12299
+ "recipeRunId": "rr-ede96923",
12300
+ "at": "2026-09-05T08:23:06.423Z"
12301
+ },
12302
+ {
12303
+ "id": "wh-b828e2cb",
12304
+ "nodeId": "dw-dc216d75",
12305
+ "nodeName": "PLC设定-mto4xd17",
12306
+ "param": "烘箱温度设定",
12307
+ "eng": 180,
12308
+ "raw": 180,
12309
+ "ok": true,
12310
+ "message": "写入并回读一致:180 → raw 180,回读 180(标定后物理值 180)",
12311
+ "recipeRunId": "rr-8c3cc9f7",
12312
+ "at": "2026-09-05T08:42:47.820Z"
12313
+ },
12314
+ {
12315
+ "id": "wh-f7613dd1",
12316
+ "nodeId": "dw-83d2fdae",
12317
+ "nodeName": "可见性探针",
12318
+ "param": "烘箱温度设定",
12319
+ "eng": 172,
12320
+ "raw": 172,
12321
+ "ok": true,
12322
+ "message": "Mock PLC 写入成功:172 → raw 172,回读一致(标定后物理值 172)",
12323
+ "recipeRunId": null,
12324
+ "at": "2026-09-05T08:59:06.974Z"
12325
+ },
12326
+ {
12327
+ "id": "wh-4bf0a846",
12328
+ "nodeId": "dw-0ed9deab",
12329
+ "nodeName": "间隔参数-mto6rqqa",
12330
+ "param": "烘箱温度设定",
12331
+ "eng": 180,
12332
+ "raw": 180,
12333
+ "ok": true,
12334
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12335
+ "recipeRunId": "rr-5ba7bd5b",
12336
+ "at": "2026-09-05T09:34:20.928Z"
12337
+ },
12338
+ {
12339
+ "id": "wh-045f81b0",
12340
+ "nodeId": "dw-37f5153e",
12341
+ "nodeName": "插件参数-mto6ysj1",
12342
+ "param": "烘箱温度设定",
12343
+ "eng": 180,
12344
+ "raw": 180,
12345
+ "ok": true,
12346
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12347
+ "recipeRunId": "rr-7d24224e",
12348
+ "at": "2026-09-05T09:39:59.373Z"
12349
+ },
12350
+ {
12351
+ "id": "wh-a49333fa",
12352
+ "nodeId": "dw-f9a5e01e",
12353
+ "nodeName": "插件参数-mto73j6f",
12354
+ "param": "烘箱温度设定",
12355
+ "eng": 180,
12356
+ "raw": 180,
12357
+ "ok": true,
12358
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12359
+ "recipeRunId": "rr-55e35132",
12360
+ "at": "2026-09-05T09:43:40.423Z"
12361
+ },
12362
+ {
12363
+ "id": "wh-935ca112",
12364
+ "nodeId": "dw-1a99b8ea",
12365
+ "nodeName": "插件参数-mto75hw0",
12366
+ "param": "烘箱温度设定",
12367
+ "eng": 180,
12368
+ "raw": 180,
12369
+ "ok": true,
12370
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12371
+ "recipeRunId": "rr-cb2a9c2f",
12372
+ "at": "2026-09-05T09:45:11.766Z"
12373
+ },
12374
+ {
12375
+ "id": "wh-54bba67a",
12376
+ "nodeId": "dw-edbf2b95",
12377
+ "nodeName": "pp-dcw",
12378
+ "param": "烘箱温度设定",
12379
+ "eng": 180,
12380
+ "raw": 180,
12381
+ "ok": true,
12382
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12383
+ "recipeRunId": "rr-ecf1b5fb",
12384
+ "at": "2026-09-05T09:47:55.529Z"
12385
+ },
12386
+ {
12387
+ "id": "wh-36056343",
12388
+ "nodeId": "dw-fb6b0f5a",
12389
+ "nodeName": "pp2-dcw",
12390
+ "param": "烘箱温度设定",
12391
+ "eng": 180,
12392
+ "raw": 180,
12393
+ "ok": true,
12394
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12395
+ "recipeRunId": "rr-44976926",
12396
+ "at": "2026-09-05T09:53:24.693Z"
12397
+ },
12398
+ {
12399
+ "id": "wh-4ea681c3",
12400
+ "nodeId": "dw-e5fcf0a3",
12401
+ "nodeName": "插件参数-mto7gthj",
12402
+ "param": "烘箱温度设定",
12403
+ "eng": 180,
12404
+ "raw": 180,
12405
+ "ok": true,
12406
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12407
+ "recipeRunId": "rr-bb6abea5",
12408
+ "at": "2026-09-05T09:53:58.818Z"
12409
+ },
12410
+ {
12411
+ "id": "wh-10eb532e",
12412
+ "nodeId": "dw-db743eb4",
12413
+ "nodeName": "tzc-dcw",
12414
+ "param": "烘箱温度设定",
12415
+ "eng": 180,
12416
+ "raw": 180,
12417
+ "ok": true,
12418
+ "message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
12419
+ "recipeRunId": "rr-c0498edd",
12420
+ "at": "2026-09-05T19:05:14.657+08:00"
11341
12421
  }
11342
12422
  ]