agentworkshop 0.8.6 → 0.8.8

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 (1399) hide show
  1. package/.AgentWorkShop/prompts/host-tools.en.json +302 -174
  2. package/.AgentWorkShop/prompts/host-tools.json +4109 -4080
  3. package/.AgentWorkShop/prompts/lead-supervise.md +6 -0
  4. package/.AgentWorkShop/prompts/mode-goal.md +3 -3
  5. package/.output/.AgentWorkShop/prompts/host-tools.en.json +302 -174
  6. package/.output/.AgentWorkShop/prompts/host-tools.json +4109 -4080
  7. package/.output/.AgentWorkShop/prompts/lead-supervise.md +6 -0
  8. package/.output/.AgentWorkShop/prompts/mode-goal.md +3 -3
  9. package/.output/.AgentWorkShop/schema.json +171 -152
  10. package/.output/nitro.json +1 -1
  11. package/.output/public/_nuxt/11Nifltq2.js +16 -0
  12. package/.output/public/_nuxt/{o8sYG6xx2.js → B37d6f-P2.js} +1 -1
  13. package/.output/public/_nuxt/{DtnsTW7e.js → B8vwpJxO.js} +1 -1
  14. package/.output/public/_nuxt/{BiXqyYNw2.js → BEbg8OxK2.js} +1 -1
  15. package/.output/public/_nuxt/{dcjPjLPI.js → BFUO7wT0.js} +1 -1
  16. package/.output/public/_nuxt/{Rb4o4o-82.js → BclHgAY62.js} +1 -1
  17. package/.output/public/_nuxt/{CdvMP3lv.js → BkZomIrQ.js} +1 -1
  18. package/.output/public/_nuxt/{D1eVi1zr.js → BwQJEuBn.js} +1 -1
  19. package/.output/public/_nuxt/{DMFwLxfu.js → C-wrWG5m.js} +1 -1
  20. package/.output/public/_nuxt/{COfo_Bg3.js → C0I4h6do.js} +1 -1
  21. package/.output/public/_nuxt/{BA2lmfW4.js → C0wjQa6_.js} +1 -1
  22. package/.output/public/_nuxt/{Dr1FVeQG2.js → C5x3IQz42.js} +1 -1
  23. package/.output/public/_nuxt/{BlOm8JIs2.js → C7BcCB7C2.js} +1 -1
  24. package/.output/public/_nuxt/{BwOK42JQ.js → CBpkE3Aa.js} +1 -1
  25. package/.output/public/_nuxt/{be-4wyTo.js → CEOSV8kw.js} +1 -1
  26. package/.output/public/_nuxt/{BuLoPmcf.js → CHpYSwnV.js} +1 -1
  27. package/.output/public/_nuxt/{EMbqTHfT.js → CYLe9LKr.js} +1 -1
  28. package/.output/public/_nuxt/CZgxZE_w2.js +1 -0
  29. package/.output/public/_nuxt/{DDXOfmo2.js → Cdi9qfTr.js} +5 -5
  30. package/.output/public/_nuxt/{hyLdZsOd2.js → CfE35xQa2.js} +1 -1
  31. package/.output/public/_nuxt/{azOGy_tU2.js → Cgym6fLd2.js} +1 -1
  32. package/.output/public/_nuxt/CjhzuymI.js +2 -0
  33. package/.output/public/_nuxt/{DC8sMA36.js → CoAJnzi9.js} +1 -1
  34. package/.output/public/_nuxt/{CooauJ7D.js → CuHnwZbm.js} +1 -1
  35. package/.output/public/_nuxt/{Tf6SJSDj.js → CwHhmA3N.js} +1 -1
  36. package/.output/public/_nuxt/{DzU3zEKX.js → D1Ljnzu-.js} +1 -1
  37. package/.output/public/_nuxt/{DoprKJ5a2.js → D9saExk92.js} +1 -1
  38. package/.output/public/_nuxt/{D6PUmBb0.js → DDLi49qE.js} +1 -1
  39. package/.output/public/_nuxt/{BoXKUOiN2.js → DNlwacP72.js} +1 -1
  40. package/.output/public/_nuxt/{ZzOyoXex2.js → DPIImHuY2.js} +1 -1
  41. package/.output/public/_nuxt/{CY2NkFvI.js → DW6X-3XT.js} +1 -1
  42. package/.output/public/_nuxt/{HJKu4eEV2.js → DZc-zU-H2.js} +1 -1
  43. package/.output/public/_nuxt/{C1RMfPoB2.js → Df35i2Tg2.js} +1 -1
  44. package/.output/public/_nuxt/DvGgUSuN2.js +2 -0
  45. package/.output/public/_nuxt/{EgO70wrE.js → DvfiRGS-.js} +1 -1
  46. package/.output/public/_nuxt/{C_4mzQ5X.js → DzPypczG.js} +1 -1
  47. package/.output/public/_nuxt/{BDXQqSkl2.js → FQK98hkN2.js} +1 -1
  48. package/.output/public/_nuxt/{7op-BMk82.js → Lq_0yoit2.js} +1 -1
  49. package/.output/public/_nuxt/{K5Xen0wZ2.js → MJD65-MH2.js} +1 -1
  50. package/.output/public/_nuxt/{TownView.CC3t-Dte.css → TownView.B_8ctigh.css} +1 -1
  51. package/.output/public/_nuxt/{h-Fn7pRD.js → WZrTmJqL.js} +1 -1
  52. package/.output/public/_nuxt/builds/latest.json +1 -1
  53. package/.output/public/_nuxt/builds/meta/1231252d-2864-43c0-83b2-4e70d3b86dea.json +1 -0
  54. package/.output/public/_nuxt/{entry.D6nBdXet.css → entry.Buc3k7Ha.css} +1 -1
  55. package/.output/public/_nuxt/{DDHh85c42.js → gfKPQ5o72.js} +1 -1
  56. package/.output/public/_nuxt/logs.DlG85QRw.css +1 -0
  57. package/.output/server/chunks/_/access.mjs +4 -2
  58. package/.output/server/chunks/_/access.mjs.map +1 -1
  59. package/.output/server/chunks/_/binding-authz.mjs +4 -1
  60. package/.output/server/chunks/_/binding-authz.mjs.map +1 -1
  61. package/.output/server/chunks/_/catalog-view.mjs +1 -1
  62. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  63. package/.output/server/chunks/_/data-export.mjs +12 -12
  64. package/.output/server/chunks/_/data-export.mjs.map +1 -1
  65. package/.output/server/chunks/_/data-query.mjs +3 -3
  66. package/.output/server/chunks/_/eda-run.repo.mjs +5 -3
  67. package/.output/server/chunks/_/eda-run.repo.mjs.map +1 -1
  68. package/.output/server/chunks/_/entity.mjs +1 -1
  69. package/.output/server/chunks/_/features.mjs +8 -6
  70. package/.output/server/chunks/_/features.mjs.map +1 -1
  71. package/.output/server/chunks/_/golden.mjs +3 -3
  72. package/.output/server/chunks/_/host-bindings.mjs +4 -2
  73. package/.output/server/chunks/_/host-bindings.mjs.map +1 -1
  74. package/.output/server/chunks/_/index.mjs +4 -2
  75. package/.output/server/chunks/_/index.mjs.map +1 -1
  76. package/.output/server/chunks/_/line-scope.mjs +1 -1
  77. package/.output/server/chunks/_/mes-console.mjs +1 -1
  78. package/.output/server/chunks/_/mes-secrets.repo.mjs +4 -2
  79. package/.output/server/chunks/_/mes-secrets.repo.mjs.map +1 -1
  80. package/.output/server/chunks/_/nitro.mjs +5219 -2553
  81. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  82. package/.output/server/chunks/_/ocap.mjs +1 -1
  83. package/.output/server/chunks/_/rest-auth.mjs +1 -1
  84. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  85. package/.output/server/chunks/_/spc.mjs +4 -2
  86. package/.output/server/chunks/_/spc.mjs.map +1 -1
  87. package/.output/server/chunks/_/user.schema.mjs +1 -1
  88. package/.output/server/chunks/build/{TownView-BWMDbosY.mjs → TownView-BqdMFqei.mjs} +53 -46
  89. package/.output/server/chunks/build/TownView-BqdMFqei.mjs.map +1 -0
  90. package/.output/server/chunks/build/{_id_-BK-t8nRG.mjs → _id_-CsCtnbwe.mjs} +6 -4
  91. package/.output/server/chunks/build/_id_-CsCtnbwe.mjs.map +1 -0
  92. package/.output/server/chunks/build/{_id_-CZPlPDm4.mjs → _id_-P1W47Gqq.mjs} +15 -13
  93. package/.output/server/chunks/build/_id_-P1W47Gqq.mjs.map +1 -0
  94. package/.output/server/chunks/build/{_wsId_-C871SDPN.mjs → _wsId_-DpOErFj6.mjs} +6 -4
  95. package/.output/server/chunks/build/{_wsId_-C871SDPN.mjs.map → _wsId_-DpOErFj6.mjs.map} +1 -1
  96. package/.output/server/chunks/build/agents-D7CdEUTv.mjs +3 -1
  97. package/.output/server/chunks/build/agents-D7CdEUTv.mjs.map +1 -1
  98. package/.output/server/chunks/build/aml-DRAFRcGU.mjs +3 -1
  99. package/.output/server/chunks/build/aml-DRAFRcGU.mjs.map +1 -1
  100. package/.output/server/chunks/build/{analysis-p-dBkjoK.mjs → analysis-J9axLuRt.mjs} +6 -4
  101. package/.output/server/chunks/build/analysis-J9axLuRt.mjs.map +1 -0
  102. package/.output/server/chunks/build/api-B4Om0mEc.mjs +3 -1
  103. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -1
  104. package/.output/server/chunks/build/api-BEW_ebY_.mjs +3 -1
  105. package/.output/server/chunks/build/api-BEW_ebY_.mjs.map +1 -1
  106. package/.output/server/chunks/build/api-BsAgXWxi.mjs +3 -1
  107. package/.output/server/chunks/build/api-BsAgXWxi.mjs.map +1 -1
  108. package/.output/server/chunks/build/board-CJUc032b.mjs +3 -1
  109. package/.output/server/chunks/build/board-CJUc032b.mjs.map +1 -1
  110. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs +3 -1
  111. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs.map +1 -1
  112. package/.output/server/chunks/build/constants-HPHJvjne.mjs +3 -1
  113. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  114. package/.output/server/chunks/build/{daq-CdxcfY_G.mjs → daq-B_dRMDw4.mjs} +8 -6
  115. package/.output/server/chunks/build/daq-B_dRMDw4.mjs.map +1 -0
  116. package/.output/server/chunks/build/data-D8uX1dnm.mjs +3 -1
  117. package/.output/server/chunks/build/data-D8uX1dnm.mjs.map +1 -1
  118. package/.output/server/chunks/build/{dcw-BlDQtS4q.mjs → dcw-D_HD_H_2.mjs} +11 -9
  119. package/.output/server/chunks/build/dcw-D_HD_H_2.mjs.map +1 -0
  120. package/.output/server/chunks/build/default-CNWS6NUw.mjs +3 -1
  121. package/.output/server/chunks/build/es-Bxu10NJ2.mjs +3 -1
  122. package/.output/server/chunks/build/es-Bxu10NJ2.mjs.map +1 -1
  123. package/.output/server/chunks/build/{logs-pRb-TMWa.mjs → logs-BnYSMRXM.mjs} +109 -42
  124. package/.output/server/chunks/build/logs-BnYSMRXM.mjs.map +1 -0
  125. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs +3 -1
  126. package/.output/server/chunks/build/ontology-ohICfVVb.mjs +3 -1
  127. package/.output/server/chunks/build/ontology-ohICfVVb.mjs.map +1 -1
  128. package/.output/server/chunks/build/{operations-SMQrRAcr.mjs → operations-4zOVhW7o.mjs} +6 -4
  129. package/.output/server/chunks/build/operations-4zOVhW7o.mjs.map +1 -0
  130. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs +3 -1
  131. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs.map +1 -1
  132. package/.output/server/chunks/build/{pages-DsMKUw7i.mjs → pages-DEv4ProW.mjs} +6 -4
  133. package/.output/server/chunks/build/pages-DEv4ProW.mjs.map +1 -0
  134. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs +3 -1
  135. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs.map +1 -1
  136. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs +3 -1
  137. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs.map +1 -1
  138. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs +3 -1
  139. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs.map +1 -1
  140. package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs +3 -1
  141. package/.output/server/chunks/build/settings-DXLJPq7d.mjs +3 -1
  142. package/.output/server/chunks/build/settings-DXLJPq7d.mjs.map +1 -1
  143. package/.output/server/chunks/build/studio-hSqH9TYS.mjs +3 -1
  144. package/.output/server/chunks/build/studio-hSqH9TYS.mjs.map +1 -1
  145. package/.output/server/chunks/build/teams-BbwYJyzv.mjs +3 -1
  146. package/.output/server/chunks/build/teams-BbwYJyzv.mjs.map +1 -1
  147. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs +3 -1
  148. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs.map +1 -1
  149. package/.output/server/chunks/build/tools-CnYi9cou.mjs +3 -1
  150. package/.output/server/chunks/build/tools-CnYi9cou.mjs.map +1 -1
  151. package/.output/server/chunks/build/town-BV-hbwb5.mjs +3 -1
  152. package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -1
  153. package/.output/server/chunks/build/{town-B5aoiG98.mjs → town-CcoQKjMj.mjs} +6 -4
  154. package/.output/server/chunks/build/town-CcoQKjMj.mjs.map +1 -0
  155. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  156. package/.output/server/chunks/build/types-DWqIeMRP.mjs +3 -1
  157. package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -1
  158. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs +3 -1
  159. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs.map +1 -1
  160. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs +3 -1
  161. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs.map +1 -1
  162. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +3 -1
  163. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  164. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs +3 -1
  165. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs.map +1 -1
  166. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs +3 -1
  167. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs.map +1 -1
  168. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs +3 -1
  169. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -1
  170. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs +3 -1
  171. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs.map +1 -1
  172. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs +3 -1
  173. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs.map +1 -1
  174. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs +3 -1
  175. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -1
  176. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +3 -1
  177. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  178. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs +3 -1
  179. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs.map +1 -1
  180. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs +3 -1
  181. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs.map +1 -1
  182. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs +3 -1
  183. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs.map +1 -1
  184. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs +3 -1
  185. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs.map +1 -1
  186. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs +3 -1
  187. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs.map +1 -1
  188. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +4 -2
  189. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs.map +1 -1
  190. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs +3 -1
  191. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs.map +1 -1
  192. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs +3 -1
  193. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs.map +1 -1
  194. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs +3 -1
  195. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs.map +1 -1
  196. package/.output/server/chunks/build/{useDaqDetailNode-DeOsDxK5.mjs → useDaqDetailNode-BGMRUIXN.mjs} +6 -4
  197. package/.output/server/chunks/build/useDaqDetailNode-BGMRUIXN.mjs.map +1 -0
  198. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +4 -2
  199. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs.map +1 -1
  200. package/.output/server/chunks/build/{useDaqFilters-CctmO03p.mjs → useDaqFilters-zAAVlzJQ.mjs} +6 -4
  201. package/.output/server/chunks/build/useDaqFilters-zAAVlzJQ.mjs.map +1 -0
  202. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +3 -1
  203. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  204. package/.output/server/chunks/build/{useDaqOptimizations-CmX_dpBc.mjs → useDaqOptimizations-BE_9Z2s_.mjs} +5 -3
  205. package/.output/server/chunks/build/useDaqOptimizations-BE_9Z2s_.mjs.map +1 -0
  206. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +1 -1
  207. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +4 -2
  208. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs.map +1 -1
  209. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +3 -1
  210. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  211. package/.output/server/chunks/build/{useDashboardData-NJ7rKxhx.mjs → useDashboardData-Cw8lrPo5.mjs} +5 -3
  212. package/.output/server/chunks/build/useDashboardData-Cw8lrPo5.mjs.map +1 -0
  213. package/.output/server/chunks/build/{useDcwAddNode-DACVcEHs.mjs → useDcwAddNode-KnocMk1m.mjs} +6 -4
  214. package/.output/server/chunks/build/useDcwAddNode-KnocMk1m.mjs.map +1 -0
  215. package/.output/server/chunks/build/{useDcwCards-SaiImIYQ.mjs → useDcwCards-C53IiOcg.mjs} +5 -3
  216. package/.output/server/chunks/build/useDcwCards-C53IiOcg.mjs.map +1 -0
  217. package/.output/server/chunks/build/{useDcwDetailScope-DLOklSMO.mjs → useDcwDetailScope-D6qXrfZu.mjs} +5 -3
  218. package/.output/server/chunks/build/useDcwDetailScope-D6qXrfZu.mjs.map +1 -0
  219. package/.output/server/chunks/build/{useDcwDetailTemplates-ClmIdZ40.mjs → useDcwDetailTemplates-DPOXu1o_.mjs} +5 -3
  220. package/.output/server/chunks/build/useDcwDetailTemplates-DPOXu1o_.mjs.map +1 -0
  221. package/.output/server/chunks/build/{useDcwFilter-CPMyCltx.mjs → useDcwFilter-DNQ6Ivwd.mjs} +5 -3
  222. package/.output/server/chunks/build/useDcwFilter-DNQ6Ivwd.mjs.map +1 -0
  223. package/.output/server/chunks/build/{useDcwLedger-0ie-0WTc.mjs → useDcwLedger-BhbUBCbi.mjs} +5 -3
  224. package/.output/server/chunks/build/useDcwLedger-BhbUBCbi.mjs.map +1 -0
  225. package/.output/server/chunks/build/{useDcwLineMutations-DNxo66yM.mjs → useDcwLineMutations-KA7VnggO.mjs} +5 -3
  226. package/.output/server/chunks/build/useDcwLineMutations-KA7VnggO.mjs.map +1 -0
  227. package/.output/server/chunks/build/{useDcwLineRun-CHskwscT.mjs → useDcwLineRun-3zx_UCxi.mjs} +5 -3
  228. package/.output/server/chunks/build/useDcwLineRun-3zx_UCxi.mjs.map +1 -0
  229. package/.output/server/chunks/build/{useDcwParamApprovals-DtScUc-W.mjs → useDcwParamApprovals-DzyY6Tmi.mjs} +5 -3
  230. package/.output/server/chunks/build/useDcwParamApprovals-DzyY6Tmi.mjs.map +1 -0
  231. package/.output/server/chunks/build/{useDcwProducts-BMaxzLu6.mjs → useDcwProducts-B05ymt3k.mjs} +5 -3
  232. package/.output/server/chunks/build/useDcwProducts-B05ymt3k.mjs.map +1 -0
  233. package/.output/server/chunks/build/{useDcwQuery-TVU3Eo0M.mjs → useDcwQuery-vWpgpSmJ.mjs} +5 -3
  234. package/.output/server/chunks/build/useDcwQuery-vWpgpSmJ.mjs.map +1 -0
  235. package/.output/server/chunks/build/{useDcwQuickActions-BREFmR9T.mjs → useDcwQuickActions-DUkLy34S.mjs} +5 -3
  236. package/.output/server/chunks/build/useDcwQuickActions-DUkLy34S.mjs.map +1 -0
  237. package/.output/server/chunks/build/{useDcwRecipes-Bc9urA1N.mjs → useDcwRecipes-BAb4Yg3d.mjs} +5 -3
  238. package/.output/server/chunks/build/useDcwRecipes-BAb4Yg3d.mjs.map +1 -0
  239. package/.output/server/chunks/build/{useDcwStream-Dir5ufAU.mjs → useDcwStream-RN3U_Jsh.mjs} +7 -4
  240. package/.output/server/chunks/build/useDcwStream-RN3U_Jsh.mjs.map +1 -0
  241. package/.output/server/chunks/build/{useDcwTemplates-BzagZztS.mjs → useDcwTemplates-D2aoejps.mjs} +5 -3
  242. package/.output/server/chunks/build/useDcwTemplates-D2aoejps.mjs.map +1 -0
  243. package/.output/server/chunks/build/{useDcwWrites-BROwTLCn.mjs → useDcwWrites-7w8txksD.mjs} +5 -3
  244. package/.output/server/chunks/build/useDcwWrites-7w8txksD.mjs.map +1 -0
  245. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs +3 -1
  246. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs.map +1 -1
  247. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +3 -1
  248. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  249. package/.output/server/chunks/build/{useLogsManual-cVBZQ_Mt.mjs → useLogsManual-D0dvgCsP.mjs} +5 -2
  250. package/.output/server/chunks/build/useLogsManual-D0dvgCsP.mjs.map +1 -0
  251. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs +3 -1
  252. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs.map +1 -1
  253. package/.output/server/chunks/build/{useLogsScope-aaPQeTRm.mjs → useLogsScope-DEUyq-My.mjs} +5 -3
  254. package/.output/server/chunks/build/useLogsScope-DEUyq-My.mjs.map +1 -0
  255. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs +3 -1
  256. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs.map +1 -1
  257. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs +3 -1
  258. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs.map +1 -1
  259. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs +3 -1
  260. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs.map +1 -1
  261. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +3 -1
  262. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  263. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs +3 -1
  264. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs.map +1 -1
  265. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs.map +1 -1
  266. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs +3 -1
  267. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs.map +1 -1
  268. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs +3 -1
  269. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs.map +1 -1
  270. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs +3 -1
  271. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs.map +1 -1
  272. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs +3 -1
  273. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs.map +1 -1
  274. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs +3 -1
  275. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs.map +1 -1
  276. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +3 -1
  277. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  278. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs +3 -1
  279. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs.map +1 -1
  280. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs +3 -1
  281. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs.map +1 -1
  282. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +3 -1
  283. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  284. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs +3 -1
  285. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs.map +1 -1
  286. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs +3 -1
  287. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs.map +1 -1
  288. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs +3 -1
  289. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs.map +1 -1
  290. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs +3 -1
  291. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs.map +1 -1
  292. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs +3 -1
  293. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs.map +1 -1
  294. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs +3 -1
  295. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs.map +1 -1
  296. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -1
  297. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
  298. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs +3 -1
  299. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs.map +1 -1
  300. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +3 -1
  301. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  302. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +3 -1
  303. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
  304. package/.output/server/chunks/build/users-DjiVC_tS.mjs +3 -1
  305. package/.output/server/chunks/build/users-DjiVC_tS.mjs.map +1 -1
  306. package/.output/server/chunks/build/workshop-1gKeDASV.mjs +3 -1
  307. package/.output/server/chunks/build/workshop-1gKeDASV.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/health.get.mjs +3 -1
  309. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/index.get.mjs +3 -1
  311. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/index.post.mjs +3 -1
  313. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/mcp/workshop.mjs +4 -2
  315. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/metrics.mjs +3 -1
  317. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +3 -1
  319. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +3 -1
  321. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +3 -1
  323. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +3 -1
  325. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +3 -1
  327. package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +5 -3
  329. package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +3 -1
  331. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +3 -1
  333. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/system/config.get.mjs +3 -1
  335. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/system/index.get.mjs +3 -1
  337. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/system/index.patch.mjs +3 -1
  339. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/system/index.post.mjs +3 -1
  341. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/system/index2.get.mjs +3 -1
  343. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +3 -1
  345. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +3 -1
  347. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/system/monitor.get.mjs +3 -1
  349. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +3 -1
  351. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +3 -1
  353. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/system/timezone.get.mjs +3 -1
  355. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +3 -1
  357. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/users/_id_.get.mjs +3 -1
  359. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/users/_id_.put.mjs +3 -1
  361. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/users/change-password.post.mjs +3 -1
  363. package/.output/server/chunks/routes/api/users/change-password.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/users/index.get.mjs +3 -1
  365. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/users/index.post.mjs +3 -1
  367. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/users/login.post.mjs +5 -4
  369. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/users/logout.post.mjs +3 -1
  371. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/users/me.get.mjs +3 -1
  373. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/users/register.post.mjs +3 -1
  375. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +3 -1
  377. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +3 -1
  379. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +3 -1
  381. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +3 -1
  383. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +3 -1
  385. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +12 -2
  387. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +3 -1
  389. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +3 -1
  391. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +3 -1
  393. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +3 -1
  395. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +4 -2
  397. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +4 -2
  399. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +4 -2
  401. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +4 -2
  403. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +22 -1
  405. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +4 -2
  407. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +4 -2
  409. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +4 -2
  411. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +3 -1
  413. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +3 -1
  415. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -1
  417. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +3 -1
  419. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +4 -2
  421. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +4 -2
  423. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +4 -2
  425. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +4 -2
  427. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +3 -1
  429. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +4 -2
  431. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +4 -2
  433. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +4 -2
  435. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +4 -2
  437. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +4 -2
  439. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +3 -1
  441. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +4 -2
  443. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +4 -2
  445. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +4 -2
  447. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +4 -2
  449. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +4 -2
  451. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +4 -2
  453. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +4 -2
  455. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +4 -2
  457. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +4 -2
  459. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +4 -2
  461. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +4 -2
  463. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +4 -2
  465. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +4 -2
  467. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +4 -2
  469. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +4 -2
  471. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +4 -2
  473. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +4 -2
  475. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +4 -2
  477. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +4 -2
  479. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +4 -2
  481. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +4 -2
  483. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +4 -2
  485. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs +4 -2
  487. package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +3 -1
  489. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +3 -1
  491. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +3 -1
  493. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +3 -1
  495. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +4 -2
  497. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +3 -1
  499. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +6 -3
  501. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +3 -1
  503. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/workshop/caller.mjs +3 -1
  505. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +5 -3
  507. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +3 -1
  509. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +3 -1
  511. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +3 -1
  513. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +3 -1
  515. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +4 -2
  517. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +3 -1
  519. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +3 -1
  521. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +3 -1
  523. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +3 -1
  525. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +3 -1
  527. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +3 -1
  529. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +3 -1
  531. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs +3 -1
  533. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +3 -1
  535. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +3 -1
  537. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +3 -1
  539. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +3 -1
  541. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +4 -2
  543. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +3 -1
  545. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +3 -1
  547. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +3 -1
  549. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs +4 -2
  551. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +3 -1
  553. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +4 -2
  555. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +4 -2
  557. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +3 -1
  559. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +3 -1
  561. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs +4 -2
  563. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +3 -1
  565. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +4 -2
  567. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +3 -1
  569. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +6 -2
  571. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +4 -2
  573. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +3 -1
  575. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs +3 -1
  577. package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +4 -2
  579. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +3 -1
  581. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +3 -1
  583. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +4 -2
  585. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +3 -1
  587. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +3 -1
  589. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +3 -1
  591. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +4 -2
  593. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs +4 -2
  595. package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +4 -2
  597. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +21 -4
  599. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +3 -1
  601. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +4 -2
  603. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +3 -1
  605. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +3 -1
  607. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  608. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +10 -8
  609. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +4 -2
  611. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  612. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +4 -2
  613. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  614. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +4 -2
  615. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  616. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +4 -2
  617. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  618. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +15 -3
  619. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
  620. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +4 -2
  621. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  622. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +4 -2
  623. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  624. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +4 -2
  625. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  626. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +4 -2
  627. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  628. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +4 -2
  629. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  630. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +3 -1
  631. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  632. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +4 -2
  633. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  634. package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs +3 -1
  635. package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs.map +1 -1
  636. package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs +3 -1
  637. package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs.map +1 -1
  638. package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs +3 -1
  639. package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs.map +1 -1
  640. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +3 -1
  641. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  642. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +6 -4
  643. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs.map +1 -1
  644. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +4 -2
  645. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  646. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +4 -2
  647. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  648. package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs +3 -1
  649. package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs.map +1 -1
  650. package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs +68 -0
  651. package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs.map +1 -0
  652. package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs +45 -0
  653. package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs.map +1 -0
  654. package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs +36 -0
  655. package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs.map +1 -0
  656. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +6 -4
  657. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  658. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +6 -4
  659. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  660. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +4 -2
  661. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  662. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +4 -2
  663. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  664. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +4 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  666. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +4 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  668. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +4 -2
  669. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  670. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +4 -2
  671. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  672. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +5 -3
  673. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  674. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +4 -2
  675. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  676. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +4 -2
  677. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  678. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +4 -2
  679. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  680. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +4 -2
  681. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  682. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +4 -2
  683. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  684. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +4 -2
  685. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  686. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +4 -2
  687. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  688. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +4 -2
  689. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  690. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +4 -2
  691. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  692. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +4 -2
  693. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  694. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -2
  695. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  696. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -2
  697. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  698. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +4 -2
  699. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
  700. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +4 -2
  701. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  702. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +4 -2
  703. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs.map +1 -1
  704. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +4 -2
  705. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  706. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +4 -2
  707. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  708. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +4 -2
  709. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  710. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +4 -2
  711. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  712. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +4 -2
  713. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  714. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +3 -1
  715. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  716. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +4 -2
  717. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
  718. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +4 -2
  719. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs.map +1 -1
  720. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +4 -2
  721. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -1
  722. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +4 -2
  723. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  724. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +4 -2
  725. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  726. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +4 -2
  727. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  728. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +4 -2
  729. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  730. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +4 -2
  731. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  732. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +4 -2
  733. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
  734. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +4 -2
  735. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
  736. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +4 -2
  737. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
  738. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +4 -2
  739. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  740. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +4 -2
  741. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  742. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +4 -2
  743. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  744. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +4 -2
  745. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  746. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +4 -2
  747. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  748. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +4 -2
  749. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  750. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +3 -1
  751. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  752. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +18 -4
  753. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  754. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +4 -2
  755. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  756. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +4 -2
  757. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  758. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +4 -2
  759. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  760. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +4 -2
  761. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  762. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +4 -2
  763. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  764. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +4 -2
  765. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  766. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +4 -2
  767. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  768. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +6 -3
  769. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  770. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +4 -2
  771. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  772. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +6 -3
  773. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  774. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +6 -3
  775. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  776. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs +3 -1
  777. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs.map +1 -1
  778. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs +3 -1
  779. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs.map +1 -1
  780. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs +3 -1
  781. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs.map +1 -1
  782. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +4 -2
  783. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs.map +1 -1
  784. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs +3 -1
  785. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs.map +1 -1
  786. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs +3 -1
  787. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs.map +1 -1
  788. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs +3 -1
  789. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs.map +1 -1
  790. package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs +3 -1
  791. package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs.map +1 -1
  792. package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs +3 -1
  793. package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs.map +1 -1
  794. package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs +3 -1
  795. package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs.map +1 -1
  796. package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs +3 -1
  797. package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs.map +1 -1
  798. package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs +3 -1
  799. package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs.map +1 -1
  800. package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs +3 -1
  801. package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs.map +1 -1
  802. package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs +3 -1
  803. package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs.map +1 -1
  804. package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs +3 -1
  805. package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs.map +1 -1
  806. package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs +3 -1
  807. package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs.map +1 -1
  808. package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs +3 -1
  809. package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs.map +1 -1
  810. package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs +3 -1
  811. package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs.map +1 -1
  812. package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs +3 -1
  813. package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs.map +1 -1
  814. package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs +3 -1
  815. package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs.map +1 -1
  816. package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs +3 -1
  817. package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs.map +1 -1
  818. package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs +3 -1
  819. package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs.map +1 -1
  820. package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs +4 -2
  821. package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs.map +1 -1
  822. package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs +4 -2
  823. package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs.map +1 -1
  824. package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs +3 -1
  825. package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs.map +1 -1
  826. package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs +3 -1
  827. package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs.map +1 -1
  828. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs +3 -1
  829. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs.map +1 -1
  830. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs +3 -1
  831. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs.map +1 -1
  832. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs +3 -1
  833. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs.map +1 -1
  834. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs +3 -1
  835. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs.map +1 -1
  836. package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs +3 -1
  837. package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs.map +1 -1
  838. package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs +3 -1
  839. package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs.map +1 -1
  840. package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs +3 -1
  841. package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs.map +1 -1
  842. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs +3 -1
  843. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs.map +1 -1
  844. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs +3 -1
  845. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs.map +1 -1
  846. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs +3 -1
  847. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs.map +1 -1
  848. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs +3 -1
  849. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs.map +1 -1
  850. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs +3 -1
  851. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs.map +1 -1
  852. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +4 -2
  853. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs.map +1 -1
  854. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +4 -2
  855. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs.map +1 -1
  856. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +4 -2
  857. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs.map +1 -1
  858. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +4 -2
  859. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  860. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +4 -2
  861. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  862. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +4 -2
  863. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  864. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +4 -2
  865. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  866. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +4 -2
  867. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  868. package/.output/server/chunks/routes/api/workshop/index.get.mjs +3 -1
  869. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  870. package/.output/server/chunks/routes/api/workshop/index.mjs +4 -2
  871. package/.output/server/chunks/routes/api/workshop/index.mjs.map +1 -1
  872. package/.output/server/chunks/routes/api/workshop/index.post.mjs +3 -1
  873. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  874. package/.output/server/chunks/routes/api/workshop/index.put.mjs +4 -2
  875. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  876. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +3 -1
  877. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  878. package/.output/server/chunks/routes/api/workshop/index10.post.mjs +3 -1
  879. package/.output/server/chunks/routes/api/workshop/index10.post.mjs.map +1 -1
  880. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +3 -1
  881. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  882. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +4 -2
  883. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  884. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +3 -1
  885. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  886. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +3 -1
  887. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  888. package/.output/server/chunks/routes/api/workshop/index15.get.mjs +3 -1
  889. package/.output/server/chunks/routes/api/workshop/index15.get.mjs.map +1 -1
  890. package/.output/server/chunks/routes/api/workshop/index16.get.mjs +3 -1
  891. package/.output/server/chunks/routes/api/workshop/index16.get.mjs.map +1 -1
  892. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +4 -2
  893. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  894. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +25 -10
  895. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  896. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +4 -2
  897. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  898. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +3 -1
  899. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  900. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +3 -1
  901. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  902. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +231 -5
  903. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  904. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -1
  905. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  906. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +4 -2
  907. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  908. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +4 -2
  909. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  910. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +4 -2
  911. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  912. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +4 -2
  913. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  914. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +23 -7
  915. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  916. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +4 -2
  917. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  918. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +3 -1
  919. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  920. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -1
  921. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  922. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +3 -1
  923. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  924. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +3 -1
  925. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  926. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +3 -1
  927. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  928. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +3 -1
  929. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  930. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +4 -2
  931. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs.map +1 -1
  932. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs +3 -1
  933. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs.map +1 -1
  934. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs +3 -1
  935. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs.map +1 -1
  936. package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs +3 -1
  937. package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs.map +1 -1
  938. package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs +3 -1
  939. package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs.map +1 -1
  940. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs +3 -1
  941. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs.map +1 -1
  942. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +3 -1
  943. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
  944. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +4 -2
  945. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs.map +1 -1
  946. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +4 -2
  947. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs.map +1 -1
  948. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +4 -2
  949. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs.map +1 -1
  950. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +4 -2
  951. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs.map +1 -1
  952. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +4 -2
  953. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs.map +1 -1
  954. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +4 -2
  955. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs.map +1 -1
  956. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +4 -2
  957. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs.map +1 -1
  958. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +4 -2
  959. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs.map +1 -1
  960. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +4 -2
  961. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs.map +1 -1
  962. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +4 -2
  963. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs.map +1 -1
  964. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +4 -2
  965. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs.map +1 -1
  966. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +4 -2
  967. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs.map +1 -1
  968. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +4 -2
  969. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs.map +1 -1
  970. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +4 -2
  971. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs.map +1 -1
  972. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +4 -2
  973. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs.map +1 -1
  974. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +4 -2
  975. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs.map +1 -1
  976. package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs +3 -1
  977. package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs.map +1 -1
  978. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +4 -2
  979. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs.map +1 -1
  980. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +4 -2
  981. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs.map +1 -1
  982. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +4 -2
  983. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs.map +1 -1
  984. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +4 -2
  985. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs.map +1 -1
  986. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +4 -2
  987. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs.map +1 -1
  988. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +4 -2
  989. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs.map +1 -1
  990. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +4 -2
  991. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs.map +1 -1
  992. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +4 -2
  993. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs.map +1 -1
  994. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +4 -2
  995. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  996. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +4 -2
  997. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  998. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +3 -1
  999. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  1000. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +4 -2
  1001. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs.map +1 -1
  1002. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +4 -2
  1003. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs.map +1 -1
  1004. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +4 -2
  1005. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs.map +1 -1
  1006. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +4 -2
  1007. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs.map +1 -1
  1008. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +4 -2
  1009. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs.map +1 -1
  1010. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +4 -2
  1011. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs.map +1 -1
  1012. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +3 -1
  1013. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  1014. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +4 -2
  1015. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  1016. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +4 -2
  1017. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  1018. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +3 -1
  1019. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  1020. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +3 -1
  1021. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
  1022. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +3 -1
  1023. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
  1024. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +3 -1
  1025. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
  1026. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +3 -1
  1027. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
  1028. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +3 -1
  1029. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
  1030. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +3 -1
  1031. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  1032. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +3 -1
  1033. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  1034. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +3 -1
  1035. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  1036. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +3 -1
  1037. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
  1038. package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs +3 -1
  1039. package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs.map +1 -1
  1040. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +3 -1
  1041. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  1042. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +3 -1
  1043. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  1044. package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs +43 -0
  1045. package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs.map +1 -0
  1046. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +3 -1
  1047. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
  1048. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +3 -1
  1049. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  1050. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +3 -1
  1051. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  1052. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +4 -2
  1053. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  1054. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +3 -1
  1055. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  1056. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +3 -1
  1057. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  1058. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +4 -2
  1059. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
  1060. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +4 -2
  1061. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
  1062. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +3 -1
  1063. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  1064. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +3 -1
  1065. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  1066. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +3 -1
  1067. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  1068. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +3 -1
  1069. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  1070. package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs +3 -1
  1071. package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs.map +1 -1
  1072. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +4 -2
  1073. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs.map +1 -1
  1074. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +3 -1
  1075. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  1076. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +3 -1
  1077. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  1078. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +5 -3
  1079. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  1080. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +3 -1
  1081. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  1082. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +3 -1
  1083. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  1084. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +3 -1
  1085. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  1086. package/.output/server/chunks/routes/renderer.mjs +2 -2
  1087. package/.output/server/chunks/virtual/entry.mjs +50 -32
  1088. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  1089. package/.output/server/index.mjs +3 -1
  1090. package/.output/server/index.mjs.map +1 -1
  1091. package/.output/server/node_modules/pg/esm/index.mjs +20 -0
  1092. package/.output/server/node_modules/pg/lib/client.js +828 -0
  1093. package/.output/server/node_modules/pg/lib/connection-parameters.js +184 -0
  1094. package/.output/server/node_modules/pg/lib/connection.js +243 -0
  1095. package/.output/server/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
  1096. package/.output/server/node_modules/pg/lib/crypto/sasl.js +262 -0
  1097. package/.output/server/node_modules/pg/lib/crypto/utils.js +89 -0
  1098. package/.output/server/node_modules/pg/lib/defaults.js +94 -0
  1099. package/.output/server/node_modules/pg/lib/index.js +73 -0
  1100. package/.output/server/node_modules/pg/lib/native/client.js +420 -0
  1101. package/.output/server/node_modules/pg/lib/native/index.js +2 -0
  1102. package/.output/server/node_modules/pg/lib/native/query.js +165 -0
  1103. package/.output/server/node_modules/pg/lib/query.js +259 -0
  1104. package/.output/server/node_modules/pg/lib/result.js +109 -0
  1105. package/.output/server/node_modules/pg/lib/stream.js +83 -0
  1106. package/.output/server/node_modules/pg/lib/type-overrides.js +35 -0
  1107. package/.output/server/node_modules/pg/lib/utils.js +207 -0
  1108. package/.output/server/node_modules/pg/package.json +76 -0
  1109. package/.output/server/node_modules/pg-cloudflare/dist/empty.js +6 -0
  1110. package/.output/server/node_modules/pg-cloudflare/package.json +39 -0
  1111. package/.output/server/node_modules/pg-connection-string/index.js +237 -0
  1112. package/.output/server/node_modules/pg-connection-string/package.json +52 -0
  1113. package/.output/server/node_modules/pg-int8/index.js +100 -0
  1114. package/.output/server/node_modules/pg-int8/package.json +24 -0
  1115. package/.output/server/node_modules/pg-pool/index.js +517 -0
  1116. package/.output/server/node_modules/pg-pool/package.json +51 -0
  1117. package/.output/server/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
  1118. package/.output/server/node_modules/pg-protocol/dist/buffer-writer.js +104 -0
  1119. package/.output/server/node_modules/pg-protocol/dist/index.js +15 -0
  1120. package/.output/server/node_modules/pg-protocol/dist/messages.js +160 -0
  1121. package/.output/server/node_modules/pg-protocol/dist/parser.js +325 -0
  1122. package/.output/server/node_modules/pg-protocol/dist/serializer.js +196 -0
  1123. package/.output/server/node_modules/pg-protocol/package.json +44 -0
  1124. package/.output/server/node_modules/pg-types/index.js +47 -0
  1125. package/.output/server/node_modules/pg-types/lib/arrayParser.js +11 -0
  1126. package/.output/server/node_modules/pg-types/lib/binaryParsers.js +257 -0
  1127. package/.output/server/node_modules/pg-types/lib/builtins.js +73 -0
  1128. package/.output/server/node_modules/pg-types/lib/textParsers.js +215 -0
  1129. package/.output/server/node_modules/pg-types/package.json +42 -0
  1130. package/.output/server/node_modules/pgpass/lib/helper.js +233 -0
  1131. package/.output/server/node_modules/pgpass/lib/index.js +23 -0
  1132. package/.output/server/node_modules/pgpass/package.json +41 -0
  1133. package/.output/server/node_modules/postgres-array/index.js +97 -0
  1134. package/.output/server/node_modules/postgres-array/package.json +35 -0
  1135. package/.output/server/node_modules/postgres-bytea/index.js +33 -0
  1136. package/.output/server/node_modules/postgres-bytea/package.json +34 -0
  1137. package/.output/server/node_modules/postgres-date/index.js +116 -0
  1138. package/.output/server/node_modules/postgres-date/package.json +33 -0
  1139. package/.output/server/node_modules/postgres-interval/index.js +126 -0
  1140. package/.output/server/node_modules/postgres-interval/package.json +35 -0
  1141. package/.output/server/node_modules/split2/index.js +141 -0
  1142. package/.output/server/node_modules/split2/package.json +39 -0
  1143. package/.output/server/node_modules/xtend/mutable.js +17 -0
  1144. package/.output/server/node_modules/xtend/package.json +55 -0
  1145. package/.output/server/package.json +15 -1
  1146. package/README-zh.md +255 -992
  1147. package/README.md +254 -1023
  1148. package/app/components/logs/LogsEventTable.vue +36 -3
  1149. package/app/components/logs/LogsManualModal.vue +23 -1
  1150. package/app/components/logs/LogsPageHead.vue +56 -5
  1151. package/app/components/workshop/town/components/TownAgentBindings.vue +16 -4
  1152. package/app/components/workshop/town/components/TownAgentInspector.vue +1 -1
  1153. package/app/components/workshop/town/components/TownRightRail.vue +1 -1
  1154. package/app/composables/workshop/town/town-view-types.ts +2 -2
  1155. package/app/composables/workshop/town/useTownAgentBindings.ts +3 -2
  1156. package/app/composables/workshop/town/useTownRailData.ts +1 -1
  1157. package/app/composables/workshop/useDcwStream.ts +5 -2
  1158. package/app/composables/workshop/useOpsLog.ts +191 -191
  1159. package/app/config/schema.ts +15 -1
  1160. package/app/pages/logs/composables/useLogsManual.ts +71 -68
  1161. package/app/pages/logs/index.vue +34 -1
  1162. package/config.yml +212 -193
  1163. package/docker-compose.yml +69 -63
  1164. package/docs/cli.en.md +447 -447
  1165. package/docs/cli.md +412 -412
  1166. package/docs/plugins.en.md +641 -641
  1167. package/docs/plugins.md +630 -630
  1168. package/docs/sdk.en.md +964 -964
  1169. package/docs/sdk.md +900 -900
  1170. package/i18n/dicts/townView.json +3 -1
  1171. package/i18n/locales/en.ts +3371 -3362
  1172. package/i18n/locales/zh-CN.ts +3370 -3361
  1173. package/mcp/aw-mcp-server.mjs +1 -1
  1174. package/package.json +189 -187
  1175. package/scripts/_audit/kill-acceptance-strays.mjs +47 -0
  1176. package/scripts/_audit/proto-doc-broker-20261031.mjs +11 -0
  1177. package/scripts/_audit/proto-doc-device-20261031.mjs +53 -0
  1178. package/scripts/_audit/proto-doc-mqtt-20261031.mjs +32 -0
  1179. package/scripts/_audit/run-full-acceptance-20261030.sh +82 -0
  1180. package/scripts/api-live-e2e.mjs +91 -32
  1181. package/scripts/e2e-agentteam-goal-closure.mjs +496 -0
  1182. package/scripts/e2e-analysis-ledger.mjs +202 -0
  1183. package/scripts/e2e-binding-modes-real.mjs +442 -0
  1184. package/scripts/e2e-business-loop-real.mjs +391 -0
  1185. package/scripts/e2e-core-bridges-matrix.mjs +303 -0
  1186. package/scripts/e2e-dcw-halfopen-resilience.mjs +140 -0
  1187. package/scripts/e2e-error-handling.mjs +190 -0
  1188. package/scripts/e2e-golive-matrix.mjs +515 -0
  1189. package/scripts/e2e-idd-results-ui.mjs +182 -175
  1190. package/scripts/e2e-mes-mirror-real.mjs +427 -0
  1191. package/scripts/e2e-model-loop-live.mjs +90 -54
  1192. package/scripts/e2e-node-binding-3mode-real.mjs +110 -15
  1193. package/scripts/e2e-node-binding-authz.mjs +41 -1
  1194. package/scripts/e2e-optimizer-live.mjs +4 -0
  1195. package/scripts/e2e-paper-paired-route.mjs +791 -0
  1196. package/scripts/e2e-physical-effect-real.mjs +572 -0
  1197. package/scripts/e2e-real-channel-mission.mjs +543 -0
  1198. package/scripts/e2e-security-b0.mjs +280 -0
  1199. package/scripts/e2e-security-b1.mjs +165 -0
  1200. package/scripts/e2e-security-b2b5.mjs +280 -0
  1201. package/scripts/live-demo-seed.mjs +157 -0
  1202. package/scripts/onboarding/preflight.mjs +231 -0
  1203. package/scripts/onboarding/provision-line.mjs +11 -1
  1204. package/scripts/onboarding/verify-mirror.mjs +145 -0
  1205. package/scripts/start.mjs +279 -250
  1206. package/sdk/context.mjs +34 -1
  1207. package/server/api/users/login.post.ts +3 -2
  1208. package/server/api/users/register.post.ts +22 -21
  1209. package/server/api/workshop/a2a/[agentId]/card/index.get.ts +86 -75
  1210. package/server/api/workshop/agent-tools/approvals/index.get.ts +3 -1
  1211. package/server/api/workshop/agent-tools/bindings/index.post.ts +38 -16
  1212. package/server/api/workshop/analysis/index.post.ts +20 -3
  1213. package/server/api/workshop/assets/devices/index.post.ts +55 -53
  1214. package/server/api/workshop/channels/[id]/tasks/index.post.ts +2 -0
  1215. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +20 -1
  1216. package/server/api/workshop/daq/[id]/ingest.post.ts +25 -1
  1217. package/server/api/workshop/daq/index.post.ts +45 -1
  1218. package/server/api/workshop/daq/storage/retention.put.ts +66 -0
  1219. package/server/api/workshop/daq/storage/rollup.post.ts +28 -0
  1220. package/server/api/workshop/daq/storage.get.ts +17 -0
  1221. package/server/api/workshop/daq/templates/[key].delete.ts +2 -2
  1222. package/server/api/workshop/daq/templates/[key].patch.ts +19 -19
  1223. package/server/api/workshop/daq/templates/index.post.ts +18 -18
  1224. package/server/api/workshop/dcw/[id]/write.post.ts +28 -27
  1225. package/server/api/workshop/dcw/recipes/[id].delete.ts +21 -2
  1226. package/server/api/workshop/device-twins/[id]/control.post.ts +23 -21
  1227. package/server/api/workshop/device-twins/[id].delete.ts +3 -1
  1228. package/server/api/workshop/device-twins/[id].patch.ts +31 -29
  1229. package/server/api/workshop/ops-logs/index.post.ts +92 -69
  1230. package/server/api/workshop/tasks/[id]/supersede.post.ts +28 -0
  1231. package/server/middleware/00-security-headers.ts +8 -1
  1232. package/server/middleware/01-rate-guard.ts +34 -6
  1233. package/server/plugins/00-daq-credentials.ts +33 -0
  1234. package/server/plugins/01-instance-guard.ts +49 -13
  1235. package/server/plugins/aw-plugins.ts +4 -1
  1236. package/server/plugins/backup.ts +268 -257
  1237. package/server/plugins/daq.ts +40 -1
  1238. package/server/plugins/dev-stability-guard.ts +4 -0
  1239. package/server/plugins/error-ledger.ts +21 -0
  1240. package/server/repositories/user.repository.ts +520 -507
  1241. package/server/schemas/user.schema.ts +74 -74
  1242. package/server/services/system-config/mutate.ts +9 -2
  1243. package/server/services/system-config/secrets.ts +50 -0
  1244. package/server/services/system-config/snapshot.ts +13 -2
  1245. package/server/services/user.service.ts +277 -258
  1246. package/server/services/workshop/agents/adapters/line-spawn.ts +148 -144
  1247. package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +5 -1
  1248. package/server/services/workshop/agents/agent-interface.ts +2 -0
  1249. package/server/services/workshop/agents/base-agent.ts +3 -3
  1250. package/server/services/workshop/agents/binding-authz.ts +7 -1
  1251. package/server/services/workshop/agents/governance-harness-audit.ts +216 -0
  1252. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +1 -0
  1253. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +428 -410
  1254. package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +17 -3
  1255. package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +46 -13
  1256. package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +48 -6
  1257. package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +52 -14
  1258. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +22 -1
  1259. package/server/services/workshop/agents/host-tool-bridge/types.ts +1 -1
  1260. package/server/services/workshop/agents/industrial/aml-job-tools.ts +6 -4
  1261. package/server/services/workshop/agents/industrial/bench-approval-only.ts +117 -0
  1262. package/server/services/workshop/agents/industrial/daq-tools.ts +79 -20
  1263. package/server/services/workshop/agents/industrial/dcw-tools.ts +14 -1
  1264. package/server/services/workshop/agents/industrial/fallback-hints.ts +31 -0
  1265. package/server/services/workshop/agents/industrial/manual-approval.ts +2 -2
  1266. package/server/services/workshop/agents/industrial/ops-tools.ts +72 -23
  1267. package/server/services/workshop/agents/industrial/recipe-gate.ts +57 -29
  1268. package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +6 -4
  1269. package/server/services/workshop/agents/industrial/tool-verify.ts +23 -3
  1270. package/server/services/workshop/agents/mock-agent.ts +4 -0
  1271. package/server/services/workshop/agents/node-bindings.repo.ts +8 -6
  1272. package/server/services/workshop/agents/omp-agent/agentteam-audit.ts +147 -0
  1273. package/server/services/workshop/agents/omp-agent/client.ts +1 -1
  1274. package/server/services/workshop/agents/omp-agent/event-mapping.ts +21 -0
  1275. package/server/services/workshop/agents/omp-agent/tools-steer.ts +100 -6
  1276. package/server/services/workshop/agents/tool-approvals.ts +6 -4
  1277. package/server/services/workshop/agents/tool-classes.ts +12 -0
  1278. package/server/services/workshop/aml/dataset-builder.ts +4 -0
  1279. package/server/services/workshop/aml/env-lease.ts +178 -148
  1280. package/server/services/workshop/aml/model-registry.ts +16 -2
  1281. package/server/services/workshop/bench-mode.ts +22 -0
  1282. package/server/services/workshop/daq/alarm-notify.ts +122 -102
  1283. package/server/services/workshop/daq/daq-controller/crud.ts +210 -210
  1284. package/server/services/workshop/daq/daq-controller/driver-probe.ts +68 -67
  1285. package/server/services/workshop/daq/daq-controller/frames.ts +5 -4
  1286. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +214 -186
  1287. package/server/services/workshop/daq/daq-controller/types.ts +5 -0
  1288. package/server/services/workshop/daq/daq-node.ts +7 -0
  1289. package/server/services/workshop/daq/daq-templates.ts +235 -225
  1290. package/server/services/workshop/daq/drivers/modbus-tcp.ts +27 -16
  1291. package/server/services/workshop/daq/field-group.ts +266 -0
  1292. package/server/services/workshop/daq/infra-credentials.ts +201 -0
  1293. package/server/services/workshop/daq/infra.ts +250 -229
  1294. package/server/services/workshop/daq/ingest-policy.ts +80 -66
  1295. package/server/services/workshop/daq/objectstore/index.ts +88 -88
  1296. package/server/services/workshop/daq/storage/index.ts +157 -4
  1297. package/server/services/workshop/daq/storage/retention.ts +142 -0
  1298. package/server/services/workshop/daq/storage/sqlite.adapter.ts +16 -3
  1299. package/server/services/workshop/daq/storage/timescale-rollup.ts +600 -0
  1300. package/server/services/workshop/daq/storage/timescale.adapter.ts +46 -13
  1301. package/server/services/workshop/daq/storage/tsdb-port.ts +120 -0
  1302. package/server/services/workshop/db/chat-message.repo.ts +28 -0
  1303. package/server/services/workshop/db/database/open.ts +6 -0
  1304. package/server/services/workshop/db/database/rows.ts +2 -0
  1305. package/server/services/workshop/db/database/schema.ts +8 -0
  1306. package/server/services/workshop/db/database/seed.ts +6 -6
  1307. package/server/services/workshop/db/schema.sql +7 -0
  1308. package/server/services/workshop/db/task.repo.ts +8 -3
  1309. package/server/services/workshop/dcw/dcw-controller/actuation.ts +7 -0
  1310. package/server/services/workshop/dcw/dcw-controller/crud.ts +5 -0
  1311. package/server/services/workshop/dcw/dcw-controller/helpers.ts +62 -61
  1312. package/server/services/workshop/dcw/dcw-controller/recipes.ts +14 -8
  1313. package/server/services/workshop/dcw/dcw-controller/state.ts +88 -71
  1314. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +1 -1
  1315. package/server/services/workshop/dcw/dcw-controller/write.ts +225 -212
  1316. package/server/services/workshop/dcw/dcw-node.ts +13 -1
  1317. package/server/services/workshop/dcw/dcw-runtime.ts +2 -1
  1318. package/server/services/workshop/dcw/drivers/mqtt.ts +4 -3
  1319. package/server/services/workshop/dcw/mqtt-payload.ts +64 -0
  1320. package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +1 -0
  1321. package/server/services/workshop/eda/data-export.ts +275 -274
  1322. package/server/services/workshop/json-store.mjs +143 -137
  1323. package/server/services/workshop/mes/mes-controller.ts +9 -0
  1324. package/server/services/workshop/mes/mes-hook.ts +28 -1
  1325. package/server/services/workshop/net/ssrf.ts +83 -74
  1326. package/server/services/workshop/ops/error-ledger.ts +209 -0
  1327. package/server/services/workshop/optimization/profile-adopt.service.ts +28 -2
  1328. package/server/services/workshop/plugins/host/init.mjs +21 -2
  1329. package/server/services/workshop/plugins/host/reload.mjs +8 -1
  1330. package/server/services/workshop/runtime/agent-runtime/harness-failure.ts +58 -0
  1331. package/server/services/workshop/runtime/agent-runtime/message.ts +37 -2
  1332. package/server/services/workshop/runtime/agent-runtime/state.ts +12 -2
  1333. package/server/services/workshop/runtime/agent-runtime/types.ts +2 -0
  1334. package/server/services/workshop/runtime/channel-runtime.ts +80 -1
  1335. package/server/services/workshop/runtime/embedding-provider.ts +100 -83
  1336. package/server/services/workshop/runtime/execution-mode.ts +8 -0
  1337. package/server/services/workshop/runtime/manager/admin-channel.ts +19 -14
  1338. package/server/services/workshop/runtime/manager/chat.ts +62 -2
  1339. package/server/services/workshop/runtime/manager/contracts.ts +7 -0
  1340. package/server/services/workshop/runtime/manager/helpers.ts +5 -2
  1341. package/server/services/workshop/runtime/manager/runtime-observe.ts +1 -3
  1342. package/server/services/workshop/runtime/manager/runtime-wiring.ts +18 -6
  1343. package/server/services/workshop/runtime/manager/schedules.ts +7 -0
  1344. package/server/services/workshop/runtime/manager/state.ts +16 -2
  1345. package/server/services/workshop/runtime/manager/tasks.ts +34 -1
  1346. package/server/services/workshop/runtime/manager/workspace.ts +1 -0
  1347. package/server/services/workshop/runtime/scheduler-loop/rules.ts +17 -1
  1348. package/server/services/workshop/runtime/scheduler-loop/tick.ts +31 -3
  1349. package/server/services/workshop/runtime/task-engine/create.ts +15 -1
  1350. package/server/services/workshop/runtime/task-engine/helpers.ts +2 -0
  1351. package/server/services/workshop/runtime/task-engine/lifecycle.ts +68 -9
  1352. package/server/services/workshop/settings.ts +35 -1
  1353. package/server/services/workshop/types/task.ts +2 -0
  1354. package/server/utils/asset-auth.ts +15 -0
  1355. package/server/utils/request-ip.ts +29 -0
  1356. package/server/utils/response.ts +3 -6
  1357. package/shared/config/schema.json +171 -152
  1358. package/shared/daq-protocol.ts +8 -0
  1359. package/shared/dcw-protocol/catalog.ts +1 -0
  1360. package/shared/dcw-protocol/closed-loop.ts +2 -0
  1361. package/shared/dcw-protocol/line.ts +4 -1
  1362. package/.output/public/_nuxt/B1SIgyrl.js +0 -1
  1363. package/.output/public/_nuxt/BI9jj13f2.js +0 -2
  1364. package/.output/public/_nuxt/CTGJHZ8X2.js +0 -1
  1365. package/.output/public/_nuxt/DxDqd6T42.js +0 -16
  1366. package/.output/public/_nuxt/builds/meta/593b65bd-cf1d-4b7f-a993-57e939c38f36.json +0 -1
  1367. package/.output/public/_nuxt/logs.BkJPbR_K.css +0 -1
  1368. package/.output/server/chunks/build/TownView-BWMDbosY.mjs.map +0 -1
  1369. package/.output/server/chunks/build/_id_-BK-t8nRG.mjs.map +0 -1
  1370. package/.output/server/chunks/build/_id_-CZPlPDm4.mjs.map +0 -1
  1371. package/.output/server/chunks/build/analysis-p-dBkjoK.mjs.map +0 -1
  1372. package/.output/server/chunks/build/daq-CdxcfY_G.mjs.map +0 -1
  1373. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs.map +0 -1
  1374. package/.output/server/chunks/build/logs-pRb-TMWa.mjs.map +0 -1
  1375. package/.output/server/chunks/build/operations-SMQrRAcr.mjs.map +0 -1
  1376. package/.output/server/chunks/build/pages-DsMKUw7i.mjs.map +0 -1
  1377. package/.output/server/chunks/build/town-B5aoiG98.mjs.map +0 -1
  1378. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs.map +0 -1
  1379. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs.map +0 -1
  1380. package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs.map +0 -1
  1381. package/.output/server/chunks/build/useDashboardData-NJ7rKxhx.mjs.map +0 -1
  1382. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs.map +0 -1
  1383. package/.output/server/chunks/build/useDcwCards-SaiImIYQ.mjs.map +0 -1
  1384. package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs.map +0 -1
  1385. package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs.map +0 -1
  1386. package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs.map +0 -1
  1387. package/.output/server/chunks/build/useDcwLedger-0ie-0WTc.mjs.map +0 -1
  1388. package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs.map +0 -1
  1389. package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs.map +0 -1
  1390. package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs.map +0 -1
  1391. package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs.map +0 -1
  1392. package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs.map +0 -1
  1393. package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs.map +0 -1
  1394. package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs.map +0 -1
  1395. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs.map +0 -1
  1396. package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs.map +0 -1
  1397. package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs.map +0 -1
  1398. package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs.map +0 -1
  1399. package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs.map +0 -1
@@ -0,0 +1,202 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 数据分析台账 E2E —— 实例④(隔离,mock harness 确定性):
4
+ * Agent 把数据分析结果持久化(analysis_save,append-only 台账)
5
+ * → 按条件检索(analysis_query 列表/关键词/类别/时间窗)
6
+ * → 精确查回详情(analysis_query report_id 完整正文+结论+指标)
7
+ * → REST /analysis 面与权限边界(跨线不可见、append-only、人工修订归因)。
8
+ *
9
+ * 收口条件:全部断言 PASS。
10
+ * 运行:node scripts/e2e-analysis-ledger.mjs(自起隔离实例,端口 3416)
11
+ * 证据:docs/audit/evidence/2026-10-28-analysis-ledger/report.json
12
+ */
13
+ import { spawn } from 'node:child_process'
14
+ import { mkdirSync, openSync, writeFileSync } from 'node:fs'
15
+ import { dirname, join, resolve } from 'node:path'
16
+ import { fileURLToPath } from 'node:url'
17
+ import { tmpdir } from 'node:os'
18
+ import { DatabaseSync } from 'node:sqlite'
19
+
20
+ const REPO = resolve(dirname(fileURLToPath(import.meta.url)), '..')
21
+ const TAG = `al${Date.now().toString(36).slice(-4)}`
22
+ const ROOT = join(tmpdir(), `aw-analysis-e2e-${TAG}`)
23
+ mkdirSync(join(ROOT, 'home'), { recursive: true })
24
+ const results = []
25
+ const ok = (id, name, cond, detail = '') => {
26
+ results.push({ id, name, pass: Boolean(cond), detail: String(detail).slice(0, 700) })
27
+ console.log(`${cond ? '✔' : '✖'} [${id}] ${name}${cond ? '' : ` — ${String(detail).slice(0, 500)}`}`)
28
+ return Boolean(cond)
29
+ }
30
+ const sleep = ms => new Promise(r => setTimeout(r, ms))
31
+
32
+ let port = 0
33
+ for (const p of [3416, 3417]) {
34
+ try {
35
+ const r = await fetch(`http://127.0.0.1:${p}/api/health`, { signal: AbortSignal.timeout(1200) })
36
+ if (r.ok) continue
37
+ }
38
+ catch { /* 空闲 */ }
39
+ port = p
40
+ break
41
+ }
42
+ if (!port) {
43
+ console.error('无空闲端口')
44
+ process.exit(1)
45
+ }
46
+ const BASE = `http://127.0.0.1:${port}`
47
+ process.env.NO_PROXY = '127.0.0.1,localhost'
48
+ const logFd = openSync(join(ROOT, 'dev.log'), 'a')
49
+ const child = spawn(process.execPath, [join(REPO, 'bin', 'aw.mjs'), 'dev', '--port', String(port)], {
50
+ cwd: REPO,
51
+ env: { ...process.env, AW_MODE: 'home', AW_HOME: join(ROOT, 'home'), AW_RATE_LIMIT_OFF: '1', NUXT_SESSION_PASSWORD: 'AnalysisLedger#2026-key', NO_PROXY: '127.0.0.1,localhost' },
52
+ stdio: ['ignore', logFd, logFd],
53
+ windowsHide: true,
54
+ })
55
+
56
+ async function api(method, path, body, token, extraHeaders = {}, timeoutMs = 120_000) {
57
+ const res = await fetch(BASE + path, {
58
+ method,
59
+ headers: { ...(body !== undefined ? { 'content-type': 'application/json' } : {}), ...(token ? { authorization: `Bearer ${token}` } : {}), ...extraHeaders },
60
+ body: body === undefined ? undefined : JSON.stringify(body),
61
+ signal: AbortSignal.timeout(timeoutMs),
62
+ })
63
+ let json = null
64
+ try {
65
+ json = await res.json()
66
+ }
67
+ catch { /* 非 JSON */ }
68
+ return { status: res.status, ...json }
69
+ }
70
+ const invText = r => String(r?.data?.result?.text ?? r?.data?.text ?? '')
71
+ const invErr = r => Boolean(r?.data?.result?.isError ?? r?.data?.isError)
72
+ const callAs = (agentId, token, tool, args) => api('POST', '/api/workshop/agent-tools/invoke', { agentId, tool, args }, undefined, { 'x-aw-agent-token': token })
73
+
74
+ let admin = ''
75
+ try {
76
+ let healthy = false
77
+ for (let i = 0; i < 90; i++) {
78
+ await sleep(2000)
79
+ try {
80
+ const h = await api('GET', '/api/health', undefined, undefined, {}, 3000)
81
+ if (h?.data?.status === 'ok' && h?.data?.workshop === 'ready') {
82
+ healthy = true
83
+ break
84
+ }
85
+ }
86
+ catch { /* 未就绪 */ }
87
+ }
88
+ ok('A0', '隔离实例④启动 + workshop ready', healthy, `port=${port}`)
89
+ if (!healthy) throw new Error('实例未就绪')
90
+ admin = (await api('POST', '/api/users/register', { name: `al-admin-${TAG}`, email: `al-${TAG}@awshop.local`, password: 'AlAdmin#2026' })).data?.token
91
+ ok('A0b', 'admin 注册', Boolean(admin))
92
+
93
+ // ── 场景:两线各带数采;频道绑线A;两个 Agent(w1 绑线A 数采,w2 无绑定) ──
94
+ const lineA = (await api('POST', '/api/workshop/dcw/lines', { name: `台账线A-${TAG}` }, admin)).data?.line?.id
95
+ const lineB = (await api('POST', '/api/workshop/dcw/lines', { name: `台账线B-${TAG}` }, admin)).data?.line?.id
96
+ const dnA = (await api('POST', '/api/workshop/daq', { name: `数采A-${TAG}`, driver: 'mock', templateRef: 'daq-temp-tc', lineId: lineA, intervalMs: 1000, publishIntervalMs: 0 }, admin)).data?.node?.id
97
+ const ch = (await api('POST', '/api/workshop/channels', { name: `台账频道-${TAG}`, lineId: lineA, leadAgent: { name: `al-lead-${TAG}`, harness: 'mock' } }, admin)).data
98
+ const mkWorker = async (name) => {
99
+ const w = (await api('POST', `/api/workshop/channels/${ch.channelId}/agents`, { name, harness: 'mock', role: 'worker' }, admin)).data
100
+ return String(w?.id ?? w?.agentId ?? '')
101
+ }
102
+ const w1 = await mkWorker(`al-w1-${TAG}`)
103
+ const w2 = await mkWorker(`al-w2-${TAG}`)
104
+ void w2
105
+ await api('POST', '/api/workshop/daq/controller', { action: 'start' }, admin)
106
+ await sleep(6000)
107
+ const b1 = await api('POST', '/api/workshop/agent-tools/bindings', { agentId: w1, nodeId: dnA, kind: 'daq', mode: 'auto' }, admin)
108
+ ok('A1', '场景就绪(两线/数采/频道/双 worker/绑定)', Boolean(lineA && lineB && dnA && w1 && w2) && b1.status === 200, JSON.stringify({ lineA, lineB, dnA, w1, w2 }))
109
+ const tok1 = (() => {
110
+ const db = new DatabaseSync(join(ROOT, 'home', 'data', 'workshop.sqlite'))
111
+ try {
112
+ return String(db.prepare('SELECT token FROM channel_agents WHERE id = ?').get(w1)?.token ?? '')
113
+ }
114
+ finally {
115
+ db.close()
116
+ }
117
+ })()
118
+ void w2
119
+
120
+ // ── Agent 持久化分析结果(先抓真实数据再留痕) ──
121
+ const data = await callAs(w1, tok1, 'daq_query', { node_id: dnA, last_minutes: 5 })
122
+ const sampleOk = !invErr(data)
123
+ const nowIso = new Date().toISOString()
124
+ const saved1 = await callAs(w1, tok1, 'analysis_save', {
125
+ title: `腔体温度趋势分析-${TAG}`,
126
+ summary: '近5分钟温度稳定在设定带内,无越限趋势',
127
+ conclusions: '1) 样本充足;2) 均值接近设定值;3) 无报警趋势',
128
+ report: `# 腔体温度趋势分析\n\n数据来源 daq_query(${dnA}),窗口最近5分钟。逐桶统计显示温度围绕设定值窄幅波动,无单向漂移;建议维持当前配方。`,
129
+ category: 'trend',
130
+ line_id: lineA,
131
+ window_from: nowIso,
132
+ window_to: nowIso,
133
+ data_sources: [`daq_query:${dnA}`],
134
+ metrics: { sampleCount: 30, meanTempC: 60.2, maxDeviationC: 1.8 },
135
+ })
136
+ const save1Text = invText(saved1)
137
+ const reportId = save1Text.match(/ar-[a-z0-9]+/i)?.[0] ?? ''
138
+ ok('A2', `Agent analysis_save 持久化(先抓数据:采样=${sampleOk})→ 返回台账 id`, sampleOk && !invErr(saved1) && Boolean(reportId), save1Text.slice(0, 240))
139
+ const saved2 = await callAs(w1, tok1, 'analysis_save', {
140
+ title: `压力越限筛查-${TAG}`,
141
+ summary: '压力测点无越限记录,筛查通过',
142
+ conclusions: '无越限',
143
+ report: '压力筛查:窗口内无越限样本。',
144
+ category: 'alarm-review',
145
+ line_id: lineA,
146
+ })
147
+ ok('A2b', '第二条留痕(不同类别)', !invErr(saved2), invText(saved2).slice(0, 200))
148
+
149
+ // ── 检索:列表 / 关键词 / 类别 / 详情 ──
150
+ const qList = await callAs(w1, tok1, 'analysis_query', { line_id: lineA, limit: 20 })
151
+ const listText = invText(qList)
152
+ ok('A3', 'analysis_query 按线列表 → 两条可见', !invErr(qList) && listText.includes(`趋势分析-${TAG}`) && listText.includes(`越限筛查-${TAG}`), listText.slice(0, 260))
153
+ const qKw = await callAs(w1, tok1, 'analysis_query', { q: '越限筛查' })
154
+ ok('A3b', '关键词检索命中目标报告', !invErr(qKw) && invText(qKw).includes(`压力越限筛查-${TAG}`), invText(qKw).slice(0, 220))
155
+ const qDetail = await callAs(w1, tok1, 'analysis_query', { report_id: reportId })
156
+ const detailText = invText(qDetail)
157
+ ok('A4', 'report_id 精确查回详情(完整正文+结论+指标)',
158
+ !invErr(qDetail) && detailText.includes('腔体温度趋势分析') && detailText.includes('逐桶统计') && detailText.includes('60.2') && detailText.includes('样本充足'),
159
+ detailText.slice(0, 320))
160
+
161
+ // ── 权限边界:跨线不可见;append-only(工具面无修改);人工修订走 REST 且带归因 ──
162
+ const qB = await callAs(w1, tok1, 'analysis_query', { line_id: lineB })
163
+ ok('A5', '跨线查询不泄漏他线报告', !invText(qB).includes(`趋势分析-${TAG}`), invText(qB).slice(0, 160))
164
+ const toolsW1 = (await api('GET', `/api/workshop/agent-tools/list?agentId=${encodeURIComponent(w1)}`, undefined, undefined, { 'x-aw-agent-token': tok1 })).data?.tools ?? []
165
+ const analysisTools = toolsW1.filter(t => t.name.startsWith('analysis_')).map(t => t.name)
166
+ ok('A5b', 'Agent 分析工具面=save+query(无修改/删除,append-only)', analysisTools.includes('analysis_save') && analysisTools.includes('analysis_query') && !analysisTools.some(t => /edit|delete|update/.test(t)), analysisTools.join(','))
167
+ const w1Row = (await api('GET', `/api/workshop/agent-tools/list?agentId=${encodeURIComponent(w1)}`, undefined, undefined, { 'x-aw-agent-token': tok1 }))
168
+ void w1Row
169
+ // 人工修订(REST,editor 归因)→ Agent 查回的是修订后内容
170
+ const patched = await api('PATCH', `/api/workshop/analysis/${reportId}`, { summary: '近5分钟温度稳定(人工复核修订)' }, admin)
171
+ ok('A6', '人工经 REST 修订摘要(admin/editor 通道)', patched.status === 200, `status=${patched.status} msg=${String(patched?.message ?? '').slice(0, 120)}`)
172
+ const qAfter = await callAs(w1, tok1, 'analysis_query', { report_id: reportId })
173
+ ok('A6b', 'Agent 查回修订后内容(台账修订留痕)', !invErr(qAfter) && invText(qAfter).includes('人工复核修订'), invText(qAfter).slice(0, 200))
174
+ // REST 列表面(前端 /analysis 数据源)
175
+ const restList = await api('GET', `/api/workshop/analysis?lineId=${lineA}&limit=20`, undefined, admin)
176
+ const restRows = restList?.data?.reports ?? restList?.data?.items ?? restList?.data ?? []
177
+ const restHit = JSON.stringify(restRows).includes(`腔体温度趋势分析-${TAG}`)
178
+ ok('A7', 'REST /analysis 列表面可见台账(前端 /analysis 页数据源)', restList.status === 200 && restHit, `status=${restList.status} rows=${Array.isArray(restRows) ? restRows.length : '?'} hit=${restHit}`)
179
+ }
180
+ catch (err) {
181
+ ok('FATAL', 'E2E 未捕获异常', false, err instanceof Error ? `${err.message}\n${err.stack ?? ''}` : String(err))
182
+ }
183
+ finally {
184
+ try {
185
+ child.kill()
186
+ }
187
+ catch { /* noop */ }
188
+ const passed = results.filter(r => r.pass).length
189
+ const total = results.length
190
+ const evidenceDir = join(REPO, 'docs', 'audit', 'evidence', '2026-10-28-analysis-ledger')
191
+ mkdirSync(evidenceDir, { recursive: true })
192
+ const evidencePath = join(evidenceDir, 'report.json')
193
+ writeFileSync(evidencePath, JSON.stringify({
194
+ at: new Date().toISOString(),
195
+ env: { base: BASE, home: join(ROOT, 'home'), devLog: join(ROOT, 'dev.log'), instance: '④-analysis-ledger', mode: 'isolated', harness: 'mock(deterministic)' },
196
+ summary: { total, passed, failed: total - passed, verdict: passed === total ? 'PASS' : 'FAIL' },
197
+ results,
198
+ }, null, 2))
199
+ console.log(`\n结论:${passed === total ? 'PASS' : 'FAIL'}(${passed}/${total})`)
200
+ console.log(`证据:${evidencePath}`)
201
+ process.exit(passed === total ? 0 : 1)
202
+ }
@@ -0,0 +1,442 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 绑定方式 × 真实协议验收 —— line-recipe / recipe / dcw / 无 dcw 四种授权面
4
+ *
5
+ * 场景:一条真实 Modbus/OPC UA/MQTT/HTTP 产线(物理孪生模拟器),两个配方 R1/R2。
6
+ * 四个 Agent(独立频道,同一产线)分别采用不同绑定方式,用真实 `agent-tools/invoke`
7
+ * (agent 令牌 + HITL)验证设计语义,并直读设备侧信号确认"能不能真下发":
8
+ *
9
+ * A 窄绑:dcw(zone1,screw)+ recipe(R1) → 下发被收窄到绑定点位,未绑点被拒且点名
10
+ * B 配方:recipe(R1) 且无 dcw → 向下兼容:整配方全参数可下发
11
+ * C 产线:line-recipe(整线) 且无 dcw → 可新建/修改配方;下发按"无 dcw=全量"兼容
12
+ * D 裸奔:无任何绑定(仅频道绑线只读) → 读允许,写/版本操作拒绝
13
+ *
14
+ * 收口条件:每种绑定的允许/拒绝与设备侧实际变化一致;Qwen 模型自主下发亦落设备。
15
+ *
16
+ * 运行:node scripts/e2e-binding-modes-real.mjs(自起隔离模拟器 4036;平台实例 3421)
17
+ * 证据:docs/audit/evidence/2026-10-29-binding-modes/report.json
18
+ */
19
+ import { spawn } from 'node:child_process'
20
+ import { existsSync, mkdirSync, openSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
21
+ import { dirname, join, resolve } from 'node:path'
22
+ import { pathToFileURL, fileURLToPath } from 'node:url'
23
+ import { DatabaseSync } from 'node:sqlite'
24
+
25
+ const REPO = resolve(dirname(fileURLToPath(import.meta.url)), '..')
26
+ const HOME = process.env.AW_BIND_HOME ?? 'D:/tmp/aw-bind-20261029'
27
+ const PORT = Number(process.env.AW_BIND_PORT ?? 3421)
28
+ const BASE = `http://127.0.0.1:${PORT}`
29
+ const SIM_PORT = Number(process.env.AW_BIND_SIM_PORT ?? 4036)
30
+ const SIM_BASE = `http://127.0.0.1:${SIM_PORT}`
31
+ const SIM_SHADOW = process.env.AW_BIND_SIM_SHADOW ?? 'D:/tmp/aw-phys-sim-shadow-4036'
32
+ const EVIDENCE_DIR = join(REPO, 'docs', 'audit', 'evidence', '2026-10-29-binding-modes')
33
+
34
+ process.env.SIM_BASE = SIM_BASE
35
+ process.env.SIM_PORT = String(SIM_PORT)
36
+ process.env.SIM_SHADOW_DIR = SIM_SHADOW
37
+ process.env.NO_PROXY = '127.0.0.1,localhost'
38
+ process.env.no_proxy = '127.0.0.1,localhost'
39
+
40
+ const results = []
41
+ const sleep = ms => new Promise(r => setTimeout(r, ms))
42
+ const ok = (id, name, cond, detail = '') => {
43
+ results.push({ id, name, pass: Boolean(cond), detail: String(detail).slice(0, 1800) })
44
+ console.log(`${cond ? '✔' : '✖'} [${id}] ${name}${cond ? '' : ` — ${String(detail).slice(0, 750)}`}`)
45
+ return Boolean(cond)
46
+ }
47
+
48
+ async function simApi(method, path, body) {
49
+ const res = await fetch(SIM_BASE + path, {
50
+ method,
51
+ headers: body !== undefined ? { 'content-type': 'application/json' } : {},
52
+ body: body === undefined ? undefined : JSON.stringify(body),
53
+ signal: AbortSignal.timeout(20_000),
54
+ })
55
+ const json = await res.json().catch(() => null)
56
+ return { status: res.status, data: json?.data ?? json, message: json?.message ?? '' }
57
+ }
58
+ async function simNodes() {
59
+ const r = await simApi('GET', '/api/nodes')
60
+ return r.data ?? []
61
+ }
62
+ function simSignal(nodes, deviceId, signalId) {
63
+ const sig = (nodes.find(n => n.id === deviceId)?.signals ?? []).find(s => s.id === signalId)
64
+ return sig?.value == null ? null : Number(sig.value)
65
+ }
66
+
67
+ function stopInstance(home) {
68
+ const pidFile = join(home, 'server.pid')
69
+ if (!existsSync(pidFile)) return
70
+ const pid = Number(readFileSync(pidFile, 'utf8').trim())
71
+ if (!Number.isInteger(pid) || pid <= 0) return
72
+ try {
73
+ spawn('taskkill', ['/PID', String(pid), '/T', '/F'], { windowsHide: true })
74
+ }
75
+ catch { /* 已退出 */ }
76
+ }
77
+ async function health() {
78
+ try {
79
+ const r = await fetch(`${BASE}/api/health`, { signal: AbortSignal.timeout(2500) })
80
+ if (!r.ok) return null
81
+ return (await r.json())?.data ?? null
82
+ }
83
+ catch {
84
+ return null
85
+ }
86
+ }
87
+ async function startInstance() {
88
+ stopInstance(HOME)
89
+ await sleep(1500)
90
+ if (await health()) throw new Error(`端口 ${PORT} 已被非本验收实例占用`)
91
+ if (!/aw-bind/.test(HOME)) throw new Error(`拒绝清理非验收目录:${HOME}`)
92
+ rmSync(HOME, { recursive: true, force: true })
93
+ mkdirSync(HOME, { recursive: true })
94
+ const log = openSync(join(HOME, 'server.log'), 'a')
95
+ const child = spawn(process.execPath, [join(REPO, '.output', 'server', 'index.mjs')], {
96
+ cwd: REPO,
97
+ env: {
98
+ ...process.env,
99
+ AW_MODE: 'home',
100
+ AW_HOME: HOME,
101
+ PORT: String(PORT),
102
+ NUXT_SESSION_PASSWORD: 'bind-20261029-session',
103
+ AW_TRIAL_INTERVAL_MS: '0',
104
+ AW_RATE_LIMIT_OFF: '1',
105
+ NO_PROXY: '127.0.0.1,localhost',
106
+ },
107
+ detached: true,
108
+ stdio: ['ignore', log, log],
109
+ windowsHide: true,
110
+ })
111
+ child.unref()
112
+ writeFileSync(join(HOME, 'server.pid'), String(child.pid))
113
+ for (let i = 0; i < 120; i++) {
114
+ await sleep(1000)
115
+ const h = await health()
116
+ if (h?.workshop === 'ready') return h
117
+ }
118
+ throw new Error('隔离实例未在 120s 内就绪')
119
+ }
120
+
121
+ let admin = ''
122
+ async function apiOnce(method, path, body, token = admin, extraHeaders = {}, timeoutMs = 120_000) {
123
+ const res = await fetch(BASE + path, {
124
+ method,
125
+ headers: {
126
+ ...(body !== undefined ? { 'content-type': 'application/json' } : {}),
127
+ ...(token ? { authorization: `Bearer ${token}` } : {}),
128
+ ...extraHeaders,
129
+ },
130
+ body: body === undefined ? undefined : JSON.stringify(body),
131
+ signal: AbortSignal.timeout(timeoutMs),
132
+ })
133
+ let json = null
134
+ try {
135
+ json = await res.json()
136
+ }
137
+ catch { /* 非 JSON */ }
138
+ return { status: res.status, ...json }
139
+ }
140
+ async function api(method, path, body, token = admin, extraHeaders = {}, timeoutMs = 120_000) {
141
+ try {
142
+ return await apiOnce(method, path, body, token, extraHeaders, timeoutMs)
143
+ }
144
+ catch (err) {
145
+ if (err instanceof TypeError) {
146
+ await sleep(1500)
147
+ return apiOnce(method, path, body, token, extraHeaders, timeoutMs)
148
+ }
149
+ throw err
150
+ }
151
+ }
152
+ function must(resp, what) {
153
+ if (resp.status !== 200 || !resp?.data) throw new Error(`${what} 失败:${resp.status} ${JSON.stringify(resp).slice(0, 500)}`)
154
+ return resp.data
155
+ }
156
+ function agentTokenOf(agentId) {
157
+ const db = new DatabaseSync(join(HOME, 'data', 'workshop.sqlite'), { readOnly: true })
158
+ try {
159
+ return String(db.prepare('SELECT token FROM channel_agents WHERE id = ?').get(agentId)?.token ?? '')
160
+ }
161
+ finally {
162
+ db.close()
163
+ }
164
+ }
165
+ async function pendingOf(agentId) {
166
+ const r = await api('GET', `/api/workshop/agent-tools/approvals?agentId=${encodeURIComponent(agentId)}`)
167
+ return (r?.data?.approvals ?? []).filter(a => a.status === 'pending')
168
+ }
169
+ /** 以 agent 令牌调用工具;出现 HITL 卡自动批准(验收模拟人工),返回文本/isError */
170
+ async function invokeAs(agentId, token, tool, args, { approve = true, timeoutMs = 180_000 } = {}) {
171
+ const cards = []
172
+ let resp = null
173
+ let err = null
174
+ const started = Date.now()
175
+ const p = api('POST', '/api/workshop/agent-tools/invoke', { agentId, tool, args }, undefined, { 'x-aw-agent-token': token }, timeoutMs)
176
+ .then((r) => { resp = r })
177
+ .catch((e) => { err = e })
178
+ while (!resp && !err && Date.now() - started < timeoutMs - 10_000) {
179
+ if (approve) {
180
+ for (const card of await pendingOf(agentId)) {
181
+ if (cards.includes(card.id)) continue
182
+ cards.push(card.id)
183
+ console.log(` · [${tool}] HITL 卡 ${card.id} → 批准`)
184
+ await api('POST', `/api/workshop/agent-tools/approvals/${card.id}/decide`, { approved: true, comment: '验收:绑定方式测试' })
185
+ }
186
+ }
187
+ await sleep(1000)
188
+ }
189
+ await p
190
+ const text = String(resp?.data?.result?.text ?? resp?.data?.text ?? '')
191
+ const isError = Boolean(resp?.data?.result?.isError ?? resp?.data?.isError) || Boolean(err)
192
+ return { resp, text, isError, cards }
193
+ }
194
+
195
+ const evidence = { at: new Date().toISOString(), scenario: {}, assertions: results }
196
+
197
+ try {
198
+ const sim = await import(pathToFileURL(join(REPO, 'bench', 'lib', 'sim.mjs')).href)
199
+ const boot = await sim.ensureSimulator({ log: m => console.log(` ${m}`) })
200
+ ok('S0', '隔离模拟器在线(4036)', boot.started || /already-up/.test(String(boot.reason)), JSON.stringify(boot))
201
+ stopInstance('D:/tmp/aw-golive-20261028')
202
+ stopInstance('D:/tmp/aw-phys-20261028')
203
+ await sleep(2000)
204
+ await sim.applyPreset('cast-film-physics')
205
+ const nodes = await simNodes()
206
+ ok('S1', '四协议设备端点在线', nodes.filter(n => n.runtime?.running).length >= 5, nodes.map(n => `${n.id}:${n.protocol}`).join(', '))
207
+
208
+ const exportItems = async id => must(await simApi('GET', `/api/nodes/${id}/export`), `导出 ${id}`).items ?? []
209
+ const bySignal = async (id, signal) => {
210
+ const row = (await exportItems(id)).find(i => i.signal === signal)
211
+ if (!row) throw new Error(`导出缺少 ${id}/${signal}`)
212
+ return row.driverConfig
213
+ }
214
+ const cfgZone = await bySignal('dev-extruder-mbtcp', '加热区1SP')
215
+ const cfgScrew = await bySignal('dev-extruder-opcua', 'ScrewSpeedSP')
216
+ const cfgLine = await bySignal('dev-gauge-mqtt', 'lineSpeedSP')
217
+ const cfgGap = await bySignal('dev-inspect-http', 'dieGapSP')
218
+ const cfgTemp = await bySignal('dev-extruder-mbtcp', '熔体温度')
219
+
220
+ const h = await startInstance()
221
+ ok('P0', '生产构建隔离实例就绪', h?.workshop === 'ready', `port=${PORT} version=${h?.version}`)
222
+ admin = (await api('POST', '/api/users/register', { name: '绑定矩阵管理员', email: `bind-${Date.now()}@awshop.local`, password: 'Bind#2026' })).data?.token
223
+ ok('P0b', 'admin 注册', Boolean(admin))
224
+
225
+ const line = must(await api('POST', '/api/workshop/dcw/lines', { name: '绑定矩阵线', description: '四种绑定方式 × 真实协议' }), '建线').line?.id
226
+ const daq = must(await api('POST', '/api/workshop/daq', {
227
+ templateRef: 'daq-temp-tc', name: '熔体温度', driver: 'modbus-tcp', driverConfig: cfgTemp,
228
+ lineId: line, intervalMs: 1000, publishIntervalMs: 0, min: 0, max: 400, decimals: 2,
229
+ }), '建 DAQ').node?.id
230
+ const mk = async (name, driver, driverConfig, unit, min, max, decimals, stepLimit) =>
231
+ must(await api('POST', '/api/workshop/dcw', {
232
+ templateRef: 'temp-sp', name, driver, driverConfig, lineId: line, unit, min, max, decimals,
233
+ stepLimit, writeLockSeconds: 0, readIntervalMs: 2000,
234
+ }), `建 ${name}`).node?.id
235
+ const zone = await mk('加热区1设定', 'modbus-tcp', cfgZone, 'C', 120, 260, 2, 5)
236
+ const screw = await mk('螺杆转速设定', 'opcua', cfgScrew, 'rpm', 50, 200, 0, 10)
237
+ const speed = await mk('线速度设定', 'mqtt', cfgLine, 'm/min', 20, 120, 1, 5)
238
+ const gap = await mk('模口间隙设定', 'http', { ...cfgGap, allowPrivateHost: 'true' }, 'mm', 0.5, 2, 3, 0.2)
239
+ const dw = [zone, screw, speed, gap]
240
+ ok('P1', '一 DAQ + 四协议 DCW 接入', Boolean(line && daq) && dw.every(Boolean), JSON.stringify({ line, daq, dw }))
241
+
242
+ const params = (await api('GET', `/api/workshop/dcw/params?lineId=${line}`)).data?.params ?? []
243
+ const limits = { zone1_sp: { min: 120, max: 260 }, screw_sp: { min: 50, max: 200 }, line_speed_sp: { min: 20, max: 120 }, die_gap_sp: { min: 0.5, max: 2 } }
244
+ const keys = [['zone1_sp', zone], ['screw_sp', screw], ['line_speed_sp', speed], ['die_gap_sp', gap]]
245
+ for (const [key, nodeId] of keys) {
246
+ const row = params.find(p => p.nodeId === nodeId)
247
+ if (row) await api('PATCH', `/api/workshop/dcw/params/${row.id}`, { key, desc: key, ...limits[key] })
248
+ else await api('POST', '/api/workshop/dcw/params', { nodeId, key, desc: key, ...limits[key] })
249
+ }
250
+ const product = must(await api('POST', '/api/workshop/dcw/products', { name: '绑定矩阵产品', lineId: line, paramLimits: limits }), '建产品').product
251
+ const R1 = must(await api('POST', '/api/workshop/dcw/recipes', {
252
+ name: '绑定矩阵配方R1', productId: product.id, opIntervalMs: 0,
253
+ params: [
254
+ { nodeId: zone, value: 195, min: 120, max: 260, stepLimit: 5 },
255
+ { nodeId: screw, value: 160, min: 50, max: 200, stepLimit: 10 },
256
+ { nodeId: speed, value: 90, min: 20, max: 120, stepLimit: 5 },
257
+ { nodeId: gap, value: 1.1, min: 0.5, max: 2, stepLimit: 0.2 },
258
+ ],
259
+ daqWindows: [{ nodeId: daq, min: 0, max: 400 }],
260
+ }), '建 R1').recipe
261
+ await api('POST', '/api/workshop/daq/controller', { action: 'start' })
262
+ const started = await api('POST', `/api/workshop/dcw/lines/${line}/start`, { recipeId: R1.id })
263
+ await api('PATCH', `/api/workshop/dcw/lines/${line}`, { controlMode: 'auto', confirm: true })
264
+ await sleep(10_000)
265
+ const dev0 = await simNodes()
266
+ ok('P2', '开线且 R1 基线落设备', started.status === 200
267
+ && Math.abs((simSignal(dev0, 'dev-extruder-mbtcp', 'zone1-sp') ?? NaN) - 195) < 0.02
268
+ && Math.abs((simSignal(dev0, 'dev-extruder-opcua', 'screw-sp') ?? NaN) - 160) < 0.02,
269
+ JSON.stringify({ zone: simSignal(dev0, 'dev-extruder-mbtcp', 'zone1-sp'), screw: simSignal(dev0, 'dev-extruder-opcua', 'screw-sp') }))
270
+
271
+ // ── 四个 Agent/频道(同一产线),不同绑定 ──
272
+ const tools = ['my_industrial_nodes', 'line_context', 'daq_query', 'recipe_catalog', 'recipe_trial', 'recipe_update', 'recipe_rollback', 'recipe_create', 'complete_task', 'report_progress'].map(name => ({ name, enabled: true }))
273
+ const mkChannel = async (name, harness) => {
274
+ const ch = (await api('POST', '/api/workshop/channels', {
275
+ name, lineId: line,
276
+ scenarioPrompt: '你是工艺操作员:只操作你被授权的对象;未收到任务时禁止自主下发;严格按任务执行。',
277
+ leadAgent: { name: `${name}-lead`, harness },
278
+ })).data
279
+ await api('PATCH', `/api/workshop/channels/${ch.channelId}`, { llm: { provider: 'lm-studio', model: process.env.AW_DEMO_MODEL ?? 'qwen3.5-9b-64k' } })
280
+ await api('PATCH', `/api/workshop/channels/${ch.channelId}/execution-mode`, { mode: 'manual' })
281
+ await api('PUT', `/api/workshop/channels/${ch.channelId}/tools`, { mode: 'selected', tools })
282
+ return { channelId: ch.channelId, agentId: ch.leadAgentId, token: agentTokenOf(ch.leadAgentId) }
283
+ }
284
+ const A = await mkChannel('验收-窄绑dcw', 'mock')
285
+ const B = await mkChannel('验收-仅配方', 'mock')
286
+ const C = await mkChannel('验收-产线管理权', 'mock')
287
+ const D = await mkChannel('验收-无绑定', 'mock')
288
+
289
+ const bind = async (agentId, nodeId, kind) => {
290
+ const r = await api('POST', '/api/workshop/agent-tools/bindings', { agentId, nodeId, kind, mode: 'auto' })
291
+ if (r?.data?.binding?.mode === 'manual') await api('PATCH', `/api/workshop/agent-tools/bindings/${r.data.binding.id}`, { mode: 'auto', confirm: true })
292
+ return r
293
+ }
294
+ const bA1 = await bind(A.agentId, zone, 'dcw')
295
+ const bA2 = await bind(A.agentId, screw, 'dcw')
296
+ const bAR = await bind(A.agentId, R1.id, 'recipe')
297
+ const bBR = await bind(B.agentId, R1.id, 'recipe')
298
+ const bCL = await bind(C.agentId, line, 'line-recipe')
299
+ ok('G0', '四种绑定建立(dcw×2+recipe / recipe / line-recipe / 无)',
300
+ [bA1, bA2, bAR, bBR, bCL].every(r => r.status === 200 && r?.data?.binding?.id),
301
+ JSON.stringify({ A: [bA1.status, bA2.status, bAR.status], B: bBR.status, C: bCL.status, D: 'none' }))
302
+
303
+ // A0 注入面:绑定点位 + 下发收窄声明(配方面会列出全部参数供阅读,写面才是授权面)
304
+ const aNodes = await invokeAs(A.agentId, A.token, 'my_industrial_nodes', {})
305
+ const aNodesText = aNodes.text
306
+ ok('A0', '窄绑 Agent 注入面声明「下发收窄」且含绑定点位', /加热区1设定/.test(aNodesText)
307
+ && /螺杆转速设定/.test(aNodesText) && /收窄|只能下发|已绑定数控节点/.test(aNodesText),
308
+ aNodesText.replace(/\s+/g, ' ').slice(0, 600))
309
+
310
+ // A1 窄绑:整配方四参数 → 拒绝并点名未绑点位
311
+ const devA0 = await simNodes()
312
+ const aFull = await invokeAs(A.agentId, A.token, 'recipe_trial', {
313
+ line_id: line,
314
+ params: [{ node_id: zone, value: 200 }, { node_id: screw, value: 170 }, { node_id: speed, value: 85 }, { node_id: gap, value: 1.2 }],
315
+ hypothesis: '窄绑验收:整配方应在未绑点位处被拒',
316
+ })
317
+ const devA1 = await simNodes()
318
+ const unchangedA1 = Math.abs((simSignal(devA1, 'dev-gauge-mqtt', 'linespeed-sp') ?? NaN) - 90) < 0.02
319
+ && Math.abs((simSignal(devA1, 'dev-extruder-mbtcp', 'zone1-sp') ?? NaN) - (simSignal(devA0, 'dev-extruder-mbtcp', 'zone1-sp') ?? NaN)) < 0.02
320
+ ok('A1', '窄绑整配方被拒且点名未绑点位、设备不变',
321
+ aFull.isError && /线速度设定|模口间隙设定/.test(aFull.text) && unchangedA1,
322
+ aFull.text.replace(/\s+/g, ' ').slice(0, 600))
323
+
324
+ // A2 窄绑:只下发绑定的两个点 → 成功,设备变化
325
+ const aPart = await invokeAs(A.agentId, A.token, 'recipe_trial', {
326
+ line_id: line,
327
+ params: [{ node_id: zone, value: 200 }, { node_id: screw, value: 170 }],
328
+ hypothesis: '窄绑验收:只改动被授权的两个点位',
329
+ })
330
+ await sleep(1500)
331
+ const devA2 = await simNodes()
332
+ const zoneA2 = simSignal(devA2, 'dev-extruder-mbtcp', 'zone1-sp')
333
+ const screwA2 = simSignal(devA2, 'dev-extruder-opcua', 'screw-sp')
334
+ ok('A2', '窄绑只下发绑定点位成功(设备=200/170),未绑点位不动',
335
+ !aPart.isError && Math.abs((zoneA2 ?? NaN) - 200) < 0.02 && Math.abs((screwA2 ?? NaN) - 170) < 0.02
336
+ && Math.abs((simSignal(devA2, 'dev-gauge-mqtt', 'linespeed-sp') ?? NaN) - 90) < 0.02,
337
+ `text=${aPart.text.replace(/\s+/g, ' ').slice(0, 320)} zone=${zoneA2} screw=${screwA2}`)
338
+
339
+ // A3 版本操作:recipe 绑定即可(不需要 dcw 全量)
340
+ const aUpd = await invokeAs(A.agentId, A.token, 'recipe_update', {
341
+ recipe_id: R1.id, params: [{ node_id: zone, value: 197 }], reason: '窄绑验收:recipe 绑定者可改配方版本',
342
+ })
343
+ const vAfterA = ((await api('GET', `/api/workshop/dcw/recipes/${R1.id}/versions`)).data?.versions ?? [])
344
+ ok('A3', '窄绑(recipe 绑定)可做版本修改,版本递增',
345
+ !aUpd.isError && vAfterA.length >= 2 && Number(vAfterA[vAfterA.length - 1]?.version) >= 2,
346
+ `text=${aUpd.text.replace(/\s+/g, ' ').slice(0, 260)} versions=${vAfterA.map(v => v.version).join(',')}`)
347
+
348
+ // B1 仅配方绑定、无 dcw → 全参数下发(向下兼容)
349
+ const bFull = await invokeAs(B.agentId, B.token, 'recipe_trial', {
350
+ line_id: line,
351
+ params: [{ node_id: zone, value: 200 }, { node_id: screw, value: 175 }, { node_id: speed, value: 85 }, { node_id: gap, value: 1.2 }],
352
+ hypothesis: '仅配方绑定无 dcw:按向下兼容应可全参数下发',
353
+ })
354
+ await sleep(1500)
355
+ const devB = await simNodes()
356
+ const bAll = Math.abs((simSignal(devB, 'dev-extruder-mbtcp', 'zone1-sp') ?? NaN) - 200) < 0.02
357
+ && Math.abs((simSignal(devB, 'dev-extruder-opcua', 'screw-sp') ?? NaN) - 175) < 0.02
358
+ && Math.abs((simSignal(devB, 'dev-gauge-mqtt', 'linespeed-sp') ?? NaN) - 85) < 0.02
359
+ && Math.abs((simSignal(devB, 'dev-inspect-http', 'diegap-sp') ?? NaN) - 1.2) < 0.011
360
+ ok('B1', '仅配方绑定 + 无 dcw → 四参数全量下发成功(向下兼容)', !bFull.isError && bAll,
361
+ `text=${bFull.text.replace(/\s+/g, ' ').slice(0, 300)} device=${JSON.stringify([simSignal(devB, 'dev-extruder-mbtcp', 'zone1-sp'), simSignal(devB, 'dev-extruder-opcua', 'screw-sp'), simSignal(devB, 'dev-gauge-mqtt', 'linespeed-sp'), simSignal(devB, 'dev-inspect-http', 'diegap-sp')])}`)
362
+
363
+ // B2 版本回退
364
+ const bRb = await invokeAs(B.agentId, B.token, 'recipe_rollback', {
365
+ recipe_id: R1.id, version: 1, reason: '仅配方绑定验收:回退定义到 v1(不触产线)',
366
+ })
367
+ const vAfterB = ((await api('GET', `/api/workshop/dcw/recipes/${R1.id}/versions`)).data?.versions ?? [])
368
+ const lastB = vAfterB[vAfterB.length - 1]
369
+ ok('B2', '仅配方绑定可回退版本(v3=v1 定义)',
370
+ !bRb.isError && Number(lastB?.version) >= 3
371
+ && (lastB?.params ?? []).some(p => p.nodeId === zone && Number(p.value) === 195),
372
+ `text=${bRb.text.replace(/\s+/g, ' ').slice(0, 260)} versions=${vAfterB.map(v => `${v.version}:${(v.params ?? []).map(p => p.value).join('/')}`).join(',')}`)
373
+
374
+ // C1 产线管理权:新建配方
375
+ const recipesBefore = new Set(((await api('GET', '/api/workshop/dcw/recipes')).data?.recipes ?? []).map(r => r.id))
376
+ const cCreate = await invokeAs(C.agentId, C.token, 'recipe_create', {
377
+ line_id: line, name: '产线管理权新建配方', product_id: product.id,
378
+ params: [{ node_id: zone, value: 196 }, { node_id: screw, value: 165 }],
379
+ reason: '产线管理权验收:整线范围内新建配方',
380
+ })
381
+ let R2 = ''
382
+ for (let i = 0; i < 10 && !R2; i++) {
383
+ const list = ((await api('GET', '/api/workshop/dcw/recipes')).data?.recipes ?? []).filter(r => r.lineId === line && !recipesBefore.has(r.id))
384
+ R2 = list[0]?.id ?? ''
385
+ if (!R2) await sleep(1000)
386
+ }
387
+ ok('C1', '产线管理权可新建配方(无需单配方绑定)', !cCreate.isError && Boolean(R2),
388
+ `text=${cCreate.text.replace(/\s+/g, ' ').slice(0, 300)} new=${R2 || '(未找到)'}`)
389
+
390
+ // C2 产线管理权、无 dcw → 全参数下发(兼容)
391
+ const cTrial = await invokeAs(C.agentId, C.token, 'recipe_trial', {
392
+ line_id: line,
393
+ params: [{ node_id: zone, value: 199 }, { node_id: screw, value: 172 }, { node_id: speed, value: 87 }, { node_id: gap, value: 1.15 }],
394
+ hypothesis: '产线管理权 + 无 dcw:全参数下发兼容',
395
+ })
396
+ await sleep(1500)
397
+ const devC = await simNodes()
398
+ ok('C2', '产线管理权(无 dcw)全参数下发成功',
399
+ !cTrial.isError
400
+ && Math.abs((simSignal(devC, 'dev-extruder-mbtcp', 'zone1-sp') ?? NaN) - 199) < 0.02
401
+ && Math.abs((simSignal(devC, 'dev-gauge-mqtt', 'linespeed-sp') ?? NaN) - 87) < 0.02,
402
+ `text=${cTrial.text.replace(/\s+/g, ' ').slice(0, 260)} device=${JSON.stringify([simSignal(devC, 'dev-extruder-mbtcp', 'zone1-sp'), simSignal(devC, 'dev-gauge-mqtt', 'linespeed-sp')])}`)
403
+
404
+ // C3 产线管理权:修改活动配方(版本操作)
405
+ const cUpd = await invokeAs(C.agentId, C.token, 'recipe_update', {
406
+ recipe_id: R1.id, params: [{ node_id: screw, value: 174 }], reason: '产线管理权验收:修改活动配方版本',
407
+ })
408
+ const vAfterC = ((await api('GET', `/api/workshop/dcw/recipes/${R1.id}/versions`)).data?.versions ?? [])
409
+ ok('C3', '产线管理权可修改任意配方版本',
410
+ !cUpd.isError && vAfterC.length >= 4,
411
+ `text=${cUpd.text.replace(/\s+/g, ' ').slice(0, 260)} versions=${vAfterC.map(v => v.version).join(',')}`)
412
+
413
+ // D1/D2 无绑定:写与版本均拒绝;D3 读允许(频道绑线只读扩权)
414
+ const dTrial = await invokeAs(D.agentId, D.token, 'recipe_trial', { line_id: line, params: [{ node_id: zone, value: 201 }], hypothesis: '无绑定验收:应拒绝' })
415
+ const dUpd = await invokeAs(D.agentId, D.token, 'recipe_update', { recipe_id: R1.id, params: [{ node_id: zone, value: 201 }], reason: '无绑定验收:应拒绝' })
416
+ ok('D1', '无任何绑定:下发被拒', dTrial.isError && /绑定|授权|无权/.test(dTrial.text), dTrial.text.replace(/\s+/g, ' ').slice(0, 420))
417
+ ok('D2', '无任何绑定:版本修改被拒', dUpd.isError && /绑定|授权|无权|配方级/.test(dUpd.text), dUpd.text.replace(/\s+/g, ' ').slice(0, 420))
418
+ const dRead = await invokeAs(D.agentId, D.token, 'daq_query', { line_id: line, last_minutes: 3, bucket_ms: 1000 })
419
+ ok('D3', '无绑定但频道绑线:只读抓数允许', !dRead.isError && /样本\s*\d+\s*点/.test(dRead.text), dRead.text.replace(/\s+/g, ' ').slice(0, 320))
420
+
421
+ // 模型决策环节不在本套件门禁内:绑定语义是授权契约,用 Agent 令牌 + HITL 确定性验证;
422
+ // Qwen 实时抓数已在 2026-10-29-mes-mirror Q1 覆盖,模型自主下发在 2026-10-28-physical-effect 覆盖。
423
+ // 本地 9B 在长任务回合会偶发长时间不产出(实测),把它放进门禁会让授权验收变成模型可用性抽奖。
424
+
425
+ evidence.scenario = { line, daq, dw, R1: R1.id, R2, agents: { A: A.agentId, B: B.agentId, C: C.agentId, D: D.agentId }, channelB: B.channelId }
426
+ evidence.texts = { aNodes: aNodesText.slice(0, 1200), aFull: aFull.text.slice(0, 900), aPart: aPart.text.slice(0, 600), bFull: bFull.text.slice(0, 600), dTrial: dTrial.text.slice(0, 600), dUpd: dUpd.text.slice(0, 600), dRead: dRead.text.slice(0, 600) }
427
+ evidence.qwen = { skipped: true, reason: 'bundle gate 只验证授权契约;模型路径见 mes-mirror Q1 / physical-effect', coveredBy: ['2026-10-29-mes-mirror#Q1', '2026-10-28-physical-effect'] }
428
+ }
429
+ catch (err) {
430
+ ok('FATAL', '验收未捕获异常', false, err instanceof Error ? `${err.message}\n${err.stack ?? ''}` : String(err))
431
+ }
432
+ finally {
433
+ mkdirSync(EVIDENCE_DIR, { recursive: true })
434
+ const passed = results.filter(r => r.pass).length
435
+ const total = results.length
436
+ evidence.summary = { total, passed, failed: total - passed, verdict: passed === total ? 'PASS' : 'FAIL' }
437
+ writeFileSync(join(EVIDENCE_DIR, 'report.json'), JSON.stringify(evidence, null, 2))
438
+ console.log(`\n结论:${passed === total ? 'PASS' : 'FAIL'}(${passed}/${total})`)
439
+ console.log(`证据:${join(EVIDENCE_DIR, 'report.json')}`)
440
+ console.log(`现场:平台 ${BASE}(AW_HOME=${HOME}) / 模拟器 ${SIM_BASE}`)
441
+ process.exit(passed === total ? 0 : 1)
442
+ }