agentworkshop 0.8.7 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2696) hide show
  1. package/.AgentWorkShop/prompts/host-tools.en.json +302 -302
  2. package/.AgentWorkShop/prompts/host-tools.json +4177 -4080
  3. package/.AgentWorkShop/prompts/lead-supervise.md +6 -0
  4. package/.AgentWorkShop/prompts/mode-goal.md +3 -3
  5. package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  6. package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
  7. package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
  8. package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  9. package/.output/.AgentWorkShop/aml-python/train-example.py +92 -92
  10. package/.output/.AgentWorkShop/prompts/host-tools.en.json +302 -302
  11. package/.output/.AgentWorkShop/prompts/host-tools.json +4177 -4080
  12. package/.output/.AgentWorkShop/prompts/lead-supervise.md +6 -0
  13. package/.output/.AgentWorkShop/prompts/mode-goal.md +3 -3
  14. package/.output/.AgentWorkShop/schema.json +173 -152
  15. package/.output/nitro.json +1 -1
  16. package/.output/public/_nuxt/11Nifltq2.js +16 -0
  17. package/.output/public/_nuxt/26OL4Ao82.js +1 -0
  18. package/.output/public/_nuxt/B37d6f-P2.js +1 -0
  19. package/.output/public/_nuxt/B8vwpJxO.js +1 -0
  20. package/.output/public/_nuxt/BEbg8OxK2.js +1 -0
  21. package/.output/public/_nuxt/BFUO7wT0.js +1 -0
  22. package/.output/public/_nuxt/BPUQZ9Lq2.js +8 -0
  23. package/.output/public/_nuxt/BVg2R2VB2.js +1 -0
  24. package/.output/public/_nuxt/BaYDgyaR.js +3 -0
  25. package/.output/public/_nuxt/BclHgAY62.js +1 -0
  26. package/.output/public/_nuxt/BfvuWqSa.js +1 -0
  27. package/.output/public/_nuxt/BkEokGX5.js +1 -0
  28. package/.output/public/_nuxt/BkZomIrQ.js +1 -0
  29. package/.output/public/_nuxt/BtZKe9ZV2.js +1 -0
  30. package/.output/public/_nuxt/BwOko01T.js +47 -0
  31. package/.output/public/_nuxt/BwQJEuBn.js +21 -0
  32. package/.output/public/_nuxt/C-wrWG5m.js +1 -0
  33. package/.output/public/_nuxt/C0I4h6do.js +1 -0
  34. package/.output/public/_nuxt/C0wjQa6_.js +1 -0
  35. package/.output/public/_nuxt/C5x3IQz42.js +1 -0
  36. package/.output/public/_nuxt/C7BcCB7C2.js +1 -0
  37. package/.output/public/_nuxt/CBkXv24C2.js +1 -0
  38. package/.output/public/_nuxt/CBpkE3Aa.js +1 -0
  39. package/.output/public/_nuxt/CDO7Zey1.js +20 -0
  40. package/.output/public/_nuxt/CEOSV8kw.js +1 -0
  41. package/.output/public/_nuxt/CHpYSwnV.js +1 -0
  42. package/.output/public/_nuxt/CZgxZE_w2.js +1 -0
  43. package/.output/public/_nuxt/CfE35xQa2.js +1 -0
  44. package/.output/public/_nuxt/Cgym6fLd2.js +1 -0
  45. package/.output/public/_nuxt/CjdxNYpU2.js +1 -0
  46. package/.output/public/_nuxt/CjhzuymI.js +2 -0
  47. package/.output/public/_nuxt/CmuGMxDP.js +1 -0
  48. package/.output/public/_nuxt/CoAJnzi9.js +1 -0
  49. package/.output/public/_nuxt/CuHnwZbm.js +1 -0
  50. package/.output/public/_nuxt/CwHhmA3N.js +1 -0
  51. package/.output/public/_nuxt/D1Ljnzu-.js +1 -0
  52. package/.output/public/_nuxt/D8AvmPUH.js +1 -0
  53. package/.output/public/_nuxt/D9saExk92.js +1 -0
  54. package/.output/public/_nuxt/DDLi49qE.js +1 -0
  55. package/.output/public/_nuxt/DNlwacP72.js +1 -0
  56. package/.output/public/_nuxt/DPIImHuY2.js +1 -0
  57. package/.output/public/_nuxt/DW6X-3XT.js +1 -0
  58. package/.output/public/_nuxt/DZc-zU-H2.js +1 -0
  59. package/.output/public/_nuxt/DZqVVvR0.js +1 -0
  60. package/.output/public/_nuxt/Df35i2Tg2.js +1 -0
  61. package/.output/public/_nuxt/DuUc4bbY2.js +1 -0
  62. package/.output/public/_nuxt/DvGgUSuN2.js +2 -0
  63. package/.output/public/_nuxt/DvfiRGS-.js +1 -0
  64. package/.output/public/_nuxt/DzPypczG.js +1 -0
  65. package/.output/public/_nuxt/FQK98hkN2.js +1 -0
  66. package/.output/public/_nuxt/Lq_0yoit2.js +1 -0
  67. package/.output/public/_nuxt/MJD65-MH2.js +1 -0
  68. package/.output/public/_nuxt/OmpTerminalPanel.ComMDrA8.css +1 -0
  69. package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +1 -0
  70. package/.output/public/_nuxt/TownView.B_8ctigh.css +1 -0
  71. package/.output/public/_nuxt/WZrTmJqL.js +1 -0
  72. package/.output/public/_nuxt/_id_.BQRWK7J2.css +1 -0
  73. package/.output/public/_nuxt/_wsId_.CQMH8t8j.css +1 -0
  74. package/.output/public/_nuxt/agents.D-JPovTZ.css +1 -0
  75. package/.output/public/_nuxt/aml.PalMp-5n.css +1 -0
  76. package/.output/public/_nuxt/builds/latest.json +1 -1
  77. package/.output/public/_nuxt/builds/meta/f507c33b-4ecc-4e32-af88-2e3736b443e9.json +1 -0
  78. package/.output/public/_nuxt/byZYInPk2.js +1 -0
  79. package/.output/public/_nuxt/dHwWyr6b.js +1 -0
  80. package/.output/public/_nuxt/default.BEXGWZFQ.css +1 -0
  81. package/.output/public/_nuxt/gfKPQ5o72.js +2 -0
  82. package/.output/public/_nuxt/logs.DlG85QRw.css +1 -0
  83. package/.output/public/_nuxt/monitor.D3yEqqrv.css +1 -0
  84. package/.output/public/_nuxt/ontology.CkuUThtY.css +1 -0
  85. package/.output/public/_nuxt/operations.-l6u44Ar.css +1 -0
  86. package/.output/public/_nuxt/pages.Cdpm_B-G.css +1 -0
  87. package/.output/public/_nuxt/permissions.DxuOOIqQ.css +1 -0
  88. package/.output/public/_nuxt/rDvMijKA.js +9 -0
  89. package/.output/public/_nuxt/schedules.BXNJ9q_I.css +1 -0
  90. package/.output/public/_nuxt/teams.CLQaXno5.css +1 -0
  91. package/.output/public/_nuxt/tokens.BDSUWF-L.css +1 -0
  92. package/.output/public/_nuxt/tools.BwXFAb-X.css +1 -0
  93. package/.output/public/_nuxt/workshop.BBiFhXuM.css +1 -0
  94. package/.output/public/favicon.svg +14 -14
  95. package/.output/public/robots.txt +3 -3
  96. package/.output/server/chunks/_/LeftOutlined.mjs.map +1 -1
  97. package/.output/server/chunks/_/RightOutlined.mjs.map +1 -1
  98. package/.output/server/chunks/_/SearchOutlined.mjs +13 -13
  99. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  100. package/.output/server/chunks/_/access.mjs +5 -3
  101. package/.output/server/chunks/_/access.mjs.map +1 -1
  102. package/.output/server/chunks/_/catalog-view.mjs +1 -1
  103. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  104. package/.output/server/chunks/_/data-export.mjs +12 -12
  105. package/.output/server/chunks/_/data-export.mjs.map +1 -1
  106. package/.output/server/chunks/_/data-query.mjs +3 -3
  107. package/.output/server/chunks/_/eda-run.repo.mjs +6 -4
  108. package/.output/server/chunks/_/eda-run.repo.mjs.map +1 -1
  109. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  110. package/.output/server/chunks/_/features.mjs +9 -7
  111. package/.output/server/chunks/_/features.mjs.map +1 -1
  112. package/.output/server/chunks/_/golden.mjs +3 -3
  113. package/.output/server/chunks/_/host-bindings.mjs +5 -3
  114. package/.output/server/chunks/_/host-bindings.mjs.map +1 -1
  115. package/.output/server/chunks/_/index.mjs +5 -3
  116. package/.output/server/chunks/_/index.mjs.map +1 -1
  117. package/.output/server/chunks/_/line-scope.mjs +1 -1
  118. package/.output/server/chunks/_/mes-console.mjs +1 -1
  119. package/.output/server/chunks/_/mes-secrets.repo.mjs +5 -3
  120. package/.output/server/chunks/_/mes-secrets.repo.mjs.map +1 -1
  121. package/.output/server/chunks/_/nitro.mjs +8022 -4350
  122. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  123. package/.output/server/chunks/_/ocap.mjs +1 -1
  124. package/.output/server/chunks/_/rest-auth.mjs +1 -1
  125. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  126. package/.output/server/chunks/_/spc.mjs +5 -3
  127. package/.output/server/chunks/_/spc.mjs.map +1 -1
  128. package/.output/server/chunks/_/user.schema.mjs +1 -1
  129. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs +716 -0
  130. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs.map +1 -0
  131. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs +72 -0
  132. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs.map +1 -0
  133. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs +942 -0
  134. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs.map +1 -0
  135. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs +141 -0
  136. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs.map +1 -0
  137. package/.output/server/chunks/build/TownView-BqdMFqei.mjs +6496 -0
  138. package/.output/server/chunks/build/TownView-BqdMFqei.mjs.map +1 -0
  139. package/.output/server/chunks/build/_id_-CsCtnbwe.mjs +394 -0
  140. package/.output/server/chunks/build/_id_-CsCtnbwe.mjs.map +1 -0
  141. package/.output/server/chunks/build/_id_-P1W47Gqq.mjs +2047 -0
  142. package/.output/server/chunks/build/_id_-P1W47Gqq.mjs.map +1 -0
  143. package/.output/server/chunks/build/_wsId_-DpOErFj6.mjs +14591 -0
  144. package/.output/server/chunks/build/_wsId_-DpOErFj6.mjs.map +1 -0
  145. package/.output/server/chunks/build/agents-D7CdEUTv.mjs +1080 -0
  146. package/.output/server/chunks/build/agents-D7CdEUTv.mjs.map +1 -0
  147. package/.output/server/chunks/build/alert-D0ivtTGy.mjs +263 -0
  148. package/.output/server/chunks/build/alert-D0ivtTGy.mjs.map +1 -0
  149. package/.output/server/chunks/build/aml-DRAFRcGU.mjs +816 -0
  150. package/.output/server/chunks/build/aml-DRAFRcGU.mjs.map +1 -0
  151. package/.output/server/chunks/build/analysis-J9axLuRt.mjs +535 -0
  152. package/.output/server/chunks/build/analysis-J9axLuRt.mjs.map +1 -0
  153. package/.output/server/chunks/build/api-B4Om0mEc.mjs +55 -0
  154. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
  155. package/.output/server/chunks/build/api-BEW_ebY_.mjs +66 -0
  156. package/.output/server/chunks/build/api-BEW_ebY_.mjs.map +1 -0
  157. package/.output/server/chunks/build/api-BsAgXWxi.mjs +74 -0
  158. package/.output/server/chunks/build/api-BsAgXWxi.mjs.map +1 -0
  159. package/.output/server/chunks/build/api-error-BwAQLw44.mjs +47 -0
  160. package/.output/server/chunks/build/api-error-BwAQLw44.mjs.map +1 -0
  161. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs +81 -0
  162. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
  163. package/.output/server/chunks/build/board-CJUc032b.mjs +191 -0
  164. package/.output/server/chunks/build/board-CJUc032b.mjs.map +1 -0
  165. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
  166. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs +953 -0
  167. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs.map +1 -0
  168. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs +944 -0
  169. package/.output/server/chunks/build/channel-templates-ggsBacZF.mjs.map +1 -0
  170. package/.output/server/chunks/build/chart-pipeline-BpoWYMK_.mjs.map +1 -0
  171. package/.output/server/chunks/build/chart-trend-BWeZh5Lv.mjs.map +1 -0
  172. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs +439 -0
  173. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs.map +1 -0
  174. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +43 -0
  175. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +1 -0
  176. package/.output/server/chunks/build/constants-HPHJvjne.mjs +144 -0
  177. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -0
  178. package/.output/server/chunks/build/core-CgTOPS4t.mjs +294 -0
  179. package/.output/server/chunks/build/core-CgTOPS4t.mjs.map +1 -0
  180. package/.output/server/chunks/build/daq-B_dRMDw4.mjs +1268 -0
  181. package/.output/server/chunks/build/daq-B_dRMDw4.mjs.map +1 -0
  182. package/.output/server/chunks/build/data-D8uX1dnm.mjs +483 -0
  183. package/.output/server/chunks/build/data-D8uX1dnm.mjs.map +1 -0
  184. package/.output/server/chunks/build/dcw-D_HD_H_2.mjs +507 -0
  185. package/.output/server/chunks/build/dcw-D_HD_H_2.mjs.map +1 -0
  186. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -0
  187. package/.output/server/chunks/build/default-CNWS6NUw.mjs +2355 -0
  188. package/.output/server/chunks/build/default-CNWS6NUw.mjs.map +1 -0
  189. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs +406 -0
  190. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs.map +1 -0
  191. package/.output/server/chunks/build/drawer-Caji0PLs.mjs +834 -0
  192. package/.output/server/chunks/build/drawer-Caji0PLs.mjs.map +1 -0
  193. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs +14 -0
  194. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs.map +1 -0
  195. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs +540 -0
  196. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs.map +1 -0
  197. package/.output/server/chunks/build/es-Bxu10NJ2.mjs +45 -0
  198. package/.output/server/chunks/build/es-Bxu10NJ2.mjs.map +1 -0
  199. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs +2448 -0
  200. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs.map +1 -0
  201. package/.output/server/chunks/build/form-D_UpWPN4.mjs +4712 -0
  202. package/.output/server/chunks/build/form-D_UpWPN4.mjs.map +1 -0
  203. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs +553 -0
  204. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs.map +1 -0
  205. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs +132 -0
  206. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs.map +1 -0
  207. package/.output/server/chunks/build/input-GtPuSEgt.mjs +2181 -0
  208. package/.output/server/chunks/build/input-GtPuSEgt.mjs.map +1 -0
  209. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs +1120 -0
  210. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs.map +1 -0
  211. package/.output/server/chunks/build/interval-DvHBIIZh.mjs +9 -0
  212. package/.output/server/chunks/build/interval-DvHBIIZh.mjs.map +1 -0
  213. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs +7 -0
  214. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs.map +1 -0
  215. package/.output/server/chunks/build/logs-BnYSMRXM.mjs +494 -0
  216. package/.output/server/chunks/build/logs-BnYSMRXM.mjs.map +1 -0
  217. package/.output/server/chunks/build/menu-BXt-X0dt.mjs +1952 -0
  218. package/.output/server/chunks/build/menu-BXt-X0dt.mjs.map +1 -0
  219. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs +2255 -0
  220. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs.map +1 -0
  221. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs.map +1 -0
  222. package/.output/server/chunks/build/ontology-ohICfVVb.mjs +1408 -0
  223. package/.output/server/chunks/build/ontology-ohICfVVb.mjs.map +1 -0
  224. package/.output/server/chunks/build/operations-4zOVhW7o.mjs +313 -0
  225. package/.output/server/chunks/build/operations-4zOVhW7o.mjs.map +1 -0
  226. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs +204 -0
  227. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs.map +1 -0
  228. package/.output/server/chunks/build/pages-DEv4ProW.mjs +544 -0
  229. package/.output/server/chunks/build/pages-DEv4ProW.mjs.map +1 -0
  230. package/.output/server/chunks/build/pagination-DTAconUo.mjs +1346 -0
  231. package/.output/server/chunks/build/pagination-DTAconUo.mjs.map +1 -0
  232. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs +639 -0
  233. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs.map +1 -0
  234. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs +214 -0
  235. package/.output/server/chunks/build/pipeline-CkavMBhk.mjs.map +1 -0
  236. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs +274 -0
  237. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs.map +1 -0
  238. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs +340 -0
  239. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs.map +1 -0
  240. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs +78 -0
  241. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs.map +1 -0
  242. package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs +7174 -0
  243. package/.output/server/chunks/build/schedules-Hz2DJUE2.mjs.map +1 -0
  244. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs +341 -0
  245. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs.map +1 -0
  246. package/.output/server/chunks/build/select-B3Dsb9yq.mjs +3923 -0
  247. package/.output/server/chunks/build/select-B3Dsb9yq.mjs.map +1 -0
  248. package/.output/server/chunks/build/settings-DXLJPq7d.mjs +1016 -0
  249. package/.output/server/chunks/build/settings-DXLJPq7d.mjs.map +1 -0
  250. package/.output/server/chunks/build/space-Dwu2Skt8.mjs +110 -0
  251. package/.output/server/chunks/build/space-Dwu2Skt8.mjs.map +1 -0
  252. package/.output/server/chunks/build/spin-C2cuvGth.mjs +357 -0
  253. package/.output/server/chunks/build/spin-C2cuvGth.mjs.map +1 -0
  254. package/.output/server/chunks/build/studio-hSqH9TYS.mjs +338 -0
  255. package/.output/server/chunks/build/studio-hSqH9TYS.mjs.map +1 -0
  256. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs +377 -0
  257. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs.map +1 -0
  258. package/.output/server/chunks/build/table-CmVD-cA9.mjs +7546 -0
  259. package/.output/server/chunks/build/table-CmVD-cA9.mjs.map +1 -0
  260. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs +1924 -0
  261. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs.map +1 -0
  262. package/.output/server/chunks/build/tag-y0sn-xv9.mjs +1156 -0
  263. package/.output/server/chunks/build/tag-y0sn-xv9.mjs.map +1 -0
  264. package/.output/server/chunks/build/teams-BbwYJyzv.mjs +1205 -0
  265. package/.output/server/chunks/build/teams-BbwYJyzv.mjs.map +1 -0
  266. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs +1064 -0
  267. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs.map +1 -0
  268. package/.output/server/chunks/build/tools-CnYi9cou.mjs +489 -0
  269. package/.output/server/chunks/build/tools-CnYi9cou.mjs.map +1 -0
  270. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs +920 -0
  271. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs.map +1 -0
  272. package/.output/server/chunks/build/town-BV-hbwb5.mjs +77 -0
  273. package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -0
  274. package/.output/server/chunks/build/town-CcoQKjMj.mjs +135 -0
  275. package/.output/server/chunks/build/town-CcoQKjMj.mjs.map +1 -0
  276. package/.output/server/chunks/build/types-D6J7slEa.mjs +5565 -0
  277. package/.output/server/chunks/build/types-D6J7slEa.mjs.map +1 -0
  278. package/.output/server/chunks/build/types-DWqIeMRP.mjs +78 -0
  279. package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -0
  280. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs +126 -0
  281. package/.output/server/chunks/build/useAgentHarnessOptions-Dq0l0Z6d.mjs.map +1 -0
  282. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs +79 -0
  283. package/.output/server/chunks/build/useAgentTemplateActions-BFOHb5-L.mjs.map +1 -0
  284. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +69 -0
  285. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -0
  286. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs +119 -0
  287. package/.output/server/chunks/build/useAgentTemplateForm-CuJPOPcK.mjs.map +1 -0
  288. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs +135 -0
  289. package/.output/server/chunks/build/useAgentTemplatesCatalog-B2bIhZLA.mjs.map +1 -0
  290. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs +94 -0
  291. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
  292. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs +88 -0
  293. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs.map +1 -0
  294. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs +196 -0
  295. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs.map +1 -0
  296. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs +91 -0
  297. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
  298. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +84 -0
  299. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -0
  300. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs +269 -0
  301. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs.map +1 -0
  302. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs +95 -0
  303. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs.map +1 -0
  304. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs +88 -0
  305. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs.map +1 -0
  306. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs +132 -0
  307. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs.map +1 -0
  308. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs +131 -0
  309. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs.map +1 -0
  310. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +144 -0
  311. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs.map +1 -0
  312. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs +72 -0
  313. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs.map +1 -0
  314. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs +81 -0
  315. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs.map +1 -0
  316. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs +178 -0
  317. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs.map +1 -0
  318. package/.output/server/chunks/build/useDaqDetailNode-BGMRUIXN.mjs +101 -0
  319. package/.output/server/chunks/build/useDaqDetailNode-BGMRUIXN.mjs.map +1 -0
  320. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +161 -0
  321. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs.map +1 -0
  322. package/.output/server/chunks/build/useDaqFilters-zAAVlzJQ.mjs +224 -0
  323. package/.output/server/chunks/build/useDaqFilters-zAAVlzJQ.mjs.map +1 -0
  324. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +92 -0
  325. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -0
  326. package/.output/server/chunks/build/useDaqOptimizations-BE_9Z2s_.mjs +138 -0
  327. package/.output/server/chunks/build/useDaqOptimizations-BE_9Z2s_.mjs.map +1 -0
  328. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +395 -0
  329. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs.map +1 -0
  330. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +189 -0
  331. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs.map +1 -0
  332. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +356 -0
  333. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -0
  334. package/.output/server/chunks/build/useDashboardData-Cw8lrPo5.mjs +155 -0
  335. package/.output/server/chunks/build/useDashboardData-Cw8lrPo5.mjs.map +1 -0
  336. package/.output/server/chunks/build/useDcwAddNode-KnocMk1m.mjs +221 -0
  337. package/.output/server/chunks/build/useDcwAddNode-KnocMk1m.mjs.map +1 -0
  338. package/.output/server/chunks/build/useDcwCards-C53IiOcg.mjs +69 -0
  339. package/.output/server/chunks/build/useDcwCards-C53IiOcg.mjs.map +1 -0
  340. package/.output/server/chunks/build/useDcwDetailScope-D6qXrfZu.mjs +186 -0
  341. package/.output/server/chunks/build/useDcwDetailScope-D6qXrfZu.mjs.map +1 -0
  342. package/.output/server/chunks/build/useDcwDetailTemplates-DPOXu1o_.mjs +150 -0
  343. package/.output/server/chunks/build/useDcwDetailTemplates-DPOXu1o_.mjs.map +1 -0
  344. package/.output/server/chunks/build/useDcwFilter-DNQ6Ivwd.mjs +73 -0
  345. package/.output/server/chunks/build/useDcwFilter-DNQ6Ivwd.mjs.map +1 -0
  346. package/.output/server/chunks/build/useDcwLedger-BhbUBCbi.mjs +81 -0
  347. package/.output/server/chunks/build/useDcwLedger-BhbUBCbi.mjs.map +1 -0
  348. package/.output/server/chunks/build/useDcwLineMutations-KA7VnggO.mjs +139 -0
  349. package/.output/server/chunks/build/useDcwLineMutations-KA7VnggO.mjs.map +1 -0
  350. package/.output/server/chunks/build/useDcwLineRun-3zx_UCxi.mjs +106 -0
  351. package/.output/server/chunks/build/useDcwLineRun-3zx_UCxi.mjs.map +1 -0
  352. package/.output/server/chunks/build/useDcwParamApprovals-DzyY6Tmi.mjs +123 -0
  353. package/.output/server/chunks/build/useDcwParamApprovals-DzyY6Tmi.mjs.map +1 -0
  354. package/.output/server/chunks/build/useDcwProducts-B05ymt3k.mjs +95 -0
  355. package/.output/server/chunks/build/useDcwProducts-B05ymt3k.mjs.map +1 -0
  356. package/.output/server/chunks/build/useDcwQuery-vWpgpSmJ.mjs +100 -0
  357. package/.output/server/chunks/build/useDcwQuery-vWpgpSmJ.mjs.map +1 -0
  358. package/.output/server/chunks/build/useDcwQuickActions-DUkLy34S.mjs +90 -0
  359. package/.output/server/chunks/build/useDcwQuickActions-DUkLy34S.mjs.map +1 -0
  360. package/.output/server/chunks/build/useDcwRecipes-BAb4Yg3d.mjs +260 -0
  361. package/.output/server/chunks/build/useDcwRecipes-BAb4Yg3d.mjs.map +1 -0
  362. package/.output/server/chunks/build/useDcwStream-RN3U_Jsh.mjs +455 -0
  363. package/.output/server/chunks/build/useDcwStream-RN3U_Jsh.mjs.map +1 -0
  364. package/.output/server/chunks/build/useDcwTemplates-D2aoejps.mjs +93 -0
  365. package/.output/server/chunks/build/useDcwTemplates-D2aoejps.mjs.map +1 -0
  366. package/.output/server/chunks/build/useDcwWrites-7w8txksD.mjs +142 -0
  367. package/.output/server/chunks/build/useDcwWrites-7w8txksD.mjs.map +1 -0
  368. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs +128 -0
  369. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs.map +1 -0
  370. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs +109 -0
  371. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs.map +1 -0
  372. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs +55 -0
  373. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs.map +1 -0
  374. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +79 -0
  375. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -0
  376. package/.output/server/chunks/build/useLogsManual-D0dvgCsP.mjs +91 -0
  377. package/.output/server/chunks/build/useLogsManual-D0dvgCsP.mjs.map +1 -0
  378. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs +152 -0
  379. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs.map +1 -0
  380. package/.output/server/chunks/build/useLogsScope-DEUyq-My.mjs +85 -0
  381. package/.output/server/chunks/build/useLogsScope-DEUyq-My.mjs.map +1 -0
  382. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs +219 -0
  383. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs.map +1 -0
  384. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs +137 -0
  385. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs.map +1 -0
  386. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs +93 -0
  387. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs.map +1 -0
  388. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +73 -0
  389. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -0
  390. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs +197 -0
  391. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs.map +1 -0
  392. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs +149 -0
  393. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs.map +1 -0
  394. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs +158 -0
  395. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs.map +1 -0
  396. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -0
  397. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs +81 -0
  398. package/.output/server/chunks/build/useTeamActions-BDjU06LP.mjs.map +1 -0
  399. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs +86 -0
  400. package/.output/server/chunks/build/useTeamAddMemberDialog-J3oFn3FI.mjs.map +1 -0
  401. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs +99 -0
  402. package/.output/server/chunks/build/useTeamCreateDialog-fbn4ixYu.mjs.map +1 -0
  403. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs +82 -0
  404. package/.output/server/chunks/build/useTeamDeployDialog-BNezMD2k.mjs.map +1 -0
  405. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +84 -0
  406. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -0
  407. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs +105 -0
  408. package/.output/server/chunks/build/useTeamPluginDialog-BZznrOVe.mjs.map +1 -0
  409. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs +125 -0
  410. package/.output/server/chunks/build/useTeamsCatalog-DuZFP3oG.mjs.map +1 -0
  411. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +74 -0
  412. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -0
  413. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs +117 -0
  414. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs.map +1 -0
  415. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs +89 -0
  416. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs.map +1 -0
  417. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs +120 -0
  418. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs.map +1 -0
  419. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs +94 -0
  420. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs.map +1 -0
  421. package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs.map +1 -0
  422. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs +143 -0
  423. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs.map +1 -0
  424. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs +140 -0
  425. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs.map +1 -0
  426. package/.output/server/chunks/build/useWorkshopApi-BxHn-4iR.mjs +127 -0
  427. package/.output/server/chunks/build/useWorkshopApi-BxHn-4iR.mjs.map +1 -0
  428. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs +1659 -0
  429. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs.map +1 -0
  430. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +62 -0
  431. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -0
  432. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs +94 -0
  433. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs.map +1 -0
  434. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +80 -0
  435. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -0
  436. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +170 -0
  437. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -0
  438. package/.output/server/chunks/build/users-DjiVC_tS.mjs +571 -0
  439. package/.output/server/chunks/build/users-DjiVC_tS.mjs.map +1 -0
  440. package/.output/server/chunks/build/workshop-1gKeDASV.mjs +548 -0
  441. package/.output/server/chunks/build/workshop-1gKeDASV.mjs.map +1 -0
  442. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs.map +1 -0
  443. package/.output/server/chunks/routes/api/health.get.mjs +4 -2
  444. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  445. package/.output/server/chunks/routes/api/index.get.mjs +4 -2
  446. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  447. package/.output/server/chunks/routes/api/index.post.mjs +4 -2
  448. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  449. package/.output/server/chunks/routes/api/mcp/workshop.mjs +5 -3
  450. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  451. package/.output/server/chunks/routes/api/metrics.mjs +4 -2
  452. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  453. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +4 -2
  454. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  455. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +4 -2
  456. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  457. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +4 -2
  458. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
  459. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +4 -2
  460. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  461. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +4 -2
  462. package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -1
  463. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +6 -4
  464. package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -1
  465. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +4 -2
  466. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
  467. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +4 -2
  468. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  469. package/.output/server/chunks/routes/api/system/config.get.mjs +4 -2
  470. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  471. package/.output/server/chunks/routes/api/system/index.get.mjs +4 -2
  472. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  473. package/.output/server/chunks/routes/api/system/index.patch.mjs +4 -2
  474. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  475. package/.output/server/chunks/routes/api/system/index.post.mjs +4 -2
  476. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  477. package/.output/server/chunks/routes/api/system/index2.get.mjs +4 -2
  478. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
  479. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +4 -2
  480. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  481. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +4 -2
  482. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  483. package/.output/server/chunks/routes/api/system/monitor.get.mjs +4 -2
  484. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  485. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +4 -2
  486. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  487. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +4 -2
  488. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  489. package/.output/server/chunks/routes/api/system/timezone.get.mjs +4 -2
  490. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
  491. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +4 -2
  492. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  493. package/.output/server/chunks/routes/api/users/_id_.get.mjs +4 -2
  494. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  495. package/.output/server/chunks/routes/api/users/_id_.put.mjs +4 -2
  496. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  497. package/.output/server/chunks/routes/api/users/change-password.post.mjs +4 -2
  498. package/.output/server/chunks/routes/api/users/change-password.post.mjs.map +1 -1
  499. package/.output/server/chunks/routes/api/users/index.get.mjs +4 -2
  500. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  501. package/.output/server/chunks/routes/api/users/index.post.mjs +4 -2
  502. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  503. package/.output/server/chunks/routes/api/users/login.post.mjs +6 -5
  504. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  505. package/.output/server/chunks/routes/api/users/logout.post.mjs +4 -2
  506. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  507. package/.output/server/chunks/routes/api/users/me.get.mjs +4 -2
  508. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  509. package/.output/server/chunks/routes/api/users/register.post.mjs +4 -2
  510. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  511. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +4 -2
  512. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  513. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +4 -2
  514. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  515. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +4 -2
  516. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  517. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +4 -2
  518. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  519. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +4 -2
  520. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  521. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +13 -3
  522. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  523. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +4 -2
  524. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  525. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +4 -2
  526. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  527. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +4 -2
  528. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  529. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +4 -2
  530. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  531. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +4 -2
  532. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  533. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +4 -2
  534. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
  535. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +4 -2
  536. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
  537. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +4 -2
  538. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  539. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +5 -3
  540. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  541. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +4 -2
  542. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  543. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +4 -2
  544. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  545. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +4 -2
  546. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  547. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +4 -2
  548. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  549. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +4 -2
  550. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  551. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +4 -2
  552. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  553. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +4 -2
  554. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  555. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +4 -2
  556. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
  557. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +4 -2
  558. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
  559. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +4 -2
  560. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  561. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +4 -2
  562. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
  563. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +4 -2
  564. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
  565. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +4 -2
  566. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  567. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +4 -2
  568. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  569. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +4 -2
  570. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  571. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +4 -2
  572. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
  573. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +4 -2
  574. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
  575. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +4 -2
  576. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  577. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +4 -2
  578. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  579. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +4 -2
  580. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  581. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +4 -2
  582. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
  583. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +4 -2
  584. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  585. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +4 -2
  586. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
  587. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +4 -2
  588. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
  589. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +4 -2
  590. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
  591. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +4 -2
  592. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
  593. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +4 -2
  594. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
  595. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +4 -2
  596. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
  597. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +4 -2
  598. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
  599. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +4 -2
  600. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
  601. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +4 -2
  602. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
  603. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +4 -2
  604. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
  605. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +4 -2
  606. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
  607. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +4 -2
  608. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
  609. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +4 -2
  610. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
  611. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +4 -2
  612. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
  613. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +4 -2
  614. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
  615. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +4 -2
  616. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
  617. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs +4 -2
  618. package/.output/server/chunks/routes/api/workshop/analysis/_id_.delete.mjs.map +1 -1
  619. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs +4 -2
  620. package/.output/server/chunks/routes/api/workshop/analysis/_id_.get.mjs.map +1 -1
  621. package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs +4 -2
  622. package/.output/server/chunks/routes/api/workshop/analysis/_id_.patch.mjs.map +1 -1
  623. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +4 -2
  624. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  625. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +4 -2
  626. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  627. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +4 -2
  628. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  629. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +4 -2
  630. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  631. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +5 -3
  632. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  633. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +4 -2
  634. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  635. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +7 -4
  636. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  637. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +4 -2
  638. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  639. package/.output/server/chunks/routes/api/workshop/caller.mjs +4 -2
  640. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  641. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +6 -4
  642. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  643. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +4 -2
  644. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  645. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +4 -2
  646. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  647. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +4 -2
  648. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  649. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +4 -2
  650. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  651. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +5 -3
  652. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  653. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +4 -2
  654. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  655. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +4 -2
  656. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  657. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +4 -2
  658. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  659. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +4 -2
  660. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  661. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +4 -2
  662. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  663. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +4 -2
  664. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  665. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +4 -2
  666. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  667. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs +4 -2
  668. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/rotate-token.post.mjs.map +1 -1
  669. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +4 -2
  670. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  671. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +4 -2
  672. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  673. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +4 -2
  674. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  675. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +4 -2
  676. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
  677. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +5 -3
  678. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
  679. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +4 -2
  680. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
  681. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +4 -2
  682. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
  683. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +4 -2
  684. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  685. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs +5 -3
  686. package/.output/server/chunks/routes/api/workshop/channels/_id/execution-mode.patch.mjs.map +1 -1
  687. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +4 -2
  688. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  689. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +5 -3
  690. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  691. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +5 -3
  692. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
  693. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +4 -2
  694. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  695. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +4 -2
  696. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  697. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs +5 -3
  698. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.put.mjs.map +1 -1
  699. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +4 -2
  700. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  701. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +5 -3
  702. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  703. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +4 -2
  704. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  705. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +7 -3
  706. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  707. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +5 -3
  708. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  709. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +4 -2
  710. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
  711. package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs +4 -2
  712. package/.output/server/chunks/routes/api/workshop/channels/_id/index7.get.mjs.map +1 -1
  713. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +4 -2
  714. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -1
  715. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +4 -2
  716. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
  717. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +4 -2
  718. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
  719. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +4 -2
  720. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
  721. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +4 -2
  722. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
  723. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +4 -2
  724. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  725. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +4 -2
  726. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  727. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +5 -3
  728. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  729. package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs +5 -3
  730. package/.output/server/chunks/routes/api/workshop/channels/_id/tools/reset.post.mjs.map +1 -1
  731. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +5 -3
  732. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
  733. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +22 -5
  734. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
  735. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +4 -2
  736. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  737. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +5 -3
  738. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  739. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +4 -2
  740. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  741. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +4 -2
  742. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  743. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +11 -9
  744. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  745. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +4 -2
  746. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  747. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +4 -2
  748. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  749. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +4 -2
  750. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  751. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +4 -2
  752. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  753. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +16 -4
  754. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
  755. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +5 -3
  756. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  757. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +4 -2
  758. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  759. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +4 -2
  760. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  761. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +4 -2
  762. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  763. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +4 -2
  764. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  765. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +4 -2
  766. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  767. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +4 -2
  768. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  769. package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs +4 -2
  770. package/.output/server/chunks/routes/api/workshop/daq/export/_id_.get.mjs.map +1 -1
  771. package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs +4 -2
  772. package/.output/server/chunks/routes/api/workshop/daq/export-file.get.mjs.map +1 -1
  773. package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs +4 -2
  774. package/.output/server/chunks/routes/api/workshop/daq/index.get.mjs.map +1 -1
  775. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +4 -2
  776. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  777. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +7 -5
  778. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs.map +1 -1
  779. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +5 -3
  780. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  781. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +5 -3
  782. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  783. package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs +4 -2
  784. package/.output/server/chunks/routes/api/workshop/daq/query.get.mjs.map +1 -1
  785. package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs +68 -0
  786. package/.output/server/chunks/routes/api/workshop/daq/storage/retention.put.mjs.map +1 -0
  787. package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs +45 -0
  788. package/.output/server/chunks/routes/api/workshop/daq/storage/rollup.post.mjs.map +1 -0
  789. package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs +36 -0
  790. package/.output/server/chunks/routes/api/workshop/daq/storage.get.mjs.map +1 -0
  791. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +7 -5
  792. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  793. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +7 -5
  794. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  795. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +5 -3
  796. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  797. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +5 -3
  798. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  799. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +5 -3
  800. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  801. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +5 -3
  802. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  803. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +5 -3
  804. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  805. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +5 -3
  806. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  807. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +6 -4
  808. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  809. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +5 -3
  810. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  811. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +5 -3
  812. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  813. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +5 -3
  814. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  815. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +5 -3
  816. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  817. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +5 -3
  818. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  819. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +5 -3
  820. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  821. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +5 -3
  822. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  823. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +5 -3
  824. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  825. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +5 -3
  826. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  827. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +5 -3
  828. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  829. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +5 -3
  830. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  831. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +5 -3
  832. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  833. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +5 -3
  834. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
  835. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +4 -2
  836. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  837. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs +4 -2
  838. package/.output/server/chunks/routes/api/workshop/dcw/index7.get.mjs.map +1 -1
  839. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +5 -3
  840. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  841. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +5 -3
  842. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  843. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +5 -3
  844. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  845. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +5 -3
  846. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  847. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +5 -3
  848. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  849. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +4 -2
  850. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  851. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +5 -3
  852. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
  853. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +5 -3
  854. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs.map +1 -1
  855. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +5 -3
  856. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -1
  857. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +5 -3
  858. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  859. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +5 -3
  860. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  861. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +5 -3
  862. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  863. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +5 -3
  864. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  865. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +5 -3
  866. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  867. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +5 -3
  868. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
  869. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +5 -3
  870. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
  871. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +5 -3
  872. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
  873. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +5 -3
  874. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  875. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +5 -3
  876. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  877. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +5 -3
  878. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  879. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +4 -2
  880. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  881. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +4 -2
  882. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  883. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +5 -3
  884. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  885. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +4 -2
  886. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  887. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +18 -4
  888. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  889. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +4 -2
  890. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  891. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +5 -3
  892. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  893. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +5 -3
  894. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  895. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +5 -3
  896. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  897. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +5 -3
  898. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  899. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +5 -3
  900. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  901. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +5 -3
  902. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  903. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +7 -4
  904. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  905. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +5 -3
  906. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  907. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +7 -4
  908. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  909. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +7 -4
  910. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  911. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs +4 -2
  912. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.delete.mjs.map +1 -1
  913. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs +4 -2
  914. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.get.mjs.map +1 -1
  915. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs +4 -2
  916. package/.output/server/chunks/routes/api/workshop/eda/charts/_id_.patch.mjs.map +1 -1
  917. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +5 -3
  918. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs.map +1 -1
  919. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs +4 -2
  920. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.delete.mjs.map +1 -1
  921. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs +4 -2
  922. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.get.mjs.map +1 -1
  923. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs +4 -2
  924. package/.output/server/chunks/routes/api/workshop/eda/dashboards/_id_.patch.mjs.map +1 -1
  925. package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs +4 -2
  926. package/.output/server/chunks/routes/api/workshop/eda/features/jobs.get.mjs.map +1 -1
  927. package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs +4 -2
  928. package/.output/server/chunks/routes/api/workshop/eda/features/run.post.mjs.map +1 -1
  929. package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs +4 -2
  930. package/.output/server/chunks/routes/api/workshop/eda/golden/_id_.delete.mjs.map +1 -1
  931. package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs +4 -2
  932. package/.output/server/chunks/routes/api/workshop/eda/golden/deviation.get.mjs.map +1 -1
  933. package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs +4 -2
  934. package/.output/server/chunks/routes/api/workshop/eda/golden/single.get.mjs.map +1 -1
  935. package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs +4 -2
  936. package/.output/server/chunks/routes/api/workshop/eda/index.get.mjs.map +1 -1
  937. package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs +4 -2
  938. package/.output/server/chunks/routes/api/workshop/eda/index.post.mjs.map +1 -1
  939. package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs +4 -2
  940. package/.output/server/chunks/routes/api/workshop/eda/index2.get.mjs.map +1 -1
  941. package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs +4 -2
  942. package/.output/server/chunks/routes/api/workshop/eda/index2.post.mjs.map +1 -1
  943. package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs +4 -2
  944. package/.output/server/chunks/routes/api/workshop/eda/index3.get.mjs.map +1 -1
  945. package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs +4 -2
  946. package/.output/server/chunks/routes/api/workshop/eda/index3.post.mjs.map +1 -1
  947. package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs +4 -2
  948. package/.output/server/chunks/routes/api/workshop/eda/index4.get.mjs.map +1 -1
  949. package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs +4 -2
  950. package/.output/server/chunks/routes/api/workshop/eda/index4.post.mjs.map +1 -1
  951. package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs +4 -2
  952. package/.output/server/chunks/routes/api/workshop/eda/index5.get.mjs.map +1 -1
  953. package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs +4 -2
  954. package/.output/server/chunks/routes/api/workshop/eda/index5.post.mjs.map +1 -1
  955. package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs +4 -2
  956. package/.output/server/chunks/routes/api/workshop/eda/index6.get.mjs.map +1 -1
  957. package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs +4 -2
  958. package/.output/server/chunks/routes/api/workshop/eda/index6.post.mjs.map +1 -1
  959. package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs +4 -2
  960. package/.output/server/chunks/routes/api/workshop/eda/index7.get.mjs.map +1 -1
  961. package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs +4 -2
  962. package/.output/server/chunks/routes/api/workshop/eda/index7.post.mjs.map +1 -1
  963. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs +4 -2
  964. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs.map +1 -1
  965. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs +4 -2
  966. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs.map +1 -1
  967. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs +4 -2
  968. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.get.mjs.map +1 -1
  969. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs +4 -2
  970. package/.output/server/chunks/routes/api/workshop/eda/ocap/_id_.patch.mjs.map +1 -1
  971. package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs +4 -2
  972. package/.output/server/chunks/routes/api/workshop/eda/runs/_id/labels.patch.mjs.map +1 -1
  973. package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs +4 -2
  974. package/.output/server/chunks/routes/api/workshop/eda/runs.get.mjs.map +1 -1
  975. package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs +4 -2
  976. package/.output/server/chunks/routes/api/workshop/eda/spc/_id/recompute.post.mjs.map +1 -1
  977. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs +4 -2
  978. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.delete.mjs.map +1 -1
  979. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs +4 -2
  980. package/.output/server/chunks/routes/api/workshop/eda/spc/_id_.get.mjs.map +1 -1
  981. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs +4 -2
  982. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs.map +1 -1
  983. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs +4 -2
  984. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs.map +1 -1
  985. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs +4 -2
  986. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs.map +1 -1
  987. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +5 -3
  988. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs.map +1 -1
  989. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +5 -3
  990. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs.map +1 -1
  991. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +5 -3
  992. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs.map +1 -1
  993. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +5 -3
  994. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  995. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +5 -3
  996. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  997. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +5 -3
  998. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  999. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +5 -3
  1000. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  1001. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +5 -3
  1002. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  1003. package/.output/server/chunks/routes/api/workshop/index.get.mjs +4 -2
  1004. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  1005. package/.output/server/chunks/routes/api/workshop/index.mjs +5 -3
  1006. package/.output/server/chunks/routes/api/workshop/index.mjs.map +1 -1
  1007. package/.output/server/chunks/routes/api/workshop/index.post.mjs +4 -2
  1008. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  1009. package/.output/server/chunks/routes/api/workshop/index.put.mjs +5 -3
  1010. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  1011. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +4 -2
  1012. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  1013. package/.output/server/chunks/routes/api/workshop/index10.post.mjs +4 -2
  1014. package/.output/server/chunks/routes/api/workshop/index10.post.mjs.map +1 -1
  1015. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +4 -2
  1016. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  1017. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +5 -3
  1018. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  1019. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +4 -2
  1020. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  1021. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +4 -2
  1022. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  1023. package/.output/server/chunks/routes/api/workshop/index15.get.mjs +4 -2
  1024. package/.output/server/chunks/routes/api/workshop/index15.get.mjs.map +1 -1
  1025. package/.output/server/chunks/routes/api/workshop/index16.get.mjs +4 -2
  1026. package/.output/server/chunks/routes/api/workshop/index16.get.mjs.map +1 -1
  1027. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +4 -2
  1028. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  1029. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +25 -10
  1030. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  1031. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +4 -2
  1032. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  1033. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +4 -2
  1034. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  1035. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +4 -2
  1036. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  1037. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +232 -6
  1038. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  1039. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +4 -2
  1040. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  1041. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +5 -3
  1042. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  1043. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +5 -3
  1044. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  1045. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +5 -3
  1046. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  1047. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +5 -3
  1048. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  1049. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +7 -3
  1050. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  1051. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +5 -3
  1052. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  1053. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +4 -2
  1054. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  1055. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +4 -2
  1056. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  1057. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +4 -2
  1058. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  1059. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +4 -2
  1060. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  1061. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +4 -2
  1062. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  1063. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +4 -2
  1064. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  1065. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +5 -3
  1066. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs.map +1 -1
  1067. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs +4 -2
  1068. package/.output/server/chunks/routes/api/workshop/mes/index.get.mjs.map +1 -1
  1069. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs +4 -2
  1070. package/.output/server/chunks/routes/api/workshop/mes/index.put.mjs.map +1 -1
  1071. package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs +4 -2
  1072. package/.output/server/chunks/routes/api/workshop/mes/points.get.mjs.map +1 -1
  1073. package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs +4 -2
  1074. package/.output/server/chunks/routes/api/workshop/mes/preview.post.mjs.map +1 -1
  1075. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs +4 -2
  1076. package/.output/server/chunks/routes/api/workshop/mes/secrets/_ref_.delete.mjs.map +1 -1
  1077. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +4 -2
  1078. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
  1079. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +5 -3
  1080. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs.map +1 -1
  1081. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +5 -3
  1082. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs.map +1 -1
  1083. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +5 -3
  1084. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs.map +1 -1
  1085. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +5 -3
  1086. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs.map +1 -1
  1087. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +5 -3
  1088. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs.map +1 -1
  1089. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +5 -3
  1090. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs.map +1 -1
  1091. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +5 -3
  1092. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs.map +1 -1
  1093. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +5 -3
  1094. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs.map +1 -1
  1095. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +5 -3
  1096. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs.map +1 -1
  1097. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +5 -3
  1098. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs.map +1 -1
  1099. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +5 -3
  1100. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs.map +1 -1
  1101. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +5 -3
  1102. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs.map +1 -1
  1103. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +5 -3
  1104. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs.map +1 -1
  1105. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +5 -3
  1106. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs.map +1 -1
  1107. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +5 -3
  1108. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs.map +1 -1
  1109. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +5 -3
  1110. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs.map +1 -1
  1111. package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs +4 -2
  1112. package/.output/server/chunks/routes/api/workshop/optimization/bindings/_id_.delete.mjs.map +1 -1
  1113. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +5 -3
  1114. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs.map +1 -1
  1115. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +5 -3
  1116. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs.map +1 -1
  1117. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +5 -3
  1118. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs.map +1 -1
  1119. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +5 -3
  1120. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs.map +1 -1
  1121. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +5 -3
  1122. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs.map +1 -1
  1123. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +5 -3
  1124. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs.map +1 -1
  1125. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +5 -3
  1126. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs.map +1 -1
  1127. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +5 -3
  1128. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs.map +1 -1
  1129. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +5 -3
  1130. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  1131. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +5 -3
  1132. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  1133. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +4 -2
  1134. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  1135. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +5 -3
  1136. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs.map +1 -1
  1137. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +5 -3
  1138. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs.map +1 -1
  1139. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +308 -21
  1140. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs.map +1 -1
  1141. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +5 -3
  1142. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs.map +1 -1
  1143. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +5 -3
  1144. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs.map +1 -1
  1145. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +5 -3
  1146. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs.map +1 -1
  1147. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +4 -2
  1148. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  1149. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +5 -3
  1150. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  1151. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +5 -3
  1152. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  1153. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +4 -2
  1154. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  1155. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +4 -2
  1156. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
  1157. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +4 -2
  1158. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
  1159. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +4 -2
  1160. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
  1161. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +4 -2
  1162. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
  1163. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +4 -2
  1164. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
  1165. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +4 -2
  1166. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  1167. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +4 -2
  1168. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  1169. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +4 -2
  1170. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  1171. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +4 -2
  1172. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
  1173. package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs +4 -2
  1174. package/.output/server/chunks/routes/api/workshop/tasks/_id/reopen.post.mjs.map +1 -1
  1175. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +4 -2
  1176. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  1177. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +4 -2
  1178. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  1179. package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs +43 -0
  1180. package/.output/server/chunks/routes/api/workshop/tasks/_id/supersede.post.mjs.map +1 -0
  1181. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +4 -2
  1182. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
  1183. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +4 -2
  1184. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  1185. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +4 -2
  1186. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  1187. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +5 -3
  1188. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  1189. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +4 -2
  1190. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  1191. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +4 -2
  1192. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  1193. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +5 -3
  1194. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
  1195. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +5 -3
  1196. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
  1197. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +4 -2
  1198. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  1199. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +4 -2
  1200. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  1201. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +4 -2
  1202. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  1203. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +4 -2
  1204. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  1205. package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs +4 -2
  1206. package/.output/server/chunks/routes/api/workshop/tools/_name_.get.mjs.map +1 -1
  1207. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +5 -3
  1208. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs.map +1 -1
  1209. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +4 -2
  1210. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  1211. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +4 -2
  1212. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  1213. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +6 -4
  1214. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  1215. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +4 -2
  1216. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  1217. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +4 -2
  1218. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  1219. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +4 -2
  1220. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  1221. package/.output/server/chunks/routes/renderer.mjs +2 -2
  1222. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  1223. package/.output/server/chunks/virtual/entry.mjs +381 -377
  1224. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  1225. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  1226. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -1
  1227. package/.output/server/index.mjs +5 -3
  1228. package/.output/server/index.mjs.map +1 -1
  1229. package/.output/server/node_modules/pg/esm/index.mjs +20 -0
  1230. package/.output/server/node_modules/pg/lib/client.js +828 -0
  1231. package/.output/server/node_modules/pg/lib/connection-parameters.js +184 -0
  1232. package/.output/server/node_modules/pg/lib/connection.js +243 -0
  1233. package/.output/server/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
  1234. package/.output/server/node_modules/pg/lib/crypto/sasl.js +262 -0
  1235. package/.output/server/node_modules/pg/lib/crypto/utils.js +89 -0
  1236. package/.output/server/node_modules/pg/lib/defaults.js +94 -0
  1237. package/.output/server/node_modules/pg/lib/index.js +73 -0
  1238. package/.output/server/node_modules/pg/lib/native/client.js +420 -0
  1239. package/.output/server/node_modules/pg/lib/native/index.js +2 -0
  1240. package/.output/server/node_modules/pg/lib/native/query.js +165 -0
  1241. package/.output/server/node_modules/pg/lib/query.js +259 -0
  1242. package/.output/server/node_modules/pg/lib/result.js +109 -0
  1243. package/.output/server/node_modules/pg/lib/stream.js +83 -0
  1244. package/.output/server/node_modules/pg/lib/type-overrides.js +35 -0
  1245. package/.output/server/node_modules/pg/lib/utils.js +207 -0
  1246. package/.output/server/node_modules/pg/package.json +76 -0
  1247. package/.output/server/node_modules/pg-cloudflare/dist/empty.js +6 -0
  1248. package/.output/server/node_modules/pg-cloudflare/package.json +39 -0
  1249. package/.output/server/node_modules/pg-connection-string/index.js +237 -0
  1250. package/.output/server/node_modules/pg-connection-string/package.json +52 -0
  1251. package/.output/server/node_modules/pg-int8/index.js +100 -0
  1252. package/.output/server/node_modules/pg-int8/package.json +24 -0
  1253. package/.output/server/node_modules/pg-pool/index.js +517 -0
  1254. package/.output/server/node_modules/pg-pool/package.json +51 -0
  1255. package/.output/server/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
  1256. package/.output/server/node_modules/pg-protocol/dist/buffer-writer.js +104 -0
  1257. package/.output/server/node_modules/pg-protocol/dist/index.js +15 -0
  1258. package/.output/server/node_modules/pg-protocol/dist/messages.js +160 -0
  1259. package/.output/server/node_modules/pg-protocol/dist/parser.js +325 -0
  1260. package/.output/server/node_modules/pg-protocol/dist/serializer.js +196 -0
  1261. package/.output/server/node_modules/pg-protocol/package.json +44 -0
  1262. package/.output/server/node_modules/pg-types/index.js +47 -0
  1263. package/.output/server/node_modules/pg-types/lib/arrayParser.js +11 -0
  1264. package/.output/server/node_modules/pg-types/lib/binaryParsers.js +257 -0
  1265. package/.output/server/node_modules/pg-types/lib/builtins.js +73 -0
  1266. package/.output/server/node_modules/pg-types/lib/textParsers.js +215 -0
  1267. package/.output/server/node_modules/pg-types/package.json +42 -0
  1268. package/.output/server/node_modules/pgpass/lib/helper.js +233 -0
  1269. package/.output/server/node_modules/pgpass/lib/index.js +23 -0
  1270. package/.output/server/node_modules/pgpass/package.json +41 -0
  1271. package/.output/server/node_modules/postgres-array/index.js +97 -0
  1272. package/.output/server/node_modules/postgres-array/package.json +35 -0
  1273. package/.output/server/node_modules/postgres-bytea/index.js +33 -0
  1274. package/.output/server/node_modules/postgres-bytea/package.json +34 -0
  1275. package/.output/server/node_modules/postgres-date/index.js +116 -0
  1276. package/.output/server/node_modules/postgres-date/package.json +33 -0
  1277. package/.output/server/node_modules/postgres-interval/index.js +126 -0
  1278. package/.output/server/node_modules/postgres-interval/package.json +35 -0
  1279. package/.output/server/node_modules/split2/index.js +141 -0
  1280. package/.output/server/node_modules/split2/package.json +39 -0
  1281. package/.output/server/node_modules/xtend/mutable.js +17 -0
  1282. package/.output/server/node_modules/xtend/package.json +55 -0
  1283. package/.output/server/package.json +15 -1
  1284. package/README-zh.md +255 -993
  1285. package/README.md +254 -1028
  1286. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.json +1 -0
  1287. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/1459e6269990a5d229b9228c8b2f62ffaa7d350068380ae8b875fee0db45cca6.source +180 -0
  1288. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/c2991e909c70c5c12b90a407c7adcf63384c51668a2b334e6e047fa675c268fe.source +305 -0
  1289. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/e09129039d1e27e3fac24becc9bdafd2d1a7c8049bff24173df007be865f0165.source +264 -0
  1290. package/app/.mimosa/hook-status/sess_05189059-e42d-4188-8911-4f7baabe009b-28ef7c75ea.json +14 -0
  1291. package/app/components/AwLogo.vue +75 -75
  1292. package/app/components/aml/AmlDatasetFormModal.vue +279 -279
  1293. package/app/components/aml/AmlDatasetTable.vue +319 -319
  1294. package/app/components/aml/AmlExperimentsTable.vue +142 -142
  1295. package/app/components/aml/AmlInfraBanner.vue +23 -23
  1296. package/app/components/aml/AmlJobsTable.vue +248 -248
  1297. package/app/components/aml/AmlOverviewBar.vue +62 -62
  1298. package/app/components/aml/AmlPageHeader.vue +47 -47
  1299. package/app/components/aml/AmlPredictConsole.vue +201 -201
  1300. package/app/components/app-header/HitlBell.vue +423 -423
  1301. package/app/components/daq/DaqAddNodeModal.vue +209 -209
  1302. package/app/components/daq/DaqAlarmBar.vue +46 -46
  1303. package/app/components/daq/DaqControlCard.vue +159 -159
  1304. package/app/components/daq/DaqInfraBanner.vue +31 -31
  1305. package/app/components/daq/DaqLineBanner.vue +47 -47
  1306. package/app/components/daq/DaqNodePanel.vue +396 -396
  1307. package/app/components/daq/DaqOptPanel.vue +197 -197
  1308. package/app/components/daq/DaqTemplateModal.vue +246 -246
  1309. package/app/components/dashboard/DashboardGaugeBand.vue +78 -78
  1310. package/app/components/dashboard/DashboardHero.vue +209 -209
  1311. package/app/components/dashboard/DashboardLineStatePanel.vue +78 -78
  1312. package/app/components/dashboard/DashboardNodeStatePanel.vue +46 -46
  1313. package/app/components/dashboard/DashboardPipelinePanel.vue +46 -46
  1314. package/app/components/dashboard/DashboardTrendPanel.vue +83 -83
  1315. package/app/components/dashboard/DashboardWritePanel.vue +52 -52
  1316. package/app/components/dcw/DcwCreateLineModal.vue +105 -105
  1317. package/app/components/dcw/DcwDeleteLineModal.vue +73 -73
  1318. package/app/components/dcw/DcwDetailTemplateModal.vue +238 -238
  1319. package/app/components/dcw/DcwLedgerCard.vue +160 -160
  1320. package/app/components/dcw/DcwMesArtifacts.vue +140 -140
  1321. package/app/components/dcw/DcwProductCreateModal.vue +113 -113
  1322. package/app/components/dcw/DcwRecipeDispatchHistoryModal.vue +244 -244
  1323. package/app/components/dcw/DcwRecipeEditModal.vue +399 -399
  1324. package/app/components/dcw/DcwRecipeHistoryModal.vue +165 -165
  1325. package/app/components/dcw/DcwRunDataModal.vue +191 -191
  1326. package/app/components/dcw/DcwTemplateModal.vue +227 -227
  1327. package/app/components/dcw/DcwWriteHistoryCard.vue +96 -96
  1328. package/app/components/dcw/ExpConfirmCard.vue +103 -103
  1329. package/app/components/dcw/RecipeDispatchApprovalCard.vue +330 -330
  1330. package/app/components/logs/LogsPageHead.vue +122 -122
  1331. package/app/components/monitor/MonitorAgentTable.vue +143 -143
  1332. package/app/components/monitor/MonitorChannelTable.vue +80 -80
  1333. package/app/components/monitor/MonitorLoginGate.vue +24 -24
  1334. package/app/components/monitor/MonitorPageHead.vue +92 -92
  1335. package/app/components/monitor/MonitorProcessTable.vue +159 -159
  1336. package/app/components/ontology/OntologyGraph.vue +356 -356
  1337. package/app/components/operations/OperationsFilterCard.vue +164 -164
  1338. package/app/components/operations/OperationsPageHead.vue +47 -47
  1339. package/app/components/tokens/TokenCreateModal.vue +42 -42
  1340. package/app/components/tokens/TokenOnceModal.vue +164 -164
  1341. package/app/components/tokens/TokenRenameModal.vue +40 -40
  1342. package/app/components/tokens/TokensPageHead.vue +76 -76
  1343. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  1344. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  1345. package/app/components/workshop/AgentLanesView.vue +278 -278
  1346. package/app/components/workshop/ArtifactCard.vue +120 -120
  1347. package/app/components/workshop/AssetLibrary.vue +452 -452
  1348. package/app/components/workshop/ChatMemberPanel.vue +556 -556
  1349. package/app/components/workshop/CommandPalette.vue +270 -270
  1350. package/app/components/workshop/Composer.vue +540 -540
  1351. package/app/components/workshop/DaqTemplateIcon.vue +33 -33
  1352. package/app/components/workshop/DeviceTwinPanel.vue +167 -167
  1353. package/app/components/workshop/FileSelectorModal.vue +188 -188
  1354. package/app/components/workshop/InspectorPanel.vue +301 -301
  1355. package/app/components/workshop/PluginSlot.vue +120 -120
  1356. package/app/components/workshop/TranscriptTimeline.vue +223 -223
  1357. package/app/components/workshop/agents/AgentTemplateEditModal.vue +139 -139
  1358. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  1359. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  1360. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  1361. package/app/components/workshop/blocks/ClusterMember.vue +95 -95
  1362. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  1363. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  1364. package/app/components/workshop/blocks/ClusterStatus.vue +149 -149
  1365. package/app/components/workshop/blocks/ClusterTool.vue +176 -176
  1366. package/app/components/workshop/blocks/EventBlockAvatar.vue +114 -114
  1367. package/app/components/workshop/blocks/EventBlockHead.vue +232 -232
  1368. package/app/components/workshop/composer/ComposerToolbar.vue +278 -278
  1369. package/app/components/workshop/composer/MentionMenu.vue +135 -135
  1370. package/app/components/workshop/composer/ReplyChip.vue +65 -65
  1371. package/app/components/workshop/composer/StatusChip.vue +171 -171
  1372. package/app/components/workshop/console/Dock.vue +71 -71
  1373. package/app/components/workshop/console/LeftPane.vue +84 -84
  1374. package/app/components/workshop/device-twin/DeviceTwinCard.vue +265 -265
  1375. package/app/components/workshop/device-twin/DeviceTwinDcwSection.vue +203 -203
  1376. package/app/components/workshop/lanes/AddMemberModal.vue +270 -270
  1377. package/app/components/workshop/lanes/EditMemberModal.vue +106 -106
  1378. package/app/components/workshop/lanes/LanesToolbar.vue +97 -97
  1379. package/app/components/workshop/session-list/MountChannelModal.vue +124 -124
  1380. package/app/components/workshop/session-list/SaveTemplateModal.vue +93 -93
  1381. package/app/components/workshop/task-board/Card.vue +172 -172
  1382. package/app/components/workshop/task-board/Column.vue +151 -151
  1383. package/app/components/workshop/task-board/List.vue +157 -157
  1384. package/app/components/workshop/task-board/StatusMenu.vue +88 -88
  1385. package/app/components/workshop/teams/TeamAddMemberModal.vue +53 -53
  1386. package/app/components/workshop/teams/TeamCreateModal.vue +94 -94
  1387. package/app/components/workshop/teams/TeamDeployModal.vue +40 -40
  1388. package/app/components/workshop/teams/TeamPluginModal.vue +119 -119
  1389. package/app/components/workshop/terminal/OmpTerminalPanel.vue +270 -270
  1390. package/app/components/workshop/terminal/TerminalHitlCard.vue +170 -170
  1391. package/app/components/workshop/town/TownScene.ts +466 -466
  1392. package/app/components/workshop/town/TownView.vue +561 -561
  1393. package/app/components/workshop/town/components/AutoModeConfirmModal.vue +94 -94
  1394. package/app/components/workshop/town/components/TownAgentBindings.vue +417 -417
  1395. package/app/components/workshop/town/components/TownAgentInspector.vue +554 -554
  1396. package/app/components/workshop/town/components/TownAlarmList.vue +147 -147
  1397. package/app/components/workshop/town/components/TownBoundaryPanel.vue +350 -350
  1398. package/app/components/workshop/town/components/TownCalloutLayer.vue +147 -147
  1399. package/app/components/workshop/town/components/TownChannelDock.vue +116 -116
  1400. package/app/components/workshop/town/components/TownControlDock.vue +405 -405
  1401. package/app/components/workshop/town/components/TownDaqNodeInspector.vue +345 -345
  1402. package/app/components/workshop/town/components/TownDaqTree.vue +366 -366
  1403. package/app/components/workshop/town/components/TownDcwBindSection.vue +473 -473
  1404. package/app/components/workshop/town/components/TownDcwNodeInspector.vue +185 -185
  1405. package/app/components/workshop/town/components/TownDcwTree.vue +280 -280
  1406. package/app/components/workshop/town/components/TownDeviceBindings.vue +394 -394
  1407. package/app/components/workshop/town/components/TownDeviceTransform.vue +248 -248
  1408. package/app/components/workshop/town/components/TownEventList.vue +120 -120
  1409. package/app/components/workshop/town/components/TownHealthBody.vue +100 -100
  1410. package/app/components/workshop/town/components/TownKpiStrip.vue +207 -207
  1411. package/app/components/workshop/town/components/TownLeftRail.vue +308 -308
  1412. package/app/components/workshop/town/components/TownLoadingMask.vue +61 -61
  1413. package/app/components/workshop/town/components/TownNavMap.vue +154 -154
  1414. package/app/components/workshop/town/components/TownRightRail.vue +543 -543
  1415. package/app/components/workshop/town/components/TownStage.vue +281 -281
  1416. package/app/components/workshop/town/components/TownStageTop.vue +238 -238
  1417. package/app/components/workshop/town/components/TownStatusBar.vue +108 -108
  1418. package/app/components/workshop/town/components/TownTopNav.vue +367 -367
  1419. package/app/components/workshop/town/components/TownTrendDock.vue +178 -178
  1420. package/app/components/workshop/town/scene/town-scene-agents.ts +254 -254
  1421. package/app/components/workshop/town/scene/town-scene-behavior.ts +194 -194
  1422. package/app/components/workshop/town/scene/town-scene-bubbles.ts +96 -96
  1423. package/app/components/workshop/town/scene/town-scene-core.ts +158 -158
  1424. package/app/components/workshop/town/scene/town-scene-models.ts +109 -109
  1425. package/app/components/workshop/town/scene/town-scene-visuals.ts +279 -279
  1426. package/app/components/workshop/town/scene/town-scene3d-agents.ts +308 -308
  1427. package/app/components/workshop/town/scene/town-scene3d-blocks.ts +297 -297
  1428. package/app/components/workshop/town/scene/town-scene3d-bubbles.ts +281 -281
  1429. package/app/components/workshop/town/scene/town-scene3d-camera.ts +282 -282
  1430. package/app/components/workshop/town/scene/town-scene3d-devices.ts +433 -433
  1431. package/app/components/workshop/town/scene/town-scene3d-editing.ts +490 -490
  1432. package/app/components/workshop/town/scene/town-scene3d-events.ts +173 -173
  1433. package/app/components/workshop/town/scene/town-scene3d-factory.ts +412 -412
  1434. package/app/components/workshop/town/scene/town-scene3d-hud.ts +110 -110
  1435. package/app/components/workshop/town/scene/town-scene3d-lifecycle.ts +144 -144
  1436. package/app/components/workshop/town/scene/town-scene3d-links.ts +141 -141
  1437. package/app/components/workshop/town/scene/town-scene3d-loop.ts +286 -286
  1438. package/app/components/workshop/town/scene/town-scene3d-models.ts +154 -154
  1439. package/app/components/workshop/town/scene/town-scene3d-nodes.ts +562 -562
  1440. package/app/components/workshop/town/scene/town-scene3d-ranges.ts +273 -273
  1441. package/app/components/workshop/town/scene/town-scene3d-renderer.ts +320 -320
  1442. package/app/components/workshop/town/scene/town-scene3d-selection.ts +257 -257
  1443. package/app/components/workshop/town/scene/town-scene3d-types.ts +264 -264
  1444. package/app/components/workshop/transcript/TranscriptBlockList.vue +68 -68
  1445. package/app/components/workshop/transcript/TranscriptEarlierPager.vue +81 -81
  1446. package/app/components/workshop/transcript/TranscriptFilterBar.vue +126 -126
  1447. package/app/components/workshop/workbench/CreateWorkspaceModal.vue +36 -36
  1448. package/app/components/workshop/workbench/WorkspaceEmpty.vue +56 -56
  1449. package/app/composables/useResponsive.ts +88 -88
  1450. package/app/composables/workshop/device-twin-types.ts +29 -29
  1451. package/app/composables/workshop/event-blocks/attention.ts +58 -58
  1452. package/app/composables/workshop/event-blocks/classify.ts +44 -44
  1453. package/app/composables/workshop/event-blocks/clusterer.ts +231 -231
  1454. package/app/composables/workshop/event-blocks/fold-stream.ts +45 -45
  1455. package/app/composables/workshop/event-blocks/markdown.ts +81 -81
  1456. package/app/composables/workshop/event-blocks/mentions.ts +49 -49
  1457. package/app/composables/workshop/event-blocks/text-utils.ts +100 -100
  1458. package/app/composables/workshop/event-blocks/types.ts +40 -40
  1459. package/app/composables/workshop/town/town-relay-props.ts +231 -231
  1460. package/app/composables/workshop/town/town-view-types.ts +145 -145
  1461. package/app/composables/workshop/town/useTownAgentBindings.ts +183 -183
  1462. package/app/composables/workshop/town/useTownAgentChat.ts +203 -203
  1463. package/app/composables/workshop/town/useTownAlarms.ts +36 -36
  1464. package/app/composables/workshop/town/useTownCallouts.ts +174 -174
  1465. package/app/composables/workshop/town/useTownChannels.ts +220 -220
  1466. package/app/composables/workshop/town/useTownHealth.ts +66 -66
  1467. package/app/composables/workshop/town/useTownHudTickers.ts +77 -77
  1468. package/app/composables/workshop/town/useTownLayout.ts +277 -277
  1469. package/app/composables/workshop/town/useTownNavMap.ts +301 -301
  1470. package/app/composables/workshop/town/useTownNodeBindings.ts +345 -345
  1471. package/app/composables/workshop/town/useTownPanelDrag.ts +91 -91
  1472. package/app/composables/workshop/town/useTownRailData.ts +421 -421
  1473. package/app/composables/workshop/town/useTownSceneControl.ts +92 -92
  1474. package/app/composables/workshop/town/useTownSceneInput.ts +275 -275
  1475. package/app/composables/workshop/town/useTownSceneRuntime.ts +390 -390
  1476. package/app/composables/workshop/town/useTownSheets.ts +41 -41
  1477. package/app/composables/workshop/town/useTownTrends.ts +93 -93
  1478. package/app/composables/workshop/useChannelList.ts +88 -88
  1479. package/app/composables/workshop/useChannelTerminals.ts +65 -65
  1480. package/app/composables/workshop/useComposerMentions.ts +130 -130
  1481. package/app/composables/workshop/useDcwStream.ts +377 -377
  1482. package/app/composables/workshop/useDeviceTwinDcwWrite.ts +77 -77
  1483. package/app/composables/workshop/useDeviceTwinPanel.ts +56 -56
  1484. package/app/composables/workshop/useEscClose.ts +44 -44
  1485. package/app/composables/workshop/useEventBlockView.ts +159 -159
  1486. package/app/composables/workshop/useEventBlocks.ts +33 -33
  1487. package/app/composables/workshop/useHitlAnswer.ts +184 -184
  1488. package/app/composables/workshop/useLaneWidths.ts +27 -27
  1489. package/app/composables/workshop/useOmpTerminalSession.ts +424 -424
  1490. package/app/composables/workshop/useOpsLog.ts +191 -191
  1491. package/app/composables/workshop/usePluginAdmin.ts +152 -152
  1492. package/app/composables/workshop/usePluginPanels.ts +72 -72
  1493. package/app/composables/workshop/useRuntimeConfigDraft.ts +118 -118
  1494. package/app/composables/workshop/useSettingsGroups.ts +243 -243
  1495. package/app/composables/workshop/useTaskBoardColumns.ts +47 -47
  1496. package/app/composables/workshop/useTerminalRenderer.ts +308 -308
  1497. package/app/composables/workshop/useTranscriptEnterStage.ts +48 -48
  1498. package/app/composables/workshop/useTranscriptHistory.ts +52 -52
  1499. package/app/composables/workshop/useTranscriptScroll.ts +113 -113
  1500. package/app/composables/workshop/useVisibleInterval.ts +42 -42
  1501. package/app/composables/workshop/useWorkshopWs.ts +265 -265
  1502. package/app/config/index.ts +1 -1
  1503. package/app/config/schema.ts +15 -1
  1504. package/app/middleware/locale-cookie.global.ts +22 -22
  1505. package/app/pages/aml/api.ts +6 -6
  1506. package/app/pages/aml/composables/useAmlDatasets.ts +38 -38
  1507. package/app/pages/aml/composables/useAmlEntities.ts +57 -57
  1508. package/app/pages/aml/composables/useAmlEnv.ts +191 -191
  1509. package/app/pages/aml/composables/useAmlExperiments.ts +45 -45
  1510. package/app/pages/aml/composables/useAmlFormat.ts +44 -44
  1511. package/app/pages/aml/composables/useAmlJobs.ts +131 -131
  1512. package/app/pages/aml/composables/useAmlModels.ts +56 -56
  1513. package/app/pages/aml/composables/useAmlNotes.ts +47 -47
  1514. package/app/pages/aml/composables/useAmlPredict.ts +93 -93
  1515. package/app/pages/aml/constants.ts +63 -63
  1516. package/app/pages/aml/index.vue +236 -236
  1517. package/app/pages/composables/useDashboardCharts.ts +192 -192
  1518. package/app/pages/composables/useDashboardData.ts +144 -144
  1519. package/app/pages/daq/composables/useDaqAddNode.ts +126 -126
  1520. package/app/pages/daq/composables/useDaqDetailBinding.ts +29 -29
  1521. package/app/pages/daq/composables/useDaqDetailFrames.ts +42 -42
  1522. package/app/pages/daq/composables/useDaqDetailNode.ts +53 -53
  1523. package/app/pages/daq/composables/useDaqDetailParams.ts +138 -138
  1524. package/app/pages/daq/composables/useDaqFilters.ts +187 -187
  1525. package/app/pages/daq/composables/useDaqNodeWindow.ts +86 -86
  1526. package/app/pages/daq/composables/useDaqOptimizations.ts +99 -99
  1527. package/app/pages/daq/composables/useDaqTemplates.ts +152 -152
  1528. package/app/pages/daq/index.vue +260 -260
  1529. package/app/pages/dcw/composables/useDcwCards.ts +27 -27
  1530. package/app/pages/dcw/composables/useDcwDetailScope.ts +145 -145
  1531. package/app/pages/dcw/composables/useDcwDetailTemplates.ts +94 -94
  1532. package/app/pages/dcw/composables/useDcwFilter.ts +29 -29
  1533. package/app/pages/dcw/composables/useDcwLedger.ts +34 -34
  1534. package/app/pages/dcw/composables/useDcwLineMutations.ts +115 -115
  1535. package/app/pages/dcw/composables/useDcwLineRun.ts +60 -60
  1536. package/app/pages/dcw/composables/useDcwProducts.ts +54 -54
  1537. package/app/pages/dcw/composables/useDcwQuery.ts +68 -68
  1538. package/app/pages/dcw/composables/useDcwQuickActions.ts +47 -47
  1539. package/app/pages/dcw/composables/useDcwRecipes.ts +256 -256
  1540. package/app/pages/dcw/composables/useDcwTemplates.ts +50 -50
  1541. package/app/pages/dcw/index.vue +195 -195
  1542. package/app/pages/dcw/types.ts +9 -9
  1543. package/app/pages/index.vue +126 -126
  1544. package/app/pages/logs/composables/useLogsFormat.ts +43 -43
  1545. package/app/pages/logs/composables/useLogsManual.ts +71 -71
  1546. package/app/pages/logs/composables/useLogsScope.ts +39 -39
  1547. package/app/pages/monitor/types.ts +61 -61
  1548. package/app/pages/operations.vue +61 -61
  1549. package/app/pages/permissions/index.vue +369 -369
  1550. package/app/pages/tokens/composables/useTokenClipboard.ts +33 -33
  1551. package/app/pages/tokens/composables/useTokenCreate.ts +93 -93
  1552. package/app/pages/tokens/composables/useTokenRename.ts +54 -54
  1553. package/app/pages/tokens/composables/useTokenReveal.ts +84 -84
  1554. package/app/pages/tokens/composables/useTokensList.ts +60 -60
  1555. package/app/pages/tokens.vue +111 -111
  1556. package/app/pages/tools/index.vue +98 -98
  1557. package/app/pages/workshop/agents.vue +130 -130
  1558. package/app/pages/workshop/composables/useAgentHarnessOptions.ts +59 -59
  1559. package/app/pages/workshop/composables/useAgentTemplateActions.ts +42 -42
  1560. package/app/pages/workshop/composables/useAgentTemplateDialogState.ts +24 -24
  1561. package/app/pages/workshop/composables/useAgentTemplateForm.ts +88 -88
  1562. package/app/pages/workshop/composables/useAgentTemplatesCatalog.ts +92 -92
  1563. package/app/pages/workshop/composables/useTeamActions.ts +44 -44
  1564. package/app/pages/workshop/composables/useTeamAddMemberDialog.ts +49 -49
  1565. package/app/pages/workshop/composables/useTeamCreateDialog.ts +67 -67
  1566. package/app/pages/workshop/composables/useTeamDeployDialog.ts +49 -49
  1567. package/app/pages/workshop/composables/useTeamDialogState.ts +46 -46
  1568. package/app/pages/workshop/composables/useTeamPluginDialog.ts +72 -72
  1569. package/app/pages/workshop/composables/useTeamsCatalog.ts +100 -100
  1570. package/app/pages/workshop/composables/useWorkbenchWorkspaces.ts +123 -123
  1571. package/app/pages/workshop/composables/useWorkspaceAuth.ts +31 -31
  1572. package/app/pages/workshop/composables/useWorkspaceChannels.ts +62 -62
  1573. package/app/pages/workshop/composables/useWorkspaceShell.ts +136 -136
  1574. package/app/pages/workshop/schedules.vue +553 -553
  1575. package/app/pages/workshop/w/[wsId].vue +221 -221
  1576. package/app/plugins/aw-plugins.client.ts +213 -213
  1577. package/app/plugins/esc-close.client.ts +31 -31
  1578. package/app/stores/workshop/hitl.ts +183 -183
  1579. package/app/stores/workshop/narrow-fetch.ts +23 -23
  1580. package/app/utils/api-error.ts +75 -75
  1581. package/app/utils/builtin-catalog.ts +104 -104
  1582. package/app/utils/chart-trend.ts +97 -97
  1583. package/app/utils/dcw-driver-badge.ts +16 -16
  1584. package/app/utils/dcw-recipe-form.ts +26 -26
  1585. package/cli/commands/tui.mjs +28 -28
  1586. package/cli/commands/update.mjs +124 -124
  1587. package/cli/core/child-lifecycle.mjs +136 -136
  1588. package/cli/core/meta.mjs +38 -38
  1589. package/cli/core/post-build.mjs +96 -96
  1590. package/config.yml +212 -193
  1591. package/docker-compose.yml +69 -63
  1592. package/docs/aml.md +112 -112
  1593. package/docs/cli.en.md +447 -447
  1594. package/docs/cli.md +412 -412
  1595. package/docs/mcp.en.md +27 -27
  1596. package/docs/multi-harness-architecture.md +248 -248
  1597. package/docs/plugins.en.md +641 -641
  1598. package/docs/plugins.md +630 -630
  1599. package/docs/sdk.en.md +964 -964
  1600. package/docs/sdk.md +900 -900
  1601. package/docs/tui.md +43 -43
  1602. package/i18n/dicts/_en.json +1551 -1551
  1603. package/i18n/dicts/_en2.json +300 -300
  1604. package/i18n/dicts/_en4.json +114 -114
  1605. package/i18n/dicts/agentLanesView.json +61 -61
  1606. package/i18n/dicts/appHeader.json +17 -17
  1607. package/i18n/dicts/channelSessionList.json +51 -51
  1608. package/i18n/dicts/chat.json +79 -79
  1609. package/i18n/dicts/clusterTool.json +4 -4
  1610. package/i18n/dicts/composer.json +38 -38
  1611. package/i18n/dicts/ctpl.json +37 -37
  1612. package/i18n/dicts/dcwDetail.json +219 -219
  1613. package/i18n/dicts/lineOps.json +14 -14
  1614. package/i18n/dicts/multiChannelView.json +13 -13
  1615. package/i18n/dicts/notifications.json +13 -13
  1616. package/i18n/dicts/taskInspectorDrawer.json +25 -25
  1617. package/i18n/dicts/teamPlugins.json +10 -10
  1618. package/i18n/dicts/townView.json +211 -211
  1619. package/i18n/locales/en.ts +3373 -3371
  1620. package/i18n/locales/zh-CN.ts +3372 -3370
  1621. package/mcp/aw-mcp-server.mjs +1 -1
  1622. package/mcp/discovery.mjs +227 -227
  1623. package/package.json +189 -189
  1624. package/public/favicon.svg +14 -14
  1625. package/public/robots.txt +3 -3
  1626. package/scripts/_audit/_live-mqtt-e2e-20261028.mjs +219 -219
  1627. package/scripts/_audit/audit-harness-adapters.md +664 -664
  1628. package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -293
  1629. package/scripts/_audit/bump-version.mjs +51 -51
  1630. package/scripts/_audit/demo-shot-studio.mjs +37 -0
  1631. package/scripts/_audit/demo-shots.mjs +38 -0
  1632. package/scripts/_audit/detached-instance.mjs +112 -112
  1633. package/scripts/_audit/detached-start.mjs +103 -103
  1634. package/scripts/_audit/eda-ui-fix-acceptance.mjs +212 -212
  1635. package/scripts/_audit/gen-demo-report.py +69 -0
  1636. package/scripts/_audit/guard-upstream-liveness.mjs +104 -104
  1637. package/scripts/_audit/http-api-authz-audit.md +657 -657
  1638. package/scripts/_audit/kb-team-mock-e2e.mjs +146 -146
  1639. package/scripts/_audit/kb-team-omp-e2e.mjs +229 -229
  1640. package/scripts/_audit/kill-acceptance-strays.mjs +47 -0
  1641. package/scripts/_audit/mqtt-pub.mjs +13 -0
  1642. package/scripts/_audit/mqtt-topic-probe.mjs +15 -0
  1643. package/scripts/_audit/prompt-injection-probe.mts +76 -76
  1644. package/scripts/_audit/proto-b3-device-4021.mjs +90 -0
  1645. package/scripts/_audit/proto-doc-broker-20261031.mjs +11 -0
  1646. package/scripts/_audit/proto-doc-device-20261031.mjs +53 -0
  1647. package/scripts/_audit/proto-doc-device-4120.mjs +53 -0
  1648. package/scripts/_audit/proto-doc-mqtt-20261031.mjs +32 -0
  1649. package/scripts/_audit/run-full-acceptance-20261030.sh +82 -0
  1650. package/scripts/_audit/run.mjs +21 -21
  1651. package/scripts/_audit/runtime-audit.md +716 -716
  1652. package/scripts/_audit/skills-guided-e2e.mjs +316 -316
  1653. package/scripts/_audit/stability-soak.mjs +252 -252
  1654. package/scripts/_audit/stubs/nuxt-imports.mjs +67 -67
  1655. package/scripts/_audit/ts-register-hook.mjs +12 -12
  1656. package/scripts/_audit/ts-resolve-hook.mjs +96 -96
  1657. package/scripts/_aw0746-stage12.mjs +94 -94
  1658. package/scripts/_aw0746-stage34.mjs +136 -136
  1659. package/scripts/_aw0746-stage6b-train-sweep.mjs +145 -145
  1660. package/scripts/_aw0746-stage6c-jobsmoke.mjs +69 -69
  1661. package/scripts/_dbg-configroot-audit.mjs +86 -86
  1662. package/scripts/_dbg-daq-intervals-func.mjs +115 -115
  1663. package/scripts/_dbg-perms-e2e.mjs +142 -142
  1664. package/scripts/_dbg-protocol-matrix.mjs +462 -462
  1665. package/scripts/_dbg-render-regression.mjs +193 -193
  1666. package/scripts/_dbg-schedule-e2e.mjs +262 -262
  1667. package/scripts/_e2e-ui-functional.mjs +371 -371
  1668. package/scripts/_lib-aml-python-run.mjs +17 -17
  1669. package/scripts/_plc-sim-detached.cjs +22 -22
  1670. package/scripts/_provision-injection-line.mjs +39 -39
  1671. package/scripts/_run-matrix.ps1 +53 -53
  1672. package/scripts/_sweep-button-contrast.mjs +87 -87
  1673. package/scripts/acceptance-aml-hybrid-e2e.ts +396 -396
  1674. package/scripts/acceptance-aml-hybrid-live.mjs +93 -93
  1675. package/scripts/acceptance-aml-model-identity.ts +137 -137
  1676. package/scripts/acceptance-scientific-loop.ts +224 -0
  1677. package/scripts/agent-daq-isolation-e2e.mjs +91 -91
  1678. package/scripts/api-contract-smoke.mjs +126 -126
  1679. package/scripts/api-live-e2e.mjs +91 -32
  1680. package/scripts/ask-hitl-e2e.mjs +96 -96
  1681. package/scripts/aw-expose.mjs +159 -159
  1682. package/scripts/channel-interaction-smoke.mjs +80 -80
  1683. package/scripts/data-studio-ui-e2e.mjs +163 -163
  1684. package/scripts/demo-group-chat-all-real.ts +279 -279
  1685. package/scripts/dev-modbus-simulator.mjs +55 -55
  1686. package/scripts/docs-shots.mjs +36 -36
  1687. package/scripts/e2e-agentteam-chat.mjs +473 -473
  1688. package/scripts/e2e-agentteam-goal-closure.mjs +496 -0
  1689. package/scripts/e2e-agentteam-real-triage.mjs +421 -421
  1690. package/scripts/e2e-aml-decoupled.mjs +162 -162
  1691. package/scripts/e2e-analysis-ledger.mjs +202 -202
  1692. package/scripts/e2e-aw-tui-global.mjs +277 -277
  1693. package/scripts/e2e-binding-modes-real.mjs +442 -442
  1694. package/scripts/e2e-business-loop-real.mjs +391 -391
  1695. package/scripts/e2e-closedloop/cleanup.mjs +27 -27
  1696. package/scripts/e2e-closedloop/lib.mjs +109 -109
  1697. package/scripts/e2e-closedloop/main.mjs +59 -59
  1698. package/scripts/e2e-closedloop/scenarios-accounts.mjs +210 -210
  1699. package/scripts/e2e-closedloop/scenarios-authz.mjs +196 -196
  1700. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +222 -222
  1701. package/scripts/e2e-closedloop/scenarios-plugins.mjs +169 -169
  1702. package/scripts/e2e-closedloop/state.mjs +10 -10
  1703. package/scripts/e2e-config-groups.mjs +238 -238
  1704. package/scripts/e2e-core-bridges-matrix.mjs +303 -303
  1705. package/scripts/e2e-crash-cycle.mjs +108 -108
  1706. package/scripts/e2e-dcw-halfopen-resilience.mjs +140 -0
  1707. package/scripts/e2e-error-handling.mjs +190 -190
  1708. package/scripts/e2e-full-closedloop.mjs +16 -16
  1709. package/scripts/e2e-golive-matrix.mjs +515 -515
  1710. package/scripts/e2e-hil-multi-user.mjs +307 -307
  1711. package/scripts/e2e-hil-restart.mjs +339 -339
  1712. package/scripts/e2e-idd-results-ui.mjs +182 -175
  1713. package/scripts/e2e-line-governance.mjs +352 -352
  1714. package/scripts/e2e-mes-mirror-real.mjs +427 -418
  1715. package/scripts/e2e-model-loop-live.mjs +90 -54
  1716. package/scripts/e2e-multiexpert-remediation-real.mjs +453 -453
  1717. package/scripts/e2e-node-binding-3mode-real.mjs +792 -792
  1718. package/scripts/e2e-node-binding-authz.mjs +372 -372
  1719. package/scripts/e2e-ontology.mjs +393 -393
  1720. package/scripts/e2e-paper-paired-route.mjs +791 -0
  1721. package/scripts/e2e-physical-effect-real.mjs +572 -570
  1722. package/scripts/e2e-plc-plugin-closedloop.mjs +549 -549
  1723. package/scripts/e2e-real-channel-mission.mjs +543 -0
  1724. package/scripts/e2e-security-b0.mjs +280 -0
  1725. package/scripts/e2e-security-b1.mjs +165 -0
  1726. package/scripts/e2e-security-b2b5.mjs +280 -0
  1727. package/scripts/full-stack-shots.mjs +145 -145
  1728. package/scripts/full-tool-injection-harness-e2e.mjs +214 -214
  1729. package/scripts/generate-identifiability-fixtures.ts +98 -0
  1730. package/scripts/hitl-reject-e2e.mjs +131 -131
  1731. package/scripts/line-log-smoke.mjs +260 -260
  1732. package/scripts/live-aml-mockomp.mjs +304 -304
  1733. package/scripts/live-aml-optloop-resume.mjs +322 -322
  1734. package/scripts/live-aml-optloop.mjs +588 -588
  1735. package/scripts/live-aml-stage9.mjs +169 -169
  1736. package/scripts/live-aml-two-goals.mjs +315 -315
  1737. package/scripts/live-demo-seed.mjs +157 -157
  1738. package/scripts/live-optloop-two-modes.mjs +857 -857
  1739. package/scripts/mes-agent-integration-e2e.mjs +361 -361
  1740. package/scripts/onboarding/preflight.mjs +231 -0
  1741. package/scripts/onboarding/provision-line.mjs +11 -1
  1742. package/scripts/onboarding/verify-mirror.mjs +145 -0
  1743. package/scripts/ops-plugins-e2e.mjs +85 -85
  1744. package/scripts/scenario-suite-setup.mjs +337 -337
  1745. package/scripts/scenario-suite-stability.mjs +144 -144
  1746. package/scripts/security-acceptance.mjs +218 -218
  1747. package/scripts/start.mjs +279 -250
  1748. package/scripts/team-coordination-e2e.mjs +96 -96
  1749. package/scripts/test-agentteam-workflow.ts +472 -472
  1750. package/scripts/test-aw-skills.mjs +102 -102
  1751. package/scripts/test-daq-frame-race.mjs +358 -358
  1752. package/scripts/test-data-root.mjs +208 -208
  1753. package/scripts/test-events-index.mjs +176 -176
  1754. package/scripts/test-group-chat-unit/lib.ts +186 -186
  1755. package/scripts/test-group-chat-unit/main.ts +45 -45
  1756. package/scripts/test-group-chat-unit.ts +35 -35
  1757. package/scripts/test-hitl-decision.ts +526 -526
  1758. package/scripts/test-hitl-registry.ts +112 -112
  1759. package/scripts/test-log-flooding.mjs +160 -160
  1760. package/scripts/test-lru.mjs +101 -101
  1761. package/scripts/test-plugin-hardening.mjs +90 -90
  1762. package/scripts/test-plugin-lifecycle.mjs +173 -173
  1763. package/scripts/test-rollback-index.mjs +137 -137
  1764. package/scripts/test-schedule-runtime.ts +309 -309
  1765. package/scripts/test-sdk-surface.mjs +158 -158
  1766. package/scripts/test-serial-bridge.mjs +418 -418
  1767. package/scripts/test-tui-commands.mjs +148 -148
  1768. package/scripts/test-tui-reducers.mjs +72 -72
  1769. package/scripts/three-system-e2e/lib.mjs +79 -79
  1770. package/scripts/three-system-e2e/main.mjs +40 -40
  1771. package/scripts/three-system-e2e/phases/phase-0-user-token.mjs +42 -42
  1772. package/scripts/three-system-e2e/phases/phase-0a2-line-autoselect.mjs +35 -35
  1773. package/scripts/three-system-e2e/phases/phase-0b-fixture-grants.mjs +39 -39
  1774. package/scripts/three-system-e2e/phases/phase-0c-plugin-outbound-auth.mjs +95 -95
  1775. package/scripts/three-system-e2e/phases/stage-1-health.mjs +47 -47
  1776. package/scripts/three-system-e2e/phases/stage-2-5-team-plugins.mjs +84 -84
  1777. package/scripts/three-system-e2e/phases/stage-2-teams-tools-hitl.mjs +184 -184
  1778. package/scripts/three-system-e2e/phases/stage-3-diag.mjs +73 -73
  1779. package/scripts/three-system-e2e/phases/stage-4-plugin-toggle.mjs +53 -53
  1780. package/scripts/three-system-e2e/state.mjs +87 -87
  1781. package/scripts/three-system-e2e.mjs +40 -40
  1782. package/scripts/tool-face-batch-identity-e2e.mjs +222 -222
  1783. package/scripts/tsconfig.json +14 -14
  1784. package/scripts/tui-smoke.mjs +100 -100
  1785. package/scripts/typecheck.mjs +75 -75
  1786. package/scripts/ui/md-lint.mjs +80 -80
  1787. package/scripts/ui/readme-assets.mjs +30 -30
  1788. package/scripts/ui/readme-shots.mjs +42 -42
  1789. package/scripts/ui/record-demo.mjs +557 -557
  1790. package/scripts/ui/record.mjs +225 -225
  1791. package/scripts/ui/seed-admin.mjs +68 -68
  1792. package/scripts/ui/seed-demo.mjs +83 -83
  1793. package/scripts/ui/seed-industrial-demo.mjs +171 -171
  1794. package/scripts/ui/shot-hero.mjs +25 -25
  1795. package/scripts/ui/shots.mjs +75 -75
  1796. package/scripts/ui/verify-nav.mjs +51 -51
  1797. package/scripts/ui/verify-responsive.mjs +285 -285
  1798. package/sdk/client.d.mts +110 -110
  1799. package/sdk/context.mjs +34 -1
  1800. package/sdk/examples/line-sentinel/index.mjs +105 -105
  1801. package/sdk/examples/ops-notifier/index.mjs +34 -34
  1802. package/sdk/examples/sample-insight/index.mjs +39 -39
  1803. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.json +1 -0
  1804. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/942d2679b87b96c612b4f2a425c3ccc5b6f3234f0cf589a8441602f866fbe277.source +41 -0
  1805. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/dd617a82339d2c61e49e28e416aabeb2fc100fb3cb1beca18d02dfb833214af6.source +51 -0
  1806. package/server/.mimosa/hook-status/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2-e67b6b91bf.json +14 -0
  1807. package/server/api/plugins/client/[name].get.ts +18 -18
  1808. package/server/api/plugins/i18n.get.ts +12 -12
  1809. package/server/api/plugins/manifest.get.ts +10 -10
  1810. package/server/api/system/backup/list.get.ts +32 -32
  1811. package/server/api/system/backup/run.post.ts +21 -21
  1812. package/server/api/system/config-groups/[id].delete.ts +21 -21
  1813. package/server/api/system/config-groups/[id].patch.ts +26 -26
  1814. package/server/api/system/config-groups/index.get.ts +21 -21
  1815. package/server/api/system/config-groups/index.post.ts +33 -33
  1816. package/server/api/system/timezone.get.ts +20 -20
  1817. package/server/api/users/login.post.ts +3 -2
  1818. package/server/api/users/register.post.ts +22 -21
  1819. package/server/api/users/tokens/[id]/token.get.ts +11 -11
  1820. package/server/api/workshop/[...path].ts +13 -13
  1821. package/server/api/workshop/a2a/[agentId]/card/index.get.ts +86 -75
  1822. package/server/api/workshop/agent-tools/approvals/index.get.ts +45 -45
  1823. package/server/api/workshop/agent-tools/bindings/[id].delete.ts +26 -26
  1824. package/server/api/workshop/agent-tools/bindings/grant.post.ts +45 -45
  1825. package/server/api/workshop/agent-tools/bindings/index.get.ts +41 -41
  1826. package/server/api/workshop/agent-tools/bindings/revoke.post.ts +42 -42
  1827. package/server/api/workshop/aml/datasets/[id]/preview.get.ts +68 -68
  1828. package/server/api/workshop/aml/datasets/[id].delete.ts +39 -39
  1829. package/server/api/workshop/aml/datasets/[id].get.ts +53 -53
  1830. package/server/api/workshop/aml/datasets/[id].patch.ts +30 -30
  1831. package/server/api/workshop/aml/datasets/index.get.ts +20 -20
  1832. package/server/api/workshop/aml/datasets/index.post.ts +27 -27
  1833. package/server/api/workshop/aml/entities/index.get.ts +13 -13
  1834. package/server/api/workshop/aml/entities/prune.post.ts +28 -28
  1835. package/server/api/workshop/aml/env/index.get.ts +13 -13
  1836. package/server/api/workshop/aml/env/recheck.post.ts +14 -14
  1837. package/server/api/workshop/aml/env/uv.post.ts +21 -21
  1838. package/server/api/workshop/aml/env/venv.post.ts +24 -24
  1839. package/server/api/workshop/aml/experiments/index.get.ts +35 -35
  1840. package/server/api/workshop/aml/index.get.ts +37 -37
  1841. package/server/api/workshop/aml/jobs/[id]/cancel.post.ts +21 -21
  1842. package/server/api/workshop/aml/jobs/[id]/logs.get.ts +23 -23
  1843. package/server/api/workshop/aml/jobs/[id]/retry.post.ts +20 -20
  1844. package/server/api/workshop/aml/jobs/[id].delete.ts +44 -44
  1845. package/server/api/workshop/aml/jobs/[id].get.ts +23 -23
  1846. package/server/api/workshop/aml/jobs/index.get.ts +26 -26
  1847. package/server/api/workshop/aml/models/[id]/predict.post.ts +24 -24
  1848. package/server/api/workshop/aml/models/[id]/promote.post.ts +30 -30
  1849. package/server/api/workshop/aml/models/index.get.ts +48 -48
  1850. package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -18
  1851. package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -18
  1852. package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -30
  1853. package/server/api/workshop/aml/training-plans/index.get.ts +9 -9
  1854. package/server/api/workshop/aml/training-plans/index.post.ts +43 -43
  1855. package/server/api/workshop/analysis/index.post.ts +71 -54
  1856. package/server/api/workshop/approvals/[id]/decide.post.ts +30 -30
  1857. package/server/api/workshop/approvals/index.get.ts +22 -22
  1858. package/server/api/workshop/assets/devices/index.post.ts +55 -53
  1859. package/server/api/workshop/audit.get.ts +43 -43
  1860. package/server/api/workshop/channels/[id]/chat/messages/[messageId]/read.post.ts +22 -22
  1861. package/server/api/workshop/channels/[id]/chat/messages/index.get.ts +29 -29
  1862. package/server/api/workshop/channels/[id]/chat/messages/index.post.ts +51 -51
  1863. package/server/api/workshop/channels/[id]/chat/permissions.get.ts +35 -35
  1864. package/server/api/workshop/channels/[id]/index.patch.ts +64 -64
  1865. package/server/api/workshop/channels/[id]/members/[userId]/approve.post.ts +20 -20
  1866. package/server/api/workshop/channels/[id]/members/[userId].delete.ts +21 -21
  1867. package/server/api/workshop/channels/[id]/members/index.get.ts +23 -23
  1868. package/server/api/workshop/channels/[id]/members/leave.post.ts +20 -20
  1869. package/server/api/workshop/channels/[id]/tasks/index.post.ts +2 -0
  1870. package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -45
  1871. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +91 -72
  1872. package/server/api/workshop/daq/[id]/ingest.post.ts +25 -1
  1873. package/server/api/workshop/daq/[id]/test.post.ts +1 -1
  1874. package/server/api/workshop/daq/index.post.ts +45 -1
  1875. package/server/api/workshop/daq/storage/retention.put.ts +66 -0
  1876. package/server/api/workshop/daq/storage/rollup.post.ts +28 -0
  1877. package/server/api/workshop/daq/storage.get.ts +17 -0
  1878. package/server/api/workshop/daq/templates/[key].delete.ts +2 -2
  1879. package/server/api/workshop/daq/templates/[key].patch.ts +19 -19
  1880. package/server/api/workshop/daq/templates/index.post.ts +18 -18
  1881. package/server/api/workshop/dcw/[id]/write.post.ts +31 -30
  1882. package/server/api/workshop/dcw/[id].delete.ts +41 -41
  1883. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -24
  1884. package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -21
  1885. package/server/api/workshop/dcw/params/[id].delete.ts +19 -19
  1886. package/server/api/workshop/dcw/params/[id].patch.ts +23 -23
  1887. package/server/api/workshop/dcw/params/index.get.ts +27 -27
  1888. package/server/api/workshop/dcw/params/index.post.ts +25 -25
  1889. package/server/api/workshop/dcw/recipes/[id].delete.ts +21 -2
  1890. package/server/api/workshop/dcw/templates/[key].delete.ts +14 -14
  1891. package/server/api/workshop/dcw/templates/[key].patch.ts +16 -16
  1892. package/server/api/workshop/dcw/templates/index.post.ts +15 -15
  1893. package/server/api/workshop/device-twins/[id]/control.post.ts +23 -21
  1894. package/server/api/workshop/device-twins/[id].delete.ts +27 -25
  1895. package/server/api/workshop/device-twins/[id].patch.ts +31 -29
  1896. package/server/api/workshop/eda/runs/[id]/labels.patch.ts +25 -25
  1897. package/server/api/workshop/eda/templates/[id].delete.ts +14 -14
  1898. package/server/api/workshop/eda/templates/[id].get.ts +15 -15
  1899. package/server/api/workshop/eda/templates/[id].patch.ts +20 -20
  1900. package/server/api/workshop/eda/templates/index.get.ts +11 -11
  1901. package/server/api/workshop/eda/templates/index.post.ts +20 -20
  1902. package/server/api/workshop/exp/confirmations/[id]/decide.post.ts +41 -41
  1903. package/server/api/workshop/exp/confirmations/index.get.ts +25 -25
  1904. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -16
  1905. package/server/api/workshop/hitl/respond.post.ts +94 -94
  1906. package/server/api/workshop/notifications/index.get.ts +60 -60
  1907. package/server/api/workshop/notifications/read.post.ts +31 -31
  1908. package/server/api/workshop/ontology/drafts/[draftId]/subgraph.ts +24 -24
  1909. package/server/api/workshop/ops-logs/index.post.ts +92 -87
  1910. package/server/api/workshop/plugins/[name]/disable.post.ts +21 -21
  1911. package/server/api/workshop/plugins/[name]/enable.post.ts +21 -21
  1912. package/server/api/workshop/plugins/[name]/index.get.ts +14 -14
  1913. package/server/api/workshop/process-model/experiments.ts +28 -2
  1914. package/server/api/workshop/schedules/[id]/run.post.ts +15 -15
  1915. package/server/api/workshop/schedules/[id]/runs.get.ts +15 -15
  1916. package/server/api/workshop/schedules/[id].delete.ts +14 -14
  1917. package/server/api/workshop/schedules/[id].get.ts +13 -13
  1918. package/server/api/workshop/schedules/[id].patch.ts +29 -29
  1919. package/server/api/workshop/schedules/index.get.ts +12 -12
  1920. package/server/api/workshop/schedules/index.post.ts +32 -32
  1921. package/server/api/workshop/tasks/[id]/reassign.post.ts +32 -32
  1922. package/server/api/workshop/tasks/[id]/supersede.post.ts +28 -0
  1923. package/server/api/workshop/tasks/[id]/update.post.ts +35 -35
  1924. package/server/api/workshop/teams/[id]/plugins/index.get.ts +36 -36
  1925. package/server/api/workshop/teams/[id]/plugins/index.put.ts +42 -42
  1926. package/server/api/workshop/ws/audience.ts +56 -56
  1927. package/server/api/workshop/ws/db-buffer.ts +68 -68
  1928. package/server/api/workshop/ws/event-mapping.ts +47 -47
  1929. package/server/api/workshop/ws/handlers.ts +132 -132
  1930. package/server/api/workshop/ws/hub.ts +134 -134
  1931. package/server/api/workshop/ws/index.ts +23 -23
  1932. package/server/api/workshop/ws/notification-uplink.ts +77 -77
  1933. package/server/api/workshop/ws/shared.ts +94 -94
  1934. package/server/api/workshop/ws/streams.ts +146 -146
  1935. package/server/middleware/00-security-headers.ts +45 -38
  1936. package/server/middleware/01-rate-guard.ts +129 -101
  1937. package/server/plugins/00-daq-credentials.ts +33 -0
  1938. package/server/plugins/01-instance-guard.ts +118 -82
  1939. package/server/plugins/aml-twin-worker.ts +32 -32
  1940. package/server/plugins/backup.ts +268 -257
  1941. package/server/plugins/daq.ts +40 -1
  1942. package/server/plugins/dev-stability-guard.ts +46 -46
  1943. package/server/plugins/error-ledger.ts +21 -21
  1944. package/server/plugins-builtin/diag-bridge/host/constants.mjs +25 -25
  1945. package/server/plugins-builtin/diag-bridge/host/exports.mjs +104 -104
  1946. package/server/plugins-builtin/diag-bridge/host/index.mjs +15 -15
  1947. package/server/plugins-builtin/diag-bridge/host/intents.mjs +62 -62
  1948. package/server/plugins-builtin/diag-bridge/host/plugin.mjs +759 -753
  1949. package/server/plugins-builtin/diag-bridge/host/snapshot.mjs +93 -93
  1950. package/server/plugins-builtin/diag-bridge/index.mjs +9 -9
  1951. package/server/plugins-builtin/rag-bridge/index.mjs +490 -484
  1952. package/server/plugins-builtin/serial-bridge/client.mjs +211 -211
  1953. package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -409
  1954. package/server/plugins-builtin/serial-bridge/i18n.json +62 -62
  1955. package/server/plugins-builtin/serial-bridge/index.mjs +247 -247
  1956. package/server/plugins-builtin/serial-bridge/lib.mjs +208 -208
  1957. package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -168
  1958. package/server/repositories/user.repository.ts +543 -507
  1959. package/server/schemas/user.schema.ts +74 -74
  1960. package/server/services/system-config/contracts.ts +29 -29
  1961. package/server/services/system-config/dispose.ts +19 -19
  1962. package/server/services/system-config/facade.ts +26 -26
  1963. package/server/services/system-config/groups.ts +108 -108
  1964. package/server/services/system-config/index.ts +21 -21
  1965. package/server/services/system-config/init.ts +26 -26
  1966. package/server/services/system-config/mutate.ts +110 -103
  1967. package/server/services/system-config/plugins.ts +104 -104
  1968. package/server/services/system-config/secrets.ts +50 -0
  1969. package/server/services/system-config/snapshot.ts +70 -59
  1970. package/server/services/system-config/state.ts +79 -79
  1971. package/server/services/system-config/types.ts +58 -58
  1972. package/server/services/user.service.ts +279 -258
  1973. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +1 -0
  1974. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +14 -0
  1975. package/server/services/workshop/agents/adapters/line-spawn.ts +148 -144
  1976. package/server/services/workshop/agents/adapters/omp-rpc-client/api.ts +111 -111
  1977. package/server/services/workshop/agents/adapters/omp-rpc-client/contracts.ts +22 -22
  1978. package/server/services/workshop/agents/adapters/omp-rpc-client/facade.ts +7 -7
  1979. package/server/services/workshop/agents/adapters/omp-rpc-client/helpers.ts +38 -38
  1980. package/server/services/workshop/agents/adapters/omp-rpc-client/index.ts +25 -25
  1981. package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +74 -70
  1982. package/server/services/workshop/agents/adapters/omp-rpc-client/state.ts +65 -65
  1983. package/server/services/workshop/agents/adapters/omp-rpc-client/stdout.ts +92 -92
  1984. package/server/services/workshop/agents/adapters/omp-rpc-client/usage.ts +47 -47
  1985. package/server/services/workshop/agents/agent-badge.ts +38 -38
  1986. package/server/services/workshop/agents/agent-dto.ts +54 -54
  1987. package/server/services/workshop/agents/agent-interface.ts +2 -0
  1988. package/server/services/workshop/agents/base-agent.ts +3 -3
  1989. package/server/services/workshop/agents/binding-authz.ts +66 -66
  1990. package/server/services/workshop/agents/binding-mode.ts +51 -51
  1991. package/server/services/workshop/agents/codex-agent/client.ts +170 -170
  1992. package/server/services/workshop/agents/codex-agent/core.ts +119 -119
  1993. package/server/services/workshop/agents/codex-agent/facade.ts +8 -8
  1994. package/server/services/workshop/agents/codex-agent/helpers.ts +13 -13
  1995. package/server/services/workshop/agents/codex-agent/hitl.ts +138 -138
  1996. package/server/services/workshop/agents/codex-agent/index.ts +14 -14
  1997. package/server/services/workshop/agents/codex-agent/turn.ts +367 -367
  1998. package/server/services/workshop/agents/codex-agent/types.ts +42 -42
  1999. package/server/services/workshop/agents/governance-harness-audit.ts +216 -0
  2000. package/server/services/workshop/agents/harness-process.ts +3 -3
  2001. package/server/services/workshop/agents/harness-spawn-policy.ts +114 -114
  2002. package/server/services/workshop/agents/harness-terminal/api.ts +197 -197
  2003. package/server/services/workshop/agents/harness-terminal/index.ts +17 -17
  2004. package/server/services/workshop/agents/harness-terminal/io.ts +120 -120
  2005. package/server/services/workshop/agents/harness-terminal/park.ts +55 -55
  2006. package/server/services/workshop/agents/harness-terminal/sanitize.ts +98 -98
  2007. package/server/services/workshop/agents/harness-terminal/session.ts +124 -124
  2008. package/server/services/workshop/agents/harness-terminal/shared.ts +74 -74
  2009. package/server/services/workshop/agents/hitl-capabilities.ts +312 -312
  2010. package/server/services/workshop/agents/hitl-decision/answers.ts +32 -32
  2011. package/server/services/workshop/agents/hitl-decision/decide.ts +268 -268
  2012. package/server/services/workshop/agents/hitl-decision/payload.ts +45 -45
  2013. package/server/services/workshop/agents/hitl-decision/shared.ts +108 -108
  2014. package/server/services/workshop/agents/hitl-decision/visibility.ts +94 -94
  2015. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +3 -0
  2016. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +428 -410
  2017. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +4 -1
  2018. package/server/services/workshop/agents/host-tool-bridge/tools/messaging.ts +51 -14
  2019. package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +126 -84
  2020. package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +52 -14
  2021. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +129 -109
  2022. package/server/services/workshop/agents/host-tool-bridge/tools/team.ts +70 -70
  2023. package/server/services/workshop/agents/host-tool-bridge/types.ts +1 -1
  2024. package/server/services/workshop/agents/industrial/aml-activity.ts +131 -131
  2025. package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +3 -0
  2026. package/server/services/workshop/agents/industrial/aml-job-tools.ts +6 -4
  2027. package/server/services/workshop/agents/industrial/audit-query.ts +66 -66
  2028. package/server/services/workshop/agents/industrial/bench-approval-only.ts +394 -0
  2029. package/server/services/workshop/agents/industrial/daq-tools.ts +79 -20
  2030. package/server/services/workshop/agents/industrial/dcw-tools.ts +10 -1
  2031. package/server/services/workshop/agents/industrial/exp-tools.ts +104 -104
  2032. package/server/services/workshop/agents/industrial/fallback-hints.ts +31 -0
  2033. package/server/services/workshop/agents/industrial/identifiability-tools.ts +247 -0
  2034. package/server/services/workshop/agents/industrial/index.ts +1 -0
  2035. package/server/services/workshop/agents/industrial/manual-approval.ts +5 -3
  2036. package/server/services/workshop/agents/industrial/ops-tools.ts +115 -29
  2037. package/server/services/workshop/agents/industrial/optimization-tools.ts +33 -19
  2038. package/server/services/workshop/agents/industrial/param-tools.ts +69 -69
  2039. package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +4 -3
  2040. package/server/services/workshop/agents/mock-agent.ts +4 -0
  2041. package/server/services/workshop/agents/node-bindings.repo.ts +210 -210
  2042. package/server/services/workshop/agents/node-delegation.ts +204 -204
  2043. package/server/services/workshop/agents/omp-agent/agentteam-audit.ts +147 -0
  2044. package/server/services/workshop/agents/omp-agent/client.ts +1 -1
  2045. package/server/services/workshop/agents/omp-agent/core.ts +146 -146
  2046. package/server/services/workshop/agents/omp-agent/event-mapping.ts +21 -0
  2047. package/server/services/workshop/agents/omp-agent/facade.ts +8 -8
  2048. package/server/services/workshop/agents/omp-agent/helpers.ts +37 -37
  2049. package/server/services/workshop/agents/omp-agent/index.ts +16 -16
  2050. package/server/services/workshop/agents/omp-agent/tools-steer.ts +100 -6
  2051. package/server/services/workshop/agents/omp-agent/types.ts +45 -45
  2052. package/server/services/workshop/agents/opencode-agent/core.ts +77 -77
  2053. package/server/services/workshop/agents/opencode-agent/facade.ts +8 -8
  2054. package/server/services/workshop/agents/opencode-agent/helpers.ts +29 -29
  2055. package/server/services/workshop/agents/opencode-agent/hitl.ts +113 -113
  2056. package/server/services/workshop/agents/opencode-agent/index.ts +16 -16
  2057. package/server/services/workshop/agents/opencode-agent/lifecycle.ts +44 -44
  2058. package/server/services/workshop/agents/opencode-agent/server.ts +244 -244
  2059. package/server/services/workshop/agents/opencode-agent/turn.ts +278 -278
  2060. package/server/services/workshop/agents/opencode-agent/types.ts +54 -54
  2061. package/server/services/workshop/agents/plugin-governance.ts +22 -2
  2062. package/server/services/workshop/agents/tool-classes.ts +56 -44
  2063. package/server/services/workshop/aml/action-coverage.ts +253 -0
  2064. package/server/services/workshop/aml/causal-claim.ts +68 -0
  2065. package/server/services/workshop/aml/clean.ts +120 -120
  2066. package/server/services/workshop/aml/dataset-builder.ts +23 -0
  2067. package/server/services/workshop/aml/entity.ts +367 -367
  2068. package/server/services/workshop/aml/env-lease.ts +178 -148
  2069. package/server/services/workshop/aml/gates.ts +45 -1
  2070. package/server/services/workshop/aml/identifiability.ts +335 -0
  2071. package/server/services/workshop/aml/intervention-ledger.ts +281 -0
  2072. package/server/services/workshop/aml/job-orchestrator/broadcast.ts +37 -37
  2073. package/server/services/workshop/aml/job-orchestrator/control.ts +94 -94
  2074. package/server/services/workshop/aml/job-orchestrator/failure.ts +96 -96
  2075. package/server/services/workshop/aml/job-orchestrator/index.ts +22 -22
  2076. package/server/services/workshop/aml/job-orchestrator/process.ts +101 -101
  2077. package/server/services/workshop/aml/job-orchestrator/shared.ts +53 -53
  2078. package/server/services/workshop/aml/job-orchestrator/status.ts +20 -20
  2079. package/server/services/workshop/aml/job-orchestrator/tick.ts +37 -37
  2080. package/server/services/workshop/aml/model-registry.ts +16 -2
  2081. package/server/services/workshop/aml/ontology-learning.ts +143 -0
  2082. package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  2083. package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
  2084. package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
  2085. package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  2086. package/server/services/workshop/aml/python/train-example.py +92 -92
  2087. package/server/services/workshop/aml/runtime.ts +137 -137
  2088. package/server/services/workshop/aml/stats.ts +140 -140
  2089. package/server/services/workshop/aml/twin/calibration-worker.ts +150 -150
  2090. package/server/services/workshop/aml/twin/cross-check.ts +176 -0
  2091. package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -332
  2092. package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -185
  2093. package/server/services/workshop/aml/twin/prompt-composer.ts +143 -143
  2094. package/server/services/workshop/aml/twin/training-plans.ts +260 -260
  2095. package/server/services/workshop/aml/twin/write-guard.ts +19 -19
  2096. package/server/services/workshop/assets/character-asset.repo.ts +1 -1
  2097. package/server/services/workshop/assets/device-twin.repo.ts +1 -1
  2098. package/server/services/workshop/bench-mode.ts +22 -0
  2099. package/server/services/workshop/daq/alarm-notify.ts +122 -102
  2100. package/server/services/workshop/daq/daq-controller/contracts.ts +42 -39
  2101. package/server/services/workshop/daq/daq-controller/crud.ts +220 -210
  2102. package/server/services/workshop/daq/daq-controller/driver-probe.ts +68 -67
  2103. package/server/services/workshop/daq/daq-controller/facade.ts +28 -28
  2104. package/server/services/workshop/daq/daq-controller/frames.ts +138 -137
  2105. package/server/services/workshop/daq/daq-controller/helpers.ts +52 -52
  2106. package/server/services/workshop/daq/daq-controller/index.ts +22 -22
  2107. package/server/services/workshop/daq/daq-controller/push.ts +22 -0
  2108. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +214 -186
  2109. package/server/services/workshop/daq/daq-controller/types.ts +5 -0
  2110. package/server/services/workshop/daq/daq-node.ts +7 -0
  2111. package/server/services/workshop/daq/daq-templates.ts +235 -225
  2112. package/server/services/workshop/daq/drivers/mock.ts +130 -130
  2113. package/server/services/workshop/daq/drivers/modbus-rtu.ts +67 -67
  2114. package/server/services/workshop/daq/drivers/modbus-tcp.ts +321 -310
  2115. package/server/services/workshop/daq/drivers/mqtt.ts +28 -0
  2116. package/server/services/workshop/daq/drivers/opcua.ts +227 -227
  2117. package/server/services/workshop/daq/drivers/s7-stub.ts +29 -29
  2118. package/server/services/workshop/daq/drivers/shared.ts +6 -0
  2119. package/server/services/workshop/daq/field-group.ts +266 -0
  2120. package/server/services/workshop/daq/host-bindings.ts +71 -71
  2121. package/server/services/workshop/daq/host-ports.ts +65 -65
  2122. package/server/services/workshop/daq/infra-credentials.ts +201 -0
  2123. package/server/services/workshop/daq/infra.ts +250 -229
  2124. package/server/services/workshop/daq/ingest-policy.ts +80 -66
  2125. package/server/services/workshop/daq/objectstore/index.ts +88 -88
  2126. package/server/services/workshop/daq/storage/index.ts +157 -4
  2127. package/server/services/workshop/daq/storage/retention.ts +142 -0
  2128. package/server/services/workshop/daq/storage/sqlite.adapter.ts +16 -3
  2129. package/server/services/workshop/daq/storage/timescale-rollup.ts +600 -0
  2130. package/server/services/workshop/daq/storage/timescale.adapter.ts +46 -13
  2131. package/server/services/workshop/daq/storage/tsdb-port.ts +120 -0
  2132. package/server/services/workshop/db/aml-team-seeds.ts +118 -118
  2133. package/server/services/workshop/db/backup-registry.ts +33 -33
  2134. package/server/services/workshop/db/channel-member.repo.ts +122 -122
  2135. package/server/services/workshop/db/channel.repo.ts +203 -203
  2136. package/server/services/workshop/db/chat-message.repo.ts +261 -233
  2137. package/server/services/workshop/db/database/index.ts +18 -18
  2138. package/server/services/workshop/db/database/json.ts +14 -14
  2139. package/server/services/workshop/db/database/open.ts +8 -0
  2140. package/server/services/workshop/db/database/rows.ts +6 -1
  2141. package/server/services/workshop/db/database/schema.ts +46 -2
  2142. package/server/services/workshop/db/database/seed-data.ts +60 -60
  2143. package/server/services/workshop/db/database/seed.ts +6 -6
  2144. package/server/services/workshop/db/hitl-request.repo.ts +221 -221
  2145. package/server/services/workshop/db/message.repo.ts +10 -3
  2146. package/server/services/workshop/db/notification.repo.ts +199 -199
  2147. package/server/services/workshop/db/readonly.ts +30 -30
  2148. package/server/services/workshop/db/scheduled-task.repo.ts +235 -235
  2149. package/server/services/workshop/db/schema.sql +7 -0
  2150. package/server/services/workshop/db/task.repo.ts +8 -3
  2151. package/server/services/workshop/db/transaction.ts +72 -72
  2152. package/server/services/workshop/dcw/dcw-controller/actuation.ts +7 -0
  2153. package/server/services/workshop/dcw/dcw-controller/contracts.ts +16 -16
  2154. package/server/services/workshop/dcw/dcw-controller/control.ts +78 -78
  2155. package/server/services/workshop/dcw/dcw-controller/crud.ts +5 -0
  2156. package/server/services/workshop/dcw/dcw-controller/facade.ts +19 -19
  2157. package/server/services/workshop/dcw/dcw-controller/helpers.ts +62 -61
  2158. package/server/services/workshop/dcw/dcw-controller/index.ts +22 -22
  2159. package/server/services/workshop/dcw/dcw-controller/params.ts +97 -97
  2160. package/server/services/workshop/dcw/dcw-controller/products.ts +103 -103
  2161. package/server/services/workshop/dcw/dcw-controller/recipes.ts +14 -8
  2162. package/server/services/workshop/dcw/dcw-controller/state.ts +88 -71
  2163. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +22 -2
  2164. package/server/services/workshop/dcw/dcw-controller/write.ts +225 -224
  2165. package/server/services/workshop/dcw/dcw-templates.ts +136 -136
  2166. package/server/services/workshop/dcw/drivers/mqtt.ts +4 -3
  2167. package/server/services/workshop/dcw/mqtt-payload.ts +64 -0
  2168. package/server/services/workshop/dcw/param-conversion.ts +78 -78
  2169. package/server/services/workshop/dcw/param-map.repo.ts +349 -349
  2170. package/server/services/workshop/dcw/plugin-bridge.ts +45 -45
  2171. package/server/services/workshop/dcw/recipe-rollback-manager/contracts.ts +26 -26
  2172. package/server/services/workshop/dcw/recipe-rollback-manager/facade.ts +13 -13
  2173. package/server/services/workshop/dcw/recipe-rollback-manager/helpers.ts +30 -30
  2174. package/server/services/workshop/dcw/recipe-rollback-manager/index.ts +17 -17
  2175. package/server/services/workshop/dcw/recipe-rollback-manager/internal.ts +33 -33
  2176. package/server/services/workshop/dcw/recipe-rollback-manager/judge.ts +52 -52
  2177. package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +138 -137
  2178. package/server/services/workshop/dcw/recipe-rollback-manager/state.ts +21 -21
  2179. package/server/services/workshop/dcw/recipe-rollback-manager/types.ts +3 -3
  2180. package/server/services/workshop/dcw/recipe-rollback-manager/views.ts +214 -214
  2181. package/server/services/workshop/eda/data-export.ts +275 -274
  2182. package/server/services/workshop/eda/template-repo.ts +101 -101
  2183. package/server/services/workshop/exp/exp-collector.ts +275 -275
  2184. package/server/services/workshop/exp/exp-state.repo.ts +339 -339
  2185. package/server/services/workshop/json-store.mjs +143 -137
  2186. package/server/services/workshop/line-scope.ts +80 -80
  2187. package/server/services/workshop/mes/mes-controller.ts +1164 -1164
  2188. package/server/services/workshop/mes/mes-hook.ts +594 -567
  2189. package/server/services/workshop/net/ssrf.ts +83 -74
  2190. package/server/services/workshop/ontology/subgraph.core.ts +300 -300
  2191. package/server/services/workshop/ontology/subgraph.service.ts +113 -113
  2192. package/server/services/workshop/ops/error-ledger.ts +209 -209
  2193. package/server/services/workshop/optimization/profile-adopt.service.ts +28 -2
  2194. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.json +1 -0
  2195. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.mvjqkcs6-68688-fb7131a89c.baseline/190a6772a4e43801737b4ba6072eb9d53d3099b5d8a9e6f57bc5e8592a26a6c4.source +274 -0
  2196. package/server/services/workshop/optimization/python/.mimosa/hook-status/session_187ec97f45d4bd02369bbe94da527cf1-01ed7f04fa.json +14 -0
  2197. package/server/services/workshop/optimization/python/__pycache__/problems.cpython-312.pyc +0 -0
  2198. package/server/services/workshop/plugins/host/api.mjs +90 -90
  2199. package/server/services/workshop/plugins/host/config.mjs +135 -135
  2200. package/server/services/workshop/plugins/host/index.mjs +23 -23
  2201. package/server/services/workshop/plugins/host/init.mjs +128 -109
  2202. package/server/services/workshop/plugins/host/reload.mjs +8 -1
  2203. package/server/services/workshop/plugins/host/rollback.mjs +72 -72
  2204. package/server/services/workshop/plugins/host/state.mjs +54 -54
  2205. package/server/services/workshop/plugins/host/toggle.mjs +64 -64
  2206. package/server/services/workshop/plugins/host.mjs +9 -9
  2207. package/server/services/workshop/process-model/experiment-runner.ts +393 -0
  2208. package/server/services/workshop/process-model/experiment.ts +25 -10
  2209. package/server/services/workshop/runtime/agent-runtime/facade.ts +7 -7
  2210. package/server/services/workshop/runtime/agent-runtime/harness-failure.ts +58 -0
  2211. package/server/services/workshop/runtime/agent-runtime/helpers.ts +18 -18
  2212. package/server/services/workshop/runtime/agent-runtime/index.ts +19 -19
  2213. package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +160 -137
  2214. package/server/services/workshop/runtime/agent-runtime/message.ts +37 -2
  2215. package/server/services/workshop/runtime/agent-runtime/state.ts +18 -3
  2216. package/server/services/workshop/runtime/agent-runtime/types.ts +2 -0
  2217. package/server/services/workshop/runtime/channel-runtime.ts +80 -1
  2218. package/server/services/workshop/runtime/chat-mention.ts +164 -164
  2219. package/server/services/workshop/runtime/chat-projection.ts +246 -246
  2220. package/server/services/workshop/runtime/embedding-provider.ts +100 -83
  2221. package/server/services/workshop/runtime/execution-mode.ts +8 -0
  2222. package/server/services/workshop/runtime/manager/admin-agents.ts +268 -268
  2223. package/server/services/workshop/runtime/manager/admin-channel.ts +19 -14
  2224. package/server/services/workshop/runtime/manager/bus.ts +182 -182
  2225. package/server/services/workshop/runtime/manager/channel-template-constants.ts +20 -20
  2226. package/server/services/workshop/runtime/manager/chat-reply.ts +181 -181
  2227. package/server/services/workshop/runtime/manager/chat.ts +446 -386
  2228. package/server/services/workshop/runtime/manager/contracts.ts +7 -0
  2229. package/server/services/workshop/runtime/manager/facade.ts +24 -24
  2230. package/server/services/workshop/runtime/manager/helpers.ts +122 -119
  2231. package/server/services/workshop/runtime/manager/index.ts +42 -42
  2232. package/server/services/workshop/runtime/manager/internal.ts +73 -73
  2233. package/server/services/workshop/runtime/manager/notifications.ts +108 -108
  2234. package/server/services/workshop/runtime/manager/runtime-observe.ts +1 -3
  2235. package/server/services/workshop/runtime/manager/runtime-wiring.ts +18 -6
  2236. package/server/services/workshop/runtime/manager/schedules.ts +7 -0
  2237. package/server/services/workshop/runtime/manager/state.ts +14 -0
  2238. package/server/services/workshop/runtime/manager/tasks.ts +34 -1
  2239. package/server/services/workshop/runtime/manager/teams.ts +148 -148
  2240. package/server/services/workshop/runtime/manager/workspace.ts +1 -0
  2241. package/server/services/workshop/runtime/memory/contracts.ts +18 -18
  2242. package/server/services/workshop/runtime/memory/facade.ts +10 -10
  2243. package/server/services/workshop/runtime/memory/helpers.ts +196 -196
  2244. package/server/services/workshop/runtime/memory/index.ts +27 -27
  2245. package/server/services/workshop/runtime/memory/score.ts +33 -33
  2246. package/server/services/workshop/runtime/memory/state.ts +40 -40
  2247. package/server/services/workshop/runtime/monitor.ts +3 -3
  2248. package/server/services/workshop/runtime/platform-notice.ts +113 -113
  2249. package/server/services/workshop/runtime/schedule-runtime.ts +347 -347
  2250. package/server/services/workshop/runtime/scheduler-loop/contracts.ts +29 -29
  2251. package/server/services/workshop/runtime/scheduler-loop/facade.ts +7 -7
  2252. package/server/services/workshop/runtime/scheduler-loop/helpers.ts +14 -14
  2253. package/server/services/workshop/runtime/scheduler-loop/index.ts +16 -16
  2254. package/server/services/workshop/runtime/scheduler-loop/rules.ts +17 -1
  2255. package/server/services/workshop/runtime/scheduler-loop/tick.ts +31 -3
  2256. package/server/services/workshop/runtime/task-engine/create.ts +15 -1
  2257. package/server/services/workshop/runtime/task-engine/facade.ts +7 -7
  2258. package/server/services/workshop/runtime/task-engine/helpers.ts +2 -0
  2259. package/server/services/workshop/runtime/task-engine/index.ts +15 -15
  2260. package/server/services/workshop/runtime/task-engine/lifecycle.ts +68 -9
  2261. package/server/services/workshop/runtime/task-engine/types.ts +3 -3
  2262. package/server/services/workshop/runtime/user-notification-hub.ts +192 -192
  2263. package/server/services/workshop/settings.ts +39 -2
  2264. package/server/services/workshop/types/a2a.ts +16 -1
  2265. package/server/services/workshop/types/task.ts +2 -0
  2266. package/server/types/pg.d.ts +49 -49
  2267. package/server/utils/approval-gate.ts +67 -67
  2268. package/server/utils/asset-auth.ts +15 -0
  2269. package/server/utils/mojibake-guard.ts +29 -29
  2270. package/server/utils/request-ip.ts +29 -0
  2271. package/server/utils/response.ts +3 -6
  2272. package/server/utils/stability-severity.ts +77 -77
  2273. package/shared/config/groups.mjs +241 -241
  2274. package/shared/config/schema.json +173 -152
  2275. package/shared/daq-protocol.ts +8 -0
  2276. package/shared/dcw-protocol/catalog.ts +1 -0
  2277. package/shared/dcw-protocol/closed-loop.ts +4 -0
  2278. package/shared/lru.mjs +97 -97
  2279. package/tui/README.md +74 -74
  2280. package/tui/aw-tui.mjs +445 -445
  2281. package/tui/commands/index.mjs +287 -287
  2282. package/tui/components/chat-log.mjs +42 -42
  2283. package/tui/components/monitor-pane.mjs +39 -39
  2284. package/tui/components/root.mjs +53 -53
  2285. package/tui/components/status-bar.mjs +33 -33
  2286. package/tui/lib/api.mjs +82 -82
  2287. package/tui/lib/pickers.mjs +121 -121
  2288. package/tui/lib/reducers.mjs +218 -218
  2289. package/tui/lib/state.mjs +86 -86
  2290. package/tui/lib/virtual-terminal.mjs +48 -48
  2291. package/tui/lib/ws.mjs +125 -125
  2292. package/tui/theme.mjs +38 -38
  2293. package/.output/public/_nuxt/9Kt-rxrm.js +0 -1
  2294. package/.output/public/_nuxt/ATAvN55g.js +0 -1
  2295. package/.output/public/_nuxt/B3GEA4IW.js +0 -1
  2296. package/.output/public/_nuxt/B9qIhT7k2.js +0 -1
  2297. package/.output/public/_nuxt/BBTI9r9T2.js +0 -1
  2298. package/.output/public/_nuxt/BE9oKpOt.js +0 -1
  2299. package/.output/public/_nuxt/BHOjkDAJ.js +0 -21
  2300. package/.output/public/_nuxt/BTaGYNZF2.js +0 -1
  2301. package/.output/public/_nuxt/BXUDD9fv.js +0 -1
  2302. package/.output/public/_nuxt/BXbZ_hei.js +0 -1
  2303. package/.output/public/_nuxt/BaGy_jAI2.js +0 -1
  2304. package/.output/public/_nuxt/BdfAuX81.js +0 -1
  2305. package/.output/public/_nuxt/BoXKUOiN2.js +0 -1
  2306. package/.output/public/_nuxt/Buj_DMJ-.js +0 -1
  2307. package/.output/public/_nuxt/Bv7dyPx4.js +0 -1
  2308. package/.output/public/_nuxt/BvjY-Xks.js +0 -1
  2309. package/.output/public/_nuxt/BxC9PAu-2.js +0 -1
  2310. package/.output/public/_nuxt/Bzfzp9-f.js +0 -1
  2311. package/.output/public/_nuxt/CT4bi_Y4.js +0 -1
  2312. package/.output/public/_nuxt/CTGJHZ8X2.js +0 -1
  2313. package/.output/public/_nuxt/CWcaJnFp.js +0 -1
  2314. package/.output/public/_nuxt/CeCSjB9O2.js +0 -1
  2315. package/.output/public/_nuxt/CnoJJb7B.js +0 -1
  2316. package/.output/public/_nuxt/Crf8_Ad02.js +0 -1
  2317. package/.output/public/_nuxt/CtMTOx_-2.js +0 -1
  2318. package/.output/public/_nuxt/Cv9OcYm3.js +0 -1
  2319. package/.output/public/_nuxt/CxIF09Zj2.js +0 -1
  2320. package/.output/public/_nuxt/CxR0TyUA.js +0 -1
  2321. package/.output/public/_nuxt/D9tNM-1a.js +0 -9
  2322. package/.output/public/_nuxt/DL8QM0x5.js +0 -1
  2323. package/.output/public/_nuxt/DO9Y3eoU.js +0 -20
  2324. package/.output/public/_nuxt/DQLBGo6O.js +0 -1
  2325. package/.output/public/_nuxt/DSqQKrMK2.js +0 -1
  2326. package/.output/public/_nuxt/DXc4yISs.js +0 -47
  2327. package/.output/public/_nuxt/DXmEuVFQ2.js +0 -1
  2328. package/.output/public/_nuxt/DeXAMdSa2.js +0 -1
  2329. package/.output/public/_nuxt/DjjOAXrj2.js +0 -1
  2330. package/.output/public/_nuxt/DkRozlDP2.js +0 -1
  2331. package/.output/public/_nuxt/DoprKJ5a2.js +0 -1
  2332. package/.output/public/_nuxt/DvI5fMX12.js +0 -1
  2333. package/.output/public/_nuxt/DzWyfYJ12.js +0 -2
  2334. package/.output/public/_nuxt/EXs4hr_w2.js +0 -2
  2335. package/.output/public/_nuxt/K5Xen0wZ2.js +0 -1
  2336. package/.output/public/_nuxt/LS9Wa05P.js +0 -1
  2337. package/.output/public/_nuxt/MmlCf-EZ.js +0 -1
  2338. package/.output/public/_nuxt/OmpTerminalPanel.DMWgGwDs.css +0 -1
  2339. package/.output/public/_nuxt/PluginSlot.BqBzLD4T.css +0 -1
  2340. package/.output/public/_nuxt/TownView.DQaU1HuK.css +0 -1
  2341. package/.output/public/_nuxt/TugRY_4O.js +0 -1
  2342. package/.output/public/_nuxt/UgCvr7b2.js +0 -1
  2343. package/.output/public/_nuxt/WCG1-KXf2.js +0 -16
  2344. package/.output/public/_nuxt/WybiLTow2.js +0 -8
  2345. package/.output/public/_nuxt/YWsTLN5m.js +0 -1
  2346. package/.output/public/_nuxt/Zn0BZpf0.js +0 -3
  2347. package/.output/public/_nuxt/ZzOyoXex2.js +0 -1
  2348. package/.output/public/_nuxt/_id_.Be5JaH-P.css +0 -1
  2349. package/.output/public/_nuxt/_wsId_.DSOfdfx2.css +0 -1
  2350. package/.output/public/_nuxt/agents.CRomddYR.css +0 -1
  2351. package/.output/public/_nuxt/aml.DgOMpDpv.css +0 -1
  2352. package/.output/public/_nuxt/builds/meta/02ba4bc7-f353-4183-a619-716921b5f0dc.json +0 -1
  2353. package/.output/public/_nuxt/default.CpAx70gC.css +0 -1
  2354. package/.output/public/_nuxt/eNEgl-ZF.js +0 -1
  2355. package/.output/public/_nuxt/fJv3DH8b.js +0 -1
  2356. package/.output/public/_nuxt/hyLdZsOd2.js +0 -1
  2357. package/.output/public/_nuxt/logs.6VGjPS34.css +0 -1
  2358. package/.output/public/_nuxt/monitor.OoNTwfMJ.css +0 -1
  2359. package/.output/public/_nuxt/o8sYG6xx2.js +0 -1
  2360. package/.output/public/_nuxt/ontology.D4P756Tc.css +0 -1
  2361. package/.output/public/_nuxt/operations.C48ggFa5.css +0 -1
  2362. package/.output/public/_nuxt/pages.Dpa28tJW.css +0 -1
  2363. package/.output/public/_nuxt/permissions.CrV-4t-6.css +0 -1
  2364. package/.output/public/_nuxt/px0VQ09m.js +0 -2
  2365. package/.output/public/_nuxt/schedules.DYWOjGHm.css +0 -1
  2366. package/.output/public/_nuxt/teams.DEJoJ4QV.css +0 -1
  2367. package/.output/public/_nuxt/tokens.DKZWCP5v.css +0 -1
  2368. package/.output/public/_nuxt/tools.DP-nsTli.css +0 -1
  2369. package/.output/public/_nuxt/workshop.PT1xhP8C.css +0 -1
  2370. package/.output/server/chunks/_/AuthGate-G74Wr5IV.mjs +0 -716
  2371. package/.output/server/chunks/_/AuthGate-G74Wr5IV.mjs.map +0 -1
  2372. package/.output/server/chunks/_/FormItemContext-DmuQqaeJ.mjs +0 -72
  2373. package/.output/server/chunks/_/FormItemContext-DmuQqaeJ.mjs.map +0 -1
  2374. package/.output/server/chunks/_/OmpTerminalPanel-CVn7GF98.mjs +0 -942
  2375. package/.output/server/chunks/_/OmpTerminalPanel-CVn7GF98.mjs.map +0 -1
  2376. package/.output/server/chunks/_/PluginSlot-CZlGlRoR.mjs +0 -141
  2377. package/.output/server/chunks/_/PluginSlot-CZlGlRoR.mjs.map +0 -1
  2378. package/.output/server/chunks/_/TownView-CaxNtCrZ.mjs +0 -6496
  2379. package/.output/server/chunks/_/TownView-CaxNtCrZ.mjs.map +0 -1
  2380. package/.output/server/chunks/_/_id_-CvCH8aqA.mjs +0 -2045
  2381. package/.output/server/chunks/_/_id_-CvCH8aqA.mjs.map +0 -1
  2382. package/.output/server/chunks/_/_id_-X_k47fyM.mjs +0 -392
  2383. package/.output/server/chunks/_/_id_-X_k47fyM.mjs.map +0 -1
  2384. package/.output/server/chunks/_/_wsId_-CIXvt220.mjs +0 -14589
  2385. package/.output/server/chunks/_/_wsId_-CIXvt220.mjs.map +0 -1
  2386. package/.output/server/chunks/_/agents-Bipi0xxl.mjs +0 -1078
  2387. package/.output/server/chunks/_/agents-Bipi0xxl.mjs.map +0 -1
  2388. package/.output/server/chunks/_/alert-CNGhs--Y.mjs +0 -263
  2389. package/.output/server/chunks/_/alert-CNGhs--Y.mjs.map +0 -1
  2390. package/.output/server/chunks/_/aml-gCTIxLoE.mjs +0 -814
  2391. package/.output/server/chunks/_/aml-gCTIxLoE.mjs.map +0 -1
  2392. package/.output/server/chunks/_/analysis-BrSFajFi.mjs +0 -533
  2393. package/.output/server/chunks/_/analysis-BrSFajFi.mjs.map +0 -1
  2394. package/.output/server/chunks/_/api--f4L9O86.mjs +0 -64
  2395. package/.output/server/chunks/_/api--f4L9O86.mjs.map +0 -1
  2396. package/.output/server/chunks/_/api-CRGCw6io.mjs +0 -53
  2397. package/.output/server/chunks/_/api-CRGCw6io.mjs.map +0 -1
  2398. package/.output/server/chunks/_/api-DKutH26K.mjs +0 -72
  2399. package/.output/server/chunks/_/api-DKutH26K.mjs.map +0 -1
  2400. package/.output/server/chunks/_/api-error-BrL8jXVC.mjs +0 -47
  2401. package/.output/server/chunks/_/api-error-BrL8jXVC.mjs.map +0 -1
  2402. package/.output/server/chunks/_/apiClient-DrCvj3Zb.mjs +0 -81
  2403. package/.output/server/chunks/_/apiClient-DrCvj3Zb.mjs.map +0 -1
  2404. package/.output/server/chunks/_/board-DB55AvRS.mjs +0 -189
  2405. package/.output/server/chunks/_/board-DB55AvRS.mjs.map +0 -1
  2406. package/.output/server/chunks/_/builtin-catalog-edpDcgfL.mjs.map +0 -1
  2407. package/.output/server/chunks/_/card-BECE6y_G.mjs +0 -953
  2408. package/.output/server/chunks/_/card-BECE6y_G.mjs.map +0 -1
  2409. package/.output/server/chunks/_/channel-templates-C0Njk-Ir.mjs +0 -942
  2410. package/.output/server/chunks/_/channel-templates-C0Njk-Ir.mjs.map +0 -1
  2411. package/.output/server/chunks/_/chart-pipeline-BpoWYMK_.mjs.map +0 -1
  2412. package/.output/server/chunks/_/chart-trend-BWeZh5Lv.mjs.map +0 -1
  2413. package/.output/server/chunks/_/checkbox-C6xY5uc6.mjs +0 -439
  2414. package/.output/server/chunks/_/checkbox-C6xY5uc6.mjs.map +0 -1
  2415. package/.output/server/chunks/_/client-only-DQ6Q0w4J.mjs +0 -43
  2416. package/.output/server/chunks/_/client-only-DQ6Q0w4J.mjs.map +0 -1
  2417. package/.output/server/chunks/_/constants-HPHJvjne.mjs +0 -142
  2418. package/.output/server/chunks/_/constants-HPHJvjne.mjs.map +0 -1
  2419. package/.output/server/chunks/_/core-CRlsQhzd.mjs +0 -294
  2420. package/.output/server/chunks/_/core-CRlsQhzd.mjs.map +0 -1
  2421. package/.output/server/chunks/_/daq-VLM0Ud2Y.mjs +0 -1266
  2422. package/.output/server/chunks/_/daq-VLM0Ud2Y.mjs.map +0 -1
  2423. package/.output/server/chunks/_/data-Bgx_w04W.mjs +0 -481
  2424. package/.output/server/chunks/_/data-Bgx_w04W.mjs.map +0 -1
  2425. package/.output/server/chunks/_/dcw-BstEJzQ4.mjs +0 -505
  2426. package/.output/server/chunks/_/dcw-BstEJzQ4.mjs.map +0 -1
  2427. package/.output/server/chunks/_/dcw-driver-badge-Df5wL_ZA.mjs.map +0 -1
  2428. package/.output/server/chunks/_/default-Dmo-rt5V.mjs +0 -2353
  2429. package/.output/server/chunks/_/default-Dmo-rt5V.mjs.map +0 -1
  2430. package/.output/server/chunks/_/descriptions-B3uhDesi.mjs +0 -406
  2431. package/.output/server/chunks/_/descriptions-B3uhDesi.mjs.map +0 -1
  2432. package/.output/server/chunks/_/drawer-DwXxapMg.mjs +0 -834
  2433. package/.output/server/chunks/_/drawer-DwXxapMg.mjs.map +0 -1
  2434. package/.output/server/chunks/_/dropdown-DLrGy-Fs.mjs +0 -14
  2435. package/.output/server/chunks/_/dropdown-DLrGy-Fs.mjs.map +0 -1
  2436. package/.output/server/chunks/_/dropdown-nsGv8Gqx.mjs +0 -540
  2437. package/.output/server/chunks/_/dropdown-nsGv8Gqx.mjs.map +0 -1
  2438. package/.output/server/chunks/_/es-DXSEkmAm.mjs +0 -43
  2439. package/.output/server/chunks/_/es-DXSEkmAm.mjs.map +0 -1
  2440. package/.output/server/chunks/_/firstNotUndefined-laiThpLD.mjs +0 -2448
  2441. package/.output/server/chunks/_/firstNotUndefined-laiThpLD.mjs.map +0 -1
  2442. package/.output/server/chunks/_/form-Cw2Ex9w5.mjs +0 -4712
  2443. package/.output/server/chunks/_/form-Cw2Ex9w5.mjs.map +0 -1
  2444. package/.output/server/chunks/_/hasIn-RYRGomyg.mjs +0 -553
  2445. package/.output/server/chunks/_/hasIn-RYRGomyg.mjs.map +0 -1
  2446. package/.output/server/chunks/_/hitl-CQowkJ6s.mjs +0 -132
  2447. package/.output/server/chunks/_/hitl-CQowkJ6s.mjs.map +0 -1
  2448. package/.output/server/chunks/_/input-CJgB-RL6.mjs +0 -2181
  2449. package/.output/server/chunks/_/input-CJgB-RL6.mjs.map +0 -1
  2450. package/.output/server/chunks/_/input-number-CQKL42p_.mjs +0 -1120
  2451. package/.output/server/chunks/_/input-number-CQKL42p_.mjs.map +0 -1
  2452. package/.output/server/chunks/_/interval-CfceaI3F.mjs +0 -9
  2453. package/.output/server/chunks/_/interval-CfceaI3F.mjs.map +0 -1
  2454. package/.output/server/chunks/_/isNumeric-DQiJ-b15.mjs +0 -7
  2455. package/.output/server/chunks/_/isNumeric-DQiJ-b15.mjs.map +0 -1
  2456. package/.output/server/chunks/_/logs-Dt4ejjjU.mjs +0 -492
  2457. package/.output/server/chunks/_/logs-Dt4ejjjU.mjs.map +0 -1
  2458. package/.output/server/chunks/_/menu-xO8ocVtL.mjs +0 -1952
  2459. package/.output/server/chunks/_/menu-xO8ocVtL.mjs.map +0 -1
  2460. package/.output/server/chunks/_/monitor-vqmGVVN5.mjs +0 -2253
  2461. package/.output/server/chunks/_/monitor-vqmGVVN5.mjs.map +0 -1
  2462. package/.output/server/chunks/_/narrow-fetch-CcG-BPxc.mjs.map +0 -1
  2463. package/.output/server/chunks/_/ontology-ih0HgPpL.mjs +0 -1406
  2464. package/.output/server/chunks/_/ontology-ih0HgPpL.mjs.map +0 -1
  2465. package/.output/server/chunks/_/operations-BHmdVOUk.mjs +0 -311
  2466. package/.output/server/chunks/_/operations-BHmdVOUk.mjs.map +0 -1
  2467. package/.output/server/chunks/_/optimizer-DyvIYE4A.mjs +0 -202
  2468. package/.output/server/chunks/_/optimizer-DyvIYE4A.mjs.map +0 -1
  2469. package/.output/server/chunks/_/pages-C2KTn0U1.mjs +0 -542
  2470. package/.output/server/chunks/_/pages-C2KTn0U1.mjs.map +0 -1
  2471. package/.output/server/chunks/_/pagination-BTzq7dD5.mjs +0 -1346
  2472. package/.output/server/chunks/_/pagination-BTzq7dD5.mjs.map +0 -1
  2473. package/.output/server/chunks/_/permissions-BbTI02WI.mjs +0 -637
  2474. package/.output/server/chunks/_/permissions-BbTI02WI.mjs.map +0 -1
  2475. package/.output/server/chunks/_/pipeline-BgNjQ4J3.mjs +0 -212
  2476. package/.output/server/chunks/_/pipeline-BgNjQ4J3.mjs.map +0 -1
  2477. package/.output/server/chunks/_/plugins-CplEv3mY.mjs +0 -272
  2478. package/.output/server/chunks/_/plugins-CplEv3mY.mjs.map +0 -1
  2479. package/.output/server/chunks/_/popconfirm-DuGF7ty-.mjs +0 -340
  2480. package/.output/server/chunks/_/popconfirm-DuGF7ty-.mjs.map +0 -1
  2481. package/.output/server/chunks/_/responsiveObserve-CzRpNXkr.mjs +0 -78
  2482. package/.output/server/chunks/_/responsiveObserve-CzRpNXkr.mjs.map +0 -1
  2483. package/.output/server/chunks/_/schedules-BN4t_4PG.mjs +0 -7172
  2484. package/.output/server/chunks/_/schedules-BN4t_4PG.mjs.map +0 -1
  2485. package/.output/server/chunks/_/segmented-29uEKZ3D.mjs +0 -341
  2486. package/.output/server/chunks/_/segmented-29uEKZ3D.mjs.map +0 -1
  2487. package/.output/server/chunks/_/select-CJb2XrQf.mjs +0 -3923
  2488. package/.output/server/chunks/_/select-CJb2XrQf.mjs.map +0 -1
  2489. package/.output/server/chunks/_/settings-BQaAoT4q.mjs +0 -1014
  2490. package/.output/server/chunks/_/settings-BQaAoT4q.mjs.map +0 -1
  2491. package/.output/server/chunks/_/space-BByD-mFE.mjs +0 -110
  2492. package/.output/server/chunks/_/space-BByD-mFE.mjs.map +0 -1
  2493. package/.output/server/chunks/_/spin-XhbgGeLP.mjs +0 -357
  2494. package/.output/server/chunks/_/spin-XhbgGeLP.mjs.map +0 -1
  2495. package/.output/server/chunks/_/studio-D5r5Rzaq.mjs +0 -336
  2496. package/.output/server/chunks/_/studio-D5r5Rzaq.mjs.map +0 -1
  2497. package/.output/server/chunks/_/switch-DWcwVFxW.mjs +0 -377
  2498. package/.output/server/chunks/_/switch-DWcwVFxW.mjs.map +0 -1
  2499. package/.output/server/chunks/_/table-Zhuo7Fq-.mjs +0 -7546
  2500. package/.output/server/chunks/_/table-Zhuo7Fq-.mjs.map +0 -1
  2501. package/.output/server/chunks/_/tabs-BCwBXjNt.mjs +0 -1924
  2502. package/.output/server/chunks/_/tabs-BCwBXjNt.mjs.map +0 -1
  2503. package/.output/server/chunks/_/tag-CRW-anwy.mjs +0 -1156
  2504. package/.output/server/chunks/_/tag-CRW-anwy.mjs.map +0 -1
  2505. package/.output/server/chunks/_/teams-BUtsNTet.mjs +0 -1203
  2506. package/.output/server/chunks/_/teams-BUtsNTet.mjs.map +0 -1
  2507. package/.output/server/chunks/_/tokens-o8lT3x-p.mjs +0 -1062
  2508. package/.output/server/chunks/_/tokens-o8lT3x-p.mjs.map +0 -1
  2509. package/.output/server/chunks/_/tools-DRb5HTtU.mjs +0 -487
  2510. package/.output/server/chunks/_/tools-DRb5HTtU.mjs.map +0 -1
  2511. package/.output/server/chunks/_/tooltip-GlMrUZzx.mjs +0 -920
  2512. package/.output/server/chunks/_/tooltip-GlMrUZzx.mjs.map +0 -1
  2513. package/.output/server/chunks/_/town-BPA3G6yX.mjs +0 -133
  2514. package/.output/server/chunks/_/town-BPA3G6yX.mjs.map +0 -1
  2515. package/.output/server/chunks/_/town-BV-hbwb5.mjs +0 -75
  2516. package/.output/server/chunks/_/town-BV-hbwb5.mjs.map +0 -1
  2517. package/.output/server/chunks/_/types-D6J7slEa.mjs +0 -5565
  2518. package/.output/server/chunks/_/types-D6J7slEa.mjs.map +0 -1
  2519. package/.output/server/chunks/_/types-DWqIeMRP.mjs +0 -76
  2520. package/.output/server/chunks/_/types-DWqIeMRP.mjs.map +0 -1
  2521. package/.output/server/chunks/_/useAgentHarnessOptions-dDHiEoK2.mjs +0 -124
  2522. package/.output/server/chunks/_/useAgentHarnessOptions-dDHiEoK2.mjs.map +0 -1
  2523. package/.output/server/chunks/_/useAgentTemplateActions-S3dtH5UW.mjs +0 -77
  2524. package/.output/server/chunks/_/useAgentTemplateActions-S3dtH5UW.mjs.map +0 -1
  2525. package/.output/server/chunks/_/useAgentTemplateDialogState-CZzpu5og.mjs +0 -67
  2526. package/.output/server/chunks/_/useAgentTemplateDialogState-CZzpu5og.mjs.map +0 -1
  2527. package/.output/server/chunks/_/useAgentTemplateForm-D8gneIvd.mjs +0 -117
  2528. package/.output/server/chunks/_/useAgentTemplateForm-D8gneIvd.mjs.map +0 -1
  2529. package/.output/server/chunks/_/useAgentTemplatesCatalog-DHUpubKM.mjs +0 -133
  2530. package/.output/server/chunks/_/useAgentTemplatesCatalog-DHUpubKM.mjs.map +0 -1
  2531. package/.output/server/chunks/_/useAmlDatasets-CDg3Qbpv.mjs +0 -92
  2532. package/.output/server/chunks/_/useAmlDatasets-CDg3Qbpv.mjs.map +0 -1
  2533. package/.output/server/chunks/_/useAmlEntities-Bcaput4Y.mjs +0 -86
  2534. package/.output/server/chunks/_/useAmlEntities-Bcaput4Y.mjs.map +0 -1
  2535. package/.output/server/chunks/_/useAmlEnv-Dga_Nq6z.mjs +0 -194
  2536. package/.output/server/chunks/_/useAmlEnv-Dga_Nq6z.mjs.map +0 -1
  2537. package/.output/server/chunks/_/useAmlExperiments-CFngqLM3.mjs +0 -89
  2538. package/.output/server/chunks/_/useAmlExperiments-CFngqLM3.mjs.map +0 -1
  2539. package/.output/server/chunks/_/useAmlFormat-C2sl3MGB.mjs +0 -82
  2540. package/.output/server/chunks/_/useAmlFormat-C2sl3MGB.mjs.map +0 -1
  2541. package/.output/server/chunks/_/useAmlJobs-C7onZkcR.mjs +0 -267
  2542. package/.output/server/chunks/_/useAmlJobs-C7onZkcR.mjs.map +0 -1
  2543. package/.output/server/chunks/_/useAmlModels-B2b3mx4d.mjs +0 -93
  2544. package/.output/server/chunks/_/useAmlModels-B2b3mx4d.mjs.map +0 -1
  2545. package/.output/server/chunks/_/useAmlNotes-6gZX7tbx.mjs +0 -86
  2546. package/.output/server/chunks/_/useAmlNotes-6gZX7tbx.mjs.map +0 -1
  2547. package/.output/server/chunks/_/useAmlPredict-DwOmM2ke.mjs +0 -130
  2548. package/.output/server/chunks/_/useAmlPredict-DwOmM2ke.mjs.map +0 -1
  2549. package/.output/server/chunks/_/useAnalysisFeed-CpPsKh_I.mjs +0 -129
  2550. package/.output/server/chunks/_/useAnalysisFeed-CpPsKh_I.mjs.map +0 -1
  2551. package/.output/server/chunks/_/useDaqAddNode-QtJja03_.mjs +0 -142
  2552. package/.output/server/chunks/_/useDaqAddNode-QtJja03_.mjs.map +0 -1
  2553. package/.output/server/chunks/_/useDaqDetailBinding-Dd5c4bep.mjs +0 -70
  2554. package/.output/server/chunks/_/useDaqDetailBinding-Dd5c4bep.mjs.map +0 -1
  2555. package/.output/server/chunks/_/useDaqDetailFrames-C2gvrOr6.mjs +0 -79
  2556. package/.output/server/chunks/_/useDaqDetailFrames-C2gvrOr6.mjs.map +0 -1
  2557. package/.output/server/chunks/_/useDaqDetailHistory-Bhht_iFw.mjs +0 -176
  2558. package/.output/server/chunks/_/useDaqDetailHistory-Bhht_iFw.mjs.map +0 -1
  2559. package/.output/server/chunks/_/useDaqDetailNode-BayXtr5W.mjs +0 -99
  2560. package/.output/server/chunks/_/useDaqDetailNode-BayXtr5W.mjs.map +0 -1
  2561. package/.output/server/chunks/_/useDaqDetailParams-D8d1l3_R.mjs +0 -159
  2562. package/.output/server/chunks/_/useDaqDetailParams-D8d1l3_R.mjs.map +0 -1
  2563. package/.output/server/chunks/_/useDaqFilters-TYucwywj.mjs +0 -222
  2564. package/.output/server/chunks/_/useDaqFilters-TYucwywj.mjs.map +0 -1
  2565. package/.output/server/chunks/_/useDaqNodeWindow-1DWj2H5G.mjs +0 -90
  2566. package/.output/server/chunks/_/useDaqNodeWindow-1DWj2H5G.mjs.map +0 -1
  2567. package/.output/server/chunks/_/useDaqOptimizations-o5hubsm8.mjs +0 -136
  2568. package/.output/server/chunks/_/useDaqOptimizations-o5hubsm8.mjs.map +0 -1
  2569. package/.output/server/chunks/_/useDaqStream-BCTOU87S.mjs +0 -395
  2570. package/.output/server/chunks/_/useDaqStream-BCTOU87S.mjs.map +0 -1
  2571. package/.output/server/chunks/_/useDaqTemplates-Fj64LHfn.mjs +0 -187
  2572. package/.output/server/chunks/_/useDaqTemplates-Fj64LHfn.mjs.map +0 -1
  2573. package/.output/server/chunks/_/useDashboardCharts-D45083s_.mjs +0 -354
  2574. package/.output/server/chunks/_/useDashboardCharts-D45083s_.mjs.map +0 -1
  2575. package/.output/server/chunks/_/useDashboardData-Cm_-daeI.mjs +0 -153
  2576. package/.output/server/chunks/_/useDashboardData-Cm_-daeI.mjs.map +0 -1
  2577. package/.output/server/chunks/_/useDcwAddNode-DaqIQSXN.mjs +0 -219
  2578. package/.output/server/chunks/_/useDcwAddNode-DaqIQSXN.mjs.map +0 -1
  2579. package/.output/server/chunks/_/useDcwCards-OhzgHbAI.mjs +0 -67
  2580. package/.output/server/chunks/_/useDcwCards-OhzgHbAI.mjs.map +0 -1
  2581. package/.output/server/chunks/_/useDcwDetailScope-CaWcaiBg.mjs +0 -184
  2582. package/.output/server/chunks/_/useDcwDetailScope-CaWcaiBg.mjs.map +0 -1
  2583. package/.output/server/chunks/_/useDcwDetailTemplates-CrOgqQMX.mjs +0 -148
  2584. package/.output/server/chunks/_/useDcwDetailTemplates-CrOgqQMX.mjs.map +0 -1
  2585. package/.output/server/chunks/_/useDcwFilter-RH511Ra2.mjs +0 -71
  2586. package/.output/server/chunks/_/useDcwFilter-RH511Ra2.mjs.map +0 -1
  2587. package/.output/server/chunks/_/useDcwLedger-Dg61GD1J.mjs +0 -79
  2588. package/.output/server/chunks/_/useDcwLedger-Dg61GD1J.mjs.map +0 -1
  2589. package/.output/server/chunks/_/useDcwLineMutations-CiurWUFF.mjs +0 -137
  2590. package/.output/server/chunks/_/useDcwLineMutations-CiurWUFF.mjs.map +0 -1
  2591. package/.output/server/chunks/_/useDcwLineRun-DTSemEZb.mjs +0 -104
  2592. package/.output/server/chunks/_/useDcwLineRun-DTSemEZb.mjs.map +0 -1
  2593. package/.output/server/chunks/_/useDcwParamApprovals-DpnD-yw0.mjs +0 -121
  2594. package/.output/server/chunks/_/useDcwParamApprovals-DpnD-yw0.mjs.map +0 -1
  2595. package/.output/server/chunks/_/useDcwProducts-CRAl59cn.mjs +0 -93
  2596. package/.output/server/chunks/_/useDcwProducts-CRAl59cn.mjs.map +0 -1
  2597. package/.output/server/chunks/_/useDcwQuery-Cyh_iGa9.mjs +0 -98
  2598. package/.output/server/chunks/_/useDcwQuery-Cyh_iGa9.mjs.map +0 -1
  2599. package/.output/server/chunks/_/useDcwQuickActions-BW5-5HFn.mjs +0 -88
  2600. package/.output/server/chunks/_/useDcwQuickActions-BW5-5HFn.mjs.map +0 -1
  2601. package/.output/server/chunks/_/useDcwRecipes-Ct9bWJwP.mjs +0 -258
  2602. package/.output/server/chunks/_/useDcwRecipes-Ct9bWJwP.mjs.map +0 -1
  2603. package/.output/server/chunks/_/useDcwStream-BerzMqxo.mjs +0 -455
  2604. package/.output/server/chunks/_/useDcwStream-BerzMqxo.mjs.map +0 -1
  2605. package/.output/server/chunks/_/useDcwTemplates-PMVeSLNP.mjs +0 -91
  2606. package/.output/server/chunks/_/useDcwTemplates-PMVeSLNP.mjs.map +0 -1
  2607. package/.output/server/chunks/_/useDcwWrites-CND_sZdb.mjs +0 -140
  2608. package/.output/server/chunks/_/useDcwWrites-CND_sZdb.mjs.map +0 -1
  2609. package/.output/server/chunks/_/useDeviceTwins-FB6rTm-6.mjs +0 -128
  2610. package/.output/server/chunks/_/useDeviceTwins-FB6rTm-6.mjs.map +0 -1
  2611. package/.output/server/chunks/_/useExpConfirmations-b0bE75Yq.mjs +0 -107
  2612. package/.output/server/chunks/_/useExpConfirmations-b0bE75Yq.mjs.map +0 -1
  2613. package/.output/server/chunks/_/useLocalTime-BJ_4vg1E.mjs +0 -55
  2614. package/.output/server/chunks/_/useLocalTime-BJ_4vg1E.mjs.map +0 -1
  2615. package/.output/server/chunks/_/useLogsFormat-B-o4MHy7.mjs +0 -77
  2616. package/.output/server/chunks/_/useLogsFormat-B-o4MHy7.mjs.map +0 -1
  2617. package/.output/server/chunks/_/useLogsManual-Cxka55hz.mjs +0 -89
  2618. package/.output/server/chunks/_/useLogsManual-Cxka55hz.mjs.map +0 -1
  2619. package/.output/server/chunks/_/useLogsQuery-DxMHc7M4.mjs +0 -150
  2620. package/.output/server/chunks/_/useLogsQuery-DxMHc7M4.mjs.map +0 -1
  2621. package/.output/server/chunks/_/useLogsScope-HuOiW-OR.mjs +0 -83
  2622. package/.output/server/chunks/_/useLogsScope-HuOiW-OR.mjs.map +0 -1
  2623. package/.output/server/chunks/_/useMonitorColumns-vVnt3r5Q.mjs +0 -217
  2624. package/.output/server/chunks/_/useMonitorColumns-vVnt3r5Q.mjs.map +0 -1
  2625. package/.output/server/chunks/_/useMonitorData-Bf3w2khj.mjs +0 -135
  2626. package/.output/server/chunks/_/useMonitorData-Bf3w2khj.mjs.map +0 -1
  2627. package/.output/server/chunks/_/useMonitorFormat-DsiVqWoa.mjs +0 -91
  2628. package/.output/server/chunks/_/useMonitorFormat-DsiVqWoa.mjs.map +0 -1
  2629. package/.output/server/chunks/_/useMonitorTerminal-Dj4QwRNW.mjs +0 -71
  2630. package/.output/server/chunks/_/useMonitorTerminal-Dj4QwRNW.mjs.map +0 -1
  2631. package/.output/server/chunks/_/useOperationsFeed-Bg35fcgt.mjs +0 -195
  2632. package/.output/server/chunks/_/useOperationsFeed-Bg35fcgt.mjs.map +0 -1
  2633. package/.output/server/chunks/_/useOpsLog-BEzBrMf4.mjs +0 -149
  2634. package/.output/server/chunks/_/useOpsLog-BEzBrMf4.mjs.map +0 -1
  2635. package/.output/server/chunks/_/useRecipeDispatchApprovals-CZfcMRYk.mjs +0 -156
  2636. package/.output/server/chunks/_/useRecipeDispatchApprovals-CZfcMRYk.mjs.map +0 -1
  2637. package/.output/server/chunks/_/useResponsive-BKDMGTHs.mjs.map +0 -1
  2638. package/.output/server/chunks/_/useTeamActions-CmiuiQiG.mjs +0 -79
  2639. package/.output/server/chunks/_/useTeamActions-CmiuiQiG.mjs.map +0 -1
  2640. package/.output/server/chunks/_/useTeamAddMemberDialog-CMpzf0jO.mjs +0 -84
  2641. package/.output/server/chunks/_/useTeamAddMemberDialog-CMpzf0jO.mjs.map +0 -1
  2642. package/.output/server/chunks/_/useTeamCreateDialog-BnvjXWso.mjs +0 -97
  2643. package/.output/server/chunks/_/useTeamCreateDialog-BnvjXWso.mjs.map +0 -1
  2644. package/.output/server/chunks/_/useTeamDeployDialog-C0FOUYep.mjs +0 -80
  2645. package/.output/server/chunks/_/useTeamDeployDialog-C0FOUYep.mjs.map +0 -1
  2646. package/.output/server/chunks/_/useTeamDialogState-CFRUQxAf.mjs +0 -82
  2647. package/.output/server/chunks/_/useTeamDialogState-CFRUQxAf.mjs.map +0 -1
  2648. package/.output/server/chunks/_/useTeamPluginDialog-Do-07a47.mjs +0 -103
  2649. package/.output/server/chunks/_/useTeamPluginDialog-Do-07a47.mjs.map +0 -1
  2650. package/.output/server/chunks/_/useTeamsCatalog-ClG_gBI8.mjs +0 -123
  2651. package/.output/server/chunks/_/useTeamsCatalog-ClG_gBI8.mjs.map +0 -1
  2652. package/.output/server/chunks/_/useTokenClipboard-CwQpoFeP.mjs +0 -72
  2653. package/.output/server/chunks/_/useTokenClipboard-CwQpoFeP.mjs.map +0 -1
  2654. package/.output/server/chunks/_/useTokenCreate-C4g5eKd3.mjs +0 -115
  2655. package/.output/server/chunks/_/useTokenCreate-C4g5eKd3.mjs.map +0 -1
  2656. package/.output/server/chunks/_/useTokenRename-ClWrxpNk.mjs +0 -87
  2657. package/.output/server/chunks/_/useTokenRename-ClWrxpNk.mjs.map +0 -1
  2658. package/.output/server/chunks/_/useTokenReveal-C8n1Vt9t.mjs +0 -118
  2659. package/.output/server/chunks/_/useTokenReveal-C8n1Vt9t.mjs.map +0 -1
  2660. package/.output/server/chunks/_/useTokensList-CgiH2W1C.mjs +0 -92
  2661. package/.output/server/chunks/_/useTokensList-CgiH2W1C.mjs.map +0 -1
  2662. package/.output/server/chunks/_/useTownBus-D9SoIsAN.mjs.map +0 -1
  2663. package/.output/server/chunks/_/useWorkbenchAuth-DSstfK5Z.mjs +0 -141
  2664. package/.output/server/chunks/_/useWorkbenchAuth-DSstfK5Z.mjs.map +0 -1
  2665. package/.output/server/chunks/_/useWorkbenchWorkspaces-l_0SUOzn.mjs +0 -138
  2666. package/.output/server/chunks/_/useWorkbenchWorkspaces-l_0SUOzn.mjs.map +0 -1
  2667. package/.output/server/chunks/_/useWorkshopApi-Bqe2FlsB.mjs +0 -127
  2668. package/.output/server/chunks/_/useWorkshopApi-Bqe2FlsB.mjs.map +0 -1
  2669. package/.output/server/chunks/_/useWorkshopWs-DP4MbZsb.mjs +0 -1659
  2670. package/.output/server/chunks/_/useWorkshopWs-DP4MbZsb.mjs.map +0 -1
  2671. package/.output/server/chunks/_/useWorkspaceAuth-CzDigJGl.mjs +0 -60
  2672. package/.output/server/chunks/_/useWorkspaceAuth-CzDigJGl.mjs.map +0 -1
  2673. package/.output/server/chunks/_/useWorkspaceChannels-BLtsS6-m.mjs +0 -92
  2674. package/.output/server/chunks/_/useWorkspaceChannels-BLtsS6-m.mjs.map +0 -1
  2675. package/.output/server/chunks/_/useWorkspacePanels-CTwREmq0.mjs +0 -78
  2676. package/.output/server/chunks/_/useWorkspacePanels-CTwREmq0.mjs.map +0 -1
  2677. package/.output/server/chunks/_/useWorkspaceShell-rQHWNNWJ.mjs +0 -168
  2678. package/.output/server/chunks/_/useWorkspaceShell-rQHWNNWJ.mjs.map +0 -1
  2679. package/.output/server/chunks/_/users-BM1ZzxPp.mjs +0 -569
  2680. package/.output/server/chunks/_/users-BM1ZzxPp.mjs.map +0 -1
  2681. package/.output/server/chunks/_/workshop-CUXCV3RH.mjs +0 -546
  2682. package/.output/server/chunks/_/workshop-CUXCV3RH.mjs.map +0 -1
  2683. package/.output/server/chunks/_/workspaces-CmW0cpOt.mjs.map +0 -1
  2684. /package/.output/public/_nuxt/{6P4ZAzxa.js → 6P4ZAzxa2.js} +0 -0
  2685. /package/.output/public/_nuxt/{9j2J4k4w2.js → 9j2J4k4w.js} +0 -0
  2686. /package/.output/public/_nuxt/{BvRk9kiK2.js → DgrK8UCQ.js} +0 -0
  2687. /package/.output/public/_nuxt/{dVw8IHY6.js → dVw8IHY62.js} +0 -0
  2688. /package/.output/public/_nuxt/{k9b520K-2.js → k9b520K-.js} +0 -0
  2689. /package/.output/server/chunks/{_ → build}/builtin-catalog-edpDcgfL.mjs +0 -0
  2690. /package/.output/server/chunks/{_ → build}/chart-pipeline-BpoWYMK_.mjs +0 -0
  2691. /package/.output/server/chunks/{_ → build}/chart-trend-BWeZh5Lv.mjs +0 -0
  2692. /package/.output/server/chunks/{_ → build}/dcw-driver-badge-Df5wL_ZA.mjs +0 -0
  2693. /package/.output/server/chunks/{_ → build}/narrow-fetch-CcG-BPxc.mjs +0 -0
  2694. /package/.output/server/chunks/{_ → build}/useResponsive-BKDMGTHs.mjs +0 -0
  2695. /package/.output/server/chunks/{_ → build}/useTownBus-D9SoIsAN.mjs +0 -0
  2696. /package/.output/server/chunks/{_ → build}/workspaces-CmW0cpOt.mjs +0 -0
@@ -1,664 +1,664 @@
1
- # Harness-adapter audit — `server/services/workshop/agents/`
2
-
3
- Read-only audit. All 20 requested files read completely (plus `registry.ts`, `base-agent.ts`,
4
- `prompt-builder.ts`, `mock-agent.ts`, `harness-models.ts`, `harness-terminal.ts`, `plugin-tools.ts`,
5
- `factory.ts` and the call sites `runtime/agent-runtime.ts`, `runtime/scheduler-loop.ts`,
6
- `runtime/manager.ts`, `plugins/workshop.ts`, `plugins/dev-stability-guard.ts`).
7
- Scratch artifacts only: `scripts/_audit/ndjson-partial-line-repro.mjs`,
8
- `scripts/_audit/opencode-await-ternary-repro.mjs`.
9
-
10
- Compiler evidence: `npx tsc --noEmit --skipLibCheck --target esnext --module esnext
11
- --moduleResolution bundler <all adapters>` (alias-resolution errors filtered out; module-internal
12
- errors reproduced below are independent of path aliases).
13
-
14
- ---
15
-
16
- ## 1. Child-process lifecycle
17
-
18
- ### 1.1 Every spawn site (complete)
19
-
20
- | # | site | API |
21
- |---|---|---|
22
- | S1 | `adapters/line-spawn.ts:114` `return launchChildProcess(file, args, {` | `child_process.spawn`, `shell: false` |
23
- | S2 | `adapters/line-spawn.ts:105` `return launchChildProcess('cmd.exe', ['/d', '/s', '/c', ...line], {` | Windows `.cmd/.bat` shim |
24
- | S3 | `adapters/omp-rpc-client.ts:246` `this.child = spawn(command, args, {` | **bypasses line-spawn** |
25
- | S4 | `harness-process.ts:130` `const child = spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })` | tree-killer |
26
-
27
- `spawnLineProcess` callers: `adapters/stdio-jsonrpc.ts:86`, `adapters/one-shot-cli-agent.ts:366`,
28
- `opencode-agent.ts:734`, `harness-models.ts:53`.
29
-
30
- S3 is a real gap: it does **not** go through `assertPlainExecutable` / `resolveOnPath` / the `cmd.exe`
31
- shim, and it hard-codes `env: { ...process.env, ...this.options.env }` (omp-rpc-client.ts:249) so the
32
- `cleanEnv` whitelist semantics of `line-spawn.ts:88-90` are unavailable to omp.
33
-
34
- ### 1.2 The only tree-killer
35
-
36
- `harness-process.ts:125-157`:
37
-
38
- ```ts
39
- 125: export function killHarnessProcess(pid: number): boolean {
40
- ...
41
- 129: if (process.platform === 'win32') {
42
- 130: const child = spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
43
- ...
44
- 139: process.kill(-pid, 'SIGKILL')
45
- ...
46
- 144: process.kill(pid, 'SIGKILL')
47
- ```
48
-
49
- Direct single-process kills that do **not** reap grandchildren:
50
- `adapters/stdio-jsonrpc.ts:192` `this.child?.kill('SIGKILL')`;
51
- `adapters/stdio-jsonrpc.ts:205` `this.child?.kill('SIGKILL')`;
52
- `adapters/omp-rpc-client.ts:237` `this.child?.kill('SIGKILL')`;
53
- `adapters/omp-rpc-client.ts:382` `this.child?.kill('SIGKILL')`;
54
- `adapters/one-shot-cli-agent.ts:263` `child.kill('SIGKILL')`;
55
- `harness-models.ts:61` `child.kill('SIGKILL')`.
56
-
57
- ### 1.3 (a) Session end / `dispose()`
58
-
59
- Only caller: `runtime/agent-runtime.ts:363-369`
60
-
61
- ```ts
62
- 363: // 清理 impl 持有的资源(omp 子进程等);容错:impl.dispose 可能不存在
63
- 364: try {
64
- 365: await this.impl.dispose?.()
65
- ```
66
-
67
- reached from `manager.shutdown()` (`runtime/manager.ts:992` `await Promise.all([...this.agentIndex.values()].map(a => a.stop()))`)
68
- and from the Nitro hook `plugins/workshop.ts:168-174` `nitroApp.hooks.hook('close', async () => { ... await manager.shutdown() ... })`.
69
-
70
- | adapter | dispose location | child killed? |
71
- |---|---|---|
72
- | omp | `omp-agent.ts:437-449` `await this.client.dispose()` | **single-process only** — `omp-rpc-client.ts:369-389` `this.child?.stdin?.end()` then `this.child?.kill('SIGKILL')` (382). omp's own grandchildren survive. |
73
- | codex | `codex-agent.ts:112-125` `await client.dispose().catch(() => {})` | same weak path via `stdio-jsonrpc.ts:195-218` |
74
- | dsh | `dsh-agent.ts:116-129` | same |
75
- | qwen | `qwen-agent.ts:140-153` | same |
76
- | hermes | `hermes-agent.ts:95-108` | same |
77
- | opencode | `opencode-agent.ts:181-195` `killHarnessProcess(pid)` (185) | **tree** ✓ (+ `this.sseAbort?.abort()` 182) |
78
- | one-shot (gemini/copilot/cursor/crush/goose/pi) | `one-shot-cli-agent.ts:148-151` → `killChild()` (253-265) → `killHarnessProcess(pid)` (259) | **tree** ✓ |
79
- | claude | `claude-agent.ts:113-128` `this.abortCtrl?.abort()` (120), `await this.session?.interrupt?.()` (122) | **no process kill at all**; `getProcessInfo(): null` (`claude-agent.ts:130-132` `return null // SDK 自管二进制生命周期,无宿主侧进程句柄`) |
80
- | mock | no `dispose` method (`mock-agent.ts:38` `export class MockAgentImpl implements AgentInterface {`) | n/a (in-process) |
81
-
82
- Asymmetry worth fixing: `killProcess()` uses the tree killer while `dispose()` on the same class does
83
- not — e.g. `codex-agent.ts:134-138`
84
-
85
- ```ts
86
- 134: killProcess(): void {
87
- 135: const pid = this.client?.pid
88
- 136: if (pid) killHarnessProcess(pid)
89
- 137: else this.client?.kill()
90
- ```
91
-
92
- vs `codex-agent.ts:118` `await client.dispose().catch(() => {})` → `stdio-jsonrpc.ts:205`.
93
-
94
- ### 1.4 (b) Error
95
-
96
- - `one-shot-cli-agent.ts:442-444` — `child.on('error', ...)` calls `finishTurn(...)` only and **does not
97
- clear `this.child`** (contrast the `exit` handler `one-shot-cli-agent.ts:445-447` `this.child = null`).
98
- A later `killChild()` (`one-shot-cli-agent.ts:253-265`) then targets a stale pid.
99
- - `harness-models.ts:59` `child.on('error', err => reject(err))` — the promise rejects but
100
- the timeout timer created at `harness-models.ts:60` is **never cleared** and `child.kill()` is never
101
- called on this path.
102
- - `stdio-jsonrpc.ts:106-109`, `omp-rpc-client.ts:280-283` — handled (reject / notifyError).
103
-
104
- ### 1.5 (c) Timeout
105
-
106
- | adapter | per-turn timeout | on timeout | child killed? | error to UI |
107
- |---|---|---|---|---|
108
- | omp | `omp-agent.ts:838` `const idleTimeoutMs = this.config.promptTimeoutMs ?? 600_000` | `omp-agent.ts:915-928` | **yes** — `client.send({ type: 'abort' })` + `this.killProcess()` + `this.client = null` | `TURN_STALLED` error event (921-927) |
109
- | one-shot | `one-shot-cli-agent.ts:206,238` `?? 600_000` | `one-shot-cli-agent.ts:495-502` | **yes** — `this.killChild()` (496) | `TURN_STALLED` (497-501) |
110
- | codex | `codex-agent.ts:238,278` `?? 600_000` | `codex-agent.ts:463-469` | **no** — only `turn/interrupt` (464) | `CODEX_TURN_STALLED` (466-467) |
111
- | claude | `claude-agent.ts:221,262` | `claude-agent.ts:391-397` | no — `this.session?.interrupt?.()` (392) | `CLAUDE_TURN_STALLED` (394) |
112
- | dsh | `dsh-agent.ts:237,277` | `dsh-agent.ts:417-423` | no — `session/cancel` notify (418) | `DSH_TURN_STALLED` (420) |
113
- | hermes | `hermes-agent.ts:209,249` | `hermes-agent.ts:379-385` | no | `HERMES_TURN_STALLED` (382) |
114
- | qwen | `qwen-agent.ts:259,299` | `qwen-agent.ts:407-413` | no | `QWEN_TURN_STALLED` (410) |
115
- | opencode | `opencode-agent.ts:349,391` | `opencode-agent.ts:505-516` | no — `POST /abort` (507) | `OPENCODE_TURN_STALLED` (510) |
116
- | mock | none | — | — | — |
117
-
118
- Non-killing timeout paths leave the pending promise resolved (they `enqueue`), so nothing hangs — but
119
- the child process keeps running and keeps its model turn burning tokens.
120
-
121
- Per-request (not per-turn) timeouts: `stdio-jsonrpc.ts:133-134`
122
- `reject(new Error(\`${this.options.name} 请求超时: ${method} (id=${id},${timeoutMs ?? this.options.requestTimeoutMs ?? 60_000}ms)\`))`
123
- (adapters pass `requestTimeoutMs: 60_000` — codex-agent.ts:613, dsh-agent.ts:500, qwen-agent.ts:486,
124
- hermes-agent.ts:457 — except `harness-models.ts:110` `requestTimeoutMs: 30_000`);
125
- `omp-rpc-client.ts:309-312` `reject(new Error(\`omp RPC 命令超时: ${command.type} (id=${id})\`))`, 60 s.
126
-
127
- ### 1.6 (d) Parent process exit — **not guaranteed**
128
-
129
- There is **no** `process.on('exit' | 'SIGINT' | 'SIGTERM' | 'beforeExit')` anywhere under `server/`
130
- (only `unhandledRejection`: `plugins/workshop.ts:88`, `plugins/dev-stability-guard.ts:56`;
131
- `uncaughtException`: `plugins/dev-stability-guard.ts:59`). Cleanup depends entirely on the Nitro
132
- `close` hook (`plugins/workshop.ts:168`). Two concrete consequence paths:
133
-
134
- 1. `plugins/dev-stability-guard.ts:53-54`
135
- ```ts
136
- 53: console.error(`[stability-guard] fatal ${kind}, exiting:\n${describe(reason)}`)
137
- 54: process.exit(1)
138
- ```
139
- `process.exit(1)` skips the `close` hook entirely → **every live harness child is orphaned**.
140
- The exemption regex only knows four engines — `plugins/dev-stability-guard.ts:16`
141
- `const ENGINE_BOUNDARY = /\b(opencode|omp|codex|dsh) API\b/i` — so failures from
142
- claude/gemini/copilot/cursor/crush/goose/qwen/pi/hermes are not exempted.
143
- 2. The pid registry is process-local: `harness-process.ts:36`
144
- `const registry = new Map<number, HarnessProcessEntry>()`. After a restart, orphaned children are
145
- unreachable — `listAliveHarnessProcessesByAgent` (`harness-process.ts:87-89`) can only see pids
146
- registered in the current process; there is no OS process-table scan.
147
-
148
- ### 1.7 Windows-specific handling
149
-
150
- - `windowsHide: true` — `line-spawn.ts:109`, `line-spawn.ts:118`, `omp-rpc-client.ts:250`,
151
- `harness-process.ts:130`.
152
- - `.cmd/.bat` shim: `line-spawn.ts:63-66` `if (lower.endsWith('.cmd') || lower.endsWith('.bat')) return { file, needsCmd: true }`
153
- → `line-spawn.ts:99-112` fixed `'cmd.exe'`, `/d /s /c`, per-arg `assertCmdSafeArg` (`line-spawn.ts:78-83`
154
- `/["\r\n\0]/.test(arg)`), `windowsVerbatimArguments: true` (111).
155
- - Tree kill is Windows-`taskkill`-only (`harness-process.ts:130`); `process.kill(-pid, 'SIGKILL')`
156
- (`harness-process.ts:139`) is guarded by `if (process.platform === 'win32')` at line 129, so on Windows
157
- the POSIX branch never runs.
158
- - `process.kill(pid, 0)` liveness probe: `harness-process.ts:107-116` (EPERM treated as alive, 114).
159
- - `resolveOnPath` PATHEXT resolution: `line-spawn.ts:29-55`, incl. `.cmd` last-resort bare name (51-53).
160
- - `one-shot-cli-agent.ts:104-106 sanitizePromptArg` exists specifically because `arg` delivery goes
161
- through the cmd wrapper on Windows.
162
-
163
- ### 1.8 stdio pipes drained?
164
-
165
- | consumer | stdout | stderr |
166
- |---|---|---|
167
- | `stdio-jsonrpc.ts:97-105` | drained | drained (8 KB tail) |
168
- | `omp-rpc-client.ts:253-279` | drained (8 MB line cap) | drained (1 MB cap, `STDERR_CAP` 130) |
169
- | `one-shot-cli-agent.ts:404-432` | drained | drained (8 KB tail) |
170
- | `opencode-agent.ts:745-748` | **NOT drained — no `child.stdout` reference in the file** | drained |
171
- | `harness-models.ts:55-58` | drained | **NOT drained — no `child.stderr` reference in the file** |
172
-
173
- `opencode serve` is long-lived (`opencode-agent.ts:734`), so an unread stdout that exceeds the OS pipe
174
- buffer will block the engine mid-turn. `harness-models.collect()` is bounded by its 45–60 s timeout
175
- (`harness-models.ts:79,144`), so it degrades to a timeout rather than a permanent hang, but returns a
176
- truncated catalog.
177
-
178
- ## 2. Unhandled promise rejection risk
179
-
180
- **Overall: floating promises are overwhelmingly `.catch()`-guarded — I found no unguarded floating
181
- promise that could reject.** The real rejection risk is *synchronous throws inside `async` methods*
182
- (§4.3/§4.4), which the call sites do catch.
183
-
184
- ### 2.1 Floating calls (all verified guarded)
185
-
186
- `void`-guarded: `omp-rpc-client.ts:466`; `omp-agent.ts:169,348,455,596,1065,1171,1172`;
187
- `claude-agent.ts:136,379,392,521`; `codex-agent.ts:430,464,528,556`; `dsh-agent.ts:389,573`;
188
- `qwen-agent.ts:387,535`; `hermes-agent.ts:352,523`; `opencode-agent.ts:475,507,705,892`.
189
-
190
- Floating but `.catch()`-ed (no `void`): `omp-agent.ts:873` `client.send({ type: 'abort' }).catch(() => {})`,
191
- `omp-agent.ts:916` same shape.
192
-
193
- ### 2.2 `async` setTimeout/setInterval callbacks without try/catch
194
-
195
- There is **no `setInterval`** in any of the audited files. Every timer body is synchronous; the two
196
- async timers-adjacent loops have internal try/catch:
197
- `opencode-agent.ts:855-891` (`const connect = async (): Promise<void> => { while (...) { try { ... } catch (err) {...} } }`)
198
- and `claude-agent.ts:521-533` `void (async () => { try { for await (const msg of session) ... } catch ... finally ... })()`.
199
-
200
- ### 2.3 `timer.unref()`
201
-
202
- Exactly three uses in the whole agents tree:
203
- `tool-approvals.ts:83` `timer.unref?.()`, `harness-terminal.ts:301` `session.parkTimer.unref?.()`,
204
- `opencode-agent.ts:92` `srv.unref()`.
205
- **No per-turn / stall / poll / abort-fallback timer is unref'd.** (`AbortSignal.timeout` at
206
- `opencode-agent.ts:766,912` is fine — verified at runtime that Node unrefs it: no `Timeout` appears in
207
- `process.getActiveResourcesInfo()` after `AbortSignal.timeout(60000)`.)
208
-
209
- ### 2.4 Leaked timers (never cleared, never unref'd)
210
-
211
- | file:line | timer | note |
212
- |---|---|---|
213
- | `omp-rpc-client.ts:294` | `setTimeout(() => { if (!this.ready) reject(new Error('omp RPC ready 超时(10s)')) }, 10_000)` | no handle stored → refs the loop 10 s after every successful `start()` |
214
- | `omp-agent.ts:620` | `const timer = setTimeout(abortTurn, timeoutMs)` | **not** cleared on the early-return path `omp-agent.ts:625-629` `if (opts.signal.aborted) { unsub(); resolve([]); return }` → later fires `omp-agent.ts:596` `void this.client?.send({ type: 'abort' }).catch(() => {})` against the shared omp subprocess, cancelling an unrelated live turn |
215
- | `one-shot-cli-agent.ts:506-509` | `setTimeout(() => { resolveWait = null; r() }, Math.min(remaining + 100, 5000))` | no variable |
216
- | `codex-agent.ts:473-476` | `setTimeout(() => { resolveWait = null; r() }, remaining + 100)` | no variable |
217
- | `claude-agent.ts:401-404` | same shape | no variable |
218
- | `dsh-agent.ts:427-430` | same shape | no variable |
219
- | `qwen-agent.ts:417-420` | same shape | no variable |
220
- | `hermes-agent.ts:389-392` | same shape | no variable |
221
- | `codex-agent.ts:431-433` | `setTimeout(() => { if (!isDone) enqueue({ kind: 'done', ... }) }, 5000)` | abort fallback |
222
- | `claude-agent.ts:380-382`, `dsh-agent.ts:381-383`, `qwen-agent.ts:380-382`, `hermes-agent.ts:345-347` | same 5 s abort fallback | |
223
- | `opencode-agent.ts:477` | `setTimeout(() => finishTurn(), 5000)` | abort fallback |
224
- | `harness-models.ts:60-63` | `const timer = setTimeout(...)` | cleared only on `exit` (65); the `error` path (59) leaks it |
225
- | `omp-agent.ts:533`, `harness-terminal.ts:545` | `setTimeout(resolve, 150)` per poll iteration | bounded by 20 s / 8 s deadlines |
226
-
227
- Correctly-cleared counterparts (for contrast): `opencode-agent.ts:520-528,536` and
228
- `omp-agent.ts:932-940,948`.
229
-
230
- ### 2.5 Leaked listeners
231
-
232
- 1. **`adapters/omp-rpc-client.ts:269`** `this.eventListeners.add(onReady as (event: AgentSessionEvent) => void)`
233
- — added inside `start()` on every (re)spawn, never removed; only `dispose()` clears
234
- (`omp-rpc-client.ts:397` `this.eventListeners.clear()`). `handleExit` does not. The `onReady`
235
- closure also captures the **previous** `resolve`/`reject` of an already-settled promise.
236
- 2. **`adapters/stdio-jsonrpc.ts:208`** `this.child.once('exit', () => { clearTimeout(timer); resolve() })`
237
- — on the 3 s timeout path (`stdio-jsonrpc.ts:204-207`) the promise resolves via the timer branch but
238
- this listener is left attached.
239
- 3. `adapters/stdio-jsonrpc.ts:102-105`, `:106-109`, `:110-117` — child listeners never removed
240
- (`removeListener`/`off(` never appears in the file); bounded by child lifetime.
241
- 4. `harness-terminal.ts:387-393 detachTerminalTap` — clears `unsubRaw` but not `session.batchTimer`,
242
- so the pending 50 ms flush (`harness-terminal.ts:175-181`) survives detach.
243
- 5. `adapters/one-shot-cli-agent.ts:406,430` and `opencode-agent.ts:746` — `data` listeners never
244
- removed; bounded per-turn (one-shot) / per-server (opencode).
245
- 6. No `request.destroy()`, no stream `destroy()`, and no `stdin.destroy()` anywhere; the only
246
- teardown is `stdin.end()` (`stdio-jsonrpc.ts:199`, `omp-rpc-client.ts:371`, `one-shot-cli-agent.ts:484,488`).
247
-
248
- ### 2.6 "Dangerous by construction" — `.then()` on an `AsyncGenerator`
249
-
250
- `opencode-agent.ts:396-402`
251
-
252
- ```ts
253
- 396: private runTurn(
254
- 397: prompt: string,
255
- 398: taskId: string | undefined,
256
- 399: opts: { timeoutMs: number, signal?: AbortSignal, beforeStart?: () => void, onDone?: () => void },
257
- 400: ): AsyncGenerator<AgentEvent, void, unknown> {
258
- 401: return this._runTurn(prompt, taskId, opts)
259
- 402: }
260
- ```
261
-
262
- used at `opencode-agent.ts:301-323` `return await this.runTurn(prompt, undefined, {...}).then((events) => {...})`.
263
- Compiler: `opencode-agent.ts(310,8): error TS2339: Property 'then' does not exist on type 'AsyncGenerator<AgentEvent, void, unknown>'`.
264
- At runtime this is `TypeError: ... .then is not a function` inside `async supervise`, contradicting the
265
- in-file intent at `opencode-agent.ts:281-282` ("绝不让引擎故障以 unhandledRejection 形态逃逸"). It is
266
- caught downstream by `runtime/scheduler-loop.ts:309-312`, so opencode's LLM lead-scheduling silently
267
- degrades to the rule engine on every tick.
268
-
269
- ## 3. NDJSON / JSON-RPC streaming correctness
270
-
271
- | site | cross-chunk buffer | `\r\n` | split JSON line | non-JSON banner |
272
- |---|---|---|---|---|
273
- | `adapters/stdio-jsonrpc.ts:234-252` | ✔ | ✔ via `line.trim()` (240) | ✔ | ✔ `catch { continue }` (246-248) |
274
- | `adapters/omp-rpc-client.ts:404-424` | ✔ | ✔ via `line.trim()` (414) | ✔ | ✔ (420-422) |
275
- | `opencode-agent.ts:866-883` (SSE) | ✔ | ✗ only `\n\n` (870) | ✔ (871) | ✔ (877-880) |
276
- | `adapters/one-shot-cli-agent.ts:406-428` | ✗ **BUG** | ✔ `/\r?\n/` (411) | ✗ **lost** | ✗ dropped (418) |
277
-
278
- Correct pattern (verbatim, `stdio-jsonrpc.ts:234-238`):
279
-
280
- ```ts
281
- 234: private onStdout(data: string): void {
282
- 235: this.stdoutBuf += data
283
- 236: if (this.stdoutBuf.length > 8 * 1024 * 1024) this.stdoutBuf = ''
284
- 237: const lines = this.stdoutBuf.split('\n')
285
- 238: this.stdoutBuf = lines.pop() ?? ''
286
- ```
287
-
288
- Caveat on 236: the cap check runs *before* the split, discarding the accumulated partial line — a
289
- single frame > 8 MB desynchronises the stream (the remainder is then parsed as a fresh line).
290
-
291
- ### 3.1 BUG — `one-shot-cli-agent.ts:406-428` parses each chunk with no line buffering
292
-
293
- ```ts
294
- 406: child.stdout?.on('data', (chunk: string) => {
295
- ...
296
- 411: for (const rawLine of chunk.split(/\r?\n/)) {
297
- 412: const line = rawLine.trim()
298
- 413: if (!line) continue
299
- 414: const json = tryParse(line)
300
- 415: if (json === null) {
301
- 416: // 无结构化输出面的引擎:stdout 纯文本行即回复增量;其余(横幅/告警)忽略
302
- 417: if (this.spec.plainTextStdout === true) sink.delta(line)
303
- 418: continue
304
- 419: }
305
- ```
306
-
307
- Concrete breaking input (executed — `scripts/_audit/ndjson-partial-line-repro.mjs`), one logical
308
- NDJSON stream delivered as two `data` events because the payload exceeds the pipe read size (64 KiB):
309
-
310
- ```
311
- chunk#1 {"type":"message","role":"assistant","content":"hello wor
312
- chunk#2 ld"}\n{"type":"result","usage":{"input_tokens":42}}\n
313
- ```
314
-
315
- Observed:
316
-
317
- ```
318
- A one-shot-cli-agent.ts loop : frames=1 ["result"] drops=2 ["{\"type\":\"message\",...,\"hello wor","ld\"}"] assistantText=""
319
- B stdio-jsonrpc.ts loop : frames=2 ["message","result"]
320
- ```
321
-
322
- The whole assistant message is silently lost (never becomes a `delta`), and one frame disappears.
323
- Affects every `OneShotCliAgentImpl` subclass without `plainTextStdout`: gemini, copilot, cursor,
324
- goose, pi. `crush` sets `plainTextStdout: true` (`crush-agent.ts:67`) so it survives but with each
325
- fragment `.trim()`-ed (411-412), altering leading/trailing whitespace of the answer.
326
-
327
- Additional unbounded buffer: `one-shot-cli-agent.ts:405-409`
328
-
329
- ```ts
330
- 405: let stdoutAll = ''
331
- 406: child.stdout?.on('data', (chunk: string) => {
332
- 407: if (this.spec.wholeJsonAtExit === true) {
333
- 408: stdoutAll += chunk
334
- ```
335
-
336
- `stdoutAll` has no cap. Latent only — no shipped spec sets `wholeJsonAtExit`
337
- (only `crush-agent.ts:67` sets `plainTextStdout`).
338
-
339
- ### 3.2 SSE caveat — `opencode-agent.ts:866-883`
340
-
341
- ```ts
342
- 869: buf += decoder.decode(value, { stream: true })
343
- 870: const chunks = buf.split('\n\n')
344
- 871: buf = chunks.pop() ?? ''
345
- ```
346
-
347
- Correct for `\n\n`-delimited SSE. Two gaps: (a) a CRLF-delimited stream (`\r\n\r\n`) never splits and
348
- `buf` grows without bound; (b) multi-line `data:` payloads are parsed line-by-line (873-879), so a
349
- payload split over two `data:` lines is rejected as non-JSON and dropped (880).
350
-
351
- ### 3.3 Non-stream splits (safe)
352
-
353
- `harness-models.ts:82` `for (const rawLine of out.split('\n'))`, `:146`, `:184` — `out` is the fully
354
- collected stdout string, not a chunk. No `readline` usage anywhere in the tree.
355
-
356
- ## 4. Timeout / retry / error propagation
357
-
358
- ### 4.1 Per-turn timeout (quoted) — see table in §1.5
359
-
360
- Every process-based adapter has one except `mock`. All default to `600_000` ms; supervise defaults to
361
- `150_000` (`base-agent.ts:170`, `omp-agent.ts:576`, `opencode-agent.ts:300`, `qwen-agent.ts:219`).
362
-
363
- ### 4.2 Correct propagation to `{ kind: 'error' }`
364
-
365
- Timeout → error event, verified for all nine: `omp-agent.ts:921-927`, `one-shot-cli-agent.ts:497-501`,
366
- `codex-agent.ts:465-468`, `claude-agent.ts:393-396`, `dsh-agent.ts:419-422`, `hermes-agent.ts:381-384`,
367
- `qwen-agent.ts:409-412`, `opencode-agent.ts:508-514`. Non-zero child exit → error event:
368
- `one-shot-cli-agent.ts:469-479`
369
-
370
- ```ts
371
- 469: if (code === 0) {
372
- 470: finishTurn({ kind: 'done' })
373
- 471: }
374
- 472: else {
375
- 473: const custom = this.spec.exitErrorMessage?.(code ?? -1, stderrTail)
376
- 474: finishTurn({
377
- 475: kind: 'error',
378
- 476: code: `${this.spec.harnessId.toUpperCase()}_EXIT_${code ?? -1}`,
379
- ```
380
-
381
- Spawn failure → error event: `one-shot-cli-agent.ts:368-377`, `omp-agent.ts:652-660`.
382
-
383
- ### 4.3 Swallowed errors (verbatim)
384
-
385
- - `base-agent.ts:160-162`
386
- ```ts
387
- 160: catch {
388
- 161: return []
389
- 162: }
390
- ```
391
- `supervise()` failure produces **no AgentEvent at all** — every adapter that relies on the base
392
- implementation (all except omp/opencode/qwen) loses the reason.
393
- - `qwen-agent.ts:229-231` — the same `catch { return [] }`, duplicated.
394
- - `opencode-agent.ts:320-323` `}).catch(() => { this.supervising = false; return [] })` and
395
- `opencode-agent.ts:286-289` `catch (err) { log.warn(...); return [] }`.
396
- - `codex-agent.ts:208-210` compact failure → `log.warn(... 放行)`; `opencode-agent.ts:270-272` same.
397
- - `codex-agent.ts:725-727` `catch (err) { log.warn(\`[CodexAgent:${this.selfAgentId}] CODEX_HOME config 写入失败(信任全局配置):\`, ...) }`
398
- — if the MCP section is not written, the agent runs **without tools** and the turn still reports `done`.
399
- - `opencode-agent.ts:794-796` `catch (err) { log.warn(\`[OpenCodeAgent:${this.selfAgentId}] MCP 桥注册失败(host tools 不可用):\`, ...) }` — same class of silent capability loss.
400
- - `claude-agent.ts:527-529` `catch (err) { log.warn(\`[ClaudeSdk:${this.selfAgentId}] 消息流异常: ...\`) }` — the SDK stream dies but `streamTurn` keeps waiting until the 600 s stall timer; the UI sees nothing until then.
401
- - `omp-rpc-client.ts:420-422` `// 非 JSON 行(理论上不应出现):忽略` and `:549-551` `// chunk 重组失败:忽略`.
402
- - `stdio-jsonrpc.ts:246-248` `catch { continue // 非 JSON 行(横幅/日志混流)忽略 }` — combined with a lost frame this is invisible.
403
- - `harness-models.ts:142` `catch { /* 无凭据则按未登录目录输出 */ }`, `:243` `catch { /* 无 settings.yaml/解析失败 → 仅内置目录 */ }`.
404
-
405
- ### 4.4 `async` methods that throw before doing any work
406
-
407
- | method | throw | compiler evidence |
408
- |---|---|---|
409
- | `QwenAgentImpl.supervise` | `qwen-agent.ts:209` `const prompt = supervisePrompt({` — **`supervisePrompt` is not imported** (`qwen-agent.ts:30` imports only `peerPrompt, systemManual, toolArgsPreview, workerPrompt`) → `ReferenceError`; next failure would be `qwen-agent.ts:219` `const events = await this.collectTurn(...)` (the method is `collectTurnEvents`, `qwen-agent.ts:435`) and `qwen-agent.ts:226` `extractJsonArray(text)` (also not imported) | `qwen-agent.ts(209,20): TS2304: Cannot find name 'supervisePrompt'`; `(219,33): TS2339: Property 'collectTurn' does not exist`; `(226,22): TS2304: Cannot find name 'extractJsonArray'`; `(208,14)/(217,10)/(233,12): TS2341: Property 'supervising' is private and only accessible within class 'BaseAgentImpl'` |
410
- | `OpenCodeAgentImpl.supervise` | `opencode-agent.ts:301` `.then(...)` on an AsyncGenerator | `opencode-agent.ts(310,8): TS2339` |
411
- | `OpenCodeAgentImpl.respondHitl` | `opencode-agent.ts:252` `if (pending.timer) clearTimeout(p.timer)` — `p` is undefined in this scope (the loop variable `p` lives at 652 and 191) → `ReferenceError` **after** the engine was already answered (241/246/249) but **before** `this.pendingHitl.delete(id)` (253) and `getHitlRegistry().resolve(...)` (254) → the local map entry and the global HITL item leak forever, and the REST caller gets a 500 (`server/api/workshop/hitl/respond.post.ts:80` `await manager.respondHarnessHitl(...)` → `runtime/manager.ts:2821` `const ok = await runtime.respondHitl(kind, id, outcome)`) | `opencode-agent.ts(252,37): TS2304: Cannot find name 'p'` |
412
- | `OpenCodeAgentImpl.startServer` | `opencode-agent.ts:805-808` — `await` binds tighter than `?:`, so `created` is a **Promise**, not the session object, and `String(created?.id ?? '')` is always `''`; entry into the 3× retry loop at 811-815 is therefore guaranteed (≥2.5 s `await sleep(2500)`) and the first, real, session is created and abandoned | `opencode-agent.ts(808,38): TS2339: Property 'id' does not exist on type 'Promise<Record<string, unknown>>'`; reproduced in `scripts/_audit/opencode-await-ternary-repro.mjs` (`created instanceof Promise = true`, `this.sessionId = ""`) |
413
-
414
- ```ts
415
- 805: const created = await (this.config.permission ?? DEFAULT_PERMISSION)
416
- 806: ? createWith({ permission: this.config.permission ?? DEFAULT_PERMISSION }).catch(() => createWith(undefined))
417
- 807: : createWith(undefined)
418
- 808: this.sessionId = String(created?.id ?? '')
419
- ```
420
-
421
- Also note the ternary condition `this.config.permission ?? DEFAULT_PERMISSION` can never be falsy
422
- (`DEFAULT_PERMISSION` is a 4-line array literal, `opencode-agent.ts:82-86`), so the `: createWith(undefined)`
423
- branch at 807 is dead code and `permission` is always sent on the first attempt.
424
-
425
- ## 5. DUPLICATION INVENTORY
426
-
427
- Line ranges are exact. "Copies" counts textual copies of the same block; near-copies with token
428
- renames are flagged.
429
-
430
- ### 5.1 MCP-bridge env setup (`AW_BASE_URL` / `AW_AGENT_ID` / `AW_AGENT_TOKEN`)
431
-
432
- | # | function / block | file:lines | copies |
433
- |---|---|---|---|
434
- | D1 | `generateMcpBridgeEnv({ agentId, token, baseUrl, bridgePath })` call site | `codex-agent.ts:606-612`, `codex-agent.ts:690`, `claude-agent.ts:452-457`, `dsh-agent.ts:477-484`, `qwen-agent.ts:461-466`, `hermes-agent.ts:438-443`, `adapters/one-shot-cli-agent.ts:296-301`, `gemini-agent.ts:119` | **8 sites / 7 files** |
435
- | D2 | Redundant repeat calls of the *same* expression inside one function | `dsh-agent.ts:485`, `dsh-agent.ts:486` (three identical `generateMcpBridgeEnv(...)` evaluations in one call) | 3 extra evaluations |
436
- | D3 | Hand-rolled `AW_*` literal object duplicating `harness-env.ts:41-53` | `opencode-agent.ts:786-790` vs `harness-env.ts:44-47` | **2 copies** |
437
- | D4 | `\` ${k} = "${v}"\`` TOML env expansion | `codex-agent.ts:691` | 1 (no dup) |
438
- | D5 | bridge launch pair `process.execPath` + bridge path | `codex-agent.ts:695-696`, `claude-agent.ts:506-508`, `qwen-agent.ts:75`, `gemini-agent.ts:49-51`, `copilot-agent.ts:61`, `cursor-agent.ts:46`, `opencode-agent.ts:784`, `crush-agent.ts:39-43`, `goose-agent.ts:40-41` | **9 copies** |
439
-
440
- Canonical source being duplicated: `harness-env.ts:43-48`
441
-
442
- ```ts
443
- 43: const bridgeEnv = {
444
- 44: AW_BASE_URL: resolvePlatformBaseUrl(input.baseUrl),
445
- 45: AW_AGENT_ID: input.agentId,
446
- 46: AW_AGENT_TOKEN: input.token ?? '',
447
- 47: AW_MCP_TOOL_TIMEOUT_MS: String(200_000),
448
- 48: }
449
- ```
450
-
451
- ### 5.2 `resolveCli` / binary path resolution
452
-
453
- | # | function | file:lines | copies |
454
- |---|---|---|---|
455
- | D6 | `resolveCommand` one-liner `config => (typeof config.command === 'string' && config.command.trim() !== '' ? config.command.trim() : harnessSettings().X_command)` | `gemini-agent.ts:60`, `copilot-agent.ts:85`, `cursor-agent.ts:54`, `crush-agent.ts:59`, `goose-agent.ts:33`, `pi-agent.ts:52` | **6 byte-identical copies** (only the settings key differs) |
456
- | D7 | same rule re-implemented for the registry probe | `registry.ts:106-107` `const cmdFrom = (config) => typeof config?.command === 'string' && config.command.trim() !== '' ? config.command.trim() : ''` | +1 |
457
- | D8 | `getProcessInfo` fallback command strings `'opencode serve' / 'dsh --profile acp' / 'qwen --experimental-acp' / 'hermes acp' / 'codex app-server'` re-stating the spawn argv | `opencode-agent.ts:166`, `dsh-agent.ts:135`, `qwen-agent.ts:158`, `hermes-agent.ts:113`, `codex-agent.ts:131` | 5 |
458
- | D9 | PATH probing: `probeExecutable` re-implements the explicit-path test and the POSIX PATH walk already in `resolveOnPath` | `harness-availability.ts:55-67` vs `adapters/line-spawn.ts:29-55` (explicit-path test `harness-availability.ts:58` ≈ `line-spawn.ts:39`) | 2 |
459
- | D10 | `safeId(agentId)` (identical 4-line body) | `copilot-agent.ts:28-31`, `goose-agent.ts:26-29`, `pi-agent.ts:27-30` | **3 identical copies** |
460
- | D11 | "absolute path, no `..`" override validation | `copilot-agent.ts:37-40`, `pi-agent.ts:36-39` | 2 |
461
-
462
- ### 5.3 `spawn` option assembly
463
-
464
- | # | block | file:lines | copies |
465
- |---|---|---|---|
466
- | D12 | `stdio: ['pipe', 'pipe', 'pipe']` literal | `adapters/line-spawn.ts:106`, `:115`, `adapters/omp-rpc-client.ts:247` | 3 (omp-rpc-client bypasses the shared helper) |
467
- | D13 | `{ cwd: this.config.cwd ?? process.cwd(), env, windowsHide: true }` + `new StdioJsonRpcClient({...})` | `codex-agent.ts:601-614`, `dsh-agent.ts:494-501`, `qwen-agent.ts:480-487`, `hermes-agent.ts:451-458`, `harness-models.ts:110` | **5 copies** |
468
- | D14 | `env = { ...bridge.bridgeEnv, ...(engine-specific keys) }` | `dsh-agent.ts:477-493`, `qwen-agent.ts:468-474`, `hermes-agent.ts:444-449`, `one-shot-cli-agent.ts:315-318`, `gemini-agent.ts:67-70`, `copilot-agent.ts:104-107`, `cursor-agent.ts:62-64`, `crush-agent.ts:68-73`, `goose-agent.ts:47-60`, `pi-agent.ts:66-71`, `claude-agent.ts:458-462`, `opencode-agent.ts:736-740` | **12 copies** |
469
-
470
- ### 5.4 prompt / context assembly
471
-
472
- | # | block | file:lines | copies |
473
- |---|---|---|---|
474
- | D15 | `const taskText = request.message.parts.map((p) => { if ('text' in p) ... }).join('\n')` — a re-implementation of `base-agent.ts:189-197 partsText()` | `codex-agent.ts:222-228`, `claude-agent.ts:205-211`, `dsh-agent.ts:221-227`, `qwen-agent.ts:243-249`, `hermes-agent.ts:193-199`, `opencode-agent.ts:332-338`, `omp-agent.ts:669-675` | **7 copies** |
475
- | D16 | same block for `msgText` in `peerTurn` | `codex-agent.ts:256-262`, `claude-agent.ts:240-246`, `dsh-agent.ts:255-261`, `qwen-agent.ts:277-283`, `hermes-agent.ts:227-233`, `opencode-agent.ts:369-375`, `omp-agent.ts:722-728` | **7 copies** |
476
- | D17 | `fromId` / `requireReply` / `crossChannel` / `toolState.replyContext` prelude | `codex-agent.ts:248-255`, `claude-agent.ts:232-239`, `dsh-agent.ts:247-254`, `qwen-agent.ts:269-276`, `hermes-agent.ts:219-226`, `opencode-agent.ts:361-368`, `one-shot-cli-agent.ts:215-222`, `omp-agent.ts:719-740` | **8 copies** |
477
- | D18 | `workerTurn` skeleton (taskId → `toolState.currentTaskId` → prompt → `yield* streamTurn`) incl. `finally { this.toolState.currentTaskId = null }` | `codex-agent.ts:216-243`, `claude-agent.ts:198-226`, `dsh-agent.ts:215-242`, `qwen-agent.ts:237-264`, `hermes-agent.ts:187-214`, `opencode-agent.ts:326-356`, `one-shot-cli-agent.ts:192-211`, `omp-agent.ts:642-688` | **8 copies** |
478
- | D19 | `peerTurn` skeleton | `codex-agent.ts:245-279`, `claude-agent.ts:228-263`, `dsh-agent.ts:244-278`, `qwen-agent.ts:266-300`, `hermes-agent.ts:216-250`, `opencode-agent.ts:358-392`, `one-shot-cli-agent.ts:213-239`, `omp-agent.ts:695-759` | **8 copies** |
479
- | D20 | constructor identity block `super({ agentId: typeof config.agentId === 'string' ? ... , role: config.role === 'lead' ? 'lead' : 'worker', ... })` | `codex-agent.ts:95-100`, `claude-agent.ts:96-101`, `dsh-agent.ts:99-104`, `qwen-agent.ts:123-128`, `hermes-agent.ts:76-81`, `opencode-agent.ts:144-149`, `one-shot-cli-agent.ts:130-135`, `omp-agent.ts:398-403` | **8 copies** |
480
- | D21 | `contextPrefix()` / `systemManual()` per-turn assembly paired with `workerPrompt`/`peerPrompt` | same 8 files, `workerTurn`/`peerTurn` bodies (see D18/D19) | 8 |
481
- | D22 | `partsText` twin in the base itself | `base-agent.ts:189-197` — canonical, already exists | (target, not duplicate) |
482
-
483
- ### 5.5 `parseXxxLine` / event-line mappers
484
-
485
- | # | function | file:lines | copies |
486
- |---|---|---|---|
487
- | D23 | ACP `pushUpdate(params)` notification mapper (`agent_message_chunk` / `tool_call` / `tool_call_update` / usage) | `dsh-agent.ts:327-371`, `hermes-agent.ts:293-336` | **2 near-identical copies (~95 %)**; only `DSH_ACP_METHODS` vs `HERMES_ACP_METHODS` and 2 comment lines differ |
488
- | D24 | inner `statusEvent(text)` helper | `dsh-agent.ts:335-344`, `hermes-agent.ts:301-310`, `claude-agent.ts:311-316`, `opencode-agent.ts:551-558`, `one-shot-cli-agent.ts:339-348` | **5 copies** |
489
- | D25 | `tryParse(line)` JSON guard | `one-shot-cli-agent.ts:108-115` (only one in adapters; `stdio-jsonrpc.ts:244`, `omp-rpc-client.ts:417` are inline `JSON.parse`) | 1 + 2 inline |
490
- | D26 | engine `mapLine` dispatch tables | `gemini-agent.ts:76-108`, `copilot-agent.ts:112-129`, `cursor-agent.ts:68-95`, `crush-agent.ts:78-100`, `goose-agent.ts:61-91`, `pi-agent.ts:82-101` | 6 (shape, not text) |
491
-
492
- ### 5.6 output accumulation loops
493
-
494
- | # | block | file:lines | copies |
495
- |---|---|---|---|
496
- | D27 | `enqueue` closure (artifact-before-done + `isDone` latch + `resolveWait?.()`) | `codex-agent.ts:301-322`, `dsh-agent.ts:304-324`, `hermes-agent.ts:271-291`, `qwen-agent.ts:321-340`, `claude-agent.ts:286-303`, `opencode-agent.ts:423-446`, `one-shot-cli-agent.ts:386-402`, `omp-agent.ts:826-832` | **8** (dsh/hermes/qwen are textually identical except qwen's missing `this.turnActive = false` at dsh:314/hermes:281 — behaviourally equivalent because qwen sets it in the following branch at 332-335) |
497
- | D28 | artifact literal `{ kind: 'artifact', artifact: { artifactId: randomUUID(), name: 'output', parts: [{ text }], lastChunk: true, totalChunks: 1 } }` | `codex-agent.ts:304-309`, `dsh-agent.ts:307-312`, `hermes-agent.ts:274-279`, `qwen-agent.ts:324-329`, `claude-agent.ts:288-293`, `one-shot-cli-agent.ts:390-395`, `opencode-agent.ts:428-433` + `:460-465`, `omp-agent.ts:1035-1044` | **9** |
498
- | D29 | drain loop `while (!isDone \|\| queue.length > 0)` + stall watchdog + `await new Promise((r) => { resolveWait = r; setTimeout(...) })` | `codex-agent.ts:460-478`, `claude-agent.ts:388-406`, `dsh-agent.ts:414-432`, `qwen-agent.ts:404-422`, `hermes-agent.ts:376-394`, `opencode-agent.ts:502-529`, `one-shot-cli-agent.ts:492-511`, `omp-agent.ts:912-941` | **8 copies** |
499
- | D30 | `flushDelta` / `pushDelta` 50 ms delta batching | `codex-agent.ts:324-340`, `omp-agent.ts:845-861` | 2 |
500
- | D31 | `const queue / let isDone / let resolveWait / let lastActivity / let agentText` state prelude | 8 files (same as D29) | 8 |
501
- | D32 | abort fallback `setTimeout(() => { if (!isDone) enqueue({ kind: 'done', ... }) }, 5000)` | `codex-agent.ts:431-433`, `claude-agent.ts:380-382`, `dsh-agent.ts:381-383`, `qwen-agent.ts:380-382`, `hermes-agent.ts:345-347`, `opencode-agent.ts:477` | **6 copies** |
502
- | D33 | `onAbort` handler (log + engine cancel + 5 s fallback) | `codex-agent.ts:428-434`, `claude-agent.ts:377-383`, `dsh-agent.ts:378-385`, `qwen-agent.ts:377-385`, `hermes-agent.ts:342-348`, `opencode-agent.ts:472-478`, `one-shot-cli-agent.ts:434-438`, `omp-agent.ts:871-883` | **8 copies** |
503
- | D34 | `collectTurnEvents` (byte-identical) | `codex-agent.ts:494-501`, `claude-agent.ts:419-426`, `dsh-agent.ts:446-453`, `qwen-agent.ts:435-442`, `hermes-agent.ts:407-414`, `one-shot-cli-agent.ts:242-249` | **6 identical copies** (omp-agent.ts:145-192 is a 7th, differently implemented) |
504
-
505
- ```ts
506
- 494: protected async collectTurnEvents(prompt: string, timeoutMs: number, signal?: AbortSignal): Promise<AgentEvent[]> {
507
- 495: const events: AgentEvent[] = []
508
- 496: for await (const e of this.streamTurn(prompt, undefined, timeoutMs, signal)) {
509
- 497: events.push(e)
510
- 498: if (e.kind === 'error') break
511
- 499: }
512
- 500: return events
513
- 501: }
514
- ```
515
-
516
- ### 5.7 `dispose` / `kill` / process-management bodies
517
-
518
- | # | function | file:lines | copies |
519
- |---|---|---|---|
520
- | D35 | `dispose()` (client teardown + `markHarnessProcessExit` + pending-map timer clear) | `codex-agent.ts:112-125`, `dsh-agent.ts:116-129`, `qwen-agent.ts:140-153`, `hermes-agent.ts:95-108` | **4 near-identical** (+ variants `claude-agent.ts:113-128`, `one-shot-cli-agent.ts:148-151`, `opencode-agent.ts:181-195`, `omp-agent.ts:437-449`) |
521
- | D36 | `getProcessInfo()` | `codex-agent.ts:127-132`, `dsh-agent.ts:131-136`, `qwen-agent.ts:155-159`, `hermes-agent.ts:110-114`, `opencode-agent.ts:163-167`, `omp-agent.ts:459-464`, `one-shot-cli-agent.ts:153-157` | **7** |
522
- | D37 | `killProcess()` | `codex-agent.ts:134-138`, `dsh-agent.ts:138-142`, `qwen-agent.ts:161-165`, `hermes-agent.ts:116-120` (byte-identical 5-liners) + `opencode-agent.ts:169-173`, `omp-agent.ts:467-476` | **6** |
523
- | D38 | `reconcileProcess()` | `codex-agent.ts:140-142`, `dsh-agent.ts:144-146`, `qwen-agent.ts:167-169`, `hermes-agent.ts:122-124` (identical) + `opencode-agent.ts:175-179`, `omp-agent.ts:483-485` | **6** |
524
- | D39 | `getContextStats()` shape `{ usedTokens, contextWindow, percent, compacting }` | `codex-agent.ts:144-153`, `dsh-agent.ts:148-157`, `hermes-agent.ts:126-135`, `qwen-agent.ts:171-173`, `claude-agent.ts:139-148`, `opencode-agent.ts:199-208`, `omp-agent.ts:241-252`, `one-shot-cli-agent.ts:170-179` | **8** |
525
- | D40 | `steer()` deferred stub | `dsh-agent.ts:160-162`, `qwen-agent.ts:175-177`, `hermes-agent.ts:137-139`, `one-shot-cli-agent.ts:181-183` | **4** |
526
- | D41 | `respondHitl()` default throw | `base-agent.ts:102-110`, `one-shot-cli-agent.ts:186-188` | 2 |
527
- | D42 | `ensureClient(ctx)` guard (`if (!this.workspace) ... ; if (!this.agentInfo) { ...refreshIdentity() } ; if (client?.alive && session) return ; clientStarting ??= startClient().finally(...)`) | `codex-agent.ts:581-597`, `dsh-agent.ts:457-473`, `qwen-agent.ts:446-457`, `hermes-agent.ts:418-434`, `opencode-agent.ts:714-726` (`ensureServer`), `omp-agent.ts:1092-1103` | **6** |
528
- | D43 | `startClient()` scaffolding (`const command = config.command ?? harnessSettings().X` + `new StdioJsonRpcClient` + pidRef + onExit + `registerHarnessProcess`/`bindHarnessProcess` + handshake + session create) | `codex-agent.ts:599-664`, `dsh-agent.ts:475-545`, `qwen-agent.ts:459-511`, `hermes-agent.ts:436-497` | **4** (~60 lines each) |
529
- | D44 | `const pidRef = { pid: undefined as number \| undefined }` + `client.onExit(...)` + `registerHarnessProcess` + `bindHarnessProcess` | `codex-agent.ts:615-626`, `dsh-agent.ts:502-513`, `qwen-agent.ts:488-499`, `hermes-agent.ts:459-470`, `one-shot-cli-agent.ts:380-384`, `opencode-agent.ts:749-753` | **6** |
530
- | D45 | ACP `initialize` + version-retry + `session/new` + sessionId guard | `dsh-agent.ts:525-542`, `hermes-agent.ts:480-494` | **2 near-identical** |
531
- | D46 | `registerXxxHitl` (registry.register + `harnessSettings().hitl_timeout_ms` + `setTimeout` fail-closed) | `codex-agent.ts:505-533` and `:535-560`, `dsh-agent.ts:547-577`, `hermes-agent.ts:499-527`, `qwen-agent.ts:513-539`, `opencode-agent.ts:686-710`, `claude-agent.ts:539-562` | **7** |
532
- | D47 | `clearPending(id, resolution)` | `dsh-agent.ts:206-211`, `hermes-agent.ts:178-183` (identical), `qwen-agent.ts:196-201`, `claude-agent.ts:187-194 denyPending` | 4 |
533
- | D48 | ACP allow/reject option picking | `dsh-agent.ts:182-201`, `hermes-agent.ts:154-173` | **2 identical** |
534
- | D49 | ensure engine MCP config (read JSON → merge `mcpServers.aw` → write JSON) | `gemini-agent.ts:34-56`, `copilot-agent.ts:47-64`, `cursor-agent.ts:34-50`, `qwen-agent.ts:50-86` | **4** (+ TOML variant `codex-agent.ts:671-728`, bash variant `crush-agent.ts:35-55`) |
535
-
536
- ### 5.8 Same-key config parsing (config interfaces)
537
-
538
- | # | duplicated shape | file:lines | copies |
539
- |---|---|---|---|
540
- | D50 | `command / args / cwd / model / promptTimeoutMs / superviseTimeoutMs / systemPromptPrefix / scenarioPrompt / agentId / name / role / channelId / token / baseUrl / mcpBridgePath` re-declared | `codex-agent.ts:35-66`, `dsh-agent.ts:44-77`, `claude-agent.ts:39-61`, `hermes-agent.ts:42-62`, `qwen-agent.ts:88-109`, `opencode-agent.ts:40-78` (no index signature) and `one-shot-cli-agent.ts:82-101` (has one) | **7 interfaces**, 15 shared keys each |
541
- | D51 | `private agentRole: 'lead' \| 'worker' = 'worker'` re-declared over `base-agent.ts:54 protected agentRole` | `codex-agent.ts:77`, `claude-agent.ts:78`, `dsh-agent.ts:88`, `qwen-agent.ts:114`, `hermes-agent.ts:67`, `opencode-agent.ts:119`, `omp-agent.ts:208` | **7 copies**; compiler: `TS2415 … Property 'agentRole' is private in type 'ClaudeSdkAgentImpl' but not in type 'BaseAgentImpl'` (and the same for Hermes/Omp/Qwen); at runtime the field initializer runs **after** `super()` and overwrites the value the base constructor set — masked only because `ensureClient` re-assigns it (`dsh-agent.ts:461`, `codex-agent.ts:585`, `opencode-agent.ts:718`, `hermes-agent.ts:422`, `omp-agent.ts:1099`) |
542
- | D52 | `private readonly bridgeCtx = { identity: {...}, state: this.toolState, getWorkspace: () => this.workspace }` re-declared over `base-agent.ts:49` | `codex-agent.ts:71-75`, `dsh-agent.ts:82-86`, `opencode-agent.ts:113-117` | **3 copies**; compiler: `TS2415 … Property 'bridgeCtx' is private in type 'CodexAgentImpl' but not in type 'BaseAgentImpl'` (same for Dsh/OpenCode) |
543
- | D53 | `private supervising = false` re-declared over `base-agent.ts:135` | `opencode-agent.ts:278`, `omp-agent.ts:554` | 2; compiler `TS2415` on `opencode-agent.ts(110,14)` |
544
- | D54 | `configRecord()` return `Record<string, unknown>` with a non-index-signature config type | `codex-agent.ts:108-110`, `dsh-agent.ts:112-114`, `opencode-agent.ts:157-159` | 3; compiler `TS2322: Type 'CodexAgentConfig' is not assignable to type 'Record<string, unknown>'. Index signature for type 'string' is missing` |
545
-
546
- ### 5.9 Duplicate object keys / dead code (verified literals)
547
-
548
- | # | file:line | code |
549
- |---|---|---|
550
- | D55 | `omp-agent.ts:1112-1113` | `args: [...(this.config.thinkingLevel ? ['--thinking', this.config.thinkingLevel] : [])],` / `args: this.config.args,` — last key wins, so **`--thinking` is never passed**; compiler `omp-agent.ts(1113,9): error TS1117: An object literal cannot have multiple properties with the same name.` The monitoring registration at `omp-agent.ts:1131` repeats the same (wrong) argv: `args: ['--mode', this.rpcMode, ...(this.config.args ?? [])]` |
551
- | D56 | `goose-agent.ts:44-45` | `promptDelivery: 'arg',` twice; compiler `goose-agent.ts(45,3): error TS1117` |
552
- | D57 | `goose-agent.ts:41` | `args.push('--with-extension', \`${nodePath} ${bridgePath}\`)` — two paths pre-joined into one argv element |
553
- | D58 | `one-shot-cli-agent.ts:117` | `export class OneShotCliAgentImpl extends BaseAgentImpl implements AgentInterface {` — `AgentInterface` is only `import type` at line 20-24, which does not list it; compiler `one-shot-cli-agent.ts(117,67): error TS2304: Cannot find name 'AgentInterface'` |
554
- | D59 | `qwen-agent.ts:205-235` | third copy of `supervise()` (base `base-agent.ts:137-166`, opencode `opencode-agent.ts:280-324`) — see §4.4 for why it never works |
555
-
556
- ### 5.10 Proposal — shared base class + util module
557
-
558
- **Move into `adapters/stdio-jsonrpc.ts` (or a new `adapters/stdio-rpc-agent.ts` subclass base):**
559
- everything shared by codex / dsh / qwen / hermes —
560
- `dispose` (`codex-agent.ts:112-125`, `dsh-agent.ts:116-129`, `qwen-agent.ts:140-153`, `hermes-agent.ts:95-108`),
561
- `getProcessInfo` (D36), `killProcess` (D37), `reconcileProcess` (D38), `getContextStats` (D39),
562
- `ensureClient` (D42), the `pidRef`/`onExit`/register/bind block (D44), `startClient` scaffolding (D43),
563
- `collectTurnEvents` (D34), the `enqueue` closure (D27) and the drain loop (D29).
564
- Net: ≈ **560 lines** of the 4 ACP/JSON-RPC adapters become one ≈ 180-line base.
565
-
566
- **Move into a new `agents/harness-turn.ts` util:** the event-queue turn machine
567
- (`enqueue`, `flushDelta`/`pushDelta` when applicable, stall watchdog, `onAbort`, 5 s abort fallback,
568
- `collectTurnEvents`) currently copied as D27/D29/D30/D32/D33/D34 — ≈ **340 lines across 8 files → ≈ 70**.
569
-
570
- **Move into `prompt-builder.ts`:** `taskText`/`msgText` (D15/D16) become `partsText()` (already at
571
- `base-agent.ts:189-197`); `fromId`/`requireReply`/`crossChannel`/`replyContext` (D17) becomes
572
- `peerContext(request)`; the `workerTurn`/`peerTurn` skeletons (D18/D19) collapse into two base
573
- template methods. ≈ **300 lines → ≈ 60**.
574
-
575
- **Move into `harness-env.ts`:** D1 all 8 call sites become `bridgeEnvFor(config, selfAgentId)`; add
576
- `registerBridgeProcess(client, meta)` covering D44/D5; delete the hand-rolled duplicate at
577
- `opencode-agent.ts:786-790`.
578
-
579
- **Move into `harness-process.ts`:** add `spawnKill(pid, child)` so `stdio-jsonrpc.ts:205` and
580
- `omp-rpc-client.ts:382` use the same tree-kill as `killProcess()`; add `registerAgentProcess(child,
581
- meta)` covering D44.
582
-
583
- **Move into `agents/harness-config.ts` (new):** the merge-only MCP config writers (D49) as
584
- `mergeMcpServer(file, { type?, command, args, trust? })` + `resolveHarnessHome(root, agentId)`
585
- (covering `safeId`, D10) + `assertSafeAbsolutePath` (D11).
586
-
587
- **Move into `registry.ts`:** `resolveCommand` (D6/D7) becomes `HarnessDef.resolveCommand(config)` so
588
- both the probe (`registry.ts:125,134,…`) and the adapter read the same function.
589
-
590
- **Delete outright:** all `private agentRole` / `private bridgeCtx` / `private supervising`
591
- re-declarations (D51-D53, 12 declarations), `qwen-agent.ts:205-235` (dead override, D59), the duplicate
592
- key at `omp-agent.ts:1113` (D55) and `goose-agent.ts:45` (D56), the two redundant
593
- `generateMcpBridgeEnv` evaluations at `dsh-agent.ts:485-486` (D2).
594
-
595
- Estimated net reduction: **≈ 1 500 lines** of the ~5 000 lines currently in the 13 adapters, with the
596
- divergences in D27/D29 and D51-D54 eliminated by construction.
597
-
598
- ## 6. Registry + base class
599
-
600
- ### 6.1 Registry enumeration — complete and correct
601
-
602
- `registry.ts:109-236` `export const HARNESS_REGISTRY: Record<string, HarnessDef> = {` contains
603
- **14 entries**: `mock` (110), `omp` (119), `opencode` (128), `codex` (137), `dsh` (146), `claude` (155),
604
- `gemini` (164), `copilot` (173), `cursor` (182), `crush` (191), `goose` (200), `qwen` (209), `pi` (218),
605
- `hermes` (227).
606
- That is **exactly one entry per adapter file** (13 harness adapters + `mock-agent.ts`) — no adapter is
607
- missing and none is registered twice. `factory.ts:10-12` delegates to
608
- `registry.ts:252-258 createAgentImplByHarness`.
609
-
610
- Every entry carries a `probe`; the two in-process engines declare
611
- `probe: { inprocess: true }` — `registry.ts:116` (mock) and `registry.ts:161` (claude) — matching
612
- `harness-availability.ts:90-92`. The 11 process engines' `probe.command` uses the same
613
- `cmdFrom(c) || harnessSettings().X_command` rule as the adapters, and
614
- `settings.ts:87-98` declares exactly those 11 keys (`opencode_command … hermes_command`, no
615
- `omp_command` because `registry.ts:125` hard-codes `'omp'`, matching `omp-agent.ts:1108`
616
- `const command = this.config.command ?? 'omp'`).
617
-
618
- Cross-file enumeration gaps found (outside the agents tree but same fact source):
619
- - `plugins/dev-stability-guard.ts:16` lists only 4 harnesses (`opencode|omp|codex|dsh`).
620
- - `scripts/e2e-multi-harness.ts:166` lists 12 (identical union minus `omp`) while
621
- `harness-models.ts:265-303` covers all 13 (`case 'omp' … case 'hermes'` + `default`).
622
-
623
- ### 6.2 Which adapters do NOT extend `BaseAgentImpl`
624
-
625
- Exactly one: **`mock-agent.ts:38`**
626
-
627
- ```ts
628
- 38: export class MockAgentImpl implements AgentInterface {
629
- ```
630
-
631
- It has no `dispose`, no `killProcess`/`getProcessInfo`, no `respondHitl` and no `onTurnSettled`
632
- — consistent with its in-process nature, but it also means it does not inherit the base
633
- `run()` dispatch (`base-agent.ts:114-125`); it re-implements it at `mock-agent.ts:68-81`.
634
-
635
- Declarations (verbatim):
636
-
637
- ```ts
638
- base-agent.ts:46 export abstract class BaseAgentImpl implements AgentInterface {
639
- adapters/one-shot-cli-agent.ts:117 export class OneShotCliAgentImpl extends BaseAgentImpl implements AgentInterface {
640
- codex-agent.ts:68 export class CodexAgentImpl extends BaseAgentImpl implements AgentInterface {
641
- claude-agent.ts:75 export class ClaudeSdkAgentImpl extends BaseAgentImpl implements AgentInterface {
642
- dsh-agent.ts:79 export class DshAgentImpl extends BaseAgentImpl implements AgentInterface {
643
- qwen-agent.ts:111 export class QwenAgentImpl extends BaseAgentImpl {
644
- hermes-agent.ts:64 export class HermesAgentImpl extends BaseAgentImpl implements AgentInterface {
645
- omp-agent.ts:129 export class OmpRpcAgentImpl extends BaseAgentImpl implements AgentInterface {
646
- opencode-agent.ts:110 export class OpenCodeAgentImpl extends BaseAgentImpl implements AgentInterface {
647
- gemini-agent.ts:112 export class GeminiAgentImpl extends OneShotCliAgentImpl {
648
- copilot-agent.ts:132 export class CopilotAgentImpl extends OneShotCliAgentImpl {
649
- cursor-agent.ts:98 export class CursorAgentImpl extends OneShotCliAgentImpl {
650
- crush-agent.ts:103 export class CrushAgentImpl extends OneShotCliAgentImpl {
651
- goose-agent.ts:94 export class GooseAgentImpl extends OneShotCliAgentImpl {
652
- pi-agent.ts:104 export class PiAgentImpl extends OneShotCliAgentImpl {
653
- mock-agent.ts:38 export class MockAgentImpl implements AgentInterface {
654
- ```
655
-
656
- So: 8 direct subclasses, 6 indirect (via `OneShotCliAgentImpl`), 1 (`mock`) outside the hierarchy.
657
- `QwenAgentImpl` is the only direct subclass that omits `implements AgentInterface` (it inherits the
658
- contract structurally).
659
-
660
- Two "extends BaseAgentImpl" declarations do not actually satisfy it:
661
- `opencode-agent.ts(110,14): error TS2515: Non-abstract class 'OpenCodeAgentImpl' does not implement
662
- inherited abstract member collectTurnEvents from class 'BaseAgentImpl'` — opencode never defines
663
- `collectTurnEvents` (it routes `supervise` through its own `runTurn` instead), so the base
664
- `supervise()` at `base-agent.ts:150` would call an undefined method if the override were removed.
1
+ # Harness-adapter audit — `server/services/workshop/agents/`
2
+
3
+ Read-only audit. All 20 requested files read completely (plus `registry.ts`, `base-agent.ts`,
4
+ `prompt-builder.ts`, `mock-agent.ts`, `harness-models.ts`, `harness-terminal.ts`, `plugin-tools.ts`,
5
+ `factory.ts` and the call sites `runtime/agent-runtime.ts`, `runtime/scheduler-loop.ts`,
6
+ `runtime/manager.ts`, `plugins/workshop.ts`, `plugins/dev-stability-guard.ts`).
7
+ Scratch artifacts only: `scripts/_audit/ndjson-partial-line-repro.mjs`,
8
+ `scripts/_audit/opencode-await-ternary-repro.mjs`.
9
+
10
+ Compiler evidence: `npx tsc --noEmit --skipLibCheck --target esnext --module esnext
11
+ --moduleResolution bundler <all adapters>` (alias-resolution errors filtered out; module-internal
12
+ errors reproduced below are independent of path aliases).
13
+
14
+ ---
15
+
16
+ ## 1. Child-process lifecycle
17
+
18
+ ### 1.1 Every spawn site (complete)
19
+
20
+ | # | site | API |
21
+ |---|---|---|
22
+ | S1 | `adapters/line-spawn.ts:114` `return launchChildProcess(file, args, {` | `child_process.spawn`, `shell: false` |
23
+ | S2 | `adapters/line-spawn.ts:105` `return launchChildProcess('cmd.exe', ['/d', '/s', '/c', ...line], {` | Windows `.cmd/.bat` shim |
24
+ | S3 | `adapters/omp-rpc-client.ts:246` `this.child = spawn(command, args, {` | **bypasses line-spawn** |
25
+ | S4 | `harness-process.ts:130` `const child = spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })` | tree-killer |
26
+
27
+ `spawnLineProcess` callers: `adapters/stdio-jsonrpc.ts:86`, `adapters/one-shot-cli-agent.ts:366`,
28
+ `opencode-agent.ts:734`, `harness-models.ts:53`.
29
+
30
+ S3 is a real gap: it does **not** go through `assertPlainExecutable` / `resolveOnPath` / the `cmd.exe`
31
+ shim, and it hard-codes `env: { ...process.env, ...this.options.env }` (omp-rpc-client.ts:249) so the
32
+ `cleanEnv` whitelist semantics of `line-spawn.ts:88-90` are unavailable to omp.
33
+
34
+ ### 1.2 The only tree-killer
35
+
36
+ `harness-process.ts:125-157`:
37
+
38
+ ```ts
39
+ 125: export function killHarnessProcess(pid: number): boolean {
40
+ ...
41
+ 129: if (process.platform === 'win32') {
42
+ 130: const child = spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
43
+ ...
44
+ 139: process.kill(-pid, 'SIGKILL')
45
+ ...
46
+ 144: process.kill(pid, 'SIGKILL')
47
+ ```
48
+
49
+ Direct single-process kills that do **not** reap grandchildren:
50
+ `adapters/stdio-jsonrpc.ts:192` `this.child?.kill('SIGKILL')`;
51
+ `adapters/stdio-jsonrpc.ts:205` `this.child?.kill('SIGKILL')`;
52
+ `adapters/omp-rpc-client.ts:237` `this.child?.kill('SIGKILL')`;
53
+ `adapters/omp-rpc-client.ts:382` `this.child?.kill('SIGKILL')`;
54
+ `adapters/one-shot-cli-agent.ts:263` `child.kill('SIGKILL')`;
55
+ `harness-models.ts:61` `child.kill('SIGKILL')`.
56
+
57
+ ### 1.3 (a) Session end / `dispose()`
58
+
59
+ Only caller: `runtime/agent-runtime.ts:363-369`
60
+
61
+ ```ts
62
+ 363: // 清理 impl 持有的资源(omp 子进程等);容错:impl.dispose 可能不存在
63
+ 364: try {
64
+ 365: await this.impl.dispose?.()
65
+ ```
66
+
67
+ reached from `manager.shutdown()` (`runtime/manager.ts:992` `await Promise.all([...this.agentIndex.values()].map(a => a.stop()))`)
68
+ and from the Nitro hook `plugins/workshop.ts:168-174` `nitroApp.hooks.hook('close', async () => { ... await manager.shutdown() ... })`.
69
+
70
+ | adapter | dispose location | child killed? |
71
+ |---|---|---|
72
+ | omp | `omp-agent.ts:437-449` `await this.client.dispose()` | **single-process only** — `omp-rpc-client.ts:369-389` `this.child?.stdin?.end()` then `this.child?.kill('SIGKILL')` (382). omp's own grandchildren survive. |
73
+ | codex | `codex-agent.ts:112-125` `await client.dispose().catch(() => {})` | same weak path via `stdio-jsonrpc.ts:195-218` |
74
+ | dsh | `dsh-agent.ts:116-129` | same |
75
+ | qwen | `qwen-agent.ts:140-153` | same |
76
+ | hermes | `hermes-agent.ts:95-108` | same |
77
+ | opencode | `opencode-agent.ts:181-195` `killHarnessProcess(pid)` (185) | **tree** ✓ (+ `this.sseAbort?.abort()` 182) |
78
+ | one-shot (gemini/copilot/cursor/crush/goose/pi) | `one-shot-cli-agent.ts:148-151` → `killChild()` (253-265) → `killHarnessProcess(pid)` (259) | **tree** ✓ |
79
+ | claude | `claude-agent.ts:113-128` `this.abortCtrl?.abort()` (120), `await this.session?.interrupt?.()` (122) | **no process kill at all**; `getProcessInfo(): null` (`claude-agent.ts:130-132` `return null // SDK 自管二进制生命周期,无宿主侧进程句柄`) |
80
+ | mock | no `dispose` method (`mock-agent.ts:38` `export class MockAgentImpl implements AgentInterface {`) | n/a (in-process) |
81
+
82
+ Asymmetry worth fixing: `killProcess()` uses the tree killer while `dispose()` on the same class does
83
+ not — e.g. `codex-agent.ts:134-138`
84
+
85
+ ```ts
86
+ 134: killProcess(): void {
87
+ 135: const pid = this.client?.pid
88
+ 136: if (pid) killHarnessProcess(pid)
89
+ 137: else this.client?.kill()
90
+ ```
91
+
92
+ vs `codex-agent.ts:118` `await client.dispose().catch(() => {})` → `stdio-jsonrpc.ts:205`.
93
+
94
+ ### 1.4 (b) Error
95
+
96
+ - `one-shot-cli-agent.ts:442-444` — `child.on('error', ...)` calls `finishTurn(...)` only and **does not
97
+ clear `this.child`** (contrast the `exit` handler `one-shot-cli-agent.ts:445-447` `this.child = null`).
98
+ A later `killChild()` (`one-shot-cli-agent.ts:253-265`) then targets a stale pid.
99
+ - `harness-models.ts:59` `child.on('error', err => reject(err))` — the promise rejects but
100
+ the timeout timer created at `harness-models.ts:60` is **never cleared** and `child.kill()` is never
101
+ called on this path.
102
+ - `stdio-jsonrpc.ts:106-109`, `omp-rpc-client.ts:280-283` — handled (reject / notifyError).
103
+
104
+ ### 1.5 (c) Timeout
105
+
106
+ | adapter | per-turn timeout | on timeout | child killed? | error to UI |
107
+ |---|---|---|---|---|
108
+ | omp | `omp-agent.ts:838` `const idleTimeoutMs = this.config.promptTimeoutMs ?? 600_000` | `omp-agent.ts:915-928` | **yes** — `client.send({ type: 'abort' })` + `this.killProcess()` + `this.client = null` | `TURN_STALLED` error event (921-927) |
109
+ | one-shot | `one-shot-cli-agent.ts:206,238` `?? 600_000` | `one-shot-cli-agent.ts:495-502` | **yes** — `this.killChild()` (496) | `TURN_STALLED` (497-501) |
110
+ | codex | `codex-agent.ts:238,278` `?? 600_000` | `codex-agent.ts:463-469` | **no** — only `turn/interrupt` (464) | `CODEX_TURN_STALLED` (466-467) |
111
+ | claude | `claude-agent.ts:221,262` | `claude-agent.ts:391-397` | no — `this.session?.interrupt?.()` (392) | `CLAUDE_TURN_STALLED` (394) |
112
+ | dsh | `dsh-agent.ts:237,277` | `dsh-agent.ts:417-423` | no — `session/cancel` notify (418) | `DSH_TURN_STALLED` (420) |
113
+ | hermes | `hermes-agent.ts:209,249` | `hermes-agent.ts:379-385` | no | `HERMES_TURN_STALLED` (382) |
114
+ | qwen | `qwen-agent.ts:259,299` | `qwen-agent.ts:407-413` | no | `QWEN_TURN_STALLED` (410) |
115
+ | opencode | `opencode-agent.ts:349,391` | `opencode-agent.ts:505-516` | no — `POST /abort` (507) | `OPENCODE_TURN_STALLED` (510) |
116
+ | mock | none | — | — | — |
117
+
118
+ Non-killing timeout paths leave the pending promise resolved (they `enqueue`), so nothing hangs — but
119
+ the child process keeps running and keeps its model turn burning tokens.
120
+
121
+ Per-request (not per-turn) timeouts: `stdio-jsonrpc.ts:133-134`
122
+ `reject(new Error(\`${this.options.name} 请求超时: ${method} (id=${id},${timeoutMs ?? this.options.requestTimeoutMs ?? 60_000}ms)\`))`
123
+ (adapters pass `requestTimeoutMs: 60_000` — codex-agent.ts:613, dsh-agent.ts:500, qwen-agent.ts:486,
124
+ hermes-agent.ts:457 — except `harness-models.ts:110` `requestTimeoutMs: 30_000`);
125
+ `omp-rpc-client.ts:309-312` `reject(new Error(\`omp RPC 命令超时: ${command.type} (id=${id})\`))`, 60 s.
126
+
127
+ ### 1.6 (d) Parent process exit — **not guaranteed**
128
+
129
+ There is **no** `process.on('exit' | 'SIGINT' | 'SIGTERM' | 'beforeExit')` anywhere under `server/`
130
+ (only `unhandledRejection`: `plugins/workshop.ts:88`, `plugins/dev-stability-guard.ts:56`;
131
+ `uncaughtException`: `plugins/dev-stability-guard.ts:59`). Cleanup depends entirely on the Nitro
132
+ `close` hook (`plugins/workshop.ts:168`). Two concrete consequence paths:
133
+
134
+ 1. `plugins/dev-stability-guard.ts:53-54`
135
+ ```ts
136
+ 53: console.error(`[stability-guard] fatal ${kind}, exiting:\n${describe(reason)}`)
137
+ 54: process.exit(1)
138
+ ```
139
+ `process.exit(1)` skips the `close` hook entirely → **every live harness child is orphaned**.
140
+ The exemption regex only knows four engines — `plugins/dev-stability-guard.ts:16`
141
+ `const ENGINE_BOUNDARY = /\b(opencode|omp|codex|dsh) API\b/i` — so failures from
142
+ claude/gemini/copilot/cursor/crush/goose/qwen/pi/hermes are not exempted.
143
+ 2. The pid registry is process-local: `harness-process.ts:36`
144
+ `const registry = new Map<number, HarnessProcessEntry>()`. After a restart, orphaned children are
145
+ unreachable — `listAliveHarnessProcessesByAgent` (`harness-process.ts:87-89`) can only see pids
146
+ registered in the current process; there is no OS process-table scan.
147
+
148
+ ### 1.7 Windows-specific handling
149
+
150
+ - `windowsHide: true` — `line-spawn.ts:109`, `line-spawn.ts:118`, `omp-rpc-client.ts:250`,
151
+ `harness-process.ts:130`.
152
+ - `.cmd/.bat` shim: `line-spawn.ts:63-66` `if (lower.endsWith('.cmd') || lower.endsWith('.bat')) return { file, needsCmd: true }`
153
+ → `line-spawn.ts:99-112` fixed `'cmd.exe'`, `/d /s /c`, per-arg `assertCmdSafeArg` (`line-spawn.ts:78-83`
154
+ `/["\r\n\0]/.test(arg)`), `windowsVerbatimArguments: true` (111).
155
+ - Tree kill is Windows-`taskkill`-only (`harness-process.ts:130`); `process.kill(-pid, 'SIGKILL')`
156
+ (`harness-process.ts:139`) is guarded by `if (process.platform === 'win32')` at line 129, so on Windows
157
+ the POSIX branch never runs.
158
+ - `process.kill(pid, 0)` liveness probe: `harness-process.ts:107-116` (EPERM treated as alive, 114).
159
+ - `resolveOnPath` PATHEXT resolution: `line-spawn.ts:29-55`, incl. `.cmd` last-resort bare name (51-53).
160
+ - `one-shot-cli-agent.ts:104-106 sanitizePromptArg` exists specifically because `arg` delivery goes
161
+ through the cmd wrapper on Windows.
162
+
163
+ ### 1.8 stdio pipes drained?
164
+
165
+ | consumer | stdout | stderr |
166
+ |---|---|---|
167
+ | `stdio-jsonrpc.ts:97-105` | drained | drained (8 KB tail) |
168
+ | `omp-rpc-client.ts:253-279` | drained (8 MB line cap) | drained (1 MB cap, `STDERR_CAP` 130) |
169
+ | `one-shot-cli-agent.ts:404-432` | drained | drained (8 KB tail) |
170
+ | `opencode-agent.ts:745-748` | **NOT drained — no `child.stdout` reference in the file** | drained |
171
+ | `harness-models.ts:55-58` | drained | **NOT drained — no `child.stderr` reference in the file** |
172
+
173
+ `opencode serve` is long-lived (`opencode-agent.ts:734`), so an unread stdout that exceeds the OS pipe
174
+ buffer will block the engine mid-turn. `harness-models.collect()` is bounded by its 45–60 s timeout
175
+ (`harness-models.ts:79,144`), so it degrades to a timeout rather than a permanent hang, but returns a
176
+ truncated catalog.
177
+
178
+ ## 2. Unhandled promise rejection risk
179
+
180
+ **Overall: floating promises are overwhelmingly `.catch()`-guarded — I found no unguarded floating
181
+ promise that could reject.** The real rejection risk is *synchronous throws inside `async` methods*
182
+ (§4.3/§4.4), which the call sites do catch.
183
+
184
+ ### 2.1 Floating calls (all verified guarded)
185
+
186
+ `void`-guarded: `omp-rpc-client.ts:466`; `omp-agent.ts:169,348,455,596,1065,1171,1172`;
187
+ `claude-agent.ts:136,379,392,521`; `codex-agent.ts:430,464,528,556`; `dsh-agent.ts:389,573`;
188
+ `qwen-agent.ts:387,535`; `hermes-agent.ts:352,523`; `opencode-agent.ts:475,507,705,892`.
189
+
190
+ Floating but `.catch()`-ed (no `void`): `omp-agent.ts:873` `client.send({ type: 'abort' }).catch(() => {})`,
191
+ `omp-agent.ts:916` same shape.
192
+
193
+ ### 2.2 `async` setTimeout/setInterval callbacks without try/catch
194
+
195
+ There is **no `setInterval`** in any of the audited files. Every timer body is synchronous; the two
196
+ async timers-adjacent loops have internal try/catch:
197
+ `opencode-agent.ts:855-891` (`const connect = async (): Promise<void> => { while (...) { try { ... } catch (err) {...} } }`)
198
+ and `claude-agent.ts:521-533` `void (async () => { try { for await (const msg of session) ... } catch ... finally ... })()`.
199
+
200
+ ### 2.3 `timer.unref()`
201
+
202
+ Exactly three uses in the whole agents tree:
203
+ `tool-approvals.ts:83` `timer.unref?.()`, `harness-terminal.ts:301` `session.parkTimer.unref?.()`,
204
+ `opencode-agent.ts:92` `srv.unref()`.
205
+ **No per-turn / stall / poll / abort-fallback timer is unref'd.** (`AbortSignal.timeout` at
206
+ `opencode-agent.ts:766,912` is fine — verified at runtime that Node unrefs it: no `Timeout` appears in
207
+ `process.getActiveResourcesInfo()` after `AbortSignal.timeout(60000)`.)
208
+
209
+ ### 2.4 Leaked timers (never cleared, never unref'd)
210
+
211
+ | file:line | timer | note |
212
+ |---|---|---|
213
+ | `omp-rpc-client.ts:294` | `setTimeout(() => { if (!this.ready) reject(new Error('omp RPC ready 超时(10s)')) }, 10_000)` | no handle stored → refs the loop 10 s after every successful `start()` |
214
+ | `omp-agent.ts:620` | `const timer = setTimeout(abortTurn, timeoutMs)` | **not** cleared on the early-return path `omp-agent.ts:625-629` `if (opts.signal.aborted) { unsub(); resolve([]); return }` → later fires `omp-agent.ts:596` `void this.client?.send({ type: 'abort' }).catch(() => {})` against the shared omp subprocess, cancelling an unrelated live turn |
215
+ | `one-shot-cli-agent.ts:506-509` | `setTimeout(() => { resolveWait = null; r() }, Math.min(remaining + 100, 5000))` | no variable |
216
+ | `codex-agent.ts:473-476` | `setTimeout(() => { resolveWait = null; r() }, remaining + 100)` | no variable |
217
+ | `claude-agent.ts:401-404` | same shape | no variable |
218
+ | `dsh-agent.ts:427-430` | same shape | no variable |
219
+ | `qwen-agent.ts:417-420` | same shape | no variable |
220
+ | `hermes-agent.ts:389-392` | same shape | no variable |
221
+ | `codex-agent.ts:431-433` | `setTimeout(() => { if (!isDone) enqueue({ kind: 'done', ... }) }, 5000)` | abort fallback |
222
+ | `claude-agent.ts:380-382`, `dsh-agent.ts:381-383`, `qwen-agent.ts:380-382`, `hermes-agent.ts:345-347` | same 5 s abort fallback | |
223
+ | `opencode-agent.ts:477` | `setTimeout(() => finishTurn(), 5000)` | abort fallback |
224
+ | `harness-models.ts:60-63` | `const timer = setTimeout(...)` | cleared only on `exit` (65); the `error` path (59) leaks it |
225
+ | `omp-agent.ts:533`, `harness-terminal.ts:545` | `setTimeout(resolve, 150)` per poll iteration | bounded by 20 s / 8 s deadlines |
226
+
227
+ Correctly-cleared counterparts (for contrast): `opencode-agent.ts:520-528,536` and
228
+ `omp-agent.ts:932-940,948`.
229
+
230
+ ### 2.5 Leaked listeners
231
+
232
+ 1. **`adapters/omp-rpc-client.ts:269`** `this.eventListeners.add(onReady as (event: AgentSessionEvent) => void)`
233
+ — added inside `start()` on every (re)spawn, never removed; only `dispose()` clears
234
+ (`omp-rpc-client.ts:397` `this.eventListeners.clear()`). `handleExit` does not. The `onReady`
235
+ closure also captures the **previous** `resolve`/`reject` of an already-settled promise.
236
+ 2. **`adapters/stdio-jsonrpc.ts:208`** `this.child.once('exit', () => { clearTimeout(timer); resolve() })`
237
+ — on the 3 s timeout path (`stdio-jsonrpc.ts:204-207`) the promise resolves via the timer branch but
238
+ this listener is left attached.
239
+ 3. `adapters/stdio-jsonrpc.ts:102-105`, `:106-109`, `:110-117` — child listeners never removed
240
+ (`removeListener`/`off(` never appears in the file); bounded by child lifetime.
241
+ 4. `harness-terminal.ts:387-393 detachTerminalTap` — clears `unsubRaw` but not `session.batchTimer`,
242
+ so the pending 50 ms flush (`harness-terminal.ts:175-181`) survives detach.
243
+ 5. `adapters/one-shot-cli-agent.ts:406,430` and `opencode-agent.ts:746` — `data` listeners never
244
+ removed; bounded per-turn (one-shot) / per-server (opencode).
245
+ 6. No `request.destroy()`, no stream `destroy()`, and no `stdin.destroy()` anywhere; the only
246
+ teardown is `stdin.end()` (`stdio-jsonrpc.ts:199`, `omp-rpc-client.ts:371`, `one-shot-cli-agent.ts:484,488`).
247
+
248
+ ### 2.6 "Dangerous by construction" — `.then()` on an `AsyncGenerator`
249
+
250
+ `opencode-agent.ts:396-402`
251
+
252
+ ```ts
253
+ 396: private runTurn(
254
+ 397: prompt: string,
255
+ 398: taskId: string | undefined,
256
+ 399: opts: { timeoutMs: number, signal?: AbortSignal, beforeStart?: () => void, onDone?: () => void },
257
+ 400: ): AsyncGenerator<AgentEvent, void, unknown> {
258
+ 401: return this._runTurn(prompt, taskId, opts)
259
+ 402: }
260
+ ```
261
+
262
+ used at `opencode-agent.ts:301-323` `return await this.runTurn(prompt, undefined, {...}).then((events) => {...})`.
263
+ Compiler: `opencode-agent.ts(310,8): error TS2339: Property 'then' does not exist on type 'AsyncGenerator<AgentEvent, void, unknown>'`.
264
+ At runtime this is `TypeError: ... .then is not a function` inside `async supervise`, contradicting the
265
+ in-file intent at `opencode-agent.ts:281-282` ("绝不让引擎故障以 unhandledRejection 形态逃逸"). It is
266
+ caught downstream by `runtime/scheduler-loop.ts:309-312`, so opencode's LLM lead-scheduling silently
267
+ degrades to the rule engine on every tick.
268
+
269
+ ## 3. NDJSON / JSON-RPC streaming correctness
270
+
271
+ | site | cross-chunk buffer | `\r\n` | split JSON line | non-JSON banner |
272
+ |---|---|---|---|---|
273
+ | `adapters/stdio-jsonrpc.ts:234-252` | ✔ | ✔ via `line.trim()` (240) | ✔ | ✔ `catch { continue }` (246-248) |
274
+ | `adapters/omp-rpc-client.ts:404-424` | ✔ | ✔ via `line.trim()` (414) | ✔ | ✔ (420-422) |
275
+ | `opencode-agent.ts:866-883` (SSE) | ✔ | ✗ only `\n\n` (870) | ✔ (871) | ✔ (877-880) |
276
+ | `adapters/one-shot-cli-agent.ts:406-428` | ✗ **BUG** | ✔ `/\r?\n/` (411) | ✗ **lost** | ✗ dropped (418) |
277
+
278
+ Correct pattern (verbatim, `stdio-jsonrpc.ts:234-238`):
279
+
280
+ ```ts
281
+ 234: private onStdout(data: string): void {
282
+ 235: this.stdoutBuf += data
283
+ 236: if (this.stdoutBuf.length > 8 * 1024 * 1024) this.stdoutBuf = ''
284
+ 237: const lines = this.stdoutBuf.split('\n')
285
+ 238: this.stdoutBuf = lines.pop() ?? ''
286
+ ```
287
+
288
+ Caveat on 236: the cap check runs *before* the split, discarding the accumulated partial line — a
289
+ single frame > 8 MB desynchronises the stream (the remainder is then parsed as a fresh line).
290
+
291
+ ### 3.1 BUG — `one-shot-cli-agent.ts:406-428` parses each chunk with no line buffering
292
+
293
+ ```ts
294
+ 406: child.stdout?.on('data', (chunk: string) => {
295
+ ...
296
+ 411: for (const rawLine of chunk.split(/\r?\n/)) {
297
+ 412: const line = rawLine.trim()
298
+ 413: if (!line) continue
299
+ 414: const json = tryParse(line)
300
+ 415: if (json === null) {
301
+ 416: // 无结构化输出面的引擎:stdout 纯文本行即回复增量;其余(横幅/告警)忽略
302
+ 417: if (this.spec.plainTextStdout === true) sink.delta(line)
303
+ 418: continue
304
+ 419: }
305
+ ```
306
+
307
+ Concrete breaking input (executed — `scripts/_audit/ndjson-partial-line-repro.mjs`), one logical
308
+ NDJSON stream delivered as two `data` events because the payload exceeds the pipe read size (64 KiB):
309
+
310
+ ```
311
+ chunk#1 {"type":"message","role":"assistant","content":"hello wor
312
+ chunk#2 ld"}\n{"type":"result","usage":{"input_tokens":42}}\n
313
+ ```
314
+
315
+ Observed:
316
+
317
+ ```
318
+ A one-shot-cli-agent.ts loop : frames=1 ["result"] drops=2 ["{\"type\":\"message\",...,\"hello wor","ld\"}"] assistantText=""
319
+ B stdio-jsonrpc.ts loop : frames=2 ["message","result"]
320
+ ```
321
+
322
+ The whole assistant message is silently lost (never becomes a `delta`), and one frame disappears.
323
+ Affects every `OneShotCliAgentImpl` subclass without `plainTextStdout`: gemini, copilot, cursor,
324
+ goose, pi. `crush` sets `plainTextStdout: true` (`crush-agent.ts:67`) so it survives but with each
325
+ fragment `.trim()`-ed (411-412), altering leading/trailing whitespace of the answer.
326
+
327
+ Additional unbounded buffer: `one-shot-cli-agent.ts:405-409`
328
+
329
+ ```ts
330
+ 405: let stdoutAll = ''
331
+ 406: child.stdout?.on('data', (chunk: string) => {
332
+ 407: if (this.spec.wholeJsonAtExit === true) {
333
+ 408: stdoutAll += chunk
334
+ ```
335
+
336
+ `stdoutAll` has no cap. Latent only — no shipped spec sets `wholeJsonAtExit`
337
+ (only `crush-agent.ts:67` sets `plainTextStdout`).
338
+
339
+ ### 3.2 SSE caveat — `opencode-agent.ts:866-883`
340
+
341
+ ```ts
342
+ 869: buf += decoder.decode(value, { stream: true })
343
+ 870: const chunks = buf.split('\n\n')
344
+ 871: buf = chunks.pop() ?? ''
345
+ ```
346
+
347
+ Correct for `\n\n`-delimited SSE. Two gaps: (a) a CRLF-delimited stream (`\r\n\r\n`) never splits and
348
+ `buf` grows without bound; (b) multi-line `data:` payloads are parsed line-by-line (873-879), so a
349
+ payload split over two `data:` lines is rejected as non-JSON and dropped (880).
350
+
351
+ ### 3.3 Non-stream splits (safe)
352
+
353
+ `harness-models.ts:82` `for (const rawLine of out.split('\n'))`, `:146`, `:184` — `out` is the fully
354
+ collected stdout string, not a chunk. No `readline` usage anywhere in the tree.
355
+
356
+ ## 4. Timeout / retry / error propagation
357
+
358
+ ### 4.1 Per-turn timeout (quoted) — see table in §1.5
359
+
360
+ Every process-based adapter has one except `mock`. All default to `600_000` ms; supervise defaults to
361
+ `150_000` (`base-agent.ts:170`, `omp-agent.ts:576`, `opencode-agent.ts:300`, `qwen-agent.ts:219`).
362
+
363
+ ### 4.2 Correct propagation to `{ kind: 'error' }`
364
+
365
+ Timeout → error event, verified for all nine: `omp-agent.ts:921-927`, `one-shot-cli-agent.ts:497-501`,
366
+ `codex-agent.ts:465-468`, `claude-agent.ts:393-396`, `dsh-agent.ts:419-422`, `hermes-agent.ts:381-384`,
367
+ `qwen-agent.ts:409-412`, `opencode-agent.ts:508-514`. Non-zero child exit → error event:
368
+ `one-shot-cli-agent.ts:469-479`
369
+
370
+ ```ts
371
+ 469: if (code === 0) {
372
+ 470: finishTurn({ kind: 'done' })
373
+ 471: }
374
+ 472: else {
375
+ 473: const custom = this.spec.exitErrorMessage?.(code ?? -1, stderrTail)
376
+ 474: finishTurn({
377
+ 475: kind: 'error',
378
+ 476: code: `${this.spec.harnessId.toUpperCase()}_EXIT_${code ?? -1}`,
379
+ ```
380
+
381
+ Spawn failure → error event: `one-shot-cli-agent.ts:368-377`, `omp-agent.ts:652-660`.
382
+
383
+ ### 4.3 Swallowed errors (verbatim)
384
+
385
+ - `base-agent.ts:160-162`
386
+ ```ts
387
+ 160: catch {
388
+ 161: return []
389
+ 162: }
390
+ ```
391
+ `supervise()` failure produces **no AgentEvent at all** — every adapter that relies on the base
392
+ implementation (all except omp/opencode/qwen) loses the reason.
393
+ - `qwen-agent.ts:229-231` — the same `catch { return [] }`, duplicated.
394
+ - `opencode-agent.ts:320-323` `}).catch(() => { this.supervising = false; return [] })` and
395
+ `opencode-agent.ts:286-289` `catch (err) { log.warn(...); return [] }`.
396
+ - `codex-agent.ts:208-210` compact failure → `log.warn(... 放行)`; `opencode-agent.ts:270-272` same.
397
+ - `codex-agent.ts:725-727` `catch (err) { log.warn(\`[CodexAgent:${this.selfAgentId}] CODEX_HOME config 写入失败(信任全局配置):\`, ...) }`
398
+ — if the MCP section is not written, the agent runs **without tools** and the turn still reports `done`.
399
+ - `opencode-agent.ts:794-796` `catch (err) { log.warn(\`[OpenCodeAgent:${this.selfAgentId}] MCP 桥注册失败(host tools 不可用):\`, ...) }` — same class of silent capability loss.
400
+ - `claude-agent.ts:527-529` `catch (err) { log.warn(\`[ClaudeSdk:${this.selfAgentId}] 消息流异常: ...\`) }` — the SDK stream dies but `streamTurn` keeps waiting until the 600 s stall timer; the UI sees nothing until then.
401
+ - `omp-rpc-client.ts:420-422` `// 非 JSON 行(理论上不应出现):忽略` and `:549-551` `// chunk 重组失败:忽略`.
402
+ - `stdio-jsonrpc.ts:246-248` `catch { continue // 非 JSON 行(横幅/日志混流)忽略 }` — combined with a lost frame this is invisible.
403
+ - `harness-models.ts:142` `catch { /* 无凭据则按未登录目录输出 */ }`, `:243` `catch { /* 无 settings.yaml/解析失败 → 仅内置目录 */ }`.
404
+
405
+ ### 4.4 `async` methods that throw before doing any work
406
+
407
+ | method | throw | compiler evidence |
408
+ |---|---|---|
409
+ | `QwenAgentImpl.supervise` | `qwen-agent.ts:209` `const prompt = supervisePrompt({` — **`supervisePrompt` is not imported** (`qwen-agent.ts:30` imports only `peerPrompt, systemManual, toolArgsPreview, workerPrompt`) → `ReferenceError`; next failure would be `qwen-agent.ts:219` `const events = await this.collectTurn(...)` (the method is `collectTurnEvents`, `qwen-agent.ts:435`) and `qwen-agent.ts:226` `extractJsonArray(text)` (also not imported) | `qwen-agent.ts(209,20): TS2304: Cannot find name 'supervisePrompt'`; `(219,33): TS2339: Property 'collectTurn' does not exist`; `(226,22): TS2304: Cannot find name 'extractJsonArray'`; `(208,14)/(217,10)/(233,12): TS2341: Property 'supervising' is private and only accessible within class 'BaseAgentImpl'` |
410
+ | `OpenCodeAgentImpl.supervise` | `opencode-agent.ts:301` `.then(...)` on an AsyncGenerator | `opencode-agent.ts(310,8): TS2339` |
411
+ | `OpenCodeAgentImpl.respondHitl` | `opencode-agent.ts:252` `if (pending.timer) clearTimeout(p.timer)` — `p` is undefined in this scope (the loop variable `p` lives at 652 and 191) → `ReferenceError` **after** the engine was already answered (241/246/249) but **before** `this.pendingHitl.delete(id)` (253) and `getHitlRegistry().resolve(...)` (254) → the local map entry and the global HITL item leak forever, and the REST caller gets a 500 (`server/api/workshop/hitl/respond.post.ts:80` `await manager.respondHarnessHitl(...)` → `runtime/manager.ts:2821` `const ok = await runtime.respondHitl(kind, id, outcome)`) | `opencode-agent.ts(252,37): TS2304: Cannot find name 'p'` |
412
+ | `OpenCodeAgentImpl.startServer` | `opencode-agent.ts:805-808` — `await` binds tighter than `?:`, so `created` is a **Promise**, not the session object, and `String(created?.id ?? '')` is always `''`; entry into the 3× retry loop at 811-815 is therefore guaranteed (≥2.5 s `await sleep(2500)`) and the first, real, session is created and abandoned | `opencode-agent.ts(808,38): TS2339: Property 'id' does not exist on type 'Promise<Record<string, unknown>>'`; reproduced in `scripts/_audit/opencode-await-ternary-repro.mjs` (`created instanceof Promise = true`, `this.sessionId = ""`) |
413
+
414
+ ```ts
415
+ 805: const created = await (this.config.permission ?? DEFAULT_PERMISSION)
416
+ 806: ? createWith({ permission: this.config.permission ?? DEFAULT_PERMISSION }).catch(() => createWith(undefined))
417
+ 807: : createWith(undefined)
418
+ 808: this.sessionId = String(created?.id ?? '')
419
+ ```
420
+
421
+ Also note the ternary condition `this.config.permission ?? DEFAULT_PERMISSION` can never be falsy
422
+ (`DEFAULT_PERMISSION` is a 4-line array literal, `opencode-agent.ts:82-86`), so the `: createWith(undefined)`
423
+ branch at 807 is dead code and `permission` is always sent on the first attempt.
424
+
425
+ ## 5. DUPLICATION INVENTORY
426
+
427
+ Line ranges are exact. "Copies" counts textual copies of the same block; near-copies with token
428
+ renames are flagged.
429
+
430
+ ### 5.1 MCP-bridge env setup (`AW_BASE_URL` / `AW_AGENT_ID` / `AW_AGENT_TOKEN`)
431
+
432
+ | # | function / block | file:lines | copies |
433
+ |---|---|---|---|
434
+ | D1 | `generateMcpBridgeEnv({ agentId, token, baseUrl, bridgePath })` call site | `codex-agent.ts:606-612`, `codex-agent.ts:690`, `claude-agent.ts:452-457`, `dsh-agent.ts:477-484`, `qwen-agent.ts:461-466`, `hermes-agent.ts:438-443`, `adapters/one-shot-cli-agent.ts:296-301`, `gemini-agent.ts:119` | **8 sites / 7 files** |
435
+ | D2 | Redundant repeat calls of the *same* expression inside one function | `dsh-agent.ts:485`, `dsh-agent.ts:486` (three identical `generateMcpBridgeEnv(...)` evaluations in one call) | 3 extra evaluations |
436
+ | D3 | Hand-rolled `AW_*` literal object duplicating `harness-env.ts:41-53` | `opencode-agent.ts:786-790` vs `harness-env.ts:44-47` | **2 copies** |
437
+ | D4 | `\` ${k} = "${v}"\`` TOML env expansion | `codex-agent.ts:691` | 1 (no dup) |
438
+ | D5 | bridge launch pair `process.execPath` + bridge path | `codex-agent.ts:695-696`, `claude-agent.ts:506-508`, `qwen-agent.ts:75`, `gemini-agent.ts:49-51`, `copilot-agent.ts:61`, `cursor-agent.ts:46`, `opencode-agent.ts:784`, `crush-agent.ts:39-43`, `goose-agent.ts:40-41` | **9 copies** |
439
+
440
+ Canonical source being duplicated: `harness-env.ts:43-48`
441
+
442
+ ```ts
443
+ 43: const bridgeEnv = {
444
+ 44: AW_BASE_URL: resolvePlatformBaseUrl(input.baseUrl),
445
+ 45: AW_AGENT_ID: input.agentId,
446
+ 46: AW_AGENT_TOKEN: input.token ?? '',
447
+ 47: AW_MCP_TOOL_TIMEOUT_MS: String(200_000),
448
+ 48: }
449
+ ```
450
+
451
+ ### 5.2 `resolveCli` / binary path resolution
452
+
453
+ | # | function | file:lines | copies |
454
+ |---|---|---|---|
455
+ | D6 | `resolveCommand` one-liner `config => (typeof config.command === 'string' && config.command.trim() !== '' ? config.command.trim() : harnessSettings().X_command)` | `gemini-agent.ts:60`, `copilot-agent.ts:85`, `cursor-agent.ts:54`, `crush-agent.ts:59`, `goose-agent.ts:33`, `pi-agent.ts:52` | **6 byte-identical copies** (only the settings key differs) |
456
+ | D7 | same rule re-implemented for the registry probe | `registry.ts:106-107` `const cmdFrom = (config) => typeof config?.command === 'string' && config.command.trim() !== '' ? config.command.trim() : ''` | +1 |
457
+ | D8 | `getProcessInfo` fallback command strings `'opencode serve' / 'dsh --profile acp' / 'qwen --experimental-acp' / 'hermes acp' / 'codex app-server'` re-stating the spawn argv | `opencode-agent.ts:166`, `dsh-agent.ts:135`, `qwen-agent.ts:158`, `hermes-agent.ts:113`, `codex-agent.ts:131` | 5 |
458
+ | D9 | PATH probing: `probeExecutable` re-implements the explicit-path test and the POSIX PATH walk already in `resolveOnPath` | `harness-availability.ts:55-67` vs `adapters/line-spawn.ts:29-55` (explicit-path test `harness-availability.ts:58` ≈ `line-spawn.ts:39`) | 2 |
459
+ | D10 | `safeId(agentId)` (identical 4-line body) | `copilot-agent.ts:28-31`, `goose-agent.ts:26-29`, `pi-agent.ts:27-30` | **3 identical copies** |
460
+ | D11 | "absolute path, no `..`" override validation | `copilot-agent.ts:37-40`, `pi-agent.ts:36-39` | 2 |
461
+
462
+ ### 5.3 `spawn` option assembly
463
+
464
+ | # | block | file:lines | copies |
465
+ |---|---|---|---|
466
+ | D12 | `stdio: ['pipe', 'pipe', 'pipe']` literal | `adapters/line-spawn.ts:106`, `:115`, `adapters/omp-rpc-client.ts:247` | 3 (omp-rpc-client bypasses the shared helper) |
467
+ | D13 | `{ cwd: this.config.cwd ?? process.cwd(), env, windowsHide: true }` + `new StdioJsonRpcClient({...})` | `codex-agent.ts:601-614`, `dsh-agent.ts:494-501`, `qwen-agent.ts:480-487`, `hermes-agent.ts:451-458`, `harness-models.ts:110` | **5 copies** |
468
+ | D14 | `env = { ...bridge.bridgeEnv, ...(engine-specific keys) }` | `dsh-agent.ts:477-493`, `qwen-agent.ts:468-474`, `hermes-agent.ts:444-449`, `one-shot-cli-agent.ts:315-318`, `gemini-agent.ts:67-70`, `copilot-agent.ts:104-107`, `cursor-agent.ts:62-64`, `crush-agent.ts:68-73`, `goose-agent.ts:47-60`, `pi-agent.ts:66-71`, `claude-agent.ts:458-462`, `opencode-agent.ts:736-740` | **12 copies** |
469
+
470
+ ### 5.4 prompt / context assembly
471
+
472
+ | # | block | file:lines | copies |
473
+ |---|---|---|---|
474
+ | D15 | `const taskText = request.message.parts.map((p) => { if ('text' in p) ... }).join('\n')` — a re-implementation of `base-agent.ts:189-197 partsText()` | `codex-agent.ts:222-228`, `claude-agent.ts:205-211`, `dsh-agent.ts:221-227`, `qwen-agent.ts:243-249`, `hermes-agent.ts:193-199`, `opencode-agent.ts:332-338`, `omp-agent.ts:669-675` | **7 copies** |
475
+ | D16 | same block for `msgText` in `peerTurn` | `codex-agent.ts:256-262`, `claude-agent.ts:240-246`, `dsh-agent.ts:255-261`, `qwen-agent.ts:277-283`, `hermes-agent.ts:227-233`, `opencode-agent.ts:369-375`, `omp-agent.ts:722-728` | **7 copies** |
476
+ | D17 | `fromId` / `requireReply` / `crossChannel` / `toolState.replyContext` prelude | `codex-agent.ts:248-255`, `claude-agent.ts:232-239`, `dsh-agent.ts:247-254`, `qwen-agent.ts:269-276`, `hermes-agent.ts:219-226`, `opencode-agent.ts:361-368`, `one-shot-cli-agent.ts:215-222`, `omp-agent.ts:719-740` | **8 copies** |
477
+ | D18 | `workerTurn` skeleton (taskId → `toolState.currentTaskId` → prompt → `yield* streamTurn`) incl. `finally { this.toolState.currentTaskId = null }` | `codex-agent.ts:216-243`, `claude-agent.ts:198-226`, `dsh-agent.ts:215-242`, `qwen-agent.ts:237-264`, `hermes-agent.ts:187-214`, `opencode-agent.ts:326-356`, `one-shot-cli-agent.ts:192-211`, `omp-agent.ts:642-688` | **8 copies** |
478
+ | D19 | `peerTurn` skeleton | `codex-agent.ts:245-279`, `claude-agent.ts:228-263`, `dsh-agent.ts:244-278`, `qwen-agent.ts:266-300`, `hermes-agent.ts:216-250`, `opencode-agent.ts:358-392`, `one-shot-cli-agent.ts:213-239`, `omp-agent.ts:695-759` | **8 copies** |
479
+ | D20 | constructor identity block `super({ agentId: typeof config.agentId === 'string' ? ... , role: config.role === 'lead' ? 'lead' : 'worker', ... })` | `codex-agent.ts:95-100`, `claude-agent.ts:96-101`, `dsh-agent.ts:99-104`, `qwen-agent.ts:123-128`, `hermes-agent.ts:76-81`, `opencode-agent.ts:144-149`, `one-shot-cli-agent.ts:130-135`, `omp-agent.ts:398-403` | **8 copies** |
480
+ | D21 | `contextPrefix()` / `systemManual()` per-turn assembly paired with `workerPrompt`/`peerPrompt` | same 8 files, `workerTurn`/`peerTurn` bodies (see D18/D19) | 8 |
481
+ | D22 | `partsText` twin in the base itself | `base-agent.ts:189-197` — canonical, already exists | (target, not duplicate) |
482
+
483
+ ### 5.5 `parseXxxLine` / event-line mappers
484
+
485
+ | # | function | file:lines | copies |
486
+ |---|---|---|---|
487
+ | D23 | ACP `pushUpdate(params)` notification mapper (`agent_message_chunk` / `tool_call` / `tool_call_update` / usage) | `dsh-agent.ts:327-371`, `hermes-agent.ts:293-336` | **2 near-identical copies (~95 %)**; only `DSH_ACP_METHODS` vs `HERMES_ACP_METHODS` and 2 comment lines differ |
488
+ | D24 | inner `statusEvent(text)` helper | `dsh-agent.ts:335-344`, `hermes-agent.ts:301-310`, `claude-agent.ts:311-316`, `opencode-agent.ts:551-558`, `one-shot-cli-agent.ts:339-348` | **5 copies** |
489
+ | D25 | `tryParse(line)` JSON guard | `one-shot-cli-agent.ts:108-115` (only one in adapters; `stdio-jsonrpc.ts:244`, `omp-rpc-client.ts:417` are inline `JSON.parse`) | 1 + 2 inline |
490
+ | D26 | engine `mapLine` dispatch tables | `gemini-agent.ts:76-108`, `copilot-agent.ts:112-129`, `cursor-agent.ts:68-95`, `crush-agent.ts:78-100`, `goose-agent.ts:61-91`, `pi-agent.ts:82-101` | 6 (shape, not text) |
491
+
492
+ ### 5.6 output accumulation loops
493
+
494
+ | # | block | file:lines | copies |
495
+ |---|---|---|---|
496
+ | D27 | `enqueue` closure (artifact-before-done + `isDone` latch + `resolveWait?.()`) | `codex-agent.ts:301-322`, `dsh-agent.ts:304-324`, `hermes-agent.ts:271-291`, `qwen-agent.ts:321-340`, `claude-agent.ts:286-303`, `opencode-agent.ts:423-446`, `one-shot-cli-agent.ts:386-402`, `omp-agent.ts:826-832` | **8** (dsh/hermes/qwen are textually identical except qwen's missing `this.turnActive = false` at dsh:314/hermes:281 — behaviourally equivalent because qwen sets it in the following branch at 332-335) |
497
+ | D28 | artifact literal `{ kind: 'artifact', artifact: { artifactId: randomUUID(), name: 'output', parts: [{ text }], lastChunk: true, totalChunks: 1 } }` | `codex-agent.ts:304-309`, `dsh-agent.ts:307-312`, `hermes-agent.ts:274-279`, `qwen-agent.ts:324-329`, `claude-agent.ts:288-293`, `one-shot-cli-agent.ts:390-395`, `opencode-agent.ts:428-433` + `:460-465`, `omp-agent.ts:1035-1044` | **9** |
498
+ | D29 | drain loop `while (!isDone \|\| queue.length > 0)` + stall watchdog + `await new Promise((r) => { resolveWait = r; setTimeout(...) })` | `codex-agent.ts:460-478`, `claude-agent.ts:388-406`, `dsh-agent.ts:414-432`, `qwen-agent.ts:404-422`, `hermes-agent.ts:376-394`, `opencode-agent.ts:502-529`, `one-shot-cli-agent.ts:492-511`, `omp-agent.ts:912-941` | **8 copies** |
499
+ | D30 | `flushDelta` / `pushDelta` 50 ms delta batching | `codex-agent.ts:324-340`, `omp-agent.ts:845-861` | 2 |
500
+ | D31 | `const queue / let isDone / let resolveWait / let lastActivity / let agentText` state prelude | 8 files (same as D29) | 8 |
501
+ | D32 | abort fallback `setTimeout(() => { if (!isDone) enqueue({ kind: 'done', ... }) }, 5000)` | `codex-agent.ts:431-433`, `claude-agent.ts:380-382`, `dsh-agent.ts:381-383`, `qwen-agent.ts:380-382`, `hermes-agent.ts:345-347`, `opencode-agent.ts:477` | **6 copies** |
502
+ | D33 | `onAbort` handler (log + engine cancel + 5 s fallback) | `codex-agent.ts:428-434`, `claude-agent.ts:377-383`, `dsh-agent.ts:378-385`, `qwen-agent.ts:377-385`, `hermes-agent.ts:342-348`, `opencode-agent.ts:472-478`, `one-shot-cli-agent.ts:434-438`, `omp-agent.ts:871-883` | **8 copies** |
503
+ | D34 | `collectTurnEvents` (byte-identical) | `codex-agent.ts:494-501`, `claude-agent.ts:419-426`, `dsh-agent.ts:446-453`, `qwen-agent.ts:435-442`, `hermes-agent.ts:407-414`, `one-shot-cli-agent.ts:242-249` | **6 identical copies** (omp-agent.ts:145-192 is a 7th, differently implemented) |
504
+
505
+ ```ts
506
+ 494: protected async collectTurnEvents(prompt: string, timeoutMs: number, signal?: AbortSignal): Promise<AgentEvent[]> {
507
+ 495: const events: AgentEvent[] = []
508
+ 496: for await (const e of this.streamTurn(prompt, undefined, timeoutMs, signal)) {
509
+ 497: events.push(e)
510
+ 498: if (e.kind === 'error') break
511
+ 499: }
512
+ 500: return events
513
+ 501: }
514
+ ```
515
+
516
+ ### 5.7 `dispose` / `kill` / process-management bodies
517
+
518
+ | # | function | file:lines | copies |
519
+ |---|---|---|---|
520
+ | D35 | `dispose()` (client teardown + `markHarnessProcessExit` + pending-map timer clear) | `codex-agent.ts:112-125`, `dsh-agent.ts:116-129`, `qwen-agent.ts:140-153`, `hermes-agent.ts:95-108` | **4 near-identical** (+ variants `claude-agent.ts:113-128`, `one-shot-cli-agent.ts:148-151`, `opencode-agent.ts:181-195`, `omp-agent.ts:437-449`) |
521
+ | D36 | `getProcessInfo()` | `codex-agent.ts:127-132`, `dsh-agent.ts:131-136`, `qwen-agent.ts:155-159`, `hermes-agent.ts:110-114`, `opencode-agent.ts:163-167`, `omp-agent.ts:459-464`, `one-shot-cli-agent.ts:153-157` | **7** |
522
+ | D37 | `killProcess()` | `codex-agent.ts:134-138`, `dsh-agent.ts:138-142`, `qwen-agent.ts:161-165`, `hermes-agent.ts:116-120` (byte-identical 5-liners) + `opencode-agent.ts:169-173`, `omp-agent.ts:467-476` | **6** |
523
+ | D38 | `reconcileProcess()` | `codex-agent.ts:140-142`, `dsh-agent.ts:144-146`, `qwen-agent.ts:167-169`, `hermes-agent.ts:122-124` (identical) + `opencode-agent.ts:175-179`, `omp-agent.ts:483-485` | **6** |
524
+ | D39 | `getContextStats()` shape `{ usedTokens, contextWindow, percent, compacting }` | `codex-agent.ts:144-153`, `dsh-agent.ts:148-157`, `hermes-agent.ts:126-135`, `qwen-agent.ts:171-173`, `claude-agent.ts:139-148`, `opencode-agent.ts:199-208`, `omp-agent.ts:241-252`, `one-shot-cli-agent.ts:170-179` | **8** |
525
+ | D40 | `steer()` deferred stub | `dsh-agent.ts:160-162`, `qwen-agent.ts:175-177`, `hermes-agent.ts:137-139`, `one-shot-cli-agent.ts:181-183` | **4** |
526
+ | D41 | `respondHitl()` default throw | `base-agent.ts:102-110`, `one-shot-cli-agent.ts:186-188` | 2 |
527
+ | D42 | `ensureClient(ctx)` guard (`if (!this.workspace) ... ; if (!this.agentInfo) { ...refreshIdentity() } ; if (client?.alive && session) return ; clientStarting ??= startClient().finally(...)`) | `codex-agent.ts:581-597`, `dsh-agent.ts:457-473`, `qwen-agent.ts:446-457`, `hermes-agent.ts:418-434`, `opencode-agent.ts:714-726` (`ensureServer`), `omp-agent.ts:1092-1103` | **6** |
528
+ | D43 | `startClient()` scaffolding (`const command = config.command ?? harnessSettings().X` + `new StdioJsonRpcClient` + pidRef + onExit + `registerHarnessProcess`/`bindHarnessProcess` + handshake + session create) | `codex-agent.ts:599-664`, `dsh-agent.ts:475-545`, `qwen-agent.ts:459-511`, `hermes-agent.ts:436-497` | **4** (~60 lines each) |
529
+ | D44 | `const pidRef = { pid: undefined as number \| undefined }` + `client.onExit(...)` + `registerHarnessProcess` + `bindHarnessProcess` | `codex-agent.ts:615-626`, `dsh-agent.ts:502-513`, `qwen-agent.ts:488-499`, `hermes-agent.ts:459-470`, `one-shot-cli-agent.ts:380-384`, `opencode-agent.ts:749-753` | **6** |
530
+ | D45 | ACP `initialize` + version-retry + `session/new` + sessionId guard | `dsh-agent.ts:525-542`, `hermes-agent.ts:480-494` | **2 near-identical** |
531
+ | D46 | `registerXxxHitl` (registry.register + `harnessSettings().hitl_timeout_ms` + `setTimeout` fail-closed) | `codex-agent.ts:505-533` and `:535-560`, `dsh-agent.ts:547-577`, `hermes-agent.ts:499-527`, `qwen-agent.ts:513-539`, `opencode-agent.ts:686-710`, `claude-agent.ts:539-562` | **7** |
532
+ | D47 | `clearPending(id, resolution)` | `dsh-agent.ts:206-211`, `hermes-agent.ts:178-183` (identical), `qwen-agent.ts:196-201`, `claude-agent.ts:187-194 denyPending` | 4 |
533
+ | D48 | ACP allow/reject option picking | `dsh-agent.ts:182-201`, `hermes-agent.ts:154-173` | **2 identical** |
534
+ | D49 | ensure engine MCP config (read JSON → merge `mcpServers.aw` → write JSON) | `gemini-agent.ts:34-56`, `copilot-agent.ts:47-64`, `cursor-agent.ts:34-50`, `qwen-agent.ts:50-86` | **4** (+ TOML variant `codex-agent.ts:671-728`, bash variant `crush-agent.ts:35-55`) |
535
+
536
+ ### 5.8 Same-key config parsing (config interfaces)
537
+
538
+ | # | duplicated shape | file:lines | copies |
539
+ |---|---|---|---|
540
+ | D50 | `command / args / cwd / model / promptTimeoutMs / superviseTimeoutMs / systemPromptPrefix / scenarioPrompt / agentId / name / role / channelId / token / baseUrl / mcpBridgePath` re-declared | `codex-agent.ts:35-66`, `dsh-agent.ts:44-77`, `claude-agent.ts:39-61`, `hermes-agent.ts:42-62`, `qwen-agent.ts:88-109`, `opencode-agent.ts:40-78` (no index signature) and `one-shot-cli-agent.ts:82-101` (has one) | **7 interfaces**, 15 shared keys each |
541
+ | D51 | `private agentRole: 'lead' \| 'worker' = 'worker'` re-declared over `base-agent.ts:54 protected agentRole` | `codex-agent.ts:77`, `claude-agent.ts:78`, `dsh-agent.ts:88`, `qwen-agent.ts:114`, `hermes-agent.ts:67`, `opencode-agent.ts:119`, `omp-agent.ts:208` | **7 copies**; compiler: `TS2415 … Property 'agentRole' is private in type 'ClaudeSdkAgentImpl' but not in type 'BaseAgentImpl'` (and the same for Hermes/Omp/Qwen); at runtime the field initializer runs **after** `super()` and overwrites the value the base constructor set — masked only because `ensureClient` re-assigns it (`dsh-agent.ts:461`, `codex-agent.ts:585`, `opencode-agent.ts:718`, `hermes-agent.ts:422`, `omp-agent.ts:1099`) |
542
+ | D52 | `private readonly bridgeCtx = { identity: {...}, state: this.toolState, getWorkspace: () => this.workspace }` re-declared over `base-agent.ts:49` | `codex-agent.ts:71-75`, `dsh-agent.ts:82-86`, `opencode-agent.ts:113-117` | **3 copies**; compiler: `TS2415 … Property 'bridgeCtx' is private in type 'CodexAgentImpl' but not in type 'BaseAgentImpl'` (same for Dsh/OpenCode) |
543
+ | D53 | `private supervising = false` re-declared over `base-agent.ts:135` | `opencode-agent.ts:278`, `omp-agent.ts:554` | 2; compiler `TS2415` on `opencode-agent.ts(110,14)` |
544
+ | D54 | `configRecord()` return `Record<string, unknown>` with a non-index-signature config type | `codex-agent.ts:108-110`, `dsh-agent.ts:112-114`, `opencode-agent.ts:157-159` | 3; compiler `TS2322: Type 'CodexAgentConfig' is not assignable to type 'Record<string, unknown>'. Index signature for type 'string' is missing` |
545
+
546
+ ### 5.9 Duplicate object keys / dead code (verified literals)
547
+
548
+ | # | file:line | code |
549
+ |---|---|---|
550
+ | D55 | `omp-agent.ts:1112-1113` | `args: [...(this.config.thinkingLevel ? ['--thinking', this.config.thinkingLevel] : [])],` / `args: this.config.args,` — last key wins, so **`--thinking` is never passed**; compiler `omp-agent.ts(1113,9): error TS1117: An object literal cannot have multiple properties with the same name.` The monitoring registration at `omp-agent.ts:1131` repeats the same (wrong) argv: `args: ['--mode', this.rpcMode, ...(this.config.args ?? [])]` |
551
+ | D56 | `goose-agent.ts:44-45` | `promptDelivery: 'arg',` twice; compiler `goose-agent.ts(45,3): error TS1117` |
552
+ | D57 | `goose-agent.ts:41` | `args.push('--with-extension', \`${nodePath} ${bridgePath}\`)` — two paths pre-joined into one argv element |
553
+ | D58 | `one-shot-cli-agent.ts:117` | `export class OneShotCliAgentImpl extends BaseAgentImpl implements AgentInterface {` — `AgentInterface` is only `import type` at line 20-24, which does not list it; compiler `one-shot-cli-agent.ts(117,67): error TS2304: Cannot find name 'AgentInterface'` |
554
+ | D59 | `qwen-agent.ts:205-235` | third copy of `supervise()` (base `base-agent.ts:137-166`, opencode `opencode-agent.ts:280-324`) — see §4.4 for why it never works |
555
+
556
+ ### 5.10 Proposal — shared base class + util module
557
+
558
+ **Move into `adapters/stdio-jsonrpc.ts` (or a new `adapters/stdio-rpc-agent.ts` subclass base):**
559
+ everything shared by codex / dsh / qwen / hermes —
560
+ `dispose` (`codex-agent.ts:112-125`, `dsh-agent.ts:116-129`, `qwen-agent.ts:140-153`, `hermes-agent.ts:95-108`),
561
+ `getProcessInfo` (D36), `killProcess` (D37), `reconcileProcess` (D38), `getContextStats` (D39),
562
+ `ensureClient` (D42), the `pidRef`/`onExit`/register/bind block (D44), `startClient` scaffolding (D43),
563
+ `collectTurnEvents` (D34), the `enqueue` closure (D27) and the drain loop (D29).
564
+ Net: ≈ **560 lines** of the 4 ACP/JSON-RPC adapters become one ≈ 180-line base.
565
+
566
+ **Move into a new `agents/harness-turn.ts` util:** the event-queue turn machine
567
+ (`enqueue`, `flushDelta`/`pushDelta` when applicable, stall watchdog, `onAbort`, 5 s abort fallback,
568
+ `collectTurnEvents`) currently copied as D27/D29/D30/D32/D33/D34 — ≈ **340 lines across 8 files → ≈ 70**.
569
+
570
+ **Move into `prompt-builder.ts`:** `taskText`/`msgText` (D15/D16) become `partsText()` (already at
571
+ `base-agent.ts:189-197`); `fromId`/`requireReply`/`crossChannel`/`replyContext` (D17) becomes
572
+ `peerContext(request)`; the `workerTurn`/`peerTurn` skeletons (D18/D19) collapse into two base
573
+ template methods. ≈ **300 lines → ≈ 60**.
574
+
575
+ **Move into `harness-env.ts`:** D1 all 8 call sites become `bridgeEnvFor(config, selfAgentId)`; add
576
+ `registerBridgeProcess(client, meta)` covering D44/D5; delete the hand-rolled duplicate at
577
+ `opencode-agent.ts:786-790`.
578
+
579
+ **Move into `harness-process.ts`:** add `spawnKill(pid, child)` so `stdio-jsonrpc.ts:205` and
580
+ `omp-rpc-client.ts:382` use the same tree-kill as `killProcess()`; add `registerAgentProcess(child,
581
+ meta)` covering D44.
582
+
583
+ **Move into `agents/harness-config.ts` (new):** the merge-only MCP config writers (D49) as
584
+ `mergeMcpServer(file, { type?, command, args, trust? })` + `resolveHarnessHome(root, agentId)`
585
+ (covering `safeId`, D10) + `assertSafeAbsolutePath` (D11).
586
+
587
+ **Move into `registry.ts`:** `resolveCommand` (D6/D7) becomes `HarnessDef.resolveCommand(config)` so
588
+ both the probe (`registry.ts:125,134,…`) and the adapter read the same function.
589
+
590
+ **Delete outright:** all `private agentRole` / `private bridgeCtx` / `private supervising`
591
+ re-declarations (D51-D53, 12 declarations), `qwen-agent.ts:205-235` (dead override, D59), the duplicate
592
+ key at `omp-agent.ts:1113` (D55) and `goose-agent.ts:45` (D56), the two redundant
593
+ `generateMcpBridgeEnv` evaluations at `dsh-agent.ts:485-486` (D2).
594
+
595
+ Estimated net reduction: **≈ 1 500 lines** of the ~5 000 lines currently in the 13 adapters, with the
596
+ divergences in D27/D29 and D51-D54 eliminated by construction.
597
+
598
+ ## 6. Registry + base class
599
+
600
+ ### 6.1 Registry enumeration — complete and correct
601
+
602
+ `registry.ts:109-236` `export const HARNESS_REGISTRY: Record<string, HarnessDef> = {` contains
603
+ **14 entries**: `mock` (110), `omp` (119), `opencode` (128), `codex` (137), `dsh` (146), `claude` (155),
604
+ `gemini` (164), `copilot` (173), `cursor` (182), `crush` (191), `goose` (200), `qwen` (209), `pi` (218),
605
+ `hermes` (227).
606
+ That is **exactly one entry per adapter file** (13 harness adapters + `mock-agent.ts`) — no adapter is
607
+ missing and none is registered twice. `factory.ts:10-12` delegates to
608
+ `registry.ts:252-258 createAgentImplByHarness`.
609
+
610
+ Every entry carries a `probe`; the two in-process engines declare
611
+ `probe: { inprocess: true }` — `registry.ts:116` (mock) and `registry.ts:161` (claude) — matching
612
+ `harness-availability.ts:90-92`. The 11 process engines' `probe.command` uses the same
613
+ `cmdFrom(c) || harnessSettings().X_command` rule as the adapters, and
614
+ `settings.ts:87-98` declares exactly those 11 keys (`opencode_command … hermes_command`, no
615
+ `omp_command` because `registry.ts:125` hard-codes `'omp'`, matching `omp-agent.ts:1108`
616
+ `const command = this.config.command ?? 'omp'`).
617
+
618
+ Cross-file enumeration gaps found (outside the agents tree but same fact source):
619
+ - `plugins/dev-stability-guard.ts:16` lists only 4 harnesses (`opencode|omp|codex|dsh`).
620
+ - `scripts/e2e-multi-harness.ts:166` lists 12 (identical union minus `omp`) while
621
+ `harness-models.ts:265-303` covers all 13 (`case 'omp' … case 'hermes'` + `default`).
622
+
623
+ ### 6.2 Which adapters do NOT extend `BaseAgentImpl`
624
+
625
+ Exactly one: **`mock-agent.ts:38`**
626
+
627
+ ```ts
628
+ 38: export class MockAgentImpl implements AgentInterface {
629
+ ```
630
+
631
+ It has no `dispose`, no `killProcess`/`getProcessInfo`, no `respondHitl` and no `onTurnSettled`
632
+ — consistent with its in-process nature, but it also means it does not inherit the base
633
+ `run()` dispatch (`base-agent.ts:114-125`); it re-implements it at `mock-agent.ts:68-81`.
634
+
635
+ Declarations (verbatim):
636
+
637
+ ```ts
638
+ base-agent.ts:46 export abstract class BaseAgentImpl implements AgentInterface {
639
+ adapters/one-shot-cli-agent.ts:117 export class OneShotCliAgentImpl extends BaseAgentImpl implements AgentInterface {
640
+ codex-agent.ts:68 export class CodexAgentImpl extends BaseAgentImpl implements AgentInterface {
641
+ claude-agent.ts:75 export class ClaudeSdkAgentImpl extends BaseAgentImpl implements AgentInterface {
642
+ dsh-agent.ts:79 export class DshAgentImpl extends BaseAgentImpl implements AgentInterface {
643
+ qwen-agent.ts:111 export class QwenAgentImpl extends BaseAgentImpl {
644
+ hermes-agent.ts:64 export class HermesAgentImpl extends BaseAgentImpl implements AgentInterface {
645
+ omp-agent.ts:129 export class OmpRpcAgentImpl extends BaseAgentImpl implements AgentInterface {
646
+ opencode-agent.ts:110 export class OpenCodeAgentImpl extends BaseAgentImpl implements AgentInterface {
647
+ gemini-agent.ts:112 export class GeminiAgentImpl extends OneShotCliAgentImpl {
648
+ copilot-agent.ts:132 export class CopilotAgentImpl extends OneShotCliAgentImpl {
649
+ cursor-agent.ts:98 export class CursorAgentImpl extends OneShotCliAgentImpl {
650
+ crush-agent.ts:103 export class CrushAgentImpl extends OneShotCliAgentImpl {
651
+ goose-agent.ts:94 export class GooseAgentImpl extends OneShotCliAgentImpl {
652
+ pi-agent.ts:104 export class PiAgentImpl extends OneShotCliAgentImpl {
653
+ mock-agent.ts:38 export class MockAgentImpl implements AgentInterface {
654
+ ```
655
+
656
+ So: 8 direct subclasses, 6 indirect (via `OneShotCliAgentImpl`), 1 (`mock`) outside the hierarchy.
657
+ `QwenAgentImpl` is the only direct subclass that omits `implements AgentInterface` (it inherits the
658
+ contract structurally).
659
+
660
+ Two "extends BaseAgentImpl" declarations do not actually satisfy it:
661
+ `opencode-agent.ts(110,14): error TS2515: Non-abstract class 'OpenCodeAgentImpl' does not implement
662
+ inherited abstract member collectTurnEvents from class 'BaseAgentImpl'` — opencode never defines
663
+ `collectTurnEvents` (it routes `supervise` through its own `runTurn` instead), so the base
664
+ `supervise()` at `base-agent.ts:150` would call an undefined method if the override were removed.