agentworkshop 0.7.49 → 0.7.50

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 (883) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +409 -6
  2. package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  3. package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
  4. package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
  5. package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  6. package/.output/.AgentWorkShop/aml-python/aml_eval.py +39 -6
  7. package/.output/.AgentWorkShop/aml-python/amlkit.py +222 -3
  8. package/.output/.AgentWorkShop/aml-python/train-hybrid-example.py +278 -32
  9. package/.output/.AgentWorkShop/prompts/host-tools.json +409 -6
  10. package/.output/.AgentWorkShop/schema.json +135 -133
  11. package/.output/nitro.json +1 -1
  12. package/.output/public/_nuxt/2_DkYoqD2.js +1 -0
  13. package/.output/public/_nuxt/8FXd9As6.js +1 -0
  14. package/.output/public/_nuxt/{d-w5jR8R.js → B3zB6K6m.js} +1 -1
  15. package/.output/public/_nuxt/{OXtV_ukR.js → B4ujjkUI.js} +1 -1
  16. package/.output/public/_nuxt/B9BmiUil.js +2 -0
  17. package/.output/public/_nuxt/B9QzrmgE.js +1 -0
  18. package/.output/public/_nuxt/BE7BrEw6.js +1 -0
  19. package/.output/public/_nuxt/{Cu8c3oMN2.js → BFZIll912.js} +1 -1
  20. package/.output/public/_nuxt/{ChtjzEpK2.js → BGAaKBeo2.js} +1 -1
  21. package/.output/public/_nuxt/BOmDHp5L.js +14 -0
  22. package/.output/public/_nuxt/BPou3U7b.js +1 -0
  23. package/.output/public/_nuxt/{CiTQY_n32.js → BXx9AxdF2.js} +1 -1
  24. package/.output/public/_nuxt/Bfe2qOYs.js +1 -0
  25. package/.output/public/_nuxt/BgEDwFMf.js +1 -0
  26. package/.output/public/_nuxt/BgnhB8r5.js +1 -0
  27. package/.output/public/_nuxt/Bhe953zV2.js +1 -0
  28. package/.output/public/_nuxt/{BITZvQBK.js → Bpkm4W5P.js} +1 -1
  29. package/.output/public/_nuxt/C4lagVdN2.js +1 -0
  30. package/.output/public/_nuxt/C5cf3T4d.js +1 -0
  31. package/.output/public/_nuxt/CBIoheY42.js +1 -0
  32. package/.output/public/_nuxt/{CN1CDAwe.js → CFQSjB1h.js} +1 -1
  33. package/.output/public/_nuxt/CFQyYMEn2.js +1 -0
  34. package/.output/public/_nuxt/CHrErv1E.js +1 -0
  35. package/.output/public/_nuxt/{fxWyOzyp2.js → CI2yXRr42.js} +1 -1
  36. package/.output/public/_nuxt/CIduggmC.js +1 -0
  37. package/.output/public/_nuxt/CU-mhG0-.js +1 -0
  38. package/.output/public/_nuxt/CXzfXC5M.js +1 -0
  39. package/.output/public/_nuxt/{H6pPjo0l.js → C_sjV3Ee.js} +1 -1
  40. package/.output/public/_nuxt/Ccps4cxo.js +1 -0
  41. package/.output/public/_nuxt/{CPmNRTBk2.js → CdIsmU5a2.js} +10 -10
  42. package/.output/public/_nuxt/{BS9P_Ies2.js → ChGuLxwW2.js} +1 -1
  43. package/.output/public/_nuxt/{Ck5oMvUk.js → Cn6ihm8j.js} +1 -1
  44. package/.output/public/_nuxt/{CWzp2R6G.js → D-Xyb3DA.js} +1 -1
  45. package/.output/public/_nuxt/D0SNhlnt.js +1 -0
  46. package/.output/public/_nuxt/D0ldVwl-.js +1 -0
  47. package/.output/public/_nuxt/DClNt1uS.js +1 -0
  48. package/.output/public/_nuxt/{CTVfcnjU.js → DQMbdg4t.js} +2 -2
  49. package/.output/public/_nuxt/{DHSDk8Bq2.js → DTxfFIvL2.js} +1 -1
  50. package/.output/public/_nuxt/DVKXGuMz2.js +1 -0
  51. package/.output/public/_nuxt/{CLySL7mW.js → Da0h_6VA.js} +1 -1
  52. package/.output/public/_nuxt/{PixDfCSm.js → DefDtlKK.js} +1 -1
  53. package/.output/public/_nuxt/DjefmmJu.js +1 -0
  54. package/.output/public/_nuxt/DnH9SRMW2.js +1 -0
  55. package/.output/public/_nuxt/{BmiMC_BC.js → DppqsiPC.js} +1 -1
  56. package/.output/public/_nuxt/Drq9iy6V.js +1 -0
  57. package/.output/public/_nuxt/DsGf2IV82.js +1 -0
  58. package/.output/public/_nuxt/{DoKpLEqc.js → DzfVS8N72.js} +1 -1
  59. package/.output/public/_nuxt/{DRpFsrno.js → I1cI6sPJ2.js} +1 -1
  60. package/.output/public/_nuxt/IU-UGkCJ2.js +1 -0
  61. package/.output/public/_nuxt/KXjvpIk2.js +1 -0
  62. package/.output/public/_nuxt/NJn94js_.js +1 -0
  63. package/.output/public/_nuxt/ON2x-t6n.js +1 -0
  64. package/.output/public/_nuxt/S799kNo8.js +1 -0
  65. package/.output/public/_nuxt/{uI9Ki_XZ.js → S9rLP7_v.js} +1 -1
  66. package/.output/public/_nuxt/UN3nSFjj2.js +1 -0
  67. package/.output/public/_nuxt/WVTVkqef.js +1 -0
  68. package/.output/public/_nuxt/{C_VAXV7I2.js → Yv9YItEX2.js} +1 -1
  69. package/.output/public/_nuxt/_id_.DamiFT0Q.css +1 -0
  70. package/.output/public/_nuxt/{_id_.BTrFUIHX.css → _id_.DpRe1PRh.css} +1 -1
  71. package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +1 -0
  72. package/.output/public/_nuxt/aml.-czpKIs8.css +1 -0
  73. package/.output/public/_nuxt/asmJ99nX2.js +47 -0
  74. package/.output/public/_nuxt/builds/latest.json +1 -1
  75. package/.output/public/_nuxt/builds/meta/08ba670b-7512-426b-a0ae-b10cbeb1c985.json +1 -0
  76. package/.output/public/_nuxt/{default.uao9U50c.css → default.CXb_zoN6.css} +1 -1
  77. package/.output/public/_nuxt/{entry.6DEjPWvR.css → entry.JdEG3KJg.css} +1 -1
  78. package/.output/public/_nuxt/jRTz0hjN2.js +1 -0
  79. package/.output/public/_nuxt/{DLPuRMeG.js → k5K6Jj6g.js} +1 -1
  80. package/.output/public/_nuxt/operations.B8X9uWK6.css +1 -0
  81. package/.output/public/_nuxt/{settings.Bo5EYkLI.css → settings.O26Dw1iT.css} +1 -1
  82. package/.output/public/_nuxt/{BACBBVdw.js → tKxYgsf-.js} +1 -1
  83. package/.output/public/_nuxt/{Cm_PTn9t2.js → vXrNItas2.js} +1 -1
  84. package/.output/public/_nuxt/{Cr518Gh02.js → zsRclU9w2.js} +1 -1
  85. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  86. package/.output/server/chunks/_/SearchOutlined.mjs +1 -1
  87. package/.output/server/chunks/_/binding-authz.mjs +1 -1
  88. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  89. package/.output/server/chunks/_/entity.mjs +1 -1
  90. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  91. package/.output/server/chunks/_/nitro.mjs +26134 -21024
  92. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  93. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  94. package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +1 -1
  95. package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +1 -1
  96. package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs → OmpTerminalPanel-mk31gVzA.mjs} +3 -3
  97. package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs.map → OmpTerminalPanel-mk31gVzA.mjs.map} +1 -1
  98. package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs → PluginSlot-D2WUZgbp.mjs} +2 -2
  99. package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs.map → PluginSlot-D2WUZgbp.mjs.map} +1 -1
  100. package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs → TownView-fP9BiALv.mjs} +6 -6
  101. package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs.map → TownView-fP9BiALv.mjs.map} +1 -1
  102. package/.output/server/chunks/build/{_id_-DgMpjM3_.mjs → _id_-BUpQSlzo.mjs} +142 -106
  103. package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +1 -0
  104. package/.output/server/chunks/build/{_id_-Dv3BQbYV.mjs → _id_-CDlur81q.mjs} +25 -24
  105. package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +1 -0
  106. package/.output/server/chunks/build/{_wsId_-BKJvFmyf.mjs → _wsId_-DPy2BXRd.mjs} +547 -158
  107. package/.output/server/chunks/build/_wsId_-DPy2BXRd.mjs.map +1 -0
  108. package/.output/server/chunks/build/{agents-B2GLPmn2.mjs → agents-CDLcboCv.mjs} +12 -12
  109. package/.output/server/chunks/build/{agents-B2GLPmn2.mjs.map → agents-CDLcboCv.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{aml-DdWicH3t.mjs → aml-DsgtDLWF.mjs} +28 -27
  111. package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +1 -0
  112. package/.output/server/chunks/build/api-BY6ji7RC.mjs +6 -6
  113. package/.output/server/chunks/build/card-CUSocE9p.mjs +1 -1
  114. package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs → channel-templates-DjEsj0_v.mjs} +8 -8
  115. package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs.map → channel-templates-DjEsj0_v.mjs.map} +1 -1
  116. package/.output/server/chunks/build/checkbox-C4AKj81e.mjs +1 -1
  117. package/.output/server/chunks/build/constants-HPHJvjne.mjs +6 -6
  118. package/.output/server/chunks/build/{daq-CPtsh0e7.mjs → daq-N69AOtgw.mjs} +12 -11
  119. package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +1 -0
  120. package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs → dcw-CN9d3Rs7.mjs} +10 -10
  121. package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs.map → dcw-CN9d3Rs7.mjs.map} +1 -1
  122. package/.output/server/chunks/build/{default-DxOE1eB0.mjs → default-DCf9tn1i.mjs} +38 -30
  123. package/.output/server/chunks/build/{default-DxOE1eB0.mjs.map → default-DCf9tn1i.mjs.map} +1 -1
  124. package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs +1 -1
  125. package/.output/server/chunks/build/drawer-Cfh9_zft.mjs +1 -1
  126. package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs +1 -1
  127. package/.output/server/chunks/build/form-uSlNqIAV.mjs +1 -1
  128. package/.output/server/chunks/build/input-Cr_KFj4T.mjs +1 -1
  129. package/.output/server/chunks/build/input-number-BRVnxeiA.mjs +1 -1
  130. package/.output/server/chunks/build/{logs-CeaiO3y9.mjs → logs-BcAjU1Ps.mjs} +12 -11
  131. package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +1 -0
  132. package/.output/server/chunks/build/menu-BgkRSSx7.mjs +1 -1
  133. package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs → monitor-DX_K0WMq.mjs} +13 -13
  134. package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs.map → monitor-DX_K0WMq.mjs.map} +1 -1
  135. package/.output/server/chunks/build/operations-OFHYXwh4.mjs +282 -0
  136. package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +1 -0
  137. package/.output/server/chunks/build/{pages-Bn90ijKD.mjs → pages-rZKH72eC.mjs} +10 -11
  138. package/.output/server/chunks/build/pages-rZKH72eC.mjs.map +1 -0
  139. package/.output/server/chunks/build/{permissions-DL70W1YD.mjs → permissions-BvmodvsO.mjs} +8 -8
  140. package/.output/server/chunks/build/{permissions-DL70W1YD.mjs.map → permissions-BvmodvsO.mjs.map} +1 -1
  141. package/.output/server/chunks/build/{plugins-DrsZo--K.mjs → plugins-DSka7-vS.mjs} +9 -9
  142. package/.output/server/chunks/build/{plugins-DrsZo--K.mjs.map → plugins-DSka7-vS.mjs.map} +1 -1
  143. package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs +1 -1
  144. package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs → schedules-lo4bfgVt.mjs} +8 -8
  145. package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs.map → schedules-lo4bfgVt.mjs.map} +1 -1
  146. package/.output/server/chunks/build/segmented-C61yLHvo.mjs +1 -1
  147. package/.output/server/chunks/build/select-rdBWytVK.mjs +1 -1
  148. package/.output/server/chunks/build/{settings-DVAUVMsX.mjs → settings-CAJWvul5.mjs} +32 -13
  149. package/.output/server/chunks/build/settings-CAJWvul5.mjs.map +1 -0
  150. package/.output/server/chunks/build/space-B2uhHJG8.mjs +1 -1
  151. package/.output/server/chunks/build/spin-C2cuvGth.mjs +1 -1
  152. package/.output/server/chunks/build/switch-DZAUIbIN.mjs +1 -1
  153. package/.output/server/chunks/build/table-DOFAvY-v.mjs +1 -1
  154. package/.output/server/chunks/build/tabs-DTeIuZeP.mjs +1 -1
  155. package/.output/server/chunks/build/tag-CHLGvNM6.mjs +1 -1
  156. package/.output/server/chunks/build/{teams-Mc07PYO8.mjs → teams-DBBvIToa.mjs} +14 -14
  157. package/.output/server/chunks/build/{teams-Mc07PYO8.mjs.map → teams-DBBvIToa.mjs.map} +1 -1
  158. package/.output/server/chunks/build/{tokens-DiwD5qni.mjs → tokens-CloWk4x_.mjs} +12 -12
  159. package/.output/server/chunks/build/{tokens-DiwD5qni.mjs.map → tokens-CloWk4x_.mjs.map} +1 -1
  160. package/.output/server/chunks/build/{town-D8VmTCmN.mjs → town-BMlctE4m.mjs} +12 -12
  161. package/.output/server/chunks/build/{town-D8VmTCmN.mjs.map → town-BMlctE4m.mjs.map} +1 -1
  162. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  163. package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs → useAgentHarnessOptions-D6SJ_uUr.mjs} +7 -7
  164. package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs.map → useAgentHarnessOptions-D6SJ_uUr.mjs.map} +1 -1
  165. package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs → useAgentTemplateActions-CdG4g_PF.mjs} +7 -7
  166. package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs.map → useAgentTemplateActions-CdG4g_PF.mjs.map} +1 -1
  167. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +6 -6
  168. package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs → useAgentTemplateForm-a5y-N5sB.mjs} +7 -7
  169. package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs.map → useAgentTemplateForm-a5y-N5sB.mjs.map} +1 -1
  170. package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs → useAgentTemplatesCatalog-pBVcUuN3.mjs} +7 -7
  171. package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs.map → useAgentTemplatesCatalog-pBVcUuN3.mjs.map} +1 -1
  172. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs +6 -6
  173. package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs → useAmlEntities-BDQ8TmLL.mjs} +7 -7
  174. package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs.map → useAmlEntities-BDQ8TmLL.mjs.map} +1 -1
  175. package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs → useAmlEnv-DgTVwpqi.mjs} +7 -7
  176. package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs.map → useAmlEnv-DgTVwpqi.mjs.map} +1 -1
  177. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs +6 -6
  178. package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs → useAmlFormat-C2sl3MGB.mjs} +7 -7
  179. package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs.map → useAmlFormat-C2sl3MGB.mjs.map} +1 -1
  180. package/.output/server/chunks/build/{useAmlJobs-DBuLvWMF.mjs → useAmlJobs-fk-H5Rp5.mjs} +10 -9
  181. package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +1 -0
  182. package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs → useAmlModels-hgyVHoAq.mjs} +7 -7
  183. package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs.map → useAmlModels-hgyVHoAq.mjs.map} +1 -1
  184. package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs → useAmlNotes-BjbYNADm.mjs} +7 -7
  185. package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs.map → useAmlNotes-BjbYNADm.mjs.map} +1 -1
  186. package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs → useAmlPredict-U24-SZNA.mjs} +7 -7
  187. package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs.map → useAmlPredict-U24-SZNA.mjs.map} +1 -1
  188. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +7 -7
  189. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs +6 -6
  190. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs +6 -6
  191. package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs → useDaqDetailHistory-DtSTfyMi.mjs} +7 -7
  192. package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs.map → useDaqDetailHistory-DtSTfyMi.mjs.map} +1 -1
  193. package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs → useDaqDetailNode-D_vhG0jF.mjs} +8 -8
  194. package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs.map → useDaqDetailNode-D_vhG0jF.mjs.map} +1 -1
  195. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +7 -7
  196. package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs → useDaqFilters-BUQtZ82a.mjs} +8 -8
  197. package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs.map → useDaqFilters-BUQtZ82a.mjs.map} +1 -1
  198. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +6 -6
  199. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs +6 -6
  200. package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +1 -1
  201. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +7 -7
  202. package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs → useDashboardCharts-D45083s_.mjs} +7 -7
  203. package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs.map → useDashboardCharts-D45083s_.mjs.map} +1 -1
  204. package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs → useDashboardData-Do_Vsepa.mjs} +8 -8
  205. package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs.map → useDashboardData-Do_Vsepa.mjs.map} +1 -1
  206. package/.output/server/chunks/build/{useDcwAddNode-C8nE7geh.mjs → useDcwAddNode-C1HDP3yG.mjs} +12 -9
  207. package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +1 -0
  208. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs +6 -6
  209. package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs → useDcwDetailScope-QTr1G6Oe.mjs} +7 -7
  210. package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs.map → useDcwDetailScope-QTr1G6Oe.mjs.map} +1 -1
  211. package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs → useDcwDetailTemplates-Djt-0Vse.mjs} +7 -7
  212. package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs.map → useDcwDetailTemplates-Djt-0Vse.mjs.map} +1 -1
  213. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs +6 -6
  214. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs +6 -6
  215. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs +6 -6
  216. package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs → useDcwLineRun-74gN_s6T.mjs} +7 -7
  217. package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs.map → useDcwLineRun-74gN_s6T.mjs.map} +1 -1
  218. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs +6 -6
  219. package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs → useDcwQuery-7tX4QYmv.mjs} +7 -7
  220. package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs.map → useDcwQuery-7tX4QYmv.mjs.map} +1 -1
  221. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs +6 -6
  222. package/.output/server/chunks/build/{useDcwRecipes-BzGOymqz.mjs → useDcwRecipes-FVk5gDLV.mjs} +23 -15
  223. package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +1 -0
  224. package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +1 -1
  225. package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs → useDcwTemplates-LDZffy4u.mjs} +7 -7
  226. package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs.map → useDcwTemplates-LDZffy4u.mjs.map} +1 -1
  227. package/.output/server/chunks/build/{useDcwWrites-3RxwN36I.mjs → useDcwWrites-B22mwliK.mjs} +25 -8
  228. package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +1 -0
  229. package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs +49 -0
  230. package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs.map +1 -0
  231. package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs → useLogsFormat-B-o4MHy7.mjs} +7 -7
  232. package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs.map → useLogsFormat-B-o4MHy7.mjs.map} +1 -1
  233. package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs → useLogsManual-COfCyUtj.mjs} +7 -7
  234. package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs.map → useLogsManual-COfCyUtj.mjs.map} +1 -1
  235. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs +6 -6
  236. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs +6 -6
  237. package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs → useMonitorColumns-DhYvkLDq.mjs} +7 -7
  238. package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs.map → useMonitorColumns-DhYvkLDq.mjs.map} +1 -1
  239. package/.output/server/chunks/build/{useMonitorData-CEpKXoD4.mjs → useMonitorData-guVjMDtR.mjs} +9 -8
  240. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -0
  241. package/.output/server/chunks/build/{useMonitorFormat-_7zLapf3.mjs → useMonitorFormat-C7lhZe4g.mjs} +13 -12
  242. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -0
  243. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +6 -6
  244. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs +191 -0
  245. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +1 -0
  246. package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs → useTeamActions-C4n-taBk.mjs} +7 -7
  247. package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs.map → useTeamActions-C4n-taBk.mjs.map} +1 -1
  248. package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs → useTeamAddMemberDialog-Cp_z3nMa.mjs} +7 -7
  249. package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs.map → useTeamAddMemberDialog-Cp_z3nMa.mjs.map} +1 -1
  250. package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs → useTeamCreateDialog-C8LKUoe2.mjs} +7 -7
  251. package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs.map → useTeamCreateDialog-C8LKUoe2.mjs.map} +1 -1
  252. package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs → useTeamDeployDialog-wdBVsNWY.mjs} +7 -7
  253. package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs.map → useTeamDeployDialog-wdBVsNWY.mjs.map} +1 -1
  254. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +6 -6
  255. package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs → useTeamPluginDialog-CIk8G8nI.mjs} +7 -7
  256. package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs.map → useTeamPluginDialog-CIk8G8nI.mjs.map} +1 -1
  257. package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs → useTeamsCatalog-D6TULzmS.mjs} +7 -7
  258. package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs.map → useTeamsCatalog-D6TULzmS.mjs.map} +1 -1
  259. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +6 -6
  260. package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs → useTokenCreate-DkYvEQUD.mjs} +7 -7
  261. package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs.map → useTokenCreate-DkYvEQUD.mjs.map} +1 -1
  262. package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs → useTokenRename-DOCP4aeI.mjs} +7 -7
  263. package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs.map → useTokenRename-DOCP4aeI.mjs.map} +1 -1
  264. package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs → useTokenReveal-CybwwflV.mjs} +7 -7
  265. package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs.map → useTokenReveal-CybwwflV.mjs.map} +1 -1
  266. package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs → useTokensList-BLiMvrc4.mjs} +7 -7
  267. package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs.map → useTokensList-BLiMvrc4.mjs.map} +1 -1
  268. package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs → useWorkbenchAuth-DqjBX-6w.mjs} +7 -7
  269. package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs.map → useWorkbenchAuth-DqjBX-6w.mjs.map} +1 -1
  270. package/.output/server/chunks/build/{useWorkbenchWorkspaces-B_2mOxN6.mjs → useWorkbenchWorkspaces-DgiSCzsX.mjs} +10 -9
  271. package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +1 -0
  272. package/.output/server/chunks/build/{useWorkshopWs-B-Es2Xg3.mjs → useWorkshopWs-Bm80bLn7.mjs} +8 -7
  273. package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +1 -0
  274. package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs → useWorkspaceAuth-Dlvj9csD.mjs} +8 -8
  275. package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs.map → useWorkspaceAuth-Dlvj9csD.mjs.map} +1 -1
  276. package/.output/server/chunks/build/{useWorkspaceChannels-BwB6TAWY.mjs → useWorkspaceChannels-D61Al2dr.mjs} +11 -10
  277. package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +1 -0
  278. package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs → useWorkspacePanels-CTwREmq0.mjs} +8 -8
  279. package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs.map → useWorkspacePanels-CTwREmq0.mjs.map} +1 -1
  280. package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs → useWorkspaceShell-BCypjjjE.mjs} +7 -7
  281. package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs.map → useWorkspaceShell-BCypjjjE.mjs.map} +1 -1
  282. package/.output/server/chunks/build/{users-De2HygNt.mjs → users-CCf5PgRs.mjs} +8 -8
  283. package/.output/server/chunks/build/{users-De2HygNt.mjs.map → users-CCf5PgRs.mjs.map} +1 -1
  284. package/.output/server/chunks/build/{workshop-CmgpTwyf.mjs → workshop-FQ4YzooB.mjs} +13 -12
  285. package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +1 -0
  286. package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs → workspaces-CmW0cpOt.mjs} +1 -1
  287. package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs.map → workspaces-CmW0cpOt.mjs.map} +1 -1
  288. package/.output/server/chunks/routes/api/health.get.mjs +6 -6
  289. package/.output/server/chunks/routes/api/index.get.mjs +7 -7
  290. package/.output/server/chunks/routes/api/index.post.mjs +7 -7
  291. package/.output/server/chunks/routes/api/mcp/workshop.mjs +6 -6
  292. package/.output/server/chunks/routes/api/metrics.mjs +6 -6
  293. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +6 -6
  294. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +6 -6
  295. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +6 -6
  296. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +6 -6
  297. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +6 -6
  298. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +6 -6
  299. package/.output/server/chunks/routes/api/system/config.get.mjs +6 -6
  300. package/.output/server/chunks/routes/api/system/index.get.mjs +6 -6
  301. package/.output/server/chunks/routes/api/system/index.patch.mjs +6 -6
  302. package/.output/server/chunks/routes/api/system/index.post.mjs +6 -6
  303. package/.output/server/chunks/routes/api/system/index2.get.mjs +6 -6
  304. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +6 -6
  305. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +6 -6
  306. package/.output/server/chunks/routes/api/system/monitor.get.mjs +6 -6
  307. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +6 -6
  308. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +6 -6
  309. package/.output/server/chunks/routes/api/system/timezone.get.mjs +36 -0
  310. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -0
  311. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +7 -7
  312. package/.output/server/chunks/routes/api/users/_id_.get.mjs +7 -7
  313. package/.output/server/chunks/routes/api/users/_id_.put.mjs +7 -7
  314. package/.output/server/chunks/routes/api/users/index.get.mjs +7 -7
  315. package/.output/server/chunks/routes/api/users/index.post.mjs +7 -7
  316. package/.output/server/chunks/routes/api/users/login.post.mjs +7 -7
  317. package/.output/server/chunks/routes/api/users/logout.post.mjs +7 -7
  318. package/.output/server/chunks/routes/api/users/me.get.mjs +7 -7
  319. package/.output/server/chunks/routes/api/users/register.post.mjs +7 -7
  320. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +7 -7
  321. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +7 -7
  322. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +7 -7
  323. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +7 -7
  324. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +6 -6
  325. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +7 -7
  326. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +5 -5
  327. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +6 -6
  328. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +7 -7
  329. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +7 -7
  330. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +10 -7
  331. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +7 -7
  333. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +7 -7
  334. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +7 -7
  335. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +7 -7
  336. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +7 -7
  337. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +6 -6
  338. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +6 -6
  339. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +6 -6
  340. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +6 -6
  341. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +6 -6
  342. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +7 -7
  343. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +7 -7
  344. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +7 -7
  345. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +7 -7
  346. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +7 -8
  347. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +7 -8
  349. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +7 -8
  351. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +7 -7
  353. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +7 -7
  354. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +6 -6
  355. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +20 -7
  356. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +7 -8
  358. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +49 -0
  360. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -0
  361. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +7 -7
  362. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +7 -7
  363. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +7 -7
  364. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +28 -0
  365. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -0
  366. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +7 -7
  367. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +7 -7
  368. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +7 -7
  369. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +7 -7
  370. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +7 -7
  371. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +7 -7
  372. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +7 -7
  373. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +7 -7
  374. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +7 -7
  375. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +35 -0
  376. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -0
  377. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +35 -0
  378. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -0
  379. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +44 -0
  380. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -0
  381. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +46 -0
  382. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -0
  383. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +7 -7
  384. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +5 -5
  385. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +5 -5
  386. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +6 -6
  387. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +6 -6
  388. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +5 -5
  389. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +6 -6
  390. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +6 -6
  391. package/.output/server/chunks/routes/api/workshop/caller.mjs +7 -7
  392. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +16 -10
  393. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +6 -6
  395. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +6 -6
  396. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +6 -6
  397. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +6 -6
  398. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +7 -7
  399. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +6 -6
  400. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +6 -6
  401. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +6 -6
  402. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +6 -6
  403. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +6 -6
  404. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +6 -6
  405. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +6 -6
  406. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +6 -6
  407. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +6 -6
  408. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +6 -6
  409. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +6 -6
  410. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +6 -6
  411. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +6 -6
  412. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +6 -6
  413. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +6 -6
  414. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +6 -6
  415. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +6 -6
  416. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +7 -7
  417. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +6 -6
  418. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +6 -6
  419. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +6 -6
  420. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +6 -6
  421. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +6 -6
  422. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +6 -6
  423. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +7 -7
  424. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +6 -6
  425. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +6 -6
  426. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +6 -6
  427. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +6 -6
  428. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +6 -6
  429. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +6 -6
  430. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +6 -6
  431. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +7 -7
  432. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +51 -0
  433. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -0
  434. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +71 -0
  435. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -0
  436. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +6 -6
  437. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +7 -7
  438. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +6 -6
  439. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +6 -6
  440. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +9 -9
  441. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +7 -7
  442. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +7 -7
  443. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +7 -7
  444. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +7 -7
  445. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +7 -7
  446. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +7 -7
  447. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +7 -7
  448. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +7 -7
  449. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +7 -7
  450. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +7 -7
  451. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +7 -7
  452. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +7 -7
  453. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +7 -7
  454. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +7 -7
  455. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +7 -7
  456. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +7 -7
  457. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +7 -7
  458. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +7 -7
  459. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +7 -7
  460. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +7 -7
  461. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +7 -7
  462. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +7 -7
  463. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +7 -7
  464. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +7 -7
  465. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +7 -7
  466. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +7 -7
  467. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +7 -7
  468. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +7 -7
  469. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +7 -7
  470. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +7 -7
  471. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +7 -7
  472. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +7 -7
  473. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -7
  474. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +7 -7
  475. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +7 -7
  476. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +7 -7
  477. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +7 -7
  478. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +7 -7
  479. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +7 -7
  480. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +7 -7
  481. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +7 -7
  482. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +7 -7
  483. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +7 -7
  484. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +7 -7
  485. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +7 -7
  486. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +7 -7
  487. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +7 -7
  488. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +7 -7
  489. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +7 -7
  490. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +7 -7
  491. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +7 -7
  492. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +7 -7
  493. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +7 -7
  494. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +7 -7
  495. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +7 -7
  496. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +7 -7
  497. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +7 -7
  498. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -7
  499. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +7 -7
  500. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +7 -7
  501. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +7 -7
  502. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +7 -7
  503. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +7 -7
  504. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +7 -7
  505. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +7 -7
  506. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +7 -7
  507. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +7 -7
  508. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +7 -7
  509. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +7 -7
  510. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +7 -7
  511. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +5 -5
  512. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +7 -7
  513. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +7 -7
  514. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +7 -7
  515. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +7 -7
  516. package/.output/server/chunks/routes/api/workshop/index.get.mjs +6 -6
  517. package/.output/server/chunks/routes/api/workshop/index.post.mjs +6 -6
  518. package/.output/server/chunks/routes/api/workshop/index.put.mjs +7 -7
  519. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +7 -7
  520. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +6 -6
  521. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +6 -6
  522. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +6 -6
  523. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +6 -6
  524. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +7 -8
  525. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +6 -6
  527. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +6 -6
  528. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +7 -7
  529. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +6 -6
  530. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +7 -7
  531. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +7 -7
  532. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +7 -7
  533. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +7 -7
  534. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +7 -7
  535. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +7 -7
  536. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +6 -6
  537. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +6 -6
  538. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +6 -6
  539. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +6 -6
  540. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +6 -6
  541. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +6 -6
  542. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +6 -6
  543. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +6 -6
  544. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +6 -6
  545. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +7 -7
  546. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +7 -7
  547. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +6 -6
  548. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +6 -6
  549. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +7 -7
  550. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +7 -7
  551. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +6 -6
  552. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +6 -6
  553. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +6 -6
  554. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +6 -6
  555. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +6 -6
  556. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +6 -6
  557. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +6 -6
  558. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +6 -6
  559. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +6 -6
  560. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +6 -6
  561. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +6 -6
  562. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +6 -6
  563. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +6 -6
  564. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +6 -6
  565. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +6 -6
  566. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +6 -6
  567. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +6 -6
  568. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +6 -6
  569. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +7 -7
  570. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +7 -7
  571. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +6 -6
  572. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +6 -6
  573. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +6 -6
  574. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +6 -6
  575. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +6 -6
  576. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +6 -6
  577. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +7 -7
  578. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +6 -6
  579. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +6 -6
  580. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +6 -6
  581. package/.output/server/chunks/routes/renderer.mjs +2 -2
  582. package/.output/server/chunks/virtual/entry.mjs +645 -525
  583. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  584. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  585. package/.output/server/index.mjs +6 -6
  586. package/.output/server/package.json +1 -1
  587. package/README-zh.md +33 -17
  588. package/README.md +32 -16
  589. package/app/components/AppSidebar.vue +1 -0
  590. package/app/components/aml/AmlModelsTable.vue +180 -173
  591. package/app/components/daq/DaqDetailFramesTile.vue +140 -139
  592. package/app/components/daq/DaqDetailHistoryCard.vue +129 -128
  593. package/app/components/dcw/DcwAddNodeModal.vue +342 -328
  594. package/app/components/dcw/DcwNodesTable.vue +290 -253
  595. package/app/components/dcw/DcwQueryCard.vue +252 -251
  596. package/app/components/dcw/DcwRecipeEditModal.vue +297 -285
  597. package/app/components/dcw/DcwRecipePanel.vue +371 -367
  598. package/app/components/operations/OperationsFilterCard.vue +164 -0
  599. package/app/components/operations/OperationsPageHead.vue +47 -0
  600. package/app/components/operations/OperationsTimeline.vue +215 -0
  601. package/app/components/settings/RuntimeFieldRow.vue +207 -189
  602. package/app/components/workshop/ChatTimeline.vue +596 -569
  603. package/app/components/workshop/EventBlock.vue +224 -214
  604. package/app/components/workshop/blocks/ClusterTool.vue +20 -2
  605. package/app/components/workshop/console/LineOperationsPanel.vue +179 -0
  606. package/app/components/workshop/console/RightPane.vue +6 -0
  607. package/app/composables/workshop/event-blocks/constants.ts +48 -2
  608. package/app/composables/workshop/operation-events.ts +151 -0
  609. package/app/composables/workshop/useAmlStream.ts +137 -136
  610. package/app/composables/workshop/useLocalTime.ts +81 -37
  611. package/app/config/schema.ts +3 -0
  612. package/app/pages/aml/styles.css +422 -420
  613. package/app/pages/aml/types.ts +195 -189
  614. package/app/pages/dcw/[id].vue +300 -297
  615. package/app/pages/dcw/composables/useDcwAddNode.ts +124 -121
  616. package/app/pages/dcw/composables/useDcwRecipes.ts +242 -239
  617. package/app/pages/dcw/composables/useDcwWrites.ts +100 -81
  618. package/app/pages/monitor/composables/useMonitorData.ts +125 -124
  619. package/app/pages/monitor/composables/useMonitorFormat.ts +41 -39
  620. package/app/pages/operations/composables/useOperationsFeed.ts +137 -0
  621. package/app/pages/operations.vue +61 -0
  622. package/app/stores/runtime-config.ts +1 -1
  623. package/app/stores/workshop/chat.ts +434 -434
  624. package/app/stores/workshop/notifications.ts +288 -288
  625. package/app/utils/dcw-recipe-form.ts +26 -0
  626. package/cli/aw.mjs +3 -2
  627. package/cli/commands/mcp.mjs +154 -0
  628. package/cli/core/context.mjs +5 -0
  629. package/config.yml +180 -176
  630. package/docs/aml.md +112 -111
  631. package/docs/cli.en.md +13 -11
  632. package/docs/cli.md +12 -10
  633. package/docs/plugins.en.md +621 -567
  634. package/docs/plugins.md +610 -560
  635. package/docs/sdk.en.md +964 -922
  636. package/docs/sdk.md +900 -861
  637. package/i18n/dicts/aml.json +207 -205
  638. package/i18n/locales/en.ts +37 -0
  639. package/i18n/locales/zh-CN.ts +37 -0
  640. package/nuxt.config.ts +2 -0
  641. package/package.json +178 -172
  642. package/scripts/.chk-tok +1 -0
  643. package/scripts/.retrain-body.json +1 -0
  644. package/scripts/.retrain3-body.json +1 -0
  645. package/scripts/.rt-tok +1 -0
  646. package/scripts/.rt3-tok +1 -0
  647. package/scripts/_audit/.tmp/audit-data/dcw-params.json +15 -0
  648. package/scripts/_audit/.tmp/audit-data/dcws.json +30 -0
  649. package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -0
  650. package/scripts/_audit/dcw-controller-e2e.ts +25 -18
  651. package/scripts/_audit/dcw-rollback-ledger.ts +4 -1
  652. package/scripts/_audit/feature-audit-e2e.mjs +339 -0
  653. package/scripts/_audit/full-e2e-adopt.mjs +238 -0
  654. package/scripts/_audit/full-e2e-close-loop.mjs +134 -0
  655. package/scripts/_audit/full-e2e-retrain.mjs +320 -0
  656. package/scripts/_audit/full-e2e-supplement.mjs +192 -0
  657. package/scripts/_audit/full-e2e-ui-final.mjs +111 -0
  658. package/scripts/_audit/full-e2e-ui-mount.mjs +111 -0
  659. package/scripts/_audit/full-feature-e2e-20260927.mjs +627 -0
  660. package/scripts/_audit/kb-diag-complete.mjs +261 -0
  661. package/scripts/_audit/kb-diag-complete2.mjs +271 -0
  662. package/scripts/_audit/kb-diag-loop-e2e.mjs +357 -0
  663. package/scripts/_audit/kb-diag-loop-mock.mjs +416 -0
  664. package/scripts/_audit/kb-diag-loop-v2.mjs +314 -0
  665. package/scripts/_audit/recipe-save-e2e.mjs +365 -0
  666. package/scripts/_audit/run.mjs +21 -0
  667. package/scripts/_audit/runtime-dir-e2e.mjs +393 -0
  668. package/scripts/_audit/skills-guided-e2e.mjs +316 -0
  669. package/scripts/_audit/stability-soak.mjs +252 -0
  670. package/scripts/_aw0748-failclosed-probe.mjs +1 -1
  671. package/scripts/_aw0748-mock-closedloop.mjs +12 -0
  672. package/scripts/_aw0748-mock-dispatch-diag.mjs +66 -0
  673. package/scripts/_dbg-configroot-audit.mjs +86 -84
  674. package/scripts/_dbg-daq-intervals-func.mjs +115 -94
  675. package/scripts/_dbg-optloop-ui-shots.mjs +52 -0
  676. package/scripts/_dbg-param-map-e2e.ts +7 -1
  677. package/scripts/_dbg-perms-e2e.mjs +11 -1
  678. package/scripts/_dbg-protocol-matrix.mjs +3 -1
  679. package/scripts/_dbg-render-regression.mjs +67 -25
  680. package/scripts/_lib-aml-python-run.mjs +17 -0
  681. package/scripts/_lint-reflow.mjs +105 -0
  682. package/scripts/_probe-model-channel-link.cjs +25 -0
  683. package/scripts/acceptance-aml-hybrid-e2e.ts +396 -0
  684. package/scripts/acceptance-aml-hybrid-twin.ts +3 -3
  685. package/scripts/acceptance-aml-model-identity.ts +137 -0
  686. package/scripts/dev-guard.mjs +4 -2
  687. package/scripts/dev-protocol-simulators.mjs +3 -2
  688. package/scripts/e2e-aml-decoupled.mjs +162 -0
  689. package/scripts/e2e-closedloop/scenarios-accounts.mjs +2 -0
  690. package/scripts/e2e-closedloop/scenarios-authz.mjs +12 -6
  691. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +4 -1
  692. package/scripts/e2e-timezone-settings.mjs +57 -0
  693. package/scripts/live-aml-mockomp.mjs +304 -0
  694. package/scripts/live-aml-optloop-resume.mjs +322 -0
  695. package/scripts/live-aml-optloop.mjs +545 -0
  696. package/scripts/live-aml-stage9.mjs +169 -0
  697. package/scripts/live-aml-two-goals.mjs +315 -0
  698. package/scripts/live-optloop-two-modes.mjs +857 -0
  699. package/scripts/start.mjs +3 -1
  700. package/scripts/test-aw-skills.mjs +102 -0
  701. package/scripts/test-twin-plugin-sdk.mjs +30 -0
  702. package/sdk/context.mjs +305 -0
  703. package/sdk/index.d.mts +149 -0
  704. package/sdk/index.mjs +5 -2
  705. package/server/api/system/timezone.get.ts +20 -0
  706. package/server/api/workshop/agent-tools/bindings/[id].patch.ts +28 -23
  707. package/server/api/workshop/aml/jobs/index.post.ts +74 -44
  708. package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -0
  709. package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -0
  710. package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -0
  711. package/server/api/workshop/aml/training-plans/index.get.ts +9 -0
  712. package/server/api/workshop/aml/training-plans/index.post.ts +43 -0
  713. package/server/api/workshop/aml/twin/providers.get.ts +33 -0
  714. package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +8 -2
  715. package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -0
  716. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +72 -0
  717. package/server/plugins/00-local-time.ts +13 -10
  718. package/server/plugins/aml-twin-worker.ts +32 -0
  719. package/server/plugins/aw-plugins.ts +16 -0
  720. package/server/plugins/workshop.ts +21 -0
  721. package/server/plugins-builtin/twin-injection-default/index.mjs +23 -0
  722. package/server/services/system-config/helpers.ts +42 -41
  723. package/server/services/system-config/recompute.ts +68 -66
  724. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +50 -18
  725. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +51 -5
  726. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +19 -6
  727. package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +276 -276
  728. package/server/services/workshop/agents/industrial/aml-job-tools.ts +549 -363
  729. package/server/services/workshop/agents/industrial/audit-query.ts +30 -0
  730. package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +9 -13
  731. package/server/services/workshop/agents/industrial/dcw-tools.ts +208 -213
  732. package/server/services/workshop/agents/industrial/index.ts +3 -2
  733. package/server/services/workshop/agents/industrial/manual-approval.ts +45 -0
  734. package/server/services/workshop/agents/industrial/ops-tools.ts +370 -382
  735. package/server/services/workshop/agents/industrial/optimization-tools.ts +148 -0
  736. package/server/services/workshop/agents/industrial/param-tools.ts +169 -172
  737. package/server/services/workshop/agents/industrial/twin-tools.ts +618 -61
  738. package/server/services/workshop/agents/industrial-context.ts +4 -2
  739. package/server/services/workshop/agents/node-bindings.repo.ts +35 -2
  740. package/server/services/workshop/agents/tool-classes.ts +28 -0
  741. package/server/services/workshop/aml/aml.repo.ts +412 -386
  742. package/server/services/workshop/aml/job-orchestrator/stages.ts +108 -96
  743. package/server/services/workshop/aml/job-orchestrator/start-job.ts +29 -5
  744. package/server/services/workshop/aml/job-orchestrator/submit.ts +36 -1
  745. package/server/services/workshop/aml/model-registry.ts +265 -175
  746. package/server/services/workshop/aml/predictor.ts +336 -262
  747. package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  748. package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
  749. package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
  750. package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  751. package/server/services/workshop/aml/python/aml_eval.py +39 -6
  752. package/server/services/workshop/aml/python/amlkit.py +222 -3
  753. package/server/services/workshop/aml/python/train-hybrid-example.py +278 -32
  754. package/server/services/workshop/aml/runtime.ts +4 -3
  755. package/server/services/workshop/aml/twin/acceptance.ts +26 -0
  756. package/server/services/workshop/aml/twin/binding-snapshot.ts +603 -0
  757. package/server/services/workshop/aml/twin/calibration-worker.ts +150 -0
  758. package/server/services/workshop/aml/twin/channel-profile.ts +80 -7
  759. package/server/services/workshop/aml/twin/contracts.ts +3 -0
  760. package/server/services/workshop/aml/twin/declarative-provider.ts +108 -0
  761. package/server/services/workshop/aml/twin/feature-flags.ts +63 -0
  762. package/server/services/workshop/aml/twin/hybrid-provider.ts +86 -0
  763. package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -0
  764. package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -0
  765. package/server/services/workshop/aml/twin/physics-spec.ts +338 -0
  766. package/server/services/workshop/aml/twin/prompt-composer.ts +143 -0
  767. package/server/services/workshop/aml/twin/provider-contracts.ts +98 -34
  768. package/server/services/workshop/aml/twin/provider-health.ts +69 -8
  769. package/server/services/workshop/aml/twin/provider-loader.ts +76 -45
  770. package/server/services/workshop/aml/twin/provider-registry.ts +670 -49
  771. package/server/services/workshop/aml/twin/repo.ts +63 -4
  772. package/server/services/workshop/aml/twin/scene-builder.ts +118 -0
  773. package/server/services/workshop/aml/twin/scene-lifecycle.ts +60 -0
  774. package/server/services/workshop/aml/twin/snapshot-service.ts +395 -22
  775. package/server/services/workshop/aml/twin/training-plans.ts +260 -0
  776. package/server/services/workshop/aml/twin/trial-service.ts +97 -13
  777. package/server/services/workshop/aml/twin/write-guard.ts +20 -0
  778. package/server/services/workshop/daq/daq-controller/state.ts +8 -5
  779. package/server/services/workshop/daq/drivers/registry.ts +116 -144
  780. package/server/services/workshop/db/database/migrations.ts +40 -0
  781. package/server/services/workshop/db/database/open.ts +4 -1
  782. package/server/services/workshop/db/database/schema.ts +68 -1
  783. package/server/services/workshop/db/database/seed.ts +22 -0
  784. package/server/services/workshop/db/readonly.ts +30 -0
  785. package/server/services/workshop/dcw/dcw-controller/crud.ts +162 -152
  786. package/server/services/workshop/dcw/dcw-controller/helpers.ts +61 -57
  787. package/server/services/workshop/dcw/dcw-controller/types.ts +61 -57
  788. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +49 -0
  789. package/server/services/workshop/dcw/dcw-controller/write.ts +137 -147
  790. package/server/services/workshop/dcw/dcw-node.ts +18 -2
  791. package/server/services/workshop/dcw/dcw-recipe.repo.ts +5 -0
  792. package/server/services/workshop/dcw/dcw-runtime.ts +9 -3
  793. package/server/services/workshop/dcw/drivers/index.ts +2 -1
  794. package/server/services/workshop/dcw/drivers/modbus-rtu.ts +85 -93
  795. package/server/services/workshop/dcw/drivers/modbus.ts +131 -139
  796. package/server/services/workshop/dcw/drivers/opcua.ts +103 -110
  797. package/server/services/workshop/dcw/drivers/registry.ts +25 -45
  798. package/server/services/workshop/dcw/drivers/shared.ts +24 -6
  799. package/server/services/workshop/dcw/param-limits.ts +193 -142
  800. package/server/services/workshop/dcw/param-map.repo.ts +318 -305
  801. package/server/services/workshop/plugin-driver-registry.ts +108 -0
  802. package/server/services/workshop/runtime/manager/admin-channel.ts +13 -0
  803. package/server/services/workshop/runtime/manager/channel-templates.ts +29 -2
  804. package/server/services/workshop/runtime/manager/runtime-wiring.ts +8 -0
  805. package/server/services/workshop/runtime/permission-scope.ts +79 -81
  806. package/server/services/workshop/runtime/schedule-runtime.ts +33 -6
  807. package/server/utils/errors.ts +8 -0
  808. package/shared/config/engine.mjs +5 -0
  809. package/shared/config/home.mjs +15 -20
  810. package/shared/config/schema.json +135 -133
  811. package/shared/dcw-protocol/line.ts +133 -131
  812. package/shared/dcw-protocol/recipe.ts +311 -301
  813. package/shared/local-time.mjs +116 -36
  814. package/.output/public/_nuxt/-hB4kEmt.js +0 -1
  815. package/.output/public/_nuxt/74x7BOWv2.js +0 -1
  816. package/.output/public/_nuxt/9c5GOgbu.js +0 -1
  817. package/.output/public/_nuxt/BHwG4yNs.js +0 -1
  818. package/.output/public/_nuxt/BIOq3xqe2.js +0 -1
  819. package/.output/public/_nuxt/BL_dbd2v2.js +0 -1
  820. package/.output/public/_nuxt/BNnnYEYh2.js +0 -1
  821. package/.output/public/_nuxt/BxYTM0hb.js +0 -1
  822. package/.output/public/_nuxt/C3twEwTh2.js +0 -1
  823. package/.output/public/_nuxt/CGZVhYJ4.js +0 -1
  824. package/.output/public/_nuxt/CJRDL4EG.js +0 -1
  825. package/.output/public/_nuxt/CKQPwwZa2.js +0 -1
  826. package/.output/public/_nuxt/CeWnOF3O.js +0 -1
  827. package/.output/public/_nuxt/ChoLwR-s.js +0 -1
  828. package/.output/public/_nuxt/DGw8juu_.js +0 -2
  829. package/.output/public/_nuxt/DJdDFnjG2.js +0 -1
  830. package/.output/public/_nuxt/DXIaadqv.js +0 -1
  831. package/.output/public/_nuxt/D_7AzAWe.js +0 -1
  832. package/.output/public/_nuxt/DdvQ7LRI.js +0 -14
  833. package/.output/public/_nuxt/DeYsUzhr.js +0 -1
  834. package/.output/public/_nuxt/DkLCjrCk2.js +0 -47
  835. package/.output/public/_nuxt/DpqA8D8_.js +0 -1
  836. package/.output/public/_nuxt/DqtgGFEc.js +0 -1
  837. package/.output/public/_nuxt/Dy3oXKdn2.js +0 -1
  838. package/.output/public/_nuxt/PLGqdko0.js +0 -1
  839. package/.output/public/_nuxt/U8oQxruK.js +0 -1
  840. package/.output/public/_nuxt/WleoCtUX.js +0 -1
  841. package/.output/public/_nuxt/ZvXovq7N2.js +0 -1
  842. package/.output/public/_nuxt/_id_.Bossmhv1.css +0 -1
  843. package/.output/public/_nuxt/_wsId_.D-u-dbP9.css +0 -1
  844. package/.output/public/_nuxt/aml.Bi5X6_oi.css +0 -1
  845. package/.output/public/_nuxt/builds/meta/0530cee1-fff5-4025-a6f4-5708b6534608.json +0 -1
  846. package/.output/public/_nuxt/cDcDztgb2.js +0 -1
  847. package/.output/public/_nuxt/e7BBCLxr.js +0 -1
  848. package/.output/public/_nuxt/hkMGMTqt.js +0 -1
  849. package/.output/public/_nuxt/ikAUnxx3.js +0 -1
  850. package/.output/public/_nuxt/y9kob70X.js +0 -1
  851. package/.output/server/chunks/_/env-manager.mjs +0 -162
  852. package/.output/server/chunks/_/env-manager.mjs.map +0 -1
  853. package/.output/server/chunks/build/_id_-DgMpjM3_.mjs.map +0 -1
  854. package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs.map +0 -1
  855. package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs.map +0 -1
  856. package/.output/server/chunks/build/aml-DdWicH3t.mjs.map +0 -1
  857. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +0 -43
  858. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +0 -1
  859. package/.output/server/chunks/build/daq-CPtsh0e7.mjs.map +0 -1
  860. package/.output/server/chunks/build/logs-CeaiO3y9.mjs.map +0 -1
  861. package/.output/server/chunks/build/pages-Bn90ijKD.mjs.map +0 -1
  862. package/.output/server/chunks/build/settings-DVAUVMsX.mjs.map +0 -1
  863. package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs.map +0 -1
  864. package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs.map +0 -1
  865. package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs.map +0 -1
  866. package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs.map +0 -1
  867. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +0 -35
  868. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +0 -1
  869. package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs.map +0 -1
  870. package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs.map +0 -1
  871. package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs.map +0 -1
  872. package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs.map +0 -1
  873. package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs.map +0 -1
  874. package/.output/server/chunks/build/workshop-CmgpTwyf.mjs.map +0 -1
  875. /package/.output/public/_nuxt/{B2x8SKRO.js → B2x8SKRO2.js} +0 -0
  876. /package/.output/public/_nuxt/{BzvHUfRR2.js → BzvHUfRR.js} +0 -0
  877. /package/.output/public/_nuxt/{DPUXbTg92.js → DPUXbTg9.js} +0 -0
  878. /package/.output/public/_nuxt/{DdNujZN5.js → DdNujZN52.js} +0 -0
  879. /package/.output/public/_nuxt/{DlUQa0wn2.js → DlUQa0wn.js} +0 -0
  880. /package/.output/public/_nuxt/{Du9v6qGB.js → Du9v6qGB2.js} +0 -0
  881. /package/.output/public/_nuxt/{TOWR4WpO.js → TOWR4WpO2.js} +0 -0
  882. /package/.output/public/_nuxt/{cBI0JqsV2.js → cBI0JqsV.js} +0 -0
  883. /package/.output/public/_nuxt/{zh-S_7rN.js → zh-S_7rN2.js} +0 -0
@@ -1,5 +1,4 @@
1
- import { g as _plugin_vue_export_helper_default, h as useHead$1, a as useI18n, i as button_default, e as useUserStore, n as navigateTo, b as api$1, w as withInstall, j as useConfigInject_default, k as getPropsSlot, l as flattenChildren, m as _extends, o as cloneElement, p as classNames, q as _objectSpread2, r as getTransitionProps, s as modal_default, t as initDefaultProps, v as genComponentStyleHook, x as merge, P as PropTypes, y as filterEmpty, z as devWarning_default, C as CloseCircleFilled, A as CloseOutlined, B as CheckCircleFilled, D as stringType, E as someType, F as objectType, G as anyType, H as booleanType, I as functionType, J as resetComponent, K as Keyframe, L as presetPrimaryColors, M as warning, N as eventType, O as genFocusStyle } from '../virtual/entry.mjs';
2
- import { C as ClientOnly } from './client-only-qNA2OVV_.mjs';
1
+ import { h as _plugin_vue_export_helper_default, i as useHead$1, a as useI18n, C as ClientOnly, j as button_default, e as useUserStore, n as navigateTo, b as api$1, w as withInstall, k as useConfigInject_default, l as getPropsSlot, m as flattenChildren, o as _extends, p as cloneElement, q as classNames, r as _objectSpread2, s as getTransitionProps, t as modal_default, v as initDefaultProps, x as genComponentStyleHook, y as merge, P as PropTypes, z as filterEmpty, A as devWarning_default, B as CloseCircleFilled, D as CloseOutlined, E as CheckCircleFilled, F as stringType, G as someType, H as objectType, I as anyType, J as booleanType, K as functionType, L as resetComponent, M as Keyframe, N as presetPrimaryColors, O as warning, Q as eventType, R as genFocusStyle } from '../virtual/entry.mjs';
3
2
  import { T as TextArea_default, i as isPresetColor, t as tooltip_default, g as genPresetColor } from '../_/SearchOutlined.mjs';
4
3
  import { f as form_default, F as FormItem_default } from './form-uSlNqIAV.mjs';
5
4
  import { S as Select, C as CheckOutlined, D as DownOutlined } from './select-rdBWytVK.mjs';
@@ -19,18 +18,18 @@ import { s as spin_default } from './spin-C2cuvGth.mjs';
19
18
  import { s as switch_default } from './switch-DZAUIbIN.mjs';
20
19
  import { s as segmented_default } from './segmented-C61yLHvo.mjs';
21
20
  import { u as useResponsive } from './useResponsive-BKDMGTHs.mjs';
22
- import { u as useEntitiesStore, b as agentHueColor, c as useEventsStore, a as useWorkshopWs, d as useChatStore, e as useNotificationsStore, B as BlockClusterer, f as chatErrorCode, g as chatErrorMessage, h as useWsConnectionStore, i as blockTier, j as buildStreamText, k as isStreaming, s as streamCursorVisible } from './useWorkshopWs-B-Es2Xg3.mjs';
23
- import { u as useWorkspacesStore } from './workspaces-DVIEk1Bl.mjs';
21
+ import { f as formatLocalClock } from './useLocalTime-DZ2RAtVs.mjs';
22
+ import { u as useEntitiesStore, b as agentHueColor, c as useEventsStore, a as useWorkshopWs, d as useChatStore, e as useNotificationsStore, B as BlockClusterer, f as chatErrorCode, g as chatErrorMessage, h as useWsConnectionStore, i as blockTier, j as buildStreamText, k as isStreaming, s as streamCursorVisible } from './useWorkshopWs-Bm80bLn7.mjs';
23
+ import { u as useWorkspacesStore } from './workspaces-CmW0cpOt.mjs';
24
24
  import { a as apiErrorMessage } from './api-error-BwAQLw44.mjs';
25
- import { f as formatLocalClock } from './useLocalTime-9a4B-aHv.mjs';
26
25
  import { u as useWorkshopApi } from './useWorkshopApi-B1B9vd4m.mjs';
27
- import { O as OmpTerminalPanel_default } from './OmpTerminalPanel-EQHrOJbw.mjs';
28
- import { T as TownView_default } from './TownView-BAR8CPIZ.mjs';
26
+ import { O as OmpTerminalPanel_default } from './OmpTerminalPanel-mk31gVzA.mjs';
27
+ import { T as TownView_default } from './TownView-fP9BiALv.mjs';
29
28
  import { u as useStorage } from './core-CgTOPS4t.mjs';
30
- import { t as useWorkspaceAuth } from './useWorkspaceAuth-tQ1ORWXo.mjs';
31
- import { t as useWorkspaceChannels } from './useWorkspaceChannels-BwB6TAWY.mjs';
32
- import { t as useWorkspacePanels } from './useWorkspacePanels-CuAmDpT5.mjs';
33
- import { t as useWorkspaceShell } from './useWorkspaceShell-CcQ4JlqO.mjs';
29
+ import { t as useWorkspaceAuth } from './useWorkspaceAuth-Dlvj9csD.mjs';
30
+ import { t as useWorkspaceChannels } from './useWorkspaceChannels-D61Al2dr.mjs';
31
+ import { t as useWorkspacePanels } from './useWorkspacePanels-CTwREmq0.mjs';
32
+ import { t as useWorkspaceShell } from './useWorkspaceShell-BCypjjjE.mjs';
34
33
  import { defineComponent, mergeProps, unref, isRef, ref, useModel, computed, mergeModels, toRef, inject, watch, nextTick, withCtx, openBlock, createBlock, Fragment, renderList, withKeys, createVNode, toDisplayString, createTextVNode, createCommentVNode, withModifiers, shallowRef, toValue, onScopeDispose, Transition, withDirectives, vShow, reactive, resolveComponent, resolveDynamicComponent, cloneVNode, useSSRContext } from 'vue';
35
34
  import { ssrRenderAttrs, ssrRenderComponent, ssrRenderTeleport, ssrRenderStyle, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrRenderList, ssrIncludeBooleanAttr, ssrRenderVNode } from 'vue/server-renderer';
36
35
  import '../_/nitro.mjs';
@@ -39,19 +38,19 @@ import 'node:http';
39
38
  import 'node:https';
40
39
  import 'node:events';
41
40
  import 'node:buffer';
42
- import 'node:url';
43
41
  import 'node:fs';
44
42
  import 'node:path';
45
- import 'node:fs/promises';
46
- import 'node:os';
43
+ import 'node:url';
47
44
  import 'js-yaml';
45
+ import 'node:os';
46
+ import 'zod';
48
47
  import 'node:child_process';
49
- import 'node:net';
50
- import 'node:util';
51
48
  import 'node:sqlite';
52
49
  import 'node:module';
50
+ import 'node:fs/promises';
51
+ import 'node:net';
52
+ import 'node:util';
53
53
  import 'node:zlib';
54
- import 'zod';
55
54
  import 'unhead/utils';
56
55
  import '../routes/renderer.mjs';
57
56
  import 'unhead/server';
@@ -1787,7 +1786,7 @@ var progress_default$1 = defineComponent({
1787
1786
  var progress_default = withInstall(progress_default$1);
1788
1787
  //#endregion
1789
1788
  //#region app/composables/workshop/event-blocks/constants.ts
1790
- /** 工具元数据:native = omp 原生作业工具;host = harness 协作工具(任务/通信/记忆/团队) */
1789
+ /** 工具元数据:native = omp 原生作业工具;host = harness 协作工具(任务/通信/记忆/团队);industrial = 产线工业工具(写控/数采/配方/优化/AML/孪生, amber 强调) */
1791
1790
  var TOOL_META = {
1792
1791
  read: {
1793
1792
  icon: "i-tabler-file-search",
@@ -1888,6 +1887,186 @@ var TOOL_META = {
1888
1887
  remove_team_agent: {
1889
1888
  icon: "i-tabler-user-minus",
1890
1889
  kind: "host"
1890
+ },
1891
+ my_industrial_nodes: {
1892
+ icon: "i-tabler-affiliate",
1893
+ kind: "industrial"
1894
+ },
1895
+ dcw_control: {
1896
+ icon: "i-tabler-writing-sign",
1897
+ kind: "industrial"
1898
+ },
1899
+ dcw_read: {
1900
+ icon: "i-tabler-eye-cog",
1901
+ kind: "industrial"
1902
+ },
1903
+ param_control: {
1904
+ icon: "i-tabler-adjustments-horizontal",
1905
+ kind: "industrial"
1906
+ },
1907
+ param_read: {
1908
+ icon: "i-tabler-gauge",
1909
+ kind: "industrial"
1910
+ },
1911
+ daq_query: {
1912
+ icon: "i-tabler-wave-sine",
1913
+ kind: "industrial"
1914
+ },
1915
+ daq_frames: {
1916
+ icon: "i-tabler-stack",
1917
+ kind: "industrial"
1918
+ },
1919
+ dcw_judge: {
1920
+ icon: "i-tabler-gavel",
1921
+ kind: "industrial"
1922
+ },
1923
+ dcw_rollback: {
1924
+ icon: "i-tabler-arrow-back-up",
1925
+ kind: "industrial"
1926
+ },
1927
+ dcw_journal: {
1928
+ icon: "i-tabler-book-2",
1929
+ kind: "industrial"
1930
+ },
1931
+ ops_log: {
1932
+ icon: "i-tabler-history",
1933
+ kind: "industrial"
1934
+ },
1935
+ recipe_log: {
1936
+ icon: "i-tabler-clipboard-list",
1937
+ kind: "industrial"
1938
+ },
1939
+ line_context: {
1940
+ icon: "i-tabler-clipboard-text",
1941
+ kind: "industrial"
1942
+ },
1943
+ recipe_versions: {
1944
+ icon: "i-tabler-history-toggle",
1945
+ kind: "industrial"
1946
+ },
1947
+ recipe_update: {
1948
+ icon: "i-tabler-file-pencil",
1949
+ kind: "industrial"
1950
+ },
1951
+ recipe_rollback: {
1952
+ icon: "i-tabler-rotate-clockwise",
1953
+ kind: "industrial"
1954
+ },
1955
+ optimization_explore: {
1956
+ icon: "i-tabler-trending-down",
1957
+ kind: "industrial"
1958
+ },
1959
+ aml_node_catalog: {
1960
+ icon: "i-tabler-list-numbers",
1961
+ kind: "industrial"
1962
+ },
1963
+ aml_dataset_build: {
1964
+ icon: "i-tabler-database-export",
1965
+ kind: "industrial"
1966
+ },
1967
+ aml_dataset_stats: {
1968
+ icon: "i-tabler-calculator",
1969
+ kind: "industrial"
1970
+ },
1971
+ aml_job_submit: {
1972
+ icon: "i-tabler-send",
1973
+ kind: "industrial"
1974
+ },
1975
+ aml_job_status: {
1976
+ icon: "i-tabler-loader-quarter",
1977
+ kind: "industrial"
1978
+ },
1979
+ aml_job_logs: {
1980
+ icon: "i-tabler-file-text",
1981
+ kind: "industrial"
1982
+ },
1983
+ aml_job_cancel: {
1984
+ icon: "i-tabler-circle-x",
1985
+ kind: "industrial"
1986
+ },
1987
+ aml_leaderboard: {
1988
+ icon: "i-tabler-trophy",
1989
+ kind: "industrial"
1990
+ },
1991
+ aml_model_find: {
1992
+ icon: "i-tabler-search",
1993
+ kind: "industrial"
1994
+ },
1995
+ aml_model_promote: {
1996
+ icon: "i-tabler-arrow-up-circle",
1997
+ kind: "industrial"
1998
+ },
1999
+ aml_model_reference: {
2000
+ icon: "i-tabler-book",
2001
+ kind: "industrial"
2002
+ },
2003
+ aml_training_plan_list: {
2004
+ icon: "i-tabler-list-check",
2005
+ kind: "industrial"
2006
+ },
2007
+ aml_training_plan_create: {
2008
+ icon: "i-tabler-file-plus",
2009
+ kind: "industrial"
2010
+ },
2011
+ aml_training_plan_train: {
2012
+ icon: "i-tabler-player-play",
2013
+ kind: "industrial"
2014
+ },
2015
+ twin_provider_catalog: {
2016
+ icon: "i-tabler-box-multiple",
2017
+ kind: "industrial"
2018
+ },
2019
+ twin_scene_discover: {
2020
+ icon: "i-tabler-compass",
2021
+ kind: "industrial"
2022
+ },
2023
+ twin_scene_compile: {
2024
+ icon: "i-tabler-building-factory",
2025
+ kind: "industrial"
2026
+ },
2027
+ twin_scene_freeze: {
2028
+ icon: "i-tabler-snowflake",
2029
+ kind: "industrial"
2030
+ },
2031
+ twin_physics_spec_draft: {
2032
+ icon: "i-tabler-pencil-minus",
2033
+ kind: "industrial"
2034
+ },
2035
+ twin_physics_spec_validate: {
2036
+ icon: "i-tabler-checkup-list",
2037
+ kind: "industrial"
2038
+ },
2039
+ twin_physics_spec_compile: {
2040
+ icon: "i-tabler-binary-tree",
2041
+ kind: "industrial"
2042
+ },
2043
+ twin_scene_read: {
2044
+ icon: "i-tabler-book-2",
2045
+ kind: "industrial"
2046
+ },
2047
+ twin_snapshot_create: {
2048
+ icon: "i-tabler-camera",
2049
+ kind: "industrial"
2050
+ },
2051
+ twin_trial_run: {
2052
+ icon: "i-tabler-flask",
2053
+ kind: "industrial"
2054
+ },
2055
+ mpc_optimize: {
2056
+ icon: "i-tabler-target-arrow",
2057
+ kind: "industrial"
2058
+ },
2059
+ twin_gate_evaluate: {
2060
+ icon: "i-tabler-shield-check",
2061
+ kind: "industrial"
2062
+ },
2063
+ twin_calibration_request: {
2064
+ icon: "i-tabler-scale",
2065
+ kind: "industrial"
2066
+ },
2067
+ twin_bayes_optimize: {
2068
+ icon: "i-tabler-chart-dots",
2069
+ kind: "industrial"
1891
2070
  }
1892
2071
  };
1893
2072
  /** 类别展示元数据(壳层统一渲染头部) */
@@ -2092,11 +2271,11 @@ var MentionHoverCard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
2092
2271
  });
2093
2272
  //#endregion
2094
2273
  //#region app/components/workshop/MentionHoverCard.vue
2095
- var _sfc_setup$59 = MentionHoverCard_vue_vue_type_script_setup_true_lang_default.setup;
2274
+ var _sfc_setup$60 = MentionHoverCard_vue_vue_type_script_setup_true_lang_default.setup;
2096
2275
  MentionHoverCard_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
2097
2276
  const ssrContext = useSSRContext();
2098
2277
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/MentionHoverCard.vue");
2099
- return _sfc_setup$59 ? _sfc_setup$59(props, ctx) : void 0;
2278
+ return _sfc_setup$60 ? _sfc_setup$60(props, ctx) : void 0;
2100
2279
  };
2101
2280
  var MentionHoverCard_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(MentionHoverCard_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-85570eca"]]), { __name: "WorkshopMentionHoverCard" });
2102
2281
  //#endregion
@@ -2135,11 +2314,11 @@ var PaneSplitter_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
2135
2314
  });
2136
2315
  //#endregion
2137
2316
  //#region app/components/workshop/PaneSplitter.vue
2138
- var _sfc_setup$58 = PaneSplitter_vue_vue_type_script_setup_true_lang_default.setup;
2317
+ var _sfc_setup$59 = PaneSplitter_vue_vue_type_script_setup_true_lang_default.setup;
2139
2318
  PaneSplitter_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
2140
2319
  const ssrContext = useSSRContext();
2141
2320
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/PaneSplitter.vue");
2142
- return _sfc_setup$58 ? _sfc_setup$58(props, ctx) : void 0;
2321
+ return _sfc_setup$59 ? _sfc_setup$59(props, ctx) : void 0;
2143
2322
  };
2144
2323
  var PaneSplitter_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(PaneSplitter_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4f787ef8"]]), { __name: "WorkshopPaneSplitter" });
2145
2324
  //#endregion
@@ -2223,11 +2402,11 @@ var Topbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
2223
2402
  });
2224
2403
  //#endregion
2225
2404
  //#region app/components/workshop/console/Topbar.vue
2226
- var _sfc_setup$57 = Topbar_vue_vue_type_script_setup_true_lang_default.setup;
2405
+ var _sfc_setup$58 = Topbar_vue_vue_type_script_setup_true_lang_default.setup;
2227
2406
  Topbar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
2228
2407
  const ssrContext = useSSRContext();
2229
2408
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/console/Topbar.vue");
2230
- return _sfc_setup$57 ? _sfc_setup$57(props, ctx) : void 0;
2409
+ return _sfc_setup$58 ? _sfc_setup$58(props, ctx) : void 0;
2231
2410
  };
2232
2411
  var Topbar_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(Topbar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-c0ff781a"]]), { __name: "WorkshopConsoleTopbar" });
2233
2412
  //#endregion
@@ -2518,11 +2697,11 @@ var FileSelectorModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
2518
2697
  });
2519
2698
  //#endregion
2520
2699
  //#region app/components/workshop/FileSelectorModal.vue
2521
- var _sfc_setup$56 = FileSelectorModal_vue_vue_type_script_setup_true_lang_default.setup;
2700
+ var _sfc_setup$57 = FileSelectorModal_vue_vue_type_script_setup_true_lang_default.setup;
2522
2701
  FileSelectorModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
2523
2702
  const ssrContext = useSSRContext();
2524
2703
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/FileSelectorModal.vue");
2525
- return _sfc_setup$56 ? _sfc_setup$56(props, ctx) : void 0;
2704
+ return _sfc_setup$57 ? _sfc_setup$57(props, ctx) : void 0;
2526
2705
  };
2527
2706
  var FileSelectorModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(FileSelectorModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-eed7eab9"]]), { __name: "WorkshopFileSelectorModal" });
2528
2707
  //#endregion
@@ -2882,11 +3061,11 @@ var MountChannelModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
2882
3061
  });
2883
3062
  //#endregion
2884
3063
  //#region app/components/workshop/session-list/MountChannelModal.vue
2885
- var _sfc_setup$55 = MountChannelModal_vue_vue_type_script_setup_true_lang_default.setup;
3064
+ var _sfc_setup$56 = MountChannelModal_vue_vue_type_script_setup_true_lang_default.setup;
2886
3065
  MountChannelModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
2887
3066
  const ssrContext = useSSRContext();
2888
3067
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/session-list/MountChannelModal.vue");
2889
- return _sfc_setup$55 ? _sfc_setup$55(props, ctx) : void 0;
3068
+ return _sfc_setup$56 ? _sfc_setup$56(props, ctx) : void 0;
2890
3069
  };
2891
3070
  var MountChannelModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(MountChannelModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-400a3f48"]]), { __name: "WorkshopSessionListMountChannelModal" });
2892
3071
  //#endregion
@@ -3936,11 +4115,11 @@ var ChannelSettingsModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE
3936
4115
  });
3937
4116
  //#endregion
3938
4117
  //#region app/components/workshop/session-list/ChannelSettingsModal.vue
3939
- var _sfc_setup$54 = ChannelSettingsModal_vue_vue_type_script_setup_true_lang_default.setup;
4118
+ var _sfc_setup$55 = ChannelSettingsModal_vue_vue_type_script_setup_true_lang_default.setup;
3940
4119
  ChannelSettingsModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
3941
4120
  const ssrContext = useSSRContext();
3942
4121
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/session-list/ChannelSettingsModal.vue");
3943
- return _sfc_setup$54 ? _sfc_setup$54(props, ctx) : void 0;
4122
+ return _sfc_setup$55 ? _sfc_setup$55(props, ctx) : void 0;
3944
4123
  };
3945
4124
  var ChannelSettingsModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChannelSettingsModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3ff76d4f"]]), { __name: "WorkshopSessionListChannelSettingsModal" });
3946
4125
  //#endregion
@@ -4193,11 +4372,11 @@ var SaveTemplateModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
4193
4372
  });
4194
4373
  //#endregion
4195
4374
  //#region app/components/workshop/session-list/SaveTemplateModal.vue
4196
- var _sfc_setup$53 = SaveTemplateModal_vue_vue_type_script_setup_true_lang_default.setup;
4375
+ var _sfc_setup$54 = SaveTemplateModal_vue_vue_type_script_setup_true_lang_default.setup;
4197
4376
  SaveTemplateModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4198
4377
  const ssrContext = useSSRContext();
4199
4378
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/session-list/SaveTemplateModal.vue");
4200
- return _sfc_setup$53 ? _sfc_setup$53(props, ctx) : void 0;
4379
+ return _sfc_setup$54 ? _sfc_setup$54(props, ctx) : void 0;
4201
4380
  };
4202
4381
  var SaveTemplateModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(SaveTemplateModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f6a8bae6"]]), { __name: "WorkshopSessionListSaveTemplateModal" });
4203
4382
  //#endregion
@@ -4304,11 +4483,11 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
4304
4483
  });
4305
4484
  //#endregion
4306
4485
  //#region app/components/workshop/ChannelSessionList.vue
4307
- var _sfc_setup$52 = ChannelSessionList_vue_vue_type_script_setup_true_lang_default.setup;
4486
+ var _sfc_setup$53 = ChannelSessionList_vue_vue_type_script_setup_true_lang_default.setup;
4308
4487
  ChannelSessionList_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4309
4488
  const ssrContext = useSSRContext();
4310
4489
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/ChannelSessionList.vue");
4311
- return _sfc_setup$52 ? _sfc_setup$52(props, ctx) : void 0;
4490
+ return _sfc_setup$53 ? _sfc_setup$53(props, ctx) : void 0;
4312
4491
  };
4313
4492
  var ChannelSessionList_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChannelSessionList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-140079b6"]]), { __name: "WorkshopChannelSessionList" });
4314
4493
  //#endregion
@@ -4370,11 +4549,11 @@ var LiveAgentBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
4370
4549
  });
4371
4550
  //#endregion
4372
4551
  //#region app/components/workshop/LiveAgentBar.vue
4373
- var _sfc_setup$51 = LiveAgentBar_vue_vue_type_script_setup_true_lang_default.setup;
4552
+ var _sfc_setup$52 = LiveAgentBar_vue_vue_type_script_setup_true_lang_default.setup;
4374
4553
  LiveAgentBar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4375
4554
  const ssrContext = useSSRContext();
4376
4555
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/LiveAgentBar.vue");
4377
- return _sfc_setup$51 ? _sfc_setup$51(props, ctx) : void 0;
4556
+ return _sfc_setup$52 ? _sfc_setup$52(props, ctx) : void 0;
4378
4557
  };
4379
4558
  var LiveAgentBar_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LiveAgentBar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8f6c62e6"]]), { __name: "WorkshopLiveAgentBar" });
4380
4559
  //#endregion
@@ -4414,11 +4593,11 @@ var LeftPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
4414
4593
  });
4415
4594
  //#endregion
4416
4595
  //#region app/components/workshop/console/LeftPane.vue
4417
- var _sfc_setup$50 = LeftPane_vue_vue_type_script_setup_true_lang_default.setup;
4596
+ var _sfc_setup$51 = LeftPane_vue_vue_type_script_setup_true_lang_default.setup;
4418
4597
  LeftPane_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4419
4598
  const ssrContext = useSSRContext();
4420
4599
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/console/LeftPane.vue");
4421
- return _sfc_setup$50 ? _sfc_setup$50(props, ctx) : void 0;
4600
+ return _sfc_setup$51 ? _sfc_setup$51(props, ctx) : void 0;
4422
4601
  };
4423
4602
  var LeftPane_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LeftPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8a7594a2"]]), { __name: "WorkshopConsoleLeftPane" });
4424
4603
  //#endregion
@@ -4721,6 +4900,130 @@ function useTranscriptHistory(channelId, scroller) {
4721
4900
  };
4722
4901
  }
4723
4902
  //#endregion
4903
+ //#region app/composables/workshop/operation-events.ts
4904
+ function textOf(e) {
4905
+ const p = e.payload;
4906
+ if (!p) return "";
4907
+ if (typeof p.text === "string") return p.text;
4908
+ if (typeof p.summary === "string") return p.summary;
4909
+ if (typeof p.message === "string") return p.message;
4910
+ if (e.type === "agent.message" || e.type === "a2a.message") return (Array.isArray(p.parts) ? p.parts : []).map((x) => x.text ?? "").join(" ");
4911
+ return "";
4912
+ }
4913
+ /** 产线工业工具名 → 域(与 host-tools.json 工业族对齐;用于消息文本的可靠着色) */
4914
+ var INDUSTRIAL_TOOL_KIND = [
4915
+ [/dcw_control|dcw_read|dcw_judge|dcw_rollback|dcw_journal|param_control|param_read|line_context|recipe_update|recipe_versions|recipe_rollback|recipe_log/, "dcw"],
4916
+ [/my_industrial_nodes|ops_log|daq_frames|daq_query/, "daq"],
4917
+ [/optimization_explore|aml_|twin_calibration/, "aml"],
4918
+ [/twin_|mpc_optimize/, "twin"]
4919
+ ];
4920
+ function operationFromText(text) {
4921
+ const s = text.toLowerCase();
4922
+ for (const [re, kind] of INDUSTRIAL_TOOL_KIND) if (re.test(s)) return kind;
4923
+ if (/dcw|param_control|dcw_control|setpoint|写入|下发|plc/.test(s)) return "dcw";
4924
+ if (/daq|daq_query|采集|数采|telemetry|reading/.test(s)) return "daq";
4925
+ if (/aml|训练|training|dataset|模型|pinn|residual/.test(s)) return "aml";
4926
+ if (/twin|孪生|mpc|gate|shadow|recommendation|物理模型/.test(s)) return "twin";
4927
+ if (/reject|拒绝|超限|联锁|安全|safety|step_limit|interval/.test(s)) return "safety";
4928
+ return "other";
4929
+ }
4930
+ function classifyOperation(e) {
4931
+ const p = e.payload;
4932
+ const text = textOf(e);
4933
+ let kind = "other";
4934
+ let severity = "normal";
4935
+ let label = "作业";
4936
+ let icon = "i-tabler-activity";
4937
+ let summary = text || e.type;
4938
+ let value;
4939
+ if (e.type === "dcw.written") {
4940
+ kind = p?.ok ? "dcw" : "safety";
4941
+ severity = p?.ok ? "attention" : "critical";
4942
+ label = p?.ok ? "DCW 已下发" : "DCW 被拒绝";
4943
+ icon = p?.ok ? "i-tabler-adjustments-horizontal" : "i-tabler-shield-x";
4944
+ const node = String(p?.nodeName ?? p?.nodeId ?? "控制节点");
4945
+ const val = p?.value ?? p?.eng;
4946
+ value = val == null ? void 0 : String(val);
4947
+ summary = `${node}${value != null ? ` → ${value}` : ""}${p?.message ? ` · ${String(p.message)}` : ""}`;
4948
+ } else if (e.type === "dcw.optimization.changed") {
4949
+ kind = "dcw";
4950
+ label = "调控闭环";
4951
+ icon = "i-tabler-adjustments";
4952
+ summary = String((p?.record)?.hypothesis ?? p?.event ?? "优化记录更新");
4953
+ } else if (e.type === "daq.reading") {
4954
+ kind = "daq";
4955
+ label = "DAQ 采集";
4956
+ icon = "i-tabler-wave-sine";
4957
+ const node = String(p?.nodeName ?? p?.nodeId ?? "数采节点");
4958
+ const val = p?.value ?? p?.avg ?? p?.reading;
4959
+ value = val == null ? void 0 : String(val);
4960
+ summary = `${node}${value != null ? ` · ${value}` : ""}`;
4961
+ } else if (e.type === "daq.alarm" || e.type === "daq.alarm.changed") {
4962
+ kind = "safety";
4963
+ severity = e.type === "daq.alarm" ? "critical" : "attention";
4964
+ label = "数采告警";
4965
+ icon = "i-tabler-alert-triangle";
4966
+ summary = text || String(p?.rule ?? p?.metric ?? "DAQ 告警状态变化");
4967
+ } else if (e.type === "ops.log") {
4968
+ const action = String(p?.action ?? "");
4969
+ kind = /dcw|recipe|write|param/.test(action) ? "dcw" : /daq|sample|reading/.test(action) ? "daq" : /aml|train|dataset/.test(action) ? "aml" : /twin|mpc|gate|shadow/.test(action) ? "twin" : operationFromText(String(p?.summary ?? ""));
4970
+ severity = /reject|denied|拒绝|fail|error|超限/.test(String(p?.summary ?? "").toLowerCase()) ? "critical" : "attention";
4971
+ label = kind === "dcw" ? "产线写控" : kind === "daq" ? "数采作业" : kind === "aml" ? "AML 训练" : kind === "twin" ? "孪生/MPC" : "运维事件";
4972
+ icon = kind === "dcw" ? "i-tabler-adjustments-horizontal" : kind === "daq" ? "i-tabler-wave-sine" : kind === "aml" ? "i-tabler-brain" : "i-tabler-timeline";
4973
+ summary = String(p?.summary ?? p?.action ?? "运维事件");
4974
+ } else if (e.type === "error") {
4975
+ kind = "safety";
4976
+ severity = "critical";
4977
+ label = "系统拒绝";
4978
+ icon = "i-tabler-shield-x";
4979
+ summary = String(p?.message ?? "系统错误");
4980
+ } else if (e.type === "agent.status.message" || e.type === "agent.message" || e.type === "a2a.message") {
4981
+ kind = operationFromText(text);
4982
+ if (kind === "other") return null;
4983
+ label = kind === "dcw" ? "Agent 写控" : kind === "daq" ? "Agent 取数" : kind === "aml" ? "Agent 训练" : kind === "twin" ? "Agent 孪生" : "安全卡控";
4984
+ icon = kind === "dcw" ? "i-tabler-adjustments-horizontal" : kind === "daq" ? "i-tabler-wave-sine" : kind === "aml" ? "i-tabler-brain" : kind === "twin" ? "i-tabler-timeline" : "i-tabler-shield-lock";
4985
+ severity = /reject|拒绝|超限|failed|error|失败/.test(text.toLowerCase()) ? "critical" : "attention";
4986
+ } else if (e.type === "task.status" || e.type === "task.progress") {
4987
+ kind = operationFromText(String(p?.title ?? p?.state ?? ""));
4988
+ if (kind === "other") return null;
4989
+ label = kind === "aml" ? "AML 任务" : kind === "twin" ? "孪生任务" : "产线任务";
4990
+ icon = kind === "aml" ? "i-tabler-brain" : kind === "twin" ? "i-tabler-timeline" : "i-tabler-player-play";
4991
+ summary = String(p?.title ?? p?.state ?? "任务状态");
4992
+ } else return null;
4993
+ return {
4994
+ kind,
4995
+ severity,
4996
+ label,
4997
+ icon,
4998
+ summary: summary.replace(/\s+/g, " ").trim().slice(0, 220),
4999
+ value
5000
+ };
5001
+ }
5002
+ function operationPhase(items) {
5003
+ let phase = "监视";
5004
+ let tone = "normal";
5005
+ for (const e of items) {
5006
+ const text = textOf(e).toLowerCase();
5007
+ if (/production|online|生产/.test(text)) {
5008
+ phase = "生产";
5009
+ tone = "attention";
5010
+ } else if (/shadow|影子/.test(text)) {
5011
+ phase = "影子验证";
5012
+ tone = "attention";
5013
+ } else if (/precise_search|gate passed|gate通过|门禁通过/.test(text)) {
5014
+ phase = "推荐搜索";
5015
+ tone = "attention";
5016
+ } else if (/safe_small_step|exploration|探索/.test(text)) {
5017
+ phase = "探索 · 小步";
5018
+ tone = "attention";
5019
+ }
5020
+ }
5021
+ return {
5022
+ label: phase,
5023
+ tone
5024
+ };
5025
+ }
5026
+ //#endregion
4724
5027
  //#region app/composables/workshop/useComposerBus.ts
4725
5028
  /**
4726
5029
  * Composer 指令总线:块工具条「引用到输入框」→ Composer 消费。
@@ -4894,11 +5197,11 @@ var EventBlockAvatar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
4894
5197
  });
4895
5198
  //#endregion
4896
5199
  //#region app/components/workshop/blocks/EventBlockAvatar.vue
4897
- var _sfc_setup$49 = EventBlockAvatar_vue_vue_type_script_setup_true_lang_default.setup;
5200
+ var _sfc_setup$50 = EventBlockAvatar_vue_vue_type_script_setup_true_lang_default.setup;
4898
5201
  EventBlockAvatar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4899
5202
  const ssrContext = useSSRContext();
4900
5203
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/EventBlockAvatar.vue");
4901
- return _sfc_setup$49 ? _sfc_setup$49(props, ctx) : void 0;
5204
+ return _sfc_setup$50 ? _sfc_setup$50(props, ctx) : void 0;
4902
5205
  };
4903
5206
  var EventBlockAvatar_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(EventBlockAvatar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-37c7e436"]]), { __name: "WorkshopBlocksEventBlockAvatar" });
4904
5207
  //#endregion
@@ -4940,11 +5243,11 @@ var EventBlockHead_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
4940
5243
  });
4941
5244
  //#endregion
4942
5245
  //#region app/components/workshop/blocks/EventBlockHead.vue
4943
- var _sfc_setup$48 = EventBlockHead_vue_vue_type_script_setup_true_lang_default.setup;
5246
+ var _sfc_setup$49 = EventBlockHead_vue_vue_type_script_setup_true_lang_default.setup;
4944
5247
  EventBlockHead_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
4945
5248
  const ssrContext = useSSRContext();
4946
5249
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/EventBlockHead.vue");
4947
- return _sfc_setup$48 ? _sfc_setup$48(props, ctx) : void 0;
5250
+ return _sfc_setup$49 ? _sfc_setup$49(props, ctx) : void 0;
4948
5251
  };
4949
5252
  var EventBlockHead_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(EventBlockHead_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e966c298"]]), { __name: "WorkshopBlocksEventBlockHead" });
4950
5253
  //#endregion
@@ -5031,11 +5334,11 @@ var ClusterStream_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
5031
5334
  });
5032
5335
  //#endregion
5033
5336
  //#region app/components/workshop/blocks/ClusterStream.vue
5034
- var _sfc_setup$47 = ClusterStream_vue_vue_type_script_setup_true_lang_default.setup;
5337
+ var _sfc_setup$48 = ClusterStream_vue_vue_type_script_setup_true_lang_default.setup;
5035
5338
  ClusterStream_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5036
5339
  const ssrContext = useSSRContext();
5037
5340
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterStream.vue");
5038
- return _sfc_setup$47 ? _sfc_setup$47(props, ctx) : void 0;
5341
+ return _sfc_setup$48 ? _sfc_setup$48(props, ctx) : void 0;
5039
5342
  };
5040
5343
  var ClusterStream_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterStream_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d381d8b3"]]), { __name: "WorkshopBlocksClusterStream" });
5041
5344
  //#endregion
@@ -5071,17 +5374,17 @@ var ClusterTool_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
5071
5374
  const shown = computed(() => expanded.value ? toolLines.value : toolLines.value.slice(0, MAX$5));
5072
5375
  const hasMore = computed(() => toolLines.value.length > MAX$5);
5073
5376
  return (_ctx, _push, _parent, _attrs) => {
5074
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "tool-cluster" }, _attrs))} data-v-8d0f2345><!--[-->`);
5377
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "tool-cluster" }, _attrs))} data-v-43cd8a58><!--[-->`);
5075
5378
  ssrRenderList(shown.value, (t) => {
5076
- _push(`<div class="${ssrRenderClass([t.meta.kind, "tool-line"])}" data-v-8d0f2345><time class="tool-time aw-mono" data-v-8d0f2345>${ssrInterpolate(t.time)}</time><span class="tool-node" data-v-8d0f2345></span><span class="${ssrRenderClass([t.meta.icon, "tool-icon"])}" data-v-8d0f2345></span><span class="tool-name" data-v-8d0f2345>${ssrInterpolate(t.name)}</span>`);
5077
- if (t.args) _push(`<span class="tool-args"${ssrRenderAttr("title", t.args)} data-v-8d0f2345>${ssrInterpolate(t.args)}</span>`);
5379
+ _push(`<div class="${ssrRenderClass([t.meta.kind, "tool-line"])}" data-v-43cd8a58><time class="tool-time aw-mono" data-v-43cd8a58>${ssrInterpolate(t.time)}</time><span class="tool-node" data-v-43cd8a58></span><span class="${ssrRenderClass([t.meta.icon, "tool-icon"])}" data-v-43cd8a58></span><span class="tool-name" data-v-43cd8a58>${ssrInterpolate(t.name)}</span>`);
5380
+ if (t.args) _push(`<span class="tool-args"${ssrRenderAttr("title", t.args)} data-v-43cd8a58>${ssrInterpolate(t.args)}</span>`);
5078
5381
  else _push(`<!---->`);
5079
- if (t.meta.kind === "host") _push(`<span class="tool-kind" data-v-8d0f2345>harness</span>`);
5382
+ if (t.meta.kind !== "native") _push(`<span class="${ssrRenderClass([t.meta.kind, "tool-kind"])}" data-v-43cd8a58>${ssrInterpolate(t.meta.kind === "industrial" ? "工业" : "harness")}</span>`);
5080
5383
  else _push(`<!---->`);
5081
5384
  _push(`</div>`);
5082
5385
  });
5083
5386
  _push(`<!--]-->`);
5084
- if (hasMore.value) _push(`<button class="more-btn" data-v-8d0f2345>${ssrInterpolate(expanded.value ? _ctx.$t("clusterTool.k40p82001") : _ctx.$t("clusterTool.expandAll", { p0: toolLines.value.length }))}</button>`);
5387
+ if (hasMore.value) _push(`<button class="more-btn" data-v-43cd8a58>${ssrInterpolate(expanded.value ? _ctx.$t("clusterTool.k40p82001") : _ctx.$t("clusterTool.expandAll", { p0: toolLines.value.length }))}</button>`);
5085
5388
  else _push(`<!---->`);
5086
5389
  _push(`</div>`);
5087
5390
  };
@@ -5089,13 +5392,13 @@ var ClusterTool_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
5089
5392
  });
5090
5393
  //#endregion
5091
5394
  //#region app/components/workshop/blocks/ClusterTool.vue
5092
- var _sfc_setup$46 = ClusterTool_vue_vue_type_script_setup_true_lang_default.setup;
5395
+ var _sfc_setup$47 = ClusterTool_vue_vue_type_script_setup_true_lang_default.setup;
5093
5396
  ClusterTool_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5094
5397
  const ssrContext = useSSRContext();
5095
5398
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterTool.vue");
5096
- return _sfc_setup$46 ? _sfc_setup$46(props, ctx) : void 0;
5399
+ return _sfc_setup$47 ? _sfc_setup$47(props, ctx) : void 0;
5097
5400
  };
5098
- var ClusterTool_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8d0f2345"]]), { __name: "WorkshopBlocksClusterTool" });
5401
+ var ClusterTool_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterTool_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-43cd8a58"]]), { __name: "WorkshopBlocksClusterTool" });
5099
5402
  //#endregion
5100
5403
  //#region app/components/workshop/blocks/ClusterStatus.vue?vue&type=script&setup=true&lang.ts
5101
5404
  var ClusterStatus_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -5141,11 +5444,11 @@ var ClusterStatus_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
5141
5444
  });
5142
5445
  //#endregion
5143
5446
  //#region app/components/workshop/blocks/ClusterStatus.vue
5144
- var _sfc_setup$45 = ClusterStatus_vue_vue_type_script_setup_true_lang_default.setup;
5447
+ var _sfc_setup$46 = ClusterStatus_vue_vue_type_script_setup_true_lang_default.setup;
5145
5448
  ClusterStatus_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5146
5449
  const ssrContext = useSSRContext();
5147
5450
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterStatus.vue");
5148
- return _sfc_setup$45 ? _sfc_setup$45(props, ctx) : void 0;
5451
+ return _sfc_setup$46 ? _sfc_setup$46(props, ctx) : void 0;
5149
5452
  };
5150
5453
  var ClusterStatus_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterStatus_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-dd6205eb"]]), { __name: "WorkshopBlocksClusterStatus" });
5151
5454
  //#endregion
@@ -5200,11 +5503,11 @@ var ClusterLife_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
5200
5503
  });
5201
5504
  //#endregion
5202
5505
  //#region app/components/workshop/blocks/ClusterLife.vue
5203
- var _sfc_setup$44 = ClusterLife_vue_vue_type_script_setup_true_lang_default.setup;
5506
+ var _sfc_setup$45 = ClusterLife_vue_vue_type_script_setup_true_lang_default.setup;
5204
5507
  ClusterLife_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5205
5508
  const ssrContext = useSSRContext();
5206
5509
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterLife.vue");
5207
- return _sfc_setup$44 ? _sfc_setup$44(props, ctx) : void 0;
5510
+ return _sfc_setup$45 ? _sfc_setup$45(props, ctx) : void 0;
5208
5511
  };
5209
5512
  var ClusterLife_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterLife_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f7b93a69"]]), { __name: "WorkshopBlocksClusterLife" });
5210
5513
  //#endregion
@@ -5314,11 +5617,11 @@ var ClusterRoute_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
5314
5617
  });
5315
5618
  //#endregion
5316
5619
  //#region app/components/workshop/blocks/ClusterRoute.vue
5317
- var _sfc_setup$43 = ClusterRoute_vue_vue_type_script_setup_true_lang_default.setup;
5620
+ var _sfc_setup$44 = ClusterRoute_vue_vue_type_script_setup_true_lang_default.setup;
5318
5621
  ClusterRoute_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5319
5622
  const ssrContext = useSSRContext();
5320
5623
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterRoute.vue");
5321
- return _sfc_setup$43 ? _sfc_setup$43(props, ctx) : void 0;
5624
+ return _sfc_setup$44 ? _sfc_setup$44(props, ctx) : void 0;
5322
5625
  };
5323
5626
  var ClusterRoute_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterRoute_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ef9dc289"]]), { __name: "WorkshopBlocksClusterRoute" });
5324
5627
  //#endregion
@@ -5436,11 +5739,11 @@ var ClusterTask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
5436
5739
  });
5437
5740
  //#endregion
5438
5741
  //#region app/components/workshop/blocks/ClusterTask.vue
5439
- var _sfc_setup$42 = ClusterTask_vue_vue_type_script_setup_true_lang_default.setup;
5742
+ var _sfc_setup$43 = ClusterTask_vue_vue_type_script_setup_true_lang_default.setup;
5440
5743
  ClusterTask_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5441
5744
  const ssrContext = useSSRContext();
5442
5745
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterTask.vue");
5443
- return _sfc_setup$42 ? _sfc_setup$42(props, ctx) : void 0;
5746
+ return _sfc_setup$43 ? _sfc_setup$43(props, ctx) : void 0;
5444
5747
  };
5445
5748
  var ClusterTask_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterTask_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-cdaa9d8e"]]), { __name: "WorkshopBlocksClusterTask" });
5446
5749
  //#endregion
@@ -5527,11 +5830,11 @@ var ArtifactCard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
5527
5830
  });
5528
5831
  //#endregion
5529
5832
  //#region app/components/workshop/ArtifactCard.vue
5530
- var _sfc_setup$41 = ArtifactCard_vue_vue_type_script_setup_true_lang_default.setup;
5833
+ var _sfc_setup$42 = ArtifactCard_vue_vue_type_script_setup_true_lang_default.setup;
5531
5834
  ArtifactCard_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5532
5835
  const ssrContext = useSSRContext();
5533
5836
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/ArtifactCard.vue");
5534
- return _sfc_setup$41 ? _sfc_setup$41(props, ctx) : void 0;
5837
+ return _sfc_setup$42 ? _sfc_setup$42(props, ctx) : void 0;
5535
5838
  };
5536
5839
  var ArtifactCard_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ArtifactCard_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-64e0e27f"]]), { __name: "WorkshopArtifactCard" });
5537
5840
  //#endregion
@@ -5570,11 +5873,11 @@ var ClusterArtifact_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
5570
5873
  });
5571
5874
  //#endregion
5572
5875
  //#region app/components/workshop/blocks/ClusterArtifact.vue
5573
- var _sfc_setup$40 = ClusterArtifact_vue_vue_type_script_setup_true_lang_default.setup;
5876
+ var _sfc_setup$41 = ClusterArtifact_vue_vue_type_script_setup_true_lang_default.setup;
5574
5877
  ClusterArtifact_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5575
5878
  const ssrContext = useSSRContext();
5576
5879
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterArtifact.vue");
5577
- return _sfc_setup$40 ? _sfc_setup$40(props, ctx) : void 0;
5880
+ return _sfc_setup$41 ? _sfc_setup$41(props, ctx) : void 0;
5578
5881
  };
5579
5882
  var ClusterArtifact_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterArtifact_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-305e2e30"]]), { __name: "WorkshopBlocksClusterArtifact" });
5580
5883
  //#endregion
@@ -5624,11 +5927,11 @@ var ClusterMember_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
5624
5927
  });
5625
5928
  //#endregion
5626
5929
  //#region app/components/workshop/blocks/ClusterMember.vue
5627
- var _sfc_setup$39 = ClusterMember_vue_vue_type_script_setup_true_lang_default.setup;
5930
+ var _sfc_setup$40 = ClusterMember_vue_vue_type_script_setup_true_lang_default.setup;
5628
5931
  ClusterMember_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5629
5932
  const ssrContext = useSSRContext();
5630
5933
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterMember.vue");
5631
- return _sfc_setup$39 ? _sfc_setup$39(props, ctx) : void 0;
5934
+ return _sfc_setup$40 ? _sfc_setup$40(props, ctx) : void 0;
5632
5935
  };
5633
5936
  var ClusterMember_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterMember_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-98712ab3"]]), { __name: "WorkshopBlocksClusterMember" });
5634
5937
  //#endregion
@@ -5665,11 +5968,11 @@ var ClusterMemory_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
5665
5968
  });
5666
5969
  //#endregion
5667
5970
  //#region app/components/workshop/blocks/ClusterMemory.vue
5668
- var _sfc_setup$38 = ClusterMemory_vue_vue_type_script_setup_true_lang_default.setup;
5971
+ var _sfc_setup$39 = ClusterMemory_vue_vue_type_script_setup_true_lang_default.setup;
5669
5972
  ClusterMemory_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5670
5973
  const ssrContext = useSSRContext();
5671
5974
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterMemory.vue");
5672
- return _sfc_setup$38 ? _sfc_setup$38(props, ctx) : void 0;
5975
+ return _sfc_setup$39 ? _sfc_setup$39(props, ctx) : void 0;
5673
5976
  };
5674
5977
  var ClusterMemory_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterMemory_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-455b8e4b"]]), { __name: "WorkshopBlocksClusterMemory" });
5675
5978
  //#endregion
@@ -5709,11 +6012,11 @@ var ClusterError_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
5709
6012
  });
5710
6013
  //#endregion
5711
6014
  //#region app/components/workshop/blocks/ClusterError.vue
5712
- var _sfc_setup$37 = ClusterError_vue_vue_type_script_setup_true_lang_default.setup;
6015
+ var _sfc_setup$38 = ClusterError_vue_vue_type_script_setup_true_lang_default.setup;
5713
6016
  ClusterError_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5714
6017
  const ssrContext = useSSRContext();
5715
6018
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterError.vue");
5716
- return _sfc_setup$37 ? _sfc_setup$37(props, ctx) : void 0;
6019
+ return _sfc_setup$38 ? _sfc_setup$38(props, ctx) : void 0;
5717
6020
  };
5718
6021
  var ClusterError_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterError_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-13861835"]]), { __name: "WorkshopBlocksClusterError" });
5719
6022
  //#endregion
@@ -5749,15 +6052,25 @@ var ClusterOther_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
5749
6052
  });
5750
6053
  //#endregion
5751
6054
  //#region app/components/workshop/blocks/ClusterOther.vue
5752
- var _sfc_setup$36 = ClusterOther_vue_vue_type_script_setup_true_lang_default.setup;
6055
+ var _sfc_setup$37 = ClusterOther_vue_vue_type_script_setup_true_lang_default.setup;
5753
6056
  ClusterOther_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5754
6057
  const ssrContext = useSSRContext();
5755
6058
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/blocks/ClusterOther.vue");
5756
- return _sfc_setup$36 ? _sfc_setup$36(props, ctx) : void 0;
6059
+ return _sfc_setup$37 ? _sfc_setup$37(props, ctx) : void 0;
5757
6060
  };
5758
6061
  var ClusterOther_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ClusterOther_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ca60ab9f"]]), { __name: "WorkshopBlocksClusterOther" });
5759
6062
  //#endregion
5760
6063
  //#region app/components/workshop/EventBlock.vue?vue&type=script&setup=true&lang.ts
6064
+ /**
6065
+ * 事件聚合块 — open-tag 聊天行声部(.msg 网格:头像列 + 内容列):
6066
+ * - 头部:26px 头像 + 名字 + 类别小标 + 计数/时间;正文落在内容列(块体组件复用);
6067
+ * - 连续同发送者块 compact 分组:隐藏头像与名字(Slack 消息分组),保留左列对齐;
6068
+ * - 悬停工具条(open-tag msg-toolbar):流/消息块可复制全文 / 引用到输入框(经 Composer 总线);
6069
+ * - 各行渲染按 kind 分发到隔离组件 —— 流式更新只触发命中 kind 的组件。
6070
+ *
6071
+ * 本壳层只做编排:派生状态在 useEventBlockView,头像列/头部行在 blocks/ 子组件,
6072
+ * 正文按 kind 分发到 Cluster* 块体;对外 props 与 DOM 数据属性(浏览器测试对账用)不变。
6073
+ */
5761
6074
  var EventBlock_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
5762
6075
  __name: "EventBlock",
5763
6076
  __ssrInlineRender: true,
@@ -5768,16 +6081,6 @@ var EventBlock_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
5768
6081
  enterStage: {}
5769
6082
  },
5770
6083
  setup(__props) {
5771
- /**
5772
- * 事件聚合块 — open-tag 聊天行声部(.msg 网格:头像列 + 内容列):
5773
- * - 头部:26px 头像 + 名字 + 类别小标 + 计数/时间;正文落在内容列(块体组件复用);
5774
- * - 连续同发送者块 compact 分组:隐藏头像与名字(Slack 消息分组),保留左列对齐;
5775
- * - 悬停工具条(open-tag msg-toolbar):流/消息块可复制全文 / 引用到输入框(经 Composer 总线);
5776
- * - 各行渲染按 kind 分发到隔离组件 —— 流式更新只触发命中 kind 的组件。
5777
- *
5778
- * 本壳层只做编排:派生状态在 useEventBlockView,头像列/头部行在 blocks/ 子组件,
5779
- * 正文按 kind 分发到 Cluster* 块体;对外 props 与 DOM 数据属性(浏览器测试对账用)不变。
5780
- */
5781
6084
  const props = __props;
5782
6085
  /** 壳层自身要用的派生值(档位/首帧 seq/紧凑态时间);子组件各自取所需 */
5783
6086
  const { time, tier, firstSeq } = useEventBlockView(() => props.block);
@@ -5795,6 +6098,7 @@ var EventBlock_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
5795
6098
  other: ClusterOther_default
5796
6099
  };
5797
6100
  const body = computed(() => KIND_COMPONENT[props.block.kind] ?? ClusterOther_default);
6101
+ const operation = computed(() => classifyOperation(props.block.events[props.block.events.length - 1]));
5798
6102
  return (_ctx, _push, _parent, _attrs) => {
5799
6103
  _push(`<section${ssrRenderAttrs(mergeProps({
5800
6104
  class: ["event-block", {
@@ -5809,15 +6113,17 @@ var EventBlock_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
5809
6113
  "data-covered": __props.block.coveredBy ? "true" : "false",
5810
6114
  "data-seq": unref(firstSeq),
5811
6115
  "data-events": __props.block.events.length,
5812
- "data-folded": __props.block.folded
5813
- }, _attrs))} data-v-3d2f03c1>`);
6116
+ "data-folded": __props.block.folded,
6117
+ "data-operation": operation.value?.kind,
6118
+ "data-operation-severity": operation.value?.severity
6119
+ }, _attrs))} data-v-e91d0927>`);
5814
6120
  _push(ssrRenderComponent(EventBlockAvatar_default, { block: __props.block }, null, _parent));
5815
- _push(`<div class="eb-main" data-v-3d2f03c1>`);
6121
+ _push(`<div class="eb-main" data-v-e91d0927>`);
5816
6122
  _push(ssrRenderComponent(EventBlockHead_default, {
5817
6123
  block: __props.block,
5818
6124
  compact: __props.compact
5819
6125
  }, null, _parent));
5820
- if (__props.compact) _push(`<span class="ghost-time" data-v-3d2f03c1>${ssrInterpolate(unref(time).slice(0, 5))}</span>`);
6126
+ if (__props.compact) _push(`<span class="ghost-time" data-v-e91d0927>${ssrInterpolate(unref(time).slice(0, 5))}</span>`);
5821
6127
  else _push(`<!---->`);
5822
6128
  ssrRenderVNode(_push, createVNode(resolveDynamicComponent(body.value), {
5823
6129
  block: __props.block,
@@ -5829,13 +6135,13 @@ var EventBlock_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
5829
6135
  });
5830
6136
  //#endregion
5831
6137
  //#region app/components/workshop/EventBlock.vue
5832
- var _sfc_setup$35 = EventBlock_vue_vue_type_script_setup_true_lang_default.setup;
6138
+ var _sfc_setup$36 = EventBlock_vue_vue_type_script_setup_true_lang_default.setup;
5833
6139
  EventBlock_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5834
6140
  const ssrContext = useSSRContext();
5835
6141
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/EventBlock.vue");
5836
- return _sfc_setup$35 ? _sfc_setup$35(props, ctx) : void 0;
6142
+ return _sfc_setup$36 ? _sfc_setup$36(props, ctx) : void 0;
5837
6143
  };
5838
- var EventBlock_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(EventBlock_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3d2f03c1"]]), { __name: "WorkshopEventBlock" });
6144
+ var EventBlock_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(EventBlock_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e91d0927"]]), { __name: "WorkshopEventBlock" });
5839
6145
  //#endregion
5840
6146
  //#region app/components/workshop/transcript/TranscriptBlockList.vue?vue&type=script&setup=true&lang.ts
5841
6147
  var TranscriptBlockList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -5905,11 +6211,11 @@ var TranscriptBlockList_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
5905
6211
  });
5906
6212
  //#endregion
5907
6213
  //#region app/components/workshop/transcript/TranscriptBlockList.vue
5908
- var _sfc_setup$34 = TranscriptBlockList_vue_vue_type_script_setup_true_lang_default.setup;
6214
+ var _sfc_setup$35 = TranscriptBlockList_vue_vue_type_script_setup_true_lang_default.setup;
5909
6215
  TranscriptBlockList_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5910
6216
  const ssrContext = useSSRContext();
5911
6217
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/transcript/TranscriptBlockList.vue");
5912
- return _sfc_setup$34 ? _sfc_setup$34(props, ctx) : void 0;
6218
+ return _sfc_setup$35 ? _sfc_setup$35(props, ctx) : void 0;
5913
6219
  };
5914
6220
  var TranscriptBlockList_default = Object.assign(TranscriptBlockList_vue_vue_type_script_setup_true_lang_default, { __name: "WorkshopTranscriptBlockList" });
5915
6221
  //#endregion
@@ -5937,11 +6243,11 @@ var TranscriptEarlierPager_vue_vue_type_script_setup_true_lang_default = /*@__PU
5937
6243
  });
5938
6244
  //#endregion
5939
6245
  //#region app/components/workshop/transcript/TranscriptEarlierPager.vue
5940
- var _sfc_setup$33 = TranscriptEarlierPager_vue_vue_type_script_setup_true_lang_default.setup;
6246
+ var _sfc_setup$34 = TranscriptEarlierPager_vue_vue_type_script_setup_true_lang_default.setup;
5941
6247
  TranscriptEarlierPager_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5942
6248
  const ssrContext = useSSRContext();
5943
6249
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/transcript/TranscriptEarlierPager.vue");
5944
- return _sfc_setup$33 ? _sfc_setup$33(props, ctx) : void 0;
6250
+ return _sfc_setup$34 ? _sfc_setup$34(props, ctx) : void 0;
5945
6251
  };
5946
6252
  var TranscriptEarlierPager_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TranscriptEarlierPager_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4f4c87fd"]]), { __name: "WorkshopTranscriptEarlierPager" });
5947
6253
  //#endregion
@@ -5981,11 +6287,11 @@ var TranscriptEmptyState_vue_vue_type_script_setup_true_lang_default = /*@__PURE
5981
6287
  });
5982
6288
  //#endregion
5983
6289
  //#region app/components/workshop/transcript/TranscriptEmptyState.vue
5984
- var _sfc_setup$32 = TranscriptEmptyState_vue_vue_type_script_setup_true_lang_default.setup;
6290
+ var _sfc_setup$33 = TranscriptEmptyState_vue_vue_type_script_setup_true_lang_default.setup;
5985
6291
  TranscriptEmptyState_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
5986
6292
  const ssrContext = useSSRContext();
5987
6293
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/transcript/TranscriptEmptyState.vue");
5988
- return _sfc_setup$32 ? _sfc_setup$32(props, ctx) : void 0;
6294
+ return _sfc_setup$33 ? _sfc_setup$33(props, ctx) : void 0;
5989
6295
  };
5990
6296
  var TranscriptEmptyState_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TranscriptEmptyState_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-011a7f39"]]), { __name: "WorkshopTranscriptEmptyState" });
5991
6297
  //#endregion
@@ -6031,11 +6337,11 @@ var TranscriptFilterBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
6031
6337
  });
6032
6338
  //#endregion
6033
6339
  //#region app/components/workshop/transcript/TranscriptFilterBar.vue
6034
- var _sfc_setup$31 = TranscriptFilterBar_vue_vue_type_script_setup_true_lang_default.setup;
6340
+ var _sfc_setup$32 = TranscriptFilterBar_vue_vue_type_script_setup_true_lang_default.setup;
6035
6341
  TranscriptFilterBar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6036
6342
  const ssrContext = useSSRContext();
6037
6343
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/transcript/TranscriptFilterBar.vue");
6038
- return _sfc_setup$31 ? _sfc_setup$31(props, ctx) : void 0;
6344
+ return _sfc_setup$32 ? _sfc_setup$32(props, ctx) : void 0;
6039
6345
  };
6040
6346
  var TranscriptFilterBar_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TranscriptFilterBar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fbefd061"]]), { __name: "WorkshopTranscriptFilterBar" });
6041
6347
  //#endregion
@@ -6155,11 +6461,11 @@ var TranscriptTimeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
6155
6461
  });
6156
6462
  //#endregion
6157
6463
  //#region app/components/workshop/TranscriptTimeline.vue
6158
- var _sfc_setup$30 = TranscriptTimeline_vue_vue_type_script_setup_true_lang_default.setup;
6464
+ var _sfc_setup$31 = TranscriptTimeline_vue_vue_type_script_setup_true_lang_default.setup;
6159
6465
  TranscriptTimeline_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6160
6466
  const ssrContext = useSSRContext();
6161
6467
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/TranscriptTimeline.vue");
6162
- return _sfc_setup$30 ? _sfc_setup$30(props, ctx) : void 0;
6468
+ return _sfc_setup$31 ? _sfc_setup$31(props, ctx) : void 0;
6163
6469
  };
6164
6470
  var TranscriptTimeline_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TranscriptTimeline_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4365608b"]]), { __name: "WorkshopTranscriptTimeline" });
6165
6471
  //#endregion
@@ -6213,6 +6519,15 @@ var ChatTimeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
6213
6519
  function renderText(m) {
6214
6520
  return mdLiteMentions(m.text, mentionMembers.value);
6215
6521
  }
6522
+ function operationOf(m) {
6523
+ return classifyOperation({
6524
+ type: "agent.message",
6525
+ at: m.createdAt,
6526
+ channelId: props.channelId,
6527
+ agentId: m.senderType === "agent" ? m.senderId : void 0,
6528
+ payload: { parts: [{ text: m.text }] }
6529
+ });
6530
+ }
6216
6531
  /** 引用锚点的发送者名(锚点不在已加载窗口内 → 显示"更早的消息") */
6217
6532
  function replyAnchorName(m) {
6218
6533
  const anchor = m.replyToId ? byId.value.get(m.replyToId) : void 0;
@@ -6283,40 +6598,42 @@ var ChatTimeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
6283
6598
  scrollToBottom();
6284
6599
  });
6285
6600
  return (_ctx, _push, _parent, _attrs) => {
6286
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "chat-timeline" }, _attrs))} data-v-23402b9a><div class="ct-head" data-v-23402b9a><span class="i-tabler-messages ct-icon" data-v-23402b9a></span><span class="ct-title" data-v-23402b9a>群聊</span><span class="ct-count" data-v-23402b9a>${ssrInterpolate(messages.value.length)} 条</span><span class="ct-spacer" data-v-23402b9a></span>`);
6287
- if (!atBottom.value) _push(`<span class="ct-jump" role="button" tabindex="0" title="回到最新" data-v-23402b9a><span class="i-tabler-arrow-down" data-v-23402b9a></span> 最新 </span>`);
6601
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "chat-timeline" }, _attrs))} data-v-b705073e><div class="ct-head" data-v-b705073e><span class="i-tabler-messages ct-icon" data-v-b705073e></span><span class="ct-title" data-v-b705073e>群聊</span><span class="ct-count" data-v-b705073e>${ssrInterpolate(messages.value.length)} 条</span><span class="ct-spacer" data-v-b705073e></span>`);
6602
+ if (!atBottom.value) _push(`<span class="ct-jump" role="button" tabindex="0" title="回到最新" data-v-b705073e><span class="i-tabler-arrow-down" data-v-b705073e></span> 最新 </span>`);
6288
6603
  else _push(`<!---->`);
6289
- _push(`</div><div class="ct-scroll" data-v-23402b9a>`);
6290
- if (hasMore.value && messages.value.length > 0) _push(`<button type="button" class="ct-earlier"${ssrIncludeBooleanAttr(loading.value) ? " disabled" : ""} data-v-23402b9a>${ssrInterpolate(loading.value ? "加载中…" : "加载更早的消息")}</button>`);
6604
+ _push(`</div><div class="ct-scroll" data-v-b705073e>`);
6605
+ if (hasMore.value && messages.value.length > 0) _push(`<button type="button" class="ct-earlier"${ssrIncludeBooleanAttr(loading.value) ? " disabled" : ""} data-v-b705073e>${ssrInterpolate(loading.value ? "加载中…" : "加载更早的消息")}</button>`);
6291
6606
  else _push(`<!---->`);
6292
- if (messages.value.length === 0) _push(`<div class="ct-empty" data-v-23402b9a><span class="i-tabler-message-2 ct-empty-icon" data-v-23402b9a></span><div data-v-23402b9a>还没有群聊消息</div><div class="ct-empty-sub" data-v-23402b9a> 直接发言只进群聊(0 次 Agent 执行);输入 @ 提及 Agent 才会触发执行,@ 成员只发定向通知。 </div></div>`);
6607
+ if (messages.value.length === 0) _push(`<div class="ct-empty" data-v-b705073e><span class="i-tabler-message-2 ct-empty-icon" data-v-b705073e></span><div data-v-b705073e>还没有群聊消息</div><div class="ct-empty-sub" data-v-b705073e> 直接发言只进群聊(0 次 Agent 执行);输入 @ 提及 Agent 才会触发执行,@ 成员只发定向通知。 </div></div>`);
6293
6608
  else _push(`<!---->`);
6294
6609
  _push(`<!--[-->`);
6295
6610
  ssrRenderList(messages.value, (m) => {
6296
- _push(`<div class="${ssrRenderClass([m.senderType, "ct-row"])}" data-v-23402b9a><span class="${ssrRenderClass([{ "is-agent": m.senderType === "agent" }, "aw-avatar ct-ava"])}" style="${ssrRenderStyle(m.senderType === "agent" ? { "--av": unref(agentHueColor)(m.senderId) } : {})}" data-v-23402b9a>${ssrInterpolate(avatarText(m))}</span><div class="ct-body" data-v-23402b9a><div class="ct-meta" data-v-23402b9a><span class="ct-sender" data-v-23402b9a>${ssrInterpolate(senderNameOf(m))}</span><span class="${ssrRenderClass([m.senderType, "ct-role"])}" data-v-23402b9a>`);
6297
- if (m.senderType === "user") _push(`<span class="i-tabler-user" data-v-23402b9a></span>`);
6298
- else if (m.senderType === "agent") _push(`<span class="i-tabler-robot" data-v-23402b9a></span>`);
6611
+ _push(`<div class="${ssrRenderClass([[m.senderType, operationOf(m) ? `op-${operationOf(m).kind}` : ""], "ct-row"])}"${ssrRenderAttr("data-operation", operationOf(m)?.kind)}${ssrRenderAttr("data-operation-severity", operationOf(m)?.severity)} data-v-b705073e><span class="${ssrRenderClass([{ "is-agent": m.senderType === "agent" }, "aw-avatar ct-ava"])}" style="${ssrRenderStyle(m.senderType === "agent" ? { "--av": unref(agentHueColor)(m.senderId) } : {})}" data-v-b705073e>${ssrInterpolate(avatarText(m))}</span><div class="ct-body" data-v-b705073e><div class="ct-meta" data-v-b705073e><span class="ct-sender" data-v-b705073e>${ssrInterpolate(senderNameOf(m))}</span><span class="${ssrRenderClass([m.senderType, "ct-role"])}" data-v-b705073e>`);
6612
+ if (m.senderType === "user") _push(`<span class="i-tabler-user" data-v-b705073e></span>`);
6613
+ else if (m.senderType === "agent") _push(`<span class="i-tabler-robot" data-v-b705073e></span>`);
6614
+ else _push(`<!---->`);
6615
+ _push(` ${ssrInterpolate(m.senderType === "agent" ? unref(entities).agents[__props.channelId]?.find((a) => a.agentId === m.senderId)?.role ?? "agent" : m.senderType === "user" ? "用户" : "系统")}</span><span class="ct-time" data-v-b705073e>${ssrInterpolate(unref(formatLocalClock)(m.createdAt, false))}</span><button type="button" class="ct-reply-btn" title="引用这条消息回复" data-v-b705073e><span class="i-tabler-arrow-back-up" data-v-b705073e></span> 回复 </button></div>`);
6616
+ if (m.replyToId) _push(`<div class="ct-replyto" data-v-b705073e><span class="i-tabler-corner-down-right" data-v-b705073e></span> 回复 <b data-v-b705073e>${ssrInterpolate(replyAnchorName(m))}</b></div>`);
6299
6617
  else _push(`<!---->`);
6300
- _push(` ${ssrInterpolate(m.senderType === "agent" ? unref(entities).agents[__props.channelId]?.find((a) => a.agentId === m.senderId)?.role ?? "agent" : m.senderType === "user" ? "用户" : "系统")}</span><span class="ct-time" data-v-23402b9a>${ssrInterpolate(unref(formatLocalClock)(m.createdAt, false))}</span><button type="button" class="ct-reply-btn" title="引用这条消息回复" data-v-23402b9a><span class="i-tabler-arrow-back-up" data-v-23402b9a></span> 回复 </button></div>`);
6301
- if (m.replyToId) _push(`<div class="ct-replyto" data-v-23402b9a><span class="i-tabler-corner-down-right" data-v-23402b9a></span> 回复 <b data-v-23402b9a>${ssrInterpolate(replyAnchorName(m))}</b></div>`);
6618
+ if (operationOf(m)) _push(`<div class="${ssrRenderClass([operationOf(m).kind, "ct-operation-badge"])}" data-v-b705073e><span class="${ssrRenderClass(operationOf(m).icon)}" data-v-b705073e></span> ${ssrInterpolate(operationOf(m).label)}</div>`);
6302
6619
  else _push(`<!---->`);
6303
- _push(`<div class="ct-text" data-v-23402b9a>${renderText(m) ?? ""}</div>`);
6620
+ _push(`<div class="ct-text" data-v-b705073e>${renderText(m) ?? ""}</div>`);
6304
6621
  if (m.mentions.length > 0) {
6305
- _push(`<div class="ct-mentions" data-v-23402b9a><!--[-->`);
6622
+ _push(`<div class="ct-mentions" data-v-b705073e><!--[-->`);
6306
6623
  ssrRenderList(m.mentions, (mm) => {
6307
- _push(`<span class="${ssrRenderClass([mm.type, "ct-mention-chip"])}"${ssrRenderAttr("data-agent-id", mm.type === "agent" ? mm.id : void 0)}${ssrRenderAttr("title", mm.type === "agent" ? "点击查看该 Agent" : "被 @ 的成员(不触发 Agent)")} data-v-23402b9a><span class="${ssrRenderClass(mm.type === "agent" ? "i-tabler-robot" : "i-tabler-user")}" data-v-23402b9a></span> @${ssrInterpolate(mm.label || (mm.type === "agent" ? unref(entities).agentName(__props.channelId, mm.id) : mm.id.slice(0, 8)))}</span>`);
6624
+ _push(`<span class="${ssrRenderClass([mm.type, "ct-mention-chip"])}"${ssrRenderAttr("data-agent-id", mm.type === "agent" ? mm.id : void 0)}${ssrRenderAttr("title", mm.type === "agent" ? "点击查看该 Agent" : "被 @ 的成员(不触发 Agent)")} data-v-b705073e><span class="${ssrRenderClass(mm.type === "agent" ? "i-tabler-robot" : "i-tabler-user")}" data-v-b705073e></span> @${ssrInterpolate(mm.label || (mm.type === "agent" ? unref(entities).agentName(__props.channelId, mm.id) : mm.id.slice(0, 8)))}</span>`);
6308
6625
  });
6309
6626
  _push(`<!--]--></div>`);
6310
6627
  } else _push(`<!---->`);
6311
6628
  if (deliveriesOf(m).length > 0) {
6312
- _push(`<div class="ct-deliveries" data-v-23402b9a><!--[-->`);
6629
+ _push(`<div class="ct-deliveries" data-v-b705073e><!--[-->`);
6313
6630
  ssrRenderList(deliveriesOf(m), (d) => {
6314
- _push(`<span class="ct-delivery"${ssrRenderAttr("data-tone", DELIVERY_META[d.status]?.tone ?? "pending")}${ssrRenderAttr("title", d.error || `deliveryId: ${d.deliveryId}`)} data-v-23402b9a><span class="cd-dot" data-v-23402b9a></span>@${ssrInterpolate(unref(entities).agentName(__props.channelId, d.targetAgentId))} · ${ssrInterpolate(DELIVERY_META[d.status]?.label ?? d.status)}</span>`);
6631
+ _push(`<span class="ct-delivery"${ssrRenderAttr("data-tone", DELIVERY_META[d.status]?.tone ?? "pending")}${ssrRenderAttr("title", d.error || `deliveryId: ${d.deliveryId}`)} data-v-b705073e><span class="cd-dot" data-v-b705073e></span>@${ssrInterpolate(unref(entities).agentName(__props.channelId, d.targetAgentId))} · ${ssrInterpolate(DELIVERY_META[d.status]?.label ?? d.status)}</span>`);
6315
6632
  });
6316
6633
  _push(`<!--]--></div>`);
6317
6634
  } else _push(`<!---->`);
6318
6635
  if (m.senderType === "agent" && m.sourceChatMessageId) {
6319
- _push(`<div class="ct-source" data-v-23402b9a><span class="i-tabler-link" data-v-23402b9a></span> 回答自 ${ssrInterpolate(m.sourceChatMessageId.slice(0, 8))} `);
6636
+ _push(`<div class="ct-source" data-v-b705073e><span class="i-tabler-link" data-v-b705073e></span> 回答自 ${ssrInterpolate(m.sourceChatMessageId.slice(0, 8))} `);
6320
6637
  if (m.requesterUserId) _push(`<!--[--> · 提问者 ${ssrInterpolate(m.requesterUserId.slice(0, 8))}<!--]-->`);
6321
6638
  else _push(`<!---->`);
6322
6639
  _push(`</div>`);
@@ -6329,13 +6646,13 @@ var ChatTimeline_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
6329
6646
  });
6330
6647
  //#endregion
6331
6648
  //#region app/components/workshop/ChatTimeline.vue
6332
- var _sfc_setup$29 = ChatTimeline_vue_vue_type_script_setup_true_lang_default.setup;
6649
+ var _sfc_setup$30 = ChatTimeline_vue_vue_type_script_setup_true_lang_default.setup;
6333
6650
  ChatTimeline_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6334
6651
  const ssrContext = useSSRContext();
6335
6652
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/ChatTimeline.vue");
6336
- return _sfc_setup$29 ? _sfc_setup$29(props, ctx) : void 0;
6653
+ return _sfc_setup$30 ? _sfc_setup$30(props, ctx) : void 0;
6337
6654
  };
6338
- var ChatTimeline_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChatTimeline_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-23402b9a"]]), { __name: "WorkshopChatTimeline" });
6655
+ var ChatTimeline_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChatTimeline_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-b705073e"]]), { __name: "WorkshopChatTimeline" });
6339
6656
  function useLaneWidths() {
6340
6657
  const laneWidths = useStorage("aw.harness.laneW", {});
6341
6658
  const laneWidth = (id) => laneWidths.value[id] ?? 320;
@@ -6476,11 +6793,11 @@ var LaneBlocks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
6476
6793
  });
6477
6794
  //#endregion
6478
6795
  //#region app/components/workshop/lanes/LaneBlocks.vue
6479
- var _sfc_setup$28 = LaneBlocks_vue_vue_type_script_setup_true_lang_default.setup;
6796
+ var _sfc_setup$29 = LaneBlocks_vue_vue_type_script_setup_true_lang_default.setup;
6480
6797
  LaneBlocks_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6481
6798
  const ssrContext = useSSRContext();
6482
6799
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/lanes/LaneBlocks.vue");
6483
- return _sfc_setup$28 ? _sfc_setup$28(props, ctx) : void 0;
6800
+ return _sfc_setup$29 ? _sfc_setup$29(props, ctx) : void 0;
6484
6801
  };
6485
6802
  var LaneBlocks_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LaneBlocks_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e020dd8e"]]), { __name: "WorkshopLanesLaneBlocks" });
6486
6803
  //#endregion
@@ -6517,11 +6834,11 @@ var LanesToolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
6517
6834
  });
6518
6835
  //#endregion
6519
6836
  //#region app/components/workshop/lanes/LanesToolbar.vue
6520
- var _sfc_setup$27 = LanesToolbar_vue_vue_type_script_setup_true_lang_default.setup;
6837
+ var _sfc_setup$28 = LanesToolbar_vue_vue_type_script_setup_true_lang_default.setup;
6521
6838
  LanesToolbar_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6522
6839
  const ssrContext = useSSRContext();
6523
6840
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/lanes/LanesToolbar.vue");
6524
- return _sfc_setup$27 ? _sfc_setup$27(props, ctx) : void 0;
6841
+ return _sfc_setup$28 ? _sfc_setup$28(props, ctx) : void 0;
6525
6842
  };
6526
6843
  var LanesToolbar_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LanesToolbar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5f5d46d5"]]), { __name: "WorkshopLanesToolbar" });
6527
6844
  //#endregion
@@ -6725,11 +7042,11 @@ var LaneHeader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
6725
7042
  });
6726
7043
  //#endregion
6727
7044
  //#region app/components/workshop/lanes/LaneHeader.vue
6728
- var _sfc_setup$26 = LaneHeader_vue_vue_type_script_setup_true_lang_default.setup;
7045
+ var _sfc_setup$27 = LaneHeader_vue_vue_type_script_setup_true_lang_default.setup;
6729
7046
  LaneHeader_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
6730
7047
  const ssrContext = useSSRContext();
6731
7048
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/lanes/LaneHeader.vue");
6732
- return _sfc_setup$26 ? _sfc_setup$26(props, ctx) : void 0;
7049
+ return _sfc_setup$27 ? _sfc_setup$27(props, ctx) : void 0;
6733
7050
  };
6734
7051
  var LaneHeader_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LaneHeader_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1dfd80fa"]]), { __name: "WorkshopLanesLaneHeader" });
6735
7052
  //#endregion
@@ -7575,11 +7892,11 @@ var AddMemberModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
7575
7892
  });
7576
7893
  //#endregion
7577
7894
  //#region app/components/workshop/lanes/AddMemberModal.vue
7578
- var _sfc_setup$25 = AddMemberModal_vue_vue_type_script_setup_true_lang_default.setup;
7895
+ var _sfc_setup$26 = AddMemberModal_vue_vue_type_script_setup_true_lang_default.setup;
7579
7896
  AddMemberModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
7580
7897
  const ssrContext = useSSRContext();
7581
7898
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/lanes/AddMemberModal.vue");
7582
- return _sfc_setup$25 ? _sfc_setup$25(props, ctx) : void 0;
7899
+ return _sfc_setup$26 ? _sfc_setup$26(props, ctx) : void 0;
7583
7900
  };
7584
7901
  var AddMemberModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(AddMemberModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-663bdd51"]]), { __name: "WorkshopLanesAddMemberModal" });
7585
7902
  //#endregion
@@ -7844,11 +8161,11 @@ var EditMemberModal_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
7844
8161
  });
7845
8162
  //#endregion
7846
8163
  //#region app/components/workshop/lanes/EditMemberModal.vue
7847
- var _sfc_setup$24 = EditMemberModal_vue_vue_type_script_setup_true_lang_default.setup;
8164
+ var _sfc_setup$25 = EditMemberModal_vue_vue_type_script_setup_true_lang_default.setup;
7848
8165
  EditMemberModal_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
7849
8166
  const ssrContext = useSSRContext();
7850
8167
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/lanes/EditMemberModal.vue");
7851
- return _sfc_setup$24 ? _sfc_setup$24(props, ctx) : void 0;
8168
+ return _sfc_setup$25 ? _sfc_setup$25(props, ctx) : void 0;
7852
8169
  };
7853
8170
  var EditMemberModal_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(EditMemberModal_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f91b0d8a"]]), { __name: "WorkshopLanesEditMemberModal" });
7854
8171
  //#endregion
@@ -7985,11 +8302,11 @@ var AgentLanesView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
7985
8302
  });
7986
8303
  //#endregion
7987
8304
  //#region app/components/workshop/AgentLanesView.vue
7988
- var _sfc_setup$23 = AgentLanesView_vue_vue_type_script_setup_true_lang_default.setup;
8305
+ var _sfc_setup$24 = AgentLanesView_vue_vue_type_script_setup_true_lang_default.setup;
7989
8306
  AgentLanesView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
7990
8307
  const ssrContext = useSSRContext();
7991
8308
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/AgentLanesView.vue");
7992
- return _sfc_setup$23 ? _sfc_setup$23(props, ctx) : void 0;
8309
+ return _sfc_setup$24 ? _sfc_setup$24(props, ctx) : void 0;
7993
8310
  };
7994
8311
  var AgentLanesView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(AgentLanesView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-84590903"]]), { __name: "WorkshopAgentLanesView" });
7995
8312
  //#endregion
@@ -8312,11 +8629,11 @@ var Card_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
8312
8629
  });
8313
8630
  //#endregion
8314
8631
  //#region app/components/workshop/task-board/Card.vue
8315
- var _sfc_setup$22 = Card_vue_vue_type_script_setup_true_lang_default.setup;
8632
+ var _sfc_setup$23 = Card_vue_vue_type_script_setup_true_lang_default.setup;
8316
8633
  Card_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8317
8634
  const ssrContext = useSSRContext();
8318
8635
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/task-board/Card.vue");
8319
- return _sfc_setup$22 ? _sfc_setup$22(props, ctx) : void 0;
8636
+ return _sfc_setup$23 ? _sfc_setup$23(props, ctx) : void 0;
8320
8637
  };
8321
8638
  var Card_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(Card_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-30e23482"]]), { __name: "WorkshopTaskBoardCard" });
8322
8639
  //#endregion
@@ -8374,11 +8691,11 @@ var Column_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
8374
8691
  });
8375
8692
  //#endregion
8376
8693
  //#region app/components/workshop/task-board/Column.vue
8377
- var _sfc_setup$21 = Column_vue_vue_type_script_setup_true_lang_default.setup;
8694
+ var _sfc_setup$22 = Column_vue_vue_type_script_setup_true_lang_default.setup;
8378
8695
  Column_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8379
8696
  const ssrContext = useSSRContext();
8380
8697
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/task-board/Column.vue");
8381
- return _sfc_setup$21 ? _sfc_setup$21(props, ctx) : void 0;
8698
+ return _sfc_setup$22 ? _sfc_setup$22(props, ctx) : void 0;
8382
8699
  };
8383
8700
  var Column_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(Column_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4b0c885a"]]), { __name: "WorkshopTaskBoardColumn" });
8384
8701
  //#endregion
@@ -8414,11 +8731,11 @@ var List_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
8414
8731
  });
8415
8732
  //#endregion
8416
8733
  //#region app/components/workshop/task-board/List.vue
8417
- var _sfc_setup$20 = List_vue_vue_type_script_setup_true_lang_default.setup;
8734
+ var _sfc_setup$21 = List_vue_vue_type_script_setup_true_lang_default.setup;
8418
8735
  List_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8419
8736
  const ssrContext = useSSRContext();
8420
8737
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/task-board/List.vue");
8421
- return _sfc_setup$20 ? _sfc_setup$20(props, ctx) : void 0;
8738
+ return _sfc_setup$21 ? _sfc_setup$21(props, ctx) : void 0;
8422
8739
  };
8423
8740
  var List_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(List_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fc8a2835"]]), { __name: "WorkshopTaskBoardList" });
8424
8741
  //#endregion
@@ -8447,11 +8764,11 @@ var StatusMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
8447
8764
  });
8448
8765
  //#endregion
8449
8766
  //#region app/components/workshop/task-board/StatusMenu.vue
8450
- var _sfc_setup$19 = StatusMenu_vue_vue_type_script_setup_true_lang_default.setup;
8767
+ var _sfc_setup$20 = StatusMenu_vue_vue_type_script_setup_true_lang_default.setup;
8451
8768
  StatusMenu_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8452
8769
  const ssrContext = useSSRContext();
8453
8770
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/task-board/StatusMenu.vue");
8454
- return _sfc_setup$19 ? _sfc_setup$19(props, ctx) : void 0;
8771
+ return _sfc_setup$20 ? _sfc_setup$20(props, ctx) : void 0;
8455
8772
  };
8456
8773
  var StatusMenu_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(StatusMenu_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d1d85578"]]), { __name: "WorkshopTaskBoardStatusMenu" });
8457
8774
  //#endregion
@@ -8573,11 +8890,11 @@ var TaskBoardView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
8573
8890
  });
8574
8891
  //#endregion
8575
8892
  //#region app/components/workshop/TaskBoardView.vue
8576
- var _sfc_setup$18 = TaskBoardView_vue_vue_type_script_setup_true_lang_default.setup;
8893
+ var _sfc_setup$19 = TaskBoardView_vue_vue_type_script_setup_true_lang_default.setup;
8577
8894
  TaskBoardView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8578
8895
  const ssrContext = useSSRContext();
8579
8896
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/TaskBoardView.vue");
8580
- return _sfc_setup$18 ? _sfc_setup$18(props, ctx) : void 0;
8897
+ return _sfc_setup$19 ? _sfc_setup$19(props, ctx) : void 0;
8581
8898
  };
8582
8899
  var TaskBoardView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TaskBoardView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-c4d89219"]]), { __name: "WorkshopTaskBoardView" });
8583
8900
  //#endregion
@@ -8681,11 +8998,11 @@ var MultiChannelView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
8681
8998
  });
8682
8999
  //#endregion
8683
9000
  //#region app/components/workshop/MultiChannelView.vue
8684
- var _sfc_setup$17 = MultiChannelView_vue_vue_type_script_setup_true_lang_default.setup;
9001
+ var _sfc_setup$18 = MultiChannelView_vue_vue_type_script_setup_true_lang_default.setup;
8685
9002
  MultiChannelView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
8686
9003
  const ssrContext = useSSRContext();
8687
9004
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/MultiChannelView.vue");
8688
- return _sfc_setup$17 ? _sfc_setup$17(props, ctx) : void 0;
9005
+ return _sfc_setup$18 ? _sfc_setup$18(props, ctx) : void 0;
8689
9006
  };
8690
9007
  var MultiChannelView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(MultiChannelView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-072db8c2"]]), { __name: "WorkshopMultiChannelView" });
8691
9008
  //#endregion
@@ -9288,11 +9605,11 @@ var MemoryPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
9288
9605
  });
9289
9606
  //#endregion
9290
9607
  //#region app/components/workshop/MemoryPanel.vue
9291
- var _sfc_setup$16 = MemoryPanel_vue_vue_type_script_setup_true_lang_default.setup;
9608
+ var _sfc_setup$17 = MemoryPanel_vue_vue_type_script_setup_true_lang_default.setup;
9292
9609
  MemoryPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
9293
9610
  const ssrContext = useSSRContext();
9294
9611
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/MemoryPanel.vue");
9295
- return _sfc_setup$16 ? _sfc_setup$16(props, ctx) : void 0;
9612
+ return _sfc_setup$17 ? _sfc_setup$17(props, ctx) : void 0;
9296
9613
  };
9297
9614
  var MemoryPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(MemoryPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a93513da"]]), { __name: "WorkshopMemoryPanel" });
9298
9615
  //#endregion
@@ -9377,11 +9694,11 @@ var StatsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
9377
9694
  });
9378
9695
  //#endregion
9379
9696
  //#region app/components/workshop/StatsPanel.vue
9380
- var _sfc_setup$15 = StatsPanel_vue_vue_type_script_setup_true_lang_default.setup;
9697
+ var _sfc_setup$16 = StatsPanel_vue_vue_type_script_setup_true_lang_default.setup;
9381
9698
  StatsPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
9382
9699
  const ssrContext = useSSRContext();
9383
9700
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/StatsPanel.vue");
9384
- return _sfc_setup$15 ? _sfc_setup$15(props, ctx) : void 0;
9701
+ return _sfc_setup$16 ? _sfc_setup$16(props, ctx) : void 0;
9385
9702
  };
9386
9703
  var StatsPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(StatsPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-23e4d795"]]), { __name: "WorkshopStatsPanel" });
9387
9704
  //#endregion
@@ -9679,11 +9996,11 @@ var InspectorPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
9679
9996
  });
9680
9997
  //#endregion
9681
9998
  //#region app/components/workshop/InspectorPanel.vue
9682
- var _sfc_setup$14 = InspectorPanel_vue_vue_type_script_setup_true_lang_default.setup;
9999
+ var _sfc_setup$15 = InspectorPanel_vue_vue_type_script_setup_true_lang_default.setup;
9683
10000
  InspectorPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
9684
10001
  const ssrContext = useSSRContext();
9685
10002
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/InspectorPanel.vue");
9686
- return _sfc_setup$14 ? _sfc_setup$14(props, ctx) : void 0;
10003
+ return _sfc_setup$15 ? _sfc_setup$15(props, ctx) : void 0;
9687
10004
  };
9688
10005
  var InspectorPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(InspectorPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-38b7c15b"]]), { __name: "WorkshopInspectorPanel" });
9689
10006
  //#endregion
@@ -9748,11 +10065,11 @@ var CenterPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
9748
10065
  });
9749
10066
  //#endregion
9750
10067
  //#region app/components/workshop/console/CenterPane.vue
9751
- var _sfc_setup$13 = CenterPane_vue_vue_type_script_setup_true_lang_default.setup;
10068
+ var _sfc_setup$14 = CenterPane_vue_vue_type_script_setup_true_lang_default.setup;
9752
10069
  CenterPane_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
9753
10070
  const ssrContext = useSSRContext();
9754
10071
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/console/CenterPane.vue");
9755
- return _sfc_setup$13 ? _sfc_setup$13(props, ctx) : void 0;
10072
+ return _sfc_setup$14 ? _sfc_setup$14(props, ctx) : void 0;
9756
10073
  };
9757
10074
  var CenterPane_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(CenterPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d18673eb"]]), { __name: "WorkshopConsoleCenterPane" });
9758
10075
  //#endregion
@@ -10103,14 +10420,84 @@ var ChatMemberPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
10103
10420
  });
10104
10421
  //#endregion
10105
10422
  //#region app/components/workshop/ChatMemberPanel.vue
10106
- var _sfc_setup$12 = ChatMemberPanel_vue_vue_type_script_setup_true_lang_default.setup;
10423
+ var _sfc_setup$13 = ChatMemberPanel_vue_vue_type_script_setup_true_lang_default.setup;
10107
10424
  ChatMemberPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
10108
10425
  const ssrContext = useSSRContext();
10109
10426
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/ChatMemberPanel.vue");
10110
- return _sfc_setup$12 ? _sfc_setup$12(props, ctx) : void 0;
10427
+ return _sfc_setup$13 ? _sfc_setup$13(props, ctx) : void 0;
10111
10428
  };
10112
10429
  var ChatMemberPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChatMemberPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-76f98421"]]), { __name: "WorkshopChatMemberPanel" });
10113
10430
  //#endregion
10431
+ //#region app/components/workshop/console/LineOperationsPanel.vue?vue&type=script&setup=true&lang.ts
10432
+ var LineOperationsPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10433
+ __name: "LineOperationsPanel",
10434
+ __ssrInlineRender: true,
10435
+ props: { channelId: {} },
10436
+ setup(__props) {
10437
+ const props = __props;
10438
+ const events = useEventsStore();
10439
+ const entities = useEntitiesStore();
10440
+ const filter = ref("all");
10441
+ const allItems = computed(() => events.ring(props.channelId).items);
10442
+ const operations = computed(() => allItems.value.map((e) => ({
10443
+ e,
10444
+ meta: classifyOperation(e)
10445
+ })).filter((x) => Boolean(x.meta)).reverse());
10446
+ const visible = computed(() => filter.value === "all" ? operations.value : operations.value.filter((x) => x.meta.kind === filter.value));
10447
+ const latest = computed(() => operations.value.slice(0, 80));
10448
+ const phase = computed(() => operationPhase(allItems.value));
10449
+ const stats = computed(() => {
10450
+ let dcw = 0;
10451
+ let daq = 0;
10452
+ let aml = 0;
10453
+ let blocked = 0;
10454
+ for (const x of latest.value) {
10455
+ if (x.meta.kind === "dcw") dcw++;
10456
+ if (x.meta.kind === "daq") daq++;
10457
+ if (x.meta.kind === "aml") aml++;
10458
+ if (x.meta.severity === "critical") blocked++;
10459
+ }
10460
+ return {
10461
+ dcw,
10462
+ daq,
10463
+ aml,
10464
+ blocked
10465
+ };
10466
+ });
10467
+ function agentName(e) {
10468
+ return e.agentId ? entities.agentName(props.channelId, e.agentId) || e.agentId.slice(0, 8) : "系统";
10469
+ }
10470
+ function tone(meta) {
10471
+ return `${meta.kind} ${meta.severity}`;
10472
+ }
10473
+ function phaseTone() {
10474
+ return phase.value.tone;
10475
+ }
10476
+ return (_ctx, _push, _parent, _attrs) => {
10477
+ _push(`<section${ssrRenderAttrs(mergeProps({
10478
+ class: "line-ops-panel",
10479
+ "aria-label": "产线作业面板"
10480
+ }, _attrs))} data-v-e241fe8f><header class="lop-head" data-v-e241fe8f><div data-v-e241fe8f><div class="lop-kicker" data-v-e241fe8f><span class="lop-live" data-v-e241fe8f></span>LINE OPERATIONS </div><h3 data-v-e241fe8f>产线作业</h3></div><span class="${ssrRenderClass([phaseTone(), "lop-phase"])}" data-v-e241fe8f><span class="i-tabler-radar" data-v-e241fe8f></span>${ssrInterpolate(phase.value.label)}</span></header><div class="lop-summary" data-v-e241fe8f><div class="lop-stat dcw" data-v-e241fe8f><span data-v-e241fe8f>DCW</span><b data-v-e241fe8f>${ssrInterpolate(stats.value.dcw)}</b><small data-v-e241fe8f>写控</small></div><div class="lop-stat daq" data-v-e241fe8f><span data-v-e241fe8f>DAQ</span><b data-v-e241fe8f>${ssrInterpolate(stats.value.daq)}</b><small data-v-e241fe8f>采集</small></div><div class="lop-stat aml" data-v-e241fe8f><span data-v-e241fe8f>AML</span><b data-v-e241fe8f>${ssrInterpolate(stats.value.aml)}</b><small data-v-e241fe8f>训练</small></div><div class="lop-stat safety" data-v-e241fe8f><span data-v-e241fe8f>SAFE</span><b data-v-e241fe8f>${ssrInterpolate(stats.value.blocked)}</b><small data-v-e241fe8f>拦截</small></div></div><nav class="lop-filters" aria-label="作业筛选" data-v-e241fe8f><button class="${ssrRenderClass({ on: filter.value === "all" })}" data-v-e241fe8f> 全部 </button><button class="${ssrRenderClass({ on: filter.value === "dcw" })}" data-v-e241fe8f> 写控 </button><button class="${ssrRenderClass({ on: filter.value === "daq" })}" data-v-e241fe8f> 取数 </button><button class="${ssrRenderClass({ on: filter.value === "aml" })}" data-v-e241fe8f> AML </button><button class="${ssrRenderClass({ on: filter.value === "twin" })}" data-v-e241fe8f> 孪生 </button><button class="${ssrRenderClass({ on: filter.value === "safety" })}" data-v-e241fe8f> 安全 </button></nav><div class="lop-timeline" data-v-e241fe8f>`);
10481
+ if (visible.value.length === 0) _push(`<div class="lop-empty" data-v-e241fe8f><span class="i-tabler-activity-heartbeat" data-v-e241fe8f></span><span data-v-e241fe8f>等待产线作业事件</span></div>`);
10482
+ else _push(`<!---->`);
10483
+ _push(`<!--[-->`);
10484
+ ssrRenderList(visible.value.slice(0, 24), (item) => {
10485
+ _push(`<article class="${ssrRenderClass([tone(item.meta), "lop-event"])}" data-v-e241fe8f><div class="lop-event-icon" data-v-e241fe8f><span class="${ssrRenderClass(item.meta.icon)}" data-v-e241fe8f></span></div><div class="lop-event-body" data-v-e241fe8f><div class="lop-event-top" data-v-e241fe8f><strong data-v-e241fe8f>${ssrInterpolate(item.meta.label)}</strong><time data-v-e241fe8f>${ssrInterpolate(unref(formatLocalClock)(item.e.at, false))}</time></div><p data-v-e241fe8f>${ssrInterpolate(item.meta.summary || "—")}</p><small data-v-e241fe8f>${ssrInterpolate(agentName(item.e))} · #${ssrInterpolate(item.e.seq)}</small></div></article>`);
10486
+ });
10487
+ _push(`<!--]--></div></section>`);
10488
+ };
10489
+ }
10490
+ });
10491
+ //#endregion
10492
+ //#region app/components/workshop/console/LineOperationsPanel.vue
10493
+ var _sfc_setup$12 = LineOperationsPanel_vue_vue_type_script_setup_true_lang_default.setup;
10494
+ LineOperationsPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
10495
+ const ssrContext = useSSRContext();
10496
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/console/LineOperationsPanel.vue");
10497
+ return _sfc_setup$12 ? _sfc_setup$12(props, ctx) : void 0;
10498
+ };
10499
+ var LineOperationsPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(LineOperationsPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e241fe8f"]]), { __name: "WorkshopConsoleLineOperationsPanel" });
10500
+ //#endregion
10114
10501
  //#region app/components/workshop/console/RightPane.vue?vue&type=script&setup=true&lang.ts
10115
10502
  var RightPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10116
10503
  __name: "RightPane",
@@ -10134,9 +10521,11 @@ var RightPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
10134
10521
  _push(`<div${ssrRenderAttrs(mergeProps({
10135
10522
  class: ["right-pane", { empty: __props.loaded && !__props.channelId }],
10136
10523
  style: { flexBasis: `${__props.rightWidth}px` }
10137
- }, _attrs))} data-v-09d00231>`);
10524
+ }, _attrs))} data-v-b681c4ce>`);
10525
+ if (__props.channelId) _push(ssrRenderComponent(LineOperationsPanel_default, { "channel-id": __props.channelId }, null, _parent));
10526
+ else _push(`<!---->`);
10138
10527
  if (__props.channelId) {
10139
- _push(`<div class="right-main" data-v-09d00231>`);
10528
+ _push(`<div class="right-main" data-v-b681c4ce>`);
10140
10529
  _push(ssrRenderComponent(_component_workshop_inspector_panel, {
10141
10530
  "channel-id": __props.channelId,
10142
10531
  onOpenAgent: ($event) => emit("openAgent", $event),
@@ -10146,10 +10535,10 @@ var RightPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
10146
10535
  })
10147
10536
  }, null, _parent));
10148
10537
  _push(`</div>`);
10149
- } else if (!__props.loaded) _push(`<div class="pane-loading" data-v-09d00231>${ssrInterpolate(_ctx.$t("wsView.loadingWs"))}</div>`);
10538
+ } else if (!__props.loaded) _push(`<div class="pane-loading" data-v-b681c4ce>${ssrInterpolate(_ctx.$t("wsView.loadingWs"))}</div>`);
10150
10539
  else _push(`<!---->`);
10151
10540
  if (__props.channelId) {
10152
- _push(`<div class="right-chat" data-v-09d00231>`);
10541
+ _push(`<div class="right-chat" data-v-b681c4ce>`);
10153
10542
  _push(ssrRenderComponent(_component_workshop_chat_member_panel, { "channel-id": __props.channelId }, null, _parent));
10154
10543
  _push(`</div>`);
10155
10544
  } else _push(`<!---->`);
@@ -10165,7 +10554,7 @@ RightPane_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
10165
10554
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/console/RightPane.vue");
10166
10555
  return _sfc_setup$11 ? _sfc_setup$11(props, ctx) : void 0;
10167
10556
  };
10168
- var RightPane_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(RightPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-09d00231"]]), { __name: "WorkshopConsoleRightPane" });
10557
+ var RightPane_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(RightPane_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-b681c4ce"]]), { __name: "WorkshopConsoleRightPane" });
10169
10558
  //#endregion
10170
10559
  //#region app/composables/workshop/useComposerMentions.ts
10171
10560
  /**
@@ -13106,4 +13495,4 @@ _wsId__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
13106
13495
  var _wsId__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_wsId__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-18e1cc65"]]);
13107
13496
 
13108
13497
  export { _wsId__default as default };
13109
- //# sourceMappingURL=_wsId_-BKJvFmyf.mjs.map
13498
+ //# sourceMappingURL=_wsId_-DPy2BXRd.mjs.map