agentworkshop 0.7.39 → 0.7.40

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 (373) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +55 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +55 -0
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/88GOowgO2.js +1 -0
  5. package/.output/public/_nuxt/{BNT8gYU92.js → BC9wjTJK2.js} +2 -2
  6. package/.output/public/_nuxt/BOt2SP4z.js +1 -0
  7. package/.output/public/_nuxt/BP-NyKVG.js +18 -0
  8. package/.output/public/_nuxt/{HBLJ-wei.js → BXxH0UQE.js} +1 -1
  9. package/.output/public/_nuxt/{zIGh7R49.js → BneN7fbu.js} +1 -1
  10. package/.output/public/_nuxt/BsROmY89.js +1 -0
  11. package/.output/public/_nuxt/{C_OLzD09.js → C4oW1HsE.js} +1 -1
  12. package/.output/public/_nuxt/CFxtLwjp.js +1 -0
  13. package/.output/public/_nuxt/{Cec0Ua3F.js → CS50LB_l.js} +1 -1
  14. package/.output/public/_nuxt/C_iYD-EB.js +1 -0
  15. package/.output/public/_nuxt/{DAe0h2MB.js → ClILjvWH.js} +1 -1
  16. package/.output/public/_nuxt/CssgYAAL2.js +1 -0
  17. package/.output/public/_nuxt/{CY9LbPCI.js → CzOCSGLe.js} +1 -1
  18. package/.output/public/_nuxt/D8qvkfyY.js +1 -0
  19. package/.output/public/_nuxt/DCn7QZ5N.js +2 -0
  20. package/.output/public/_nuxt/DGIuvyRN2.js +1 -0
  21. package/.output/public/_nuxt/{CojCTLKD.js → DGj-WEBg.js} +1 -1
  22. package/.output/public/_nuxt/{DDShH71m.js → DS8qj8EL.js} +1 -1
  23. package/.output/public/_nuxt/DTFCy6h-.js +1 -0
  24. package/.output/public/_nuxt/{DrYV5i68.js → DUjW5Yq5.js} +1 -1
  25. package/.output/public/_nuxt/DZshyNLa.js +1 -0
  26. package/.output/public/_nuxt/{45zuyAso.js → D_OTvQza.js} +1 -1
  27. package/.output/public/_nuxt/DcsCcxp4.js +1 -0
  28. package/.output/public/_nuxt/{DUrecWPx.js → Dihnimlk.js} +2 -2
  29. package/.output/public/_nuxt/Dqw1lpr-.js +1 -0
  30. package/.output/public/_nuxt/{CUDwzgLV.js → Dr9v6C0f.js} +9 -9
  31. package/.output/public/_nuxt/{8NMOXZOV.js → Du9ZJtnj.js} +1 -1
  32. package/.output/public/_nuxt/TownView.f-YOdXRs.css +1 -0
  33. package/.output/public/_nuxt/_id_.CM4bIgKY.css +1 -0
  34. package/.output/public/_nuxt/_id_.bNV69Dtf.css +1 -0
  35. package/.output/public/_nuxt/_wsId_.B4WiqkIS.css +1 -0
  36. package/.output/public/_nuxt/agents.ZD0rVdHE.css +1 -0
  37. package/.output/public/_nuxt/aml.BN8ZEW4h.css +1 -0
  38. package/.output/public/_nuxt/builds/latest.json +1 -1
  39. package/.output/public/_nuxt/builds/meta/f4707884-7cf4-4a31-80d2-e3d72b73745f.json +1 -0
  40. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +1 -0
  41. package/.output/public/_nuxt/daq.B0D3dPAc.css +1 -0
  42. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +1 -0
  43. package/.output/public/_nuxt/default.J32SgqFY.css +1 -0
  44. package/.output/public/_nuxt/entry.bdm0tv6M.css +1 -0
  45. package/.output/public/_nuxt/logs.BpKzmKsh.css +1 -0
  46. package/.output/public/_nuxt/monitor.D9pe7qN6.css +1 -0
  47. package/.output/public/_nuxt/pages.D7aSDlUI.css +1 -0
  48. package/.output/public/_nuxt/permissions.DwTVlFe6.css +1 -0
  49. package/.output/public/_nuxt/plugins.sb4nDGqr.css +1 -0
  50. package/.output/public/_nuxt/{Cbq-mryP.js → qr6R6Ha1.js} +1 -1
  51. package/.output/public/_nuxt/settings.BTgR-NiE.css +1 -0
  52. package/.output/public/_nuxt/teams.CxnxKVVs.css +1 -0
  53. package/.output/public/_nuxt/tokens.BFY7qv4f.css +1 -0
  54. package/.output/public/_nuxt/{town.DKIAhKnx.css → town.BBXZmeoP.css} +1 -1
  55. package/.output/public/_nuxt/users.DLgZ1D0h.css +1 -0
  56. package/.output/public/_nuxt/workshop.CR_QzeAN.css +1 -0
  57. package/.output/public/_nuxt/{BzHEilTt.js → xh3_vYcu.js} +1 -1
  58. package/.output/public/_nuxt/yF0aYMF1.js +4 -0
  59. package/.output/server/chunks/_/entity.mjs.map +1 -1
  60. package/.output/server/chunks/_/nitro.mjs +2225 -1445
  61. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  62. package/.output/server/chunks/build/{TownView-jVazYOjN.mjs → TownView-BuLAsmpR.mjs} +288 -206
  63. package/.output/server/chunks/build/TownView-BuLAsmpR.mjs.map +1 -0
  64. package/.output/server/chunks/build/{_id_-CfVosNg3.mjs → _id_-BU1wfOID.mjs} +138 -138
  65. package/.output/server/chunks/build/{_id_-CfVosNg3.mjs.map → _id_-BU1wfOID.mjs.map} +1 -1
  66. package/.output/server/chunks/build/{_id_-Hwr4rZpr.mjs → _id_-BYsEua57.mjs} +33 -32
  67. package/.output/server/chunks/build/_id_-BYsEua57.mjs.map +1 -0
  68. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs → _wsId_-BxlDcJHg.mjs} +293 -259
  69. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs.map → _wsId_-BxlDcJHg.mjs.map} +1 -1
  70. package/.output/server/chunks/build/{agents-Bvin73QY.mjs → agents-CLQqJF2y.mjs} +21 -27
  71. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +1 -0
  72. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs → aml-_7FdFL2p.mjs} +109 -109
  73. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs.map → aml-_7FdFL2p.mjs.map} +1 -1
  74. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -1
  75. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs → channel-templates-p6SZNjlM.mjs} +19 -19
  76. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs.map → channel-templates-p6SZNjlM.mjs.map} +1 -1
  77. package/.output/server/chunks/build/{daq-C03Uu5UE.mjs → daq-cgyjKmJu.mjs} +188 -122
  78. package/.output/server/chunks/build/daq-cgyjKmJu.mjs.map +1 -0
  79. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs → dcw-CoTxBlAZ.mjs} +45 -45
  80. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs.map → dcw-CoTxBlAZ.mjs.map} +1 -1
  81. package/.output/server/chunks/build/{default-CZmZFpqH.mjs → default-BE4r0FZN.mjs} +152 -58
  82. package/.output/server/chunks/build/{default-CZmZFpqH.mjs.map → default-BE4r0FZN.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{logs-B-xhuqln.mjs → logs-BSOeZwwI.mjs} +34 -34
  84. package/.output/server/chunks/build/{logs-B-xhuqln.mjs.map → logs-BSOeZwwI.mjs.map} +1 -1
  85. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs → monitor-C0okQaXz.mjs} +33 -33
  86. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs.map → monitor-C0okQaXz.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{pages-BO7yZsXA.mjs → pages-DFxjn9Xa.mjs} +33 -17
  88. package/.output/server/chunks/build/pages-DFxjn9Xa.mjs.map +1 -0
  89. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs → permissions-68SsNjex.mjs} +12 -12
  90. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs.map → permissions-68SsNjex.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs → plugins-lGlUr1lj.mjs} +17 -17
  92. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs.map → plugins-lGlUr1lj.mjs.map} +1 -1
  93. package/.output/server/chunks/build/{settings-DoQ2Oq3P.mjs → settings-Ddd1qx2Z.mjs} +50 -47
  94. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +1 -0
  95. package/.output/server/chunks/build/{teams-2kz3CusY.mjs → teams-MEDLZdMn.mjs} +38 -34
  96. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +1 -0
  97. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs → tokens-C7fTM5C2.mjs} +14 -14
  98. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs.map → tokens-C7fTM5C2.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{town-BOl6hs9B.mjs → town-qMPql9Se.mjs} +36 -10
  100. package/.output/server/chunks/build/town-qMPql9Se.mjs.map +1 -0
  101. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs +1 -1
  102. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs +1 -1
  103. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +49 -0
  104. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -0
  105. package/.output/server/chunks/build/{users-fohSmF-J.mjs → users-Cfd5-l2-.mjs} +6 -6
  106. package/.output/server/chunks/build/{users-fohSmF-J.mjs.map → users-Cfd5-l2-.mjs.map} +1 -1
  107. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs → workshop-BL5bhfs0.mjs} +15 -15
  108. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs.map → workshop-BL5bhfs0.mjs.map} +1 -1
  109. package/.output/server/chunks/build/{workspaces-BuydxM-3.mjs → workspaces-Bgz5Ekwp.mjs} +18 -3
  110. package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +1 -0
  111. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  112. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  113. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  114. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  115. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -2
  116. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
  118. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  120. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  121. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  122. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  123. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
  125. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  126. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  127. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +8 -6
  129. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  130. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +5 -5
  131. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +14 -4
  133. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -4
  135. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -3
  137. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +31 -0
  139. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -0
  140. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +28 -0
  141. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -0
  142. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +32 -0
  144. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -0
  145. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +34 -0
  146. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -0
  147. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +33 -0
  148. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -0
  149. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +34 -0
  150. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -0
  151. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  152. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  153. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  154. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  155. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  156. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  157. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -0
  159. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  160. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -1
  161. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  162. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  165. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  166. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  167. package/.output/server/chunks/routes/renderer.mjs +3 -3
  168. package/.output/server/chunks/virtual/entry.mjs +51 -25
  169. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  170. package/.output/server/package.json +1 -1
  171. package/README-zh.md +199 -35
  172. package/README.md +739 -591
  173. package/app/app.vue +9 -3
  174. package/app/assets/css/main.css +517 -7
  175. package/app/components/AppHeader.vue +98 -7
  176. package/app/components/AppSidebar.vue +117 -11
  177. package/app/components/AwChart.vue +2 -1
  178. package/app/components/workshop/AgentInspectorDrawer.vue +6 -6
  179. package/app/components/workshop/AgentLanesView.vue +52 -1
  180. package/app/components/workshop/AssetLibrary.vue +4 -2
  181. package/app/components/workshop/ChannelSessionList.vue +4 -2
  182. package/app/components/workshop/Composer.vue +96 -0
  183. package/app/components/workshop/DaqNodeRow.vue +19 -0
  184. package/app/components/workshop/DaqTemplateIcon.vue +33 -0
  185. package/app/components/workshop/DeviceTwinPanel.vue +37 -35
  186. package/app/components/workshop/EventBlock.vue +3 -3
  187. package/app/components/workshop/InspectorPanel.vue +47 -11
  188. package/app/components/workshop/LiveAgentBar.vue +34 -0
  189. package/app/components/workshop/TaskBoardView.vue +83 -33
  190. package/app/components/workshop/TranscriptTimeline.vue +56 -0
  191. package/app/components/workshop/blocks/ClusterError.vue +1 -1
  192. package/app/components/workshop/blocks/ClusterRoute.vue +3 -1
  193. package/app/components/workshop/blocks/ClusterStatus.vue +2 -2
  194. package/app/components/workshop/blocks/ClusterStream.vue +8 -2
  195. package/app/components/workshop/town/ModelPreview3D.vue +1 -1
  196. package/app/components/workshop/town/TownView.vue +507 -82
  197. package/app/composables/useResponsive.ts +88 -0
  198. package/app/composables/useRouteMeta.ts +3 -0
  199. package/app/composables/workshop/useDcwStream.ts +1 -1
  200. package/app/composables/workshop/useVisibleInterval.ts +2 -2
  201. package/app/composables/workshop/useWorkshopApi.ts +1 -1
  202. package/app/layouts/default.vue +46 -2
  203. package/app/pages/aml/index.vue +712 -616
  204. package/app/pages/daq/[id].vue +3 -2
  205. package/app/pages/daq/index.vue +209 -9
  206. package/app/pages/dcw/[id].vue +109 -28
  207. package/app/pages/dcw/index.vue +83 -23
  208. package/app/pages/index.vue +35 -1
  209. package/app/pages/logs/index.vue +147 -13
  210. package/app/pages/monitor.vue +56 -12
  211. package/app/pages/permissions/index.vue +34 -0
  212. package/app/pages/plugins/index.vue +35 -4
  213. package/app/pages/settings.vue +90 -21
  214. package/app/pages/tokens.vue +23 -0
  215. package/app/pages/town.vue +50 -5
  216. package/app/pages/users.vue +23 -0
  217. package/app/pages/workshop/agents.vue +92 -2
  218. package/app/pages/workshop/channel-templates.vue +53 -0
  219. package/app/pages/workshop/index.vue +14 -0
  220. package/app/pages/workshop/teams.vue +66 -6
  221. package/app/pages/workshop/w/[wsId].vue +202 -14
  222. package/app/plugins/aw-plugins.client.ts +13 -8
  223. package/app/stores/app.ts +33 -1
  224. package/app/stores/workshop/user.ts +1 -1
  225. package/app/stores/workshop/workspaces.ts +18 -2
  226. package/app/utils/api-error.ts +1 -1
  227. package/cli/commands/build.mjs +8 -1
  228. package/docker-compose.yml +6 -0
  229. package/i18n/locales/en.ts +2 -0
  230. package/i18n/locales/zh-CN.ts +2 -0
  231. package/nuxt.config.ts +31 -0
  232. package/package.json +9 -1
  233. package/scripts/_dbg-param-map-e2e.ts +242 -0
  234. package/scripts/_dbg-param-map-rest-smoke.mjs +73 -0
  235. package/scripts/_dbg-param-real-scenario.mjs +153 -0
  236. package/scripts/api-live-e2e.mjs +40 -8
  237. package/scripts/capture-walkthrough.mjs +232 -0
  238. package/scripts/render-walkthrough-figure.mjs +46 -0
  239. package/scripts/seed-walkthrough-fixture.mjs +143 -0
  240. package/scripts/test-plugin-hardening.mjs +8 -0
  241. package/scripts/ui/admin-shots.mjs +46 -0
  242. package/scripts/ui/audit-layout.mjs +301 -0
  243. package/scripts/ui/bump-microfont.mjs +39 -0
  244. package/scripts/ui/lib.mjs +198 -0
  245. package/scripts/ui/linkcheck2.mjs +37 -0
  246. package/scripts/ui/live-render-check.mjs +72 -0
  247. package/scripts/ui/md-lint.mjs +80 -0
  248. package/scripts/ui/perf-audit.mjs +132 -0
  249. package/scripts/ui/readme-assets.mjs +30 -0
  250. package/scripts/ui/readme-shots.mjs +42 -0
  251. package/scripts/ui/record.mjs +225 -0
  252. package/scripts/ui/seed-admin.mjs +68 -0
  253. package/scripts/ui/seed-demo.mjs +83 -0
  254. package/scripts/ui/shot-hero.mjs +25 -0
  255. package/scripts/ui/shots.mjs +75 -0
  256. package/scripts/ui/sim-ui-shot.mjs +16 -0
  257. package/scripts/ui/verify-nav.mjs +51 -0
  258. package/scripts/ui/verify-responsive.mjs +285 -0
  259. package/server/api/system/config-groups/[id].patch.ts +1 -1
  260. package/server/api/system/config-groups/index.post.ts +1 -1
  261. package/server/api/system/settings/events.get.ts +1 -1
  262. package/server/api/system/settings/index.patch.ts +1 -1
  263. package/server/api/workshop/agent-tools/invoke.post.ts +16 -2
  264. package/server/api/workshop/aml/datasets/[id].get.ts +8 -1
  265. package/server/api/workshop/daq/infra/reconnect.post.ts +1 -1
  266. package/server/api/workshop/daq/templates/[key].delete.ts +1 -0
  267. package/server/api/workshop/daq/templates/[key].patch.ts +1 -0
  268. package/server/api/workshop/daq/templates/index.post.ts +1 -0
  269. package/server/api/workshop/dcw/[id]/write.post.ts +10 -2
  270. package/server/api/workshop/dcw/[id].delete.ts +5 -2
  271. package/server/api/workshop/dcw/index.get.ts +2 -0
  272. package/server/api/workshop/dcw/lines/[id].patch.ts +1 -1
  273. package/server/api/workshop/dcw/params/[id]/read.post.ts +17 -0
  274. package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -0
  275. package/server/api/workshop/dcw/params/[id].delete.ts +19 -0
  276. package/server/api/workshop/dcw/params/[id].patch.ts +23 -0
  277. package/server/api/workshop/dcw/params/index.get.ts +27 -0
  278. package/server/api/workshop/dcw/params/index.post.ts +25 -0
  279. package/server/api/workshop/permissions/index.get.ts +3 -1
  280. package/server/plugins/aw-plugins.ts +14 -3
  281. package/server/plugins/dev-stability-guard.ts +3 -1
  282. package/server/plugins/system-config.ts +6 -1
  283. package/server/services/system-config.ts +28 -9
  284. package/server/services/workshop/agents/adapters/one-shot-cli-agent.ts +2 -1
  285. package/server/services/workshop/agents/agent-interface.ts +8 -6
  286. package/server/services/workshop/agents/base-agent.ts +18 -4
  287. package/server/services/workshop/agents/claude-agent.ts +7 -3
  288. package/server/services/workshop/agents/codex-agent.ts +3 -3
  289. package/server/services/workshop/agents/dsh-agent.ts +3 -3
  290. package/server/services/workshop/agents/goose-agent.ts +0 -1
  291. package/server/services/workshop/agents/harness-terminal.ts +14 -1
  292. package/server/services/workshop/agents/hermes-agent.ts +4 -2
  293. package/server/services/workshop/agents/host-tool-bridge.ts +5 -1
  294. package/server/services/workshop/agents/industrial-context.ts +4 -1
  295. package/server/services/workshop/agents/industrial-tools.ts +164 -6
  296. package/server/services/workshop/agents/omp-agent.ts +15 -9
  297. package/server/services/workshop/agents/opencode-agent.ts +47 -21
  298. package/server/services/workshop/agents/qwen-agent.ts +10 -5
  299. package/server/services/workshop/aml/entity.ts +3 -1
  300. package/server/services/workshop/aml/python-runtime.ts +3 -2
  301. package/server/services/workshop/daq/bus/mqtt.adapter.ts +8 -4
  302. package/server/services/workshop/daq/daq-controller.ts +18 -3
  303. package/server/services/workshop/daq/daq-runtime.ts +5 -3
  304. package/server/services/workshop/daq/drivers.ts +63 -8
  305. package/server/services/workshop/daq/host-ports.ts +3 -2
  306. package/server/services/workshop/daq/storage/timescale.adapter.ts +3 -1
  307. package/server/services/workshop/db/channel.repo.ts +4 -0
  308. package/server/services/workshop/db/ops.repo.ts +5 -2
  309. package/server/services/workshop/db/retention.ts +8 -3
  310. package/server/services/workshop/dcw/dcw-controller.ts +143 -16
  311. package/server/services/workshop/dcw/dcw-product.repo.ts +38 -1
  312. package/server/services/workshop/dcw/dcw-runtime.ts +3 -2
  313. package/server/services/workshop/dcw/drivers.ts +5 -2
  314. package/server/services/workshop/dcw/param-conversion.ts +78 -0
  315. package/server/services/workshop/dcw/param-limits.ts +142 -0
  316. package/server/services/workshop/dcw/param-map.repo.ts +305 -0
  317. package/server/services/workshop/dcw/recipe-rollback-manager.ts +13 -7
  318. package/server/services/workshop/runtime/agent-runtime.ts +4 -0
  319. package/server/services/workshop/runtime/manager.ts +9 -2
  320. package/server/services/workshop/settings.ts +4 -2
  321. package/server/types/pg.d.ts +49 -0
  322. package/server/utils/stability-severity.ts +13 -2
  323. package/shared/config/groups.mjs +22 -1
  324. package/shared/config/home.d.mts +28 -0
  325. package/shared/dcw-protocol.ts +136 -0
  326. package/uno.config.ts +12 -1
  327. package/.output/public/_nuxt/BFkgkW8u.js +0 -4
  328. package/.output/public/_nuxt/C5gUkRwn.js +0 -1
  329. package/.output/public/_nuxt/CM12FuB42.js +0 -1
  330. package/.output/public/_nuxt/CZiw7sEV.js +0 -1
  331. package/.output/public/_nuxt/Cc_9VzD42.js +0 -1
  332. package/.output/public/_nuxt/CdPzkOMV.js +0 -1
  333. package/.output/public/_nuxt/CmsOtOAA2.js +0 -1
  334. package/.output/public/_nuxt/D1YDxZpZ.js +0 -1
  335. package/.output/public/_nuxt/D20Yamr4.js +0 -1
  336. package/.output/public/_nuxt/DmqknNvV.js +0 -18
  337. package/.output/public/_nuxt/DnUuIR83.js +0 -1
  338. package/.output/public/_nuxt/S_fVQwJK.js +0 -1
  339. package/.output/public/_nuxt/TownView.0oLiQgTC.css +0 -1
  340. package/.output/public/_nuxt/_id_.D-SYuyZb.css +0 -1
  341. package/.output/public/_nuxt/_id_.hma_BU6T.css +0 -1
  342. package/.output/public/_nuxt/_wsId_.B12v3PhY.css +0 -1
  343. package/.output/public/_nuxt/agents.BV70ioCv.css +0 -1
  344. package/.output/public/_nuxt/ahgEJu2R.js +0 -1
  345. package/.output/public/_nuxt/aml.COEKNNqK.css +0 -1
  346. package/.output/public/_nuxt/builds/meta/4457d63f-0866-4cea-b320-04a321f24795.json +0 -1
  347. package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +0 -1
  348. package/.output/public/_nuxt/daq.B3265ZDn.css +0 -1
  349. package/.output/public/_nuxt/dcw.DLYZqEhT.css +0 -1
  350. package/.output/public/_nuxt/default.BXI_fZUi.css +0 -1
  351. package/.output/public/_nuxt/entry.BB-Eeh-J.css +0 -1
  352. package/.output/public/_nuxt/logs.CqFyMrJw.css +0 -1
  353. package/.output/public/_nuxt/monitor.B--1dPzs.css +0 -1
  354. package/.output/public/_nuxt/pages.ooEzrMm9.css +0 -1
  355. package/.output/public/_nuxt/permissions.B1pjGChZ.css +0 -1
  356. package/.output/public/_nuxt/plugins.5e5chZ67.css +0 -1
  357. package/.output/public/_nuxt/pz2JDAM7.js +0 -2
  358. package/.output/public/_nuxt/settings.Dm3M0RLy.css +0 -1
  359. package/.output/public/_nuxt/teams.BC75EGnR.css +0 -1
  360. package/.output/public/_nuxt/tokens.xRb1fSPU.css +0 -1
  361. package/.output/public/_nuxt/users.CXnP2E08.css +0 -1
  362. package/.output/public/_nuxt/workshop.Jk5HxWPE.css +0 -1
  363. package/.output/server/chunks/build/TownView-jVazYOjN.mjs.map +0 -1
  364. package/.output/server/chunks/build/_id_-Hwr4rZpr.mjs.map +0 -1
  365. package/.output/server/chunks/build/agents-Bvin73QY.mjs.map +0 -1
  366. package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +0 -1
  367. package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +0 -1
  368. package/.output/server/chunks/build/settings-DoQ2Oq3P.mjs.map +0 -1
  369. package/.output/server/chunks/build/teams-2kz3CusY.mjs.map +0 -1
  370. package/.output/server/chunks/build/town-BOl6hs9B.mjs.map +0 -1
  371. package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +0 -1
  372. /package/.output/public/_nuxt/{36oeS8_R2.js → 36oeS8_R.js} +0 -0
  373. /package/.output/public/_nuxt/{CYWVXZTS.js → CYWVXZTS2.js} +0 -0
@@ -0,0 +1,18 @@
1
+ import{H as e,O as t,a as n,c as r,k as i,m as a,mt as o,n as s,ut as c}from"./BU83-NnX.js";import{$ as l,B as u,D as d,H as f,Ht as p,J as m,K as h,P as g,R as _,S as v,Ut as y,V as b,Vt as x,W as S,Z as C,b as w,ct as T,d as E,dt as D,f as O,h as k,ht as A,i as j,j as M,k as N,m as P,nt as ee,p as F,pt as I,s as L,tt as R,u as z,ut as B,v as V,xt as H,y as U,yt as W,z as G}from"./CSkxz2NX.js";import{d as K,f as te,l as q,t as J,u as ne}from"./D6uzXueg.js";import{d as re,p as ie}from"./BJHKLJJU.js";import{n as ae}from"./DtYHUi5Z.js";import{n as Y}from"./KZQX7xoM.js";import{t as oe}from"./D9Oidm5I.js";import{t as se}from"./CWoJjWmZ.js";import{$ as ce,At as X,E as le,J as ue,O as de,Q as fe,St as pe,X as me,Z as he,at as ge,ct as _e,d as ve,et as ye,h as be,it as xe,j as Se,jt as Z,m as Ce,n as we,pt as Te,t as Ee,tt as De,u as Oe,wt as ke}from"./4sIEbgcl.js";import{Y as Ae,c as je,i as Me}from"./DYr1VMiQ.js";import{n as Ne,r as Pe,t as Fe}from"./DDgJcSET.js";import{a as Ie,i as Le,t as Re}from"./aWWIh8YL.js";import{a as ze,i as Be,n as Ve,r as He,t as Ue}from"./DBHNsT1Y.js";import{i as We,n as Ge,r as Ke,t as qe}from"./BCGafdXT.js";import{t as Je}from"./CzlMDL5H.js";import{n as Ye,r as Xe,t as Ze}from"./DR12_WCA.js";import{t as Qe}from"./pdk8jLGT.js";import{t as $e}from"./lO5tpDZ5.js";import{t as et}from"./JCoYF4IJ.js";import{t as tt}from"./jZsY8yYz.js";import{t as nt}from"./CYWVXZTS2.js";import{n as rt,r as it,t as at}from"./DHFrCUxA2.js";import{t as ot}from"./Dz_Q3Lpw2.js";import{t as st}from"./DZtm4l-P2.js";import{t as ct}from"./CClOy-Hz2.js";import{t as lt}from"./DIaZ2PTo2.js";import{t as Q}from"./BDNMzG2s2.js";import{t as ut}from"./DGIuvyRN2.js";import{t as dt}from"./CssgYAAL2.js";import{t as $}from"./D0ZBQrN_2.js";import{a as ft,c as pt,d as mt,f as ht,i as gt,l as _t,m as vt,n as yt,o as bt,r as xt,s as St,t as Ct,u as wt}from"./BC9wjTJK2.js";import{t as Tt}from"./BN6iuJEg2.js";import{t as Et}from"./CNs_Ozdc2.js";import{t as Dt}from"./DeYsUzhr.js";import{t as Ot}from"./DeJykBFf.js";import{n as kt,t as At}from"./DCn7QZ5N.js";function jt(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),w(`p`,{style:a,class:ke(`${t}-only-unit`,{current:r})},[n])}function Mt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Nt=v({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=E(()=>Number(e.value)),n=E(()=>Math.abs(e.count)),r=D({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=I();return l(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),G(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[jt(X(X({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return jt(X(X({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-Mt(r.prevValue,s,l)}00%)`}}return w(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Pt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Ft={prefixCls:String,count:Ee.any,component:String,title:Ee.any,show:Boolean},It=v({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Ft,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=we(`scroll-number`,e);return()=>{let t=X(X({},e),n),{prefixCls:a,count:o,title:s,show:l,component:u=`sup`,class:d,style:f}=t,p=Pt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),m=X(X({},p),{style:f,"data-show":e.show,class:ke(i.value,d),title:s}),h=o;if(o&&Number(o)%1==0){let e=String(o).split(``);h=e.map((t,n)=>w(Nt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}f&&f.borderColor&&(m.style=X(X({},f),{boxShadow:`0 0 0 1px ${f.borderColor} inset`}));let g=ge(r.default?.call(r));return g&&g.length?c(g,{class:ke(`${i.value}-custom-component`)},!1):w(u,m,{default:()=>[h]})}}}),Lt=new de(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Rt=new de(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),zt=new de(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Bt=new de(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Vt=new de(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Ht=new de(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Ut=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=Ae(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=Ae(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:X(X(X(X({},be(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Ht,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Lt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Bt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Vt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:X(X(X(X({},be(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Wt=ve(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Ut(Oe(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Gt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Kt=v({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:Ee.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=we(`ribbon`,e),[o,s]=Wt(i),c=E(()=>je(e.color,!1)),l=E(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Gt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(w(`div`,Z({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),w(`div`,{class:[l.value,t,s.value],style:X(X({},d),a)},[w(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),w(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),qt=v({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Kt,inheritAttrs:!1,props:{count:Ee.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:Ee.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(t,n){let{slots:r,attrs:i}=n,{prefixCls:a,direction:o}=we(`badge`,t),[s,u]=Wt(a),d=E(()=>t.count>t.overflowCount?`${t.overflowCount}+`:t.count),f=E(()=>d.value===`0`||d.value===0),p=E(()=>t.count===null||f.value&&!t.showZero),m=E(()=>(t.status!==null&&t.status!==void 0||t.color!==null&&t.color!==void 0)&&p.value),h=E(()=>t.dot&&!f.value),g=E(()=>h.value?``:d.value),_=E(()=>(g.value===null||g.value===void 0||g.value===``||f.value&&!t.showZero)&&!h.value),v=I(t.count),y=I(g.value),b=I(h.value);l([()=>t.count,g,h],()=>{_.value||(v.value=t.count,y.value=g.value,b.value=h.value)},{immediate:!0});let x=E(()=>je(t.color,!1)),S=E(()=>({[`${a.value}-status-dot`]:m.value,[`${a.value}-status-${t.status}`]:!!t.status,[`${a.value}-color-${t.color}`]:x.value})),C=E(()=>t.color&&!x.value?{background:t.color,color:t.color}:{}),T=E(()=>({[`${a.value}-dot`]:b.value,[`${a.value}-count`]:!b.value,[`${a.value}-count-sm`]:t.size===`small`,[`${a.value}-multiple-words`]:!b.value&&y.value&&y.value.toString().length>1,[`${a.value}-status-${t.status}`]:!!t.status,[`${a.value}-color-${t.color}`]:x.value}));return()=>{let{offset:n,title:l,color:d}=t,f=i.style,p=Te(r,t,`text`),h=a.value,g=v.value,b=_e(r.default?.call(r));b=b.length?b:null;let E=!!(!_.value||r.count),D=(()=>{if(!n)return X({},f);let e={marginTop:$e(n[1])?`${n[1]}px`:n[1]};return o.value===`rtl`?e.left=`${parseInt(n[0],10)}px`:e.right=`${-parseInt(n[0],10)}px`,X(X({},e),f)})(),O=l??(typeof g==`string`||typeof g==`number`?g:void 0),k=E||!p?null:w(`span`,{class:`${h}-status-text`},[p]),A=typeof g==`object`||g===void 0&&r.count?c(g??r.count?.call(r),{style:D},!1):null,j=ke(h,{[`${h}-status`]:m.value,[`${h}-not-a-wrapper`]:!b,[`${h}-rtl`]:o.value===`rtl`},i.class,u.value);if(!b&&m.value){let e=D.color;return s(w(`span`,Z(Z({},i),{},{class:j,style:D}),[w(`span`,{class:S.value,style:C.value},null),w(`span`,{style:{color:e},class:`${h}-status-text`},[p])]))}let M=e(b?`${h}-zoom`:``,{appear:!1}),N=X(X({},D),t.numberStyle);return d&&!x.value&&(N||={},N.background=d),s(w(`span`,Z(Z({},i),{},{class:j}),[b,w(J,M,{default:()=>[ee(w(It,{prefixCls:t.scrollNumberPrefixCls,show:E,class:T.value,count:y.value,title:O,style:N,key:`scrollNumber`},{default:()=>[A]}),[[ne,E]])]}),k]))}}});qt.install=function(e){return e.component(qt.name,qt),e.component(Kt.name,Kt),e};var Jt=qt,Yt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Xt=v({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:Ee.any,dropdownProps:ce(),overlay:Ee.any,onClick:he()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=we(`breadcrumb`,e),o=(t,r)=>{let i=Te(n,e,`overlay`);return i?w(et,Z(Z({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[w(`span`,{class:`${r}-overlay-link`},[t,w(Ie,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=Te(n,e,`separator`)??`/`,i=Te(n,e),{class:c,style:l}=r,u=Yt(r,[`class`,`style`]),d;return d=e.href===void 0?w(`span`,Z({class:`${a.value}-link`,onClick:s},u),[i]):w(`a`,Z({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:w(`li`,{class:c,style:l},[d,t&&w(`span`,{class:`${a.value}-separator`},[t])])}}}),Zt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:X(X({},be(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:X({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},Ce(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
2
+ > ${n} + span,
3
+ > ${n} + a
4
+ `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},Qt=ve(`Breadcrumb`,e=>[Zt(Oe(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),$t=()=>({prefixCls:String,routes:{type:Array},params:Ee.any,separator:Ee.any,itemRender:{type:Function}});function en(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function tn(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=en(t,n);return a?w(`span`,null,[o]):w(`a`,{href:`#/${i.join(`/`)}`},[o])}var nn=v({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:$t(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=we(`breadcrumb`,e),[o,s]=Qt(i),c=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),l=(e,t,n)=>{let r=[...e],i=c(t||``,n);return i&&r.push(i),r},u=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=tn}=e,a=[];return t.map(e=>{let o=c(e.path,n);o&&a.push(o);let s=[...a],u=null;e.children&&e.children.length&&(u=w(Je,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:l(s,e.path,n)})}))},null));let d={separator:r};return u&&(d.overlay=u),w(Xt,Z(Z({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:c,params:l={}}=e,d=_e(Te(n,e)),f=Te(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||tn;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(Se(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),z(e,{separator:f,key:t}))));let m={[i.value]:!0,[`${i.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[s.value]:!0};return o(w(`nav`,Z(Z({},r),{},{class:m}),[w(`ol`,null,[t])]))}}}),rn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},an=v({compatConfig:{MODE:3},name:`ABreadcrumbSeparator`,__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:{prefixCls:String},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=we(`breadcrumb`,e);return()=>{let{separator:e,class:t}=r,a=rn(r,[`separator`,`class`]),o=_e(n.default?.call(n));return w(`span`,Z({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});nn.Item=Xt,nn.Separator=an,nn.install=function(e){return e.component(nn.name,nn),e.component(Xt.name,Xt),e.component(an.name,an),e};var on=nn,sn=[`normal`,`exception`,`active`,`success`],cn=()=>({prefixCls:String,type:De(),percent:Number,format:fe(),status:De(),showInfo:me(),strokeWidth:Number,strokeLinecap:De(),strokeColor:ue(),trailColor:String,width:Number,success:ce(),gapDegree:Number,gapPosition:De(),size:ye([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:De()});function ln(e){return!e||e<0?0:e>100?100:e}function un(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(o(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function dn(e){let{percent:t,success:n,successPercent:r}=e,i=ln(un({success:n,successPercent:r}));return[i,ln(ln(t)-i)]}function fn(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||le.green,n||null]}var pn=(e,t,n)=>{let r=-1,i=-1;if(t===`step`){let t=n.steps,a=n.strokeWidth;typeof e==`string`||e===void 0?(r=e===`small`?2:14,i=a??8):typeof e==`number`?[r,i]=[e,e]:[r=14,i=8]=e,r*=t}else if(t===`line`){let t=n?.strokeWidth;typeof e==`string`||e===void 0?i=t||(e===`small`?6:8):typeof e==`number`?[r,i]=[e,e]:[r=-1,i=8]=e}else(t===`circle`||t===`dashboard`)&&(typeof e==`string`||e===void 0?[r,i]=e===`small`?[60,60]:[120,120]:typeof e==`number`?[r,i]=[e,e]:(r=e[0]??e[1]??120,i=e[0]??e[1]??120));return{width:r,height:i}},mn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},hn=()=>X(X({},cn()),{strokeColor:ue(),direction:De()}),gn=e=>{let t=[];return Object.keys(e).forEach(n=>{let r=parseFloat(n.replace(/%/g,``));isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((e,t)=>e.key-t.key),t.map(e=>{let{key:t,value:n}=e;return`${n} ${t}%`}).join(`, `)},_n=(e,t)=>{let{from:n=le.blue,to:r=le.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=mn(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${gn(a)})`}},vn=v({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:hn(),setup(e,t){let{slots:n,attrs:r}=t,i=E(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?_n(t,n):{backgroundColor:t}}),a=E(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=E(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=E(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=E(()=>pn(s.value,`line`,{strokeWidth:e.strokeWidth})),l=E(()=>{let{percent:t}=e;return X({width:`${ln(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=E(()=>un(e)),d=E(()=>{let{success:t}=e;return{width:`${ln(u.value)}%`,height:`${c.value.height}px`,borderRadius:a.value,backgroundColor:t?.strokeColor}}),f={width:c.value.width<0?`100%`:c.value.width,height:`${c.value.height}px`};return()=>w(j,null,[w(`div`,Z(Z({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[w(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[w(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:w(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),yn={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},bn=e=>{let t=I(null);return u(()=>{let n=Date.now(),r=!1;e.value.forEach(e=>{let i=e?.$el||e;if(!i)return;r=!0;let a=i.style;a.transitionDuration=`.3s, .3s, .3s, .06s`,t.value&&n-t.value<100&&(a.transitionDuration=`0s, 0s`)}),r&&(t.value=Date.now())}),e},xn={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String},Sn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Cn=0;function wn(e){return+e.replace(`%`,``)}function Tn(e){return Array.isArray(e)?e:[e]}function En(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,o=50-r/2,s=0,c=-o,l=0,u=-2*o;switch(a){case`left`:s=-o,c=0,l=2*o,u=0;break;case`right`:s=o,c=0,l=-2*o,u=0;break;case`bottom`:c=o,u=2*o}let d=`M 50,50 m ${s},${c}
5
+ a ${o},${o} 0 1 1 ${l},${-u}
6
+ a ${o},${o} 0 1 1 ${-l},${u}`,f=Math.PI*2*o;return{pathString:d,pathStyle:{stroke:n,strokeDasharray:`${t/100*(f-i)}px ${f}px`,strokeDashoffset:`-${i/2+e/100*(f-i)}px`,transition:`stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s`}}}var Dn=v({compatConfig:{MODE:3},name:`VCCircle`,props:pe(xn,yn),setup(e){Cn+=1;let t=I(Cn),n=E(()=>Tn(e.percent)),r=E(()=>Tn(e.strokeColor)),[i,a]=Xe();bn(a);let o=()=>{let{prefixCls:a,strokeWidth:o,strokeLinecap:s,gapDegree:c,gapPosition:l}=e,u=0;return n.value.map((e,n)=>{let d=r.value[n]||r.value[r.value.length-1],f=Object.prototype.toString.call(d)===`[object Object]`?`url(#${a}-gradient-${t.value})`:``,{pathString:p,pathStyle:m}=En(u,e,d,o,c,l);u+=e;let h={key:n,d:p,stroke:f,"stroke-linecap":s,"stroke-width":o,opacity:e===0?0:1,"fill-opacity":`0`,class:`${a}-circle-path`,style:m};return w(`path`,Z({ref:i(n)},h),null)})};return()=>{let{prefixCls:n,strokeWidth:i,trailWidth:a,gapDegree:s,gapPosition:c,trailColor:l,strokeLinecap:u,strokeColor:d}=e,f=Sn(e,[`prefixCls`,`strokeWidth`,`trailWidth`,`gapDegree`,`gapPosition`,`trailColor`,`strokeLinecap`,`strokeColor`]),{pathString:p,pathStyle:m}=En(0,100,l,i,s,c);delete f.percent;let h=r.value.find(e=>Object.prototype.toString.call(e)===`[object Object]`),g={d:p,stroke:l,"stroke-linecap":u,"stroke-width":a||i,"fill-opacity":`0`,class:`${n}-circle-trail`,style:m};return w(`svg`,Z({class:`${n}-circle`,viewBox:`0 0 100 100`},f),[h&&w(`defs`,null,[w(`linearGradient`,{id:`${n}-gradient-${t.value}`,x1:`100%`,y1:`0%`,x2:`0%`,y2:`0%`},[Object.keys(h).sort((e,t)=>wn(e)-wn(t)).map((e,t)=>w(`stop`,{key:t,offset:e,"stop-color":h[e]},null))])]),w(`path`,g,null),o().reverse()])}}}),On=()=>X(X({},cn()),{strokeColor:ue()}),kn=3,An=e=>kn/e*100,jn=v({compatConfig:{MODE:3},name:`ProgressCircle`,inheritAttrs:!1,props:pe(On(),{trailColor:null}),setup(e,t){let{slots:n,attrs:r}=t,i=E(()=>e.width??120),a=E(()=>e.size??[i.value,i.value]),o=E(()=>pn(a.value,`circle`)),s=E(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type===`dashboard`)return 75}),c=E(()=>({width:`${o.value.width}px`,height:`${o.value.height}px`,fontSize:`${o.value.width*.15+6}px`})),l=E(()=>e.strokeWidth??Math.max(An(o.value.width),6)),u=E(()=>e.gapPosition||e.type===`dashboard`&&`bottom`||void 0),d=E(()=>dn(e)),f=E(()=>Object.prototype.toString.call(e.strokeColor)===`[object Object]`),p=E(()=>fn({success:e.success,strokeColor:e.strokeColor})),m=E(()=>({[`${e.prefixCls}-inner`]:!0,[`${e.prefixCls}-circle-gradient`]:f.value}));return()=>{let t=w(Dn,{percent:d.value,strokeWidth:l.value,trailWidth:l.value,strokeColor:p.value,strokeLinecap:e.strokeLinecap,trailColor:e.trailColor,prefixCls:e.prefixCls,gapDegree:s.value,gapPosition:u.value},null);return w(`div`,Z(Z({},r),{},{class:[m.value,r.class],style:[r.style,c.value]}),[o.value.width<=20?w(Me,null,{default:()=>[w(`span`,null,[t])],title:n.default}):w(j,null,[t,n.default?.call(n)])])}}}),Mn=v({compatConfig:{MODE:3},name:`Steps`,props:X(X({},cn()),{steps:Number,strokeColor:ye(),trailColor:String}),setup(e,t){let{slots:n}=t,r=E(()=>Math.round(e.steps*((e.percent||0)/100))),i=E(()=>e.size??[e.size===`small`?2:14,e.strokeWidth||8]),a=E(()=>pn(i.value,`step`,{steps:e.steps,strokeWidth:e.strokeWidth||8})),o=E(()=>{let{steps:t,strokeColor:n,trailColor:i,prefixCls:o}=e,s=[];for(let e=0;e<t;e+=1){let c=Array.isArray(n)?n[e]:n,l={[`${o}-steps-item`]:!0,[`${o}-steps-item-active`]:e<=r.value-1};s.push(w(`div`,{key:e,class:l,style:{backgroundColor:e<=r.value-1?c:i,width:`${a.value.width/t}px`,height:`${a.value.height}px`}},null))}return s});return()=>w(`div`,{class:`${e.prefixCls}-steps-outer`},[o.value,n.default?.call(n)])}}),Nn=new de(`antProgressActive`,{"0%":{transform:`translateX(-100%) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(-100%) scaleX(0)`,opacity:.5},to:{transform:`translateX(0) scaleX(1)`,opacity:0}}),Pn=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:X(X({},be(e)),{display:`inline-block`,"&-rtl":{direction:`rtl`},"&-line":{position:`relative`,width:`100%`,fontSize:e.fontSize,marginInlineEnd:e.marginXS,marginBottom:e.marginXS},[`${t}-outer`]:{display:`inline-block`,width:`100%`},[`&${t}-show-info`]:{[`${t}-outer`]:{marginInlineEnd:`calc(-2em - ${e.marginXS}px)`,paddingInlineEnd:`calc(2em + ${e.paddingXS}px)`}},[`${t}-inner`]:{position:`relative`,display:`inline-block`,width:`100%`,overflow:`hidden`,verticalAlign:`middle`,backgroundColor:e.progressRemainingColor,borderRadius:e.progressLineRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorInfo}},[`${t}-success-bg, ${t}-bg`]:{position:`relative`,backgroundColor:e.colorInfo,borderRadius:e.progressLineRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-success-bg`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:`inline-block`,width:`2em`,marginInlineStart:e.marginXS,color:e.progressInfoTextColor,lineHeight:1,whiteSpace:`nowrap`,textAlign:`start`,verticalAlign:`middle`,wordBreak:`normal`,[n]:{fontSize:e.fontSize}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:`absolute`,inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.progressLineRadius,opacity:0,animationName:Nn,animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:`infinite`,content:`""`}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},Fn=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.progressRemainingColor},[`&${t}-circle ${t}-inner`]:{position:`relative`,lineHeight:1,backgroundColor:`transparent`},[`&${t}-circle ${t}-text`]:{position:`absolute`,insetBlockStart:`50%`,insetInlineStart:0,width:`100%`,margin:0,padding:0,color:e.colorText,lineHeight:1,whiteSpace:`normal`,textAlign:`center`,transform:`translateY(-50%)`,[n]:{fontSize:`${e.fontSize/e.fontSizeSM}em`}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:`bottom`}}}},In=e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:`inline-block`,"&-outer":{display:`flex`,flexDirection:`row`,alignItems:`center`},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.progressRemainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.colorInfo}}}}}},Ln=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},Rn=ve(`Progress`,e=>{let t=e.marginXXS/2,n=Oe(e,{progressLineRadius:100,progressInfoTextColor:e.colorText,progressDefaultColor:e.colorInfo,progressRemainingColor:e.colorFillSecondary,progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:`2.4s`});return[Pn(n),Fn(n),In(n),Ln(n)]}),zn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Bn=v({compatConfig:{MODE:3},name:`AProgress`,inheritAttrs:!1,props:pe(cn(),{type:`line`,percent:0,showInfo:!0,trailColor:null,size:`default`,strokeLinecap:`round`}),slots:Object,setup(e,n){let{slots:r,attrs:o}=n,{prefixCls:s,direction:c}=we(`progress`,e),[l,u]=Rn(s),d=E(()=>Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor),f=E(()=>{let{percent:t=0}=e,n=un(e);return parseInt(n===void 0?t.toString():n.toString(),10)}),p=E(()=>{let{status:t}=e;return!sn.includes(t)&&f.value>=100?`success`:t||`normal`}),m=E(()=>{let{type:t,showInfo:n,size:r}=e,i=s.value;return{[i]:!0,[`${i}-inline-circle`]:t===`circle`&&pn(r,`circle`).width<=20,[`${i}-${t===`dashboard`&&`circle`||t}`]:!0,[`${i}-status-${p.value}`]:!0,[`${i}-show-info`]:n,[`${i}-${r}`]:r,[`${i}-rtl`]:c.value===`rtl`,[u.value]:!0}}),h=E(()=>typeof e.strokeColor==`string`||Array.isArray(e.strokeColor)?e.strokeColor:void 0),g=()=>{let{showInfo:n,format:o,type:c,percent:l,title:u}=e,d=un(e);if(!n)return null;let f,m=o||r?.format||(e=>`${e}%`),h=c===`line`;return o||r?.format||p.value!==`exception`&&p.value!==`success`?f=m(ln(l),ln(d)):p.value===`exception`?f=w(h?t:i,null,null):p.value===`success`&&(f=w(h?a:Le,null,null)),w(`span`,{class:`${s.value}-text`,title:u===void 0&&typeof f==`string`?f:void 0},[f])};return()=>{let{type:t,steps:n,title:r}=e,{class:i}=o,a=zn(o,[`class`]),u=g(),f;return t===`line`?f=n?w(Mn,Z(Z({},e),{},{strokeColor:h.value,prefixCls:s.value,steps:n}),{default:()=>[u]}):w(vn,Z(Z({},e),{},{strokeColor:d.value,prefixCls:s.value,direction:c.value}),{default:()=>[u]}):(t===`circle`||t===`dashboard`)&&(f=w(jn,Z(Z({},e),{},{prefixCls:s.value,strokeColor:d.value,progressStatus:p.value}),{default:()=>[u]})),l(w(`div`,Z(Z({role:`progressbar`},a),{},{class:[m.value,i],title:r}),[f]))}}}),Vn=xe(Bn),Hn={class:`mh-body`},Un={class:`mh-name`},Wn={class:`mh-role`},Gn={key:0,class:`mh-task`},Kn={class:`mh-hint`},qn=Object.assign(Q(v({__name:`MentionHoverCard`,setup(e){let t=yt(),n=I(null),r=null,i=e=>{for(let[n,r]of Object.entries(t.agents)){let t=r.find(t=>t.agentId===e);if(t)return{agent:t,channelId:n}}return null},a=e=>e.target.closest?.(`.md-mention, .who-pill`)??null,o=e=>{let t=a(e);if(!t)return;let o=t.dataset.agentId;o&&(r&&clearTimeout(r),r=setTimeout(()=>{let t=i(o);if(!t)return;let r=Math.min(e.clientX+14,Math.max(window.innerWidth-280,8)),a=Math.min(e.clientY+16,Math.max(window.innerHeight-170,8));n.value={x:r,y:a,...t}},350))},s=e=>{a(e)&&(r&&clearTimeout(r),n.value=null)};_(()=>{document.addEventListener(`mouseover`,o),document.addEventListener(`mouseout`,s)}),g(()=>{r&&clearTimeout(r),document.removeEventListener(`mouseover`,o),document.removeEventListener(`mouseout`,s)});let c=e=>e===`busy`?`var(--tone-live-dot)`:`var(--ink-fainter)`;return(e,r)=>(b(),F(L,{to:`body`},[n.value?(b(),k(`div`,{key:0,class:`mh-card`,style:p({left:`${n.value.x}px`,top:`${n.value.y}px`})},[O(`span`,{class:`aw-avatar is-agent mh-ava`,style:p({"--av":H(St)(n.value.agent.agentId)})},y(n.value.agent.name.trim().charAt(0).toUpperCase()),5),O(`div`,Hn,[O(`div`,Un,[O(`span`,{class:`mh-dot`,style:p({background:c(n.value.agent.state)})},null,4),U(` `+y(n.value.agent.name),1)]),O(`div`,Wn,y(n.value.agent.role)+` / `+y(n.value.agent.harness)+` / `+y(n.value.agent.state),1),n.value.agent.currentTaskId?(b(),k(`div`,Gn,y(e.$t(`mentionHoverCard.k3o5eky002`))+y(H(t).taskTitle(n.value.channelId,n.value.agent.currentTaskId)),1)):P(``,!0),O(`div`,Kn,y(e.$t(`mentionHoverCard.k1t89ag4001`)),1)])],4)):P(``,!0)]))}}),[[`__scopeId`,`data-v-85570eca`]]),{__name:`WorkshopMentionHoverCard`}),Jn={class:`fs`},Yn={class:`addr`},Xn=[`onClick`],Zn={class:`list`},Qn={class:`name`},$n=[`onClick`],er={class:`icon`},tr={class:`name`},nr={key:1,class:`empty`},rr={class:`hint`},ir=Object.assign(Q(v({__name:`FileSelectorModal`,props:{open:{type:Boolean},initialPath:{},title:{}},emits:[`update:open`,`select`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=lt(),c=I(``),u=I(null),d=I([]),f=I(!1),p=I(``),m=async e=>{f.value=!0;try{let t=await(await fetch(`/api/workshop/fs/dirs${e?`?path=${encodeURIComponent(e)}`:``}`,{headers:{authorization:`Bearer ${o.token}`}})).json();if(t.code!==0){n.warning(t.message??r(`fileSelectorModal.kz99pgv004`));return}c.value=t.data.cwd,u.value=t.data.parent,d.value=t.data.dirs??[],p.value=t.data.cwd}finally{f.value=!1}};l(()=>i.open,e=>{e&&m(i.initialPath||c.value||void 0)});let h=E(()=>{let e=c.value.includes(`\\`)?`\\`:`/`,t=c.value.split(e).filter(Boolean),n=[],r=``;for(let i of t)r=r?r+e+i:i.endsWith(`:`)?i+e:e+i,n.push({label:i,path:r});return n}),g=e=>void m(e),_=()=>{let e=p.value.trim();e&&m(e)},v=()=>{c.value&&(a(`select`,c.value),a(`update:open`,!1))},x=()=>a(`update:open`,!1);return(t,n)=>{let r=Xt,i=on,a=Be,o=st,c=s;return b(),F(c,{open:e.open,title:e.title??`选择工作目录`,width:640,"ok-text":`选择此目录`,"cancel-text":`取消`,"confirm-loading":H(f),onOk:v,onCancel:x},{default:R(()=>[O(`div`,Jn,[O(`div`,Yn,[w(i,{class:`crumbs`},{default:R(()=>[(b(!0),k(j,null,S(H(h),(e,t)=>(b(),F(r,{key:e.path+t},{default:R(()=>[O(`a`,{onClick:te(t=>g(e.path),[`prevent`])},y(e.label),9,Xn)]),_:2},1024))),128))]),_:1})]),w(a,{value:H(p),"onUpdate:value":n[0]||=e=>T(p)?p.value=e:null,size:`small`,class:`manual`,placeholder:`输入绝对路径跳转(如 D:\\\\projects\\\\my-app)`,"enter-button":`跳转`,onSearch:_},null,8,[`value`]),w(o,{spinning:H(f)},{default:R(()=>[O(`div`,Zn,[H(u)?(b(),k(`div`,{key:0,class:`row up`,onClick:n[1]||=e=>g(H(u))},[n[2]||=O(`span`,{class:`icon`},`⬆`,-1),O(`span`,Qn,y(t.$t(`fileSelectorModal.kvwnnvn001`)),1)])):P(``,!0),(b(!0),k(j,null,S(H(d),e=>(b(),k(`div`,{key:e.path,class:`row`,onClick:t=>g(e.path),onDblclick:v},[O(`span`,er,y(e.hasChildren?`📂`:`📁`),1),O(`span`,tr,y(e.name),1)],40,$n))),128)),!H(f)&&H(d).length===0?(b(),k(`div`,nr,y(t.$t(`fileSelectorModal.k268o2o002`)),1)):P(``,!0)])]),_:1},8,[`spinning`]),O(`div`,rr,y(t.$t(`fileSelectorModal.k1rt80dq003`)),1)])]),_:1},8,[`open`,`title`,`confirm-loading`])}}}),[[`__scopeId`,`data-v-c35e0bdd`]]),{__name:`WorkshopFileSelectorModal`}),ar={class:`channel-list`},or={class:`list-head`},sr={class:`head-actions`},cr={key:0,class:`empty`},lr=[`onClick`],ur={class:`row1`},dr={class:`ch-name`},fr=[`title`,`aria-label`,`onClick`],pr=[`aria-label`,`onClick`],mr={class:`row2`},hr={key:0,class:`meta syncing`},gr={key:1,class:`meta`},_r=[`title`,`onClick`],vr={class:`mount-template`},yr={class:`tpl-hint`},br={class:`ws-hint`},xr={class:`ws-hint`},Sr={class:`ws-hint`},Cr={key:0,class:`ch-plugin-list`},wr={class:`ch-plugin-main`},Tr={class:`aw-mono`},Er={key:0,class:`ws-hint`},Dr={key:1,class:`ws-hint ch-plugin-desc`},Or={key:0,class:`ws-hint`},kr={key:1,class:`ws-hint`},Ar={class:`ws-hint`},jr={class:`ws-hint`},Mr=Object.assign(Q(v({__name:`ChannelSessionList`,props:{wsId:{}},setup(e){let{t}=Y(),i=e,a=dt(),o=yt(),c=Tt(),l=E(()=>a.workspaces.find(e=>e.id===i.wsId)),u=I([]),d=I([]),f=async()=>{if(typeof window>`u`)return;let[e,t]=await Promise.all([c.listChannels(),c.listChannelTemplates().catch(()=>null)]);u.value=e?.data??[],d.value=t?.data??[]};f();let p=E(()=>(l.value?.channelIds??[]).map(e=>({id:e,meta:u.value.find(t=>t.id===e),entity:o.channels[e]})).map(({id:e,meta:t,entity:n})=>({id:e,name:n?.name??t?.name??e.slice(0,8),synced:n!==void 0,busy:o.busyCount(e),agents:o.agents[e]?.length??0,activeTasks:(o.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length,workspace:t?.workspace??``}))),m=e=>{a.setActiveChannel(i.wsId,e)},h=async e=>{try{await navigator.clipboard.writeText(e),n.success(t(`channelSessionList.kud74vg040`,{p0:e}))}catch{n.error(t(`channelSessionList.krij3gg026`))}},g=e=>e.replace(/[\\/]+$/,``).split(/[\\/]/).pop()??e,_=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i,v=e=>{let t=g(e);return _.test(t)?``:t},C=I(!1),A=D({name:``,description:``,workspace:``,scenarioPrompt:``}),M=I(!1),N=I(!1),ee=async()=>{if(!A.name.trim()){n.warning(`Channel 名称必填`);return}M.value=!0;try{let e=(await c.createChannel({name:A.name.trim(),description:A.description||void 0,scenarioPrompt:A.scenarioPrompt.trim()||void 0,workspace:A.workspace.trim()||void 0}))?.data?.channelId;if(!e)throw Error(t(`channelSessionList.k1bg6shc027`));await a.mountChannel(i.wsId,e),C.value=!1,A.name=``,A.description=``,A.workspace=``,A.scenarioPrompt=``,f(),n.success(t(`channelSessionList.kn89jvs028`))}catch(e){n.error(t(`channelSessionList.k1x2th9e041`,{p0:$(e)}))}finally{M.value=!1}},L=I(),z=I(!1),B=async()=>{if(L.value){z.value=!0;try{let e=(await c.mountChannelTemplate(i.wsId,L.value))?.data;n.success(t(`channelSessionList.kai50qc042`,{p0:e?.agentCount??0})),L.value=void 0,f()}catch(e){let r=e;n.error($(r,t(`channelSessionList.k97xi7u029`)))}finally{z.value=!1}}},V=e=>{a.unmountChannel(i.wsId,e).catch(e=>{n.error($(e,t(`channelSessionList.k1hgfvdc030`)))})},W=I(!1),G=I(``),K=D({name:``,scenarioPrompt:``,workspace:``}),q=D({harness:`omp`,provider:``,model:``,effort:``,enabled:!1}),J=I([]),ne=I(`levels`),ie=I(!1),ae=E(()=>J.value.map(e=>({value:e.id,label:e.id}))),se=E(()=>(J.value.find(e=>e.id===q.provider)?.models??[]).map(e=>({value:e.id,label:e.id}))),ce=E(()=>{let e=J.value.find(e=>e.id===q.provider)?.models.find(e=>e.id===q.model);return(e?.efforts??[]).map(t=>({value:t,label:t+(e?.defaultEffort===t?`(默认)`:``)}))}),X=async e=>{ie.value=!0,J.value=[];try{let t=(await c.listHarnessProviders(e))?.data?.catalog;J.value=t?.providers??[],ne.value=t?.effortMode??`unsupported`}catch{}finally{ie.value=!1}},le=async()=>{q.provider=``,q.model=``,q.effort=``,await X(q.harness)},ue=()=>{q.model=``,q.effort=``},de=()=>{q.effort=``},fe=I(!1),pe=I(!1),me=e=>{let t=u.value.find(t=>t.id===e);G.value=e,K.name=t?.name??``,K.scenarioPrompt=t?.scenarioPrompt??``,K.workspace=t?.workspace??``;let n=null;try{let e=t;n=e?.llmJson?JSON.parse(e.llmJson):null}catch{n=null}q.enabled=!!n?.model,q.harness=`omp`,q.provider=n?.provider??``,q.model=n?.model??``,q.effort=n?.effort??``,W.value=!0,q.enabled&&X(q.harness),ve(e)},he=I([]),ge=I(`default`),_e=I(null),ve=async e=>{try{let t=(await c.listChannelPlugins(e))?.data??{};he.value=t.plugins??[],ge.value=t.source===`explicit`?`explicit`:`default`}catch{}},ye=async(e,r)=>{if(!_e.value){_e.value=e.name;try{let i=he.value.map(t=>({name:t.name,enabled:t.name===e.name?r:t.enabled})),a=(await c.putChannelPlugins(G.value,{plugins:i}))?.data??{};he.value=a.plugins??i.map(e=>({...e})),ge.value=a.source===`explicit`?`explicit`:`default`,n.success(t(`channelSessionList.k1plugon044`))}catch(e){n.error($(e))}finally{_e.value=null}}},be=async()=>{fe.value=!0;try{await c.patchChannel(G.value,{scenarioPrompt:K.scenarioPrompt,workspace:K.workspace.trim()||void 0,llm:q.enabled&&q.model?{...q.provider?{provider:q.provider}:{},model:q.model,...q.effort?{effort:q.effort}:{}}:null}),n.success(t(`channelSessionList.kvsxlu6031`)),W.value=!1,f()}catch(e){n.error($(e))}finally{fe.value=!1}},xe=I(!1),Se=D({name:``,description:``,visibility:`private`}),Z=I(!1),Ce=()=>{Se.name=t(`channelSessionList.k2hfym5043`,{p0:K.name||`channel`}),Se.description=``,Se.visibility=`private`,xe.value=!0},we=async()=>{if(!Se.name.trim()){n.warning(t(`channelSessionList.k1i0ji0y032`));return}Z.value=!0;try{await c.captureChannelTemplate({channelId:G.value,name:Se.name.trim(),description:Se.description||void 0,visibility:Se.visibility}),n.success(t(`channelSessionList.kjpguxw033`)),xe.value=!1,f()}catch(e){n.error($(e))}finally{Z.value=!1}};return(e,n)=>{let i=oe,a=Re,o=Ue,c=Pe,u=He,f=r,g=ze,_=Ne,E=s,D=ct,I=tt,G=Ge,J=We,Y=ir;return b(),k(`div`,ar,[O(`div`,or,[n[30]||=O(`span`,{class:`title`},`Channels`,-1),O(`span`,sr,[O(`button`,{class:`head-op im`,type:`button`,title:`Channel 模板中心`,onClick:n[0]||=t=>(`navigateTo`in e?e.navigateTo:H(re))(`/workshop/channel-templates`)},[...n[28]||=[O(`span`,{class:`i-tabler-layout-grid-add im-pop`},null,-1)]]),O(`button`,{class:`head-op im`,type:`button`,title:`新建 Channel`,onClick:n[1]||=e=>C.value=!0},[...n[29]||=[O(`span`,{class:`i-tabler-plus im-pop`},null,-1)]])])]),w(i,null,{default:R(()=>[H(p).length===0?(b(),k(`div`,cr,y(e.$t(`channelSessionList.kkv789s014`)),1)):P(``,!0),(b(!0),k(j,null,S(H(p),t=>(b(),k(`div`,{key:t.id,class:x([`channel-item`,{active:H(l)?.activeChannelId===t.id}]),onClick:e=>m(t.id)},[O(`div`,ur,[O(`span`,{class:x([`dot`,{live:t.activeTasks>0}])},null,2),O(`span`,dr,y(t.name),1),O(`button`,{class:`op im`,type:`button`,title:e.$t(`channelSessionList.kne35ug001`),"aria-label":e.$t(`channelSessionList.kjmldih035`,{p0:t.name}),onClick:te(e=>me(t.id),[`stop`])},[...n[31]||=[O(`span`,{class:`i-tabler-settings2 im-pop`},null,-1)]],8,fr),O(`button`,{class:`op im`,type:`button`,title:`移出 workspace`,"aria-label":e.$t(`channelSessionList.k1yurooi036`,{p0:t.name}),onClick:te(e=>V(t.id),[`stop`])},[...n[32]||=[O(`span`,{class:`i-tabler-x im-pop`},null,-1)]],8,pr)]),O(`div`,mr,[t.synced?(b(),k(`span`,gr,y(t.agents)+` `+y(e.$t(`channelSessionList.k1ggoa45025`))+` `+y(t.busy)+` / `+y(e.$t(`channelSessionList.k3wcox034`))+` `+y(t.activeTasks),1)):(b(),k(`span`,hr,y(e.$t(`channelSessionList.k1bst7s9015`)),1))]),v(t.workspace)?(b(),k(`button`,{key:0,class:`row2 ws im`,type:`button`,title:e.$t(`channelSessionList.kfe4pzq037`,{p0:t.workspace}),onClick:te(e=>h(t.workspace),[`stop`])},[n[33]||=O(`span`,{class:`i-tabler-folder`},null,-1),U(` `+y(v(t.workspace)),1)],8,_r)):P(``,!0)],10,lr))),128))]),_:1}),O(`div`,vr,[w(a,{value:H(L),"onUpdate:value":n[2]||=e=>T(L)?L.value=e:null,size:`small`,placeholder:`从 Channel 模板挂载`,class:`select`,loading:H(z),options:H(d).map(t=>({value:t.id,label:e.$t(`channelSessionList.k1oes209038`,{p0:t.isBuiltin?`内置 · `:t.visibility===`public`?`公开 · `:``,p1:t.name,p2:+!!t.lead+t.members.length})})),onChange:B},null,8,[`value`,`loading`,`options`]),O(`div`,yr,y(e.$t(`channelSessionList.k18ppu31016`)),1)]),w(E,{open:H(C),"onUpdate:open":n[8]||=e=>T(C)?C.value=e:null,title:e.$t(`channelSessionList.k1qjyl6l002`),"confirm-loading":H(M),"ok-text":`创建`,"cancel-text":`取消`,onOk:ee},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:`Channel 名称`},{default:R(()=>[w(o,{value:H(A).name,"onUpdate:value":n[3]||=e=>H(A).name=e},null,8,[`value`])]),_:1}),w(c,{label:e.$t(`channelSessionList.k40gkk003`)},{default:R(()=>[w(o,{value:H(A).description,"onUpdate:value":n[4]||=e=>H(A).description=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k1wj4f38004`)},{extra:R(()=>[O(`span`,br,y(e.$t(`channelSessionList.k1u3zsr5017`)),1)]),default:R(()=>[w(u,{value:H(A).scenarioPrompt,"onUpdate:value":n[5]||=e=>H(A).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.k1098zie005`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.kmgv4h5006`)},{extra:R(()=>[O(`span`,xr,y(e.$t(`channelSessionList.kucq30k019`)),1)]),default:R(()=>[w(g,{compact:``},{default:R(()=>[w(o,{value:H(A).workspace,"onUpdate:value":n[6]||=e=>H(A).workspace=e,style:{width:`70%`},placeholder:`留空 = data/workspaces/<channelId>`,"allow-clear":``,onPressEnter:ee},null,8,[`value`]),w(f,{style:{width:`30%`},onClick:n[7]||=e=>N.value=!0},{default:R(()=>[U(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),w(c,null,{default:R(()=>[O(`span`,Sr,y(e.$t(`channelSessionList.k1ful761020`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(E,{open:H(W),"onUpdate:open":n[19]||=e=>T(W)?W.value=e:null,title:e.$t(`channelSessionList.k1pmemvt039`,{p0:H(K).name}),"confirm-loading":H(fe),"ok-text":`保存`,"cancel-text":`取消`,onOk:be},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:e.$t(`channelSessionList.k1i8q46x007`)},{default:R(()=>[w(u,{value:H(K).scenarioPrompt,"onUpdate:value":n[9]||=e=>H(K).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.ku3ugac008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k67dzev009`)},{default:R(()=>[w(g,{compact:``},{default:R(()=>[w(o,{value:H(K).workspace,"onUpdate:value":n[10]||=e=>H(K).workspace=e,style:{width:`70%`},placeholder:`data/workspaces/<channelId>`,"allow-clear":``},null,8,[`value`]),w(f,{style:{width:`30%`},onClick:n[11]||=e=>pe.value=!0},{default:R(()=>[U(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),w(c,{label:`默认模型(可选;留空用各 Harness 默认)`},{default:R(()=>[w(I,null,{default:R(()=>[w(D,{checked:H(q).enabled,"onUpdate:checked":n[12]||=e=>H(q).enabled=e,size:`small`,onChange:n[13]||=e=>{e&&X(H(q).harness)}},null,8,[`checked`]),w(a,{value:H(q).harness,"onUpdate:value":n[14]||=e=>H(q).harness=e,style:{width:`130px`},options:[{value:`omp`,label:`omp`},{value:`codex`,label:`codex`},{value:`opencode`,label:`opencode`},{value:`dsh`,label:`dsh`}],disabled:!H(q).enabled,onChange:le},null,8,[`value`,`disabled`]),w(a,{value:H(q).provider,"onUpdate:value":n[15]||=e=>H(q).provider=e,style:{width:`170px`},placeholder:H(ie)?`目录加载中…`:`provider`,options:H(ae),disabled:!H(q).enabled||H(ie),"show-search":``,onChange:ue},null,8,[`value`,`placeholder`,`options`,`disabled`]),w(a,{value:H(q).model,"onUpdate:value":n[16]||=e=>H(q).model=e,style:{width:`210px`},placeholder:`model`,options:H(se),disabled:!H(q).enabled||!H(q).provider,"show-search":``,onChange:de},null,8,[`value`,`options`,`disabled`]),H(ne)===`levels`?(b(),F(a,{key:0,value:H(q).effort,"onUpdate:value":n[17]||=e=>H(q).effort=e,style:{width:`130px`},placeholder:`effort(可选)`,options:H(ce),disabled:!H(q).enabled||!H(q).model,"allow-clear":``},null,8,[`value`,`options`,`disabled`])):H(ne)===`freetext`?(b(),F(o,{key:1,value:H(q).effort,"onUpdate:value":n[18]||=e=>H(q).effort=e,style:{width:`130px`},placeholder:`variant(可选)`,disabled:!H(q).enabled||!H(q).model,"allow-clear":``},null,8,[`value`,`disabled`])):P(``,!0)]),_:1})]),_:1}),w(c,{label:H(t)(`channelSessionList.k1pluglbl045`)},{default:R(()=>[H(he).length?(b(),k(`div`,Cr,[(b(!0),k(j,null,S(H(he),e=>(b(),k(`div`,{key:e.name,class:`ch-plugin-row`},[O(`div`,wr,[O(`span`,Tr,y(e.name),1),e.builtin?(b(),k(`span`,Er,`内置`)):P(``,!0),e.description?(b(),k(`span`,Dr,y(e.description),1)):P(``,!0)]),w(D,{checked:e.enabled,size:`small`,loading:H(_e)===e.name,onChange:t=>ye(e,!!t)},null,8,[`checked`,`loading`,`onChange`])]))),128)),H(ge)===`explicit`?P(``,!0):(b(),k(`span`,Or,y(H(t)(`channelSessionList.k1plugsrc046`)),1))])):(b(),k(`span`,kr,`—`))]),_:1},8,[`label`]),w(c,null,{default:R(()=>[w(f,{size:`small`,onClick:Ce},{default:R(()=>[n[34]||=O(`span`,{class:`i-tabler-template`},null,-1),U(` `+y(e.$t(`channelSessionList.k6kpql010`)),1)]),_:1}),O(`span`,Ar,y(e.$t(`channelSessionList.k1x6kznr021`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(E,{open:H(xe),"onUpdate:open":n[23]||=e=>T(xe)?xe.value=e:null,title:e.$t(`channelSessionList.k6kpql010`),"confirm-loading":H(Z),"ok-text":`保存模板`,"cancel-text":`取消`,onOk:we},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:e.$t(`channelSessionList.k1f55q76011`)},{default:R(()=>[w(o,{value:H(Se).name,"onUpdate:value":n[20]||=e=>H(Se).name=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k40gkk003`)},{default:R(()=>[w(o,{value:H(Se).description,"onUpdate:value":n[21]||=e=>H(Se).description=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k3lrqn0012`)},{default:R(()=>[w(J,{value:H(Se).visibility,"onUpdate:value":n[22]||=e=>H(Se).visibility=e},{default:R(()=>[w(G,{value:`private`},{default:R(()=>[U(y(e.$t(`channelSessionList.k1otvrfv022`)),1)]),_:1}),w(G,{value:`public`},{default:R(()=>[U(y(e.$t(`channelSessionList.k1cc399s023`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(c,null,{default:R(()=>[O(`span`,jr,y(e.$t(`channelSessionList.kl9btf7024`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(Y,{open:H(N),"onUpdate:open":n[24]||=e=>T(N)?N.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":H(A).workspace||void 0,onSelect:n[25]||=e=>{H(A).workspace=e}},null,8,[`open`,`title`,`initial-path`]),w(Y,{open:H(pe),"onUpdate:open":n[26]||=e=>T(pe)?pe.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":H(K).workspace||void 0,onSelect:n[27]||=e=>{H(K).workspace=e}},null,8,[`open`,`title`,`initial-path`])])}}}),[[`__scopeId`,`data-v-749e05c3`]]),{__name:`WorkshopChannelSessionList`}),Nr={class:`live-bar`},Pr={key:0,class:`live-idle`},Fr={class:`idle-text`},Ir=[`title`],Lr={class:`live-ava`},Rr={class:`live-text`},zr={class:`live-name`},Br={class:`live-detail`},Vr=[`aria-expanded`,`title`],Hr={class:`live-pop`},Ur={class:`live-pop-title`},Wr=[`onClick`],Gr={class:`live-pop-text`},Kr={class:`live-pop-name`},qr={class:`live-pop-detail`},Jr=Object.assign(Q(v({__name:`LiveAgentBar`,props:{wsId:{}},emits:[`openAgent`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=dt(),o=yt(),s=E(()=>a.workspaces.find(e=>e.id===r.wsId)),c=E(()=>{let e=[];for(let t of s.value?.channelIds??[])for(let r of o.agents[t]??[])r.state===`busy`&&e.push({...r,channelId:t,taskLabel:r.currentTaskId?o.taskTitle(t,r.currentTaskId):r.queued?n(`liveAgentBar.k68d2a2006`,{p0:r.queued}):n(`liveAgentBar.k3o5tz9005`)});return e}),l=I(!1),u=e=>e.trim().charAt(0).toUpperCase(),d=e=>{l.value=!1,i(`openAgent`,{channelId:e.channelId,agentId:e.agentId})};return(e,t)=>(b(),k(`div`,Nr,[H(c).length===0?(b(),k(`div`,Pr,[t[3]||=O(`span`,{class:`idle-dot`,"aria-hidden":`true`},null,-1),O(`span`,Fr,y(e.$t(`liveAgentBar.kr4bxgp001`)),1)])):(b(),k(j,{key:1},[O(`button`,{type:`button`,class:`live-main`,title:e.$t(`liveAgentBar.kh66fan003`,{p0:H(c)[0].name}),onClick:t[0]||=e=>d(H(c)[0])},[O(`span`,Lr,[O(`span`,{class:`aw-avatar is-agent live-avatar`,style:p({"--av":H(St)(H(c)[0].agentId)})},y(u(H(c)[0].name)),5),t[4]||=O(`span`,{class:`live-pip`,"aria-hidden":`true`},null,-1)]),O(`span`,Rr,[O(`span`,zr,y(H(c)[0].name),1),O(`span`,Br,y(H(c)[0].taskLabel),1)])],8,Ir),H(c).length>1?(b(),k(`button`,{key:0,type:`button`,class:`live-more`,"aria-haspopup":`true`,"aria-expanded":H(l),title:e.$t(`liveAgentBar.k1a39d92004`,{p0:H(c).length-1}),onClick:t[1]||=e=>l.value=!H(l)},` +`+y(H(c).length-1),9,Vr)):P(``,!0),H(l)&&H(c).length>1?(b(),k(j,{key:1},[O(`div`,{class:`live-backdrop`,onClick:t[2]||=e=>l.value=!1}),O(`div`,Hr,[O(`div`,Ur,y(e.$t(`liveAgentBar.k1sf0ymy002`))+` `+y(H(c).length),1),(b(!0),k(j,null,S(H(c),e=>(b(),k(`button`,{key:e.agentId,type:`button`,class:`live-pop-item`,onClick:t=>d(e)},[O(`span`,{class:`aw-avatar is-agent live-avatar-sm`,style:p({"--av":H(St)(e.agentId)})},y(u(e.name)),5),O(`span`,Gr,[O(`span`,Kr,y(e.name),1),O(`span`,qr,y(e.taskLabel),1)]),t[5]||=O(`span`,{class:`pop-dot`,"aria-hidden":`true`},null,-1)],8,Wr))),128))])],64)):P(``,!0)],64))]))}}),[[`__scopeId`,`data-v-8f6c62e6`]]),{__name:`WorkshopLiveAgentBar`}),Yr=[`aria-label`],Xr=Object.assign(Q(v({__name:`PaneSplitter`,props:{label:{default:``},variant:{default:`divider`}},emits:[`resize`,`reset`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=E(()=>r.label||n(`paneSplitter.kejk1i9001`)),a=t,o=I(!1),s=0,c=e=>{e.button===0&&(o.value=!0,s=e.clientX,document.body.classList.add(`aw-pane-dragging`),e.currentTarget.setPointerCapture(e.pointerId))},l=e=>{if(!o.value)return;let t=e.clientX-s;s=e.clientX,t!==0&&a(`resize`,t)},u=e=>{if(o.value){o.value=!1,document.body.classList.remove(`aw-pane-dragging`);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},d=e=>{let t=e.shiftKey?48:12;e.key===`ArrowLeft`?(a(`resize`,-t),e.preventDefault()):e.key===`ArrowRight`&&(a(`resize`,t),e.preventDefault())};return(t,n)=>(b(),k(`div`,{class:x([`pane-splitter`,[e.variant,{dragging:H(o)}]]),role:`separator`,"aria-orientation":`vertical`,"aria-label":H(i),tabindex:`0`,onPointerdown:c,onPointermove:l,onPointerup:u,onPointercancel:u,onDblclick:n[0]||=e=>a(`reset`),onKeydown:d},[...n[1]||=[O(`span`,{class:`grip`},null,-1)]],42,Yr))}}),[[`__scopeId`,`data-v-4f787ef8`]]),{__name:`WorkshopPaneSplitter`}),Zr=I(null);function Qr(){return{quoteText:Zr,quote:e=>{Zr.value=e}}}var $r={key:0,class:`stream-covered`},ei={class:`stream-text prose`},ti=[`innerHTML`],ni={key:0,class:`cursor`},ri={key:2,class:`stream-pending`},ii=Object.assign(Q(v({__name:`ClusterStream`,props:{block:{}},setup(e){let t=e,n=yt(),r=d(`aw:open-agent`,()=>{}),i=E(()=>t.block.events[0]?.channelId??``),a=E(()=>(n.agents[i.value]??[]).map(e=>({agentId:e.agentId,name:e.name}))),o=e=>{let t=e.target.closest(`.md-mention`);if(!t)return;let n=t.dataset.agentId;n&&r({channelId:i.value,agentId:n})},s=E(()=>_t(t.block)),c=E(()=>wt(t.block)),u=I(0),f=null,p=()=>{f!==null&&(cancelAnimationFrame(f),f=null)},m=()=>{let e=s.value.length;if(u.value>=e){f=null;return}let t=e-u.value,n=Math.max(24,Math.min(1024,Math.ceil(t/16)));u.value=Math.min(e,u.value+n),f=requestAnimationFrame(m)},h=()=>{f===null&&(f=requestAnimationFrame(m))},v=()=>typeof document<`u`&&document.hidden;l([s,()=>t.block.settled],([e,t])=>{if(!e){u.value=0;return}if(t||e.length-u.value>4e3||v()){p(),u.value=e.length;return}u.value>e.length&&(u.value=e.length),u.value<e.length&&h()},{immediate:!0});let S=()=>{document.hidden||u.value<s.value.length&&(p(),h())};_(()=>{document.addEventListener(`visibilitychange`,S),t.block.settled||v()?u.value=s.value.length:(u.value=Math.min(u.value,s.value.length),h())}),g(()=>{p(),document.removeEventListener(`visibilitychange`,S)});let C=E(()=>ht(s.value.length,u.value,c.value)),w=E(()=>mt(s.value.slice(0,u.value),a.value));return(t,n)=>e.block.coveredBy?(b(),k(`div`,$r,[n[0]||=O(`span`,{class:`i-tabler-corner-right-up`},null,-1),O(`span`,null,y(t.$t(`clusterStream.kpk9wff001`)),1)])):s.value?(b(),k(`div`,{key:1,class:x([`stream-bubble`,{settled:e.block.settled}]),onClick:o},[O(`div`,ei,[O(`span`,{innerHTML:w.value},null,8,ti),C.value?(b(),k(`span`,ni,`▋`)):P(``,!0)])],2)):c.value?(b(),k(`div`,ri,[...n[1]||=[O(`span`,{class:`pending-dot`},null,-1),O(`span`,{class:`pending-dot`},null,-1),O(`span`,{class:`pending-dot`},null,-1)]])):P(``,!0)}}),[[`__scopeId`,`data-v-d381d8b3`]]),{__name:`WorkshopBlocksClusterStream`}),ai={class:`tool-cluster`},oi={class:`tool-time aw-mono`},si={class:`tool-name`},ci=[`title`],li={key:1,class:`tool-kind`},ui=4,di=Object.assign(Q(v({__name:`ClusterTool`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>{let t=String(e.payload.text??``).match(/^🔧\s*(\S+?)(?:\(([\s\S]*)\))?$/),n=t?.[1]??`tool`,r=t?.[2]??``;return{seq:e.seq,time:Dt(e.at),name:n,args:r,meta:bt[n]??{icon:`i-tabler-tool`,kind:`native`}}})),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ui)),a=E(()=>n.value.length>ui);return(e,t)=>(b(),k(`div`,ai,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:x([`tool-line`,e.meta.kind])},[O(`time`,oi,y(e.time),1),t[1]||=O(`span`,{class:`tool-node`},null,-1),O(`span`,{class:x([`tool-icon`,e.meta.icon])},null,2),O(`span`,si,y(e.name),1),e.args?(b(),k(`span`,{key:0,class:`tool-args`,title:e.args},y(e.args),9,ci)):P(``,!0),e.meta.kind===`host`?(b(),k(`span`,li,`harness`)):P(``,!0)],2))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterTool.k40p82001`):`展开全部 ${n.value.length} 个调用`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-ac0502fc`]]),{__name:`WorkshopBlocksClusterTool`}),fi={class:`status-cluster`},pi=[`aria-expanded`],mi={class:`st-label`},hi={class:`st-count`},gi={key:0,class:`st-preview`},_i={key:0,class:`st-detail`},vi={class:`st-text`},yi=Object.assign(Q(v({__name:`ClusterStatus`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,text:String(e.payload.text??``)}))),r=E(()=>{let e=n.value[n.value.length-1];if(!e)return`(空)`;let t=(e.text.split(`
7
+ `).find(e=>e.trim().length>0)??``).replace(/\s+/g,` `).trim();return t.length>120?`${t.slice(0,120)}…`:t||`(空)`}),i=I(!1),a=()=>{i.value=!i.value};return(e,t)=>(b(),k(`div`,fi,[O(`button`,{class:`st-toggle`,"aria-expanded":i.value,onClick:a},[O(`span`,{class:x([`chev`,{open:i.value}])},`▸`,2),O(`span`,mi,y(e.$t(`clusterStatus.k1fpy8te001`)),1),O(`span`,hi,y(n.value.length),1),i.value?P(``,!0):(b(),k(`span`,gi,y(r.value),1))],8,pi),i.value?(b(),k(`div`,_i,[(b(!0),k(j,null,S(n.value,e=>(b(),k(`div`,{key:e.seq,class:`st-line`},[t[0]||=O(`span`,{class:`st-mark`},`·`,-1),O(`pre`,vi,y(e.text),1)]))),128))])):P(``,!0)]))}}),[[`__scopeId`,`data-v-0a42e8bb`]]),{__name:`WorkshopBlocksClusterStatus`}),bi={class:`life-cluster`},xi=[`data-state`],Si={key:1,class:`life-row`},Ci={class:`life-state`},wi=[`title`],Ti={class:`life-meta`},Ei={key:1,class:`life-count`},Di={key:2,class:`life-row`},Oi=Object.assign(Q(v({__name:`ClusterLife`,props:{block:{}},setup(e){let t=e,n=yt(),r=E(()=>{let e=t.block.events[t.block.events.length-1];if(!e||e.type!==`agent.status`)return null;let n=e.payload;return{state:n.state,currentTaskId:n.currentTaskId??null,queued:n.queued??0,completed:n.completed??0,transitions:t.block.events.length,channelId:e.channelId}}),i=E(()=>{let e=r.value;if(!e?.currentTaskId)return``;let t=n.taskTitle(e.channelId,e.currentTaskId);return t&&t!==e.currentTaskId?t:e.currentTaskId.slice(0,12)});return(e,t)=>(b(),k(`div`,bi,[r.value?(b(),k(`span`,{key:0,class:`life-dot`,"data-state":r.value.state},null,8,xi)):P(``,!0),r.value?(b(),k(`div`,Si,[O(`span`,Ci,y(r.value.state),1),i.value?(b(),k(`span`,{key:0,class:`life-task`,title:r.value.currentTaskId??``},`「`+y(i.value)+`」`,9,wi)):P(``,!0),O(`span`,Ti,y(e.$t(`clusterLife.k498bf002`))+` `+y(r.value.queued)+` · 完成 `+y(r.value.completed),1),r.value.transitions>1?(b(),k(`span`,Ei,y(r.value.transitions)+` `+y(e.$t(`clusterLife.k3pi5z1003`)),1)):P(``,!0)])):(b(),k(`span`,Di,y(e.$t(`clusterLife.k1xthifv001`)),1))]))}}),[[`__scopeId`,`data-v-effa619b`]]),{__name:`WorkshopBlocksClusterLife`}),ki={class:`chat-meta`},Ai=[`title`],ji=[`data-agent-id`,`title`],Mi={key:2,class:`to-arrow`,"aria-hidden":`true`},Ni=[`data-agent-id`,`title`],Pi={key:4,class:`who-broadcast`},Fi=[`data-tone`],Ii=[`title`],Li=[`title`],Ri={class:`chat-time aw-mono`},zi=[`innerHTML`],Bi=4,Vi=Object.assign(Q(v({__name:`ClusterRoute`,props:{block:{}},setup(e){let{t}=Y(),n=e,r=yt(),i=d(`aw:open-agent`,()=>{}),a=E(()=>n.block.events.map((e,n)=>{let r=e.payload.metadata??{},i=typeof r[`x-aw-from-agent`]==`string`?r[`x-aw-from-agent`]:``,a=typeof r[`x-aw-from-label`]==`string`?r[`x-aw-from-label`]:``,o=typeof r[`x-aw-target-agent`]==`string`?r[`x-aw-target-agent`]:``,s=r[`x-aw-msg-priority`]===`immediate`?`immediate`:`task`,c=typeof r[`x-aw-task-kind`]==`string`?r[`x-aw-task-kind`]:``,l=c===`assign`?{icon:`i-tabler-send`,label:t(`clusterRoute.k1ax44eo005`),tone:`assign`}:c===`cancel`?{icon:`i-tabler-circle-x`,label:t(`clusterRoute.k1bsct42006`),tone:`notice`}:c===`child-completed`?{icon:`i-tabler-circle-check`,label:t(`clusterRoute.k1ax087h007`),tone:`notice`}:s===`immediate`?{icon:`i-tabler-bolt`,label:t(`clusterRoute.k1cxjc4m008`),tone:`immediate`}:{icon:`i-tabler-message`,label:t(`clusterRoute.k1bka5dz009`),tone:`peer`},u=e.payload.parts??[],d=r[`x-aw-in-reply-to`];return{seq:e.seq,i:n,channelId:e.channelId,from:i,fromLabel:a,to:o,kind:l,text:u.map(e=>e.text??``).join(`
8
+ `).trim(),time:Dt(e.at),requireReply:r[`x-aw-require-reply`]===`true`,inReplyTo:typeof d==`string`?d:``}})),o=E(()=>n.block.events[0]?.channelId??``),s=E(()=>(r.agents[o.value]??[]).map(e=>({agentId:e.agentId,name:e.name}))),c=e=>e?r.agentName(o.value,e):``,l=e=>e.trim().charAt(0).toUpperCase(),u=E(()=>a.value.map(e=>mt(e.text,s.value))),f=e=>{let t=e.target.closest(`.md-mention, .who-pill`);if(!t)return;let n=t.dataset.agentId;n&&i({channelId:o.value,agentId:n})},m=I(!1),h=E(()=>m.value?a.value:a.value.slice(0,Bi)),g=E(()=>m.value?u.value:u.value.slice(0,Bi)),_=E(()=>a.value.length>Bi);return(e,t)=>(b(),k(`div`,{class:`route-cluster`,onClick:f},[(b(!0),k(j,null,S(h.value,(n,r)=>(b(),k(`div`,{key:n.seq,class:`chat-row`},[O(`div`,ki,[n.fromLabel&&!n.from?(b(),k(`span`,{key:0,class:`human-chip`,title:e.$t(`clusterRoute.k12448jn010`,{p0:n.fromLabel})},[t[1]||=O(`span`,{class:`i-tabler-user`},null,-1),U(` `+y(n.fromLabel),1)],8,Ai)):P(``,!0),n.from?(b(),k(`button`,{key:1,type:`button`,class:`who-pill from`,"data-agent-id":n.from,title:e.$t(`clusterRoute.khsfl59011`,{p0:c(n.from)})},[O(`span`,{class:`aw-avatar is-agent who-ava`,style:p({"--av":H(St)(n.from)})},y(l(c(n.from))),5),U(` @`+y(c(n.from)),1)],8,ji)):P(``,!0),n.to?(b(),k(`span`,Mi,`→`)):P(``,!0),n.to?(b(),k(`button`,{key:3,type:`button`,class:`who-pill`,"data-agent-id":n.to,title:e.$t(`clusterRoute.khsfl59011`,{p0:c(n.to)})},` @`+y(c(n.to)),9,Ni)):(b(),k(`span`,Pi,y(e.$t(`clusterRoute.kyza1ya002`)),1)),O(`span`,{class:`route-badge`,"data-tone":n.kind.tone},[O(`span`,{class:x(n.kind.icon)},null,2),U(y(n.kind.label),1)],8,Fi),n.requireReply?(b(),k(`span`,{key:5,class:`route-badge receipt`,title:e.$t(`clusterRoute.kfbpe32001`)},[t[2]||=O(`span`,{class:`i-tabler-message-reply`},null,-1),U(y(e.$t(`clusterRoute.k3wn89c003`)),1)],8,Ii)):P(``,!0),n.inReplyTo?(b(),k(`span`,{key:6,class:`route-badge reply-link aw-mono`,title:e.$t(`clusterRoute.k94hqp2012`,{p0:n.inReplyTo})},`↩ `+y(n.inReplyTo.slice(0,8)),9,Li)):P(``,!0),O(`span`,Ri,y(n.time),1)]),n.text?(b(),k(`div`,{key:0,class:`chat-body prose`,innerHTML:g.value[r]},null,8,zi)):P(``,!0)]))),128)),_.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>m.value=!m.value},y(m.value?e.$t(`clusterRoute.k40p82004`):e.$t(`clusterRoute.k13ewgum013`,{p0:a.value.length})),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-173b8491`]]),{__name:`WorkshopBlocksClusterRoute`}),Hi={class:`task-cluster`},Ui={key:0,class:`chain-arrow`},Wi=[`data-state`,`title`],Gi={class:`state-code`},Ki={class:`task-title`},qi={key:0,class:`task-assignee`},Ji=Object.assign(Q(v({__name:`ClusterTask`,props:{block:{}},setup(e){let{t}=Y(),n=e,r=yt(),i=E(()=>n.block.events[0]?.channelId??``),a=E(()=>{let e=[];for(let t of n.block.events){if(t.type!==`task.status`)continue;let n=String(t.payload.state);e[e.length-1]!==n&&e.push(n)}return e}),o=E(()=>{let e=n.block.events.find(e=>e.type===`task.status`||e.type===`task.progress`),t=e?String(e.payload.taskId??``):``;return r.taskTitle(i.value,t)}),s=E(()=>{let e=n.block.events.find(e=>e.type===`task.status`&&e.payload.assigneeId);return e?r.agentName(i.value,e.payload.assigneeId):``}),c=E(()=>{let e=0;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e}),l=E(()=>{let e=-1;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e>=0}),u={SUBMITTED:{bg:`var(--tone-neutral-bg)`,dot:`var(--tone-neutral-dot)`},ASSIGNED:{bg:`var(--tone-info-bg)`,dot:`var(--tone-info-dot)`},WORKING:{bg:`var(--tone-info-bg)`,dot:`var(--tone-info-dot)`},WAITING:{bg:`var(--tone-warning-bg)`,dot:`var(--tone-warning-dot)`},COMPLETED:{bg:`var(--tone-success-bg)`,dot:`var(--tone-success-dot)`},FAILED:{bg:`var(--tone-danger-bg)`,dot:`var(--tone-danger-dot)`},CANCELED:{bg:`var(--tone-neutral-bg)`,dot:`var(--tone-neutral-dot)`}},d=e=>u[e]??u.SUBMITTED,f={SUBMITTED:t(`clusterTask.k3n8lhn001`),ASSIGNED:t(`clusterTask.k3n8mf0002`),WORKING:t(`clusterTask.k3o5tz9003`),WAITING:t(`clusterTask.k1hpsvap004`),COMPLETED:t(`clusterTask.k10w8u89005`),FAILED:t(`clusterTask.k4u7566006`),CANCELED:t(`clusterTask.k3n5vg5007`)},m=e=>f[e]??e;return(e,t)=>{let n=Vn;return b(),k(`div`,Hi,[(b(!0),k(j,null,S(a.value,(t,n)=>(b(),k(j,{key:t},[n>0?(b(),k(`span`,Ui,`→`)):P(``,!0),O(`span`,{class:`state-chip`,style:p({background:d(t).bg}),"data-state":t,title:e.$t(`clusterTask.kfwdcd4008`,{p0:t})},[O(`span`,{class:`state-dot`,style:p({background:d(t).dot})},null,4),U(y(m(t)),1),O(`span`,Gi,y(t),1)],12,Wi)],64))),128)),O(`span`,Ki,y(o.value),1),s.value?(b(),k(`span`,qi,`→ `+y(s.value),1)):P(``,!0),l.value?(b(),F(n,{key:1,percent:c.value,size:`small`,class:`progress`,"show-info":!0},null,8,[`percent`])):P(``,!0)])}}}),[[`__scopeId`,`data-v-cdaa9d8e`]]),{__name:`WorkshopBlocksClusterTask`}),Yi={class:`artifact-head`},Xi={class:`tag`},Zi={class:`name`},Qi=Object.assign(Q(v({__name:`ArtifactCard`,props:{artifact:{}},setup(e){let t=e,n=E(()=>t.artifact.parts.map(e=>e.text??``).join(`
9
+ `).trim()),i=E(()=>{let e=n.value;if(!e)return!1;try{return JSON.parse(e),!0}catch{return!1}}),a=E(()=>t.artifact.name===`deliverable`||t.artifact.name===`summary`||t.artifact.name===`result`||t.artifact.name===`goal-summary`),o=E(()=>{switch(t.artifact.name){case`deliverable`:return`i-tabler-package`;case`summary`:return`i-tabler-list-check`;case`result`:return`i-tabler-circle-check`;case`output`:return`i-tabler-file-text`;case`input`:return`i-tabler-inbox`;case`goal-summary`:return`i-tabler-flag`;default:return`i-tabler-receipt-2`}}),s=I(!1),c=E(()=>{let e=n.value;return e.length>200&&!s.value?`${e.slice(0,200)}…`:e}),l=I(!1),u=async()=>{try{await navigator.clipboard.writeText(n.value),l.value=!0,setTimeout(()=>{l.value=!1},1500)}catch{}};return(t,n)=>{let d=r;return b(),k(`div`,{class:x([`artifact-card`,{deliverable:H(a)}])},[O(`div`,Yi,[O(`span`,Xi,[O(`span`,{class:x(H(o))},null,2)]),O(`span`,Zi,y(e.artifact.name??`artifact`),1),w(d,{size:`small`,type:`text`,class:`op`,onClick:n[0]||=e=>s.value=!H(s)},{default:R(()=>[U(y(H(s)?t.$t(`artifactCard.k40p82001`):t.$t(`artifactCard.k3yu62003`)),1)]),_:1}),w(d,{size:`small`,type:`text`,class:`op`,onClick:u},{default:R(()=>[U(y(H(l)?t.$t(`artifactCard.k3n6o1m002`):t.$t(`artifactCard.k3y694004`)),1)]),_:1})]),O(`pre`,{class:x([`artifact-body`,{json:H(i)}])},y(H(c)||`(空)`),3)],2)}}}),[[`__scopeId`,`data-v-1699711f`]]),{__name:`WorkshopArtifactCard`}),$i={class:`artifact-cluster`},ea={key:0,class:`dup-note`},ta=Object.assign(Q(v({__name:`ClusterArtifact`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.filter(e=>e.type===`a2a.artifact`).map(e=>e.payload.artifact)),r=E(()=>!t.block.dupStream),i=I(t.block.dupStream);return(t,a)=>{let o=Qi;return b(),k(`div`,$i,[e.block.dupStream?(b(),k(`div`,ea,[a[1]||=O(`span`,{class:`i-tabler-copy`},null,-1),O(`span`,null,y(t.$t(`clusterArtifact.kyh87lw001`)),1),O(`button`,{class:`mini-btn`,onClick:a[0]||=e=>i.value=!i.value},y(i.value?t.$t(`clusterArtifact.k49les002`):`查看`),1)])):P(``,!0),r.value||i.value?(b(!0),k(j,{key:1},S(n.value,(e,t)=>(b(),F(o,{key:t,artifact:e},null,8,[`artifact`]))),128)):P(``,!0)])}}}),[[`__scopeId`,`data-v-8e7bf1b1`]]),{__name:`WorkshopBlocksClusterArtifact`}),na={class:`member-cluster`},ra=[`data-op`],ia={class:`line-text`},aa=8,oa=Object.assign(Q(v({__name:`ClusterMember`,props:{block:{}},setup(e){let t=e,n=yt(),r=E(()=>t.block.events[0]?.channelId??``),i=E(()=>t.block.events.map(e=>{let t=e.payload,i=t.by===`user`?`用户`:`lead ${n.agentName(r.value,t.by.replace(/^lead:/,``))}`,a=`${t.name}(${t.role}/${t.harness})`,o={added:`新增成员 ${a}`,updated:t.enabled===0?`禁用成员 ${a}`:`更新成员 ${a}`,removed:`移除成员 ${a}`};return{seq:e.seq,text:`${i}${o[t.op]}${t.reason?`,理由:${t.reason}`:``}`,op:t.op}})),a=I(!1),o=E(()=>a.value?i.value:i.value.slice(0,aa)),s=E(()=>i.value.length>aa);return(e,t)=>(b(),k(`div`,na,[(b(!0),k(j,null,S(o.value,e=>(b(),k(`div`,{key:e.seq,class:`member-line`,"data-op":e.op},[t[1]||=O(`span`,{class:`i-tabler-users`},null,-1),O(`span`,ia,y(e.text),1)],8,ra))),128)),s.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>a.value=!a.value},y(a.value?e.$t(`clusterMember.k40p82001`):`全部 ${i.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-0647f285`]]),{__name:`WorkshopBlocksClusterMember`}),sa={class:`memory-cluster`},ca=[`data-scope`],la={class:`mem-title`},ua=8,da=Object.assign(Q(v({__name:`ClusterMemory`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,scope:String(e.payload.scope),title:String(e.payload.title)}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ua)),a=E(()=>n.value.length>ua);return(e,t)=>(b(),k(`div`,sa,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`memory-line`},[t[1]||=O(`span`,{class:`i-tabler-bookmark`},null,-1),O(`span`,{class:`mem-scope`,"data-scope":e.scope},y(e.scope),9,ca),O(`span`,la,y(e.title),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterMemory.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-9ba9f01b`]]),{__name:`WorkshopBlocksClusterMemory`}),fa={class:`error-cluster`},pa={key:0,class:`error-code`},ma={class:`error-text`},ha=3,ga=Object.assign(Q(v({__name:`ClusterError`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,code:String(e.payload.code??``),text:String(e.payload.message??``)}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ha)),a=E(()=>n.value.length>ha);return(e,t)=>(b(),k(`div`,fa,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`error-line`},[t[1]||=O(`span`,{class:`i-tabler-alert-triangle`},null,-1),e.code?(b(),k(`span`,pa,y(e.code),1)):P(``,!0),O(`span`,ma,y(e.text),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterError.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-25c85ac6`]]),{__name:`WorkshopBlocksClusterError`}),_a={class:`other-cluster`},va={class:`other-type`},ya=6,ba=Object.assign(Q(v({__name:`ClusterOther`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,type:e.type}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ya)),a=E(()=>n.value.length>ya);return(e,t)=>(b(),k(`div`,_a,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`other-row`},[t[1]||=O(`span`,{class:`i-tabler-dots`},null,-1),O(`span`,va,y(e.type),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterOther.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-5f033e18`]]),{__name:`WorkshopBlocksClusterOther`}),xa=[`data-kind`,`data-tier`,`data-settled`,`data-covered`,`data-seq`,`data-events`,`data-folded`],Sa=[`title`],Ca={key:0,class:`i-tabler-user system-icon`},wa={key:1,class:`i-tabler-cpu system-icon`},Ta=[`title`],Ea={class:`eb-main`},Da={class:`block-head`},Oa={class:`agent-name`},ka={key:0,class:`role-label`},Aa=[`title`],ja={class:`head-right`},Ma={key:0,class:`running-chip`},Na=[`title`],Pa={key:2,class:`merged`},Fa={class:`kind-chip`},Ia={class:`time`},La={key:2,class:`eb-toolbar`},Ra=[`title`],za=[`title`],Ba={key:0,class:`ghost-time`},Va=Object.assign(Q(v({__name:`EventBlock`,props:{block:{},turnStart:{type:Boolean},compact:{type:Boolean},enterStage:{}},setup(e){let t=e,n=yt(),{quote:r}=Qr(),i=E(()=>t.block.events[0]?.channelId??``),a=E(()=>Dt(t.block.firstAt)),o=E(()=>{let e=t.block.agentId;return e?n.agentName(i.value,e):`system`}),s=E(()=>{if(t.block.agentId)return null;let e=t.block.events[0];if(!e||e.type!==`a2a.message`)return null;let n=(e.payload.metadata??{})[`x-aw-from-label`];return typeof n==`string`&&n?n:null}),c=E(()=>{let e=t.block.agentId;return e?(n.agentName(i.value,e)||e).charAt(0).toUpperCase():``}),l=E(()=>t.block.agentId?St(t.block.agentId):void 0),u=E(()=>ft[t.block.kind]),f=d(`aw:open-agent`,()=>{}),h=()=>{t.block.agentId&&f({channelId:i.value,agentId:t.block.agentId})},g=E(()=>{let e=t.block.agentId;if(!e)return``;let r=(n.agents[i.value]??[]).find(t=>t.agentId===e);if(!r)return`agent`;let a=r.role===`lead`?`lead`:`worker`,o=r.harness??``;return o?`${a} · ${o}`:a}),_=E(()=>pt(t.block.events)),v=E(()=>{let e=t.block.agentId;return e?(n.agents[i.value]??[]).find(t=>t.agentId===e)?.state??null:null}),S=E(()=>t.block.kind===`stream`&&!t.block.settled&&v.value===`busy`),C=E(()=>t.block.events[0]?.seq??0),w={stream:ii,tool:di,status:yi,life:Oi,route:Vi,task:Ji,artifact:ta,member:oa,memory:da,error:ga,other:ba},T=E(()=>w[t.block.kind]??ba),D=E(()=>t.block.kind===`stream`?_t(t.block).trim()||null:t.block.kind===`route`&&t.block.events.map(e=>(e.payload.parts??[]).map(e=>e.text??``).join(`
10
+ `).trim()).filter(Boolean).join(`
11
+ `)||null),A=I(!1),M=async()=>{let e=D.value;if(e)try{await navigator.clipboard.writeText(e),A.value=!0,setTimeout(()=>{A.value=!1},1400)}catch{}},N=()=>{let e=D.value;e&&r(e)};return(t,n)=>(b(),k(`section`,{class:x([`event-block`,{"turn-start":e.turnStart,compact:e.compact,enter:e.enterStage?.enter}]),style:p(e.enterStage?.enter?{"--d":`${e.enterStage.delay}ms`}:void 0),"data-kind":e.block.kind,"data-tier":_.value,"data-settled":e.block.settled?`true`:`false`,"data-covered":e.block.coveredBy?`true`:`false`,"data-seq":C.value,"data-events":e.block.events.length,"data-folded":e.block.folded},[O(`button`,{type:`button`,class:x([`agent-avatar`,{"is-agent":!!e.block.agentId,"is-human":!!s.value,clickable:!!e.block.agentId}]),title:s.value??`${o.value}${g.value?` · ${g.value}`:``}`,style:p(l.value?{"--av":l.value}:void 0),onClick:h},[s.value?(b(),k(`span`,Ca)):e.block.agentId?(b(),k(j,{key:2},[U(y(c.value),1)],64)):(b(),k(`span`,wa)),e.block.agentId&&v.value?(b(),k(`span`,{key:3,class:x([`av-status`,v.value]),title:v.value===`busy`?`运行中`:v.value===`stopped`?`已停止`:`空闲`},null,10,Ta)):P(``,!0)],14,Sa),O(`div`,Ea,[ee(O(`header`,Da,[O(`span`,Oa,y(s.value??o.value),1),g.value?(b(),k(`span`,ka,y(g.value),1)):P(``,!0),_.value===`attention`?(b(),k(`span`,{key:1,class:`tier-attention`,title:t.$t(`eventBlock.kc918hn001`)},[n[0]||=O(`span`,{class:`i-tabler-alert-circle`},null,-1),U(y(t.$t(`eventBlock.k3wmcv4004`)),1)],8,Aa)):P(``,!0),O(`span`,ja,[S.value?(b(),k(`span`,Ma,[n[1]||=O(`span`,{class:`running-dot`},null,-1),U(y(t.$t(`eventBlock.k3vp67i005`)),1)])):P(``,!0),e.block.folded>0?(b(),k(`span`,{key:1,class:`folded`,title:t.$t(`eventBlock.kcugdph002`)},y(t.$t(`eventBlock.k3xk4t006`))+` `+y(e.block.folded),9,Na)):P(``,!0),e.block.events.length>1?(b(),k(`span`,Pa,`×`+y(e.block.events.length),1)):P(``,!0),O(`span`,Fa,y(u.value.label),1),O(`span`,Ia,y(a.value),1)]),D.value?(b(),k(`span`,La,[O(`button`,{type:`button`,class:`eb-tool`,title:H(A)?`已复制`:`复制全文`,onClick:M},[O(`span`,{class:x(H(A)?`i-tabler-check`:`i-tabler-copy`)},null,2)],8,Ra),O(`button`,{type:`button`,class:`eb-tool`,title:t.$t(`eventBlock.kknq700003`),onClick:N},[...n[2]||=[O(`span`,{class:`i-tabler-quote`},null,-1)]],8,za)])):P(``,!0)],512),[[ne,!e.compact]]),e.compact?(b(),k(`span`,Ba,y(a.value.slice(0,5)),1)):P(``,!0),(b(),F(m(T.value),{block:e.block,class:`eb-body`},null,8,[`block`]))])],14,xa))}}),[[`__scopeId`,`data-v-e836bc26`]]),{__name:`WorkshopEventBlock`}),Ha=160,Ua=Object.freeze([]),Wa=8,Ga=new Set([`agent.message`,`a2a.artifact`,`error`,`task.status`,`a2a.message`,`agent.member`,`agent.status`]);function Ka(e,t={}){let n=xt(),r=new gt,i=A(r.blocks),a=E(()=>W(e)??``),o=E(()=>n.filters[a.value]??`all`),s=E(()=>n.focusAgents[a.value]??null),c=E(()=>W(t.resetKey)),u=E(()=>t.predicate??null),d=E(()=>W(t.agentId)??``),f=E(()=>t.raw?a.value?t.agentId?n.agentEvents(a.value,d.value):n.ring(a.value).items:Ua:a.value?n.timeline(a.value):Ua),p=E(()=>(c.value,t.agentId?f.value:u.value?f.value.filter(u.value):f.value)),m=null,h=!1,g=e=>{if(e.length===0)return e;let t=e.length-1;return e.filter((e,n)=>{if(e.kind!==`stream`)return!0;let r=_t(e).trim();return!(!r&&!e.overrideText||n===t&&!e.settled&&r.length<Wa)})},_=()=>{m!=null&&(clearTimeout(m),m=null),i.value=g(r.blocks)},v=e=>{if(e||h){h=!1,_();return}m??=setTimeout(_,Ha)};return B(()=>{m!=null&&clearTimeout(m)}),t.raw?l([a,u,c,d],()=>{r.reset(),h=!0},{immediate:!0}):l([a,o,s,u,c],()=>{r.reset(),h=!0},{immediate:!0}),l(p,e=>{let t=e[e.length-1],n=t!=null&&Ga.has(t.type);r.sync(e),v(n)},{immediate:!0}),{blocks:i,totalEvents:E(()=>p.value.length),clusterer:r}}var qa=!1;function Ja(){qa||typeof document>`u`||(qa=!0,document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`.code-copy`);if(!(t instanceof HTMLElement))return;let n=t.closest(`.code-block`)?.querySelector(`pre code`)?.textContent??``,r=()=>{let e=t.textContent;t.textContent=`已复制`,setTimeout(()=>{t.textContent=e??`复制`},1400)};navigator.clipboard?.writeText?navigator.clipboard.writeText(n).then(r,r):r()}))}var Ya={class:`transcript`},Xa={class:`filter-bar`},Za={class:`count`},Qa=[`data-state`,`title`],$a={key:0,class:`sync-pulse`},eo={key:1,class:`i-tabler-point-filled sync-dot`},to=[`title`],no=[`disabled`],ro={key:1,class:`earlier-done`},io={key:2,class:`skel-stack`},ao={key:3,class:`empty`},oo={key:0,class:`i-tabler-refresh empty-icon`},so={key:1,class:`i-tabler-message-dots empty-icon`},co={class:`empty-title`},lo={class:`empty-hint`},uo={key:4,class:`empty filtered`},fo={class:`empty-title`},po={class:`empty-hint`},mo={key:0,class:`date-divider`},ho={class:`date-divider-label`},go=Object.assign(Q(v({__name:`TranscriptTimeline`,props:{channelId:{}},setup(e){let{t}=Y(),n=e,r=xt(),{conn:i}=Ct();Ja();let a=I(null),o=I(!0),s=E(()=>i.state===`connecting`&&r.ring(n.channelId).items.length===0),c=E({get:()=>r.filters[n.channelId]??`all`,set:e=>r.setFilter(n.channelId,e)}),{blocks:u,totalEvents:d}=Ka(()=>n.channelId),f=I(!1),m=I(!1),h=E(()=>r.ring(n.channelId).items.length),v=E(()=>!m.value&&h.value>0),x=async()=>{if(f.value||m.value)return;f.value=!0;let e=a.value,t=e?{top:e.scrollTop,height:e.scrollHeight}:null;try{await r.loadEarlier(n.channelId)||(m.value=!0),e&&t&&(await M(),e.scrollTop=e.scrollHeight-t.height+t.top)}catch{}finally{f.value=!1}},C=()=>{let e=a.value;e&&(o.value=e.scrollHeight-e.scrollTop-e.clientHeight<120)},D=I(!1),A=(e,t)=>new Promise(n=>{if(window.matchMedia(`(prefers-reduced-motion: reduce)`).matches){e.scrollTop=e.scrollHeight,n();return}let r=e.scrollTop,i=e.scrollHeight-e.clientHeight-r,a=performance.now(),o=s=>{let c=Math.min(1,(s-a)/t),l=1-(1-c)**3;e.scrollTop=r+i*l,c<1?requestAnimationFrame(o):n()};requestAnimationFrame(o)}),N=async()=>{o.value=!0;let e=a.value;if(e){D.value=!0;try{await A(e,800)}finally{D.value=!1}}},ee=I(new Map),F=0,L=0,R=Date.now();l(u,(e,t)=>{let n=new Set((t??[]).map(e=>e.id)),r=e.filter(e=>!n.has(e.id)),i=new Map,a=r.length===0||r.length>Math.max(8,Math.ceil(e.length*.4))||Date.now()-R<1500;if(!a){let e=Date.now();e-F>600&&(F=e,L=0)}for(let t of e){let e=!n.has(t.id)&&!a?Math.min(L++,7)*60:-1;i.set(t.id,{enter:e>=0,delay:Math.max(0,e)})}ee.value=i},{immediate:!0});let z=async()=>{if(!o.value)return;await M();let e=a.value;e&&(e.scrollTop=e.scrollHeight)};l(()=>u.value.length,()=>{z()}),l(()=>r.lastSeq(n.channelId),()=>{z()});let B=I(null),W=null;_(()=>{let e=a.value,t=B.value;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>{o.value&&(e.scrollTop=e.scrollHeight)});n.observe(t),W=n}),g(()=>{W?.disconnect(),W=null});let G=E(()=>i.pendingReplay||i.state===`connecting`),K=E(()=>{if(!i.lastDataAt)return``;let e=Math.max(0,Math.round((Date.now()-i.lastDataAt)/1e3));return e<5?t(`transcriptTimeline.k3wwxl026`):t(`transcriptTimeline.k2gyl6l027`,{p0:e})}),te=[{value:`all`,label:t(`transcriptTimeline.k3x4t1012`)},{value:`key`,label:t(`transcriptTimeline.k3x5xi013`)},{value:`messages`,label:t(`transcriptTimeline.k41ykc014`)},{value:`tasks`,label:t(`transcriptTimeline.k3wcox015`)},{value:`team`,label:t(`transcriptTimeline.k3y5ja016`)},{value:`errors`,label:t(`transcriptTimeline.k49d2l017`)}],q=e=>{let t=new Date(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()},J=e=>{let n=new Date(e),r=new Date,i=new Date;i.setDate(r.getDate()-1);let a=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate();if(a(n,r))return t(`transcriptTimeline.k3wcqg018`);if(a(n,i))return t(`transcriptTimeline.k40l1y019`);let o=n.getFullYear()===r.getFullYear()?``:t(`transcriptTimeline.k2hda35028`,{p0:n.getFullYear()});return t(`transcriptTimeline.kbs29zx029`,{p0:o,p1:n.getMonth()+1,p2:n.getDate()})},ne=E(()=>{let e=[],t=null;for(let n of u.value){let r=q(n.firstAt);e.push({divider:t===null||r!==t?J(n.firstAt):null}),t=r}return e});return(e,t)=>{let n=Fe,r=Va;return b(),k(`div`,Ya,[O(`div`,Xa,[w(n,{value:H(c),"onUpdate:value":t[0]||=e=>T(c)?c.value=e:null,size:`small`,options:te},null,8,[`value`]),O(`span`,Za,y(H(d))+` `+y(e.$t(`transcriptTimeline.k1atjpx1005`))+` `+y(H(u).length)+` `+y(e.$t(`transcriptTimeline.k4a9o007`)),1),O(`span`,{class:`sync-chip`,"data-state":H(G)?`syncing`:H(i).state,title:H(G)?`连接中断,重连后将自动对齐缺失事件`:e.$t(`transcriptTimeline.kglov3b025`,{p0:H(K)||`无`})},[H(G)?(b(),k(`span`,$a)):H(i).state===`open`?(b(),k(`span`,eo)):P(``,!0),U(` `+y(H(G)?e.$t(`transcriptTimeline.k3lmtk3008`):H(i).state===`open`?H(K)||e.$t(`transcriptTimeline.k3y2p8020`):e.$t(`transcriptTimeline.k44c2n024`)),1)],8,Qa)]),O(`div`,{ref_key:`scroller`,ref:a,class:`scroller`,onScroll:C},[!H(o)&&!H(D)?(b(),k(`button`,{key:0,class:`jump-latest`,title:e.$t(`transcriptTimeline.kqu93z8001`),onClick:N},[t[1]||=O(`span`,{class:`i-tabler-arrow-down`},null,-1),U(` `+y(e.$t(`transcriptTimeline.k40t11002`)),1)],8,to)):P(``,!0),O(`div`,{ref_key:`columnEl`,ref:B,class:`column`},[H(v)?(b(),k(`button`,{key:0,class:`earlier-btn`,disabled:H(f),onClick:x},y(H(f)?e.$t(`transcriptTimeline.k1br0ij9009`):e.$t(`transcriptTimeline.kywgd38021`)),9,no)):P(``,!0),H(m)&&H(h)>0?(b(),k(`div`,ro,y(e.$t(`transcriptTimeline.k1kbaden003`)),1)):P(``,!0),H(s)?(b(),k(`div`,io,[(b(),k(j,null,S(3,e=>O(`div`,{key:e,class:`skel-row`,style:p({"--d":`${(e-1)*.12}s`})},[...t[2]||=[V(`<span class="aw-skel skel-ava" data-v-2b1e0a0e></span><div class="skel-lines" data-v-2b1e0a0e><span class="aw-skel skel-line name" data-v-2b1e0a0e></span><span class="aw-skel skel-line w70" data-v-2b1e0a0e></span><span class="aw-skel skel-line w45" data-v-2b1e0a0e></span></div>`,2)]],4)),64))])):H(u).length===0&&H(d)===0?(b(),k(`div`,ao,[H(G)||H(i).state!==`open`?(b(),k(`span`,oo)):(b(),k(`span`,so)),O(`p`,co,y(H(G)||H(i).state!==`open`?e.$t(`transcriptTimeline.klnne6o010`):e.$t(`transcriptTimeline.k126izdm022`)),1),O(`p`,lo,y(H(G)||H(i).state!==`open`?e.$t(`transcriptTimeline.k1iuqpxj011`):e.$t(`transcriptTimeline.kuyjpmi023`)),1)])):H(u).length===0?(b(),k(`div`,uo,[t[3]||=O(`span`,{class:`i-tabler-filter-off empty-icon`},null,-1),O(`p`,fo,y(e.$t(`transcriptTimeline.ktuo1zg004`)),1),O(`p`,po,` 「`+y(te.find(e=>e.value===H(c))?.label??H(c))+`」`+y(e.$t(`transcriptTimeline.kapxgq4006`)),1)])):P(``,!0),(b(!0),k(j,null,S(H(u),(e,t)=>(b(),k(j,{key:e.id},[H(ne)[t]?.divider?(b(),k(`div`,mo,[O(`span`,ho,y(H(ne)[t].divider),1)])):P(``,!0),w(r,{block:e,"turn-start":t>0&&H(u)[t-1].agentId!==e.agentId,compact:t>0&&H(u)[t-1].agentId===e.agentId,"enter-stage":H(ee).get(e.id)},null,8,[`block`,`turn-start`,`compact`,`enter-stage`])],64))),128))],512)],544)])}}}),[[`__scopeId`,`data-v-2b1e0a0e`]]),{__name:`WorkshopTranscriptTimeline`}),_o={key:0,class:`lane-empty`},vo={key:1,class:`lane-empty`},yo=[`disabled`],bo=Object.assign(Q(v({__name:`LaneBlocks`,props:{channelId:{},agentId:{}},setup(e){let t=e,n=xt(),{blocks:r}=Ka(()=>t.channelId,{agentId:()=>t.agentId,predicate:e=>e.agentId===t.agentId,resetKey:()=>t.agentId,raw:!0}),i=I(!0);_(()=>{n.loadLaneHistory(t.channelId,t.agentId).finally(()=>{i.value=!1})});let a=I(!1),o=I(!1),s=E(()=>r.value.length>0),c=E(()=>!o.value&&s.value),l=async()=>{if(!(a.value||o.value)){a.value=!0;try{await n.loadLaneEarlier(t.channelId,t.agentId)||(o.value=!0)}catch{}finally{a.value=!1}}};return(e,t)=>{let n=Va;return H(r).length===0&&H(i)?(b(),k(`div`,_o,[t[0]||=O(`span`,{class:`i-tabler-refresh lane-empty-icon`},null,-1),U(` `+y(e.$t(`laneBlocks.k1otw1r3001`)),1)])):H(r).length===0?(b(),k(`div`,vo,y(e.$t(`laneBlocks.k1el0s5k002`)),1)):(b(),k(j,{key:2},[H(c)?(b(),k(`button`,{key:0,type:`button`,class:`lane-earlier`,disabled:H(a),onClick:l},y(H(a)?e.$t(`laneBlocks.k1br0ij9003`):e.$t(`laneBlocks.k1br5dtr004`)),9,yo)):P(``,!0),(b(!0),k(j,null,S(H(r),e=>(b(),F(n,{key:e.id,block:e},null,8,[`block`]))),128))],64))}}}),[[`__scopeId`,`data-v-e020dd8e`]]),{__name:`WorkshopLanesLaneBlocks`}),xo={class:`lanes-wrap`},So={class:`toolbar`},Co={class:`team-summary`},wo={class:`ts-label`},To={class:`ts-count`},Eo={class:`ts-unit`},Do={class:`ts-detail`},Oo={class:`lanes`},ko={key:0,class:`empty`},Ao={class:`empty-title`},jo={class:`empty-title`},Mo={class:`empty-hint`},No={class:`lane-head`},Po={class:`head-top`},Fo={class:`lane-ava`},Io=[`title`],Lo=[`title`],Ro=[`title`],zo={class:`head-sub`},Bo={class:`lane-meta`},Vo={key:0,class:`lane-progress`},Ho={class:`lane-actions`},Uo={class:`term-label`},Wo={class:`lane-body`},Go={class:`mode-hint`},Ko={class:`mode-hint`},qo={class:`ws-hint`},Jo=320,Yo=Object.assign(Q(v({__name:`AgentLanesView`,props:{channelId:{}},setup(e){let{t}=Y(),i=e,a=yt(),o=Tt(),c=E(()=>a.agents[i.channelId]??[]),l=kt(`aw.harness.laneW`,{}),u=e=>l.value[e]??Jo,d=(e,t)=>{l.value={...l.value,[e]:Math.min(720,Math.max(240,u(e)+t))}},f=e=>{let t={...l.value};Reflect.deleteProperty(t,e),l.value=t},m=e=>e.trim().charAt(0).toUpperCase()||`?`,h=e=>St(e),v={processing:`var(--tone-live-dot)`,warning:`var(--tone-warning-dot)`,success:`var(--tone-success-dot)`},C=I(!1),A=I(!1),M=I(`create`),N=D({name:``,harness:`omp`,role:`worker`,systemPrompt:``}),ee=I([]),L=I([]),z=I(``),B=I(``),V=async()=>{try{let[e,t]=await Promise.all([o.listTemplates(),o.listTeams()]);ee.value=(e.data??[]).map(e=>({id:e.id,name:e.name,harness:e.harness,enabled:e.enabled})),L.value=(t.data??[]).map(e=>({id:e.id,name:e.name,memberCount:e.members.length,hasLead:e.members.some(e=>e.role===`lead`)}))}catch{}},W=I(!1),G=I(!1),K=D({agentId:``,name:``,role:`worker`,harness:``,systemPrompt:``}),te=e=>{K.agentId=e.agentId,K.name=e.name,K.role=e.role===`lead`?`lead`:`worker`,K.harness=e.harness,K.systemPrompt=typeof e.config?.systemPromptPrefix==`string`?e.config.systemPromptPrefix:``,W.value=!0},q=async()=>{let e=K.name.trim();if(!e){n.warning(t(`agentLanesView.ky6jqt4032`));return}G.value=!0;try{await o.updateChannelAgent(i.channelId,K.agentId,{name:e,config:{...a.agents[i.channelId]?.find(e=>e.agentId===K.agentId)?.config??{},systemPromptPrefix:K.systemPrompt.trim()},reason:t(`agentLanesView.kfvflle033`)}),n.success(t(`agentLanesView.k21xjz2044`,{p0:e})),W.value=!1}catch(e){n.error(t(`agentLanesView.k3jmrw1045`,{p0:$(e)}))}finally{G.value=!1}},J=()=>{N.name=``,N.harness=`omp`,N.role=`worker`,N.systemPrompt=``,M.value=`create`,z.value=``,B.value=``,C.value=!0,V()},ne=async()=>{if(M.value===`create`){let e=N.name.trim();if(!e){n.warning(t(`agentLanesView.ky6jqt4032`));return}A.value=!0;try{await o.addChannelAgent(i.channelId,{name:e,harness:N.harness,role:N.role,config:N.systemPrompt.trim()?{systemPromptPrefix:N.systemPrompt.trim()}:void 0}),n.success(t(`agentLanesView.k1g5ykr3046`,{p0:e})),C.value=!1}catch(e){n.error(t(`agentLanesView.k1j97j74047`,{p0:$(e)}))}finally{A.value=!1}return}if(M.value===`template`){if(!z.value){n.warning(t(`agentLanesView.k13xo8sz034`));return}A.value=!0;try{let e=ee.value.find(e=>e.id===z.value);await o.addChannelAgent(i.channelId,{agentId:z.value,role:N.role,config:N.systemPrompt.trim()?{systemPromptPrefix:N.systemPrompt.trim()}:void 0}),n.success(t(`agentLanesView.kk3uwzo048`,{p0:N.role,p1:e?.name??``})),C.value=!1}catch(e){let t=$(e);n.error(`模板克隆失败${t.includes(`LEAD_EXISTS`)?`(已有 lead,不能再添加 lead)`:`: ${t}`}`)}finally{A.value=!1}return}if(!B.value){n.warning(t(`agentLanesView.k1tjd5ab035`));return}A.value=!0;try{let e=L.value.find(e=>e.id===B.value);await o.deployTeam(B.value,i.channelId),n.success(t(`agentLanesView.k1gslqf9050`,{p0:e?.name??``,p1:e?.memberCount??0})),C.value=!1}catch(e){let t=$(e);n.error(`编组部署失败${t.includes(`LEAD_EXISTS`)?`(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)`:`: ${t}`}`)}finally{A.value=!1}},re=I(null),ie=async(e,r)=>{re.value=e;try{await o.removeChannelAgent(i.channelId,e),n.success(t(`agentLanesView.k1n3o03a052`,{p0:r}))}catch(e){n.error(t(`agentLanesView.k13dsp10053`,{p0:$(e)}))}finally{re.value=null}},ae=I(null),oe=async(e,r)=>{ae.value=e;try{await o.stopChannelAgent(i.channelId,e),n.success(t(`agentLanesView.kcpbv47054`,{p0:r}))}catch(e){n.error(t(`agentLanesView.k139ec5j055`,{p0:$(e)}))}finally{ae.value=null}},ce=I([]),X=E(()=>{let e=new Map;for(let t of ce.value)!t.alive||!t.agentId||e.set(t.agentId,t);return e}),le=e=>e?e.streaming?{text:`streaming`,color:`processing`}:e.running?{text:`turn`,color:`warning`}:{text:`idle`,color:`success`}:null,ue=null,de=async()=>{try{let e=await o.listChannelTerminals(i.channelId);ce.value=e.data??[]}catch{}},fe=I(!1),pe=I(null),me=I(``),he=e=>{pe.value=e.agentId,me.value=`${e.name} · ${e.role}`,fe.value=!0};return _(()=>{de(),ue=se(()=>void de(),5e3)}),g(()=>{ue&&clearInterval(ue)}),(t,n)=>{let i=r,o=Qe,l=Xr,g=Ke,_=We,E=Ue,D=Pe,I=Ge,V=He,Y=Ne,se=Re,ce=s,ue=qe,de=tt;return b(),k(`div`,xo,[O(`div`,So,[O(`div`,Co,[O(`span`,wo,y(t.$t(`agentLanesView.k3y5ja016`)),1),O(`span`,To,y(H(c).length),1),O(`span`,Eo,y(t.$t(`agentLanesView.k3ll6sa017`)),1),O(`span`,Do,`lead `+y(H(c).filter(e=>e.role===`lead`).length)+` · worker `+y(H(c).filter(e=>e.role===`worker`).length),1)]),w(i,{size:`small`,type:`primary`,ghost:``,onClick:J},{default:R(()=>[n[14]||=O(`span`,{class:`i-tabler-user-plus`},null,-1),O(`span`,null,y(t.$t(`agentLanesView.k1fmutgo018`)),1)]),_:1})]),O(`div`,Oo,[H(c).length===0?(b(),k(`div`,ko,[H(a).channels[e.channelId]?(b(),k(j,{key:1},[n[16]||=O(`span`,{class:`i-tabler-users-group empty-icon`},null,-1),O(`p`,jo,y(t.$t(`agentLanesView.k122h4pc020`)),1),O(`p`,Mo,y(t.$t(`agentLanesView.k7cr2h8021`)),1)],64)):(b(),k(j,{key:0},[n[15]||=O(`span`,{class:`i-tabler-refresh empty-icon`},null,-1),O(`p`,Ao,y(t.$t(`agentLanesView.k1woev5v019`)),1)],64))])):P(``,!0),(b(!0),k(j,null,S(H(c),r=>(b(),k(j,{key:r.agentId},[O(`div`,{class:`lane`,style:p({flexBasis:`${u(r.agentId)}px`})},[O(`div`,No,[O(`div`,Po,[O(`span`,Fo,[O(`span`,{style:p({"--av":h(r.agentId)})},y(m(r.name)),5),O(`span`,{class:x([`lane-state`,r.state])},null,2)]),O(`span`,{class:`lane-name`,title:r.name},y(r.name),9,Io),r.config?.systemPromptPrefix?(b(),k(`span`,{key:0,class:`lane-chip`,title:t.$t(`agentLanesView.k107s4am001`)},y(t.$t(`agentLanesView.k3xycu022`)),9,Lo)):P(``,!0),O(`span`,{class:x([`lane-role`,r.role])},y(r.role),3),le(H(X).get(r.agentId))?(b(),k(`span`,{key:1,class:`term-badge`,title:t.$t(`agentLanesView.k1wn2vmt036`,{p0:H(X).get(r.agentId)?.pid})},[O(`span`,{class:`term-dot`,style:p({background:v[le(H(X).get(r.agentId)).color]??`var(--tone-neutral-dot)`})},null,4),U(` `+y(le(H(X).get(r.agentId)).text),1)],8,Ro)):P(``,!0)]),O(`div`,zo,[O(`span`,Bo,[r.state===`busy`&&r.currentTaskTitle?(b(),k(j,{key:0},[U(y(r.currentTaskTitle)+` `,1),r.currentTaskProgress==null?P(``,!0):(b(),k(`span`,Vo,y(r.currentTaskProgress)+`%`,1))],64)):(b(),k(j,{key:1},[U(y(r.state)+` · Q`+y(r.queued??0),1)],64))]),O(`div`,Ho,[r.harness===`omp`?(b(),F(i,{key:0,size:`small`,type:`primary`,ghost:``,class:`lane-term`,title:t.$t(`agentLanesView.k1884q17002`),onClick:e=>he(r)},{default:R(()=>[n[17]||=O(`span`,{class:`i-tabler-terminal-2`},null,-1),O(`span`,Uo,y(t.$t(`agentLanesView.k4588s023`)),1)]),_:1},8,[`title`,`onClick`])):P(``,!0),w(i,{size:`small`,type:`text`,class:`lane-edit`,title:t.$t(`agentLanesView.k1pgd3tf003`),onClick:e=>te(r)},{default:R(()=>[...n[18]||=[O(`span`,{class:`i-tabler-edit`},null,-1)]]),_:1},8,[`title`,`onClick`]),n[21]||=O(`span`,{class:`actions-divider`},null,-1),w(o,{title:t.$t(`agentLanesView.k1l029kf037`,{p0:r.name}),"ok-text":`停止`,"cancel-text":`取消`,onConfirm:e=>oe(r.agentId,r.name)},{default:R(()=>[w(i,{size:`small`,type:`text`,class:`lane-stop`,loading:H(ae)===r.agentId,title:`HITL 停止该 Agent 运行时`},{default:R(()=>[...n[19]||=[O(`span`,{class:`i-tabler-player-stop`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`]),w(o,{title:t.$t(`agentLanesView.kt3n27m038`,{p0:r.name}),"ok-text":`移除`,"cancel-text":`取消`,onConfirm:e=>ie(r.agentId,r.name)},{default:R(()=>[w(i,{size:`small`,type:`text`,danger:``,class:`lane-remove`,loading:H(re)===r.agentId},{default:R(()=>[...n[20]||=[O(`span`,{class:`i-tabler-x`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`])])])]),O(`div`,Wo,[w(bo,{"channel-id":e.channelId,"agent-id":r.agentId},null,8,[`channel-id`,`agent-id`])])],4),w(l,{label:t.$t(`agentLanesView.k7xt1y6039`,{p0:r.name}),onResize:e=>d(r.agentId,e),onReset:e=>f(r.agentId)},null,8,[`label`,`onResize`,`onReset`])],64))),128))]),w(ce,{open:H(C),"onUpdate:open":n[9]||=e=>T(C)?C.value=e:null,title:t.$t(`agentLanesView.k17kcn55004`),"confirm-loading":H(A),"ok-text":`添加`,"cancel-text":`取消`,onOk:ne},{default:R(()=>[w(_,{value:H(M),"onUpdate:value":n[0]||=e=>T(M)?M.value=e:null,class:`mode-switch`},{default:R(()=>[w(g,{value:`create`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1b7cwvy024`)),1)]),_:1}),w(g,{value:`template`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1ndey1w025`)),1)]),_:1}),w(g,{value:`team`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1l5qyux026`)),1)]),_:1})]),_:1},8,[`value`]),H(M)===`create`?(b(),F(Y,{key:0,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:R(()=>[w(E,{value:H(N).name,"onUpdate:value":n[1]||=e=>H(N).name=e,placeholder:`如 db-migrator / test-writer`,onPressEnter:ne},null,8,[`value`])]),_:1},8,[`label`]),w(D,{label:`harness`},{default:R(()=>[w(_,{value:H(N).harness,"onUpdate:value":n[2]||=e=>H(N).harness=e},{default:R(()=>[w(I,{value:`omp`},{default:R(()=>[...n[22]||=[U(` omp(完整 LLM agent) `,-1)]]),_:1}),w(I,{value:`mock`},{default:R(()=>[U(y(t.$t(`agentLanesView.kqg6783027`)),1)]),_:1}),w(I,{value:`claude`},{default:R(()=>[...n[23]||=[U(` claude `,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),w(D,{label:t.$t(`agentLanesView.k479op006`)},{default:R(()=>[w(_,{value:H(N).role,"onUpdate:value":n[3]||=e=>H(N).role=e},{default:R(()=>[w(I,{value:`worker`},{default:R(()=>[...n[24]||=[U(` worker `,-1)]]),_:1}),w(I,{value:`lead`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(D,{label:t.$t(`agentLanesView.kaogfp007`)},{default:R(()=>[w(V,{value:H(N).systemPrompt,"onUpdate:value":n[4]||=e=>H(N).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.kbqn6w5008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})):H(M)===`template`?(b(),F(Y,{key:1,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:`选择 Agent 模板(克隆 name/harness/config 为独立实例)`},{default:R(()=>[w(se,{value:H(z),"onUpdate:value":n[5]||=e=>T(z)?z.value=e:null,placeholder:t.$t(`agentLanesView.kung925009`),options:H(ee).map(e=>({value:e.id,label:`${e.name}(${e.harness})${e.enabled===0?` · 已停用`:``}`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),w(D,{label:t.$t(`agentLanesView.k1bl78fu010`)},{default:R(()=>[w(_,{value:H(N).role,"onUpdate:value":n[6]||=e=>H(N).role=e},{default:R(()=>[w(I,{value:`worker`},{default:R(()=>[...n[25]||=[U(` worker `,-1)]]),_:1}),w(I,{value:`lead`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(D,{label:t.$t(`agentLanesView.k1vhvbz7011`)},{default:R(()=>[w(V,{value:H(N).systemPrompt,"onUpdate:value":n[7]||=e=>H(N).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.k7ft6ig012`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),O(`div`,Go,y(t.$t(`agentLanesView.knybb6r029`)),1)]),_:1})):(b(),F(Y,{key:2,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k29om9b013`)},{default:R(()=>[w(se,{value:H(B),"onUpdate:value":n[8]||=e=>T(B)?B.value=e:null,placeholder:t.$t(`agentLanesView.kur1otz014`),options:H(L).map(e=>({value:e.id,label:t.$t(`agentLanesView.k1qcmxyu040`,{p0:e.name,p1:e.memberCount,p2:e.hasLead?`,含 lead`:``})}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),O(`div`,Ko,y(t.$t(`agentLanesView.k1qqnq5030`)),1)]),_:1}))]),_:1},8,[`open`,`title`,`confirm-loading`]),w(ce,{open:H(W),"onUpdate:open":n[12]||=e=>T(W)?W.value=e:null,title:t.$t(`agentLanesView.k19j5rho041`,{p0:H(K).name||``}),"confirm-loading":H(G),"ok-text":`保存`,"cancel-text":`取消`,onOk:q},{default:R(()=>[w(Y,{layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:R(()=>[w(E,{value:H(K).name,"onUpdate:value":n[10]||=e=>H(K).name=e},null,8,[`value`])]),_:1},8,[`label`]),w(D,{label:`角色 / harness`},{default:R(()=>[w(de,null,{default:R(()=>[w(ue,{color:H(K).role===`lead`?`purple`:`blue`},{default:R(()=>[U(y(H(K).role),1)]),_:1},8,[`color`]),w(ue,null,{default:R(()=>[U(y(H(K).harness),1)]),_:1})]),_:1})]),_:1}),w(D,{label:`场景系统提示词(systemPromptPrefix)`},{extra:R(()=>[O(`span`,qo,y(t.$t(`agentLanesView.k1rw1rd2031`)),1)]),default:R(()=>[w(V,{value:H(K).systemPrompt,"onUpdate:value":n[11]||=e=>H(K).systemPrompt=e,rows:6,placeholder:t.$t(`agentLanesView.k10ti81i015`)},null,8,[`value`,`placeholder`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(Ot,{open:H(fe),"onUpdate:open":n[13]||=e=>T(fe)?fe.value=e:null,"agent-id":H(pe),"channel-id":e.channelId,pid:null,subtitle:H(me)},null,8,[`open`,`agent-id`,`channel-id`,`subtitle`])])}}}),[[`__scopeId`,`data-v-f68d6ffb`]]),{__name:`WorkshopAgentLanesView`}),Xo={class:`board-shell`},Zo={class:`toolbar`},Qo={class:`aw-seg`},$o={class:`count`},es={key:0,class:`pane-empty`},ts={class:`pe-title`},ns={class:`aw-serif-accent-italic`},rs={class:`pe-sub`},is={key:1,class:`board`},as=[`onDragover`,`onDragleave`,`onDrop`],os={class:`sec`},ss={class:`sec-title`},cs={class:`sec-cnt`},ls={class:`task-col-body`},us=[`onDragstart`,`onClick`],ds={class:`tk-chan`},fs={key:0,class:`tk-num`},ps={key:1,class:`tk-num`},ms={class:`tk-title`},hs=[`title`],gs={class:`tk-foot`},_s=[`onClick`],vs={key:0,class:`col-empty`},ys={key:2,class:`task-list`},bs={key:0,class:`list-sec sec`},xs={class:`sec-title`},Ss={class:`sec-cnt`},Cs=[`onClick`],ws={class:`grow`},Ts={class:`lnum`},Es={class:`meta`},Ds=[`onClick`],Os=Object.assign(Q(v({__name:`TaskBoardView`,props:{channelId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=yt(),s=Tt(),c=E(()=>o.tasks[i.channelId]??[]),l=E(()=>o.channels[i.channelId]!==void 0||o.tasks[i.channelId]!==void 0),u=I(new Map),d=E(()=>c.value.map(e=>u.value.has(e.id)?{...e,state:u.value.get(e.id)}:e)),f=[{key:`todo`,title:r(`taskBoardView.k3nf71d008`),states:[`SUBMITTED`,`ASSIGNED`],dot:`var(--tone-neutral-dot)`,moveAction:`retry`},{key:`doing`,title:r(`taskBoardView.k3o5tz9009`),states:[`WORKING`],dot:`var(--tone-info-dot)`,moveAction:null},{key:`waiting`,title:r(`taskBoardView.k1hpx9p1010`),states:[`WAITING`],dot:`var(--tone-warning-dot)`,moveAction:null},{key:`done`,title:r(`taskBoardView.k3n77g3011`),states:[`COMPLETED`],dot:`var(--tone-success-dot)`,moveAction:null},{key:`bad`,title:r(`taskBoardView.k1veotws012`),states:[`FAILED`,`CANCELED`],dot:`var(--tone-danger-dot)`,moveAction:`cancel`}],m=E(()=>f.map(e=>({...e,items:d.value.filter(t=>e.states.includes(t.state))}))),h=e=>o.agentById(i.channelId,e)?.name??e.slice(0,6),g=e=>d.value.filter(t=>t.parentId===e).length,_=e=>e.state,v=I(localStorage.getItem(`aw.tasks.boardLayout`)===`list`?`list`:`board`),C=e=>{v.value=e,localStorage.setItem(`aw.tasks.boardLayout`,e)},w=I(null),T=I(null),D=I(null),A=e=>d.value.find(t=>t.id===e),M=(e,t)=>{if(!t.moveAction)return!1;let n=A(e);return!n||t.states.includes(n.state)?!1:t.moveAction===`retry`?[`FAILED`,`CANCELED`].includes(n.state):[`SUBMITTED`,`ASSIGNED`,`WORKING`,`WAITING`,`FAILED`].includes(n.state)},N=(e,t,n)=>{w.value=t.id,T.value=n,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id))},ee=(e,t)=>{!w.value||!M(w.value,t)||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))},L=e=>{D.value===e&&(D.value=null)},R=(e,t)=>{D.value=t.key,ee(e,t)},z=()=>{w.value=null,T.value=null,D.value=null},B=e=>({"drop-over":D.value===e.key&&!!w.value&&M(w.value,e),"no-drop":!!w.value&&D.value===e.key&&!M(w.value,e),"drag-origin":T.value===e.key}),V=async(e,t)=>{e.preventDefault();let n=w.value;D.value=null,w.value=null,T.value=null,!(!n||!M(n,t))&&await G(n,t.moveAction)},W=I(new Set),G=async(e,t)=>{if(W.value.has(e))return;let i=A(e);if(!i)return;W.value.add(e);let a=i.state,o=t===`cancel`?`CANCELED`:`ASSIGNED`,c=new Map(u.value);c.set(e,o),u.value=c;try{await(t===`cancel`?s.cancelTask(e):s.retryTask(e)),n.success(r(t===`cancel`?`taskBoardView.k189y4q013`:`taskBoardView.kv1l1j3014`))}catch(t){let i=new Map(u.value);i.set(e,a),u.value=i;let o=t;n.error($(o,r(`taskBoardView.k1e7zwuc015`)))}finally{W.value.delete(e),setTimeout(()=>{let t=new Map(u.value);t.delete(e),u.value=t},4e3)}},K=I(null),q=(e,t)=>{let n=Math.min(e.clientX,Math.max(window.innerWidth-156,8)),r=Math.min(e.clientY,Math.max(window.innerHeight-160,8));K.value={task:t,x:n,y:r}},J=()=>{K.value=null},ne=E(()=>{let e=K.value?.task;if(!e)return[];let t=[];return[`SUBMITTED`,`ASSIGNED`,`WORKING`,`WAITING`,`FAILED`].includes(e.state)&&t.push({key:`cancel`,label:r(`taskBoardView.k1bs0t9b016`),danger:!0}),[`FAILED`,`CANCELED`].includes(e.state)&&t.push({key:`retry`,label:r(`taskBoardView.k1lclwk6017`)}),t.push({key:`detail`,label:r(`taskBoardView.k1dx9ysj018`)}),t}),re=async e=>{let t=K.value?.task;J(),t&&(e===`detail`?a(`openTask`,t.id):await G(t.id,e))};return(e,t)=>{let n=Vn;return b(),k(`div`,Xo,[O(`div`,Zo,[O(`div`,Qo,[O(`button`,{type:`button`,class:x({on:H(v)===`board`}),onClick:t[0]||=e=>C(`board`)},y(e.$t(`taskBoardView.k43pyn001`)),3),O(`button`,{type:`button`,class:x({on:H(v)===`list`}),onClick:t[1]||=e=>C(`list`)},y(e.$t(`taskBoardView.k3x7l0002`)),3)]),O(`span`,$o,y(H(d).length)+` `+y(e.$t(`taskBoardView.k168w1ze004`)),1)]),H(d).length===0?(b(),k(`div`,es,[O(`span`,{class:x(H(l)?`pe-icon i-tabler-list-check`:`pe-icon i-tabler-refresh`)},null,2),O(`div`,ts,[U(y(H(l)?e.$t(`taskBoardView.k3vkhhj006`):e.$t(`taskBoardView.k1f9c17l019`))+` `,1),O(`span`,ns,y(e.$t(`taskBoardView.k3wcox003`)),1)]),O(`div`,rs,y(H(l)?`在下方 Composer 提交首个任务(首行标题,支持 goal / loop / pipeline 模式)`:`任务快照对齐后自动呈现`),1)])):H(v)===`board`?(b(),k(`div`,is,[(b(!0),k(j,null,S(H(m),r=>(b(),k(`div`,{key:r.key,class:x([`task-col`,B(r)]),onDragover:e=>R(e,r),onDragleave:e=>L(r.key),onDrop:e=>V(e,r)},[O(`div`,os,[O(`span`,{class:`st-dot`,style:p({background:r.dot})},null,4),O(`span`,ss,y(r.title),1),O(`span`,cs,y(r.items.length),1)]),O(`div`,ls,[(b(!0),k(j,null,S(r.items,i=>(b(),k(`div`,{key:i.id,class:x([`card task`,{dragging:H(w)===i.id}]),draggable:`true`,onDragstart:e=>N(e,i,r.key),onDragend:z,onClick:e=>a(`openTask`,i.id)},[O(`div`,ds,[O(`span`,null,`#`+y(h(i.assigneeId)),1),g(i.id)?(b(),k(`span`,fs,y(e.$t(`taskBoardView.k4b1x005`))+` `+y(g(i.id)),1)):P(``,!0),i.artifacts?(b(),k(`span`,ps,[t[2]||=O(`span`,{class:`i-tabler-package`},null,-1),U(` `+y(i.artifacts),1)])):P(``,!0)]),O(`div`,ms,y(i.title),1),i.routeReason?(b(),k(`div`,{key:0,class:`tk-route`,title:e.$t(`taskBoardView.k8m7hm6020`,{p0:i.routeReason})},` ↳ `+y(i.routeReason),9,hs)):P(``,!0),i.state===`WORKING`&&i.progress>0?(b(),F(n,{key:1,percent:i.progress,size:`small`,"show-info":!1},null,8,[`percent`])):P(``,!0),O(`div`,gs,[O(`button`,{type:`button`,class:`st-pill-btn`,onClick:te(e=>q(e,i),[`stop`])},[O(`span`,{class:`st-pill`,style:p({color:r.dot,borderColor:r.dot})},y(r.title),5)],8,_s)])],42,us))),128)),r.items.length===0?(b(),k(`div`,vs,y(r.moveAction?e.$t(`taskBoardView.k13pad50007`):`-`),1)):P(``,!0)])],42,as))),128))])):(b(),k(`div`,ys,[(b(!0),k(j,null,S(H(m),e=>(b(),k(j,{key:e.key},[e.items.length?(b(),k(`div`,bs,[O(`span`,{class:`st-dot`,style:p({background:e.dot})},null,4),O(`span`,xs,y(e.title),1),O(`span`,Ss,y(e.items.length),1)])):P(``,!0),(b(!0),k(j,null,S(e.items,t=>(b(),k(`div`,{key:t.id,class:`list-row`,onClick:e=>a(`openTask`,t.id)},[O(`span`,ws,y(t.title),1),O(`span`,Ts,`#`+y(h(t.assigneeId)),1),O(`span`,Es,y(t.id.slice(0,8)),1),O(`span`,{class:`st-pill`,style:p({color:e.dot,borderColor:e.dot})},y(_(t)),5)],8,Cs))),128))],64))),128))])),H(K)?(b(),k(j,{key:3},[O(`div`,{class:`menu-backdrop`,onClick:J,onScroll:J},null,32),O(`div`,{class:`st-menu`,style:p({left:`${H(K).x}px`,top:`${H(K).y}px`})},[(b(!0),k(j,null,S(H(ne),e=>(b(),k(`button`,{key:e.key,type:`button`,class:x({danger:e.danger}),onClick:t=>re(e.key)},[O(`span`,{class:x(e.key===`cancel`?`i-tabler-circle-off`:e.key===`retry`?`i-tabler-rotate`:`i-tabler-external-link`)},null,2),U(` `+y(e.label),1)],10,Ds))),128))],4)],64)):P(``,!0)])}}}),[[`__scopeId`,`data-v-e4b51f68`]]),{__name:`WorkshopTaskBoardView`}),ks={class:`split`},As={key:0,class:`empty`},js={class:`col-head`},Ms={class:`col-name`},Ns={class:`col-meta`},Ps={class:`col-body`},Fs={key:0,class:`col-empty`},Is=[`onClick`],Ls={class:`me-time`},Rs={class:`me-agent`},zs={class:`me-text`},Bs=360,Vs=Object.assign(Q(v({__name:`MultiChannelView`,props:{wsId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=kt(`aw.harness.mcColW`,{}),o=e=>a.value[e]??Bs,s=(e,t)=>{a.value={...a.value,[e]:Math.min(760,Math.max(300,o(e)+t))}},c=e=>{let t={...a.value};Reflect.deleteProperty(t,e),a.value=t},l=dt(),u=yt(),d=xt(),f=E(()=>(l.workspaces.find(e=>e.id===r.wsId)?.channelIds??[]).map(e=>{let t=u.agents[e]??[],n=u.tasks[e]??[];return{id:e,name:u.channels[e]?.name??e.slice(0,8),synced:u.channels[e]!==void 0,busy:t.filter(e=>e.state===`busy`).length,agents:t.length,activeTasks:n.filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length,seq:d.lastSeq(e),items:d.ring(e).items.slice(-120)}})),m=e=>{let t=e.payload;switch(e.type){case`task.status`:return`${String(t.state)} ${String(t.taskId??``).slice(0,6)}`;case`task.progress`:return`${String(t.progress??``)}%`;case`agent.delta`:return`…${String(t.delta??``).slice(-24)}`;case`agent.message`:return`${String(t.parts?.[0]?.text??``).slice(0,40)}`;case`a2a.message`:return`文本 ${String(t.parts?.[0]?.text??``).slice(0,40)}`;case`a2a.artifact`:return`交付 ${String(t.artifact?.name??``)}`;case`memory.saved`:return n(`multiChannelView.kfvue7n009`,{p0:String(t.title??``)});case`agent.member`:return n(`multiChannelView.khq39oe010`,{p0:String(t.op??``),p1:String(t.name??``)});case`agent.status`:return`${String(t.state)}`;case`error`:return n(`multiChannelView.k16wopr9011`,{p0:String(t.code??``)});default:return e.type}};return(e,t)=>{let n=Xr;return b(),k(`div`,ks,[H(f).length===0?(b(),k(`div`,As,y(e.$t(`multiChannelView.k1bfi9ms001`)),1)):P(``,!0),(b(!0),k(j,null,S(H(f),t=>(b(),k(j,{key:t.id},[O(`div`,{class:`col`,style:p({flexBasis:`${o(t.id)}px`})},[O(`div`,js,[O(`span`,Ms,y(t.name),1),O(`span`,Ns,[t.synced?(b(),k(j,{key:0},[U(y(t.agents)+`a / `+y(e.$t(`multiChannelView.k4by6003`))+y(t.busy)+` / `+y(e.$t(`multiChannelView.k3wcox005`))+y(t.activeTasks)+` / seq`+y(t.seq),1)],64)):(b(),k(j,{key:1},[U(y(e.$t(`multiChannelView.k1bst7s9002`)),1)],64))])]),O(`div`,Ps,[t.items.length===0?(b(),k(`div`,Fs,y(t.synced?e.$t(`multiChannelView.k1el0s5k004`):e.$t(`multiChannelView.k1bst7s9002`)),1)):P(``,!0),(b(!0),k(j,null,S(t.items,e=>(b(),k(`div`,{key:`${t.id}-${e.seq}`,class:x([`mini-event`,{clickable:e.type===`task.status`}]),onClick:t=>e.type===`task.status`&&i(`openTask`,e.payload.taskId)},[O(`span`,Ls,y(H(Dt)(e.at)),1),O(`span`,Rs,y(e.agentId?.slice(0,4)??`sys`),1),O(`span`,zs,y(m(e)),1)],10,Is))),128))])],4),w(n,{label:e.$t(`multiChannelView.kvfx0mh006`,{p0:t.name}),onResize:e=>s(t.id,e),onReset:e=>c(t.id)},null,8,[`label`,`onResize`,`onReset`])],64))),128))])}}}),[[`__scopeId`,`data-v-51168f05`]]),{__name:`WorkshopMultiChannelView`}),Hs={class:`memory-panel`},Us={class:`toolbar`},Ws=[`data-ok`],Gs={class:`search-bar`},Ks={key:1,class:`search-results`},qs=[`title`],Js=[`data-source`],Ys={class:`score`},Xs={class:`hit-title`},Zs={class:`list-head`},Qs={class:`row-head`},$s={class:`row-importance`},ec={class:`row-title`},tc={class:`row-content`},nc={key:0,class:`empty`},rc=Object.assign(Q(v({__name:`MemoryPanel`,props:{channelId:{},agentId:{}},setup(e){let{t}=Y(),i=e,a=yt(),o=Tt(),c=I(`shared`),u=I(i.agentId??``);l(()=>i.agentId,e=>{e&&(u.value=e)});let d=I({}),f=I(``),p=E(()=>f.value.trim()||d.value[u.value]||``),m=E(()=>p.value.length>0),h=async()=>{try{let e=await o.listChannelAgents(i.channelId),t={};for(let n of e.data??[])n.token&&(t[n.id]=n.token);if(d.value=t,!u.value){let t=(e.data??[]).find(e=>e.role===`lead`);t&&(u.value=t.id)}}catch{}};_(()=>void h()),l(()=>i.channelId,()=>{d.value={},u.value=i.agentId??``,h()});let g=E(()=>{let e={};return p.value&&(e.authorization=`Bearer ${p.value}`),e}),v=E(()=>a.agents[i.channelId]??[]),x=I([]),C=I(!1),A=async()=>{C.value=!0;try{let e=c.value===`shared`?`/api/workshop/channels/${i.channelId}/memories`:`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories`,r=await(await fetch(e,{headers:g.value})).json();x.value=r.code===0?r.data:[],r.code!==0&&n.warning(r.message??t(`memoryPanel.k186sctu014`))}finally{C.value=!1}};l([c,u,p],()=>{p.value&&(c.value===`shared`||u.value)&&A()});let M=I(``),N=I(`auto`),ee=I([]),L=I(!1),z=async()=>{if(!M.value.trim()||!u.value||!p.value){n.warning(t(`memoryPanel.k1eh0fbo015`));return}L.value=!0;try{let e=await(await fetch(`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories/search`,{method:`POST`,headers:{"content-type":`application/json`,...g.value},body:JSON.stringify({query:M.value,scope:N.value,limit:8})})).json();ee.value=e.code===0?e.data:[]}finally{L.value=!1}},B=I(!1),V=D({title:``,content:``,scope:`shared`,importance:.8,dedupKey:``}),W=async()=>{if(!V.title||!V.content||!u.value||!p.value){n.warning(t(`memoryPanel.k1dpj734016`));return}let e=await(await fetch(`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories`,{method:`POST`,headers:{"content-type":`application/json`,...g.value},body:JSON.stringify({...V,dedupKey:V.dedupKey||void 0})})).json();e.code===0?(n.success(t(`memoryPanel.k3n5bat017`)),B.value=!1,V.title=``,V.content=``,A()):n.error(e.message??t(`memoryPanel.k1bb5i1l018`))};return(t,n)=>{let i=Ke,a=We,o=Re,l=Me,d=Ve,p=Be,h=r,g=tt,_=qe,E=st,D=Ge,I=Pe,G=Ue,K=He,te=at,q=Ne,J=s;return b(),k(`div`,Hs,[O(`div`,Us,[w(a,{value:H(c),"onUpdate:value":n[0]||=e=>T(c)?c.value=e:null,size:`small`,"button-style":`solid`},{default:R(()=>[w(i,{value:`shared`},{default:R(()=>[U(y(t.$t(`memoryPanel.k3l2hmp005`)),1)]),_:1}),w(i,{value:`private`},{default:R(()=>[U(y(t.$t(`memoryPanel.k3rve9a006`)),1)]),_:1})]),_:1},8,[`value`]),e.agentId?P(``,!0):(b(),F(o,{key:0,value:H(u),"onUpdate:value":n[1]||=e=>T(u)?u.value=e:null,size:`small`,placeholder:t.$t(`memoryPanel.k1du3379001`),class:`agent-select`,options:H(v).map(e=>({value:e.agentId,label:e.name}))},null,8,[`value`,`placeholder`,`options`])),w(l,{title:H(m)?`成员 token 已自动装配`:`自动装配失败,可手动填入成员 token`},{default:R(()=>[O(`span`,{class:`token-state`,"data-ok":H(m)},[n[12]||=O(`span`,{class:`i-tabler-key`},null,-1),U(y(H(m)?`auto`:t.$t(`memoryPanel.k3zul4013`)),1)],8,Ws)]),_:1},8,[`title`])]),H(m)?P(``,!0):(b(),F(d,{key:0,value:H(f),"onUpdate:value":n[2]||=e=>T(f)?f.value=e:null,size:`small`,placeholder:`Bearer token(成员身份,兜底手填)`,class:`token`},null,8,[`value`])),O(`div`,Gs,[w(p,{value:H(M),"onUpdate:value":n[3]||=e=>T(M)?M.value=e:null,size:`small`,placeholder:`混合检索记忆(FTS+向量,与 agent search_memory 同源)…`,loading:H(L),onSearch:z},null,8,[`value`,`loading`]),w(o,{value:H(N),"onUpdate:value":n[4]||=e=>T(N)?N.value=e:null,size:`small`,class:`scope`,options:[{value:`auto`,label:`auto`},{value:`private`,label:`private`},{value:`shared`,label:`shared`}]},null,8,[`value`])]),H(ee).length?(b(),k(`div`,Ks,[(b(!0),k(j,null,S(H(ee),e=>(b(),k(`div`,{key:e.id,class:`hit`,title:e.content.slice(0,200)},[O(`span`,{class:`src`,"data-source":e.source},y(e.source),9,Js),O(`span`,Ys,y(e.score),1),O(`span`,Xs,y(e.title),1)],8,qs))),128))])):P(``,!0),O(`div`,Zs,[O(`span`,null,y(t.$t(`memoryPanel.k1k7okbe007`)),1),w(g,{size:`small`},{default:R(()=>[w(h,{size:`small`,type:`text`,onClick:A},{default:R(()=>[U(y(t.$t(`memoryPanel.k3x1jg008`)),1)]),_:1}),w(h,{size:`small`,type:`text`,onClick:n[5]||=e=>B.value=!0},{default:R(()=>[U(y(t.$t(`memoryPanel.k3wtib009`)),1)]),_:1})]),_:1})]),w(E,{spinning:H(C)},{default:R(()=>[(b(!0),k(j,null,S(H(x),e=>(b(),k(`div`,{key:e.id,class:`row`},[O(`div`,Qs,[w(_,{class:`kind`},{default:R(()=>[U(y(e.kind),1)]),_:2},1024),O(`span`,$s,y(e.importance.toFixed(2)),1),O(`span`,ec,y(e.title),1)]),O(`div`,tc,y(e.content.slice(0,140))+y(e.content.length>140?`…`:``),1)]))),128)),H(x).length===0&&!H(C)?(b(),k(`div`,nc,` (`+y(t.$t(`memoryPanel.k43rxk011`)),1)):P(``,!0)]),_:1},8,[`spinning`]),w(J,{open:H(B),"onUpdate:open":n[11]||=e=>T(B)?B.value=e:null,title:t.$t(`memoryPanel.k1bbee8p002`),"ok-text":`写入`,"cancel-text":`取消`,onOk:W},{default:R(()=>[w(q,{layout:`vertical`},{default:R(()=>[w(I,{label:`scope`},{default:R(()=>[w(a,{value:H(V).scope,"onUpdate:value":n[6]||=e=>H(V).scope=e},{default:R(()=>[w(D,{value:`shared`},{default:R(()=>[U(y(t.$t(`memoryPanel.kemjjvq010`)),1)]),_:1}),w(D,{value:`private`},{default:R(()=>[U(` private(`+y(t.$t(`memoryPanel.k3onh9w012`)),1)]),_:1})]),_:1},8,[`value`])]),_:1}),w(I,{label:t.$t(`memoryPanel.k419s4003`)},{default:R(()=>[w(G,{value:H(V).title,"onUpdate:value":n[7]||=e=>H(V).title=e},null,8,[`value`])]),_:1},8,[`label`]),w(I,{label:t.$t(`memoryPanel.k3wv1f004`)},{default:R(()=>[w(K,{value:H(V).content,"onUpdate:value":n[8]||=e=>H(V).content=e,rows:4},null,8,[`value`])]),_:1},8,[`label`]),w(I,{label:`importance(0-1)`},{default:R(()=>[w(te,{value:H(V).importance,"onUpdate:value":n[9]||=e=>H(V).importance=e,min:0,max:1,step:.1},null,8,[`value`])]),_:1}),w(I,{label:`dedupKey(可选,幂等)`},{default:R(()=>[w(G,{value:H(V).dedupKey,"onUpdate:value":n[10]||=e=>H(V).dedupKey=e},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-25b1b7cc`]]),{__name:`WorkshopMemoryPanel`}),ic={class:`stats`},ac={class:`kpis`},oc={class:`kpi`},sc={class:`kpi-num`},cc={class:`kpi-label`},lc={class:`kpi`},uc={class:`kpi-num`},dc={class:`kpi-label`},fc={class:`kpi`},pc={class:`kpi-num`},mc={class:`kpi-label`},hc={class:`chart`},gc={class:`types`},_c={class:`types-title`},vc={class:`t-name`},yc={class:`t-bar-wrap`},bc={class:`t-n`},xc={key:0,class:`empty`},Sc=60,Cc=Object.assign(Q(v({__name:`StatsPanel`,props:{channelId:{}},setup(e){let t=e,n=xt(),r=vt(),i=E(()=>{let e=n.ring(t.channelId).items,r=Date.now(),i=Array(Sc).fill(0);for(let t of e){let e=Date.parse(t.at);if(Number.isNaN(e))continue;let n=Math.floor((r-e)/1e3),a=n>=0&&n<Sc?59-n:-1;a>=0&&(i[a]=(i[a]??0)+1)}return i}),a=E(()=>{let e=new Map;for(let r of n.ring(t.channelId).items)e.set(r.type,(e.get(r.type)??0)+1);return[...e.entries()].sort((e,t)=>t[1]-e[1])}),o=E(()=>({grid:{left:36,right:8,top:12,bottom:20},xAxis:{type:`category`,data:i.value.map((e,t)=>String(t-Sc+1))},yAxis:{type:`value`,minInterval:1},tooltip:{trigger:`axis`},series:[{type:`line`,data:i.value,smooth:!0,showSymbol:!1,areaStyle:{opacity:.15},lineStyle:{width:1.5}}]})),s=E(()=>n.ring(t.channelId).items.length),c=E(()=>i.value.slice(-10).reduce((e,t)=>e+t,0)/10);return(t,i)=>{let l=h(`app-chart`);return b(),k(`div`,ic,[O(`div`,ac,[O(`div`,oc,[O(`div`,sc,y(H(s)),1),O(`div`,cc,y(t.$t(`statsPanel.k1i88c0b001`)),1)]),O(`div`,lc,[O(`div`,uc,y(H(c).toFixed(1))+`/s `,1),O(`div`,dc,y(t.$t(`statsPanel.kfplawo002`)),1)]),O(`div`,fc,[O(`div`,pc,y(H(n).lastSeq(e.channelId)),1),O(`div`,mc,` seq / `+y(H(r).state),1)])]),O(`div`,hc,[w(l,{option:H(o),class:`app-chart`,autoresize:``},null,8,[`option`])]),O(`div`,gc,[O(`div`,_c,y(t.$t(`statsPanel.kzcd51003`)),1),(b(!0),k(j,null,S(H(a),([e,t])=>(b(),k(`div`,{key:e,class:`type-row`},[O(`span`,vc,y(e),1),O(`div`,yc,[O(`div`,{class:`t-bar`,style:p({width:`${Math.round(t/(H(a)[0]?.[1]??1)*100)}%`})},null,4)]),O(`span`,bc,y(t),1)]))),128)),H(a).length===0?(b(),k(`div`,xc,y(t.$t(`statsPanel.k1pevwxl004`)),1)):P(``,!0)])])}}}),[[`__scopeId`,`data-v-23e4d795`]]),{__name:`WorkshopStatsPanel`}),wc={class:`inspector`},Tc=[`onClick`,`onKeydown`],Ec={class:`member-info`},Dc={class:`member-name`},Oc={class:`name-text`},kc={class:`member-meta`},Ac={key:0,class:`prog`},jc={class:`member-cap`},Mc={key:0,class:`empty`},Nc=[`onClick`,`onKeydown`],Pc={class:`task-head`},Fc={class:`state-chip aw-mono`},Ic={class:`task-title`},Lc={class:`task-meta`},Rc={key:0},zc={key:1},Bc={key:0,class:`empty`},Vc=Object.assign(Q(v({__name:`InspectorPanel`,props:{channelId:{}},emits:[`openAgent`,`openTask`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=yt(),o=I(`members`),s=E(()=>a.agents[r.channelId]??[]),c=E(()=>a.tasks[r.channelId]??[]),l=E(()=>c.value.filter(e=>!e.parentId)),u=E(()=>a.channels[r.channelId]!==void 0),d=E(()=>{let e=new Map;for(let t of c.value){if(t.state!==`COMPLETED`&&t.state!==`FAILED`)continue;let n=e.get(t.assigneeId)??{total:0,completed:0,failed:0,durationSum:0};n.total+=1,t.state===`COMPLETED`?(n.completed+=1,t.updatedAt&&t.createdAt&&(n.durationSum+=Math.max(0,new Date(t.updatedAt).getTime()-new Date(t.createdAt).getTime()))):n.failed+=1,e.set(t.assigneeId,n)}return e}),f=e=>{let t=d.value.get(e);if(!t||t.total===0)return n(`inspectorPanel.k1el1plr007`);let r=Math.round(t.completed/t.total*100),i=t.completed>0?Math.round(t.durationSum/t.completed/1e3):0;return n(`inspectorPanel.k12oip5c010`,{p0:r,p1:i,p2:t.failed})},m=e=>c.value.filter(t=>t.parentId===e).length,h={idle:`var(--tone-success-dot)`,busy:`var(--tone-info-dot)`,stopped:`var(--tone-neutral-dot)`};return(t,n)=>{let r=Ye,a=Vn,c=rc,d=Cc,g=Ze;return b(),k(`div`,wc,[w(g,{"active-key":H(o),"onUpdate:activeKey":n[0]||=e=>T(o)?o.value=e:null,size:`small`,class:`tabs`},{default:R(()=>[w(r,{key:`members`,tab:`成员`},{default:R(()=>[(b(!0),k(j,null,S(H(s),e=>(b(),k(`div`,{key:e.agentId,class:`member aw-tile`,role:`button`,tabindex:`0`,onClick:t=>i(`openAgent`,e.agentId),onKeydown:K(t=>i(`openAgent`,e.agentId),[`enter`])},[O(`span`,{class:`dot`,style:p({background:h[e.state]??`var(--tone-neutral-dot)`})},null,4),O(`div`,Ec,[O(`div`,Dc,[O(`span`,Oc,y(e.name),1),O(`span`,{class:x([`role-chip`,e.role])},y(e.role),3)]),O(`div`,kc,[e.state===`busy`&&e.currentTaskTitle?(b(),k(j,{key:0},[U(y(e.currentTaskTitle)+` `,1),e.currentTaskProgress==null?P(``,!0):(b(),k(`span`,Ac,y(e.currentTaskProgress)+`%`,1))],64)):(b(),k(j,{key:1},[U(y(e.state)+` `,1),e.queued?(b(),k(j,{key:0},[U(` · `+y(t.$t(`inspectorPanel.k498bf001`))+` `+y(e.queued),1)],64)):P(``,!0),e.completed?(b(),k(j,{key:1},[U(` · `+y(t.$t(`inspectorPanel.k3ypnl002`))+` `+y(e.completed),1)],64)):P(``,!0)],64))]),O(`div`,jc,y(f(e.agentId)),1)])],40,Tc))),128)),H(s).length===0?(b(),k(`div`,Mc,y(H(u)?t.$t(`inspectorPanel.k1el4cgf005`):t.$t(`inspectorPanel.k1tqitzl008`)),1)):P(``,!0)]),_:1}),w(r,{key:`tasks`,tab:`任务`},{default:R(()=>[(b(!0),k(j,null,S(H(l),e=>(b(),k(`div`,{key:e.id,class:`task aw-tile`,role:`button`,tabindex:`0`,onClick:t=>i(`openTask`,e.id),onKeydown:K(t=>i(`openTask`,e.id),[`enter`])},[O(`div`,Pc,[O(`span`,Fc,y(e.state),1),O(`span`,Ic,y(e.title),1)]),O(`div`,Lc,[U(y(e.id.slice(0,8))+` · `+y(e.progress)+`% `,1),m(e.id)?(b(),k(`span`,Rc,`· `+y(t.$t(`inspectorPanel.k3mp44x003`))+` `+y(m(e.id)),1)):P(``,!0),e.artifacts?(b(),k(`span`,zc,`· `+y(t.$t(`inspectorPanel.k3w9q9004`))+` `+y(e.artifacts),1)):P(``,!0)]),e.state===`WORKING`?(b(),F(a,{key:0,percent:e.progress,size:`small`,"show-info":!1},null,8,[`percent`])):P(``,!0)],40,Nc))),128)),H(l).length===0?(b(),k(`div`,Bc,y(H(u)?t.$t(`inspectorPanel.k1el0vqb006`):t.$t(`inspectorPanel.kks0y5h009`)),1)):P(``,!0)]),_:1}),w(r,{key:`memory`,tab:`记忆`},{default:R(()=>[w(c,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1}),w(r,{key:`stats`,tab:`统计`},{default:R(()=>[w(d,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1})]),_:1},8,[`active-key`])])}}}),[[`__scopeId`,`data-v-b3dfa7e4`]]),{__name:`WorkshopInspectorPanel`}),Hc={class:`composer`},Uc={class:`composer-box`},Wc={key:0,class:`mention-menu`},Gc={class:`mention-title`},Kc=[`onMousedown`,`onMouseenter`],qc={class:`mention-name`},Jc={class:`mention-role`},Yc=[`title`],Xc={class:`composer-status-chip`},Zc={class:`chip-key`},Qc={key:0},$c=[`title`],el=[`data-tone`,`title`],tl={class:`chip-hint`},nl={class:`chip-key`},rl={key:0},il=[`data-tone`,`title`],al=[`placeholder`],ol={class:`composer-bar`},sl={class:`cb-left`},cl={class:`aw-seg`},ll={class:`aw-seg`},ul=[`onClick`],dl={class:`aw-seg`},fl=[`title`],pl=[`title`],ml={class:`cb-right`},hl=[`disabled`],gl=Object.assign(Q(v({__name:`Composer`,props:{channelId:{}},emits:[`submitted`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=Tt(),s=yt(),c=lt(),u=I(`task`),d=I(``),{quoteText:f}=Qr(),m=I(null);l(f,e=>{if(!e)return;let t=e.trim().split(`
12
+ `).map(e=>`> ${e}`).join(`
13
+ `);d.value=d.value?`${d.value}\n\n${t}\n\n`:`${t}\n\n`,f.value=null,M(()=>m.value?.focus())});let h=I(`goal`),g=I(60),_=I(null),v=E({get:()=>g.value??void 0,set:e=>{g.value=e??null}}),C=E({get:()=>_.value??void 0,set:e=>{_.value=e??null}}),D=I(!1),A=E(()=>s.agents[i.channelId]??[]),N=E(()=>A.value),F=E(()=>A.value.find(e=>e.role===`lead`)?.agentId??A.value[0]?.agentId??``),L=I(``);l([A,F],([e])=>{e.length!==0&&(!L.value||!e.some(e=>e.agentId===L.value))&&(L.value=F.value||(e[0]?.agentId??``))},{immediate:!0});let R=I(`immediate`),z=I(!1),B=()=>{L.value=F.value},V=I(!1),W=I(``),G=I(0),K=()=>{let e=document.activeElement,t=e?.value??d.value,n=e?.selectionStart??t.length,r=t.slice(0,n),i=/(^|\s)@([^\s@]*)$/.exec(r);if(!i){V.value=!1;return}W.value=i[2]??``,V.value=J.value.length>0,G.value=0},J=E(()=>{let e=W.value.toLowerCase();return N.value.filter(t=>!e||t.name.toLowerCase().includes(e)).slice(0,6)}),ne=e=>{let t=J.value[e];if(!t)return;let n=document.activeElement,r=n?.value??d.value,i=n?.selectionStart??r.length,a=r.slice(0,i),o=/(^|\s)@([^\s@]*)$/.exec(a),s=o?i-(o[2]?.length??0):i,c=`${r.slice(0,s)}${t.name} ${r.slice(i)}`;d.value=c,L.value=t.agentId,V.value=!1,M(()=>{let e=s+t.name.length+1;n?.setSelectionRange(e,e),n?.focus()})},re=e=>V.value?e.key===`ArrowDown`?(e.preventDefault(),G.value=Math.min(G.value+1,J.value.length-1),!0):e.key===`ArrowUp`?(e.preventDefault(),G.value=Math.max(G.value-1,0),!0):e.key===`Enter`||e.key===`Tab`?(e.preventDefault(),ne(G.value),!0):e.key===`Escape`&&(V.value=!1,!0):!1,ie=()=>{let[e,...t]=d.value.trim().split(`
14
+ `);return{title:(e??``).slice(0,120),description:t.join(`
15
+ `).trim()||void 0}},ae=async()=>{let e=d.value.trim();if(e){D.value=!0;try{if(u.value===`task`){let{title:e,description:t}=ie();if(!e){n.warning(r(`composer.kqdhdlq014`));return}let a=g.value,s=_.value;if(h.value===`loop`){if(a===null||!Number.isFinite(a)||a<1||a>86400){n.warning(`loop 间隔需设置为 1 到 86400 秒`);return}if(s!==null&&(!Number.isInteger(s)||s<1||s>1e4)){n.warning(r(`composer.k1l36qf9015`));return}}await o.submitTask(i.channelId,{title:e,description:t,mode:h.value,...h.value===`loop`?{modeConfig:{intervalMs:Math.round(a*1e3),...s===null?{}:{maxIterations:Math.floor(s)}}}:{},assigneeId:L.value||void 0,fromLabel:c.user?.name??void 0,parts:[{text:d.value.trim()}]});let l=ce.value||`lead`;n.success(r(`composer.k1d2idgj035`,{p0:l,p1:h.value}))}else{if(!L.value){n.warning(r(`composer.k1bw65is016`));return}await o.injectMessage(i.channelId,{toAgentId:L.value,text:e,priority:R.value,requireReply:z.value,fromLabel:c.user?.name??void 0}),n.success(r(`composer.k1wk4bf036`,{p0:ce.value,p1:R.value===`immediate`?r(`composer.k1cxjc4m034`):r(`composer.k40g8m009`)}))}d.value=``,B(),a(`submitted`)}catch(e){n.error($(e))}finally{D.value=!1}}},oe=e=>{e.isComposing||re(e)||e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),ae())};l(d,async()=>{await M();let e=m.value;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)});let se=E(()=>N.value.find(e=>e.agentId===L.value)),ce=E(()=>se.value?.name??``),X=E(()=>!!F.value&&L.value===F.value),le=E(()=>{if(!se.value)return null;let e=se.value.state;return u.value===`task`?e===`busy`?{tone:`info`,text:r(`composer.k1ww0ftm017`),title:r(`composer.k9eq10w018`)}:e===`stopped`?{tone:`warn`,text:r(`composer.kbhz1rp019`),title:r(`composer.kophjf5020`)}:{tone:`ok`,text:r(`composer.k4qgtiw021`),title:r(`composer.kfmjwas022`)}:e===`busy`?{tone:`info`,text:R.value===`immediate`?r(`composer.kwg68t0023`):r(`composer.k7w1etd024`),title:r(`composer.k9m6p7u025`)}:e===`stopped`?{tone:`warn`,text:r(`composer.kj1ngpo026`),title:r(`composer.kmf7lcc027`)}:{tone:`ok`,text:r(`composer.k1tet5df028`),title:r(`composer.kn600in029`)}}),ue=E(()=>u.value===`task`?r(`composer.k2h5jwc030`):r(`composer.k15mwzt7031`));return(e,t)=>{let n=Re,r=at;return b(),k(`div`,Hc,[O(`div`,Uc,[H(V)?(b(),k(`div`,Wc,[O(`div`,Gc,y(e.$t(`composer.k1bxvc46004`)),1),(b(!0),k(j,null,S(H(J),(e,t)=>(b(),k(`button`,{key:e.agentId,type:`button`,class:x([`mention-opt`,{sel:t===H(G)}]),onMousedown:te(e=>ne(t),[`prevent`]),onMouseenter:e=>G.value=t},[O(`span`,{class:`aw-avatar is-agent mention-ava`,style:p({"--av":H(St)(e.agentId)})},y(e.name.charAt(0).toUpperCase()),5),O(`span`,qc,`@`+y(e.name),1),O(`span`,Jc,y(e.role),1),O(`span`,{class:x([`mention-state`,e.state]),title:e.state},null,10,Yc)],42,Kc))),128))])):P(``,!0),O(`div`,Xc,[H(u)===`task`?(b(),k(j,{key:0},[O(`span`,Zc,y(e.$t(`composer.k3wcox005`)),1),O(`span`,null,y(H(h)),1),H(h)===`loop`?(b(),k(`span`,Qc,y(e.$t(`composer.k49kr1011`))+` `+y(H(g)??`-`)+`s `,1)):P(``,!0),O(`span`,{class:`chip-target`,title:H(X)?`未 @ 指定:任务自动路由 lead 调度;@ 某成员可直发`:e.$t(`composer.kl3604i033`,{p0:H(ce)})},`→ `+y(H(ce)?`@${H(ce)}`:`lead`)+y(H(X)?e.$t(`composer.k2z7yuw012`):e.$t(`composer.k2z0fsx032`)),9,$c),H(le)?(b(),k(`span`,{key:1,class:`reach-chip`,"data-tone":H(le).tone,title:H(le).title},[t[10]||=O(`span`,{class:`reach-dot`,"aria-hidden":`true`},null,-1),U(y(H(le).text),1)],8,el)):P(``,!0),O(`span`,tl,y(e.$t(`composer.k17u6q77006`)),1)],64)):(b(),k(j,{key:1},[O(`span`,nl,y(e.$t(`composer.k41ykc007`)),1),H(ce)?(b(),k(`span`,rl,`@`+y(H(ce))+y(H(X)?e.$t(`composer.k2z7yuw012`):``),1)):P(``,!0),O(`span`,null,y(H(R)===`immediate`?e.$t(`composer.k1bosqfv013`):e.$t(`composer.k40g8m009`)),1),H(le)?(b(),k(`span`,{key:1,class:`reach-chip`,"data-tone":H(le).tone,title:H(le).title},[t[11]||=O(`span`,{class:`reach-dot`,"aria-hidden":`true`},null,-1),U(y(H(le).text),1)],8,il)):P(``,!0),t[12]||=O(`span`,{class:`chip-hint`},`输入 @ 提及成员 · ⌘/Ctrl+Enter 发送`,-1)],64))]),ee(O(`textarea`,{ref_key:`taEl`,ref:m,"onUpdate:modelValue":t[0]||=e=>T(d)?d.value=e:null,class:`composer-input`,rows:`1`,placeholder:H(ue),onInput:K,onKeydown:oe,onBlur:t[1]||=e=>V.value=!1},null,40,al),[[q,H(d)]]),O(`div`,ol,[O(`div`,sl,[O(`div`,cl,[O(`button`,{type:`button`,class:x({on:H(u)===`task`}),onClick:t[2]||=e=>u.value=`task`},y(e.$t(`composer.k3wcox005`)),3),O(`button`,{type:`button`,class:x({on:H(u)===`message`}),onClick:t[3]||=e=>u.value=`message`},y(e.$t(`composer.k41ykc007`)),3)]),w(n,{value:H(L),"onUpdate:value":t[4]||=e=>T(L)?L.value=e:null,size:`small`,class:`target`,options:H(N).map(e=>({value:e.agentId,label:`@ ${e.name}${e.role===`lead`?` · lead`:``}`}))},null,8,[`value`,`options`]),H(u)===`task`?(b(),k(j,{key:0},[O(`div`,ll,[(b(),k(j,null,S([`goal`,`loop`,`pipeline`],e=>O(`button`,{key:e,type:`button`,class:x({on:H(h)===e}),onClick:t=>h.value=e},y(e),11,ul)),64))]),H(h)===`loop`?(b(),k(j,{key:0},[w(r,{value:H(v),"onUpdate:value":t[5]||=e=>T(v)?v.value=e:null,size:`small`,min:1,max:86400,step:1,precision:0,"addon-after":`秒`,class:`loop-number`},null,8,[`value`]),w(r,{value:H(C),"onUpdate:value":t[6]||=e=>T(C)?C.value=e:null,size:`small`,min:1,max:1e4,step:1,precision:0,placeholder:e.$t(`composer.k1b38y2b001`),class:`loop-number iterations`},null,8,[`value`,`placeholder`])],64)):P(``,!0)],64)):(b(),k(j,{key:1},[O(`div`,dl,[O(`button`,{type:`button`,class:x({on:H(R)===`immediate`}),title:e.$t(`composer.k1jqqvhe002`),onClick:t[7]||=e=>R.value=`immediate`},y(e.$t(`composer.k3x9n2008`)),11,fl),O(`button`,{type:`button`,class:x({on:H(R)===`task`}),onClick:t[8]||=e=>R.value=`task`},y(e.$t(`composer.k40g8m009`)),3)]),O(`button`,{type:`button`,class:x([`chip-toggle`,{on:H(z)}]),title:e.$t(`composer.k195594v003`),onClick:t[9]||=e=>z.value=!H(z)},[t[13]||=O(`span`,{class:`i-tabler-mail-forward`},null,-1),U(` `+y(e.$t(`composer.k3xv7u010`)),1)],10,pl)],64))]),O(`div`,ml,[O(`button`,{type:`button`,class:`send-btn im`,disabled:H(D)||!H(d).trim(),title:`发送(⌘/Ctrl+Enter)`,onClick:ae},[...t[14]||=[O(`span`,{class:`i-tabler-send im-nudge-up`},null,-1)]],8,hl)])])])])}}}),[[`__scopeId`,`data-v-bddcd471`]]),{__name:`WorkshopComposer`}),_l={class:`head`},vl={class:`state-text`},yl={class:`role-chip`},bl={class:`queue-meta`},xl={key:0,class:`current-task`},Sl={class:`stream`},Cl={key:0,class:`empty`},wl={class:`group-title`},Tl={class:`state-chip aw-mono`},El={class:`qt-title`},Dl={class:`qt-meta`},Ol={key:0,class:`empty`},kl={class:`footer`},Al={key:0,class:`member-ops`},jl={class:`op-label`},Ml={class:`send-box`},Nl={class:`send-ops`},Pl=520,Fl=Object.assign(Q(v({__name:`AgentInspectorDrawer`,props:N({channelId:{},agentId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:N([`removed`],[`update:open`]),setup(e,{emit:t}){let{t:i}=Y(),a=e,o=C(e,`open`),s=t,c=kt(`aw.drawer.agentW`,Pl),l=e=>{c.value=Math.min(900,Math.max(360,c.value-e))},u=yt(),d=xt(),f=Tt(),m=E(()=>a.agentId?u.agentById(a.channelId,a.agentId):void 0),h=I(`stream`),g=I(!1),_=async e=>{if(a.agentId){g.value=!0;try{await f.updateChannelAgent(a.channelId,a.agentId,{enabled:+(e===!0),reason:i(e===!0?`agentInspectorDrawer.kgjqkq9014`:`agentInspectorDrawer.kpkjhbz015`)}),n.success(i(e===!0?`agentInspectorDrawer.k3n5z7y016`:`agentInspectorDrawer.k1dst50d017`))}catch(e){n.error($(e))}finally{g.value=!1}}},v=I(!1),x=async()=>{if(a.agentId){v.value=!0;try{await f.removeChannelAgent(a.channelId,a.agentId),n.success(i(`agentInspectorDrawer.kane5dq018`)),o.value=!1,s(`removed`,a.agentId)}catch(e){n.error($(e))}finally{v.value=!1}}},{blocks:D}=Ka(()=>a.channelId,{predicate:e=>e.agentId===a.agentId,resetKey:()=>a.agentId,raw:!0}),A=E(()=>{let e=u.tasks[a.channelId]??[],t=a.agentId?e.filter(e=>e.assigneeId===a.agentId):[];return{working:t.filter(e=>[`WORKING`,`ASSIGNED`].includes(e.state)),queued:t.filter(e=>e.state===`SUBMITTED`),done:t.filter(e=>[`COMPLETED`,`FAILED`,`CANCELED`].includes(e.state))}}),M=E(()=>m.value?.currentTaskId?u.taskTitle(a.channelId,m.value.currentTaskId):``),N=E(()=>a.agentId&&(d.focusAgents[a.channelId]??null)===a.agentId),ee=()=>{a.agentId&&(d.setFocusAgent(a.channelId,N.value?null:a.agentId),n.success(N.value?i(`agentInspectorDrawer.k1p055kl019`):i(`agentInspectorDrawer.ky2fhkf020`)))},L=I(``),z=I(`immediate`),B=I(!1),V=I(!1),W=async()=>{if(!(!a.agentId||!L.value.trim())){V.value=!0;try{await f.injectMessage(a.channelId,{toAgentId:a.agentId,text:L.value.trim(),priority:z.value,requireReply:B.value}),n.success(i(`agentInspectorDrawer.k1y2jrsr021`)),L.value=``}catch(e){n.error($(e))}finally{V.value=!1}}},G={idle:`var(--tone-success-dot)`,busy:`var(--tone-info-dot)`,stopped:`var(--tone-neutral-dot)`};return(t,n)=>{let i=Xr,a=r,s=Va,u=Ye,d=Jt,f=rc,C=Ze,E=ct,I=Qe,q=He,J=Fe,ne=nt,re=ot;return b(),F(re,{open:o.value,"onUpdate:open":n[5]||=e=>o.value=e,placement:`right`,width:H(c),title:H(m)?`${H(m).name}(${H(m).role})`:`Agent`,class:`agent-drawer aw-resizable-drawer`},{default:R(()=>[w(i,{variant:`bare`,class:`drawer-resizer`,label:t.$t(`agentInspectorDrawer.k6hcbxi001`),onResize:l,onReset:n[0]||=e=>c.value=Pl},null,8,[`label`]),H(m)?(b(),k(j,{key:0},[O(`div`,_l,[O(`span`,{class:`dot`,style:p({background:G[H(m).state]??`var(--tone-neutral-dot)`})},null,4),O(`span`,vl,y(H(m).state),1),O(`span`,yl,y(H(m).harness),1),O(`span`,bl,y(t.$t(`agentInspectorDrawer.k498bf010`))+y(H(m).queued??0)+` · `+y(t.$t(`agentInspectorDrawer.k3ypnl022`))+y(H(m).completed??0),1),w(a,{size:`small`,type:H(N)?`primary`:`default`,onClick:ee},{default:R(()=>[U(y(H(N)?t.$t(`agentInspectorDrawer.k1bs9x43013`):t.$t(`agentInspectorDrawer.k16t80ax023`)),1)]),_:1},8,[`type`])]),H(M)?(b(),k(`div`,xl,y(t.$t(`agentInspectorDrawer.kk653nv011`))+y(H(M))+`」 `,1)):P(``,!0),w(C,{"active-key":H(h),"onUpdate:activeKey":n[1]||=e=>T(h)?h.value=e:null,size:`small`,class:`drawer-tabs`},{default:R(()=>[w(u,{key:`stream`,tab:`独立输出流`},{default:R(()=>[O(`div`,Sl,[H(D).length===0?(b(),k(`div`,Cl,y(t.$t(`agentInspectorDrawer.k1frr9es004`)),1)):P(``,!0),(b(!0),k(j,null,S(H(D),e=>(b(),F(s,{key:e.id,block:e},null,8,[`block`]))),128))])]),_:1}),w(u,{key:`queue`},{tab:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1axbijb005`))+` `,1),w(d,{count:H(A).working.length,"number-style":{backgroundColor:`var(--tone-info-dot)`},size:`small`},null,8,[`count`])]),default:R(()=>[(b(!0),k(j,null,S([[`执行中`,H(A).working],[`待执行`,H(A).queued],[`已完成`,H(A).done]],e=>(b(),k(`div`,{key:e[0],class:`queue-group`},[O(`div`,wl,y(e[0])+`(`+y(e[1].length)+`) `,1),(b(!0),k(j,null,S(e[1],e=>(b(),k(`div`,{key:e.id,class:`queue-task`},[O(`span`,Tl,y(e.state),1),O(`span`,El,y(e.title),1),O(`span`,Dl,y(e.progress)+`%`,1)]))),128)),e[1].length===0?(b(),k(`div`,Ol,` (`+y(t.$t(`agentInspectorDrawer.k43rxk012`)),1)):P(``,!0)]))),128))]),_:1}),w(u,{key:`memory`,tab:`记忆`},{default:R(()=>[w(f,{"channel-id":e.channelId,"agent-id":e.agentId??void 0},null,8,[`channel-id`,`agent-id`])]),_:1})]),_:1},8,[`active-key`]),O(`div`,kl,[H(m).role===`worker`?(b(),k(`div`,Al,[O(`span`,jl,y(t.$t(`agentInspectorDrawer.kas9m5q006`)),1),w(E,{checked:(H(m).enabled??1)===1,loading:H(g),"checked-children":`启用`,"un-checked-children":`停用`,size:`small`,onChange:_},null,8,[`checked`,`loading`]),w(I,{title:t.$t(`agentInspectorDrawer.k1ofh789002`),"ok-text":`移除`,"cancel-text":`取消`,onConfirm:x},{default:R(()=>[w(a,{size:`small`,danger:``,type:`text`,loading:H(v)},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1hrtylo007`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])])):P(``,!0),O(`div`,Ml,[w(q,{value:H(L),"onUpdate:value":n[2]||=e=>T(L)?L.value=e:null,"auto-size":{minRows:1,maxRows:3},placeholder:t.$t(`agentInspectorDrawer.kwsotdg003`),onKeydown:K(te(W,[`ctrl`,`prevent`]),[`enter`])},null,8,[`value`,`placeholder`,`onKeydown`]),O(`div`,Nl,[w(J,{value:H(z),"onUpdate:value":n[3]||=e=>T(z)?z.value=e:null,size:`small`,options:[{value:`immediate`,label:`即时`},{value:`task`,label:`排队`}]},null,8,[`value`]),w(ne,{checked:H(B),"onUpdate:checked":n[4]||=e=>T(B)?B.value=e:null},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1jxt8vh008`)),1)]),_:1},8,[`checked`]),w(a,{type:`primary`,size:`small`,loading:H(V),onClick:W},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k3xkc7009`)),1)]),_:1},8,[`loading`])])])])],64)):P(``,!0)]),_:1},8,[`open`,`width`,`title`])}}}),[[`__scopeId`,`data-v-69681b3a`]]),{__name:`WorkshopAgentInspectorDrawer`}),Il={class:`head`},Ll={class:`meta`},Rl={class:`meta`},zl={key:0,class:`failure-reason`},Bl={class:`fr-text`},Vl={key:2,class:`route-reason`},Hl={class:`route-label`},Ul={class:`route-text`},Wl={key:0,class:`empty`},Gl={class:`tl-time`},Kl={key:1,class:`tl-progress`},ql={key:0,class:`empty`},Jl={key:0,class:`empty`},Yl={class:`child-title`},Xl={class:`child-meta`},Zl={class:`raw`},Ql=560,$l=Object.assign(Q(v({__name:`TaskInspectorDrawer`,props:N({channelId:{},taskId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(e){let{t}=Y(),i=e,a=C(e,`open`),o=kt(`aw.drawer.taskW`,Ql),s=e=>{o.value=Math.min(960,Math.max(380,o.value-e))},c=yt(),u=xt(),d=Tt(),f=I(null),p=I(!1),m=async()=>{if(i.taskId){p.value=!0;try{let e=await d.getTask(i.taskId);f.value=e.data??null}finally{p.value=!1}}};l(()=>[a.value,i.taskId],()=>{a.value&&i.taskId&&m()});let h=E(()=>i.taskId?c.taskById(i.channelId,i.taskId):void 0),g=E(()=>i.taskId?(c.tasks[i.channelId]??[]).filter(e=>e.parentId===i.taskId):[]),_=E(()=>i.taskId?u.ring(i.channelId).items.filter(e=>e.taskId===i.taskId&&(e.type===`task.status`||e.type===`task.progress`)):[]),v=I(!1),x=async()=>{if(i.taskId){v.value=!0;try{await d.cancelTask(i.taskId),n.success(t(`taskInspectorDrawer.k1xj595a013`)),m()}catch(e){n.error($(e))}finally{v.value=!1}}},T=I(!1),D=async()=>{if(i.taskId){T.value=!0;try{await d.retryTask(i.taskId),n.success(t(`taskInspectorDrawer.ke7bh8u014`)),m()}catch(e){n.error($(e))}finally{T.value=!1}}},A=e=>c.agentById(i.channelId,e)?.name??e.slice(0,8),M=E(()=>{let e=f.value;if(!e||e.state!==`FAILED`)return``;let t=e.history??[];for(let e=t.length-1;e>=0;e--){let n=(t[e]?.parts??[]).map(e=>e.text??``).join(` `).trim();if(n)return n.slice(0,500)}return e.description?.trim()??``}),N={SUBMITTED:`default`,ASSIGNED:`processing`,WORKING:`processing`,WAITING:`warning`,COMPLETED:`success`,FAILED:`error`,CANCELED:`default`};return(e,t)=>{let n=Xr,i=qe,c=r,l=Qe,u=it,d=rt,m=Ye,C=Qi,E=Ze,ee=st,I=ot;return b(),F(I,{open:a.value,"onUpdate:open":t[1]||=e=>a.value=e,placement:`right`,width:H(o),title:H(f)?.title??H(h)?.title??`任务详情`,class:`aw-resizable-drawer`},{default:R(()=>[w(n,{variant:`bare`,class:`drawer-resizer`,label:e.$t(`taskInspectorDrawer.k6hcbxi001`),onResize:s,onReset:t[0]||=e=>o.value=Ql},null,8,[`label`]),w(ee,{spinning:H(p)},{default:R(()=>[H(f)||H(h)?(b(),k(j,{key:0},[O(`div`,Il,[w(i,{color:N[H(h)?.state??H(f)?.state??``]??`default`},{default:R(()=>[U(y(H(h)?.state??H(f)?.state),1)]),_:1},8,[`color`]),O(`span`,Ll,y(e.$t(`taskInspectorDrawer.k3o48o4010`))+y(A(H(h)?.assigneeId??H(f)?.assigneeId??``)),1),O(`span`,Rl,y(H(h)?.progress??H(f)?.progress??0)+`%`,1),t[2]||=O(`div`,{class:`spacer`},null,-1),(H(h)?.state??H(f)?.state)===`FAILED`?(b(),F(l,{key:0,title:e.$t(`taskInspectorDrawer.kns2a6x002`),onConfirm:D},{default:R(()=>[w(c,{size:`small`,loading:H(T)},{default:R(()=>[U(y(e.$t(`taskInspectorDrawer.k1lcgf2b005`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):P(``,!0),w(l,{title:e.$t(`taskInspectorDrawer.k1a7jqb9003`),onConfirm:x},{default:R(()=>[w(c,{danger:``,size:`small`,loading:H(v),disabled:[`COMPLETED`,`CANCELED`,`FAILED`].includes(H(h)?.state??H(f)?.state??``)},{default:R(()=>[U(y(e.$t(`taskInspectorDrawer.k1bs0t9b006`)),1)]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`title`])]),(H(h)?.state??H(f)?.state)===`FAILED`&&H(M)?(b(),k(`div`,zl,[t[3]||=O(`span`,{class:`fr-label`},`失败原因`,-1),O(`span`,Bl,y(H(M)),1)])):P(``,!0),H(f)?.description?(b(),F(d,{key:1,column:1,size:`small`,class:`desc`},{default:R(()=>[w(u,{label:e.$t(`taskInspectorDrawer.k40gkk004`)},{default:R(()=>[U(y(H(f).description),1)]),_:1},8,[`label`])]),_:1})):P(``,!0),H(f)?.routeReason?(b(),k(`div`,Vl,[O(`span`,Hl,y(e.$t(`taskInspectorDrawer.k1knph8c007`)),1),O(`span`,Ul,y(H(f).routeReason),1)])):P(``,!0),w(E,{size:`small`,"default-active-key":`timeline`},{default:R(()=>[w(m,{key:`timeline`,tab:`状态时间线`},{default:R(()=>[H(_).length===0?(b(),k(`div`,Wl,y(e.$t(`taskInspectorDrawer.kr3vr2x008`)),1)):P(``,!0),(b(!0),k(j,null,S(H(_),t=>(b(),k(`div`,{key:`${t.seq}-${t.type}`,class:`tl-row`},[O(`span`,Gl,y(H(Dt)(t.at)),1),t.type===`task.status`?(b(),F(i,{key:0,color:N[t.payload.state]??`default`,class:`state`},{default:R(()=>[U(y(t.payload.state),1)]),_:2},1032,[`color`])):(b(),k(`span`,Kl,y(e.$t(`taskInspectorDrawer.k485ye011`))+` `+y(t.payload.progress)+`%`,1))]))),128))]),_:1}),w(m,{key:`artifacts`,tab:e.$t(`taskInspectorDrawer.kkp77tf015`,{p0:H(f)?.artifacts.length??0})},{default:R(()=>[H(f)?.artifacts.length?P(``,!0):(b(),k(`div`,ql,` (`+y(e.$t(`taskInspectorDrawer.k401n2012`)),1)),(b(!0),k(j,null,S(H(f)?.artifacts??[],e=>(b(),F(C,{key:e.artifactId,artifact:e},null,8,[`artifact`]))),128))]),_:1},8,[`tab`]),w(m,{key:`children`,tab:e.$t(`taskInspectorDrawer.khnua62016`,{p0:H(g).length})},{default:R(()=>[H(g).length===0?(b(),k(`div`,Jl,y(e.$t(`taskInspectorDrawer.k1kmqn5u009`)),1)):P(``,!0),(b(!0),k(j,null,S(H(g),e=>(b(),k(`div`,{key:e.id,class:`child-row`},[w(i,{color:N[e.state]??`default`,class:`state`},{default:R(()=>[U(y(e.state),1)]),_:2},1032,[`color`]),O(`span`,Yl,y(e.title),1),O(`span`,Xl,y(A(e.assigneeId))+` · `+y(e.progress)+`%`,1)]))),128))]),_:1},8,[`tab`]),w(m,{key:`raw`,tab:e.$t(`taskInspectorDrawer.kxj74io017`,{p0:H(f)?.artifacts.reduce((e,t)=>e+t.parts.length,0)??0})},{default:R(()=>[O(`pre`,Zl,y(JSON.stringify(H(f)?.artifacts,null,2)?.slice(0,4e3)),1)]),_:1},8,[`tab`])]),_:1})],64)):P(``,!0)]),_:1},8,[`spinning`])]),_:1},8,[`open`,`width`,`title`])}}}),[[`__scopeId`,`data-v-4130ad00`]]),{__name:`WorkshopTaskInspectorDrawer`}),eu={class:`dbg`},tu={class:`row`},nu={class:`row`},ru={class:`row ops`},iu={class:`output`},au=600,ou=Object.assign(Q(v({__name:`A2aRpcDebugger`,props:N({channelId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(e){let{t}=Y(),i=e,a=C(e,`open`),o=kt(`aw.drawer.a2aW`,au),s=e=>{o.value=Math.min(1040,Math.max(420,o.value-e))},c=yt(),u=E(()=>c.agents[i.channelId]??[]),d=I(``);l(u,e=>{!d.value&&e.length>0&&(d.value=e[0]?.agentId??``)},{immediate:!0});let f=I(`tasks/list`),p=[{value:`tasks/list`,label:`tasks/list`},{value:`tasks/get`,label:`tasks/get`},{value:`tasks/send`,label:`tasks/send`},{value:`tasks/sendSubscribe`,label:`tasks/sendSubscribe(SSE 流)`,sse:!0},{value:`message/send`,label:`message/send(需 token)`},{value:`agent/getCard`,label:`agent/getCard`}],m=I(`{}`),h=I(``),g=I(!1),_=I(``),v=()=>{switch(f.value){case`tasks/send`:case`tasks/sendSubscribe`:return{message:{role:`ROLE_USER`,parts:[{text:t(`a2aRpcDebugger.kq00d3v005`)}]}};case`tasks/get`:return{taskId:`<taskId>`};case`message/send`:return{message:{role:`ROLE_USER`,parts:[{text:t(`a2aRpcDebugger.k1kgwib8006`)}]}};default:return{}}},x=e=>{_.value+=`${e}\n`},S=async e=>{let n=await fetch(`/api/workshop/a2a/${d.value}/rpc`,{method:`POST`,headers:{"content-type":`application/json`,accept:`text/event-stream`,...h.value?{authorization:`Bearer ${h.value}`}:{}},body:JSON.stringify(e)});if(x(`▶ HTTP ${n.status} ${n.headers.get(`content-type`)??``}`),!n.body){x(await n.text());return}let r=n.body.getReader(),i=new TextDecoder,a=``;for(;;){let{done:e,value:t}=await r.read();if(e)break;a+=i.decode(t,{stream:!0});let n=a.split(`
16
+
17
+ `);a=n.pop()??``;for(let e of n){let t=e.split(`
18
+ `).find(e=>e.startsWith(`data:`));t&&x(`◀ ${t.slice(5).trim().slice(0,400)}`)}}x(t(`a2aRpcDebugger.k1e1hi4u007`))},D=async()=>{if(!d.value){n.warning(t(`a2aRpcDebugger.k1vryfv008`));return}let e;try{e=JSON.parse(m.value||`{}`)}catch{n.error(`params 不是合法 JSON`);return}g.value=!0,_.value=``;let r={jsonrpc:`2.0`,id:Date.now(),method:f.value,params:e};try{if(f.value===`tasks/sendSubscribe`)await S(r);else{let e=await fetch(`/api/workshop/a2a/${d.value}/rpc`,{method:`POST`,headers:{"content-type":`application/json`,...h.value?{authorization:`Bearer ${h.value}`}:{}},body:JSON.stringify(r)}),t=await e.text();x(`▶ POST /a2a/${d.value.slice(0,8)}/rpc ${f.value} → HTTP ${e.status}`),x(t.slice(0,4e3))}}catch(e){x(`✖ ${$(e)}`)}finally{g.value=!1}};return(e,t)=>{let n=Xr,i=Re,c=Ve,l=He,x=r,S=ot;return b(),F(S,{open:a.value,"onUpdate:open":t[6]||=e=>a.value=e,placement:`right`,width:H(o),title:`A2A RPC / SSE 调试器`,class:`aw-resizable-drawer`},{default:R(()=>[w(n,{variant:`bare`,class:`drawer-resizer`,label:e.$t(`a2aRpcDebugger.k6hcbxi001`),onResize:s,onReset:t[0]||=e=>o.value=au},null,8,[`label`]),O(`div`,eu,[O(`div`,tu,[w(i,{value:H(d),"onUpdate:value":t[1]||=e=>T(d)?d.value=e:null,class:`agent`,placeholder:e.$t(`a2aRpcDebugger.k34cz76002`),options:H(u).map(e=>({value:e.agentId,label:`${e.name}(${e.role})`}))},null,8,[`value`,`placeholder`,`options`]),w(i,{value:H(f),"onUpdate:value":t[2]||=e=>T(f)?f.value=e:null,class:`method`,options:p},null,8,[`value`])]),w(c,{value:H(h),"onUpdate:value":t[3]||=e=>T(h)?h.value=e:null,size:`small`,placeholder:`Bearer token(message/send 需要;留空匿名)`,class:`token`},null,8,[`value`]),O(`div`,nu,[w(l,{value:H(m),"onUpdate:value":t[4]||=e=>T(m)?m.value=e:null,rows:6,class:`params`},null,8,[`value`])]),O(`div`,ru,[w(x,{size:`small`,onClick:t[5]||=e=>m.value=JSON.stringify(v(),null,2)},{default:R(()=>[U(y(e.$t(`a2aRpcDebugger.k1bqe2pj003`)),1)]),_:1}),w(x,{type:`primary`,size:`small`,loading:H(g),onClick:D},{default:R(()=>[U(y(e.$t(`a2aRpcDebugger.k405w8004`)),1)]),_:1},8,[`loading`])]),O(`pre`,iu,y(H(_)||`(输出;sendSubscribe 将逐条渲染 SSE 事件)`),1)])]),_:1},8,[`open`,`width`])}}}),[[`__scopeId`,`data-v-56f080d0`]]),{__name:`WorkshopA2aRpcDebugger`}),su={class:`palette`},cu={class:`palette-search`},lu=[`placeholder`],uu={class:`palette-list`},du=[`onClick`,`onMousemove`],fu={class:`pi-label`},pu={key:0,class:`pi-hint`},mu={key:0,class:`palette-empty`},hu={class:`palette-foot`},gu=Object.assign(Q(v({__name:`CommandPalette`,props:N({wsId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:N([`setView`,`openA2aDebug`,`compose`],[`update:open`]),setup(e,{emit:t}){let{t:n}=Y(),r=e,i=C(e,`open`),a=dt(),o=yt(),s=xt(),c=t,u=I(``),d=I(0),f=E(()=>{let e=[{key:`nav-home`,label:n(`commandPalette.kmxxk3u006`),hint:`/workshop`,run:()=>re(`/workshop`)},{key:`nav-agents`,label:n(`commandPalette.k4s8e5q007`),hint:`/workshop/agents`,run:()=>re(`/workshop/agents`)},{key:`nav-teams`,label:`前往:AgentTeam 编组库`,hint:`/workshop/teams`,run:()=>re(`/workshop/teams`)},{key:`nav-channel-templates`,label:n(`commandPalette.k1ezz11x008`),hint:`/workshop/channel-templates`,run:()=>re(`/workshop/channel-templates`)},{key:`view-timeline`,label:n(`commandPalette.k143z9bg009`),run:()=>{c(`setView`,`timeline`)}},{key:`view-lanes`,label:`视图:Agent lanes`,run:()=>{c(`setView`,`lanes`)}},{key:`view-board`,label:n(`commandPalette.k13ztmim010`),run:()=>{c(`setView`,`board`)}},{key:`view-split`,label:n(`commandPalette.k21cpnp011`),run:()=>{c(`setView`,`split`)}},{key:`act-compose`,label:n(`commandPalette.k1tm54il012`),hint:`⌘I`,run:()=>{c(`compose`)}},{key:`act-a2a`,label:`动作:A2A RPC/SSE 调试器`,run:()=>{c(`openA2aDebug`)}}];for(let t of a.workspaces.find(e=>e.id===r.wsId)?.channelIds??[]){let i=o.channels[t]?.name??t.slice(0,8);e.push({key:`ch-${t}`,label:n(`commandPalette.k1nz14ux013`,{p0:i}),hint:t.slice(0,8),run:()=>a.setActiveChannel(r.wsId,t)})}let t=a.workspaces.find(e=>e.id===r.wsId)?.activeChannelId;if(t){let r=s.filters[t]??`all`;for(let i of[`all`,`messages`,`tasks`,`errors`])i!==r&&e.push({key:`filter-${i}`,label:n(`commandPalette.k1d8xtez014`,{p0:i}),run:()=>s.setFilter(t,i)})}return e}),p=E(()=>{let e=u.value.trim().toLowerCase();return e?f.value.filter(t=>t.label.toLowerCase().includes(e)||(t.hint??``).toLowerCase().includes(e)):f.value});l(p,()=>{d.value=0});let m=e=>{let t=e??p.value[d.value];t&&(t.run(),i.value=!1,u.value=``)},h=e=>{e.key===`ArrowDown`?(e.preventDefault(),d.value=Math.min(d.value+1,p.value.length-1)):e.key===`ArrowUp`?(e.preventDefault(),d.value=Math.max(d.value-1,0)):e.key===`Enter`?(e.preventDefault(),m()):e.key===`Escape`&&(i.value=!1)},v=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),i.value=!i.value,u.value=``)};return _(()=>window.addEventListener(`keydown`,v)),g(()=>window.removeEventListener(`keydown`,v)),(e,t)=>(b(),F(L,{to:`body`},[i.value?(b(),k(`div`,{key:0,class:`palette-mask`,onClick:t[1]||=te(e=>i.value=!1,[`self`])},[O(`div`,su,[O(`div`,cu,[t[2]||=O(`span`,{class:`i-tabler-search ps-icon`},null,-1),ee(O(`input`,{"onUpdate:modelValue":t[0]||=e=>T(u)?u.value=e:null,class:`palette-input`,placeholder:e.$t(`commandPalette.k1nn6i83001`),autofocus:``,onKeydown:h},null,40,lu),[[q,H(u)]])]),O(`div`,uu,[(b(!0),k(j,null,S(H(p),(e,t)=>(b(),k(`button`,{key:e.key,type:`button`,class:x([`palette-item`,{selected:t===H(d)}]),onClick:t=>m(e),onMousemove:e=>d.value=t},[O(`span`,fu,y(e.label),1),e.hint?(b(),k(`span`,pu,y(e.hint),1)):P(``,!0)],42,du))),128)),H(p).length===0?(b(),k(`div`,mu,y(e.$t(`commandPalette.ktup4q4002`)),1)):P(``,!0)]),O(`div`,hu,[t[3]||=O(`kbd`,null,`↑↓`,-1),U(` `+y(e.$t(`commandPalette.k1kvl0fa003`))+` `,1),t[4]||=O(`kbd`,null,`↵`,-1),U(` `+y(e.$t(`commandPalette.k1e3ualj004`))+` `,1),t[5]||=O(`kbd`,null,`esc`,-1),U(` `+y(e.$t(`commandPalette.k3x62t005`)),1)])])])):P(``,!0)]))}}),[[`__scopeId`,`data-v-b72e120a`]]),{__name:`WorkshopCommandPalette`}),_u={class:`harness`},vu={class:`topbar`},yu={class:`ws-name`},bu=[`title`],xu={class:`right`},Su=[`title`],Cu=[`title`],wu=[`title`],Tu=[`data-state`],Eu={class:`seq`},Du={class:`main`},Ou={class:`left-scroll`},ku={class:`center-pane`},Au={key:1,class:`pane-empty`},ju={class:`pe-title`},Mu={class:`pe-sub`},Nu={key:1,class:`pane-loading`},Pu=248,Fu=300,Iu=Q(v({__name:`[wsId]`,setup(e){let{t}=Y();Et({layout:`default`});let n=ie(),r=E(()=>String(n.params.wsId)),i=lt(),a=dt(),o=I(!1);_(()=>{if(!i.isLoggedIn){re(`/workshop`);return}o.value=!0,a.loaded||a.load().catch(()=>{})});let s=yt(),{subscribe:c,unsubscribe:u,conn:d}=Ct(),{isDesktop:m}=ut(),h=E(()=>a.workspaces.find(e=>e.id===r.value)),v=E(()=>{let e=h.value;if(!e)return;let t=e.channelIds,n=e.activeChannelId;return n&&t.includes(n)?n:t[0]});l(()=>[r.value,h.value?.channelIds.join(`,`)??``],()=>{let e=new Set(h.value?.channelIds??[]);for(let t of e)c(t)},{immediate:!0}),l(()=>h.value?.channelIds.join(`,`)??``,(e,t)=>{if(t===void 0)return;let n=new Set(h.value?.channelIds??[]);for(let e of t.split(`,`).filter(Boolean))n.has(e)||u(e)}),g(()=>{for(let e of h.value?.channelIds??[])u(e)});let S=E(()=>d.state===`open`?`var(--tone-success-dot)`:d.state===`connecting`?`var(--tone-warning-dot)`:`var(--tone-danger-dot)`),C=E(()=>v.value?d.cursors[v.value]??0:0),D={1:`timeline`,2:`lanes`,3:`board`,4:`split`,5:`town`},A=new Set([`timeline`,`lanes`,`board`,`split`,`town`]),M=n.query.view,N=I(typeof M==`string`&&A.has(M)?M:`timeline`),ee=E(()=>{let e=[{value:`timeline`,label:t(`wsView.k3otu32010`)},{value:`lanes`,label:`Agent lanes`},{value:`board`,label:t(`wsView.k3ko7a8011`)},{value:`split`,label:t(`wsView.k3xbmo012`)},{value:`town`,label:t(`wsView.k1cz0pbw013`)}];return z.value?[...e,{value:`inspector`,label:`检查器`}]:e}),L=e=>{if(e.key===`Escape`&&z.value&&B.value){B.value=!1;return}if(e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable))return;let n=D[e.key];!n||!v.value||(e.preventDefault(),N.value=n)};_(()=>window.addEventListener(`keydown`,L)),g(()=>window.removeEventListener(`keydown`,L));let R=I(!1);_(()=>{R.value=!0});let z=E(()=>R.value&&!m.value),B=I(!0),V=I(!0),W=e=>{B.value=e,V.value=e,e&&N.value===`inspector`&&(N.value=`timeline`)};_(()=>{m.value||W(!1)}),l(m,e=>W(e)),l(v,(e,t)=>{t!==void 0&&e!==t&&z.value&&(B.value=!1)});let G=kt(`aw.harness.leftW`,Pu),K=kt(`aw.harness.rightW`,Fu),te=e=>{G.value=Math.min(460,Math.max(220,G.value+e))},q=e=>{K.value=Math.min(560,Math.max(240,K.value-e))};te(0),q(0);let J=I(!1),ne=I(null),oe=e=>{ne.value=e,J.value=!0},se=e=>{a.setActiveChannel(r.value,e.channelId),oe(e.agentId)};f(`aw:open-agent`,se);let ce=I(!1),X=I(null),le=e=>{X.value=e,ce.value=!0},ue=I(!1),de=I(!1),fe=I(null),pe=()=>{fe.value?.querySelector(`textarea`)?.focus()};return ae({title:()=>`${h.value?.name??`Workspace`} · AgentWorkShop`}),(e,t)=>{let n=qn,i=Fe,o=Mr,c=Jr,l=Xr,u=go,f=Yo,m=Os,g=Vs,_=At,E=Vc,D=gl,A=Fl,M=$l,I=ou,R=gu;return b(),k(`div`,_u,[w(n),O(`div`,vu,[O(`div`,{class:`left`,tabindex:`-1`,onKeydown:L},[t[16]||=O(`span`,{class:`topbar-mark i-tabler-box`},null,-1),O(`span`,yu,y(H(h)?.name??`未知 Workspace`),1),H(v)?(b(),k(`span`,{key:0,class:`chan-chip`,title:H(v)},[t[15]||=O(`span`,{class:`chan-hash`},`#`,-1),U(y(H(s).channels[H(v)]?.name??H(v).slice(0,8)),1)],8,bu)):P(``,!0),H(v)?(b(),F(i,{key:1,value:H(N),"onUpdate:value":t[0]||=e=>T(N)?N.value=e:null,size:`small`,options:H(ee),class:`view-switch`,title:e.$t(`wsView.kqwckjr001`),onKeydown:L},null,8,[`value`,`options`,`title`])):P(``,!0)],32),O(`div`,xu,[H(z)?(b(),k(`button`,{key:0,class:x([`pane-toggle im toggle-left-narrow`,{off:!H(B)}]),title:`频道会话列表`,onClick:t[1]||=e=>B.value=!H(B)},[...t[17]||=[O(`span`,{class:`i-tabler-list-details im-pop`},null,-1)]],2)):P(``,!0),O(`button`,{class:x([`pane-toggle im toggle-left-desk`,{off:!H(B)}]),title:e.$t(`wsView.k1tsy2e4002`),onClick:t[2]||=e=>B.value=!H(B)},[...t[18]||=[O(`span`,{class:`i-tabler-layout-sidebar-left-collapse im-pop`},null,-1)]],10,Su),O(`button`,{class:x([`pane-toggle im toggle-right-desk`,{off:!H(V)}]),title:e.$t(`wsView.k1tx0ppf003`),onClick:t[3]||=e=>V.value=!H(V)},[...t[19]||=[O(`span`,{class:`i-tabler-layout-sidebar-right-collapse im-pop`},null,-1)]],10,Cu),O(`button`,{class:`pane-toggle im`,title:`A2A RPC/SSE 调试器`,onClick:t[4]||=e=>de.value=!0},[...t[20]||=[O(`span`,{class:`i-tabler-terminal-2 im-pop`},null,-1)]]),O(`button`,{class:`pane-toggle im`,title:e.$t(`wsView.k1cvg8sb004`),onClick:t[5]||=e=>ue.value=!0},[...t[21]||=[O(`span`,{class:`i-tabler-command im-pop`},null,-1)]],8,wu),O(`span`,{class:`dot`,style:p({background:H(S)})},null,4),O(`span`,{class:`ws-state`,"data-state":H(d).state},y(H(d).state),9,Tu),O(`span`,Eu,`seq `+y(H(C)),1)])]),O(`div`,Du,[H(z)&&H(B)?(b(),k(`div`,{key:0,class:`drawer-scrim`,onClick:t[6]||=e=>B.value=!1})):P(``,!0),H(B)?(b(),k(`div`,{key:1,class:`left-pane`,style:p({flexBasis:H(z)?`auto`:`${H(G)}px`})},[O(`div`,Ou,[w(o,{"ws-id":H(r)},null,8,[`ws-id`])]),w(c,{"ws-id":H(r),onOpenAgent:se},null,8,[`ws-id`])],4)):P(``,!0),H(B)&&!H(z)?(b(),F(l,{key:2,label:e.$t(`wsView.k1fkfvra005`),onResize:te,onReset:t[7]||=e=>G.value=Pu},null,8,[`label`])):P(``,!0),O(`div`,ku,[H(v)?(b(),k(j,{key:0},[H(N)===`timeline`?(b(),F(u,{key:0,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`lanes`?(b(),F(f,{key:1,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`board`?(b(),F(m,{key:2,"channel-id":H(v),onOpenTask:le},null,8,[`channel-id`])):H(N)===`split`?(b(),F(g,{key:3,"ws-id":H(r),onOpenTask:le},null,8,[`ws-id`])):H(N)===`town`?(b(),F(_,{key:4,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`inspector`&&H(z)?(b(),F(E,{key:5,"channel-id":H(v),onOpenAgent:oe,onOpenTask:le},null,8,[`channel-id`])):P(``,!0)],64)):(b(),k(`div`,Au,[t[23]||=O(`span`,{class:`pe-icon i-tabler-messages`},null,-1),O(`div`,ju,[U(y(e.$t(`wsView.klzbtyp007`))+` `,1),t[22]||=O(`span`,{class:`aw-serif-accent-italic`},`Channel`,-1),U(` `+y(e.$t(`wsView.k3zaj4008`)),1)]),O(`div`,Mu,y(e.$t(`wsView.k1us0cxy009`)),1)]))]),H(V)&&!H(z)?(b(),F(l,{key:3,label:e.$t(`wsView.kwqb0st006`),onResize:q,onReset:t[8]||=e=>K.value=Fu},null,8,[`label`])):P(``,!0),H(V)&&!H(z)?(b(),k(`div`,{key:4,class:x([`right-pane`,{empty:H(a).loaded&&!H(v)}]),style:p({flexBasis:`${H(K)}px`})},[H(v)?(b(),F(E,{key:0,"channel-id":H(v),onOpenAgent:oe,onOpenTask:le},null,8,[`channel-id`])):H(a).loaded?P(``,!0):(b(),k(`div`,Nu,` 正在加载 Workspace… `))],6)):P(``,!0)]),H(v)?(b(),k(`div`,{key:0,ref_key:`composerBox`,ref:fe,class:`composer-pane`},[w(D,{"channel-id":H(v)},null,8,[`channel-id`]),w(A,{open:H(J),"onUpdate:open":t[9]||=e=>T(J)?J.value=e:null,"channel-id":H(v)??``,"agent-id":H(ne)},null,8,[`open`,`channel-id`,`agent-id`]),w(M,{open:H(ce),"onUpdate:open":t[10]||=e=>T(ce)?ce.value=e:null,"channel-id":H(v)??``,"task-id":H(X)},null,8,[`open`,`channel-id`,`task-id`]),w(I,{open:H(de),"onUpdate:open":t[11]||=e=>T(de)?de.value=e:null,"channel-id":H(v)??``},null,8,[`open`,`channel-id`]),w(R,{open:H(ue),"onUpdate:open":t[12]||=e=>T(ue)?ue.value=e:null,"ws-id":H(r),onSetView:t[13]||=e=>N.value=e,onOpenA2aDebug:t[14]||=e=>de.value=!0,onCompose:pe},null,8,[`open`,`ws-id`])],512)):P(``,!0)])}}}),[[`__scopeId`,`data-v-634670bb`]]);export{Iu as default};
@@ -1 +1 @@
1
- import{a as e,c as t}from"./BU83-NnX.js";import{R as n,S as r,Ut as i,V as a,Vt as o,W as s,b as c,d as l,f as u,h as d,i as f,m as p,p as m,pt as h,tt as g,y as _}from"./CSkxz2NX.js";import{f as v}from"./D6uzXueg.js";import{s as y}from"./YnQxK3eG.js";import{n as b}from"./KZQX7xoM.js";import{t as ee}from"./DzbFpZRk.js";import{t as te}from"./Dz_Q3Lpw2.js";import{t as ne}from"./CClOy-Hz2.js";import{t as re}from"./DIaZ2PTo2.js";import{t as x}from"./BDNMzG2s2.js";import{t as S}from"./D0ZBQrN_2.js";import{t as C}from"./zq5t1vyX.js";var w={class:`plugins-page`},T={class:`aw-page-head`},ie={class:`pg-sub`},ae={class:`pg-stats`},oe={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},V={key:0},H={key:1,style:{color:`#ff6b6b`}},U={key:0,class:`dim`},W=x(r({__name:`index`,setup(r){let{t:x}=b(),W=re(),G=h([]),K=h([]),q=h(!1),J=h(``),Y=h(!1),X=h(null);function Z(){let e=W.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await y(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(t){e.error(S(t,x(`plugins.loadFail`)))}finally{q.value=!1}}async function se(t){J.value=t.name;try{let n=await y(`/api/workshop/plugins/${t.name}/${t.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(n.code!==0||!n.data)throw Error(x(`plugins.enableFail`));t.enabled=n.data.enabled,e.success(`${t.name} · ${n.data.enabled?x(`plugins.enabled`):x(`plugins.disabled`)}`),setTimeout(Q,800)}catch(t){e.error(S(t,x(`plugins.enableFail`)))}finally{J.value=``}}let ce=l(()=>G.value.filter(e=>e.enabled).length),le=l(()=>G.value.filter(e=>e.hasClient).length);function $(e){return x(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function ue(e){X.value=e,Y.value=!0}return n(Q),(e,n)=>{let r=t,l=ee,h=C,y=ne,b=te;return a(),d(`div`,w,[u(`header`,T,[u(`div`,null,[n[2]||=u(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),u(`h1`,null,i(e.$t(`plugins.title`)),1),u(`p`,ie,i(e.$t(`plugins.subtitle`)),1)]),u(`div`,ae,[u(`span`,oe,[_(i(e.$t(`plugins.enabled`))+` `,1),u(`b`,null,i(ce.value),1)]),u(`span`,E,[_(i(e.$t(`plugins.hasClient`))+` `,1),u(`b`,null,i(le.value),1)]),u(`span`,D,[_(i(e.$t(`plugins.routes`))+` `,1),u(`b`,null,i(G.value.reduce((e,t)=>e+t.routes.length,0)),1)]),c(r,{size:`small`,loading:q.value,onClick:Q},{default:g(()=>[_(i(e.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),m(l,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:e.$t(`plugins.loadFailures`,{n:K.value.length})},{description:g(()=>[(a(!0),d(f,null,s(K.value,e=>(a(),d(`div`,{key:e.source,class:`fail-line`},i(e.source)+` — `+i(e.error),1))),128))]),_:1},8,[`message`])):p(``,!0),!G.value.length&&!q.value?(a(),d(`div`,O,[n[3]||=u(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),u(`p`,k,i(e.$t(`plugins.empty`)),1)])):p(``,!0),G.value.length?(a(),m(h,{key:2,"slot-name":`plugins.page`})):p(``,!0),u(`div`,A,[(a(!0),d(f,null,s(G.value,t=>(a(),d(`article`,{key:`${t.scope}:${t.name}`,class:o([`pg-card aw-liftable`,{"is-off":!t.enabled}]),onClick:e=>ue(t)},[u(`div`,M,[u(`span`,N,i(t.name),1),u(`span`,P,i(t.version),1),c(y,{checked:t.enabled,loading:J.value===t.name,size:`small`,onClick:n[0]||=v(()=>{},[`stop`]),onChange:e=>se(t)},null,8,[`checked`,`loading`,`onChange`])]),u(`p`,F,i(t.description||`—`),1),u(`div`,I,[u(`span`,{class:o([`tag`,t.scope])},i($(t.scope)),3),u(`span`,{class:o([`tag`,t.enabled?`on`:`off`])},i(t.enabled?e.$t(`plugins.enabled`):e.$t(`plugins.disabled`)),3),t.hasClient?(a(),d(`span`,L,i(e.$t(`plugins.hasClient`)),1)):p(``,!0)]),t.routes.length?(a(),d(`div`,R,[(a(!0),d(f,null,s(t.routes,e=>(a(),d(`code`,{key:e.method+e.path},i(e.method)+` `+i(e.path),1))),128))])):p(``,!0)],10,j))),128))]),c(b,{open:Y.value,"onUpdate:open":n[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:g(()=>[X.value?(a(),d(f,{key:0},[u(`dl`,z,[n[4]||=u(`dt`,null,`version`,-1),u(`dd`,null,i(X.value.version),1),n[5]||=u(`dt`,null,`scope`,-1),u(`dd`,null,i($(X.value.scope)),1),u(`dd`,B,i(X.value.scope===`project`?e.$t(`plugins.scopeBuiltinHint`):e.$t(`plugins.scopeUserHint`)),1),n[6]||=u(`dt`,null,`enabled`,-1),u(`dd`,null,i(X.value.enabled),1),n[7]||=u(`dt`,null,`client`,-1),u(`dd`,null,i(X.value.hasClient?`✓`:`—`),1),X.value.error?(a(),d(`dt`,V,` error `)):p(``,!0),X.value.error?(a(),d(`dd`,H,i(X.value.error),1)):p(``,!0)]),u(`h4`,null,i(e.$t(`plugins.routes`)),1),(a(!0),d(f,null,s(X.value.routes,e=>(a(),d(`code`,{key:e.method+e.path,class:`detail-route`},i(e.method)+` /api/plugins/`+i(X.value.name)+i(e.path),1))),128)),X.value.routes.length?p(``,!0):(a(),d(`p`,U,` — `))],64)):p(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-d222ba08`]]);export{W as default};
1
+ import{a as e,c as t}from"./BU83-NnX.js";import{R as n,S as r,Ut as i,V as a,Vt as o,W as s,b as c,d as l,f as u,h as d,i as f,m as p,p as m,pt as h,tt as g,y as _}from"./CSkxz2NX.js";import{f as v}from"./D6uzXueg.js";import{s as y}from"./YnQxK3eG.js";import{n as b}from"./KZQX7xoM.js";import{t as ee}from"./DzbFpZRk.js";import{t as te}from"./Dz_Q3Lpw2.js";import{t as ne}from"./CClOy-Hz2.js";import{t as re}from"./DIaZ2PTo2.js";import{t as x}from"./BDNMzG2s2.js";import{t as S}from"./D0ZBQrN_2.js";import{t as C}from"./zq5t1vyX.js";var w={class:`plugins-page`},T={class:`aw-page-head`},ie={class:`pg-sub`},ae={class:`pg-stats`},oe={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},V={key:0},H={key:1,style:{color:`#ff6b6b`}},U={key:0,class:`dim`},W=x(r({__name:`index`,setup(r){let{t:x}=b(),W=re(),G=h([]),K=h([]),q=h(!1),J=h(``),Y=h(!1),X=h(null);function Z(){let e=W.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await y(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(t){e.error(S(t,x(`plugins.loadFail`)))}finally{q.value=!1}}async function se(t){J.value=t.name;try{let n=await y(`/api/workshop/plugins/${t.name}/${t.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(n.code!==0||!n.data)throw Error(x(`plugins.enableFail`));t.enabled=n.data.enabled,e.success(`${t.name} · ${n.data.enabled?x(`plugins.enabled`):x(`plugins.disabled`)}`),setTimeout(Q,800)}catch(t){e.error(S(t,x(`plugins.enableFail`)))}finally{J.value=``}}let ce=l(()=>G.value.filter(e=>e.enabled).length),le=l(()=>G.value.filter(e=>e.hasClient).length);function $(e){return x(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function ue(e){X.value=e,Y.value=!0}return n(Q),(e,n)=>{let r=t,l=ee,h=C,y=ne,b=te;return a(),d(`div`,w,[u(`header`,T,[u(`div`,null,[n[2]||=u(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),u(`h1`,null,i(e.$t(`plugins.title`)),1),u(`p`,ie,i(e.$t(`plugins.subtitle`)),1)]),u(`div`,ae,[u(`span`,oe,[_(i(e.$t(`plugins.enabled`))+` `,1),u(`b`,null,i(ce.value),1)]),u(`span`,E,[_(i(e.$t(`plugins.hasClient`))+` `,1),u(`b`,null,i(le.value),1)]),u(`span`,D,[_(i(e.$t(`plugins.routes`))+` `,1),u(`b`,null,i(G.value.reduce((e,t)=>e+t.routes.length,0)),1)]),c(r,{size:`small`,loading:q.value,onClick:Q},{default:g(()=>[_(i(e.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),m(l,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:e.$t(`plugins.loadFailures`,{n:K.value.length})},{description:g(()=>[(a(!0),d(f,null,s(K.value,e=>(a(),d(`div`,{key:e.source,class:`fail-line`},i(e.source)+` — `+i(e.error),1))),128))]),_:1},8,[`message`])):p(``,!0),!G.value.length&&!q.value?(a(),d(`div`,O,[n[3]||=u(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),u(`p`,k,i(e.$t(`plugins.empty`)),1)])):p(``,!0),G.value.length?(a(),m(h,{key:2,"slot-name":`plugins.page`})):p(``,!0),u(`div`,A,[(a(!0),d(f,null,s(G.value,t=>(a(),d(`article`,{key:`${t.scope}:${t.name}`,class:o([`pg-card aw-liftable`,{"is-off":!t.enabled}]),onClick:e=>ue(t)},[u(`div`,M,[u(`span`,N,i(t.name),1),u(`span`,P,i(t.version),1),c(y,{checked:t.enabled,loading:J.value===t.name,size:`small`,onClick:n[0]||=v(()=>{},[`stop`]),onChange:e=>se(t)},null,8,[`checked`,`loading`,`onChange`])]),u(`p`,F,i(t.description||`—`),1),u(`div`,I,[u(`span`,{class:o([`tag`,t.scope])},i($(t.scope)),3),u(`span`,{class:o([`tag`,t.enabled?`on`:`off`])},i(t.enabled?e.$t(`plugins.enabled`):e.$t(`plugins.disabled`)),3),t.hasClient?(a(),d(`span`,L,i(e.$t(`plugins.hasClient`)),1)):p(``,!0)]),t.routes.length?(a(),d(`div`,R,[(a(!0),d(f,null,s(t.routes,e=>(a(),d(`code`,{key:e.method+e.path},i(e.method)+` `+i(e.path),1))),128))])):p(``,!0)],10,j))),128))]),c(b,{open:Y.value,"onUpdate:open":n[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:g(()=>[X.value?(a(),d(f,{key:0},[u(`dl`,z,[n[4]||=u(`dt`,null,`version`,-1),u(`dd`,null,i(X.value.version),1),n[5]||=u(`dt`,null,`scope`,-1),u(`dd`,null,i($(X.value.scope)),1),u(`dd`,B,i(X.value.scope===`project`?e.$t(`plugins.scopeBuiltinHint`):e.$t(`plugins.scopeUserHint`)),1),n[6]||=u(`dt`,null,`enabled`,-1),u(`dd`,null,i(X.value.enabled),1),n[7]||=u(`dt`,null,`client`,-1),u(`dd`,null,i(X.value.hasClient?`✓`:`—`),1),X.value.error?(a(),d(`dt`,V,` error `)):p(``,!0),X.value.error?(a(),d(`dd`,H,i(X.value.error),1)):p(``,!0)]),u(`h4`,null,i(e.$t(`plugins.routes`)),1),(a(!0),d(f,null,s(X.value.routes,e=>(a(),d(`code`,{key:e.method+e.path,class:`detail-route`},i(e.method)+` /api/plugins/`+i(X.value.name)+i(e.path),1))),128)),X.value.routes.length?p(``,!0):(a(),d(`p`,U,` — `))],64)):p(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-91571e48`]]);export{W as default};