agentworkshop 0.8.2 → 0.8.3

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 (1557) hide show
  1. package/.output/.AgentWorkShop/aml-python/train-example.py +92 -92
  2. package/.output/nitro.json +1 -1
  3. package/.output/public/_nuxt/{BCLUwdP52.js → 39W1CH-l2.js} +1 -1
  4. package/.output/public/_nuxt/7xbYPfY6.js +1 -0
  5. package/.output/public/_nuxt/{BfvuWqSa.js → ATAvN55g.js} +1 -1
  6. package/.output/public/_nuxt/{B2NbzUau2.js → B3eCVqcT2.js} +1 -1
  7. package/.output/public/_nuxt/{DuUc4bbY2.js → B9qIhT7k2.js} +1 -1
  8. package/.output/public/_nuxt/{BkEokGX5.js → BE9oKpOt.js} +1 -1
  9. package/.output/public/_nuxt/{D_59BNP1.js → Bbk1XCCM.js} +3 -3
  10. package/.output/public/_nuxt/{Dz9C2pTa.js → CMzExk8F.js} +1 -1
  11. package/.output/public/_nuxt/{dHwWyr6b.js → CT4bi_Y4.js} +1 -1
  12. package/.output/public/_nuxt/{26OL4Ao82.js → CeCSjB9O2.js} +1 -1
  13. package/.output/public/_nuxt/{Dyxf2xZw.js → Cot5VNae.js} +1 -1
  14. package/.output/public/_nuxt/{BVg2R2VB2.js → Crf8_Ad02.js} +1 -1
  15. package/.output/public/_nuxt/{rDvMijKA.js → D9tNM-1a.js} +2 -2
  16. package/.output/public/_nuxt/{YAA98rWJ.js → DAug2CPf.js} +7 -7
  17. package/.output/public/_nuxt/{CQSxS_Ek.js → DbhTN7-T.js} +1 -1
  18. package/.output/public/_nuxt/DgGzwjAr2.js +2 -0
  19. package/.output/public/_nuxt/DkRozlDP2.js +1 -0
  20. package/.output/public/_nuxt/{DGu_fna7.js → DoChWkff.js} +1 -1
  21. package/.output/public/_nuxt/{Byiiiwc72.js → DxH5focQ2.js} +1 -1
  22. package/.output/public/_nuxt/Dyr3LPGL.js +1 -0
  23. package/.output/public/_nuxt/{CC2Pv8VL2.js → MC_i34H42.js} +1 -1
  24. package/.output/public/_nuxt/OmpTerminalPanel.DMWgGwDs.css +1 -0
  25. package/.output/public/_nuxt/PluginSlot.BqBzLD4T.css +1 -0
  26. package/.output/public/_nuxt/TownView.Cn8SPG7S.css +1 -0
  27. package/.output/public/_nuxt/{CmuGMxDP.js → TugRY_4O.js} +1 -1
  28. package/.output/public/_nuxt/{BPUQZ9Lq2.js → WybiLTow2.js} +1 -1
  29. package/.output/public/_nuxt/{BaYDgyaR.js → Zn0BZpf0.js} +3 -3
  30. package/.output/public/_nuxt/{_id_.BQRWK7J2.css → _id_.Be5JaH-P.css} +1 -1
  31. package/.output/public/_nuxt/{_wsId_.DCnKQQdY.css → _wsId_.p_vAYtTp.css} +1 -1
  32. package/.output/public/_nuxt/{agents.D-JPovTZ.css → agents.CRomddYR.css} +1 -1
  33. package/.output/public/_nuxt/aml.DgOMpDpv.css +1 -0
  34. package/.output/public/_nuxt/builds/latest.json +1 -1
  35. package/.output/public/_nuxt/builds/meta/fd0033e4-1eaa-42f8-9a04-3132717a703b.json +1 -0
  36. package/.output/public/_nuxt/{default.BEXGWZFQ.css → default.CpAx70gC.css} +1 -1
  37. package/.output/public/_nuxt/{logs.BkJPbR_K.css → logs.DcSvz6vi.css} +1 -1
  38. package/.output/public/_nuxt/{monitor.D3yEqqrv.css → monitor.OoNTwfMJ.css} +1 -1
  39. package/.output/public/_nuxt/{ontology.B_3Wn907.css → ontology.JqJ6PjV1.css} +1 -1
  40. package/.output/public/_nuxt/{operations.-l6u44Ar.css → operations.C48ggFa5.css} +1 -1
  41. package/.output/public/_nuxt/{pages.Cdpm_B-G.css → pages.Dpa28tJW.css} +1 -1
  42. package/.output/public/_nuxt/permissions.CrV-4t-6.css +1 -0
  43. package/.output/public/_nuxt/{BfeXib9G.js → rcdmiszh2.js} +1 -1
  44. package/.output/public/_nuxt/schedules.DYWOjGHm.css +1 -0
  45. package/.output/public/_nuxt/{teams.CLQaXno5.css → teams.DEJoJ4QV.css} +1 -1
  46. package/.output/public/_nuxt/{tokens.BDSUWF-L.css → tokens.DKZWCP5v.css} +1 -1
  47. package/.output/public/_nuxt/tools.DP-nsTli.css +1 -0
  48. package/.output/public/_nuxt/wK6Pp4Zc2.js +2 -0
  49. package/.output/public/_nuxt/{workshop.BBiFhXuM.css → workshop.PT1xhP8C.css} +1 -1
  50. package/.output/public/favicon.svg +14 -14
  51. package/.output/public/robots.txt +3 -3
  52. package/.output/server/chunks/_/LeftOutlined.mjs.map +1 -1
  53. package/.output/server/chunks/_/RightOutlined.mjs.map +1 -1
  54. package/.output/server/chunks/_/SearchOutlined.mjs +1230 -1261
  55. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  56. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  57. package/.output/server/chunks/_/nitro.mjs +3243 -3324
  58. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  59. package/.output/server/chunks/build/AuthGate-G74Wr5IV.mjs +704 -0
  60. package/.output/server/chunks/build/AuthGate-G74Wr5IV.mjs.map +1 -0
  61. package/.output/server/chunks/build/FormItemContext-DmuQqaeJ.mjs +77 -0
  62. package/.output/server/chunks/build/FormItemContext-DmuQqaeJ.mjs.map +1 -0
  63. package/.output/server/chunks/build/OmpTerminalPanel-5cB-78zp.mjs +889 -0
  64. package/.output/server/chunks/build/OmpTerminalPanel-5cB-78zp.mjs.map +1 -0
  65. package/.output/server/chunks/build/PluginSlot-CZlGlRoR.mjs +131 -0
  66. package/.output/server/chunks/build/PluginSlot-CZlGlRoR.mjs.map +1 -0
  67. package/.output/server/chunks/build/TownView-CUbzOT_M.mjs +5960 -0
  68. package/.output/server/chunks/build/TownView-CUbzOT_M.mjs.map +1 -0
  69. package/.output/server/chunks/build/_id_-BHWZiRQZ.mjs +373 -0
  70. package/.output/server/chunks/build/_id_-BHWZiRQZ.mjs.map +1 -0
  71. package/.output/server/chunks/build/_id_-JaGx0yBE.mjs +1922 -0
  72. package/.output/server/chunks/build/_id_-JaGx0yBE.mjs.map +1 -0
  73. package/.output/server/chunks/build/_wsId_-C4DKkEqv.mjs +13707 -0
  74. package/.output/server/chunks/build/_wsId_-C4DKkEqv.mjs.map +1 -0
  75. package/.output/server/chunks/build/agents-DRod4lTC.mjs +1047 -0
  76. package/.output/server/chunks/build/agents-DRod4lTC.mjs.map +1 -0
  77. package/.output/server/chunks/build/alert-CNGhs--Y.mjs +260 -0
  78. package/.output/server/chunks/build/alert-CNGhs--Y.mjs.map +1 -0
  79. package/.output/server/chunks/build/aml-B3Umz4DR.mjs +729 -0
  80. package/.output/server/chunks/build/aml-B3Umz4DR.mjs.map +1 -0
  81. package/.output/server/chunks/build/analysis-tNpFLtMt.mjs +502 -0
  82. package/.output/server/chunks/build/analysis-tNpFLtMt.mjs.map +1 -0
  83. package/.output/server/chunks/build/{api-B4Om0mEc.mjs → api-D-zkgkj-.mjs} +8 -10
  84. package/.output/server/chunks/build/api-D-zkgkj-.mjs.map +1 -0
  85. package/.output/server/chunks/build/{api-BsAgXWxi.mjs → api-D3gy2e2q.mjs} +22 -24
  86. package/.output/server/chunks/build/api-D3gy2e2q.mjs.map +1 -0
  87. package/.output/server/chunks/build/{api-BEW_ebY_.mjs → api-bn4OKkl_.mjs} +17 -19
  88. package/.output/server/chunks/build/api-bn4OKkl_.mjs.map +1 -0
  89. package/.output/server/chunks/build/api-error-CnW_xiNI.mjs +46 -0
  90. package/.output/server/chunks/build/api-error-CnW_xiNI.mjs.map +1 -0
  91. package/.output/server/chunks/build/apiClient-DIXx9sfD.mjs +70 -0
  92. package/.output/server/chunks/build/apiClient-DIXx9sfD.mjs.map +1 -0
  93. package/.output/server/chunks/build/board-B2oYXGBy.mjs +172 -0
  94. package/.output/server/chunks/build/board-B2oYXGBy.mjs.map +1 -0
  95. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +81 -94
  96. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -1
  97. package/.output/server/chunks/build/card-BECE6y_G.mjs +922 -0
  98. package/.output/server/chunks/build/card-BECE6y_G.mjs.map +1 -0
  99. package/.output/server/chunks/build/channel-templates-R2TInv8B.mjs +950 -0
  100. package/.output/server/chunks/build/channel-templates-R2TInv8B.mjs.map +1 -0
  101. package/.output/server/chunks/build/chart-trend-BWeZh5Lv.mjs +113 -112
  102. package/.output/server/chunks/build/chart-trend-BWeZh5Lv.mjs.map +1 -1
  103. package/.output/server/chunks/build/checkbox-C6xY5uc6.mjs +429 -0
  104. package/.output/server/chunks/build/checkbox-C6xY5uc6.mjs.map +1 -0
  105. package/.output/server/chunks/build/client-only-S7k53PIm.mjs +42 -0
  106. package/.output/server/chunks/build/client-only-S7k53PIm.mjs.map +1 -0
  107. package/.output/server/chunks/build/constants-HPHJvjne.mjs +65 -75
  108. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  109. package/.output/server/chunks/build/core-CRlsQhzd.mjs +292 -0
  110. package/.output/server/chunks/build/core-CRlsQhzd.mjs.map +1 -0
  111. package/.output/server/chunks/build/daq-DHsYtWC-.mjs +1210 -0
  112. package/.output/server/chunks/build/daq-DHsYtWC-.mjs.map +1 -0
  113. package/.output/server/chunks/build/data-Cl4wRZO6.mjs +459 -0
  114. package/.output/server/chunks/build/data-Cl4wRZO6.mjs.map +1 -0
  115. package/.output/server/chunks/build/dcw-DnjOM6p1.mjs +467 -0
  116. package/.output/server/chunks/build/dcw-DnjOM6p1.mjs.map +1 -0
  117. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +3 -15
  118. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -1
  119. package/.output/server/chunks/build/default-DDRKP2Mb.mjs +2246 -0
  120. package/.output/server/chunks/build/default-DDRKP2Mb.mjs.map +1 -0
  121. package/.output/server/chunks/build/descriptions-B3uhDesi.mjs +401 -0
  122. package/.output/server/chunks/build/descriptions-B3uhDesi.mjs.map +1 -0
  123. package/.output/server/chunks/build/drawer-DwXxapMg.mjs +822 -0
  124. package/.output/server/chunks/build/drawer-DwXxapMg.mjs.map +1 -0
  125. package/.output/server/chunks/build/dropdown-DLrGy-Fs.mjs +12 -0
  126. package/.output/server/chunks/build/dropdown-DLrGy-Fs.mjs.map +1 -0
  127. package/.output/server/chunks/build/dropdown-nsGv8Gqx.mjs +530 -0
  128. package/.output/server/chunks/build/dropdown-nsGv8Gqx.mjs.map +1 -0
  129. package/.output/server/chunks/build/{es-Bxu10NJ2.mjs → es-DXSEkmAm.mjs} +1 -2
  130. package/.output/server/chunks/build/es-DXSEkmAm.mjs.map +1 -0
  131. package/.output/server/chunks/build/firstNotUndefined-laiThpLD.mjs +2082 -0
  132. package/.output/server/chunks/build/firstNotUndefined-laiThpLD.mjs.map +1 -0
  133. package/.output/server/chunks/build/form-Cw2Ex9w5.mjs +3543 -0
  134. package/.output/server/chunks/build/form-Cw2Ex9w5.mjs.map +1 -0
  135. package/.output/server/chunks/build/hasIn-RYRGomyg.mjs +192 -0
  136. package/.output/server/chunks/build/hasIn-RYRGomyg.mjs.map +1 -0
  137. package/.output/server/chunks/build/hitl-B4cHRlkC.mjs +120 -0
  138. package/.output/server/chunks/build/hitl-B4cHRlkC.mjs.map +1 -0
  139. package/.output/server/chunks/build/input-CJgB-RL6.mjs +1705 -0
  140. package/.output/server/chunks/build/input-CJgB-RL6.mjs.map +1 -0
  141. package/.output/server/chunks/build/input-number-CQKL42p_.mjs +1027 -0
  142. package/.output/server/chunks/build/input-number-CQKL42p_.mjs.map +1 -0
  143. package/.output/server/chunks/build/interval-DiAUqODq.mjs +8 -0
  144. package/.output/server/chunks/build/interval-DiAUqODq.mjs.map +1 -0
  145. package/.output/server/chunks/build/isNumeric-DQiJ-b15.mjs +6 -0
  146. package/.output/server/chunks/build/isNumeric-DQiJ-b15.mjs.map +1 -0
  147. package/.output/server/chunks/build/logs-C4vKFkHQ.mjs +381 -0
  148. package/.output/server/chunks/build/logs-C4vKFkHQ.mjs.map +1 -0
  149. package/.output/server/chunks/build/menu-xO8ocVtL.mjs +1833 -0
  150. package/.output/server/chunks/build/menu-xO8ocVtL.mjs.map +1 -0
  151. package/.output/server/chunks/build/monitor-BNrG6v3b.mjs +2216 -0
  152. package/.output/server/chunks/build/monitor-BNrG6v3b.mjs.map +1 -0
  153. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs +0 -2
  154. package/.output/server/chunks/build/narrow-fetch-CcG-BPxc.mjs.map +1 -1
  155. package/.output/server/chunks/build/ontology-B_0Vm6j-.mjs +1416 -0
  156. package/.output/server/chunks/build/ontology-B_0Vm6j-.mjs.map +1 -0
  157. package/.output/server/chunks/build/operations-D8D6-Jm-.mjs +278 -0
  158. package/.output/server/chunks/build/operations-D8D6-Jm-.mjs.map +1 -0
  159. package/.output/server/chunks/build/optimizer-DaTyaY3c.mjs +202 -0
  160. package/.output/server/chunks/build/optimizer-DaTyaY3c.mjs.map +1 -0
  161. package/.output/server/chunks/build/pages-Dac4icQC.mjs +439 -0
  162. package/.output/server/chunks/build/pages-Dac4icQC.mjs.map +1 -0
  163. package/.output/server/chunks/build/pagination-BTzq7dD5.mjs +1330 -0
  164. package/.output/server/chunks/build/pagination-BTzq7dD5.mjs.map +1 -0
  165. package/.output/server/chunks/build/permissions-qmimwB0M.mjs +649 -0
  166. package/.output/server/chunks/build/permissions-qmimwB0M.mjs.map +1 -0
  167. package/.output/server/chunks/build/plugins-Dh_goy-k.mjs +269 -0
  168. package/.output/server/chunks/build/plugins-Dh_goy-k.mjs.map +1 -0
  169. package/.output/server/chunks/build/popconfirm-DuGF7ty-.mjs +333 -0
  170. package/.output/server/chunks/build/popconfirm-DuGF7ty-.mjs.map +1 -0
  171. package/.output/server/chunks/build/responsiveObserve-CzRpNXkr.mjs +77 -0
  172. package/.output/server/chunks/build/responsiveObserve-CzRpNXkr.mjs.map +1 -0
  173. package/.output/server/chunks/build/schedules-C2_x38gj.mjs +7039 -0
  174. package/.output/server/chunks/build/schedules-C2_x38gj.mjs.map +1 -0
  175. package/.output/server/chunks/build/segmented-29uEKZ3D.mjs +332 -0
  176. package/.output/server/chunks/build/segmented-29uEKZ3D.mjs.map +1 -0
  177. package/.output/server/chunks/build/select-CJb2XrQf.mjs +3734 -0
  178. package/.output/server/chunks/build/select-CJb2XrQf.mjs.map +1 -0
  179. package/.output/server/chunks/build/settings-Cz2Plds0.mjs +944 -0
  180. package/.output/server/chunks/build/settings-Cz2Plds0.mjs.map +1 -0
  181. package/.output/server/chunks/build/space-BByD-mFE.mjs +107 -0
  182. package/.output/server/chunks/build/space-BByD-mFE.mjs.map +1 -0
  183. package/.output/server/chunks/build/spin-XhbgGeLP.mjs +313 -0
  184. package/.output/server/chunks/build/spin-XhbgGeLP.mjs.map +1 -0
  185. package/.output/server/chunks/build/studio-CwYXl00G.mjs +329 -0
  186. package/.output/server/chunks/build/studio-CwYXl00G.mjs.map +1 -0
  187. package/.output/server/chunks/build/switch-DWcwVFxW.mjs +374 -0
  188. package/.output/server/chunks/build/switch-DWcwVFxW.mjs.map +1 -0
  189. package/.output/server/chunks/build/table-Zhuo7Fq-.mjs +7249 -0
  190. package/.output/server/chunks/build/table-Zhuo7Fq-.mjs.map +1 -0
  191. package/.output/server/chunks/build/tabs-BCwBXjNt.mjs +1838 -0
  192. package/.output/server/chunks/build/tabs-BCwBXjNt.mjs.map +1 -0
  193. package/.output/server/chunks/build/tag-CRW-anwy.mjs +1010 -0
  194. package/.output/server/chunks/build/tag-CRW-anwy.mjs.map +1 -0
  195. package/.output/server/chunks/build/teams-CwhFdcYn.mjs +1160 -0
  196. package/.output/server/chunks/build/teams-CwhFdcYn.mjs.map +1 -0
  197. package/.output/server/chunks/build/tokens-C5ODO1HA.mjs +992 -0
  198. package/.output/server/chunks/build/tokens-C5ODO1HA.mjs.map +1 -0
  199. package/.output/server/chunks/build/tools-C0YKragH.mjs +487 -0
  200. package/.output/server/chunks/build/tools-C0YKragH.mjs.map +1 -0
  201. package/.output/server/chunks/build/tooltip-GlMrUZzx.mjs +888 -0
  202. package/.output/server/chunks/build/tooltip-GlMrUZzx.mjs.map +1 -0
  203. package/.output/server/chunks/build/town-BV-hbwb5.mjs +16 -29
  204. package/.output/server/chunks/build/town-BV-hbwb5.mjs.map +1 -1
  205. package/.output/server/chunks/build/town-LkDwWnKA.mjs +117 -0
  206. package/.output/server/chunks/build/town-LkDwWnKA.mjs.map +1 -0
  207. package/.output/server/chunks/build/types-D6J7slEa.mjs.map +1 -1
  208. package/.output/server/chunks/build/types-DWqIeMRP.mjs +28 -29
  209. package/.output/server/chunks/build/types-DWqIeMRP.mjs.map +1 -1
  210. package/.output/server/chunks/build/useAgentHarnessOptions-CYKuLtZ2.mjs +120 -0
  211. package/.output/server/chunks/build/useAgentHarnessOptions-CYKuLtZ2.mjs.map +1 -0
  212. package/.output/server/chunks/build/useAgentTemplateActions-Da_V1LSD.mjs +71 -0
  213. package/.output/server/chunks/build/useAgentTemplateActions-Da_V1LSD.mjs.map +1 -0
  214. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +16 -23
  215. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  216. package/.output/server/chunks/build/useAgentTemplateForm-BWvax5_E.mjs +112 -0
  217. package/.output/server/chunks/build/useAgentTemplateForm-BWvax5_E.mjs.map +1 -0
  218. package/.output/server/chunks/build/useAgentTemplatesCatalog-BnYjZy59.mjs +140 -0
  219. package/.output/server/chunks/build/useAgentTemplatesCatalog-BnYjZy59.mjs.map +1 -0
  220. package/.output/server/chunks/build/useAmlDatasets-nGi10DAl.mjs +88 -0
  221. package/.output/server/chunks/build/useAmlDatasets-nGi10DAl.mjs.map +1 -0
  222. package/.output/server/chunks/build/useAmlEntities-CTgNAgcZ.mjs +79 -0
  223. package/.output/server/chunks/build/useAmlEntities-CTgNAgcZ.mjs.map +1 -0
  224. package/.output/server/chunks/build/useAmlEnv-Da2TVfyK.mjs +188 -0
  225. package/.output/server/chunks/build/useAmlEnv-Da2TVfyK.mjs.map +1 -0
  226. package/.output/server/chunks/build/useAmlExperiments-U9AQ52RI.mjs +86 -0
  227. package/.output/server/chunks/build/useAmlExperiments-U9AQ52RI.mjs.map +1 -0
  228. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +32 -37
  229. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  230. package/.output/server/chunks/build/useAmlJobs-BM1mu5iH.mjs +251 -0
  231. package/.output/server/chunks/build/useAmlJobs-BM1mu5iH.mjs.map +1 -0
  232. package/.output/server/chunks/build/useAmlModels-C1DwIOMi.mjs +90 -0
  233. package/.output/server/chunks/build/useAmlModels-C1DwIOMi.mjs.map +1 -0
  234. package/.output/server/chunks/build/useAmlNotes-CNm47QdS.mjs +80 -0
  235. package/.output/server/chunks/build/useAmlNotes-CNm47QdS.mjs.map +1 -0
  236. package/.output/server/chunks/build/useAmlPredict-m8I1AdRn.mjs +126 -0
  237. package/.output/server/chunks/build/useAmlPredict-m8I1AdRn.mjs.map +1 -0
  238. package/.output/server/chunks/build/useAnalysisFeed-CpbOaiBD.mjs +120 -0
  239. package/.output/server/chunks/build/useAnalysisFeed-CpbOaiBD.mjs.map +1 -0
  240. package/.output/server/chunks/build/useDaqAddNode-CRorxgOY.mjs +141 -0
  241. package/.output/server/chunks/build/useDaqAddNode-CRorxgOY.mjs.map +1 -0
  242. package/.output/server/chunks/build/useDaqDetailBinding-Ck-YUW9J.mjs +72 -0
  243. package/.output/server/chunks/build/useDaqDetailBinding-Ck-YUW9J.mjs.map +1 -0
  244. package/.output/server/chunks/build/useDaqDetailFrames-CLMoreaz.mjs +78 -0
  245. package/.output/server/chunks/build/useDaqDetailFrames-CLMoreaz.mjs.map +1 -0
  246. package/.output/server/chunks/build/useDaqDetailHistory-BVNQXwC_.mjs +166 -0
  247. package/.output/server/chunks/build/useDaqDetailHistory-BVNQXwC_.mjs.map +1 -0
  248. package/.output/server/chunks/build/useDaqDetailNode-BC0e9OfX.mjs +103 -0
  249. package/.output/server/chunks/build/useDaqDetailNode-BC0e9OfX.mjs.map +1 -0
  250. package/.output/server/chunks/build/useDaqDetailParams-D173iwFg.mjs +157 -0
  251. package/.output/server/chunks/build/useDaqDetailParams-D173iwFg.mjs.map +1 -0
  252. package/.output/server/chunks/build/useDaqFilters-CC-o_21d.mjs +224 -0
  253. package/.output/server/chunks/build/useDaqFilters-CC-o_21d.mjs.map +1 -0
  254. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +43 -44
  255. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  256. package/.output/server/chunks/build/useDaqOptimizations-4vK2w1yn.mjs +132 -0
  257. package/.output/server/chunks/build/useDaqOptimizations-4vK2w1yn.mjs.map +1 -0
  258. package/.output/server/chunks/build/useDaqStream-BHKpSJFd.mjs +385 -0
  259. package/.output/server/chunks/build/useDaqStream-BHKpSJFd.mjs.map +1 -0
  260. package/.output/server/chunks/build/useDaqTemplates-CsXSc7yI.mjs +181 -0
  261. package/.output/server/chunks/build/useDaqTemplates-CsXSc7yI.mjs.map +1 -0
  262. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +312 -310
  263. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  264. package/.output/server/chunks/build/useDashboardData-DuKjuJTz.mjs +139 -0
  265. package/.output/server/chunks/build/useDashboardData-DuKjuJTz.mjs.map +1 -0
  266. package/.output/server/chunks/build/useDcwAddNode-C5DcxsHF.mjs +217 -0
  267. package/.output/server/chunks/build/useDcwAddNode-C5DcxsHF.mjs.map +1 -0
  268. package/.output/server/chunks/build/{useDcwCards-SaiImIYQ.mjs → useDcwCards-0bAVo6uB.mjs} +20 -23
  269. package/.output/server/chunks/build/useDcwCards-0bAVo6uB.mjs.map +1 -0
  270. package/.output/server/chunks/build/useDcwDetailScope-BNFOlt2v.mjs +184 -0
  271. package/.output/server/chunks/build/useDcwDetailScope-BNFOlt2v.mjs.map +1 -0
  272. package/.output/server/chunks/build/useDcwDetailTemplates-DSH-o0tE.mjs +143 -0
  273. package/.output/server/chunks/build/useDcwDetailTemplates-DSH-o0tE.mjs.map +1 -0
  274. package/.output/server/chunks/build/useDcwFilter-W61BFUcT.mjs +65 -0
  275. package/.output/server/chunks/build/useDcwFilter-W61BFUcT.mjs.map +1 -0
  276. package/.output/server/chunks/build/{useDcwLedger-0ie-0WTc.mjs → useDcwLedger-DsColLdc.mjs} +29 -35
  277. package/.output/server/chunks/build/useDcwLedger-DsColLdc.mjs.map +1 -0
  278. package/.output/server/chunks/build/useDcwLineMutations-Cx4Ir7g3.mjs +133 -0
  279. package/.output/server/chunks/build/useDcwLineMutations-Cx4Ir7g3.mjs.map +1 -0
  280. package/.output/server/chunks/build/useDcwLineRun-DQ0vB08z.mjs +100 -0
  281. package/.output/server/chunks/build/useDcwLineRun-DQ0vB08z.mjs.map +1 -0
  282. package/.output/server/chunks/build/useDcwParamApprovals-CYspRuDk.mjs +119 -0
  283. package/.output/server/chunks/build/useDcwParamApprovals-CYspRuDk.mjs.map +1 -0
  284. package/.output/server/chunks/build/useDcwProducts-CTbm_5S_.mjs +88 -0
  285. package/.output/server/chunks/build/useDcwProducts-CTbm_5S_.mjs.map +1 -0
  286. package/.output/server/chunks/build/useDcwQuery-E0yjZs7G.mjs +93 -0
  287. package/.output/server/chunks/build/useDcwQuery-E0yjZs7G.mjs.map +1 -0
  288. package/.output/server/chunks/build/useDcwQuickActions-BvT5VFOY.mjs +84 -0
  289. package/.output/server/chunks/build/useDcwQuickActions-BvT5VFOY.mjs.map +1 -0
  290. package/.output/server/chunks/build/useDcwRecipes-zngShyk0.mjs +263 -0
  291. package/.output/server/chunks/build/useDcwRecipes-zngShyk0.mjs.map +1 -0
  292. package/.output/server/chunks/build/useDcwStream-82IdjJKk.mjs +455 -0
  293. package/.output/server/chunks/build/useDcwStream-82IdjJKk.mjs.map +1 -0
  294. package/.output/server/chunks/build/useDcwTemplates-CpHrcnvJ.mjs +87 -0
  295. package/.output/server/chunks/build/useDcwTemplates-CpHrcnvJ.mjs.map +1 -0
  296. package/.output/server/chunks/build/useDcwWrites-BlOhljp9.mjs +136 -0
  297. package/.output/server/chunks/build/useDcwWrites-BlOhljp9.mjs.map +1 -0
  298. package/.output/server/chunks/build/useDeviceTwins-DL-VLFeX.mjs +118 -0
  299. package/.output/server/chunks/build/useDeviceTwins-DL-VLFeX.mjs.map +1 -0
  300. package/.output/server/chunks/build/useExpConfirmations-DgwqTb9O.mjs +104 -0
  301. package/.output/server/chunks/build/useExpConfirmations-DgwqTb9O.mjs.map +1 -0
  302. package/.output/server/chunks/build/useLocalTime-C__kwn8h.mjs +52 -0
  303. package/.output/server/chunks/build/useLocalTime-C__kwn8h.mjs.map +1 -0
  304. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +30 -33
  305. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  306. package/.output/server/chunks/build/useLogsManual-BcfanT0s.mjs +80 -0
  307. package/.output/server/chunks/build/useLogsManual-BcfanT0s.mjs.map +1 -0
  308. package/.output/server/chunks/build/useLogsQuery-BGlKVKpV.mjs +136 -0
  309. package/.output/server/chunks/build/useLogsQuery-BGlKVKpV.mjs.map +1 -0
  310. package/.output/server/chunks/build/useLogsScope-BRyy550Y.mjs +75 -0
  311. package/.output/server/chunks/build/useLogsScope-BRyy550Y.mjs.map +1 -0
  312. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs +155 -166
  313. package/.output/server/chunks/build/useMonitorColumns-vVnt3r5Q.mjs.map +1 -1
  314. package/.output/server/chunks/build/useMonitorData-BUey2Xly.mjs +128 -0
  315. package/.output/server/chunks/build/useMonitorData-BUey2Xly.mjs.map +1 -0
  316. package/.output/server/chunks/build/useMonitorFormat-rhs7FlNo.mjs +77 -0
  317. package/.output/server/chunks/build/useMonitorFormat-rhs7FlNo.mjs.map +1 -0
  318. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +20 -27
  319. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  320. package/.output/server/chunks/build/useOperationsFeed-DWfCjP4l.mjs +182 -0
  321. package/.output/server/chunks/build/useOperationsFeed-DWfCjP4l.mjs.map +1 -0
  322. package/.output/server/chunks/build/useOpsLog--yf8erUi.mjs +139 -0
  323. package/.output/server/chunks/build/useOpsLog--yf8erUi.mjs.map +1 -0
  324. package/.output/server/chunks/build/useRecipeDispatchApprovals-CKF2sB9P.mjs +146 -0
  325. package/.output/server/chunks/build/useRecipeDispatchApprovals-CKF2sB9P.mjs.map +1 -0
  326. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +23 -39
  327. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -1
  328. package/.output/server/chunks/build/useTeamActions-C08sAVqY.mjs +71 -0
  329. package/.output/server/chunks/build/useTeamActions-C08sAVqY.mjs.map +1 -0
  330. package/.output/server/chunks/build/useTeamAddMemberDialog-fzTmflr8.mjs +78 -0
  331. package/.output/server/chunks/build/useTeamAddMemberDialog-fzTmflr8.mjs.map +1 -0
  332. package/.output/server/chunks/build/useTeamCreateDialog-De63ep-X.mjs +91 -0
  333. package/.output/server/chunks/build/useTeamCreateDialog-De63ep-X.mjs.map +1 -0
  334. package/.output/server/chunks/build/useTeamDeployDialog-CpAtG5Jy.mjs +76 -0
  335. package/.output/server/chunks/build/useTeamDeployDialog-CpAtG5Jy.mjs.map +1 -0
  336. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +31 -38
  337. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  338. package/.output/server/chunks/build/useTeamPluginDialog-C1OOe1sL.mjs +99 -0
  339. package/.output/server/chunks/build/useTeamPluginDialog-C1OOe1sL.mjs.map +1 -0
  340. package/.output/server/chunks/build/useTeamsCatalog-DA41SMDu.mjs +124 -0
  341. package/.output/server/chunks/build/useTeamsCatalog-DA41SMDu.mjs.map +1 -0
  342. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +21 -28
  343. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  344. package/.output/server/chunks/build/useTokenCreate-XHTQExra.mjs +106 -0
  345. package/.output/server/chunks/build/useTokenCreate-XHTQExra.mjs.map +1 -0
  346. package/.output/server/chunks/build/useTokenRename-Cf1B0cRy.mjs +81 -0
  347. package/.output/server/chunks/build/useTokenRename-Cf1B0cRy.mjs.map +1 -0
  348. package/.output/server/chunks/build/useTokenReveal-C8n1Vt9t.mjs +108 -0
  349. package/.output/server/chunks/build/useTokenReveal-C8n1Vt9t.mjs.map +1 -0
  350. package/.output/server/chunks/build/useTokensList-MMIq24E-.mjs +86 -0
  351. package/.output/server/chunks/build/useTokensList-MMIq24E-.mjs.map +1 -0
  352. package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs +16 -17
  353. package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs.map +1 -1
  354. package/.output/server/chunks/build/useWorkbenchAuth-Dyc_czui.mjs +131 -0
  355. package/.output/server/chunks/build/useWorkbenchAuth-Dyc_czui.mjs.map +1 -0
  356. package/.output/server/chunks/build/useWorkbenchWorkspaces-DT33HbBD.mjs +128 -0
  357. package/.output/server/chunks/build/useWorkbenchWorkspaces-DT33HbBD.mjs.map +1 -0
  358. package/.output/server/chunks/build/useWorkshopApi-BkEgGBIM.mjs +118 -0
  359. package/.output/server/chunks/build/useWorkshopApi-BkEgGBIM.mjs.map +1 -0
  360. package/.output/server/chunks/build/useWorkshopWs-BWrVj4jL.mjs +1577 -0
  361. package/.output/server/chunks/build/useWorkshopWs-BWrVj4jL.mjs.map +1 -0
  362. package/.output/server/chunks/build/{useWorkspaceAuth-Dlvj9csD.mjs → useWorkspaceAuth-TahC9EC7.mjs} +4 -16
  363. package/.output/server/chunks/build/useWorkspaceAuth-TahC9EC7.mjs.map +1 -0
  364. package/.output/server/chunks/build/useWorkspaceChannels-BVAHmhN3.mjs +94 -0
  365. package/.output/server/chunks/build/useWorkspaceChannels-BVAHmhN3.mjs.map +1 -0
  366. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +30 -33
  367. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  368. package/.output/server/chunks/build/useWorkspaceShell-rQHWNNWJ.mjs +150 -0
  369. package/.output/server/chunks/build/useWorkspaceShell-rQHWNNWJ.mjs.map +1 -0
  370. package/.output/server/chunks/build/users-pVCK50z-.mjs +566 -0
  371. package/.output/server/chunks/build/users-pVCK50z-.mjs.map +1 -0
  372. package/.output/server/chunks/build/workshop-DAgsBgG4.mjs +499 -0
  373. package/.output/server/chunks/build/workshop-DAgsBgG4.mjs.map +1 -0
  374. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +111 -121
  375. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs.map +1 -1
  376. package/.output/server/chunks/routes/renderer.mjs +1 -1
  377. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  378. package/.output/server/chunks/virtual/entry.mjs +9357 -10721
  379. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  380. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  381. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -1
  382. package/.output/server/package.json +1 -1
  383. package/README-zh.md +2 -2
  384. package/README.md +3 -3
  385. package/app/components/AwLogo.vue +75 -75
  386. package/app/components/aml/AmlDatasetFormModal.vue +279 -279
  387. package/app/components/aml/AmlDatasetTable.vue +319 -319
  388. package/app/components/aml/AmlExperimentsTable.vue +142 -142
  389. package/app/components/aml/AmlInfraBanner.vue +23 -23
  390. package/app/components/aml/AmlJobsTable.vue +248 -248
  391. package/app/components/aml/AmlOverviewBar.vue +62 -62
  392. package/app/components/aml/AmlPageHeader.vue +47 -47
  393. package/app/components/aml/AmlPredictConsole.vue +201 -201
  394. package/app/components/app-header/HitlBell.vue +423 -423
  395. package/app/components/daq/DaqAddNodeModal.vue +209 -209
  396. package/app/components/daq/DaqAlarmBar.vue +46 -46
  397. package/app/components/daq/DaqControlCard.vue +159 -159
  398. package/app/components/daq/DaqInfraBanner.vue +31 -31
  399. package/app/components/daq/DaqLineBanner.vue +47 -47
  400. package/app/components/daq/DaqNodePanel.vue +396 -396
  401. package/app/components/daq/DaqOptPanel.vue +197 -197
  402. package/app/components/daq/DaqTemplateModal.vue +246 -246
  403. package/app/components/dashboard/DashboardGaugeBand.vue +78 -78
  404. package/app/components/dashboard/DashboardHero.vue +209 -209
  405. package/app/components/dashboard/DashboardLineStatePanel.vue +78 -78
  406. package/app/components/dashboard/DashboardNodeStatePanel.vue +46 -46
  407. package/app/components/dashboard/DashboardPipelinePanel.vue +46 -46
  408. package/app/components/dashboard/DashboardTrendPanel.vue +83 -83
  409. package/app/components/dashboard/DashboardWritePanel.vue +52 -52
  410. package/app/components/dcw/DcwCreateLineModal.vue +105 -105
  411. package/app/components/dcw/DcwDeleteLineModal.vue +73 -73
  412. package/app/components/dcw/DcwDetailTemplateModal.vue +238 -238
  413. package/app/components/dcw/DcwLedgerCard.vue +160 -160
  414. package/app/components/dcw/DcwMesArtifacts.vue +140 -140
  415. package/app/components/dcw/DcwProductCreateModal.vue +113 -113
  416. package/app/components/dcw/DcwRecipeDispatchHistoryModal.vue +244 -244
  417. package/app/components/dcw/DcwRecipeEditModal.vue +399 -399
  418. package/app/components/dcw/DcwRecipeHistoryModal.vue +165 -165
  419. package/app/components/dcw/DcwRunDataModal.vue +191 -191
  420. package/app/components/dcw/DcwTemplateModal.vue +227 -227
  421. package/app/components/dcw/DcwWriteHistoryCard.vue +96 -96
  422. package/app/components/dcw/ExpConfirmCard.vue +103 -103
  423. package/app/components/dcw/RecipeDispatchApprovalCard.vue +330 -330
  424. package/app/components/logs/LogsPageHead.vue +71 -71
  425. package/app/components/monitor/MonitorAgentTable.vue +143 -143
  426. package/app/components/monitor/MonitorChannelTable.vue +80 -80
  427. package/app/components/monitor/MonitorLoginGate.vue +24 -24
  428. package/app/components/monitor/MonitorPageHead.vue +92 -92
  429. package/app/components/monitor/MonitorProcessTable.vue +159 -159
  430. package/app/components/ontology/OntologyGraph.vue +356 -356
  431. package/app/components/operations/OperationsFilterCard.vue +164 -164
  432. package/app/components/operations/OperationsPageHead.vue +47 -47
  433. package/app/components/tokens/TokenCreateModal.vue +42 -42
  434. package/app/components/tokens/TokenOnceModal.vue +164 -164
  435. package/app/components/tokens/TokenRenameModal.vue +40 -40
  436. package/app/components/tokens/TokensPageHead.vue +76 -76
  437. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  438. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  439. package/app/components/workshop/AgentLanesView.vue +278 -278
  440. package/app/components/workshop/ArtifactCard.vue +120 -120
  441. package/app/components/workshop/AssetLibrary.vue +452 -452
  442. package/app/components/workshop/ChatMemberPanel.vue +556 -556
  443. package/app/components/workshop/CommandPalette.vue +270 -270
  444. package/app/components/workshop/Composer.vue +540 -540
  445. package/app/components/workshop/DaqTemplateIcon.vue +33 -33
  446. package/app/components/workshop/DeviceTwinPanel.vue +167 -167
  447. package/app/components/workshop/FileSelectorModal.vue +188 -188
  448. package/app/components/workshop/InspectorPanel.vue +301 -301
  449. package/app/components/workshop/PluginSlot.vue +120 -120
  450. package/app/components/workshop/TranscriptTimeline.vue +223 -223
  451. package/app/components/workshop/agents/AgentTemplateEditModal.vue +139 -139
  452. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  453. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  454. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  455. package/app/components/workshop/blocks/ClusterMember.vue +95 -95
  456. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  457. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  458. package/app/components/workshop/blocks/ClusterStatus.vue +149 -149
  459. package/app/components/workshop/blocks/ClusterTool.vue +176 -176
  460. package/app/components/workshop/blocks/EventBlockAvatar.vue +114 -114
  461. package/app/components/workshop/blocks/EventBlockHead.vue +232 -232
  462. package/app/components/workshop/composer/ComposerToolbar.vue +278 -278
  463. package/app/components/workshop/composer/MentionMenu.vue +135 -135
  464. package/app/components/workshop/composer/ReplyChip.vue +65 -65
  465. package/app/components/workshop/composer/StatusChip.vue +171 -171
  466. package/app/components/workshop/console/Dock.vue +71 -71
  467. package/app/components/workshop/console/LeftPane.vue +84 -84
  468. package/app/components/workshop/device-twin/DeviceTwinCard.vue +265 -265
  469. package/app/components/workshop/device-twin/DeviceTwinDcwSection.vue +203 -203
  470. package/app/components/workshop/lanes/AddMemberModal.vue +270 -270
  471. package/app/components/workshop/lanes/EditMemberModal.vue +106 -106
  472. package/app/components/workshop/lanes/LanesToolbar.vue +97 -97
  473. package/app/components/workshop/session-list/ChannelSettingsModal.vue +3 -3
  474. package/app/components/workshop/session-list/MountChannelModal.vue +124 -124
  475. package/app/components/workshop/session-list/SaveTemplateModal.vue +93 -93
  476. package/app/components/workshop/task-board/Card.vue +172 -172
  477. package/app/components/workshop/task-board/Column.vue +151 -151
  478. package/app/components/workshop/task-board/List.vue +157 -157
  479. package/app/components/workshop/task-board/StatusMenu.vue +88 -88
  480. package/app/components/workshop/teams/TeamAddMemberModal.vue +53 -53
  481. package/app/components/workshop/teams/TeamCreateModal.vue +94 -94
  482. package/app/components/workshop/teams/TeamDeployModal.vue +40 -40
  483. package/app/components/workshop/teams/TeamPluginModal.vue +119 -119
  484. package/app/components/workshop/terminal/OmpTerminalPanel.vue +270 -270
  485. package/app/components/workshop/terminal/TerminalHitlCard.vue +170 -170
  486. package/app/components/workshop/town/TownScene.ts +466 -466
  487. package/app/components/workshop/town/TownView.vue +561 -561
  488. package/app/components/workshop/town/components/AutoModeConfirmModal.vue +94 -94
  489. package/app/components/workshop/town/components/TownAgentBindings.vue +405 -405
  490. package/app/components/workshop/town/components/TownAgentInspector.vue +554 -554
  491. package/app/components/workshop/town/components/TownAlarmList.vue +147 -147
  492. package/app/components/workshop/town/components/TownBoundaryPanel.vue +350 -350
  493. package/app/components/workshop/town/components/TownCalloutLayer.vue +147 -147
  494. package/app/components/workshop/town/components/TownChannelDock.vue +116 -116
  495. package/app/components/workshop/town/components/TownControlDock.vue +405 -405
  496. package/app/components/workshop/town/components/TownDaqNodeInspector.vue +345 -345
  497. package/app/components/workshop/town/components/TownDaqTree.vue +366 -366
  498. package/app/components/workshop/town/components/TownDcwBindSection.vue +473 -473
  499. package/app/components/workshop/town/components/TownDcwNodeInspector.vue +185 -185
  500. package/app/components/workshop/town/components/TownDcwTree.vue +280 -280
  501. package/app/components/workshop/town/components/TownDeviceBindings.vue +394 -394
  502. package/app/components/workshop/town/components/TownDeviceTransform.vue +248 -248
  503. package/app/components/workshop/town/components/TownEventList.vue +120 -120
  504. package/app/components/workshop/town/components/TownHealthBody.vue +100 -100
  505. package/app/components/workshop/town/components/TownKpiStrip.vue +207 -207
  506. package/app/components/workshop/town/components/TownLeftRail.vue +308 -308
  507. package/app/components/workshop/town/components/TownLoadingMask.vue +61 -61
  508. package/app/components/workshop/town/components/TownNavMap.vue +154 -154
  509. package/app/components/workshop/town/components/TownRightRail.vue +543 -543
  510. package/app/components/workshop/town/components/TownStage.vue +281 -281
  511. package/app/components/workshop/town/components/TownStageTop.vue +238 -238
  512. package/app/components/workshop/town/components/TownStatusBar.vue +108 -108
  513. package/app/components/workshop/town/components/TownTopNav.vue +367 -367
  514. package/app/components/workshop/town/components/TownTrendDock.vue +178 -178
  515. package/app/components/workshop/town/scene/town-scene-agents.ts +254 -254
  516. package/app/components/workshop/town/scene/town-scene-behavior.ts +194 -194
  517. package/app/components/workshop/town/scene/town-scene-bubbles.ts +96 -96
  518. package/app/components/workshop/town/scene/town-scene-core.ts +158 -158
  519. package/app/components/workshop/town/scene/town-scene-models.ts +109 -109
  520. package/app/components/workshop/town/scene/town-scene-visuals.ts +279 -279
  521. package/app/components/workshop/town/scene/town-scene3d-agents.ts +308 -308
  522. package/app/components/workshop/town/scene/town-scene3d-blocks.ts +297 -297
  523. package/app/components/workshop/town/scene/town-scene3d-bubbles.ts +281 -281
  524. package/app/components/workshop/town/scene/town-scene3d-camera.ts +282 -282
  525. package/app/components/workshop/town/scene/town-scene3d-devices.ts +433 -433
  526. package/app/components/workshop/town/scene/town-scene3d-editing.ts +490 -490
  527. package/app/components/workshop/town/scene/town-scene3d-events.ts +173 -173
  528. package/app/components/workshop/town/scene/town-scene3d-factory.ts +412 -412
  529. package/app/components/workshop/town/scene/town-scene3d-hud.ts +110 -110
  530. package/app/components/workshop/town/scene/town-scene3d-lifecycle.ts +144 -144
  531. package/app/components/workshop/town/scene/town-scene3d-links.ts +141 -141
  532. package/app/components/workshop/town/scene/town-scene3d-loop.ts +286 -286
  533. package/app/components/workshop/town/scene/town-scene3d-models.ts +154 -154
  534. package/app/components/workshop/town/scene/town-scene3d-nodes.ts +562 -562
  535. package/app/components/workshop/town/scene/town-scene3d-ranges.ts +273 -273
  536. package/app/components/workshop/town/scene/town-scene3d-renderer.ts +320 -320
  537. package/app/components/workshop/town/scene/town-scene3d-selection.ts +257 -257
  538. package/app/components/workshop/town/scene/town-scene3d-types.ts +264 -264
  539. package/app/components/workshop/transcript/TranscriptBlockList.vue +68 -68
  540. package/app/components/workshop/transcript/TranscriptEarlierPager.vue +81 -81
  541. package/app/components/workshop/transcript/TranscriptFilterBar.vue +126 -126
  542. package/app/components/workshop/workbench/CreateWorkspaceModal.vue +36 -36
  543. package/app/components/workshop/workbench/WorkspaceEmpty.vue +56 -56
  544. package/app/composables/useResponsive.ts +88 -88
  545. package/app/composables/workshop/device-twin-types.ts +29 -29
  546. package/app/composables/workshop/event-blocks/attention.ts +58 -58
  547. package/app/composables/workshop/event-blocks/classify.ts +44 -44
  548. package/app/composables/workshop/event-blocks/clusterer.ts +231 -231
  549. package/app/composables/workshop/event-blocks/fold-stream.ts +45 -45
  550. package/app/composables/workshop/event-blocks/markdown.ts +81 -81
  551. package/app/composables/workshop/event-blocks/mentions.ts +49 -49
  552. package/app/composables/workshop/event-blocks/text-utils.ts +100 -100
  553. package/app/composables/workshop/event-blocks/types.ts +40 -40
  554. package/app/composables/workshop/town/town-relay-props.ts +231 -231
  555. package/app/composables/workshop/town/town-view-types.ts +145 -145
  556. package/app/composables/workshop/town/useTownAgentBindings.ts +182 -182
  557. package/app/composables/workshop/town/useTownAgentChat.ts +203 -203
  558. package/app/composables/workshop/town/useTownAlarms.ts +36 -36
  559. package/app/composables/workshop/town/useTownCallouts.ts +174 -174
  560. package/app/composables/workshop/town/useTownChannels.ts +220 -220
  561. package/app/composables/workshop/town/useTownHealth.ts +66 -66
  562. package/app/composables/workshop/town/useTownHudTickers.ts +77 -77
  563. package/app/composables/workshop/town/useTownLayout.ts +277 -277
  564. package/app/composables/workshop/town/useTownNavMap.ts +301 -301
  565. package/app/composables/workshop/town/useTownNodeBindings.ts +345 -345
  566. package/app/composables/workshop/town/useTownPanelDrag.ts +91 -91
  567. package/app/composables/workshop/town/useTownRailData.ts +421 -421
  568. package/app/composables/workshop/town/useTownSceneControl.ts +92 -92
  569. package/app/composables/workshop/town/useTownSceneInput.ts +275 -275
  570. package/app/composables/workshop/town/useTownSceneRuntime.ts +390 -390
  571. package/app/composables/workshop/town/useTownSheets.ts +41 -41
  572. package/app/composables/workshop/town/useTownTrends.ts +93 -93
  573. package/app/composables/workshop/useChannelList.ts +88 -88
  574. package/app/composables/workshop/useChannelTerminals.ts +65 -65
  575. package/app/composables/workshop/useComposerMentions.ts +130 -130
  576. package/app/composables/workshop/useDcwStream.ts +374 -374
  577. package/app/composables/workshop/useDeviceTwinDcwWrite.ts +77 -77
  578. package/app/composables/workshop/useDeviceTwinPanel.ts +56 -56
  579. package/app/composables/workshop/useEscClose.ts +44 -44
  580. package/app/composables/workshop/useEventBlockView.ts +159 -159
  581. package/app/composables/workshop/useEventBlocks.ts +33 -33
  582. package/app/composables/workshop/useHitlAnswer.ts +184 -184
  583. package/app/composables/workshop/useLaneWidths.ts +27 -27
  584. package/app/composables/workshop/useOmpTerminalSession.ts +424 -424
  585. package/app/composables/workshop/usePluginAdmin.ts +152 -152
  586. package/app/composables/workshop/usePluginPanels.ts +72 -72
  587. package/app/composables/workshop/useRuntimeConfigDraft.ts +118 -118
  588. package/app/composables/workshop/useSettingsGroups.ts +243 -243
  589. package/app/composables/workshop/useTaskBoardColumns.ts +47 -47
  590. package/app/composables/workshop/useTerminalRenderer.ts +308 -308
  591. package/app/composables/workshop/useTranscriptEnterStage.ts +48 -48
  592. package/app/composables/workshop/useTranscriptHistory.ts +52 -52
  593. package/app/composables/workshop/useTranscriptScroll.ts +113 -113
  594. package/app/composables/workshop/useVisibleInterval.ts +42 -42
  595. package/app/composables/workshop/useWorkshopWs.ts +265 -265
  596. package/app/config/index.ts +1 -1
  597. package/app/middleware/locale-cookie.global.ts +22 -22
  598. package/app/pages/aml/api.ts +6 -6
  599. package/app/pages/aml/composables/useAmlDatasets.ts +38 -38
  600. package/app/pages/aml/composables/useAmlEntities.ts +57 -57
  601. package/app/pages/aml/composables/useAmlEnv.ts +191 -191
  602. package/app/pages/aml/composables/useAmlExperiments.ts +45 -45
  603. package/app/pages/aml/composables/useAmlFormat.ts +44 -44
  604. package/app/pages/aml/composables/useAmlJobs.ts +131 -131
  605. package/app/pages/aml/composables/useAmlModels.ts +56 -56
  606. package/app/pages/aml/composables/useAmlNotes.ts +47 -47
  607. package/app/pages/aml/composables/useAmlPredict.ts +93 -93
  608. package/app/pages/aml/constants.ts +63 -63
  609. package/app/pages/aml/index.vue +236 -236
  610. package/app/pages/composables/useDashboardCharts.ts +192 -192
  611. package/app/pages/composables/useDashboardData.ts +144 -144
  612. package/app/pages/daq/composables/useDaqAddNode.ts +126 -126
  613. package/app/pages/daq/composables/useDaqDetailBinding.ts +29 -29
  614. package/app/pages/daq/composables/useDaqDetailFrames.ts +42 -42
  615. package/app/pages/daq/composables/useDaqDetailNode.ts +53 -53
  616. package/app/pages/daq/composables/useDaqDetailParams.ts +138 -138
  617. package/app/pages/daq/composables/useDaqFilters.ts +187 -187
  618. package/app/pages/daq/composables/useDaqNodeWindow.ts +86 -86
  619. package/app/pages/daq/composables/useDaqOptimizations.ts +99 -99
  620. package/app/pages/daq/composables/useDaqTemplates.ts +152 -152
  621. package/app/pages/daq/index.vue +260 -260
  622. package/app/pages/dcw/composables/useDcwCards.ts +27 -27
  623. package/app/pages/dcw/composables/useDcwDetailScope.ts +145 -145
  624. package/app/pages/dcw/composables/useDcwDetailTemplates.ts +94 -94
  625. package/app/pages/dcw/composables/useDcwFilter.ts +29 -29
  626. package/app/pages/dcw/composables/useDcwLedger.ts +34 -34
  627. package/app/pages/dcw/composables/useDcwLineMutations.ts +115 -115
  628. package/app/pages/dcw/composables/useDcwLineRun.ts +60 -60
  629. package/app/pages/dcw/composables/useDcwProducts.ts +54 -54
  630. package/app/pages/dcw/composables/useDcwQuery.ts +68 -68
  631. package/app/pages/dcw/composables/useDcwQuickActions.ts +47 -47
  632. package/app/pages/dcw/composables/useDcwRecipes.ts +256 -256
  633. package/app/pages/dcw/composables/useDcwTemplates.ts +50 -50
  634. package/app/pages/dcw/index.vue +195 -195
  635. package/app/pages/dcw/types.ts +9 -9
  636. package/app/pages/index.vue +126 -126
  637. package/app/pages/logs/composables/useLogsFormat.ts +43 -43
  638. package/app/pages/logs/composables/useLogsScope.ts +39 -39
  639. package/app/pages/monitor/types.ts +61 -61
  640. package/app/pages/operations.vue +61 -61
  641. package/app/pages/permissions/index.vue +369 -369
  642. package/app/pages/tokens/composables/useTokenClipboard.ts +33 -33
  643. package/app/pages/tokens/composables/useTokenCreate.ts +93 -93
  644. package/app/pages/tokens/composables/useTokenRename.ts +54 -54
  645. package/app/pages/tokens/composables/useTokenReveal.ts +84 -84
  646. package/app/pages/tokens/composables/useTokensList.ts +60 -60
  647. package/app/pages/tokens.vue +111 -111
  648. package/app/pages/tools/index.vue +98 -98
  649. package/app/pages/workshop/agents.vue +130 -130
  650. package/app/pages/workshop/composables/useAgentHarnessOptions.ts +59 -59
  651. package/app/pages/workshop/composables/useAgentTemplateActions.ts +42 -42
  652. package/app/pages/workshop/composables/useAgentTemplateDialogState.ts +24 -24
  653. package/app/pages/workshop/composables/useAgentTemplateForm.ts +88 -88
  654. package/app/pages/workshop/composables/useAgentTemplatesCatalog.ts +92 -92
  655. package/app/pages/workshop/composables/useTeamActions.ts +44 -44
  656. package/app/pages/workshop/composables/useTeamAddMemberDialog.ts +49 -49
  657. package/app/pages/workshop/composables/useTeamCreateDialog.ts +67 -67
  658. package/app/pages/workshop/composables/useTeamDeployDialog.ts +49 -49
  659. package/app/pages/workshop/composables/useTeamDialogState.ts +46 -46
  660. package/app/pages/workshop/composables/useTeamPluginDialog.ts +72 -72
  661. package/app/pages/workshop/composables/useTeamsCatalog.ts +100 -100
  662. package/app/pages/workshop/composables/useWorkbenchWorkspaces.ts +123 -123
  663. package/app/pages/workshop/composables/useWorkspaceAuth.ts +31 -31
  664. package/app/pages/workshop/composables/useWorkspaceChannels.ts +62 -62
  665. package/app/pages/workshop/composables/useWorkspaceShell.ts +136 -136
  666. package/app/pages/workshop/schedules.vue +553 -553
  667. package/app/pages/workshop/w/[wsId].vue +221 -221
  668. package/app/plugins/aw-plugins.client.ts +213 -213
  669. package/app/plugins/esc-close.client.ts +31 -31
  670. package/app/stores/workshop/hitl.ts +183 -183
  671. package/app/stores/workshop/narrow-fetch.ts +23 -23
  672. package/app/utils/api-error.ts +75 -75
  673. package/app/utils/builtin-catalog.ts +104 -104
  674. package/app/utils/chart-trend.ts +97 -97
  675. package/app/utils/dcw-driver-badge.ts +16 -16
  676. package/app/utils/dcw-recipe-form.ts +26 -26
  677. package/cli/commands/tui.mjs +28 -28
  678. package/cli/commands/update.mjs +124 -124
  679. package/cli/core/child-lifecycle.mjs +136 -136
  680. package/cli/core/meta.mjs +38 -38
  681. package/cli/core/post-build.mjs +96 -96
  682. package/config.yml +1 -1
  683. package/docs/cli.en.md +2 -2
  684. package/docs/cli.md +2 -2
  685. package/docs/mcp.en.md +27 -27
  686. package/docs/multi-harness-architecture.md +248 -248
  687. package/docs/plugins.en.md +1 -1
  688. package/docs/plugins.md +1 -1
  689. package/docs/sdk.en.md +1 -1
  690. package/docs/sdk.md +1 -1
  691. package/docs/tui.md +43 -43
  692. package/i18n/dicts/_en.json +1551 -1551
  693. package/i18n/dicts/_en2.json +300 -300
  694. package/i18n/dicts/_en4.json +114 -114
  695. package/i18n/dicts/agentLanesView.json +61 -61
  696. package/i18n/dicts/appHeader.json +17 -17
  697. package/i18n/dicts/channelSessionList.json +51 -51
  698. package/i18n/dicts/chat.json +79 -79
  699. package/i18n/dicts/clusterTool.json +4 -4
  700. package/i18n/dicts/composer.json +38 -38
  701. package/i18n/dicts/ctpl.json +37 -37
  702. package/i18n/dicts/dcwDetail.json +219 -219
  703. package/i18n/dicts/lineOps.json +14 -14
  704. package/i18n/dicts/multiChannelView.json +13 -13
  705. package/i18n/dicts/notifications.json +13 -13
  706. package/i18n/dicts/taskInspectorDrawer.json +25 -25
  707. package/i18n/dicts/teamPlugins.json +10 -10
  708. package/i18n/dicts/townView.json +209 -209
  709. package/mcp/discovery.mjs +227 -227
  710. package/package.json +1 -1
  711. package/public/favicon.svg +14 -14
  712. package/public/robots.txt +3 -3
  713. package/scripts/_audit/audit-harness-adapters.md +664 -664
  714. package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -293
  715. package/scripts/_audit/bump-version.mjs +51 -51
  716. package/scripts/_audit/detached-instance.mjs +112 -112
  717. package/scripts/_audit/detached-start.mjs +103 -103
  718. package/scripts/_audit/eda-ui-fix-acceptance.mjs +212 -212
  719. package/scripts/_audit/guard-upstream-liveness.mjs +104 -104
  720. package/scripts/_audit/http-api-authz-audit.md +657 -657
  721. package/scripts/_audit/kb-team-mock-e2e.mjs +146 -146
  722. package/scripts/_audit/kb-team-omp-e2e.mjs +229 -229
  723. package/scripts/_audit/run.mjs +21 -21
  724. package/scripts/_audit/runtime-audit.md +716 -716
  725. package/scripts/_audit/skills-guided-e2e.mjs +316 -316
  726. package/scripts/_audit/stability-soak.mjs +252 -252
  727. package/scripts/_audit/stubs/nuxt-imports.mjs +67 -67
  728. package/scripts/_audit/ts-register-hook.mjs +12 -12
  729. package/scripts/_audit/ts-resolve-hook.mjs +96 -96
  730. package/scripts/_aw-packaged-start.cjs +22 -22
  731. package/scripts/_aw0746-stage12.mjs +94 -94
  732. package/scripts/_aw0746-stage34.mjs +136 -136
  733. package/scripts/_aw0746-stage6b-train-sweep.mjs +145 -145
  734. package/scripts/_aw0746-stage6c-jobsmoke.mjs +69 -69
  735. package/scripts/_dbg-configroot-audit.mjs +86 -86
  736. package/scripts/_dbg-daq-intervals-func.mjs +115 -115
  737. package/scripts/_dbg-perms-e2e.mjs +142 -142
  738. package/scripts/_dbg-protocol-matrix.mjs +462 -462
  739. package/scripts/_dbg-render-regression.mjs +193 -193
  740. package/scripts/_dbg-schedule-e2e.mjs +262 -262
  741. package/scripts/_e2e-ui-functional.mjs +371 -371
  742. package/scripts/_i18n-en-cjk-scan.mjs +28 -28
  743. package/scripts/_i18n-en-verify.mjs +107 -107
  744. package/scripts/_i18n-extra-checks.mjs +53 -53
  745. package/scripts/_i18n-scan-hardcoded.mjs +180 -180
  746. package/scripts/_lib-aml-python-run.mjs +17 -17
  747. package/scripts/_lint-reflow.mjs +105 -105
  748. package/scripts/_loop-biax-campaign.mjs +130 -130
  749. package/scripts/_plc-sim-detached.cjs +22 -22
  750. package/scripts/_probe-daq-omp-task.mjs +100 -100
  751. package/scripts/_probe-daq-scope-default.mjs +123 -123
  752. package/scripts/_probe-model-channel-link.cjs +25 -25
  753. package/scripts/_probe-recipe-switch.mjs +92 -92
  754. package/scripts/_provision-injection-line.mjs +39 -39
  755. package/scripts/_run-matrix.ps1 +53 -53
  756. package/scripts/_sweep-button-contrast.mjs +87 -87
  757. package/scripts/acceptance-aml-hybrid-e2e.ts +396 -396
  758. package/scripts/acceptance-aml-hybrid-live.mjs +93 -93
  759. package/scripts/acceptance-aml-model-identity.ts +137 -137
  760. package/scripts/agent-daq-isolation-e2e.mjs +91 -91
  761. package/scripts/api-contract-smoke.mjs +126 -126
  762. package/scripts/ask-hitl-e2e.mjs +96 -96
  763. package/scripts/aw-expose.mjs +159 -159
  764. package/scripts/channel-interaction-smoke.mjs +80 -80
  765. package/scripts/data-studio-ui-e2e.mjs +163 -163
  766. package/scripts/demo-group-chat-all-real.ts +279 -279
  767. package/scripts/demo-group-chat-omp-cases.ts +210 -210
  768. package/scripts/demo-group-chat-omp.ts +184 -184
  769. package/scripts/demo-group-chat-order.ts +197 -197
  770. package/scripts/dev-modbus-simulator.mjs +55 -55
  771. package/scripts/docs-shots.mjs +36 -36
  772. package/scripts/e2e-agentteam-chat.mjs +473 -473
  773. package/scripts/e2e-agentteam-real-triage.mjs +421 -421
  774. package/scripts/e2e-aml-decoupled.mjs +162 -162
  775. package/scripts/e2e-aw-tui-global.mjs +277 -277
  776. package/scripts/e2e-closedloop/cleanup.mjs +27 -27
  777. package/scripts/e2e-closedloop/lib.mjs +109 -109
  778. package/scripts/e2e-closedloop/main.mjs +59 -59
  779. package/scripts/e2e-closedloop/scenarios-accounts.mjs +210 -210
  780. package/scripts/e2e-closedloop/scenarios-authz.mjs +196 -196
  781. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +222 -222
  782. package/scripts/e2e-closedloop/scenarios-plugins.mjs +169 -169
  783. package/scripts/e2e-closedloop/state.mjs +10 -10
  784. package/scripts/e2e-config-groups.mjs +238 -238
  785. package/scripts/e2e-crash-cycle.mjs +108 -108
  786. package/scripts/e2e-full-closedloop.mjs +16 -16
  787. package/scripts/e2e-hil-multi-user.mjs +307 -307
  788. package/scripts/e2e-hil-restart.mjs +339 -339
  789. package/scripts/e2e-injection-recipe-closedloop.mjs +203 -203
  790. package/scripts/e2e-line-governance.mjs +352 -352
  791. package/scripts/e2e-ontology.mjs +393 -393
  792. package/scripts/e2e-plc-plugin-closedloop.mjs +549 -549
  793. package/scripts/e2e-timezone-settings.mjs +57 -57
  794. package/scripts/full-stack-shots.mjs +145 -145
  795. package/scripts/full-tool-injection-harness-e2e.mjs +214 -214
  796. package/scripts/hitl-reject-e2e.mjs +131 -131
  797. package/scripts/line-log-smoke.mjs +260 -260
  798. package/scripts/live-aml-mockomp.mjs +304 -304
  799. package/scripts/live-aml-optloop-resume.mjs +322 -322
  800. package/scripts/live-aml-optloop.mjs +588 -588
  801. package/scripts/live-aml-stage9.mjs +169 -169
  802. package/scripts/live-aml-two-goals.mjs +315 -315
  803. package/scripts/live-optloop-two-modes.mjs +857 -857
  804. package/scripts/mes-agent-integration-e2e.mjs +361 -361
  805. package/scripts/ops-plugins-e2e.mjs +85 -85
  806. package/scripts/proof-omp-real.ts +189 -189
  807. package/scripts/scenario-suite-setup.mjs +337 -337
  808. package/scripts/scenario-suite-stability.mjs +144 -144
  809. package/scripts/smoke-optimization-verify.ts +72 -72
  810. package/scripts/team-coordination-e2e.mjs +96 -96
  811. package/scripts/test-agentteam-task-chat-flow.ts +420 -420
  812. package/scripts/test-agentteam-workflow.ts +472 -472
  813. package/scripts/test-aw-skills.mjs +102 -102
  814. package/scripts/test-cli-exit.mjs +343 -343
  815. package/scripts/test-daq-frame-race.mjs +358 -358
  816. package/scripts/test-data-root.mjs +208 -208
  817. package/scripts/test-events-index.mjs +176 -176
  818. package/scripts/test-group-chat-hardening.ts +265 -265
  819. package/scripts/test-group-chat-unit/lib.ts +186 -186
  820. package/scripts/test-group-chat-unit/main.ts +45 -45
  821. package/scripts/test-group-chat-unit/section-a-migration.ts +75 -75
  822. package/scripts/test-group-chat-unit/section-b-permission-matrix.ts +88 -88
  823. package/scripts/test-group-chat-unit/section-c-member-lifecycle.ts +64 -64
  824. package/scripts/test-group-chat-unit/section-d-mention-resolution.ts +36 -36
  825. package/scripts/test-group-chat-unit/section-e-chat-facts.ts +97 -97
  826. package/scripts/test-group-chat-unit/section-f-user-notifications.ts +52 -52
  827. package/scripts/test-group-chat-unit/section-g-member-projection.ts +44 -44
  828. package/scripts/test-group-chat-unit/section-h-outbox-consistency.ts +30 -30
  829. package/scripts/test-group-chat-unit/section-i-read-idempotency.ts +24 -24
  830. package/scripts/test-group-chat-unit/section-j-permission-scope.ts +150 -150
  831. package/scripts/test-group-chat-unit.ts +35 -35
  832. package/scripts/test-hitl-decision.ts +526 -526
  833. package/scripts/test-hitl-legacy-channel-auth.ts +143 -143
  834. package/scripts/test-hitl-registry.ts +112 -112
  835. package/scripts/test-log-flooding.mjs +160 -160
  836. package/scripts/test-lru.mjs +101 -101
  837. package/scripts/test-memory-month-query.mjs +70 -70
  838. package/scripts/test-plugin-hardening.mjs +90 -90
  839. package/scripts/test-plugin-lifecycle.mjs +173 -173
  840. package/scripts/test-rollback-index.mjs +137 -137
  841. package/scripts/test-schedule-runtime.ts +309 -309
  842. package/scripts/test-scheduler-loop/scenarios-supervise.ts +25 -25
  843. package/scripts/test-sdk-surface.mjs +158 -158
  844. package/scripts/test-serial-bridge.mjs +418 -418
  845. package/scripts/test-tui-commands.mjs +148 -148
  846. package/scripts/test-tui-reducers.mjs +72 -72
  847. package/scripts/three-system-e2e/lib.mjs +79 -79
  848. package/scripts/three-system-e2e/main.mjs +40 -40
  849. package/scripts/three-system-e2e/phases/phase-0-user-token.mjs +42 -42
  850. package/scripts/three-system-e2e/phases/phase-0a2-line-autoselect.mjs +35 -35
  851. package/scripts/three-system-e2e/phases/phase-0b-fixture-grants.mjs +39 -39
  852. package/scripts/three-system-e2e/phases/phase-0c-plugin-outbound-auth.mjs +95 -95
  853. package/scripts/three-system-e2e/phases/stage-1-health.mjs +47 -47
  854. package/scripts/three-system-e2e/phases/stage-2-5-team-plugins.mjs +84 -84
  855. package/scripts/three-system-e2e/phases/stage-2-teams-tools-hitl.mjs +184 -184
  856. package/scripts/three-system-e2e/phases/stage-3-diag.mjs +73 -73
  857. package/scripts/three-system-e2e/phases/stage-4-plugin-toggle.mjs +53 -53
  858. package/scripts/three-system-e2e/state.mjs +87 -87
  859. package/scripts/three-system-e2e.mjs +40 -40
  860. package/scripts/tool-face-batch-identity-e2e.mjs +222 -222
  861. package/scripts/tsconfig.json +14 -14
  862. package/scripts/tui-smoke.mjs +100 -100
  863. package/scripts/typecheck.mjs +75 -75
  864. package/scripts/ui/admin-shots.mjs +46 -46
  865. package/scripts/ui/bump-microfont.mjs +39 -39
  866. package/scripts/ui/linkcheck2.mjs +37 -37
  867. package/scripts/ui/live-render-check.mjs +72 -72
  868. package/scripts/ui/md-lint.mjs +80 -80
  869. package/scripts/ui/perf-audit.mjs +132 -132
  870. package/scripts/ui/readme-assets.mjs +30 -30
  871. package/scripts/ui/readme-shots.mjs +42 -42
  872. package/scripts/ui/record-demo.mjs +557 -557
  873. package/scripts/ui/record.mjs +225 -225
  874. package/scripts/ui/seed-admin.mjs +68 -68
  875. package/scripts/ui/seed-demo.mjs +83 -83
  876. package/scripts/ui/seed-industrial-demo.mjs +171 -171
  877. package/scripts/ui/shot-hero.mjs +25 -25
  878. package/scripts/ui/shots.mjs +75 -75
  879. package/scripts/ui/sim-ui-shot.mjs +16 -16
  880. package/scripts/ui/smoke-refactor.mjs +258 -258
  881. package/scripts/ui/verify-nav.mjs +51 -51
  882. package/scripts/ui/verify-responsive.mjs +285 -285
  883. package/sdk/client.d.mts +110 -110
  884. package/sdk/examples/line-sentinel/index.mjs +105 -105
  885. package/sdk/examples/ops-notifier/index.mjs +34 -34
  886. package/sdk/examples/sample-insight/index.mjs +39 -39
  887. package/server/api/plugins/client/[name].get.ts +18 -18
  888. package/server/api/plugins/i18n.get.ts +12 -12
  889. package/server/api/plugins/manifest.get.ts +10 -10
  890. package/server/api/system/backup/list.get.ts +32 -32
  891. package/server/api/system/backup/run.post.ts +21 -21
  892. package/server/api/system/config-groups/[id].delete.ts +21 -21
  893. package/server/api/system/config-groups/[id].patch.ts +26 -26
  894. package/server/api/system/config-groups/index.get.ts +21 -21
  895. package/server/api/system/config-groups/index.post.ts +33 -33
  896. package/server/api/system/timezone.get.ts +20 -20
  897. package/server/api/users/tokens/[id]/token.get.ts +11 -11
  898. package/server/api/workshop/[...path].ts +13 -13
  899. package/server/api/workshop/agent-tools/approvals/index.get.ts +43 -43
  900. package/server/api/workshop/agent-tools/bindings/[id].delete.ts +26 -26
  901. package/server/api/workshop/agent-tools/bindings/grant.post.ts +45 -45
  902. package/server/api/workshop/agent-tools/bindings/index.get.ts +41 -41
  903. package/server/api/workshop/agent-tools/bindings/revoke.post.ts +42 -42
  904. package/server/api/workshop/aml/datasets/[id]/preview.get.ts +68 -68
  905. package/server/api/workshop/aml/datasets/[id].delete.ts +39 -39
  906. package/server/api/workshop/aml/datasets/[id].get.ts +53 -53
  907. package/server/api/workshop/aml/datasets/[id].patch.ts +30 -30
  908. package/server/api/workshop/aml/datasets/index.get.ts +20 -20
  909. package/server/api/workshop/aml/datasets/index.post.ts +27 -27
  910. package/server/api/workshop/aml/entities/index.get.ts +13 -13
  911. package/server/api/workshop/aml/entities/prune.post.ts +28 -28
  912. package/server/api/workshop/aml/env/index.get.ts +13 -13
  913. package/server/api/workshop/aml/env/recheck.post.ts +14 -14
  914. package/server/api/workshop/aml/env/uv.post.ts +21 -21
  915. package/server/api/workshop/aml/env/venv.post.ts +24 -24
  916. package/server/api/workshop/aml/experiments/index.get.ts +35 -35
  917. package/server/api/workshop/aml/index.get.ts +37 -37
  918. package/server/api/workshop/aml/jobs/[id]/cancel.post.ts +21 -21
  919. package/server/api/workshop/aml/jobs/[id]/logs.get.ts +23 -23
  920. package/server/api/workshop/aml/jobs/[id]/retry.post.ts +20 -20
  921. package/server/api/workshop/aml/jobs/[id].delete.ts +44 -44
  922. package/server/api/workshop/aml/jobs/[id].get.ts +23 -23
  923. package/server/api/workshop/aml/jobs/index.get.ts +26 -26
  924. package/server/api/workshop/aml/models/[id]/predict.post.ts +24 -24
  925. package/server/api/workshop/aml/models/[id]/promote.post.ts +30 -30
  926. package/server/api/workshop/aml/models/index.get.ts +48 -48
  927. package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -18
  928. package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -18
  929. package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -30
  930. package/server/api/workshop/aml/training-plans/index.get.ts +9 -9
  931. package/server/api/workshop/aml/training-plans/index.post.ts +43 -43
  932. package/server/api/workshop/approvals/[id]/decide.post.ts +30 -30
  933. package/server/api/workshop/approvals/index.get.ts +22 -22
  934. package/server/api/workshop/audit.get.ts +43 -43
  935. package/server/api/workshop/channels/[id]/chat/messages/[messageId]/read.post.ts +22 -22
  936. package/server/api/workshop/channels/[id]/chat/messages/index.get.ts +29 -29
  937. package/server/api/workshop/channels/[id]/chat/messages/index.post.ts +51 -51
  938. package/server/api/workshop/channels/[id]/chat/permissions.get.ts +35 -35
  939. package/server/api/workshop/channels/[id]/index.patch.ts +64 -64
  940. package/server/api/workshop/channels/[id]/members/[userId]/approve.post.ts +20 -20
  941. package/server/api/workshop/channels/[id]/members/[userId].delete.ts +21 -21
  942. package/server/api/workshop/channels/[id]/members/index.get.ts +23 -23
  943. package/server/api/workshop/channels/[id]/members/leave.post.ts +20 -20
  944. package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -45
  945. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +72 -72
  946. package/server/api/workshop/daq/[id]/test.post.ts +1 -1
  947. package/server/api/workshop/daq/alarms.get.ts +16 -16
  948. package/server/api/workshop/dcw/[id]/write.post.ts +4 -4
  949. package/server/api/workshop/dcw/[id].delete.ts +41 -41
  950. package/server/api/workshop/dcw/[id].patch.ts +40 -40
  951. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -24
  952. package/server/api/workshop/dcw/params/[id]/read.post.ts +17 -17
  953. package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -21
  954. package/server/api/workshop/dcw/params/[id].delete.ts +19 -19
  955. package/server/api/workshop/dcw/params/[id].patch.ts +23 -23
  956. package/server/api/workshop/dcw/params/index.get.ts +27 -27
  957. package/server/api/workshop/dcw/params/index.post.ts +25 -25
  958. package/server/api/workshop/dcw/products/[id].delete.ts +16 -16
  959. package/server/api/workshop/dcw/products/[id].patch.ts +17 -17
  960. package/server/api/workshop/dcw/recipes/[id]/index.patch.ts +22 -22
  961. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +14 -14
  962. package/server/api/workshop/dcw/recipes/[id].delete.ts +25 -25
  963. package/server/api/workshop/dcw/recipes/index.get.ts +12 -12
  964. package/server/api/workshop/dcw/runs/[id]/close.post.ts +15 -15
  965. package/server/api/workshop/dcw/templates/[key].delete.ts +14 -14
  966. package/server/api/workshop/dcw/templates/[key].patch.ts +16 -16
  967. package/server/api/workshop/dcw/templates/index.post.ts +15 -15
  968. package/server/api/workshop/dcw/test-driver.post.ts +16 -16
  969. package/server/api/workshop/device-twins/[id].delete.ts +25 -25
  970. package/server/api/workshop/eda/runs/[id]/labels.patch.ts +25 -25
  971. package/server/api/workshop/exp/confirmations/[id]/decide.post.ts +41 -41
  972. package/server/api/workshop/exp/confirmations/index.get.ts +25 -25
  973. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -16
  974. package/server/api/workshop/hitl/respond.post.ts +94 -94
  975. package/server/api/workshop/notifications/index.get.ts +60 -60
  976. package/server/api/workshop/notifications/read.post.ts +31 -31
  977. package/server/api/workshop/ontology/drafts/[draftId]/subgraph.ts +24 -24
  978. package/server/api/workshop/plugins/[name]/disable.post.ts +21 -21
  979. package/server/api/workshop/plugins/[name]/enable.post.ts +21 -21
  980. package/server/api/workshop/plugins/[name]/index.get.ts +14 -14
  981. package/server/api/workshop/schedules/[id]/run.post.ts +15 -15
  982. package/server/api/workshop/schedules/[id]/runs.get.ts +15 -15
  983. package/server/api/workshop/schedules/[id].delete.ts +14 -14
  984. package/server/api/workshop/schedules/[id].get.ts +13 -13
  985. package/server/api/workshop/schedules/[id].patch.ts +29 -29
  986. package/server/api/workshop/schedules/index.get.ts +12 -12
  987. package/server/api/workshop/schedules/index.post.ts +32 -32
  988. package/server/api/workshop/tasks/[id]/reassign.post.ts +32 -32
  989. package/server/api/workshop/tasks/[id]/update.post.ts +35 -35
  990. package/server/api/workshop/teams/[id]/plugins/index.get.ts +36 -36
  991. package/server/api/workshop/teams/[id]/plugins/index.put.ts +42 -42
  992. package/server/api/workshop/ws/audience.ts +56 -56
  993. package/server/api/workshop/ws/db-buffer.ts +68 -68
  994. package/server/api/workshop/ws/event-mapping.ts +47 -47
  995. package/server/api/workshop/ws/handlers.ts +132 -132
  996. package/server/api/workshop/ws/hub.ts +133 -133
  997. package/server/api/workshop/ws/index.ts +23 -23
  998. package/server/api/workshop/ws/notification-uplink.ts +77 -77
  999. package/server/api/workshop/ws/shared.ts +94 -94
  1000. package/server/api/workshop/ws/streams.ts +146 -146
  1001. package/server/middleware/00-security-headers.ts +38 -38
  1002. package/server/middleware/01-rate-guard.ts +101 -101
  1003. package/server/plugins/aml-twin-worker.ts +32 -32
  1004. package/server/plugins/dev-stability-guard.ts +42 -42
  1005. package/server/plugins-builtin/diag-bridge/host/constants.mjs +25 -25
  1006. package/server/plugins-builtin/diag-bridge/host/exports.mjs +104 -104
  1007. package/server/plugins-builtin/diag-bridge/host/helpers.mjs +2 -2
  1008. package/server/plugins-builtin/diag-bridge/host/index.mjs +15 -15
  1009. package/server/plugins-builtin/diag-bridge/host/intents.mjs +62 -62
  1010. package/server/plugins-builtin/diag-bridge/host/plugin.mjs +5 -3
  1011. package/server/plugins-builtin/diag-bridge/host/snapshot.mjs +93 -93
  1012. package/server/plugins-builtin/diag-bridge/index.mjs +9 -9
  1013. package/server/plugins-builtin/serial-bridge/client.mjs +211 -211
  1014. package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -409
  1015. package/server/plugins-builtin/serial-bridge/i18n.json +62 -62
  1016. package/server/plugins-builtin/serial-bridge/index.mjs +247 -247
  1017. package/server/plugins-builtin/serial-bridge/lib.mjs +208 -208
  1018. package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -168
  1019. package/server/services/system-config/contracts.ts +29 -29
  1020. package/server/services/system-config/dispose.ts +19 -19
  1021. package/server/services/system-config/facade.ts +26 -26
  1022. package/server/services/system-config/groups.ts +108 -108
  1023. package/server/services/system-config/index.ts +21 -21
  1024. package/server/services/system-config/init.ts +26 -26
  1025. package/server/services/system-config/mutate.ts +103 -103
  1026. package/server/services/system-config/plugins.ts +104 -104
  1027. package/server/services/system-config/snapshot.ts +59 -59
  1028. package/server/services/system-config/state.ts +79 -79
  1029. package/server/services/system-config/types.ts +58 -58
  1030. package/server/services/workshop/agents/adapters/omp-rpc-client/api.ts +111 -111
  1031. package/server/services/workshop/agents/adapters/omp-rpc-client/contracts.ts +22 -22
  1032. package/server/services/workshop/agents/adapters/omp-rpc-client/facade.ts +7 -7
  1033. package/server/services/workshop/agents/adapters/omp-rpc-client/frames.ts +0 -18
  1034. package/server/services/workshop/agents/adapters/omp-rpc-client/helpers.ts +38 -38
  1035. package/server/services/workshop/agents/adapters/omp-rpc-client/index.ts +25 -25
  1036. package/server/services/workshop/agents/adapters/omp-rpc-client/start.ts +70 -70
  1037. package/server/services/workshop/agents/adapters/omp-rpc-client/state.ts +65 -65
  1038. package/server/services/workshop/agents/adapters/omp-rpc-client/stdout.ts +92 -92
  1039. package/server/services/workshop/agents/adapters/omp-rpc-client/usage.ts +47 -47
  1040. package/server/services/workshop/agents/agent-badge.ts +38 -38
  1041. package/server/services/workshop/agents/binding-authz.ts +60 -60
  1042. package/server/services/workshop/agents/binding-mode.ts +51 -51
  1043. package/server/services/workshop/agents/codex-agent/client.ts +170 -170
  1044. package/server/services/workshop/agents/codex-agent/core.ts +119 -119
  1045. package/server/services/workshop/agents/codex-agent/facade.ts +8 -8
  1046. package/server/services/workshop/agents/codex-agent/helpers.ts +13 -13
  1047. package/server/services/workshop/agents/codex-agent/hitl.ts +138 -138
  1048. package/server/services/workshop/agents/codex-agent/index.ts +14 -14
  1049. package/server/services/workshop/agents/codex-agent/turn.ts +367 -367
  1050. package/server/services/workshop/agents/codex-agent/types.ts +42 -42
  1051. package/server/services/workshop/agents/harness-process.ts +3 -3
  1052. package/server/services/workshop/agents/harness-terminal/api.ts +197 -197
  1053. package/server/services/workshop/agents/harness-terminal/index.ts +17 -17
  1054. package/server/services/workshop/agents/harness-terminal/io.ts +120 -120
  1055. package/server/services/workshop/agents/harness-terminal/park.ts +55 -55
  1056. package/server/services/workshop/agents/harness-terminal/sanitize.ts +98 -98
  1057. package/server/services/workshop/agents/harness-terminal/session.ts +124 -124
  1058. package/server/services/workshop/agents/harness-terminal/shared.ts +74 -74
  1059. package/server/services/workshop/agents/hitl-capabilities.ts +312 -312
  1060. package/server/services/workshop/agents/hitl-decision/answers.ts +32 -32
  1061. package/server/services/workshop/agents/hitl-decision/decide.ts +268 -268
  1062. package/server/services/workshop/agents/hitl-decision/payload.ts +45 -45
  1063. package/server/services/workshop/agents/hitl-decision/shared.ts +108 -108
  1064. package/server/services/workshop/agents/hitl-decision/visibility.ts +94 -94
  1065. package/server/services/workshop/agents/host-tool-bridge/tools/progress.ts +84 -84
  1066. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +104 -104
  1067. package/server/services/workshop/agents/host-tool-bridge/tools/team.ts +70 -70
  1068. package/server/services/workshop/agents/industrial/aml-activity.ts +131 -131
  1069. package/server/services/workshop/agents/industrial/audit-query.ts +66 -66
  1070. package/server/services/workshop/agents/industrial/daq-tools.ts +352 -352
  1071. package/server/services/workshop/agents/industrial/exp-tools.ts +104 -104
  1072. package/server/services/workshop/agents/industrial/ops-tools.ts +16 -54
  1073. package/server/services/workshop/agents/industrial/param-tools.ts +69 -69
  1074. package/server/services/workshop/agents/industrial/recipe-gate.ts +6 -19
  1075. package/server/services/workshop/agents/industrial/recipe-propose-tools.ts +1 -1
  1076. package/server/services/workshop/agents/node-bindings.repo.ts +207 -207
  1077. package/server/services/workshop/agents/node-delegation.ts +159 -159
  1078. package/server/services/workshop/agents/omp-agent/core.ts +146 -146
  1079. package/server/services/workshop/agents/omp-agent/facade.ts +8 -8
  1080. package/server/services/workshop/agents/omp-agent/helpers.ts +37 -37
  1081. package/server/services/workshop/agents/omp-agent/index.ts +16 -16
  1082. package/server/services/workshop/agents/omp-agent/tools-steer.ts +1 -18
  1083. package/server/services/workshop/agents/omp-agent/types.ts +45 -45
  1084. package/server/services/workshop/agents/opencode-agent/core.ts +77 -77
  1085. package/server/services/workshop/agents/opencode-agent/facade.ts +8 -8
  1086. package/server/services/workshop/agents/opencode-agent/helpers.ts +29 -29
  1087. package/server/services/workshop/agents/opencode-agent/hitl.ts +113 -113
  1088. package/server/services/workshop/agents/opencode-agent/index.ts +16 -16
  1089. package/server/services/workshop/agents/opencode-agent/lifecycle.ts +44 -44
  1090. package/server/services/workshop/agents/opencode-agent/server.ts +244 -244
  1091. package/server/services/workshop/agents/opencode-agent/turn.ts +278 -278
  1092. package/server/services/workshop/agents/opencode-agent/types.ts +54 -54
  1093. package/server/services/workshop/agents/tool-classes.ts +44 -44
  1094. package/server/services/workshop/aml/clean.ts +120 -120
  1095. package/server/services/workshop/aml/entity.ts +367 -367
  1096. package/server/services/workshop/aml/job-orchestrator/broadcast.ts +37 -37
  1097. package/server/services/workshop/aml/job-orchestrator/control.ts +94 -94
  1098. package/server/services/workshop/aml/job-orchestrator/failure.ts +96 -96
  1099. package/server/services/workshop/aml/job-orchestrator/index.ts +22 -22
  1100. package/server/services/workshop/aml/job-orchestrator/process.ts +101 -101
  1101. package/server/services/workshop/aml/job-orchestrator/shared.ts +53 -53
  1102. package/server/services/workshop/aml/job-orchestrator/status.ts +20 -20
  1103. package/server/services/workshop/aml/job-orchestrator/tick.ts +37 -37
  1104. package/server/services/workshop/aml/python/train-example.py +92 -92
  1105. package/server/services/workshop/aml/runtime.ts +137 -137
  1106. package/server/services/workshop/aml/stats.ts +140 -140
  1107. package/server/services/workshop/aml/twin/calibration-worker.ts +150 -150
  1108. package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -332
  1109. package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -185
  1110. package/server/services/workshop/aml/twin/prompt-composer.ts +143 -143
  1111. package/server/services/workshop/aml/twin/training-plans.ts +260 -260
  1112. package/server/services/workshop/aml/twin/write-guard.ts +19 -19
  1113. package/server/services/workshop/assets/character-asset.repo.ts +1 -1
  1114. package/server/services/workshop/assets/device-twin.repo.ts +1 -1
  1115. package/server/services/workshop/daq/bus/index.ts +5 -12
  1116. package/server/services/workshop/daq/daq-controller/contracts.ts +39 -39
  1117. package/server/services/workshop/daq/daq-controller/facade.ts +28 -28
  1118. package/server/services/workshop/daq/daq-controller/frames.ts +137 -137
  1119. package/server/services/workshop/daq/daq-controller/helpers.ts +52 -52
  1120. package/server/services/workshop/daq/daq-controller/index.ts +22 -22
  1121. package/server/services/workshop/daq/daq-controller/runtime-control.ts +72 -72
  1122. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +176 -176
  1123. package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +138 -138
  1124. package/server/services/workshop/daq/drivers/http.ts +95 -95
  1125. package/server/services/workshop/daq/drivers/mock.ts +130 -130
  1126. package/server/services/workshop/daq/drivers/modbus-rtu.ts +67 -67
  1127. package/server/services/workshop/daq/drivers/modbus-tcp.ts +307 -307
  1128. package/server/services/workshop/daq/drivers/opcua.ts +227 -227
  1129. package/server/services/workshop/daq/drivers/s7-stub.ts +29 -29
  1130. package/server/services/workshop/daq/host-bindings.ts +71 -71
  1131. package/server/services/workshop/daq/host-ports.ts +65 -65
  1132. package/server/services/workshop/db/aml-team-seeds.ts +118 -118
  1133. package/server/services/workshop/db/backup-registry.ts +33 -33
  1134. package/server/services/workshop/db/channel-member.repo.ts +122 -122
  1135. package/server/services/workshop/db/channel.repo.ts +203 -203
  1136. package/server/services/workshop/db/chat-message.repo.ts +233 -233
  1137. package/server/services/workshop/db/database/index.ts +18 -18
  1138. package/server/services/workshop/db/database/json.ts +14 -14
  1139. package/server/services/workshop/db/database/open.ts +97 -97
  1140. package/server/services/workshop/db/database/seed-data.ts +60 -60
  1141. package/server/services/workshop/db/hitl-request.repo.ts +221 -221
  1142. package/server/services/workshop/db/notification.repo.ts +199 -199
  1143. package/server/services/workshop/db/readonly.ts +30 -30
  1144. package/server/services/workshop/db/scheduled-task.repo.ts +235 -235
  1145. package/server/services/workshop/db/transaction.ts +72 -72
  1146. package/server/services/workshop/dcw/dcw-controller/contracts.ts +16 -16
  1147. package/server/services/workshop/dcw/dcw-controller/control.ts +78 -78
  1148. package/server/services/workshop/dcw/dcw-controller/facade.ts +19 -19
  1149. package/server/services/workshop/dcw/dcw-controller/index.ts +22 -22
  1150. package/server/services/workshop/dcw/dcw-controller/params.ts +97 -97
  1151. package/server/services/workshop/dcw/dcw-controller/products.ts +103 -103
  1152. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +49 -49
  1153. package/server/services/workshop/dcw/dcw-templates.ts +136 -136
  1154. package/server/services/workshop/dcw/param-conversion.ts +78 -78
  1155. package/server/services/workshop/dcw/param-map.repo.ts +349 -349
  1156. package/server/services/workshop/dcw/plugin-bridge.ts +45 -45
  1157. package/server/services/workshop/dcw/recipe-rollback-manager/contracts.ts +26 -26
  1158. package/server/services/workshop/dcw/recipe-rollback-manager/facade.ts +13 -13
  1159. package/server/services/workshop/dcw/recipe-rollback-manager/helpers.ts +30 -30
  1160. package/server/services/workshop/dcw/recipe-rollback-manager/index.ts +17 -17
  1161. package/server/services/workshop/dcw/recipe-rollback-manager/internal.ts +33 -33
  1162. package/server/services/workshop/dcw/recipe-rollback-manager/judge.ts +52 -52
  1163. package/server/services/workshop/dcw/recipe-rollback-manager/lock.ts +137 -137
  1164. package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +190 -190
  1165. package/server/services/workshop/dcw/recipe-rollback-manager/state.ts +21 -21
  1166. package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +77 -77
  1167. package/server/services/workshop/dcw/recipe-rollback-manager/types.ts +3 -3
  1168. package/server/services/workshop/dcw/recipe-rollback-manager/views.ts +214 -214
  1169. package/server/services/workshop/exp/exp-collector.ts +275 -275
  1170. package/server/services/workshop/exp/exp-state.repo.ts +339 -339
  1171. package/server/services/workshop/mes/mes-controller.ts +1155 -1155
  1172. package/server/services/workshop/mes/mes-hook.ts +567 -567
  1173. package/server/services/workshop/ontology/subgraph.core.ts +300 -300
  1174. package/server/services/workshop/ontology/subgraph.service.ts +113 -113
  1175. package/server/services/workshop/plugins/host/api.mjs +90 -90
  1176. package/server/services/workshop/plugins/host/config.mjs +135 -135
  1177. package/server/services/workshop/plugins/host/index.mjs +23 -23
  1178. package/server/services/workshop/plugins/host/init.mjs +109 -109
  1179. package/server/services/workshop/plugins/host/load.mjs +321 -321
  1180. package/server/services/workshop/plugins/host/reload.mjs +94 -94
  1181. package/server/services/workshop/plugins/host/rollback.mjs +72 -72
  1182. package/server/services/workshop/plugins/host/state.mjs +54 -54
  1183. package/server/services/workshop/plugins/host/toggle.mjs +64 -64
  1184. package/server/services/workshop/plugins/host.mjs +9 -9
  1185. package/server/services/workshop/runtime/agent-runtime/facade.ts +7 -7
  1186. package/server/services/workshop/runtime/agent-runtime/helpers.ts +18 -18
  1187. package/server/services/workshop/runtime/agent-runtime/index.ts +19 -19
  1188. package/server/services/workshop/runtime/agent-runtime/lifecycle.ts +137 -137
  1189. package/server/services/workshop/runtime/chat-mention.ts +164 -164
  1190. package/server/services/workshop/runtime/chat-projection.ts +246 -246
  1191. package/server/services/workshop/runtime/manager/admin-agents.ts +268 -268
  1192. package/server/services/workshop/runtime/manager/bus.ts +182 -182
  1193. package/server/services/workshop/runtime/manager/channel-template-constants.ts +20 -20
  1194. package/server/services/workshop/runtime/manager/chat-reply.ts +181 -181
  1195. package/server/services/workshop/runtime/manager/chat.ts +384 -384
  1196. package/server/services/workshop/runtime/manager/facade.ts +24 -24
  1197. package/server/services/workshop/runtime/manager/helpers.ts +119 -119
  1198. package/server/services/workshop/runtime/manager/index.ts +42 -42
  1199. package/server/services/workshop/runtime/manager/internal.ts +73 -73
  1200. package/server/services/workshop/runtime/manager/notifications.ts +108 -108
  1201. package/server/services/workshop/runtime/manager/teams.ts +148 -148
  1202. package/server/services/workshop/runtime/memory/contracts.ts +18 -18
  1203. package/server/services/workshop/runtime/memory/facade.ts +10 -10
  1204. package/server/services/workshop/runtime/memory/helpers.ts +196 -196
  1205. package/server/services/workshop/runtime/memory/index.ts +27 -27
  1206. package/server/services/workshop/runtime/memory/score.ts +33 -33
  1207. package/server/services/workshop/runtime/memory/state.ts +40 -40
  1208. package/server/services/workshop/runtime/monitor.ts +3 -3
  1209. package/server/services/workshop/runtime/platform-notice.ts +113 -113
  1210. package/server/services/workshop/runtime/schedule-runtime.ts +347 -347
  1211. package/server/services/workshop/runtime/scheduler-loop/contracts.ts +29 -29
  1212. package/server/services/workshop/runtime/scheduler-loop/facade.ts +7 -7
  1213. package/server/services/workshop/runtime/scheduler-loop/helpers.ts +14 -14
  1214. package/server/services/workshop/runtime/scheduler-loop/index.ts +16 -16
  1215. package/server/services/workshop/runtime/task-engine/facade.ts +7 -7
  1216. package/server/services/workshop/runtime/task-engine/index.ts +15 -15
  1217. package/server/services/workshop/runtime/task-engine/types.ts +3 -3
  1218. package/server/services/workshop/runtime/user-notification-hub.ts +192 -192
  1219. package/server/types/pg.d.ts +49 -49
  1220. package/server/utils/approval-gate.ts +67 -67
  1221. package/server/utils/mojibake-guard.ts +29 -29
  1222. package/server/utils/stability-severity.ts +77 -77
  1223. package/shared/config/groups.mjs +241 -241
  1224. package/shared/dcw-protocol/catalog.ts +232 -232
  1225. package/shared/dcw-protocol/closed-loop.ts +137 -137
  1226. package/shared/lru.mjs +97 -97
  1227. package/tui/README.md +74 -74
  1228. package/tui/aw-tui.mjs +445 -445
  1229. package/tui/commands/index.mjs +287 -287
  1230. package/tui/components/chat-log.mjs +42 -42
  1231. package/tui/components/monitor-pane.mjs +39 -39
  1232. package/tui/components/root.mjs +53 -53
  1233. package/tui/components/status-bar.mjs +33 -33
  1234. package/tui/lib/api.mjs +82 -82
  1235. package/tui/lib/pickers.mjs +121 -121
  1236. package/tui/lib/reducers.mjs +218 -218
  1237. package/tui/lib/state.mjs +86 -86
  1238. package/tui/lib/virtual-terminal.mjs +48 -48
  1239. package/tui/lib/ws.mjs +125 -125
  1240. package/tui/theme.mjs +38 -38
  1241. package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  1242. package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
  1243. package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
  1244. package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  1245. package/.output/public/_nuxt/BRYBzVMJ.js +0 -1
  1246. package/.output/public/_nuxt/BW2uTUx52.js +0 -2
  1247. package/.output/public/_nuxt/BtZKe9ZV.js +0 -1
  1248. package/.output/public/_nuxt/CfFUK6932.js +0 -2
  1249. package/.output/public/_nuxt/DhW7cFOa.js +0 -1
  1250. package/.output/public/_nuxt/OmpTerminalPanel.ComMDrA8.css +0 -1
  1251. package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +0 -1
  1252. package/.output/public/_nuxt/TownView.CC3t-Dte.css +0 -1
  1253. package/.output/public/_nuxt/aml.PalMp-5n.css +0 -1
  1254. package/.output/public/_nuxt/builds/meta/20934eea-96ab-412d-b0cd-0061716d8cc4.json +0 -1
  1255. package/.output/public/_nuxt/permissions.DxuOOIqQ.css +0 -1
  1256. package/.output/public/_nuxt/schedules.BXNJ9q_I.css +0 -1
  1257. package/.output/public/_nuxt/tools.BwXFAb-X.css +0 -1
  1258. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs +0 -716
  1259. package/.output/server/chunks/build/AuthGate-nF1evO4v.mjs.map +0 -1
  1260. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs +0 -72
  1261. package/.output/server/chunks/build/FormItemContext-BlyzocS0.mjs.map +0 -1
  1262. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs +0 -942
  1263. package/.output/server/chunks/build/OmpTerminalPanel-BhvhQ1gG.mjs.map +0 -1
  1264. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs +0 -141
  1265. package/.output/server/chunks/build/PluginSlot-BUKXwV2X.mjs.map +0 -1
  1266. package/.output/server/chunks/build/TownView-BWMDbosY.mjs +0 -6489
  1267. package/.output/server/chunks/build/TownView-BWMDbosY.mjs.map +0 -1
  1268. package/.output/server/chunks/build/_id_-BK-t8nRG.mjs +0 -392
  1269. package/.output/server/chunks/build/_id_-BK-t8nRG.mjs.map +0 -1
  1270. package/.output/server/chunks/build/_id_-CZPlPDm4.mjs +0 -2045
  1271. package/.output/server/chunks/build/_id_-CZPlPDm4.mjs.map +0 -1
  1272. package/.output/server/chunks/build/_wsId_-BPy-Aj9L.mjs +0 -14297
  1273. package/.output/server/chunks/build/_wsId_-BPy-Aj9L.mjs.map +0 -1
  1274. package/.output/server/chunks/build/agents-CpNLdI8E.mjs +0 -1078
  1275. package/.output/server/chunks/build/agents-CpNLdI8E.mjs.map +0 -1
  1276. package/.output/server/chunks/build/alert-D0ivtTGy.mjs +0 -263
  1277. package/.output/server/chunks/build/alert-D0ivtTGy.mjs.map +0 -1
  1278. package/.output/server/chunks/build/aml-DRAFRcGU.mjs +0 -814
  1279. package/.output/server/chunks/build/aml-DRAFRcGU.mjs.map +0 -1
  1280. package/.output/server/chunks/build/analysis-p-dBkjoK.mjs +0 -533
  1281. package/.output/server/chunks/build/analysis-p-dBkjoK.mjs.map +0 -1
  1282. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +0 -1
  1283. package/.output/server/chunks/build/api-BEW_ebY_.mjs.map +0 -1
  1284. package/.output/server/chunks/build/api-BsAgXWxi.mjs.map +0 -1
  1285. package/.output/server/chunks/build/api-error-BwAQLw44.mjs +0 -47
  1286. package/.output/server/chunks/build/api-error-BwAQLw44.mjs.map +0 -1
  1287. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs +0 -81
  1288. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +0 -1
  1289. package/.output/server/chunks/build/board-Dl2Ar22r.mjs +0 -178
  1290. package/.output/server/chunks/build/board-Dl2Ar22r.mjs.map +0 -1
  1291. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs +0 -953
  1292. package/.output/server/chunks/build/card-Cqk0Ur-L.mjs.map +0 -1
  1293. package/.output/server/chunks/build/channel-templates-ByHOQQkO.mjs +0 -942
  1294. package/.output/server/chunks/build/channel-templates-ByHOQQkO.mjs.map +0 -1
  1295. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs +0 -439
  1296. package/.output/server/chunks/build/checkbox-CrT4cnfu.mjs.map +0 -1
  1297. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +0 -43
  1298. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +0 -1
  1299. package/.output/server/chunks/build/core-CgTOPS4t.mjs +0 -294
  1300. package/.output/server/chunks/build/core-CgTOPS4t.mjs.map +0 -1
  1301. package/.output/server/chunks/build/daq-CdxcfY_G.mjs +0 -1266
  1302. package/.output/server/chunks/build/daq-CdxcfY_G.mjs.map +0 -1
  1303. package/.output/server/chunks/build/data-D8uX1dnm.mjs +0 -481
  1304. package/.output/server/chunks/build/data-D8uX1dnm.mjs.map +0 -1
  1305. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs +0 -505
  1306. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs.map +0 -1
  1307. package/.output/server/chunks/build/default-CNWS6NUw.mjs +0 -2353
  1308. package/.output/server/chunks/build/default-CNWS6NUw.mjs.map +0 -1
  1309. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs +0 -406
  1310. package/.output/server/chunks/build/descriptions-BNlfKG9y.mjs.map +0 -1
  1311. package/.output/server/chunks/build/drawer-Caji0PLs.mjs +0 -834
  1312. package/.output/server/chunks/build/drawer-Caji0PLs.mjs.map +0 -1
  1313. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs +0 -14
  1314. package/.output/server/chunks/build/dropdown-BNwTVGde.mjs.map +0 -1
  1315. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs +0 -540
  1316. package/.output/server/chunks/build/dropdown-Cd-xPhR6.mjs.map +0 -1
  1317. package/.output/server/chunks/build/es-Bxu10NJ2.mjs.map +0 -1
  1318. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs +0 -2448
  1319. package/.output/server/chunks/build/firstNotUndefined-8H5_qHUu.mjs.map +0 -1
  1320. package/.output/server/chunks/build/form-D_UpWPN4.mjs +0 -4712
  1321. package/.output/server/chunks/build/form-D_UpWPN4.mjs.map +0 -1
  1322. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs +0 -553
  1323. package/.output/server/chunks/build/hasIn-DBdElbjM.mjs.map +0 -1
  1324. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs +0 -132
  1325. package/.output/server/chunks/build/hitl-Bd30yr1J.mjs.map +0 -1
  1326. package/.output/server/chunks/build/input-GtPuSEgt.mjs +0 -2181
  1327. package/.output/server/chunks/build/input-GtPuSEgt.mjs.map +0 -1
  1328. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs +0 -1120
  1329. package/.output/server/chunks/build/input-number-BNlNDK7H.mjs.map +0 -1
  1330. package/.output/server/chunks/build/interval-DvHBIIZh.mjs +0 -9
  1331. package/.output/server/chunks/build/interval-DvHBIIZh.mjs.map +0 -1
  1332. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs +0 -7
  1333. package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs.map +0 -1
  1334. package/.output/server/chunks/build/logs-pRb-TMWa.mjs +0 -427
  1335. package/.output/server/chunks/build/logs-pRb-TMWa.mjs.map +0 -1
  1336. package/.output/server/chunks/build/menu-BXt-X0dt.mjs +0 -1952
  1337. package/.output/server/chunks/build/menu-BXt-X0dt.mjs.map +0 -1
  1338. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs +0 -2253
  1339. package/.output/server/chunks/build/monitor-Cq6hRFeQ.mjs.map +0 -1
  1340. package/.output/server/chunks/build/ontology-DK0Mf0zT.mjs +0 -1406
  1341. package/.output/server/chunks/build/ontology-DK0Mf0zT.mjs.map +0 -1
  1342. package/.output/server/chunks/build/operations-SMQrRAcr.mjs +0 -311
  1343. package/.output/server/chunks/build/operations-SMQrRAcr.mjs.map +0 -1
  1344. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs +0 -202
  1345. package/.output/server/chunks/build/optimizer-BlWTsM-W.mjs.map +0 -1
  1346. package/.output/server/chunks/build/pages-AFRP4-EL.mjs +0 -542
  1347. package/.output/server/chunks/build/pages-AFRP4-EL.mjs.map +0 -1
  1348. package/.output/server/chunks/build/pagination-DTAconUo.mjs +0 -1346
  1349. package/.output/server/chunks/build/pagination-DTAconUo.mjs.map +0 -1
  1350. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs +0 -637
  1351. package/.output/server/chunks/build/permissions-DgXQZSyx.mjs.map +0 -1
  1352. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs +0 -272
  1353. package/.output/server/chunks/build/plugins-LRjaSEZy.mjs.map +0 -1
  1354. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs +0 -340
  1355. package/.output/server/chunks/build/popconfirm-DxYPGRgS.mjs.map +0 -1
  1356. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs +0 -78
  1357. package/.output/server/chunks/build/responsiveObserve-DM3hpzhU.mjs.map +0 -1
  1358. package/.output/server/chunks/build/schedules-dSnr8url.mjs +0 -7172
  1359. package/.output/server/chunks/build/schedules-dSnr8url.mjs.map +0 -1
  1360. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs +0 -341
  1361. package/.output/server/chunks/build/segmented-D3HWtHPw.mjs.map +0 -1
  1362. package/.output/server/chunks/build/select-B3Dsb9yq.mjs +0 -3923
  1363. package/.output/server/chunks/build/select-B3Dsb9yq.mjs.map +0 -1
  1364. package/.output/server/chunks/build/settings-BrIhnS2Z.mjs +0 -1014
  1365. package/.output/server/chunks/build/settings-BrIhnS2Z.mjs.map +0 -1
  1366. package/.output/server/chunks/build/space-Dwu2Skt8.mjs +0 -110
  1367. package/.output/server/chunks/build/space-Dwu2Skt8.mjs.map +0 -1
  1368. package/.output/server/chunks/build/spin-C2cuvGth.mjs +0 -357
  1369. package/.output/server/chunks/build/spin-C2cuvGth.mjs.map +0 -1
  1370. package/.output/server/chunks/build/studio-cdoNCfyy.mjs +0 -332
  1371. package/.output/server/chunks/build/studio-cdoNCfyy.mjs.map +0 -1
  1372. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs +0 -377
  1373. package/.output/server/chunks/build/switch-CyR-H6Fb.mjs.map +0 -1
  1374. package/.output/server/chunks/build/table-CmVD-cA9.mjs +0 -7546
  1375. package/.output/server/chunks/build/table-CmVD-cA9.mjs.map +0 -1
  1376. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs +0 -1924
  1377. package/.output/server/chunks/build/tabs-Vg0e7cZE.mjs.map +0 -1
  1378. package/.output/server/chunks/build/tag-y0sn-xv9.mjs +0 -1156
  1379. package/.output/server/chunks/build/tag-y0sn-xv9.mjs.map +0 -1
  1380. package/.output/server/chunks/build/teams-B1d32eHK.mjs +0 -1203
  1381. package/.output/server/chunks/build/teams-B1d32eHK.mjs.map +0 -1
  1382. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs +0 -1062
  1383. package/.output/server/chunks/build/tokens-GYaGJ35Z.mjs.map +0 -1
  1384. package/.output/server/chunks/build/tools-s_9U1Djj.mjs +0 -487
  1385. package/.output/server/chunks/build/tools-s_9U1Djj.mjs.map +0 -1
  1386. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs +0 -920
  1387. package/.output/server/chunks/build/tooltip-C2n2nNiQ.mjs.map +0 -1
  1388. package/.output/server/chunks/build/town-B5aoiG98.mjs +0 -133
  1389. package/.output/server/chunks/build/town-B5aoiG98.mjs.map +0 -1
  1390. package/.output/server/chunks/build/useAgentHarnessOptions-DOrQHeBh.mjs +0 -124
  1391. package/.output/server/chunks/build/useAgentHarnessOptions-DOrQHeBh.mjs.map +0 -1
  1392. package/.output/server/chunks/build/useAgentTemplateActions-CzlplRWh.mjs +0 -77
  1393. package/.output/server/chunks/build/useAgentTemplateActions-CzlplRWh.mjs.map +0 -1
  1394. package/.output/server/chunks/build/useAgentTemplateForm-DQo1enf2.mjs +0 -117
  1395. package/.output/server/chunks/build/useAgentTemplateForm-DQo1enf2.mjs.map +0 -1
  1396. package/.output/server/chunks/build/useAgentTemplatesCatalog-DP-iMmqz.mjs +0 -133
  1397. package/.output/server/chunks/build/useAgentTemplatesCatalog-DP-iMmqz.mjs.map +0 -1
  1398. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs +0 -92
  1399. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +0 -1
  1400. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs +0 -86
  1401. package/.output/server/chunks/build/useAmlEntities-BJhvdqHJ.mjs.map +0 -1
  1402. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs +0 -194
  1403. package/.output/server/chunks/build/useAmlEnv-CDIZ6xTe.mjs.map +0 -1
  1404. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs +0 -89
  1405. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +0 -1
  1406. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs +0 -267
  1407. package/.output/server/chunks/build/useAmlJobs-BF9LpwXz.mjs.map +0 -1
  1408. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs +0 -93
  1409. package/.output/server/chunks/build/useAmlModels-_bweOr3R.mjs.map +0 -1
  1410. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs +0 -86
  1411. package/.output/server/chunks/build/useAmlNotes-DQj980iX.mjs.map +0 -1
  1412. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs +0 -130
  1413. package/.output/server/chunks/build/useAmlPredict-DHNgDSJn.mjs.map +0 -1
  1414. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs +0 -129
  1415. package/.output/server/chunks/build/useAnalysisFeed-BrEGV_9x.mjs.map +0 -1
  1416. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +0 -142
  1417. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs.map +0 -1
  1418. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs +0 -70
  1419. package/.output/server/chunks/build/useDaqDetailBinding-DCWaLKXT.mjs.map +0 -1
  1420. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs +0 -79
  1421. package/.output/server/chunks/build/useDaqDetailFrames-BOIcOJRB.mjs.map +0 -1
  1422. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs +0 -176
  1423. package/.output/server/chunks/build/useDaqDetailHistory-D6WulPVs.mjs.map +0 -1
  1424. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs +0 -99
  1425. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs.map +0 -1
  1426. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +0 -159
  1427. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs.map +0 -1
  1428. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs +0 -222
  1429. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs.map +0 -1
  1430. package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs +0 -136
  1431. package/.output/server/chunks/build/useDaqOptimizations-CmX_dpBc.mjs.map +0 -1
  1432. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +0 -395
  1433. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs.map +0 -1
  1434. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +0 -187
  1435. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs.map +0 -1
  1436. package/.output/server/chunks/build/useDashboardData-B36wVWo2.mjs +0 -153
  1437. package/.output/server/chunks/build/useDashboardData-B36wVWo2.mjs.map +0 -1
  1438. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs +0 -219
  1439. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs.map +0 -1
  1440. package/.output/server/chunks/build/useDcwCards-SaiImIYQ.mjs.map +0 -1
  1441. package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs +0 -184
  1442. package/.output/server/chunks/build/useDcwDetailScope-DLOklSMO.mjs.map +0 -1
  1443. package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs +0 -148
  1444. package/.output/server/chunks/build/useDcwDetailTemplates-ClmIdZ40.mjs.map +0 -1
  1445. package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs +0 -71
  1446. package/.output/server/chunks/build/useDcwFilter-CPMyCltx.mjs.map +0 -1
  1447. package/.output/server/chunks/build/useDcwLedger-0ie-0WTc.mjs.map +0 -1
  1448. package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs +0 -137
  1449. package/.output/server/chunks/build/useDcwLineMutations-DNxo66yM.mjs.map +0 -1
  1450. package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs +0 -104
  1451. package/.output/server/chunks/build/useDcwLineRun-CHskwscT.mjs.map +0 -1
  1452. package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs +0 -121
  1453. package/.output/server/chunks/build/useDcwParamApprovals-DtScUc-W.mjs.map +0 -1
  1454. package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs +0 -93
  1455. package/.output/server/chunks/build/useDcwProducts-BMaxzLu6.mjs.map +0 -1
  1456. package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs +0 -98
  1457. package/.output/server/chunks/build/useDcwQuery-TVU3Eo0M.mjs.map +0 -1
  1458. package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs +0 -88
  1459. package/.output/server/chunks/build/useDcwQuickActions-BREFmR9T.mjs.map +0 -1
  1460. package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs +0 -258
  1461. package/.output/server/chunks/build/useDcwRecipes-Bc9urA1N.mjs.map +0 -1
  1462. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs +0 -452
  1463. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs.map +0 -1
  1464. package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs +0 -91
  1465. package/.output/server/chunks/build/useDcwTemplates-BzagZztS.mjs.map +0 -1
  1466. package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs +0 -140
  1467. package/.output/server/chunks/build/useDcwWrites-BROwTLCn.mjs.map +0 -1
  1468. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs +0 -128
  1469. package/.output/server/chunks/build/useDeviceTwins-BqwVJaZg.mjs.map +0 -1
  1470. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs +0 -107
  1471. package/.output/server/chunks/build/useExpConfirmations-BM626N4p.mjs.map +0 -1
  1472. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs +0 -55
  1473. package/.output/server/chunks/build/useLocalTime-uVSM44Um.mjs.map +0 -1
  1474. package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs +0 -88
  1475. package/.output/server/chunks/build/useLogsManual-cVBZQ_Mt.mjs.map +0 -1
  1476. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs +0 -150
  1477. package/.output/server/chunks/build/useLogsQuery-D7hrJ3yn.mjs.map +0 -1
  1478. package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs +0 -83
  1479. package/.output/server/chunks/build/useLogsScope-aaPQeTRm.mjs.map +0 -1
  1480. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs +0 -135
  1481. package/.output/server/chunks/build/useMonitorData-DIkiLr_h.mjs.map +0 -1
  1482. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs +0 -91
  1483. package/.output/server/chunks/build/useMonitorFormat-CyURtH8N.mjs.map +0 -1
  1484. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs +0 -195
  1485. package/.output/server/chunks/build/useOperationsFeed-Ci4mZAn_.mjs.map +0 -1
  1486. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs +0 -149
  1487. package/.output/server/chunks/build/useOpsLog-C-M6Eace.mjs.map +0 -1
  1488. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs +0 -156
  1489. package/.output/server/chunks/build/useRecipeDispatchApprovals-BYtiqfeb.mjs.map +0 -1
  1490. package/.output/server/chunks/build/useTeamActions-I_8QWp9w.mjs +0 -79
  1491. package/.output/server/chunks/build/useTeamActions-I_8QWp9w.mjs.map +0 -1
  1492. package/.output/server/chunks/build/useTeamAddMemberDialog-BLn4nTuy.mjs +0 -84
  1493. package/.output/server/chunks/build/useTeamAddMemberDialog-BLn4nTuy.mjs.map +0 -1
  1494. package/.output/server/chunks/build/useTeamCreateDialog-Bp5qKtpI.mjs +0 -97
  1495. package/.output/server/chunks/build/useTeamCreateDialog-Bp5qKtpI.mjs.map +0 -1
  1496. package/.output/server/chunks/build/useTeamDeployDialog-DwIaz6Cx.mjs +0 -80
  1497. package/.output/server/chunks/build/useTeamDeployDialog-DwIaz6Cx.mjs.map +0 -1
  1498. package/.output/server/chunks/build/useTeamPluginDialog-B932gZOI.mjs +0 -103
  1499. package/.output/server/chunks/build/useTeamPluginDialog-B932gZOI.mjs.map +0 -1
  1500. package/.output/server/chunks/build/useTeamsCatalog-DBwaLQBw.mjs +0 -123
  1501. package/.output/server/chunks/build/useTeamsCatalog-DBwaLQBw.mjs.map +0 -1
  1502. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs +0 -115
  1503. package/.output/server/chunks/build/useTokenCreate-Ctl0YGhL.mjs.map +0 -1
  1504. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs +0 -87
  1505. package/.output/server/chunks/build/useTokenRename-Cm3ypSfN.mjs.map +0 -1
  1506. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs +0 -118
  1507. package/.output/server/chunks/build/useTokenReveal-CeoWL5Mt.mjs.map +0 -1
  1508. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs +0 -92
  1509. package/.output/server/chunks/build/useTokensList-CNIzON3u.mjs.map +0 -1
  1510. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs +0 -141
  1511. package/.output/server/chunks/build/useWorkbenchAuth-CY-bVFMu.mjs.map +0 -1
  1512. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs +0 -138
  1513. package/.output/server/chunks/build/useWorkbenchWorkspaces-DhZQFss9.mjs.map +0 -1
  1514. package/.output/server/chunks/build/useWorkshopApi-CaSItJVq.mjs +0 -119
  1515. package/.output/server/chunks/build/useWorkshopApi-CaSItJVq.mjs.map +0 -1
  1516. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs +0 -1659
  1517. package/.output/server/chunks/build/useWorkshopWs-YQ5URrbt.mjs.map +0 -1
  1518. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +0 -1
  1519. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs +0 -92
  1520. package/.output/server/chunks/build/useWorkspaceChannels-CPFepxTN.mjs.map +0 -1
  1521. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +0 -168
  1522. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +0 -1
  1523. package/.output/server/chunks/build/users-DjiVC_tS.mjs +0 -569
  1524. package/.output/server/chunks/build/users-DjiVC_tS.mjs.map +0 -1
  1525. package/.output/server/chunks/build/workshop-1gKeDASV.mjs +0 -546
  1526. package/.output/server/chunks/build/workshop-1gKeDASV.mjs.map +0 -1
  1527. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.json +0 -1
  1528. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/1459e6269990a5d229b9228c8b2f62ffaa7d350068380ae8b875fee0db45cca6.source +0 -180
  1529. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/c2991e909c70c5c12b90a407c7adcf63384c51668a2b334e6e047fa675c268fe.source +0 -305
  1530. package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/e09129039d1e27e3fac24becc9bdafd2d1a7c8049bff24173df007be865f0165.source +0 -264
  1531. package/app/.mimosa/hook-status/sess_05189059-e42d-4188-8911-4f7baabe009b-28ef7c75ea.json +0 -14
  1532. package/scripts/e2e-direct-rest-simulator-paper.mjs +0 -624
  1533. package/scripts/e2e-pi-simulator-paper.mjs +0 -2316
  1534. package/scripts/e2e-registered-harness-simulator-paper.mjs +0 -1926
  1535. package/scripts/e2e-simulator-optimizer-paper.mjs +0 -264
  1536. package/scripts/fixtures/omp-paper-harness.mjs +0 -163
  1537. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.json +0 -1
  1538. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/942d2679b87b96c612b4f2a425c3ccc5b6f3234f0cf589a8441602f866fbe277.source +0 -41
  1539. package/server/.mimosa/hook-state/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2.mvhn1irp-99488-e3fdc1cbfc.baseline/dd617a82339d2c61e49e28e416aabeb2fc100fb3cb1beca18d02dfb833214af6.source +0 -51
  1540. package/server/.mimosa/hook-status/sess_869e5bfd-07f4-4b6e-a991-6221fcf6b7d2-e67b6b91bf.json +0 -14
  1541. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +0 -1
  1542. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +0 -14
  1543. package/server/services/workshop/agents/omp-agent/supervision-history.ts +0 -38
  1544. package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  1545. package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
  1546. package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
  1547. package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  1548. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.json +0 -1
  1549. package/server/services/workshop/optimization/python/.mimosa/hook-state/session_187ec97f45d4bd02369bbe94da527cf1.mvjqkcs6-68688-fb7131a89c.baseline/190a6772a4e43801737b4ba6072eb9d53d3099b5d8a9e6f57bc5e8592a26a6c4.source +0 -274
  1550. package/server/services/workshop/optimization/python/.mimosa/hook-status/session_187ec97f45d4bd02369bbe94da527cf1-01ed7f04fa.json +0 -14
  1551. package/server/services/workshop/optimization/python/__pycache__/problems.cpython-312.pyc +0 -0
  1552. /package/.output/public/_nuxt/{9j2J4k4w.js → 9j2J4k4w2.js} +0 -0
  1553. /package/.output/public/_nuxt/{BY3Lbz3h2.js → BY3Lbz3h.js} +0 -0
  1554. /package/.output/public/_nuxt/{Iub61dX92.js → Iub61dX9.js} +0 -0
  1555. /package/.output/public/_nuxt/{Q-JpBT032.js → Q-JpBT03.js} +0 -0
  1556. /package/.output/public/_nuxt/{dVw8IHY62.js → dVw8IHY6.js} +0 -0
  1557. /package/.output/public/_nuxt/{k9b520K-.js → k9b520K-2.js} +0 -0
@@ -1,248 +1,248 @@
1
- # 多 Harness 适配架构指南(可移植版)
2
-
3
- > 生成日期:2026-09-10 · 基准版本:AgentWorkShop 0.7.27(14 引擎全绿)
4
- > 用途:供其他项目参照本文档实现「多 Agent Harness(执行引擎)适配」。只讲**架构思想**与**每个引擎的库依赖/集成方式**,不绑定本仓库业务。
5
-
6
- ---
7
-
8
- ## 0. 问题域与总原则
9
-
10
- **问题域**:平台要把 N 个异构 AI Agent 执行引擎(CLI 工具 / SDK)当作可互换的「Agent 大脑」:同一套上层编排(任务分发、消息、调度、审批、记忆)驱动任意引擎,新增引擎时上层与前端零改动。
11
-
12
- **七条核心原则**(全部是本系统实战沉淀,移植时建议原样保留):
13
-
14
- 1. **单一契约**:所有引擎实现同一个接口 `AgentInterface`(run/supervise/steer/HITL/进程治理等)。上层(runtime/scheduler/API/前端)只依赖契约,永远不出现 `if (harness === 'codex')`。
15
- 2. **单一事实源注册表**:一个 `HARNESS_REGISTRY` 常量表声明每个引擎的 id/label/描述/主页/**能力面**/工厂函数/**可用性探测声明**。前端下拉、可用性面板、执行前校验、模型目录全部从此派生,禁止第七处硬编码白名单。新增引擎 = 注册表加一项 + 实现一个类。
16
- 3. **两种进程模型,两个基座**:
17
- - **常驻会话型**(omp/codex/dsh/opencode/qwen/hermes/claude):每 Agent 一个长活子进程(或进程内 SDK 会话),lazy 启动、跨消息复用、dispose 时销毁;
18
- - **一次性回合型**(gemini/copilot/cursor/crush/goose/pi):每回合 spawn 一个子进程,进程退出即回合结束,会话延续靠引擎自身的 session id + resume 参数。
19
- 两个模型各有共享基类(`BaseAgentImpl` → 协议无关平台语义;`OneShotCliAgentImpl` → 一次性 CLI 家族),引擎差异全部收敛为子类/引擎 spec 的一张「映射表」。
20
- 4. **能力如实声明,降级策略显式化**:注册表 `capabilities` 六元组(steer 同轮注入 / supervise lead 调度 / hitl 程序化审批 / terminal 终端镜像 / contextStats 上下文统计 / compact 主动压缩)必须反映引擎真实能力,**不虚报**。引擎不支持的,必须有明确的降级语义(如 steer 恒 `'deferred'` 走信箱;无 HITL 的走预授权白名单),不允许静默缺失。
21
- 5. **工具注入统一化 + 环境变量携带身份**:平台侧的全部协作工具(任务/消息/记忆)与业务工具,通过统一的 host-tool 分发桥暴露给引擎。CLI 引擎的注入主路径是 **stdio MCP server 桥**:桥脚本被引擎当作本地 MCP server 拉起,工具调用经 HTTP 回程落到平台 API(agent token 鉴权)。关键设计:`AW_BASE_URL / AW_AGENT_ID / AW_AGENT_TOKEN` 注入**引擎进程的环境变量**,引擎拉起的 MCP 子进程自动继承 → **配置文件可全局共享,无需每 Agent 一份 HOME**。
22
- 6. **错误即事件 / steer 诚实语义**:spawn 失败、非 0 退出、超时、协议错误都必须产出 `{kind:'error'}` 事件(错误码形如 `CODEX_EXIT_1` + stderr 尾部),绝不静默吞掉。`steer()` 只有真的注入了流式会话才返回 `'steer'`,否则返回 `'deferred'`(消息保持 pending,下一回合携带),保证消息不丢。
23
- 7. **探测与拉起同源**:「引擎是否可用」的 PATH 探测和「真实 spawn」走同一个命令解析函数;执行前在所有入口(模板增改/克隆/实例换引擎/任务直发/lead 派发等,本系统共七处)统一强校验,未知引擎 400、未安装 409,任务不进「起跑后失败」路径。
24
-
25
- ---
26
-
27
- ## 1. 分层架构与模块地图
28
-
29
- ```
30
- 上层(harness 无关)
31
- runtime(每 Agent 生命周期) · scheduler(lead 调度循环) · HITL API · 前端下拉/徽标
32
- │ 只依赖
33
- AgentInterface(统一契约)
34
- │ 由
35
- HARNESS_REGISTRY(单一事实源:capabilities/probe/create)
36
- │ 装配
37
- ┌──────────────────────────────┴───────────────────────────────┐
38
- │ BaseAgentImpl(平台语义基类) │
39
- │ · run() 消息分流:metadata['x-aw-task-kind']='assign'→workerTurn│
40
- │ 否则有来源→peerTurn │
41
- │ · supervise() 模板方法:快照→prompt→collectTurnEvents→JSON 解析 │
42
- │ · contextPrefix(场景×身份×手册×名册)/ dispatchHostTool 直调面 │
43
- └──────────────┬───────────────────────────────┬───────────────┘
44
- │ │
45
- 常驻会话型子类 OneShotCliAgentImpl(一次性 CLI 基座)
46
- omp(RPC) codex(JSON-RPC) 引擎差异=一份 OneShotEngineSpec:
47
- dsh/hermes(ACP) opencode(HTTP/SSE) resolveCommand/buildArgs/promptDelivery
48
- qwen(旧版ACP) claude(SDK进程内) /engineEnv/mapLine/prepare/plainTextStdout…
49
-
50
- ── 共享基础设施(全部引擎复用)──
51
- line-spawn 受控子进程拉起:拒绝 shell 元字符;Windows .cmd shim 走
52
- 字面量 'cmd.exe /d /s /c' 包装+逐参数校验;PATH+PATHEXT 解析
53
- stdio-jsonrpc NDJSON JSON-RPC 2.0 客户端(响应/通知/服务端请求三分)
54
- harness-process 子进程登记/强杀(win32 taskkill /T /F)/OS 存活校准
55
- harness-env MCP 桥环境计算:AW_BASE_URL/AW_AGENT_ID/AW_AGENT_TOKEN
56
- aw-mcp-bridge.mjs 零依赖 stdio MCP server → HTTP 回程(agent token 鉴权)
57
- host-tool-bridge 全引擎唯一工具分发入口(协作工具族按角色过滤+插件工具)
58
- prompt-builder 共享 prompt 组装(worker/peer/supervise/系统手册/JSON 提取)
59
- hitl-registry HITL 中枢(globalThis 单例;kind 枚举=各引擎审批请求类型)
60
- harness-availability 可用性探测(与拉起同源;30s 缓存;assertHarnessUsable)
61
- harness-models 各引擎 provider/model 目录发现(5min 缓存)
62
- ```
63
-
64
- **host tools 工具面**(MCP 桥暴露给引擎的内容):AgentWorkspace 协作方法族(任务分发/上报/完成、信箱收发、记忆检索/沉淀、名册/队列观察、成员管理等 ~25 个)+ 业务/工业工具族 + 插件注册工具,按角色(lead/worker)过滤。引擎用原生工具调用方式消费,**平台不做任何文本解析**。
65
-
66
- **HITL 链路**(引擎审批请求 → 人 → 回答):引擎侧审批请求(如 codex `requestApproval`、dsh/hermes `session/request_permission`、claude `canUseTool`、qwen `requestToolCallConfirmation`)→ 登记 hitl-registry(kind 枚举:`codex-approval / opencode-permission / dsh-permission / claude-permission / qwen-permission / hermes-permission / omp-dialog / dcw-approval`)→ 前端铃标 → 人经 API 应答 → respondHitl 传导回引擎 → 回合继续。**超时/取消一律 fail-closed(拒绝)**。
67
-
68
- ---
69
-
70
- ## 2. 十四个引擎一览
71
-
72
- | id | 引擎 | 官方文档 | 集成面 | 进程模型 | 库依赖 |
73
- |---|---|---|---|---|---|
74
- | mock | 进程内模拟引擎 | —(内部) | 剧本驱动,无 LLM,联调/CI 用 | 进程内 | 无 |
75
- | omp | oh-my-pi | https://github.com/acidsugarx/oh-my-pi | `omp --mode rpc` 自定义 RPC 协议 | 常驻子进程 | 全局 CLI `omp` |
76
- | opencode | OpenCode | https://opencode.ai (server:https://opencode.ai/docs/server ) | `opencode serve --port` + HTTP API + 全局 SSE `/event` | 常驻子进程 | 全局 CLI `opencode` |
77
- | codex | OpenAI Codex CLI | https://github.com/openai/codex (app-server 协议:`codex-rs/app-server/README.md`) | `codex app-server` NDJSON JSON-RPC v2(thread/start + turn/start) | 常驻子进程 | 全局 CLI `codex` |
78
- | dsh | DeepSeek Harness | https://github.com/deepseek-ai/DeepSeek-Harness (ACP:`packages/acp/acp/README.md`) | `dsh --profile acp` 标准 ACP v1(session/new + session/prompt 单飞) | 常驻子进程 | 全局 CLI `dsh` |
79
- | claude | Claude Agent SDK | https://code.claude.com/docs/en/agent-sdk/typescript | 进程内 SDK:`query()` + AsyncIterable 流式输入 | **进程内 SDK**(SDK 自管 claude 二进制) | **npm:`@anthropic-ai/claude-agent-sdk`**(动态 import,缺失时报 HARNESS_NOT_CONFIGURED 而非崩溃) |
80
- | gemini | Gemini CLI | https://github.com/google-gemini/gemini-cli (headless:`docs/cli/headless.md`) | `gemini -p --output-format stream-json`(JSONL 帧 init/message/tool_use/result) | 一次性回合 | 全局 CLI `gemini` |
81
- | copilot | GitHub Copilot CLI | https://docs.github.com/en/copilot/how-tos/copilot-cli (编程式:`automate-copilot-cli/run-cli-programmatically`) | `copilot -p --output-format json`(JSONL) | 一次性回合 | 全局 CLI `copilot` |
82
- | cursor | Cursor CLI | https://cursor.com/docs/cli/headless | `cursor-agent -p --output-format stream-json --stream-partial-output`(帧与 Claude Code 同构) | 一次性回合 | 原生 CLI `cursor-agent` |
83
- | crush | Charm Crush | https://github.com/charmbracelet/crush | `crush run -q`(v0.92 起无 JSON 格式 → 纯文本 stdout 一次性) | 一次性回合 | CLI `crush`(npm shim 可能损坏,可指包内 bin 直启) |
84
- | goose | Block Goose | https://blockgoose.io (源码:https://github.com/aaif-goose/goose ,headless 教程在仓库 docs) | `goose run -t --output-format stream-json --name aw-<agentId> [--resume]` | 一次性回合 | 原生 CLI `goose` |
85
- | qwen | Qwen Code | https://github.com/QwenLM/qwen-code (docs:https://qwenlm-qwen-code.mintlify.app/cli/overview ) | `qwen --experimental-acp`(**旧版 Zed ACP**:camelCase 方法、无 sessionId、单隐式会话) | 常驻子进程 | 全局 CLI `qwen` |
86
- | pi | pi coding agent | https://github.com/badlogic/pi-mono | `pi -p --mode json`(JSONL:session/message_end/message_update/turn_end);prompt 经 **@临时文件** 投递(绕 Windows ~8K 命令行上限) | 一次性回合 | CLI `pi`(@mariozechner/pi-coding-agent) |
87
- | hermes | Hermes Agent | https://github.com/NousResearch/hermes-agent | `hermes acp` 标准 ACP v1(与 dsh 同型,方法名集中一处便于版本漂移修改) | 常驻子进程 | CLI `hermes` |
88
-
89
- 通用协议参考:**MCP** https://modelcontextprotocol.io · **ACP(Agent Client Protocol)** https://agentclientprotocol.com
90
-
91
- > 选型口径(可复用):候选引擎必须满足「无头模式 + 结构化输出(JSON 事件流)+ MCP 客户端」三要素;能力覆盖密度(七能力面占几项)≥ 5/7 才值得接入。无结构化输出的引擎(如 Amazon Q CLI)宁可进观察名单也不做纯文本抓取——违背「错误即事件/usage 透出」底线。
92
-
93
- ---
94
-
95
- ## 3. 每引擎集成卡片(鉴权 · 工具注入 · 审批 · steer)
96
-
97
- ### omp(默认推荐引擎)
98
- - 协议:omp 自有 RPC(`--mode rpc`),每 Agent 一个子进程 lazy 启动;事件 `AgentSessionEvent → AgentEvent` 映射。
99
- - 工具:平台工具经 `set_host_tools` **进程内直调**(不回程),是最早的直连模型。
100
- - 审批:extension_ui 对话框 → HITL;steer:✅ 原生同轮注入;上下文:被动跟踪 + 平台 70% 阈值主动压缩(引擎原生 auto-compaction 摘要经 harvest 桥落库)。
101
- - 鉴权:`omp models` 提供 provider 分组目录;自定义网关可用。
102
-
103
- ### codex
104
- - 协议:`codex app-server`(stdio NDJSON JSON-RPC v2)。`thread/start` 建会话、`turn/start` 驱动回合、`turn/steer` 同轮注入、`thread/compact/start` 主动压缩、`model/list` 拉模型目录。
105
- - 工具:impl 装配 `config.toml` 的 `[mcp_servers.aw]` 指向 stdio 桥。
106
- - 审批:`item/commandExecution|fileChange` 的 `requestApproval`(服务端→客户端请求)→ HITL(decision: accept/decline/cancel);审批策略 `approvalPolicy: untrusted|on-request|never`,默认 on-request。
107
- - 鉴权/provider:config.toml 网关配置;`CODEX_HOME` 环境变量可隔离配置目录。
108
-
109
- ### dsh
110
- - 协议:标准 ACP v1(JSON-RPC over stdio):`initialize / session/new / session/prompt / session/cancel`;`session/prompt` 单飞(响应在回合终点返回 stopReason)。方法名集中在一个常量表,pre-1.0 协议漂移时只改一处。
111
- - 工具:`session/new` 的 `mcpServers` 参数挂 stdio 桥(引擎给工具加 `mcp__aw__` 前缀)。
112
- - 审批:`session/request_permission` → HITL(allow/reject/cancel,fail-closed);steer:❌ 恒 deferred。
113
- - 鉴权/provider:`DEEPSEEK_BASE_URL` 等网关 env;模型目录=内置官方表 + 用户 settings.yaml 自定义网关轻解析。
114
-
115
- ### opencode
116
- - 协议:`opencode serve --port <空闲>` 子进程 + 官方 HTTP API(`prompt_async / abort / permissions / summarize`)+ 全局 SSE `/event`。port 用本地 net 探测空闲。
117
- - 工具:运行时 `POST /mcp` 注册 stdio 桥。
118
- - 审批:`permission.asked / question.asked` 事件 → HITL(once|always|reject);steer:✅ 回合运行中再投 prompt(引擎 queue admission),内容不丢。
119
- - 上下文:`message.tokens` 被动跟踪,越阈值 `POST /session/{id}/summarize`;provider 目录走 `opencode models`(models.dev 生态,任意 OpenAI 兼容网关)。
120
-
121
- ### claude(SDK 特例)
122
- - 集成:npm 依赖 `@anthropic-ai/claude-agent-sdk`,**动态 import**(依赖缺失→回合报 HARNESS_NOT_CONFIGURED,注册表仍可列出)。每 Agent 一个常驻 SDK 会话,`query({ prompt: AsyncIterable, options })` 流式输入。
123
- - steer:✅ 向流式生成器再 `yield` 一条 user 消息(七引擎中与 omp 并列的原生 steer)。
124
- - 审批:`canUseTool(tool, input) => PermissionResult` → HITL(allow→`{behavior:'allow',updatedInput}`;deny→`{behavior:'deny',message}`);AW 桥工具经 `allowedTools: ['mcp__aw']` 预授权不走审批。
125
- - 工具:`mcpServers.aw` = stdio 桥(工具清单动态 tools/list,插件热更自动传导);SDK 也支持进程内 SDK MCP server(`createSdkMcpServer`,零回程直调)作替代通道。
126
- - 上下文:SDK 原生 auto-compact(观测 `compact_boundary`);usage 从 result(`total_cost_usd/usage/num_turns`)透出。
127
- - 鉴权/provider:`config.apiKey → ANTHROPIC_AUTH_TOKEN`、`config.providerBaseUrl → ANTHROPIC_BASE_URL`(任意 Anthropic 兼容网关实测可用)。
128
-
129
- ### gemini
130
- - 进程:每回合 `gemini -p --output-format stream-json`;init 帧捕获 session_id → 下回合 `--resume <sid>`。
131
- - 工具:**merge-only** 写 `<workspace>/.gemini/settings.json` 的 `mcpServers.aw`(trust=true,不动用户已有配置)+ `--allowed-mcp-server-names aw` 白名单;native 工具保持 `--approval-mode default`(无头下需确认的操作被引擎拒绝,fail-safe)。
132
- - 坑:headless 需 `GEMINI_CLI_TRUST_WORKSPACE=true`;鉴权锁定 Google 面(GEMINI_API_KEY/OAuth),**无自定义网关 provider 面**。
133
-
134
- ### copilot
135
- - 进程:每回合 `copilot -p --output-format json`(prompt 经 stdin 管道)。
136
- - 配置隔离:官方 `COPILOT_HOME` 指向 `.AgentWorkShop/harness-config/copilot/<agentId>/`(内种子 mcp-config.json 挂桥)——**唯一用官方 per-agent 目录隔离的引擎**。
137
- - 授权:`--allow-tool aw` 白名单制(仅授权 AW 桥),native shell/write 默认不授权;`--no-ask-user` 默认开。
138
- - 鉴权:token 链 `COPILOT_GITHUB_TOKEN > GH_TOKEN > GITHUB_TOKEN`(服务端可直接用 PAT);GitHub 账号锁定,无自定义网关。
139
-
140
- ### cursor
141
- - 进程:每回合 `cursor-agent -p --output-format stream-json --stream-partial-output`;帧与 Claude Code 同构(system/init、assistant、tool_call、result)。
142
- - 安全档:**默认不带 `--force`** → 文件变更只提案不落地(与平台写控制哲学一致);per-agent 显式配置才放开。
143
- - 工具:`--mcp-config` 指向共享 aw-mcp.json(无 agent 段:身份走 env 继承)。已知边界:print 模式 MCP 偶发不触发(版本相关)。鉴权 `CURSOR_API_KEY`,账号锁定。
144
-
145
- ### crush
146
- - 进程:每回合 `crush run`;**v0.92 移除了 `--format json`**(相对文档回归)→ 走基座 `plainTextStdout` 模式(stdout 纯文本按增量聚合)。
147
- - 配置:`./.crushrc`(bash 方言)。文件缺失时整份生成(`mcp add aw` 桥 + `provider add zhipu --type openai-compat` + `model add`),**api_key 引用 `${AW_CRUSH_API_KEY}` 环境变量,凭据不落盘**;已有用户配置则不动。
148
- - 鉴权:config.apiKey → 进程 env `AW_CRUSH_API_KEY`。run 模式无程序化审批。
149
-
150
- ### goose
151
- - 进程:每回合 `goose run --output-format stream-json -t <prompt> --name aw-<agentId> [--resume]`(prompt 必须 `-t`,位置参数被拒 exit 2)。
152
- - 无头姿势 env:`GOOSE_MODE=auto`、`GOOSE_CONTEXT_STRATEGY=summarize`(引擎原生上下文自动摘要)、`GOOSE_MAX_TURNS`、`GOOSE_DISABLE_SESSION_NAMING=true`。
153
- - 工具:aw 桥经 `--with-extension "<node> <bridge>"` 临时挂载(身份 env 随进程继承)。
154
- - 鉴权/provider:`OPENAI_API_KEY` + `GOOSE_PROVIDER` + `OPENAI_HOST`(带 scheme)/`OPENAI_BASE_PATH` 拼接(OpenAI 兼容网关实测可用)。
155
-
156
- ### qwen
157
- - 协议:`qwen --experimental-acp`——内嵌**最老版 Zed ACP**(camelCase 方法名、无 sessionId、单隐式会话):`initialize / sendUserMessage{content[]} / cancelSendMessage`;`streamAssistantMessageChunk` 增量、`requestToolCallConfirmation` → HITL(`qwen-permission`)。`sendUserMessage` 的 JSON-RPC 响应在回合终点返回(与 dsh 单飞同型)。
158
- - 工具:`~/.qwen/settings.json` merge-only 写 `mcpServers.aw`(trust=true)。
159
- - 鉴权/provider:`selectedAuthType=openai` + `OPENAI_API_KEY / OPENAI_BASE_URL` 网关;**模型经 `OPENAI_MODEL` env**(acp 路径 `-m` 不生效)。教训:同族引擎(gemini fork)也要逐项探针,不能假设协议一致。
160
-
161
- ### pi
162
- - 进程:每回合 `pi -p --mode json`;**promptDelivery='argFile'**——prompt 写临时文件后以 `@<path>` 位置参数投递,规避 Windows cmd ~8K 命令行上限。
163
- - 工具:pi 无内建 MCP → 零依赖扩展 `pi-aw-tools.mjs` 经 `-e` 加载;工具清单由回合前置钩子从 hostToolsForRole 写临时文件(`AW_PI_TOOLS_FILE` env 指路);工具 execute 走平台 HTTP 回程(身份 env 由 pi 进程继承到扩展)。**MCP 之外的第三种工具注入形态:引擎原生扩展机制。**
164
- - 鉴权/provider:`--provider/--model` + `~/.pi/agent/models.json` 自定义 provider(anthropic-messages 网关实测可用);`config.apiKey → --api-key` 透传。
165
-
166
- ### hermes
167
- - 协议:`hermes acp` 标准 ACP v1,与 dsh 同型实现(session/new + session/prompt 单飞)。
168
- - 审批:`session/request_permission` → HITL(`hermes-permission`,fail-closed)。
169
- - 工具:hermes 自身 MCP 体系(`hermes mcp add aw ...` 用户级配置一次)。
170
- - 鉴权/provider:模型面来自 hermes 自身 config.yaml(`hermes model` 交互配置);`config.apiKey → GLM_API_KEY` env(zai provider 接 GLM)、`config.provider/model → HERMES_PROVIDER/HERMES_MODEL` env。
171
-
172
- ### mock
173
- - 进程内剧本引擎:无 LLM、恒可用(`probe: {inprocess:true}`)、steer=true 其余能力按需。用途:联调/CI/e2e 在无任何外部 CLI 与凭据的机器上全链路跑通平台语义。**移植时强烈建议先做 mock 再接真引擎。**
174
-
175
- ---
176
-
177
- ## 4. 能力矩阵(注册表 capabilities 实际声明值)
178
-
179
- | 引擎 | steer 同轮 | supervise 调度 | hitl 审批 | terminal | contextStats | compact |
180
- |---|---|---|---|---|---|---|
181
- | mock | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
182
- | omp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
183
- | opencode | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
184
- | codex | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
185
- | dsh | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
186
- | claude | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
187
- | gemini | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
188
- | copilot | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
189
- | cursor | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
190
- | crush | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
191
- | goose | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
192
- | qwen | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
193
- | pi | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
194
- | hermes | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
195
-
196
- - `supervise`(lead 调度回合)是平台侧 prompt 驱动的,所有引擎都能做——所以全 ✅;它不属于引擎原生能力。
197
- - **无 HITL 引擎的安全姿态**(重要设计):AW 桥工具是平台可信面、显式白名单放行;引擎 native 写/执行工具保持各引擎**最保守档**(gemini `--approval-mode default`、copilot 仅 `--allow-tool aw`、cursor 默认无 `--force`、goose headless fail-safe)。高危操作在这些引擎上**默认不发生**,而不是静默放行。
198
-
199
- ---
200
-
201
- ## 5. 新增一个引擎的接入清单(Step-by-step)
202
-
203
- 1. **调研探针先行**:写一次性探针脚本(spawn → 首个结构化事件 → 退出码语义),确认:无头参数、JSONL 帧形、会话延续标志、MCP 配置定位、鉴权 env 面、provider 网关面、审批事件存在性。**产出差异表后再写 impl**(勿信文档,文档会回归——crush 删 JSON 格式是实例)。
204
- 2. **注册表条目**:`HARNESS_REGISTRY` 加一项——id/label/description/homepage/**capabilities(如实初稿,探针后修正)**/`create`(工厂:new Impl({...config, agentId, name, role, channelId, token}))/**probe**(进程内引擎 `{inprocess:true}`;进程型 `{command: c => 覆盖链}`,与真实 spawn 同源)。
205
- 3. **选择基座**:常驻会话型 → 继承 `BaseAgentImpl`,实现 `workerTurn/peerTurn/collectTurnEvents`(+ steer/getContextStats/respondHitl 按能力覆盖);一次性 CLI 型 → 在 `OneShotCliAgentImpl` 上写一份 `OneShotEngineSpec`(resolveCommand/buildArgs/promptDelivery/engineEnv/mapLine/prepare/…),通常 80~250 行。
206
- ⚠️ 基类构造参数必须显式 `super(config, spec)` 透传(空子类隐式构造器会丢 spec → 静默失败)。
207
- 4. **工具注入**:优先 stdio MCP 桥(merge-only 写引擎配置 or `--mcp-config` 旗标 or 运行时注册 API);引擎无 MCP → 仿 pi 用引擎原生扩展机制;SDK 型 → SDK MCP server。**身份 env(AW_AGENT_ID/AW_AGENT_TOKEN/AW_BASE_URL)必须注入引擎进程**,让桥子进程继承。
208
- 5. **审批接入**(若有):引擎审批请求 → hitl-registry 注册(新增 kind 进枚举)→ 实现 `respondHitl`(outcome 映射回引擎协议;超时/取消 fail-closed)。
209
- 6. **平台面派生项**:运行时设置加 `harness.<id>_command`(命令覆盖链最后一环);模型目录(静态表 or 引擎子进程发现);i18n 词条(引擎名/未安装态,双语);文档页(安装/鉴权/能力矩阵/已知限制四节)。
210
- 7. **测试验收**:
211
- - 单测:假 CLI(node -e 输出预制 JSONL)断言事件映射/退出码→错误事件/abort 杀树/会话 id 捕获/resume 参数/HITL 超时 deny;
212
- - 引擎 e2e 双场景:A=工具闭环(引擎经桥调 report_progress→complete_task→落库);B=HITL(注册→铃标→respond→回合继续至 done);真实子进程+真实 LLM,**凭据缺失自动 SKIP(有因跳过≠失败)**;
213
- - 可用性三态断言(未知 400 / 未装 409 / 装了 resolvedPath);
214
- - 前端:下拉出现新引擎、未安装灰化、设置页命令项探测联动;
215
- - 回归门:既有引擎 e2e + runtime/liveness 单测全绿。
216
-
217
- ---
218
-
219
- ## 6. 工程纪律与已知坑(移植时省命)
220
-
221
- - **Windows**:npm 全局 CLI 是 `.cmd` shim,CreateProcess 不能直启 → 固定 `cmd.exe /d /s /c` 包装 + 逐参数严格校验(拒绝引号/控制字符),参数面保持结构化。包装器必须是字面量,绝不由环境变量决定。npm shim 本身可能损坏(crush 实例)→ 命令设置可指向包内真实 bin。
222
- - **命令行长度**:Windows cmd ~8K 上限 → 长 prompt 用 stdin 投递(默认)或 argFile(`@file`,pi 模式)。
223
- - **stdin EOF**:`promptDelivery=arg` 时基座仍须关闭 stdin,否则等 stdin 的引擎挂起(crush 实例)。
224
- - **同族≠同协议**:gemini/qwen 同 fork 但事件协议完全不同(stream-json vs 旧版 zed ACP);每个引擎独立探针。
225
- - **配置文件写入一律 merge-only**:只增不改,用户已有配置解析失败时**保留原文件不动**并告警;凭据永远走 env 引用不落盘。
226
- - **多 Agent 并发**:环境变量携带身份使引擎配置可全局共享;per-agent 会话隔离各用引擎机制(goose `--name`、copilot `COPILOT_HOME`、codex `CODEX_HOME`、dsh/omp 进程独占);同一 Agent 同时只允许一个回合(回合互斥位)。
227
- - **进程治理**:所有子进程登记注册表;abort = 杀进程树(win32 `taskkill /T /F`);OS 存活周期校准(休眠/强杀后 exit 事件可能不达父进程)。
228
- - **schema 漂移防护**:解析器对未知事件/未知 type **忽略并计数上报**(不崩);错误消息附 stderr 尾部;引擎版本 pin 建议。
229
- - **不许静默**:能力缺失有显式降级语义;执行前强校验给「人话」报错;错误即事件。
230
-
231
- ---
232
-
233
- ## 7. 本仓库对应文件索引(供交叉查阅)
234
-
235
- | 职责 | 文件 |
236
- |---|---|
237
- | 注册表 + capabilities | `server/services/workshop/agents/registry.ts` |
238
- | 统一契约 | `server/services/workshop/agents/agent-interface.ts` |
239
- | 平台语义基类 | `server/services/workshop/agents/base-agent.ts` |
240
- | 一次性 CLI 基座 | `server/services/workshop/agents/adapters/one-shot-cli-agent.ts` |
241
- | 受控 spawn | `server/services/workshop/agents/adapters/line-spawn.ts` |
242
- | JSON-RPC 基座 | `server/services/workshop/agents/adapters/stdio-jsonrpc.ts` |
243
- | 各引擎 impl | 同目录 `{omp,codex,dsh,opencode,claude,gemini,qwen,copilot,cursor,crush,goose,pi,hermes,mock}-agent.ts` |
244
- | MCP 回程桥 | `server/harness/aw-mcp-bridge.mjs`(零依赖)· pi 扩展 `server/harness/pi-aw-tools.mjs` |
245
- | 工具分发/权限/审批 | `host-tool-bridge.ts` · `tool-approvals.ts` · `hitl-registry.ts` |
246
- | 环境注入/进程治理/探测/模型目录 | `harness-env.ts` · `harness-process.ts` · `harness-availability.ts` · `harness-models.ts` |
247
- | prompt 组装 | `prompt-builder.ts` |
248
- | e2e | `scripts/e2e-multi-harness.ts [engine]`(双场景,401 自动 SKIP) |
1
+ # 多 Harness 适配架构指南(可移植版)
2
+
3
+ > 生成日期:2026-09-10 · 基准版本:AgentWorkShop 0.7.27(14 引擎全绿)
4
+ > 用途:供其他项目参照本文档实现「多 Agent Harness(执行引擎)适配」。只讲**架构思想**与**每个引擎的库依赖/集成方式**,不绑定本仓库业务。
5
+
6
+ ---
7
+
8
+ ## 0. 问题域与总原则
9
+
10
+ **问题域**:平台要把 N 个异构 AI Agent 执行引擎(CLI 工具 / SDK)当作可互换的「Agent 大脑」:同一套上层编排(任务分发、消息、调度、审批、记忆)驱动任意引擎,新增引擎时上层与前端零改动。
11
+
12
+ **七条核心原则**(全部是本系统实战沉淀,移植时建议原样保留):
13
+
14
+ 1. **单一契约**:所有引擎实现同一个接口 `AgentInterface`(run/supervise/steer/HITL/进程治理等)。上层(runtime/scheduler/API/前端)只依赖契约,永远不出现 `if (harness === 'codex')`。
15
+ 2. **单一事实源注册表**:一个 `HARNESS_REGISTRY` 常量表声明每个引擎的 id/label/描述/主页/**能力面**/工厂函数/**可用性探测声明**。前端下拉、可用性面板、执行前校验、模型目录全部从此派生,禁止第七处硬编码白名单。新增引擎 = 注册表加一项 + 实现一个类。
16
+ 3. **两种进程模型,两个基座**:
17
+ - **常驻会话型**(omp/codex/dsh/opencode/qwen/hermes/claude):每 Agent 一个长活子进程(或进程内 SDK 会话),lazy 启动、跨消息复用、dispose 时销毁;
18
+ - **一次性回合型**(gemini/copilot/cursor/crush/goose/pi):每回合 spawn 一个子进程,进程退出即回合结束,会话延续靠引擎自身的 session id + resume 参数。
19
+ 两个模型各有共享基类(`BaseAgentImpl` → 协议无关平台语义;`OneShotCliAgentImpl` → 一次性 CLI 家族),引擎差异全部收敛为子类/引擎 spec 的一张「映射表」。
20
+ 4. **能力如实声明,降级策略显式化**:注册表 `capabilities` 六元组(steer 同轮注入 / supervise lead 调度 / hitl 程序化审批 / terminal 终端镜像 / contextStats 上下文统计 / compact 主动压缩)必须反映引擎真实能力,**不虚报**。引擎不支持的,必须有明确的降级语义(如 steer 恒 `'deferred'` 走信箱;无 HITL 的走预授权白名单),不允许静默缺失。
21
+ 5. **工具注入统一化 + 环境变量携带身份**:平台侧的全部协作工具(任务/消息/记忆)与业务工具,通过统一的 host-tool 分发桥暴露给引擎。CLI 引擎的注入主路径是 **stdio MCP server 桥**:桥脚本被引擎当作本地 MCP server 拉起,工具调用经 HTTP 回程落到平台 API(agent token 鉴权)。关键设计:`AW_BASE_URL / AW_AGENT_ID / AW_AGENT_TOKEN` 注入**引擎进程的环境变量**,引擎拉起的 MCP 子进程自动继承 → **配置文件可全局共享,无需每 Agent 一份 HOME**。
22
+ 6. **错误即事件 / steer 诚实语义**:spawn 失败、非 0 退出、超时、协议错误都必须产出 `{kind:'error'}` 事件(错误码形如 `CODEX_EXIT_1` + stderr 尾部),绝不静默吞掉。`steer()` 只有真的注入了流式会话才返回 `'steer'`,否则返回 `'deferred'`(消息保持 pending,下一回合携带),保证消息不丢。
23
+ 7. **探测与拉起同源**:「引擎是否可用」的 PATH 探测和「真实 spawn」走同一个命令解析函数;执行前在所有入口(模板增改/克隆/实例换引擎/任务直发/lead 派发等,本系统共七处)统一强校验,未知引擎 400、未安装 409,任务不进「起跑后失败」路径。
24
+
25
+ ---
26
+
27
+ ## 1. 分层架构与模块地图
28
+
29
+ ```
30
+ 上层(harness 无关)
31
+ runtime(每 Agent 生命周期) · scheduler(lead 调度循环) · HITL API · 前端下拉/徽标
32
+ │ 只依赖
33
+ AgentInterface(统一契约)
34
+ │ 由
35
+ HARNESS_REGISTRY(单一事实源:capabilities/probe/create)
36
+ │ 装配
37
+ ┌──────────────────────────────┴───────────────────────────────┐
38
+ │ BaseAgentImpl(平台语义基类) │
39
+ │ · run() 消息分流:metadata['x-aw-task-kind']='assign'→workerTurn│
40
+ │ 否则有来源→peerTurn │
41
+ │ · supervise() 模板方法:快照→prompt→collectTurnEvents→JSON 解析 │
42
+ │ · contextPrefix(场景×身份×手册×名册)/ dispatchHostTool 直调面 │
43
+ └──────────────┬───────────────────────────────┬───────────────┘
44
+ │ │
45
+ 常驻会话型子类 OneShotCliAgentImpl(一次性 CLI 基座)
46
+ omp(RPC) codex(JSON-RPC) 引擎差异=一份 OneShotEngineSpec:
47
+ dsh/hermes(ACP) opencode(HTTP/SSE) resolveCommand/buildArgs/promptDelivery
48
+ qwen(旧版ACP) claude(SDK进程内) /engineEnv/mapLine/prepare/plainTextStdout…
49
+
50
+ ── 共享基础设施(全部引擎复用)──
51
+ line-spawn 受控子进程拉起:拒绝 shell 元字符;Windows .cmd shim 走
52
+ 字面量 'cmd.exe /d /s /c' 包装+逐参数校验;PATH+PATHEXT 解析
53
+ stdio-jsonrpc NDJSON JSON-RPC 2.0 客户端(响应/通知/服务端请求三分)
54
+ harness-process 子进程登记/强杀(win32 taskkill /T /F)/OS 存活校准
55
+ harness-env MCP 桥环境计算:AW_BASE_URL/AW_AGENT_ID/AW_AGENT_TOKEN
56
+ aw-mcp-bridge.mjs 零依赖 stdio MCP server → HTTP 回程(agent token 鉴权)
57
+ host-tool-bridge 全引擎唯一工具分发入口(协作工具族按角色过滤+插件工具)
58
+ prompt-builder 共享 prompt 组装(worker/peer/supervise/系统手册/JSON 提取)
59
+ hitl-registry HITL 中枢(globalThis 单例;kind 枚举=各引擎审批请求类型)
60
+ harness-availability 可用性探测(与拉起同源;30s 缓存;assertHarnessUsable)
61
+ harness-models 各引擎 provider/model 目录发现(5min 缓存)
62
+ ```
63
+
64
+ **host tools 工具面**(MCP 桥暴露给引擎的内容):AgentWorkspace 协作方法族(任务分发/上报/完成、信箱收发、记忆检索/沉淀、名册/队列观察、成员管理等 ~25 个)+ 业务/工业工具族 + 插件注册工具,按角色(lead/worker)过滤。引擎用原生工具调用方式消费,**平台不做任何文本解析**。
65
+
66
+ **HITL 链路**(引擎审批请求 → 人 → 回答):引擎侧审批请求(如 codex `requestApproval`、dsh/hermes `session/request_permission`、claude `canUseTool`、qwen `requestToolCallConfirmation`)→ 登记 hitl-registry(kind 枚举:`codex-approval / opencode-permission / dsh-permission / claude-permission / qwen-permission / hermes-permission / omp-dialog / dcw-approval`)→ 前端铃标 → 人经 API 应答 → respondHitl 传导回引擎 → 回合继续。**超时/取消一律 fail-closed(拒绝)**。
67
+
68
+ ---
69
+
70
+ ## 2. 十四个引擎一览
71
+
72
+ | id | 引擎 | 官方文档 | 集成面 | 进程模型 | 库依赖 |
73
+ |---|---|---|---|---|---|
74
+ | mock | 进程内模拟引擎 | —(内部) | 剧本驱动,无 LLM,联调/CI 用 | 进程内 | 无 |
75
+ | omp | oh-my-pi | https://github.com/acidsugarx/oh-my-pi | `omp --mode rpc` 自定义 RPC 协议 | 常驻子进程 | 全局 CLI `omp` |
76
+ | opencode | OpenCode | https://opencode.ai (server:https://opencode.ai/docs/server ) | `opencode serve --port` + HTTP API + 全局 SSE `/event` | 常驻子进程 | 全局 CLI `opencode` |
77
+ | codex | OpenAI Codex CLI | https://github.com/openai/codex (app-server 协议:`codex-rs/app-server/README.md`) | `codex app-server` NDJSON JSON-RPC v2(thread/start + turn/start) | 常驻子进程 | 全局 CLI `codex` |
78
+ | dsh | DeepSeek Harness | https://github.com/deepseek-ai/DeepSeek-Harness (ACP:`packages/acp/acp/README.md`) | `dsh --profile acp` 标准 ACP v1(session/new + session/prompt 单飞) | 常驻子进程 | 全局 CLI `dsh` |
79
+ | claude | Claude Agent SDK | https://code.claude.com/docs/en/agent-sdk/typescript | 进程内 SDK:`query()` + AsyncIterable 流式输入 | **进程内 SDK**(SDK 自管 claude 二进制) | **npm:`@anthropic-ai/claude-agent-sdk`**(动态 import,缺失时报 HARNESS_NOT_CONFIGURED 而非崩溃) |
80
+ | gemini | Gemini CLI | https://github.com/google-gemini/gemini-cli (headless:`docs/cli/headless.md`) | `gemini -p --output-format stream-json`(JSONL 帧 init/message/tool_use/result) | 一次性回合 | 全局 CLI `gemini` |
81
+ | copilot | GitHub Copilot CLI | https://docs.github.com/en/copilot/how-tos/copilot-cli (编程式:`automate-copilot-cli/run-cli-programmatically`) | `copilot -p --output-format json`(JSONL) | 一次性回合 | 全局 CLI `copilot` |
82
+ | cursor | Cursor CLI | https://cursor.com/docs/cli/headless | `cursor-agent -p --output-format stream-json --stream-partial-output`(帧与 Claude Code 同构) | 一次性回合 | 原生 CLI `cursor-agent` |
83
+ | crush | Charm Crush | https://github.com/charmbracelet/crush | `crush run -q`(v0.92 起无 JSON 格式 → 纯文本 stdout 一次性) | 一次性回合 | CLI `crush`(npm shim 可能损坏,可指包内 bin 直启) |
84
+ | goose | Block Goose | https://blockgoose.io (源码:https://github.com/aaif-goose/goose ,headless 教程在仓库 docs) | `goose run -t --output-format stream-json --name aw-<agentId> [--resume]` | 一次性回合 | 原生 CLI `goose` |
85
+ | qwen | Qwen Code | https://github.com/QwenLM/qwen-code (docs:https://qwenlm-qwen-code.mintlify.app/cli/overview ) | `qwen --experimental-acp`(**旧版 Zed ACP**:camelCase 方法、无 sessionId、单隐式会话) | 常驻子进程 | 全局 CLI `qwen` |
86
+ | pi | pi coding agent | https://github.com/badlogic/pi-mono | `pi -p --mode json`(JSONL:session/message_end/message_update/turn_end);prompt 经 **@临时文件** 投递(绕 Windows ~8K 命令行上限) | 一次性回合 | CLI `pi`(@mariozechner/pi-coding-agent) |
87
+ | hermes | Hermes Agent | https://github.com/NousResearch/hermes-agent | `hermes acp` 标准 ACP v1(与 dsh 同型,方法名集中一处便于版本漂移修改) | 常驻子进程 | CLI `hermes` |
88
+
89
+ 通用协议参考:**MCP** https://modelcontextprotocol.io · **ACP(Agent Client Protocol)** https://agentclientprotocol.com
90
+
91
+ > 选型口径(可复用):候选引擎必须满足「无头模式 + 结构化输出(JSON 事件流)+ MCP 客户端」三要素;能力覆盖密度(七能力面占几项)≥ 5/7 才值得接入。无结构化输出的引擎(如 Amazon Q CLI)宁可进观察名单也不做纯文本抓取——违背「错误即事件/usage 透出」底线。
92
+
93
+ ---
94
+
95
+ ## 3. 每引擎集成卡片(鉴权 · 工具注入 · 审批 · steer)
96
+
97
+ ### omp(默认推荐引擎)
98
+ - 协议:omp 自有 RPC(`--mode rpc`),每 Agent 一个子进程 lazy 启动;事件 `AgentSessionEvent → AgentEvent` 映射。
99
+ - 工具:平台工具经 `set_host_tools` **进程内直调**(不回程),是最早的直连模型。
100
+ - 审批:extension_ui 对话框 → HITL;steer:✅ 原生同轮注入;上下文:被动跟踪 + 平台 70% 阈值主动压缩(引擎原生 auto-compaction 摘要经 harvest 桥落库)。
101
+ - 鉴权:`omp models` 提供 provider 分组目录;自定义网关可用。
102
+
103
+ ### codex
104
+ - 协议:`codex app-server`(stdio NDJSON JSON-RPC v2)。`thread/start` 建会话、`turn/start` 驱动回合、`turn/steer` 同轮注入、`thread/compact/start` 主动压缩、`model/list` 拉模型目录。
105
+ - 工具:impl 装配 `config.toml` 的 `[mcp_servers.aw]` 指向 stdio 桥。
106
+ - 审批:`item/commandExecution|fileChange` 的 `requestApproval`(服务端→客户端请求)→ HITL(decision: accept/decline/cancel);审批策略 `approvalPolicy: untrusted|on-request|never`,默认 on-request。
107
+ - 鉴权/provider:config.toml 网关配置;`CODEX_HOME` 环境变量可隔离配置目录。
108
+
109
+ ### dsh
110
+ - 协议:标准 ACP v1(JSON-RPC over stdio):`initialize / session/new / session/prompt / session/cancel`;`session/prompt` 单飞(响应在回合终点返回 stopReason)。方法名集中在一个常量表,pre-1.0 协议漂移时只改一处。
111
+ - 工具:`session/new` 的 `mcpServers` 参数挂 stdio 桥(引擎给工具加 `mcp__aw__` 前缀)。
112
+ - 审批:`session/request_permission` → HITL(allow/reject/cancel,fail-closed);steer:❌ 恒 deferred。
113
+ - 鉴权/provider:`DEEPSEEK_BASE_URL` 等网关 env;模型目录=内置官方表 + 用户 settings.yaml 自定义网关轻解析。
114
+
115
+ ### opencode
116
+ - 协议:`opencode serve --port <空闲>` 子进程 + 官方 HTTP API(`prompt_async / abort / permissions / summarize`)+ 全局 SSE `/event`。port 用本地 net 探测空闲。
117
+ - 工具:运行时 `POST /mcp` 注册 stdio 桥。
118
+ - 审批:`permission.asked / question.asked` 事件 → HITL(once|always|reject);steer:✅ 回合运行中再投 prompt(引擎 queue admission),内容不丢。
119
+ - 上下文:`message.tokens` 被动跟踪,越阈值 `POST /session/{id}/summarize`;provider 目录走 `opencode models`(models.dev 生态,任意 OpenAI 兼容网关)。
120
+
121
+ ### claude(SDK 特例)
122
+ - 集成:npm 依赖 `@anthropic-ai/claude-agent-sdk`,**动态 import**(依赖缺失→回合报 HARNESS_NOT_CONFIGURED,注册表仍可列出)。每 Agent 一个常驻 SDK 会话,`query({ prompt: AsyncIterable, options })` 流式输入。
123
+ - steer:✅ 向流式生成器再 `yield` 一条 user 消息(七引擎中与 omp 并列的原生 steer)。
124
+ - 审批:`canUseTool(tool, input) => PermissionResult` → HITL(allow→`{behavior:'allow',updatedInput}`;deny→`{behavior:'deny',message}`);AW 桥工具经 `allowedTools: ['mcp__aw']` 预授权不走审批。
125
+ - 工具:`mcpServers.aw` = stdio 桥(工具清单动态 tools/list,插件热更自动传导);SDK 也支持进程内 SDK MCP server(`createSdkMcpServer`,零回程直调)作替代通道。
126
+ - 上下文:SDK 原生 auto-compact(观测 `compact_boundary`);usage 从 result(`total_cost_usd/usage/num_turns`)透出。
127
+ - 鉴权/provider:`config.apiKey → ANTHROPIC_AUTH_TOKEN`、`config.providerBaseUrl → ANTHROPIC_BASE_URL`(任意 Anthropic 兼容网关实测可用)。
128
+
129
+ ### gemini
130
+ - 进程:每回合 `gemini -p --output-format stream-json`;init 帧捕获 session_id → 下回合 `--resume <sid>`。
131
+ - 工具:**merge-only** 写 `<workspace>/.gemini/settings.json` 的 `mcpServers.aw`(trust=true,不动用户已有配置)+ `--allowed-mcp-server-names aw` 白名单;native 工具保持 `--approval-mode default`(无头下需确认的操作被引擎拒绝,fail-safe)。
132
+ - 坑:headless 需 `GEMINI_CLI_TRUST_WORKSPACE=true`;鉴权锁定 Google 面(GEMINI_API_KEY/OAuth),**无自定义网关 provider 面**。
133
+
134
+ ### copilot
135
+ - 进程:每回合 `copilot -p --output-format json`(prompt 经 stdin 管道)。
136
+ - 配置隔离:官方 `COPILOT_HOME` 指向 `.AgentWorkShop/harness-config/copilot/<agentId>/`(内种子 mcp-config.json 挂桥)——**唯一用官方 per-agent 目录隔离的引擎**。
137
+ - 授权:`--allow-tool aw` 白名单制(仅授权 AW 桥),native shell/write 默认不授权;`--no-ask-user` 默认开。
138
+ - 鉴权:token 链 `COPILOT_GITHUB_TOKEN > GH_TOKEN > GITHUB_TOKEN`(服务端可直接用 PAT);GitHub 账号锁定,无自定义网关。
139
+
140
+ ### cursor
141
+ - 进程:每回合 `cursor-agent -p --output-format stream-json --stream-partial-output`;帧与 Claude Code 同构(system/init、assistant、tool_call、result)。
142
+ - 安全档:**默认不带 `--force`** → 文件变更只提案不落地(与平台写控制哲学一致);per-agent 显式配置才放开。
143
+ - 工具:`--mcp-config` 指向共享 aw-mcp.json(无 agent 段:身份走 env 继承)。已知边界:print 模式 MCP 偶发不触发(版本相关)。鉴权 `CURSOR_API_KEY`,账号锁定。
144
+
145
+ ### crush
146
+ - 进程:每回合 `crush run`;**v0.92 移除了 `--format json`**(相对文档回归)→ 走基座 `plainTextStdout` 模式(stdout 纯文本按增量聚合)。
147
+ - 配置:`./.crushrc`(bash 方言)。文件缺失时整份生成(`mcp add aw` 桥 + `provider add zhipu --type openai-compat` + `model add`),**api_key 引用 `${AW_CRUSH_API_KEY}` 环境变量,凭据不落盘**;已有用户配置则不动。
148
+ - 鉴权:config.apiKey → 进程 env `AW_CRUSH_API_KEY`。run 模式无程序化审批。
149
+
150
+ ### goose
151
+ - 进程:每回合 `goose run --output-format stream-json -t <prompt> --name aw-<agentId> [--resume]`(prompt 必须 `-t`,位置参数被拒 exit 2)。
152
+ - 无头姿势 env:`GOOSE_MODE=auto`、`GOOSE_CONTEXT_STRATEGY=summarize`(引擎原生上下文自动摘要)、`GOOSE_MAX_TURNS`、`GOOSE_DISABLE_SESSION_NAMING=true`。
153
+ - 工具:aw 桥经 `--with-extension "<node> <bridge>"` 临时挂载(身份 env 随进程继承)。
154
+ - 鉴权/provider:`OPENAI_API_KEY` + `GOOSE_PROVIDER` + `OPENAI_HOST`(带 scheme)/`OPENAI_BASE_PATH` 拼接(OpenAI 兼容网关实测可用)。
155
+
156
+ ### qwen
157
+ - 协议:`qwen --experimental-acp`——内嵌**最老版 Zed ACP**(camelCase 方法名、无 sessionId、单隐式会话):`initialize / sendUserMessage{content[]} / cancelSendMessage`;`streamAssistantMessageChunk` 增量、`requestToolCallConfirmation` → HITL(`qwen-permission`)。`sendUserMessage` 的 JSON-RPC 响应在回合终点返回(与 dsh 单飞同型)。
158
+ - 工具:`~/.qwen/settings.json` merge-only 写 `mcpServers.aw`(trust=true)。
159
+ - 鉴权/provider:`selectedAuthType=openai` + `OPENAI_API_KEY / OPENAI_BASE_URL` 网关;**模型经 `OPENAI_MODEL` env**(acp 路径 `-m` 不生效)。教训:同族引擎(gemini fork)也要逐项探针,不能假设协议一致。
160
+
161
+ ### pi
162
+ - 进程:每回合 `pi -p --mode json`;**promptDelivery='argFile'**——prompt 写临时文件后以 `@<path>` 位置参数投递,规避 Windows cmd ~8K 命令行上限。
163
+ - 工具:pi 无内建 MCP → 零依赖扩展 `pi-aw-tools.mjs` 经 `-e` 加载;工具清单由回合前置钩子从 hostToolsForRole 写临时文件(`AW_PI_TOOLS_FILE` env 指路);工具 execute 走平台 HTTP 回程(身份 env 由 pi 进程继承到扩展)。**MCP 之外的第三种工具注入形态:引擎原生扩展机制。**
164
+ - 鉴权/provider:`--provider/--model` + `~/.pi/agent/models.json` 自定义 provider(anthropic-messages 网关实测可用);`config.apiKey → --api-key` 透传。
165
+
166
+ ### hermes
167
+ - 协议:`hermes acp` 标准 ACP v1,与 dsh 同型实现(session/new + session/prompt 单飞)。
168
+ - 审批:`session/request_permission` → HITL(`hermes-permission`,fail-closed)。
169
+ - 工具:hermes 自身 MCP 体系(`hermes mcp add aw ...` 用户级配置一次)。
170
+ - 鉴权/provider:模型面来自 hermes 自身 config.yaml(`hermes model` 交互配置);`config.apiKey → GLM_API_KEY` env(zai provider 接 GLM)、`config.provider/model → HERMES_PROVIDER/HERMES_MODEL` env。
171
+
172
+ ### mock
173
+ - 进程内剧本引擎:无 LLM、恒可用(`probe: {inprocess:true}`)、steer=true 其余能力按需。用途:联调/CI/e2e 在无任何外部 CLI 与凭据的机器上全链路跑通平台语义。**移植时强烈建议先做 mock 再接真引擎。**
174
+
175
+ ---
176
+
177
+ ## 4. 能力矩阵(注册表 capabilities 实际声明值)
178
+
179
+ | 引擎 | steer 同轮 | supervise 调度 | hitl 审批 | terminal | contextStats | compact |
180
+ |---|---|---|---|---|---|---|
181
+ | mock | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
182
+ | omp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
183
+ | opencode | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
184
+ | codex | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
185
+ | dsh | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
186
+ | claude | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
187
+ | gemini | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
188
+ | copilot | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
189
+ | cursor | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
190
+ | crush | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
191
+ | goose | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
192
+ | qwen | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
193
+ | pi | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ |
194
+ | hermes | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ |
195
+
196
+ - `supervise`(lead 调度回合)是平台侧 prompt 驱动的,所有引擎都能做——所以全 ✅;它不属于引擎原生能力。
197
+ - **无 HITL 引擎的安全姿态**(重要设计):AW 桥工具是平台可信面、显式白名单放行;引擎 native 写/执行工具保持各引擎**最保守档**(gemini `--approval-mode default`、copilot 仅 `--allow-tool aw`、cursor 默认无 `--force`、goose headless fail-safe)。高危操作在这些引擎上**默认不发生**,而不是静默放行。
198
+
199
+ ---
200
+
201
+ ## 5. 新增一个引擎的接入清单(Step-by-step)
202
+
203
+ 1. **调研探针先行**:写一次性探针脚本(spawn → 首个结构化事件 → 退出码语义),确认:无头参数、JSONL 帧形、会话延续标志、MCP 配置定位、鉴权 env 面、provider 网关面、审批事件存在性。**产出差异表后再写 impl**(勿信文档,文档会回归——crush 删 JSON 格式是实例)。
204
+ 2. **注册表条目**:`HARNESS_REGISTRY` 加一项——id/label/description/homepage/**capabilities(如实初稿,探针后修正)**/`create`(工厂:new Impl({...config, agentId, name, role, channelId, token}))/**probe**(进程内引擎 `{inprocess:true}`;进程型 `{command: c => 覆盖链}`,与真实 spawn 同源)。
205
+ 3. **选择基座**:常驻会话型 → 继承 `BaseAgentImpl`,实现 `workerTurn/peerTurn/collectTurnEvents`(+ steer/getContextStats/respondHitl 按能力覆盖);一次性 CLI 型 → 在 `OneShotCliAgentImpl` 上写一份 `OneShotEngineSpec`(resolveCommand/buildArgs/promptDelivery/engineEnv/mapLine/prepare/…),通常 80~250 行。
206
+ ⚠️ 基类构造参数必须显式 `super(config, spec)` 透传(空子类隐式构造器会丢 spec → 静默失败)。
207
+ 4. **工具注入**:优先 stdio MCP 桥(merge-only 写引擎配置 or `--mcp-config` 旗标 or 运行时注册 API);引擎无 MCP → 仿 pi 用引擎原生扩展机制;SDK 型 → SDK MCP server。**身份 env(AW_AGENT_ID/AW_AGENT_TOKEN/AW_BASE_URL)必须注入引擎进程**,让桥子进程继承。
208
+ 5. **审批接入**(若有):引擎审批请求 → hitl-registry 注册(新增 kind 进枚举)→ 实现 `respondHitl`(outcome 映射回引擎协议;超时/取消 fail-closed)。
209
+ 6. **平台面派生项**:运行时设置加 `harness.<id>_command`(命令覆盖链最后一环);模型目录(静态表 or 引擎子进程发现);i18n 词条(引擎名/未安装态,双语);文档页(安装/鉴权/能力矩阵/已知限制四节)。
210
+ 7. **测试验收**:
211
+ - 单测:假 CLI(node -e 输出预制 JSONL)断言事件映射/退出码→错误事件/abort 杀树/会话 id 捕获/resume 参数/HITL 超时 deny;
212
+ - 引擎 e2e 双场景:A=工具闭环(引擎经桥调 report_progress→complete_task→落库);B=HITL(注册→铃标→respond→回合继续至 done);真实子进程+真实 LLM,**凭据缺失自动 SKIP(有因跳过≠失败)**;
213
+ - 可用性三态断言(未知 400 / 未装 409 / 装了 resolvedPath);
214
+ - 前端:下拉出现新引擎、未安装灰化、设置页命令项探测联动;
215
+ - 回归门:既有引擎 e2e + runtime/liveness 单测全绿。
216
+
217
+ ---
218
+
219
+ ## 6. 工程纪律与已知坑(移植时省命)
220
+
221
+ - **Windows**:npm 全局 CLI 是 `.cmd` shim,CreateProcess 不能直启 → 固定 `cmd.exe /d /s /c` 包装 + 逐参数严格校验(拒绝引号/控制字符),参数面保持结构化。包装器必须是字面量,绝不由环境变量决定。npm shim 本身可能损坏(crush 实例)→ 命令设置可指向包内真实 bin。
222
+ - **命令行长度**:Windows cmd ~8K 上限 → 长 prompt 用 stdin 投递(默认)或 argFile(`@file`,pi 模式)。
223
+ - **stdin EOF**:`promptDelivery=arg` 时基座仍须关闭 stdin,否则等 stdin 的引擎挂起(crush 实例)。
224
+ - **同族≠同协议**:gemini/qwen 同 fork 但事件协议完全不同(stream-json vs 旧版 zed ACP);每个引擎独立探针。
225
+ - **配置文件写入一律 merge-only**:只增不改,用户已有配置解析失败时**保留原文件不动**并告警;凭据永远走 env 引用不落盘。
226
+ - **多 Agent 并发**:环境变量携带身份使引擎配置可全局共享;per-agent 会话隔离各用引擎机制(goose `--name`、copilot `COPILOT_HOME`、codex `CODEX_HOME`、dsh/omp 进程独占);同一 Agent 同时只允许一个回合(回合互斥位)。
227
+ - **进程治理**:所有子进程登记注册表;abort = 杀进程树(win32 `taskkill /T /F`);OS 存活周期校准(休眠/强杀后 exit 事件可能不达父进程)。
228
+ - **schema 漂移防护**:解析器对未知事件/未知 type **忽略并计数上报**(不崩);错误消息附 stderr 尾部;引擎版本 pin 建议。
229
+ - **不许静默**:能力缺失有显式降级语义;执行前强校验给「人话」报错;错误即事件。
230
+
231
+ ---
232
+
233
+ ## 7. 本仓库对应文件索引(供交叉查阅)
234
+
235
+ | 职责 | 文件 |
236
+ |---|---|
237
+ | 注册表 + capabilities | `server/services/workshop/agents/registry.ts` |
238
+ | 统一契约 | `server/services/workshop/agents/agent-interface.ts` |
239
+ | 平台语义基类 | `server/services/workshop/agents/base-agent.ts` |
240
+ | 一次性 CLI 基座 | `server/services/workshop/agents/adapters/one-shot-cli-agent.ts` |
241
+ | 受控 spawn | `server/services/workshop/agents/adapters/line-spawn.ts` |
242
+ | JSON-RPC 基座 | `server/services/workshop/agents/adapters/stdio-jsonrpc.ts` |
243
+ | 各引擎 impl | 同目录 `{omp,codex,dsh,opencode,claude,gemini,qwen,copilot,cursor,crush,goose,pi,hermes,mock}-agent.ts` |
244
+ | MCP 回程桥 | `server/harness/aw-mcp-bridge.mjs`(零依赖)· pi 扩展 `server/harness/pi-aw-tools.mjs` |
245
+ | 工具分发/权限/审批 | `host-tool-bridge.ts` · `tool-approvals.ts` · `hitl-registry.ts` |
246
+ | 环境注入/进程治理/探测/模型目录 | `harness-env.ts` · `harness-process.ts` · `harness-availability.ts` · `harness-models.ts` |
247
+ | prompt 组装 | `prompt-builder.ts` |
248
+ | e2e | `scripts/e2e-multi-harness.ts [engine]`(双场景,401 自动 SKIP) |
@@ -9,7 +9,7 @@
9
9
  >
10
10
  > Applies to: plugin system v2 has been available since **v0.7.29** (frontend component
11
11
  > injection / plugin settings / plugin i18n / runtime services surface); this document
12
- > describes **v0.8.2**. `ctx.sdkVersion` is currently `0.3.0`.
12
+ > describes **v0.8.3**. `ctx.sdkVersion` is currently `0.3.0`.
13
13
 
14
14
  ## 1. Folder layout & quick start
15
15
 
package/docs/plugins.md CHANGED
@@ -6,7 +6,7 @@
6
6
  > 本文是唯一权威参考;`docs/site/plugins/` 的分页文档与本文同源。
7
7
  >
8
8
  > 适用版本:插件系统 v2 自 **v0.7.29** 起可用(前端组件注入 / 插件设置 / 插件 i18n /
9
- > 运行时服务面);本文档对应当前版本 **v0.8.2**。`ctx.sdkVersion` 当前为 `0.3.0`。
9
+ > 运行时服务面);本文档对应当前版本 **v0.8.3**。`ctx.sdkVersion` 当前为 `0.3.0`。
10
10
 
11
11
  ## 一、目录结构与快速开始
12
12
 
package/docs/sdk.en.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  **SDK version constants**: server-side `SDK_VERSION = '0.3.0'`, browser-side `CLIENT_SDK_VERSION = '0.3.0'`.
9
9
  These two constants are the **interface version of the SDK itself** and evolve **independently**
10
- from the npm package version (the `version` field in `package.json`, currently 0.8.2) —
10
+ from the npm package version (the `version` field in `package.json`, currently 0.8.3) —
11
11
  them being out of sync is expected. Never use `SDK_VERSION` to infer the package version, or the reverse.
12
12
  **Module format**: ESM only (only `import` / `export`; there is no CJS entry).
13
13
  **Types**: `sdk/index.d.mts` and `sdk/client.d.mts` ship with the package, so TypeScript projects
package/docs/sdk.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > 零第三方运行时依赖,Node ≥ 23.4 与现代浏览器双端可用。
6
6
 
7
7
  **SDK 版本常量**:服务端 `SDK_VERSION = '0.3.0'`,浏览器端 `CLIENT_SDK_VERSION = '0.3.0'`。
8
- 这两个常量是 **SDK 自身接口的版本号**,与 npm 包版本(`package.json` 的 `version`,当前 0.8.2)
8
+ 这两个常量是 **SDK 自身接口的版本号**,与 npm 包版本(`package.json` 的 `version`,当前 0.8.3)
9
9
  **各自独立演进** —— 常数不同步是预期行为,不要拿 `SDK_VERSION` 去推断包版本,反之亦然。
10
10
  **模块形态**:ESM only(只有 `import` / `export`,没有 CJS 入口)。
11
11
  **类型**:`sdk/index.d.mts`、`sdk/client.d.mts` 随包发布,TS 项目零配置获得提示(覆盖范围见 §7)。