agentworkshop 0.7.21 → 0.7.23

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 (105) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/BJbhwS5o.js +1 -0
  3. package/.output/public/_nuxt/Bo8t5fkJ.js +1 -0
  4. package/.output/public/_nuxt/{DBXhDLgl.js → BuiGDfMB.js} +1 -1
  5. package/.output/public/_nuxt/{QT54MQV9.js → C53drffV.js} +1 -1
  6. package/.output/public/_nuxt/{BA3XzwiD.js → CEHmSufQ.js} +2 -2
  7. package/.output/public/_nuxt/Dc32T41C.js +1 -0
  8. package/.output/public/_nuxt/DtzZqC0z.js +1 -0
  9. package/.output/public/_nuxt/{BOJaHO5V.js → Ko9mMsJj.js} +3 -3
  10. package/.output/public/_nuxt/{TownView.BHLKAjEu.css → TownView.zu2rU5nS.css} +1 -1
  11. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +1 -0
  12. package/.output/public/_nuxt/_id_.MbzdFygI.css +1 -0
  13. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +1 -0
  14. package/.output/public/_nuxt/builds/latest.json +1 -1
  15. package/.output/public/_nuxt/builds/meta/1adc96e0-8bbd-4a79-ac7e-b6952556fef8.json +1 -0
  16. package/.output/public/_nuxt/daq.3OKj58HH.css +1 -0
  17. package/.output/public/_nuxt/dbi5bHkY.js +2 -0
  18. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +1 -0
  19. package/.output/public/_nuxt/entry.OR_psZHp.css +1 -0
  20. package/.output/public/_nuxt/{DsOkkMX3.js → jyQyulh-.js} +1 -1
  21. package/.output/public/_nuxt/logs.DMOM-iHe.css +1 -0
  22. package/.output/public/_nuxt/{B-E8fXAO.js → n3vMFfrv.js} +1 -1
  23. package/.output/server/chunks/_/nitro.mjs +842 -717
  24. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  25. package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs → TownView-DxeQe1Bl.mjs} +144 -143
  26. package/.output/server/chunks/build/{TownView-ql2eHZOg.mjs.map → TownView-DxeQe1Bl.mjs.map} +1 -1
  27. package/.output/server/chunks/build/{_id_-CwR5oLu9.mjs → _id_-DQDqj-cZ.mjs} +33 -35
  28. package/.output/server/chunks/build/_id_-DQDqj-cZ.mjs.map +1 -0
  29. package/.output/server/chunks/build/{_id_-Bs-euJPu.mjs → _id_-DY6v6sqB.mjs} +138 -137
  30. package/.output/server/chunks/build/_id_-DY6v6sqB.mjs.map +1 -0
  31. package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs → _wsId_-C2O5zZsI.mjs} +6 -6
  32. package/.output/server/chunks/build/{_wsId_-B3aB9bIp.mjs.map → _wsId_-C2O5zZsI.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{daq-epWL_sC7.mjs → daq-B-3xCp_2.mjs} +146 -118
  34. package/.output/server/chunks/build/daq-B-3xCp_2.mjs.map +1 -0
  35. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs → dcw-BL2dhuz7.mjs} +43 -43
  36. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs.map → dcw-BL2dhuz7.mjs.map} +1 -1
  37. package/.output/server/chunks/build/{logs-Bz1p6x_5.mjs → logs-Dto_umFY.mjs} +44 -38
  38. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +1 -0
  39. package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs → pages-D9tOoJsf.mjs} +2 -2
  40. package/.output/server/chunks/build/{pages-Dq7_H4FK.mjs.map → pages-D9tOoJsf.mjs.map} +1 -1
  41. package/.output/server/chunks/build/{town-CstiKxf_.mjs → town-Dsh0jlwZ.mjs} +3 -3
  42. package/.output/server/chunks/build/{town-CstiKxf_.mjs.map → town-Dsh0jlwZ.mjs.map} +1 -1
  43. package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs → useDaqStream-DkRL3tEW.mjs} +9 -1
  44. package/.output/server/chunks/build/{useDaqStream-BOOZ-p-l.mjs.map → useDaqStream-DkRL3tEW.mjs.map} +1 -1
  45. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
  46. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +34 -0
  48. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -0
  49. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  50. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  51. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +33 -0
  52. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -0
  53. package/.output/server/chunks/routes/renderer.mjs +1 -1
  54. package/.output/server/chunks/virtual/entry.mjs +16 -8
  55. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  56. package/.output/server/package.json +1 -1
  57. package/app/assets/css/main.css +306 -161
  58. package/app/components/workshop/blocks/ClusterArtifact.vue +0 -16
  59. package/app/components/workshop/town/TownView.vue +7082 -7076
  60. package/app/composables/workshop/useDaqStream.ts +10 -0
  61. package/app/pages/daq/[id].vue +919 -937
  62. package/app/pages/daq/index.vue +67 -43
  63. package/app/pages/dcw/[id].vue +6 -5
  64. package/app/pages/dcw/index.vue +1 -30
  65. package/app/pages/logs/index.vue +99 -87
  66. package/i18n/locales/en.ts +3 -0
  67. package/i18n/locales/zh-CN.ts +5 -0
  68. package/package.json +148 -148
  69. package/scripts/_dbg-device-bind-e2e.mjs +129 -0
  70. package/scripts/_dbg-logs-ui-e2e.py +125 -0
  71. package/server/api/workshop/daq/[id]/bind.post.ts +5 -2
  72. package/server/api/workshop/daq/[id]/bindings.put.ts +22 -0
  73. package/server/api/workshop/dcw/[id]/bind.post.ts +4 -2
  74. package/server/api/workshop/dcw/[id]/bindings.put.ts +21 -0
  75. package/server/data/daqs.json +405 -100
  76. package/server/data/dcw-lines.json +7 -0
  77. package/server/data/dcw-rollback.json +21 -10
  78. package/server/data/dcw-runs.json +50 -54
  79. package/server/data/dcw-writes.json +24 -0
  80. package/server/data/dcws.json +505 -216
  81. package/server/data/line-runs.json +18 -18
  82. package/server/services/workshop/agents/industrial-context.ts +231 -222
  83. package/server/services/workshop/daq/daq-controller.ts +76 -23
  84. package/server/services/workshop/daq/daq-node.ts +11 -1
  85. package/server/services/workshop/dcw/dcw-controller.ts +50 -2
  86. package/server/services/workshop/dcw/dcw-node.ts +10 -1
  87. package/shared/daq-protocol.ts +2 -0
  88. package/shared/dcw-protocol.ts +2 -0
  89. package/.output/public/_nuxt/B_C3GLsD.js +0 -1
  90. package/.output/public/_nuxt/Ba7YofCb.js +0 -2
  91. package/.output/public/_nuxt/C_2bTK0C.js +0 -1
  92. package/.output/public/_nuxt/CgT5wMfz.js +0 -1
  93. package/.output/public/_nuxt/D4CLp1hc.js +0 -1
  94. package/.output/public/_nuxt/_id_.DIxEKj88.css +0 -1
  95. package/.output/public/_nuxt/_id_.IbmpkhH4.css +0 -1
  96. package/.output/public/_nuxt/_wsId_.BFyCuUwS.css +0 -1
  97. package/.output/public/_nuxt/builds/meta/5d344836-03a5-4f47-a0a7-fd30192f5a8f.json +0 -1
  98. package/.output/public/_nuxt/daq.6IrhVVfy.css +0 -1
  99. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +0 -1
  100. package/.output/public/_nuxt/entry.DRUzDwmX.css +0 -1
  101. package/.output/public/_nuxt/logs.BarkrvUp.css +0 -1
  102. package/.output/server/chunks/build/_id_-Bs-euJPu.mjs.map +0 -1
  103. package/.output/server/chunks/build/_id_-CwR5oLu9.mjs.map +0 -1
  104. package/.output/server/chunks/build/daq-epWL_sC7.mjs.map +0 -1
  105. package/.output/server/chunks/build/logs-Bz1p6x_5.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-09-06T18:56:40.338Z",
2
+ "date": "2026-09-07T03:22:41.592Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nuxt",
@@ -0,0 +1 @@
1
+ import{H as e,U as t,W as n,q as r}from"./rqZ-1SoP.js";import{C as i,F as a,G as o,H as s,Ht as c,St as l,Wt as u,a as d,b as f,et as p,f as m,ft as ee,g as h,h as g,mt as _,nt as v,p as y,rt as b,t as x,x as S,z as C}from"./BSCpFtzG.js";import{a as te}from"./vJ4FPb-_.js";import{t as ne}from"./D8CqF0yy.js";import{n as re}from"./BeIfu4N3.js";import{t as ie}from"./DXRZPxGs.js";import{t as ae}from"./G0qIw7Gq2.js";import{t as oe}from"./CNs_Ozdc.js";import{t as se}from"./DAR70Lf5.js";import{a as ce,n as w,t as le}from"./BuiGDfMB.js";import{t as ue}from"./BWC4HQHQ.js";var de={class:`page`},fe={class:`aw-kicker`},pe={class:`aw-page-head`},me={key:0,class:`err`},he={key:1,class:`grid`},ge={class:`col-live`},_e={class:`aw-tile value-card`},ve={class:`aw-kicker`},ye={class:`big-val mono`},be={class:`facts mono`},xe={class:`col-form aw-tile pad`},Se={class:`sec`},Ce={class:`field`},we={class:`field`},Te={value:``},Ee=[`value`],De={class:`field`},Oe=[`value`,`disabled`],ke={class:`field row`},Ae=[`disabled`],je={class:`field row`},Me=[`disabled`],Ne=[`disabled`],Pe={class:`field row`},Fe=[`disabled`],Ie={class:`field`},Le={class:`field`},Re={class:`field-row`},ze={class:`field`},Be={class:`field`},Ve={class:`field`},He={class:`field`},Ue=[`disabled`],We={class:`sec mt`},Ge={class:`driver-grid`},Ke={key:0},qe=[`onUpdate:modelValue`],Je=[`value`],Ye=[`onUpdate:modelValue`,`type`,`placeholder`],Xe={class:`test-row`},Ze=[`disabled`],Qe={class:`sec mt`},$e={class:`bind-row`},et={value:``},tt=[`value`],nt={class:`col-hist aw-tile pad`},rt={class:`hist-hd`},it={class:`sec`},at={class:`hist-ctl mono`},ot=[`value`],st={class:`raw-table mono`},ct={key:2,class:`aw-tile pad frames-tile`},lt={class:`hist-hd`},ut={class:`sec`},dt={class:`mono frames-n`},ft=[`viewBox`],pt=[`points`],mt={class:`raw-table mono`},ht={key:0,class:`gal`},gt=[`title`,`onClick`],_t=[`src`],vt={class:`mono`},yt={key:1,class:`frames-empty`},bt=[`src`],T=320,xt=84,St=`#35e0a0`,Ct=`rgba(120,135,160,0.18)`,E=`rgba(140,155,175,0.8)`,D=x(i({__name:`[id]`,setup(i){let{t:x}=re();oe({layout:`default`});let D=te(),O=m(()=>String(D.params.id??``)),k=le(),A=se();A.load();let j=ue(),M=m(()=>k.nodeById(O.value)??null),N=m(()=>{let e=M.value?ce(M.value.templateRef):``;return k.templates.find(t=>t.key===e)??null}),wt={ok:x(`daqDetail.k41k5c026`),warn:x(`daqDetail.k49z8v027`),alarm:x(`daqDetail.k3xmid028`),offline:x(`daqDetail.k44c2n029`)},P=()=>{let e=M.value;return!e||!k.controller.running||!e.enabled?`offline`:e.state},F=null;C(()=>{F=k.ensureWsFeed(),k.load(),j.load(),L.value&&z()}),a(()=>F?.());let I=m(()=>N.value?.signalKind??`scalar`),L=m(()=>I.value!==`scalar`),R=m(()=>k.framesOf(O.value));async function z(){O.value&&await k.fetchFrames(O.value,{limit:24}).catch(()=>{})}p(O,()=>{L.value&&z()});let B=e=>new Date(e).toLocaleTimeString(`zh-CN`,{hour12:!1}),V=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `),Tt=m(()=>R.value.find(e=>e.kind===`vector`&&e.points?.length)),Et=m(()=>{let e=Tt.value?.points??[];if(e.length<2)return``;let t=Math.min(...e),n=Math.max(...e)-t||1;return e.map((r,i)=>`${(i/(e.length-1)*T).toFixed(1)},${(78-(r-t)/n*72).toFixed(1)}`).join(` `)}),H=_(null);function Dt(e){return e==null?x(`daqDetail.k9vnp9h053`,{p0:k.controller.defaultPublishIntervalMs}):e===0?x(`daqDetail.k1m1zwux030`):`${e}ms`}let U=ee({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:5e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});p(M,e=>{e&&(U.enabled=e.enabled,U.lineId=e.lineId??``,U.driver=e.driver,U.followGlobal=e.intervalMs==null,U.intervalMs=e.intervalMs??k.controller.defaultIntervalMs,U.publishFollow=e.publishIntervalMs==null,U.publishEveryFrame=e.publishIntervalMs===0,U.publishMs=e.publishIntervalMs==null?k.controller.defaultPublishIntervalMs:e.publishIntervalMs,U.unit=e.unit,U.decimals=e.decimals,U.min=e.min,U.max=e.max,U.warnLow=e.warnLow,U.warnHigh=e.warnHigh)},{immediate:!0});let W=_({}),G=m(()=>w.find(e=>e.kind===U.driver)?.configFields??[]);p(M,e=>{e&&(W.value={...e.driverConfig})},{immediate:!0}),p(()=>U.driver,()=>{if(G.value.length&&Object.keys(W.value).length===0){let e={};for(let t of G.value)t.default!==void 0&&(e[t.key]=t.default);W.value=e}},{immediate:!0});let K=_(!1),q=_(null);async function Ot(){K.value=!0,q.value=null;try{await k.patchNode(O.value,{driver:U.driver,driverConfig:{...W.value}}),q.value=await k.testNode(O.value)}catch(e){q.value={ok:!1,message:ae(e)}}finally{K.value=!1}}let J=_(!1);async function kt(){let e=M.value;if(!(!e||J.value)){J.value=!0;try{await k.patchNode(e.id,{enabled:U.enabled,driver:U.driver,lineId:U.lineId,driverConfig:{...W.value},intervalMs:U.followGlobal?null:Math.max(1e3,Math.min(6e4,Math.round(U.intervalMs))),publishIntervalMs:U.publishFollow?null:U.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(U.publishMs))),unit:U.unit,decimals:Math.max(0,Math.min(6,Math.round(U.decimals))),min:U.min,max:U.max,warnLow:U.warnLow,warnHigh:U.warnHigh})}finally{J.value=!1}}}function At(e){return k.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let Y=_(``),jt=m(()=>(M.value?.deviceIds??(M.value?.deviceBindingId?[M.value.deviceBindingId]:[])).map(e=>j.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`).join(` / `));function Mt(){k.bindNode(O.value,M.value?.deviceBindingId?null:Y.value||null)}let Nt=m(()=>j.twins.filter(e=>e.kind!==`daq`&&e.id!==M.value?.id)),X=_([]),Z=_(15e3),Pt=_(!1),Ft=[{label:`1s 桶`,ms:1e3},{label:`5s 桶`,ms:5e3},{label:`15s 桶(默认)`,ms:15e3},{label:`30s 桶`,ms:3e4},{label:`1min 桶`,ms:6e4}];async function Q(){if(O.value){Pt.value=!0;try{let e=await k.samplesOf(O.value,{toMs:Date.now(),bucketMs:Z.value||void 0,limit:400});X.value=[...e].reverse()}finally{Pt.value=!1,Lt()}}}let It=_(null);function Lt(){let e=It.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=Ct,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=X.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=E,i.font=`10px monospace`,i.fillStyle=E,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=St,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let Rt=_(null),$=null;function zt(){let e=Rt.value,t=M.value;if(!e||!t||t.hist.length<2)return;let n=Math.min(window.devicePixelRatio||1,2),r=e.clientWidth,i=e.clientHeight;(e.width!==r*n||e.height!==i*n)&&(e.width=r*n,e.height=i*n);let a=e.getContext(`2d`);if(!a)return;a.setTransform(n,0,0,n,0,0),a.clearRect(0,0,r,i);let o=Math.max(...t.hist),s=Math.min(...t.hist),c=Math.max(o-s,1e-9);a.strokeStyle=`rgba(65,200,244,0.9)`,a.lineWidth=1.5,a.beginPath(),t.hist.forEach((e,n)=>{let o=n/(t.hist.length-1)*r,l=i-(e-s)/c*(i-6)-3;n===0?a.moveTo(o,l):a.lineTo(o,l)}),a.stroke()}return C(()=>{Q(),$=ie(()=>{zt()},800)}),a(()=>{$&&clearInterval($)}),p(Z,()=>void Q()),(i,a)=>{let p=ne;return s(),h(`div`,de,[y(`p`,fe,[S(p,{to:`/daq`,class:`back`},{default:v(()=>[f(u(i.$t(`daqDetail.k1emg364001`)),1)]),_:1}),f(` / NODE `+u(O.value.slice(0,8).toUpperCase()),1)]),y(`div`,pe,[y(`h1`,null,u(M.value?.name??O.value),1),y(`span`,{class:c([`st-pill`,[P()]])},u(wt[P()]),3)]),!M.value&&l(k).error?(s(),h(`p`,me,[f(u(l(k).error)+`(`,1),S(p,{to:`/workshop`},{default:v(()=>[f(u(i.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),a[20]||=f(`) `,-1)])):g(``,!0),M.value?(s(),h(`div`,he,[y(`section`,ge,[y(`div`,_e,[y(`p`,ve,u(i.$t(`daqDetail.k1fx2vik032`))+` `+u(N.value?.ch??`-`),1),y(`div`,ye,[f(u(M.value.value==null?`--`:M.value.value.toFixed(M.value.decimals)),1),y(`small`,null,u(M.value.unit),1)]),y(`canvas`,{ref_key:`liveCanvas`,ref:Rt,class:`live-canvas`},null,512),y(`dl`,be,[y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k4a0la003`)),1),y(`dd`,null,u(M.value.driver)+u(At(M.value.driver)?i.$t(`daqDetail.kz8zr9v035`):``),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3xg3w004`)),1),y(`dd`,null,u(M.value.intervalMs??i.$t(`daqDetail.k9vnp9h053`,{p0:l(k).controller.defaultIntervalMs})),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3w6td005`)),1),y(`dd`,null,u(Dt(M.value.publishIntervalMs)),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k3x5tpx006`)),1),y(`dd`,null,u(M.value.warnLow??`-∞`)+` ~ `+u(M.value.warnHigh??`+∞`),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k1hjj0jf007`)),1),y(`dd`,null,u(M.value.min)+` ~ `+u(M.value.max),1)]),y(`div`,null,[y(`dt`,null,u(i.$t(`daqDetail.k1i8rtqt008`)),1),y(`dd`,null,u(jt.value||i.$t(`daqDetail.k3own4q036`)),1)])])])]),y(`section`,xe,[y(`h3`,Se,u(i.$t(`daqDetail.kd9d69j009`)),1),y(`form`,{class:`form-grid`,onSubmit:r(kt,[`prevent`])},[y(`label`,Ce,[y(`span`,null,u(i.$t(`daqDetail.k1iw7tbf010`)),1),y(`button`,{type:`button`,class:c([`toggle`,{on:U.enabled}]),onClick:a[0]||=e=>U.enabled=!U.enabled},u(U.enabled?i.$t(`daqDetail.k3w3j8f037`):i.$t(`daqDetail.k3n5aaj045`)),3)]),y(`label`,we,[y(`span`,null,u(i.$t(`daqDetail.k12k23od011`)),1),b(y(`select`,{"onUpdate:modelValue":a[1]||=e=>U.lineId=e,class:`input`},[y(`option`,Te,u(i.$t(`daqDetail.k3ootr6012`)),1),(s(!0),h(d,null,o(l(A).lines,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Ee))),128))],512),[[t,U.lineId]])]),y(`label`,De,[y(`span`,null,u(i.$t(`daqDetail.k1l6smxo013`)),1),b(y(`select`,{"onUpdate:modelValue":a[2]||=e=>U.driver=e,class:`input`},[(s(!0),h(d,null,o(l(w),e=>(s(),h(`option`,{key:e.kind,value:e.kind,disabled:e.status===`planned`},u(e.label)+u(e.status===`planned`?i.$t(`daqDetail.kz8zr9v035`):``),9,Oe))),128))],512),[[t,U.driver]])]),y(`label`,ke,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.followGlobal}]),onClick:a[3]||=e=>U.followGlobal=!U.followGlobal},u(U.followGlobal?i.$t(`daqDetail.k1k2ueyq038`):i.$t(`daqDetail.k1cgi8fy046`)),3),b(y(`input`,{"onUpdate:modelValue":a[4]||=e=>U.intervalMs=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`input`,disabled:U.followGlobal},null,8,Ae),[[n,U.intervalMs,void 0,{number:!0}]]),a[21]||=y(`small`,null,`ms`,-1)]),y(`label`,je,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.calKind===`linear`}]),title:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,onClick:a[5]||=e=>U.calKind=U.calKind===`linear`?`none`:`linear`},u(U.calKind===`linear`?i.$t(`daqDetail.k1eru4r1039`):i.$t(`daqDetail.k3oktae047`)),3),b(y(`input`,{"onUpdate:modelValue":a[6]||=e=>U.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:U.calKind!==`linear`,title:`decode 斜率(≠0)`},null,8,Me),[[n,U.calScale,void 0,{number:!0}]]),b(y(`input`,{"onUpdate:modelValue":a[7]||=e=>U.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:U.calKind!==`linear`,title:`decode 截距`},null,8,Ne),[[n,U.calOffset,void 0,{number:!0}]]),a[22]||=y(`small`,null,`decoder`,-1)]),y(`label`,Pe,[y(`button`,{type:`button`,class:c([`toggle slim`,{on:U.publishFollow}]),onClick:a[8]||=e=>U.publishFollow=!U.publishFollow},u(U.publishFollow?i.$t(`daqDetail.k1k2t5o7040`):i.$t(`daqDetail.k1cggz5f048`)),3),y(`span`,{class:c([`toggle slim`,{on:U.publishEveryFrame}]),style:{cursor:`pointer`},onClick:a[9]||=e=>U.publishEveryFrame=!U.publishEveryFrame},u(U.publishEveryFrame?i.$t(`daqDetail.k41mvv041`):i.$t(`daqDetail.k3n42dj049`)),3),b(y(`input`,{"onUpdate:modelValue":a[10]||=e=>U.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:U.publishFollow||U.publishEveryFrame},null,8,Fe),[[n,U.publishMs,void 0,{number:!0}]]),a[23]||=y(`small`,null,`ms`,-1)]),y(`label`,Ie,[y(`span`,null,u(i.$t(`daqDetail.k3x4ef014`)),1),b(y(`input`,{"onUpdate:modelValue":a[11]||=e=>U.unit=e,class:`input`},null,512),[[n,U.unit]])]),y(`label`,Le,[y(`span`,null,u(i.$t(`daqDetail.k3mxmcx015`)),1),b(y(`input`,{"onUpdate:modelValue":a[12]||=e=>U.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[n,U.decimals,void 0,{number:!0}]])]),y(`div`,Re,[y(`label`,ze,[y(`span`,null,u(i.$t(`daqDetail.k1l9jv5m016`)),1),b(y(`input`,{"onUpdate:modelValue":a[13]||=e=>U.min=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.min,void 0,{number:!0}]])]),y(`label`,Be,[y(`span`,null,u(i.$t(`daqDetail.k1md63hm017`)),1),b(y(`input`,{"onUpdate:modelValue":a[14]||=e=>U.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.warnLow,void 0,{number:!0}]])]),y(`label`,Ve,[y(`span`,null,u(i.$t(`daqDetail.k1md63gp018`)),1),b(y(`input`,{"onUpdate:modelValue":a[15]||=e=>U.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.warnHigh,void 0,{number:!0}]])]),y(`label`,He,[y(`span`,null,u(i.$t(`daqDetail.k1l9jv4p019`)),1),b(y(`input`,{"onUpdate:modelValue":a[16]||=e=>U.max=e,type:`number`,step:`any`,class:`input`},null,512),[[n,U.max,void 0,{number:!0}]])])]),y(`button`,{class:`aw-pill`,type:`submit`,disabled:J.value},u(J.value?i.$t(`daqDetail.k1as0g50042`):i.$t(`daqDetail.ksn9cgo050`)),9,Ue)],32),G.value.length?(s(),h(d,{key:0},[y(`h3`,We,u(i.$t(`daqDetail.k1p9gioa033`))+` `+u(l(w).find(e=>e.kind===U.driver)?.label),1),y(`div`,Ge,[(s(!0),h(d,null,o(G.value,n=>(s(),h(`label`,{key:n.key,class:`field`},[y(`span`,null,[f(u(n.label),1),n.required?(s(),h(`em`,Ke,`*`)):g(``,!0)]),n.type===`select`?b((s(),h(`select`,{key:0,"onUpdate:modelValue":e=>W.value[n.key]=e,class:`input`},[(s(!0),h(d,null,o(n.options,e=>(s(),h(`option`,{key:e.value,value:e.value},u(e.label),9,Je))),128))],8,qe)),[[t,W.value[n.key]]]):b((s(),h(`input`,{key:1,"onUpdate:modelValue":e=>W.value[n.key]=e,type:n.type===`number`?`number`:`text`,placeholder:n.placeholder,class:`input`},null,8,Ye)),[[e,W.value[n.key]]])]))),128))]),y(`div`,Xe,[y(`button`,{class:`pill-btn`,disabled:K.value,onClick:Ot},u(K.value?i.$t(`daqDetail.k1fsh720043`):i.$t(`daqDetail.k1fstglk051`)),9,Ze),q.value?(s(),h(`span`,{key:0,class:c([`test-out mono`,q.value.ok?`ok`:`bad`])},u(q.value.ok?`✓`:`✗`)+` `+u(q.value.message),3)):g(``,!0)])],64)):g(``,!0),y(`h3`,Qe,u(i.$t(`daqDetail.k1ie6qju020`)),1),y(`div`,$e,[b(y(`select`,{"onUpdate:modelValue":a[17]||=e=>Y.value=e,class:`input grow`},[y(`option`,et,u(i.$t(`daqDetail.kjobzu3021`)),1),(s(!0),h(d,null,o(Nt.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,tt))),128))],512),[[t,Y.value]]),y(`button`,{class:`pill-btn`,onClick:Mt},u(jt.value?i.$t(`daqDetail.k479eh044`):i.$t(`daqDetail.k452a8052`)),1)])]),y(`section`,nt,[y(`div`,rt,[y(`h3`,it,u(i.$t(`daqDetail.k1i535i5034`))+u(l(k).meta.tsdb)+`) `,1),y(`div`,at,[b(y(`select`,{"onUpdate:modelValue":a[18]||=e=>Z.value=e,class:`input`},[(s(),h(d,null,o(Ft,e=>y(`option`,{key:e.ms,value:e.ms},u(e.label),9,ot)),64))],512),[[t,Z.value,void 0,{number:!0}]]),y(`button`,{class:`pill-btn`,onClick:Q},u(i.$t(`daqDetail.k3x1jg022`)),1)])]),y(`canvas`,{ref_key:`chartCanvas`,ref:It,class:`hist-canvas`},null,512),y(`table`,st,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,u(i.$t(`daqDetail.k40vsf023`)),1),y(`th`,null,u(i.$t(`daqDetail.k48v5024`)),1),y(`th`,null,u(i.$t(`daqDetail.k4bza025`)),1)])]),y(`tbody`,null,[(s(!0),h(d,null,o(X.value.filter(e=>e.value!=null).slice(-12).reverse(),(e,t)=>(s(),h(`tr`,{key:t},[y(`td`,null,u(new Date(e.at).toLocaleTimeString(`zh-CN`,{hour12:!1})),1),y(`td`,null,u(e.value.toFixed(M.value?.decimals??2)),1),y(`td`,null,u(e.state),1)]))),128))])])])])):g(``,!0),L.value?(s(),h(`section`,ct,[y(`div`,lt,[y(`h3`,ut,[f(u(I.value===`image`?i.$t(`daqDetail.kfrm0001`):i.$t(`daqDetail.kfrm0002`))+` `,1),y(`span`,dt,u(R.value.length),1)]),y(`button`,{class:`pill-btn`,onClick:z},u(i.$t(`daqDetail.k3x1jg022`)),1)]),I.value===`vector`?(s(),h(d,{key:0},[(s(),h(`svg`,{class:`vec-svg`,viewBox:`0 0 ${T} ${xt}`,preserveAspectRatio:`none`},[y(`polyline`,{points:Et.value,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,pt)],8,ft)),y(`table`,mt,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,u(i.$t(`daqDetail.k40vsf023`)),1),y(`th`,null,u(i.$t(`daqDetail.kfrm0004`)),1),y(`th`,null,u(i.$t(`daqDetail.kfrm0005`)),1)])]),y(`tbody`,null,[(s(!0),h(d,null,o(R.value.filter(e=>e.kind===`vector`).slice(0,12),e=>(s(),h(`tr`,{key:e.at},[y(`td`,null,u(B(e.at)),1),y(`td`,null,u(e.points?.length??0),1),y(`td`,null,u(V(e)),1)]))),128))])])],64)):(s(),h(d,{key:1},[R.value.length?(s(),h(`div`,ht,[(s(!0),h(d,null,o(R.value,e=>(s(),h(`figure`,{key:e.at,class:`gal-item`,title:i.$t(`daqDetail.kfrm0006`),onClick:t=>H.value=e},[y(`img`,{src:e.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,_t),y(`figcaption`,vt,u(B(e.at))+` · `+u(V(e)),1)],8,gt))),128))])):(s(),h(`p`,yt,u(i.$t(`daqDetail.kfrm0003`)),1)),H.value?(s(),h(`div`,{key:2,class:`gal-full`,onClick:a[19]||=e=>H.value=null},[y(`img`,{src:H.value.contentUrl??H.value.thumbUrl,alt:`daq frame full`},null,8,bt)])):g(``,!0)],64))])):g(``,!0)])}}}),[[`__scopeId`,`data-v-9c77bd7c`]]);export{D as default};
@@ -0,0 +1 @@
1
+ import{C as e,K as t,U as n,W as r,q as ee}from"./rqZ-1SoP.js";import{C as i,G as a,H as o,Ht as s,St as c,Wt as l,a as u,b as d,c as te,f,ft as p,g as m,h,m as ne,mt as g,p as _,rt as v,t as y,z as re}from"./BSCpFtzG.js";import{r as b}from"./D-Ca4BGY.js";import{t as ie}from"./G0qIw7Gq2.js";import{t as ae}from"./arUY5dyq2.js";import{t as oe}from"./DAR70Lf5.js";import{t as se}from"./UtviM1bg.js";var ce={class:`page`},le={class:`aw-page-head`},ue={class:`sub`},de={class:`head-actions`},fe=[`title`],pe={class:`live-txt mono`},x={class:`filter-card`},S={class:`flt`},C={value:``},w=[`value`],T={class:`flt`},E={value:``},D=[`value`],O={class:`flt`},k={value:``},A=[`value`],j={class:`flt`},M={value:``},N={value:`user`},P={value:`system`},F={class:`flt`},I={value:``},L=[`value`],R={class:`flt flt-grow`},z=[`placeholder`],B=[`disabled`],me={class:`table-card`},he={key:0,class:`err`},ge={class:`log-table`},_e={class:`th-time`},ve={class:`th-src`},ye={class:`th-kind`},be={class:`th-scope`},xe={class:`th-detail`},Se={class:`mono dim`},Ce={class:`actor`},we={class:`summary`},Te={class:`mono dim action`},Ee={class:`scope`},De=[`title`],Oe=[`title`],ke={key:2,class:`scope-chip`,title:`Recipe`},Ae={key:3,class:`dim`},je={class:`detail-cell`},Me=[`onClick`],V={key:1,class:`dim`},Ne={key:0},Pe={colspan:`7`,class:`detail-td`},Fe={class:`detail-box mono`},Ie={key:0,colspan:`7`,class:`empty`},Le={class:`modal`},Re={class:`m-title`},ze={class:`m-f`},Be=[`placeholder`],Ve={class:`m-f`},He=[`placeholder`],Ue={class:`m-grid`},We={class:`m-f`},Ge={value:``},Ke=[`value`],qe={class:`m-f`},Je={value:``},Ye=[`value`],Xe={class:`m-f`},Ze={value:``},Qe=[`value`],$e={key:0,class:`err`},et={class:`m-actions`},tt=[`disabled`],H=y(i({name:`OpsLogsPage`,setup(i){let y=t=>e().$i18n.t(t),H=oe(),nt=ae(),U=se(),rt=[`write`,`manual`,`alarm`,`line`,`recipe`,`rollback`,`daq`,`system`],W=p({lineId:``,productId:``,recipeId:``,actorKind:``,kind:``,text:``}),G=g(null),K=g(!1),q=p({summary:``,detail:``,lineId:``,productId:``,recipeId:``}),it=f(()=>!!(W.lineId||W.productId||W.recipeId||W.actorKind||W.kind||W.text.trim())),J=f(()=>H.products.filter(e=>!W.lineId||e.lineId===W.lineId)),Y=f(()=>H.recipes.filter(e=>(!W.lineId||e.lineId===W.lineId)&&(!W.productId||e.productId===W.productId)));function X(){U.fetchLogs({lineId:W.lineId,productId:W.productId,recipeId:W.recipeId,actorKind:W.actorKind,kind:W.kind,q:W.text.trim(),limit:300}),G.value=null}function at(){W.lineId=``,W.productId=``,W.recipeId=``,W.actorKind=``,W.kind=``,W.text=``,X()}function ot(){q.summary=``,q.detail=``,q.lineId=W.lineId,q.productId=W.productId,q.recipeId=W.recipeId,K.value=!0}async function st(){try{let e=q.detail.trim();await U.postManual({summary:q.summary.trim(),lineId:q.lineId,productId:q.productId,recipeId:q.recipeId,...e?{detail:{note:e}}:{}}),b.success(y(`logs.mOk`)),K.value=!1,X()}catch(e){b.error(ie(e))}}function ct(e){return!!e.detailJson&&e.detailJson!==`{}`}function lt(e){G.value=G.value===e.id?null:e.id}function ut(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function dt(e){let t=new Date(e);if(!Number.isFinite(t.getTime()))return e;let n=e=>String(e).padStart(2,`0`);return`${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function ft(e){return e===`agent`?`Agent`:y(e===`user`?`logs.src.user`:`logs.src.system`)}function pt(e){return e?y(`logs.kind.${e}`):`—`}function Z(e){return H.lines.find(t=>t.id===e)?.name??``}function Q(e){return H.products.find(t=>t.id===e)?.name??``}function $(e){return H.recipes.find(t=>t.id===e)?.name??``}return re(()=>{nt.ensureConnected(),U.ensureLive(),H.load(),X()}),(e,i)=>(o(),m(`div`,ce,[_(`header`,le,[_(`div`,null,[i[17]||=_(`p`,{class:`aw-kicker`},` agentworkshop / audit log `,-1),_(`h1`,null,l(e.$t(`logs.title`)),1),_(`p`,ue,l(e.$t(`logs.sub`)),1)]),_(`div`,de,[_(`span`,{class:`live-dot`,title:e.$t(`logs.liveHint`)},null,8,fe),_(`span`,pe,l(e.$t(`logs.live`))+` `+l(c(U).recent.length),1),_(`button`,{class:`pill-btn`,onClick:ot},[i[18]||=_(`span`,{class:`i-tabler-plus`},null,-1),d(` `+l(e.$t(`logs.manual`)),1)])])]),_(`section`,x,[_(`label`,S,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[0]||=e=>W.lineId=e,class:`inp-sel`,onChange:i[1]||=e=>{W.productId=``,W.recipeId=``}},[_(`option`,C,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,w))),128))],544),[[n,W.lineId]])]),_(`label`,T,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[2]||=e=>W.productId=e,class:`inp-sel`,onChange:i[3]||=e=>W.recipeId=``},[_(`option`,E,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,D))),128))],544),[[n,W.productId]])]),_(`label`,O,[i[19]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[4]||=e=>W.recipeId=e,class:`inp-sel`},[_(`option`,k,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,A))),128))],512),[[n,W.recipeId]])]),_(`label`,j,[_(`span`,null,l(e.$t(`logs.fSource`)),1),v(_(`select`,{"onUpdate:modelValue":i[5]||=e=>W.actorKind=e,class:`inp-sel`},[_(`option`,M,l(e.$t(`logs.all`)),1),_(`option`,N,l(e.$t(`logs.src.user`)),1),i[20]||=_(`option`,{value:`agent`},` Agent `,-1),_(`option`,P,l(e.$t(`logs.src.system`)),1)],512),[[n,W.actorKind]])]),_(`label`,F,[_(`span`,null,l(e.$t(`logs.fKind`)),1),v(_(`select`,{"onUpdate:modelValue":i[6]||=e=>W.kind=e,class:`inp-sel`},[_(`option`,I,l(e.$t(`logs.all`)),1),(o(),m(u,null,a(rt,t=>_(`option`,{key:t,value:t},l(e.$t(`logs.kind.${t}`)),9,L)),64))],512),[[n,W.kind]])]),_(`label`,R,[_(`span`,null,l(e.$t(`logs.fKeyword`)),1),v(_(`input`,{"onUpdate:modelValue":i[7]||=e=>W.text=e,class:`inp-sel`,type:`search`,placeholder:e.$t(`logs.fKeywordPh`),onKeydown:t(X,[`enter`])},null,40,z),[[r,W.text]])]),_(`button`,{class:`pill-btn`,disabled:c(U).loading.list,onClick:X},[i[21]||=_(`span`,{class:`i-tabler-search`},null,-1),d(` `+l(e.$t(`logs.query`)),1)],8,B),it.value?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:at},l(e.$t(`logs.reset`)),1)):h(``,!0)]),_(`section`,me,[c(U).error.list?(o(),m(`p`,he,l(c(U).error.list),1)):h(``,!0),_(`table`,ge,[_(`thead`,null,[_(`tr`,null,[_(`th`,_e,l(e.$t(`logs.thTime`)),1),_(`th`,ve,l(e.$t(`logs.fSource`)),1),_(`th`,null,l(e.$t(`logs.thActor`)),1),_(`th`,ye,l(e.$t(`logs.fKind`)),1),_(`th`,null,l(e.$t(`logs.thSummary`)),1),_(`th`,be,l(e.$t(`logs.thScope`)),1),_(`th`,xe,l(e.$t(`logs.thDetail`)),1)])]),_(`tbody`,null,[(o(!0),m(u,null,a(c(U).results,t=>(o(),m(u,{key:t.id},[_(`tr`,null,[_(`td`,Se,l(dt(t.at)),1),_(`td`,null,[_(`span`,{class:s([`src-badge`,t.actorKind])},l(ft(t.actorKind)),3)]),_(`td`,Ce,l(t.actorName||t.actor||`—`),1),_(`td`,null,[_(`span`,{class:s([`kind-chip`,t.kind])},l(pt(t.kind)),3)]),_(`td`,we,[d(l(t.summary)+` `,1),_(`small`,Te,l(t.action),1)]),_(`td`,Ee,[Z(t.lineId)?(o(),m(`span`,{key:0,class:`scope-chip`,title:e.$t(`logs.fLine`)},l(Z(t.lineId)),9,De)):h(``,!0),Q(t.productId)?(o(),m(`span`,{key:1,class:`scope-chip`,title:e.$t(`logs.fProduct`)},l(Q(t.productId)),9,Oe)):h(``,!0),$(t.recipeId)?(o(),m(`span`,ke,l($(t.recipeId)),1)):h(``,!0),!t.lineId&&!t.productId&&!t.recipeId?(o(),m(`span`,Ae,`—`)):h(``,!0)]),_(`td`,je,[ct(t)?(o(),m(`button`,{key:0,class:`mini-btn`,onClick:e=>lt(t)},l(G.value===t.id?e.$t(`logs.fold`):e.$t(`logs.expand`)),9,Me)):(o(),m(`span`,V,l(e.$t(`logs.noDetail`)),1))])]),G.value===t.id?(o(),m(`tr`,Ne,[_(`td`,Pe,[_(`pre`,Fe,l(ut(t.detailJson)),1)])])):h(``,!0)],64))),128)),_(`tr`,null,[c(U).results.length===0?(o(),m(`td`,Ie,[c(U).loading.list?(o(),m(u,{key:0},[d(l(e.$t(`logs.loading`)),1)],64)):(o(),m(u,{key:1},[d(l(e.$t(`logs.empty`)),1)],64))])):h(``,!0)])])])]),(o(),ne(te,{to:`body`},[K.value?(o(),m(`div`,{key:0,class:`modal-mask`,onClick:i[16]||=ee(e=>K.value=!1,[`self`])},[_(`div`,Le,[_(`h3`,Re,l(e.$t(`logs.manual`)),1),_(`label`,ze,[_(`span`,null,l(e.$t(`logs.mSummary`))+` *`,1),v(_(`textarea`,{"onUpdate:modelValue":i[8]||=e=>q.summary=e,rows:`3`,placeholder:e.$t(`logs.mSummaryPh`)},null,8,Be),[[r,q.summary]])]),_(`label`,Ve,[_(`span`,null,l(e.$t(`logs.mDetail`)),1),v(_(`textarea`,{"onUpdate:modelValue":i[9]||=e=>q.detail=e,rows:`2`,placeholder:e.$t(`logs.mDetailPh`)},null,8,He),[[r,q.detail]])]),_(`div`,Ue,[_(`label`,We,[_(`span`,null,l(e.$t(`logs.fLine`)),1),v(_(`select`,{"onUpdate:modelValue":i[10]||=e=>q.lineId=e,class:`inp-sel`,onChange:i[11]||=e=>{q.productId=``,q.recipeId=``}},[_(`option`,Ge,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(c(H).lines,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ke))),128))],544),[[n,q.lineId]])]),_(`label`,qe,[_(`span`,null,l(e.$t(`logs.fProduct`)),1),v(_(`select`,{"onUpdate:modelValue":i[12]||=e=>q.productId=e,class:`inp-sel`,onChange:i[13]||=e=>q.recipeId=``},[_(`option`,Je,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(J.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Ye))),128))],544),[[n,q.productId]])]),_(`label`,Xe,[i[22]||=_(`span`,null,`Recipe`,-1),v(_(`select`,{"onUpdate:modelValue":i[14]||=e=>q.recipeId=e,class:`inp-sel`},[_(`option`,Ze,l(e.$t(`logs.all`)),1),(o(!0),m(u,null,a(Y.value,e=>(o(),m(`option`,{key:e.id,value:e.id},l(e.name),9,Qe))),128))],512),[[n,q.recipeId]])])]),c(U).error.post?(o(),m(`p`,$e,l(c(U).error.post),1)):h(``,!0),_(`div`,et,[_(`button`,{class:`ghost-btn`,onClick:i[15]||=e=>K.value=!1},l(e.$t(`common.cancel`)),1),_(`button`,{class:`pill-btn`,disabled:c(U).loading.posting||!q.summary.trim(),onClick:st},l(e.$t(`logs.mSubmit`)),9,tt)])])])):h(``,!0)]))]))}}),[[`__scopeId`,`data-v-0b613117`]]);export{H as default};
@@ -1 +1 @@
1
- import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";import{i as r}from"./DAR70Lf5.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=e([]),o=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,nodesTotal:0,nodesOnline:0}),s=e({tsdb:`…`,queue:`…`,drivers:[],driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),d=e(a.map(e=>({...e}))),f=e({});function p(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):r.push({...e,hist:[]})}let m=[],h=null;function g(){h=null;let e=m;if(m=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=r.find(e=>e.id===n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=r.find(t=>t.id===e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function _(e){m.push(e),h||=setTimeout(g,500)}function v(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1);return}p(e.node)}}function y(e){d.splice(0,d.length,...e.map(e=>({...e})))}function b(e){if(!e.template)return;let t=d.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&d.splice(t,1);return}t>=0?d[t]={...e.template}:d.push({...e.template})}function x(e){let t=Date.parse(e.at),n=f[e.nodeId]??(f[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let i=r.find(t=>t.id===e.nodeId);i&&(i.value=e.metrics?.avg??i.value,e.state&&(i.state=e.state),i.lastAt=e.at)}let S=0,C=null;function w(){S++,S===1&&(C=n().subscribe(T));let e=!1;return()=>{e||(e=!0,--S===0&&(C?.(),C=null))}}function T(e){if(e.type===`daq.reading`)_(e.payload);else if(e.type===`daq.frame`)x(e.payload);else if(e.type===`daq.node.changed`)v(e.payload);else if(e.type===`daq.controller`)Object.assign(o,e.payload);else if(e.type===`daq.template.changed`)b(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;i.some(e=>e.id===t.id)||i.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=i.findIndex(e=>e.id===t.id);e>=0&&i.splice(e,1)}}}async function E(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),Object.assign(o,e.controller),Object.assign(s,e.meta??{}),s.driverAvailable=e.driverAvailable??{},s.infra=e.infra,e.templates?.length&&y(e.templates),U.loaded=!0,U.error=``}catch(e){U.error=t(e)}}async function D(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return p(n.node),n.node}async function O(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function k(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function A(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1)}async function j(e,t){p((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function M(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function N(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function P(){try{let e=await u(`/alarms?scope=open&limit=50`);i.splice(0,i.length,...e.alarms??[])}catch{}}async function F(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await P()}async function I(){let e=await u(`/infra/reconnect`,{method:`POST`});return s.infra=e.infra,await E(),e.infra}async function L(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(o,r.controller)}async function R(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function z(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return f[e]=r.frames??[],f[e]}async function B(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return b({op:`added`,template:t.template}),t.template}async function V(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return b({op:`updated`,template:n.template}),n.template}async function H(e){await u(`/templates/${e}`,{method:`DELETE`}),b({op:`removed`,template:{key:e}})}let U=e({nodes:r,controller:o,meta:s,templates:d,loaded:!1,error:``,ensureWsFeed:w,load:E,createFromTemplate:D,createTemplate:B,updateTemplate:V,removeTemplate:H,testDriver:M,testNode:N,reconnectInfra:I,patchNode:O,saveTransform:k,removeNode:A,bindNode:j,controllerAction:L,alarms:i,fetchAlarms:P,ackAlarm:F,nodeById:e=>r.find(t=>t.id===e),samplesOf:R,fetchFrames:z,frames:f,framesOf:e=>f[e]??[],templateOf:e=>d.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return U},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
1
+ import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{t as n}from"./36oeS8_R2.js";import{i as r}from"./DAR70Lf5.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=e([]),o=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,nodesTotal:0,nodesOnline:0}),s=e({tsdb:`…`,queue:`…`,drivers:[],driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),d=e(a.map(e=>({...e}))),f=e({});function p(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):r.push({...e,hist:[]})}let m=[],h=null;function g(){h=null;let e=m;if(m=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=r.find(e=>e.id===n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=r.find(t=>t.id===e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function _(e){m.push(e),h||=setTimeout(g,500)}function v(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1);return}p(e.node)}}function y(e){d.splice(0,d.length,...e.map(e=>({...e})))}function b(e){if(!e.template)return;let t=d.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&d.splice(t,1);return}t>=0?d[t]={...e.template}:d.push({...e.template})}function x(e){let t=Date.parse(e.at),n=f[e.nodeId]??(f[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let i=r.find(t=>t.id===e.nodeId);i&&(i.value=e.metrics?.avg??i.value,e.state&&(i.state=e.state),i.lastAt=e.at)}let S=0,C=null;function w(){S++,S===1&&(C=n().subscribe(T));let e=!1;return()=>{e||(e=!0,--S===0&&(C?.(),C=null))}}function T(e){if(e.type===`daq.reading`)_(e.payload);else if(e.type===`daq.frame`)x(e.payload);else if(e.type===`daq.node.changed`)v(e.payload);else if(e.type===`daq.controller`)Object.assign(o,e.payload);else if(e.type===`daq.template.changed`)b(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;i.some(e=>e.id===t.id)||i.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=i.findIndex(e=>e.id===t.id);e>=0&&i.splice(e,1)}}}async function E(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),Object.assign(o,e.controller),Object.assign(s,e.meta??{}),s.driverAvailable=e.driverAvailable??{},s.infra=e.infra,e.templates?.length&&y(e.templates),W.loaded=!0,W.error=``}catch(e){W.error=t(e)}}async function D(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return p(n.node),n.node}async function O(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function k(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function A(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1)}async function j(e,t){p((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function M(e,t){p((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function N(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function P(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function F(){try{let e=await u(`/alarms?scope=open&limit=50`);i.splice(0,i.length,...e.alarms??[])}catch{}}async function I(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await F()}async function L(){let e=await u(`/infra/reconnect`,{method:`POST`});return s.infra=e.infra,await E(),e.infra}async function R(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(o,r.controller)}async function z(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function B(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return f[e]=r.frames??[],f[e]}async function V(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return b({op:`added`,template:t.template}),t.template}async function H(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return b({op:`updated`,template:n.template}),n.template}async function U(e){await u(`/templates/${e}`,{method:`DELETE`}),b({op:`removed`,template:{key:e}})}let W=e({nodes:r,controller:o,meta:s,templates:d,loaded:!1,error:``,ensureWsFeed:w,load:E,createFromTemplate:D,createTemplate:V,updateTemplate:H,removeTemplate:U,testDriver:N,testNode:P,reconnectInfra:L,patchNode:O,saveTransform:k,removeNode:A,bindNode:j,setNodeBindings:M,controllerAction:R,alarms:i,fetchAlarms:F,ackAlarm:I,nodeById:e=>r.find(t=>t.id===e),samplesOf:z,fetchFrames:B,frames:f,framesOf:e=>f[e]??[],templateOf:e=>d.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return W},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
@@ -1 +1 @@
1
- import{I as e,U as t,V as n,W as r,q as i}from"./rqZ-1SoP.js";import{C as a,G as o,H as s,Ht as c,St as l,Ut as u,Wt as d,a as f,b as p,f as m,ft as h,g,h as _,mt as v,nt as y,p as b,rt as x,t as S,x as C}from"./BSCpFtzG.js";import{t as ee}from"./D8CqF0yy.js";import{n as te}from"./BeIfu4N3.js";import{t as w}from"./G0qIw7Gq2.js";import{r as T,t as ne}from"./DAR70Lf5.js";var re={class:`page`},ie={class:`aw-page-head`},ae={class:`sub`},oe={class:`badges mono`},se=[`title`],ce={class:`badge`},le={key:0,class:`banner bad`},ue={class:`fleet-filter`},de={class:`aw-seg`},fe=[`placeholder`],pe={class:`line-grid aw-stagger`},me={class:`lc-head`},he={class:`lc-name`},ge=[`title`,`onClick`],_e=[`title`,`onClick`],ve={key:0,class:`lc-run mono`},ye={class:`lc-stats mono`},be={class:`lc-ctl`},xe=[`onUpdate:modelValue`,`disabled`,`title`],Se={value:``},Ce=[`value`,`disabled`],we=[`disabled`,`onClick`],Te=[`disabled`,`onClick`],Ee={key:1,class:`banner`},De={key:2,class:`banner`},Oe={class:`modal`},ke={class:`m-title`},Ae={class:`f`},je=[`placeholder`],Me={class:`f`},Ne=[`placeholder`],Pe={class:`f`},Fe={class:`color-row`},Ie=[`onClick`],Le={class:`dim`},Re={key:0,class:`m-err`},ze={class:`m-actions`},Be=[`disabled`],Ve={class:`modal`},He={class:`m-title`},Ue={class:`f`},We=[`placeholder`],Ge={class:`f`},Ke=[`placeholder`],qe={class:`f`},Je={class:`color-row`},Ye=[`onClick`],Xe={class:`dim`},Ze={key:0,class:`m-err`},Qe={class:`m-actions`},$e=[`disabled`],et={class:`modal`},tt={class:`m-title danger-title`},nt={class:`del-summary`},rt={class:`del-purge`},it={key:0,class:`m-err`},at={class:`m-actions`},ot=[`disabled`],st={class:`modal wide`},ct={class:`m-title`},lt={class:`dim mono`},ut={class:`dim tpl-hint`},dt={class:`tpl-list`},ft=[`title`],pt={class:`mono dim`},mt={key:0,class:`tpl-sem`},ht=[`onClick`],gt={class:`sec-label`},_t={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},E=S(a({__name:`index`,setup(a){let{t:S}=te(),E=ne();E.load();let D=m(()=>E.lines.map(e=>({line:e,nodes:E.nodes.filter(t=>t.lineId===e.id).length,products:E.products.filter(t=>t.lineId===e.id).length,recipes:E.recipes.filter(t=>t.lineId===e.id).length}))),O=m(()=>E.nodes.filter(e=>!e.lineId).length+E.products.filter(e=>!e.lineId).length),k=v(`all`),A=v(``),j=m(()=>D.value.filter(e=>E.lineStateOf(e.line.id).active).length),M=m(()=>D.value.filter(e=>{let t=E.lineStateOf(e.line.id).active;if(k.value===`running`&&!t||k.value===`idle`&&t)return!1;let n=A.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),N=v(!1),P=v(!1),F=v(``),I=h({name:``,description:``,color:``}),L=m(()=>T[E.lines.length%T.length]??`#3aa0ff`);function Ft(){I.name=``,I.description=``,I.color=``,F.value=``,N.value=!0}async function It(){P.value=!0,F.value=``;try{await E.createLine({name:I.name.trim(),description:I.description.trim(),color:I.color||void 0}),N.value=!1}catch(e){F.value=w(e)}finally{P.value=!1}}let R=v(``),z=v(``),B=h({});async function Lt(e){R.value=e.line.id,z.value=``;try{let t=B[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await E.startLine(e.line.id,t)}catch(e){z.value=w(e)}finally{R.value=``}}async function Rt(e){R.value=e.line.id,z.value=``;try{await E.stopLine(e.line.id)}catch(e){z.value=w(e)}finally{R.value=``}}function V(e){return E.recipes.filter(t=>t.lineId===e)}let H=v(!1),U=v(!1),W=v(``),G=v(!0),K=v(null);function zt(e){K.value=e,G.value=!0,W.value=``,H.value=!0}async function Bt(){if(K.value){U.value=!0,W.value=``;try{await E.removeLine(K.value.line.id,G.value),H.value=!1}catch(e){W.value=w(e)}finally{U.value=!1}}}let q=v(!1),J=v(!1),Y=v(``),X=h({id:``,name:``,description:``,color:``});function Vt(e){X.id=e.line.id,X.name=e.line.name,X.description=e.line.description,X.color=e.line.color,Y.value=``,q.value=!0}async function Ht(){J.value=!0,Y.value=``;try{await E.updateLine(X.id,{name:X.name.trim(),description:X.description.trim(),color:X.color||void 0}),q.value=!1}catch(e){Y.value=w(e)}finally{J.value=!1}}let Z=v(!1),Q=v(``),$=h({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Wt(){Q.value=``;try{if(!$.name.trim())throw Error(S(`dcw.k6ugbw2046`));if($.min===``||$.max===``)throw Error(S(`dcw.k13awowo047`));await E.createTemplate({name:$.name.trim(),ch:$.ch.trim()||$.name.trim(),code:$.code.trim()||`CUSTOM`,unit:$.unit.trim()||`-`,min:Number($.min),max:Number($.max),decimals:Number($.decimals)||0,icon:$.icon,semantics:$.semantics.trim()||void 0}),$.name=``,$.ch=``,$.code=``,$.unit=``,$.min=``,$.max=``}catch(e){Q.value=w(e)}}async function Gt(e){Q.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=E.templates.findIndex(t=>t.key===e);t>=0&&E.templates.splice(t,1)}catch(e){Q.value=w(e)}}let Kt=m(()=>E.templates.filter(e=>e.builtin).length);return(a,m)=>{let h=ee;return s(),g(`div`,re,[b(`div`,ie,[b(`div`,null,[m[27]||=b(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),b(`h1`,null,d(a.$t(`dcw.k1b2tk5c009`)),1),b(`p`,ae,d(a.$t(`dcw.k5q0aqi010`)),1)]),b(`div`,oe,[O.value?(s(),g(`span`,{key:0,class:`badge warn-badge`,title:a.$t(`dcw.k1i5a9vw001`)},d(a.$t(`dcw.k3ootr6049`))+` `+d(O.value),9,se)):_(``,!0),b(`span`,ce,d(a.$t(`dcw.k3wj9n050`))+` `+d(l(E).lines.length),1),b(`button`,{class:`badge tpl-btn`,onClick:m[0]||=e=>Z.value=!0},d(a.$t(`dcw.k11nndsp051`))+` `+d(l(E).templates.length),1)])]),z.value?(s(),g(`p`,le,d(z.value),1)):_(``,!0),b(`div`,ue,[b(`div`,de,[b(`button`,{class:c({on:k.value===`all`}),onClick:m[1]||=e=>k.value=`all`},d(a.$t(`common.all`))+` `+d(D.value.length),3),b(`button`,{class:c({on:k.value===`running`}),onClick:m[2]||=e=>k.value=`running`},d(a.$t(`dcw.k1eox1el055`))+` `+d(j.value),3),b(`button`,{class:c({on:k.value===`idle`}),onClick:m[3]||=e=>k.value=`idle`},d(a.$t(`dcw.k149r6y7059`))+` `+d(D.value.length-j.value),3)]),x(b(`input`,{"onUpdate:modelValue":m[4]||=e=>A.value=e,class:`inp fleet-search`,type:`search`,placeholder:a.$t(`dcw.filterSearchPh`)},null,8,fe),[[r,A.value]])]),b(`div`,pe,[(s(!0),g(f,null,o(M.value,e=>(s(),g(`div`,{key:e.line.id,class:c([`line-card aw-liftable`,{idle:!l(E).lineStateOf(e.line.id).active}]),style:u({"--lc":e.line.color})},[b(`div`,me,[m[30]||=b(`span`,{class:`lc-dot`},null,-1),b(`b`,he,d(e.line.name),1),b(`span`,{class:c([`lc-state`,{on:l(E).lineStateOf(e.line.id).active}])},d(l(E).lineStateOf(e.line.id).active?a.$t(`dcw.k1eox1el055`):a.$t(`dcw.k149r6y7059`)),3),b(`button`,{class:`lc-act`,title:a.$t(`common.edit`),onClick:t=>Vt(e)},[...m[28]||=[b(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ge),b(`button`,{class:`lc-act danger`,title:a.$t(`dcw.k3xakp026`),onClick:t=>zt(e)},[...m[29]||=[b(`span`,{class:`i-tabler-trash`},null,-1)]],8,_e)]),l(E).lineStateOf(e.line.id).active?(s(),g(`small`,ve,d(l(E).lineStateOf(e.line.id).productName)+` · `+d(l(E).lineStateOf(e.line.id).recipeName)+` · `+d(a.$t(`dcw.k3zz0f052`))+` `+d(l(E).lineStateOf(e.line.id).taggedSamples),1)):(s(),g(`small`,{key:1,class:c([`lc-run dim`,{ph:!e.line.description}])},d(e.line.description||a.$t(`dcw.k18moyq1056`)),3)),b(`div`,ye,[b(`span`,null,[p(d(a.$t(`dcw.k45uio011`))+` `,1),b(`b`,null,d(e.nodes),1)]),b(`span`,null,[p(d(a.$t(`dcw.k3waz1012`))+` `,1),b(`b`,null,d(e.products),1)]),b(`span`,null,[p(d(a.$t(`dcw.k48grv013`))+` `,1),b(`b`,null,d(e.recipes),1)])]),b(`div`,be,[l(E).lineStateOf(e.line.id).active?(s(),g(`button`,{key:1,class:`pill-btn stop`,disabled:R.value===e.line.id,onClick:t=>Rt(e)},d(a.$t(`dcw.k148rclf015`)),9,Te)):(s(),g(f,{key:0},[x(b(`select`,{"onUpdate:modelValue":t=>B[e.line.id]=t,class:`inp`,disabled:V(e.line.id).length===0,title:a.$t(`dcw.k1dhaby4003`)},[b(`option`,Se,d(V(e.line.id).length?a.$t(`dcw.kutxzsz057`):a.$t(`dcw.k1elczt9060`)),1),(s(!0),g(f,null,o(V(e.line.id),e=>(s(),g(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},d(e.name)+`(`+d(e.params.length)+`) `,9,Ce))),128))],8,xe),[[t,B[e.line.id]]]),b(`button`,{class:`pill-btn`,disabled:R.value===e.line.id||!B[e.line.id],onClick:t=>Lt(e)},d(a.$t(`dcw.k149b4vg014`)),9,we)],64))]),C(h,{class:`lc-manage`,to:`/dcw/${e.line.id}`},{default:y(()=>[p(d(a.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),b(`button`,{class:`line-card new-card`,onClick:Ft},[m[31]||=b(`span`,{class:`i-tabler-plus`},null,-1),p(` `+d(a.$t(`dcw.k1efe391017`))+` `,1),b(`small`,null,d(a.$t(`dcw.k19dlbli053`)),1)])]),l(E).loaded&&l(E).lines.length===0?(s(),g(`p`,Ee,d(a.$t(`dcw.k1sk85vs018`)),1)):l(E).loaded&&M.value.length===0?(s(),g(`p`,De,d(a.$t(`dcw.filterEmpty`)),1)):_(``,!0),C(e,{name:`modal`},{default:y(()=>[N.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[8]||=i(e=>N.value=!1,[`self`])},[b(`div`,Oe,[b(`h3`,ke,d(a.$t(`dcw.k1efe391017`)),1),b(`label`,Ae,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[32]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[5]||=e=>I.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,je),[[r,I.name]])]),b(`label`,Me,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[6]||=e=>I.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ne),[[r,I.description]])]),b(`div`,Pe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Fe,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:I.color===e}]),style:u({background:e}),onClick:t=>I.color=I.color===e?``:e},null,14,Ie))),128)),b(`small`,Le,d(I.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),F.value?(s(),g(`p`,Re,d(F.value),1)):_(``,!0),b(`div`,ze,[b(`button`,{class:`mini-btn`,onClick:m[7]||=e=>N.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:P.value||!I.name.trim(),onClick:It},d(a.$t(`dcw.k3wzi2023`)),9,Be)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[q.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[12]||=i(e=>q.value=!1,[`self`])},[b(`div`,Ve,[b(`h3`,He,d(a.$t(`dcw.k5tq8wc071`)),1),b(`label`,Ue,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[33]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[9]||=e=>X.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,We),[[r,X.name]])]),b(`label`,Ge,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[10]||=e=>X.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ke),[[r,X.description]])]),b(`div`,qe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Je,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:X.color===e}]),style:u({background:e}),onClick:t=>X.color=X.color===e?``:e},null,14,Ye))),128)),b(`small`,Xe,d(X.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),Y.value?(s(),g(`p`,Ze,d(Y.value),1)):_(``,!0),b(`div`,Qe,[b(`button`,{class:`mini-btn`,onClick:m[11]||=e=>q.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:J.value||!X.name.trim(),onClick:Ht},d(a.$t(`common.save`)),9,$e)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[H.value&&K.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[15]||=i(e=>H.value=!1,[`self`])},[b(`div`,et,[b(`h3`,tt,[m[34]||=b(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(` `+d(a.$t(`dcw.k7xq2mfd063`,{p0:K.value.line.name})),1)]),b(`p`,nt,d(G.value?a.$t(`dcw.k4r7nbd073`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes}):a.$t(`dcw.k1gp649b062`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes})),1),b(`label`,rt,[x(b(`input`,{"onUpdate:modelValue":m[13]||=e=>G.value=e,type:`checkbox`},null,512),[[n,G.value]]),b(`span`,null,d(a.$t(`dcw.k9m2vxa072`)),1)]),W.value?(s(),g(`p`,it,d(W.value),1)):_(``,!0),b(`div`,at,[b(`button`,{class:`mini-btn`,onClick:m[14]||=e=>H.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn danger`,disabled:U.value,onClick:Bt},d(a.$t(`dcw.k3xakp026`)),9,ot)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[Z.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[26]||=i(e=>Z.value=!1,[`self`])},[b(`div`,st,[b(`h3`,ct,[p(d(a.$t(`dcw.k11oadmx024`))+` `,1),b(`small`,lt,d(a.$t(`dcw.k3x23c054`))+` `+d(Kt.value)+` · `+d(a.$t(`dcw.k3t616a058`))+` `+d(l(E).templates.length-Kt.value),1)]),b(`p`,ut,d(a.$t(`dcw.k2hlav5025`)),1),b(`div`,dt,[(s(!0),g(f,null,o(l(E).templates,e=>(s(),g(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[b(`b`,null,d(e.name),1),b(`small`,pt,d(e.code)+` · `+d(e.min)+`~`+d(e.max)+` `+d(e.unit),1),e.semantics?(s(),g(`small`,mt,d(e.semantics.slice(0,40))+d(e.semantics.length>40?`…`:``),1)):_(``,!0),b(`span`,{class:c([`tpl-tag`,{builtin:e.builtin}])},d(e.builtin?a.$t(`dcw.k3x23c054`):a.$t(`dcw.k3t616a058`)),3),e.builtin?_(``,!0):(s(),g(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Gt(e.key)},d(a.$t(`dcw.k3xakp026`)),9,ht))],8,ft))),128))]),b(`p`,gt,d(a.$t(`dcw.k169eb4s027`)),1),b(`div`,_t,[b(`label`,vt,[b(`span`,null,[p(d(a.$t(`dcw.k3xhia028`)),1),m[35]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[16]||=e=>$.name=e,class:`inp`,placeholder:a.$t(`dcw.k1tooi3o006`)},null,8,yt),[[r,$.name]])]),b(`label`,bt,[b(`span`,null,d(a.$t(`dcw.k1bqk219029`)),1),x(b(`input`,{"onUpdate:modelValue":m[17]||=e=>$.ch=e,class:`inp`,placeholder:a.$t(`dcw.k698qz0007`)},null,8,xt),[[r,$.ch]])]),b(`label`,St,[b(`span`,null,d(a.$t(`dcw.k1ayxrqb030`)),1),x(b(`input`,{"onUpdate:modelValue":m[18]||=e=>$.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[r,$.code]])]),b(`label`,Ct,[b(`span`,null,d(a.$t(`dcw.k3x4ef031`)),1),x(b(`input`,{"onUpdate:modelValue":m[19]||=e=>$.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[r,$.unit]])]),b(`label`,wt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv5m032`)),1),m[36]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[20]||=e=>$.min=e,type:`number`,class:`inp`},null,512),[[r,$.min,void 0,{number:!0}]])]),b(`label`,Tt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv4p033`)),1),m[37]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[21]||=e=>$.max=e,type:`number`,class:`inp`},null,512),[[r,$.max,void 0,{number:!0}]])]),b(`label`,Et,[b(`span`,null,d(a.$t(`dcw.k3mxmcx034`)),1),x(b(`input`,{"onUpdate:modelValue":m[22]||=e=>$.decimals=e,type:`number`,class:`inp`},null,512),[[r,$.decimals,void 0,{number:!0}]])]),b(`label`,Dt,[b(`span`,null,d(a.$t(`dcw.k3xx56035`)),1),x(b(`select`,{"onUpdate:modelValue":m[23]||=e=>$.icon=e,class:`inp`},[(s(),g(f,null,o(Ut,e=>b(`option`,{key:e.key,value:e.key},d(e.label),9,Ot)),64))],512),[[t,$.icon]])])]),b(`label`,kt,[b(`span`,null,d(a.$t(`dcw.k1b6qorg036`)),1),x(b(`textarea`,{"onUpdate:modelValue":m[24]||=e=>$.semantics=e,class:`inp`,rows:`3`,placeholder:a.$t(`dcw.k1qdnfzc008`)},null,8,At),[[r,$.semantics]])]),Q.value?(s(),g(`p`,jt,d(Q.value),1)):_(``,!0),b(`div`,Mt,[b(`button`,{class:`mini-btn`,onClick:m[25]||=e=>Z.value=!1},d(a.$t(`dcw.k3x62t037`)),1),b(`button`,{class:`pill-btn`,disabled:!$.name.trim()||$.min===``||$.max===``,onClick:Wt},d(a.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):_(``,!0)]),_:1}),l(E).error?(s(),g(`p`,Pt,d(l(E).error),1)):_(``,!0)])}}}),[[`__scopeId`,`data-v-3f1efd1b`]]);export{E as default};
1
+ import{I as e,U as t,V as n,W as r,q as i}from"./rqZ-1SoP.js";import{C as a,G as o,H as s,Ht as c,St as l,Ut as u,Wt as d,a as f,b as p,f as m,ft as h,g,h as _,mt as v,nt as y,p as b,rt as x,t as S,x as C}from"./BSCpFtzG.js";import{t as ee}from"./D8CqF0yy.js";import{n as te}from"./BeIfu4N3.js";import{t as w}from"./G0qIw7Gq2.js";import{r as T,t as ne}from"./DAR70Lf5.js";var re={class:`page`},ie={class:`aw-page-head`},ae={class:`sub`},oe={class:`badges mono`},se=[`title`],ce={class:`badge`},le={key:0,class:`banner bad`},ue={class:`fleet-filter`},de={class:`aw-seg`},fe=[`placeholder`],pe={class:`line-grid aw-stagger`},me={class:`lc-head`},he={class:`lc-name`},ge=[`title`,`onClick`],_e=[`title`,`onClick`],ve={key:0,class:`lc-run mono`},ye={class:`lc-stats mono`},be={class:`lc-ctl`},xe=[`onUpdate:modelValue`,`disabled`,`title`],Se={value:``},Ce=[`value`,`disabled`],we=[`disabled`,`onClick`],Te=[`disabled`,`onClick`],Ee={key:1,class:`banner`},De={key:2,class:`banner`},Oe={class:`modal`},ke={class:`m-title`},Ae={class:`f`},je=[`placeholder`],Me={class:`f`},Ne=[`placeholder`],Pe={class:`f`},Fe={class:`color-row`},Ie=[`onClick`],Le={class:`dim`},Re={key:0,class:`m-err`},ze={class:`m-actions`},Be=[`disabled`],Ve={class:`modal`},He={class:`m-title`},Ue={class:`f`},We=[`placeholder`],Ge={class:`f`},Ke=[`placeholder`],qe={class:`f`},Je={class:`color-row`},Ye=[`onClick`],Xe={class:`dim`},Ze={key:0,class:`m-err`},Qe={class:`m-actions`},$e=[`disabled`],et={class:`modal`},tt={class:`m-title danger-title`},nt={class:`del-summary`},rt={class:`del-purge`},it={key:0,class:`m-err`},at={class:`m-actions`},ot=[`disabled`],st={class:`modal wide`},ct={class:`m-title`},lt={class:`dim mono`},ut={class:`dim tpl-hint`},dt={class:`tpl-list`},ft=[`title`],pt={class:`mono dim`},mt={key:0,class:`tpl-sem`},ht=[`onClick`],gt={class:`sec-label`},_t={class:`tpl-form`},vt={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot=[`value`],kt={class:`f`},At=[`placeholder`],jt={key:0,class:`m-err`},Mt={class:`m-actions`},Nt=[`disabled`],Pt={key:3,class:`banner bad`},E=S(a({__name:`index`,setup(a){let{t:S}=te(),E=ne();E.load();let D=m(()=>E.lines.map(e=>({line:e,nodes:E.nodes.filter(t=>t.lineId===e.id).length,products:E.products.filter(t=>t.lineId===e.id).length,recipes:E.recipes.filter(t=>t.lineId===e.id).length}))),O=m(()=>E.nodes.filter(e=>!e.lineId).length+E.products.filter(e=>!e.lineId).length),k=v(`all`),A=v(``),j=m(()=>D.value.filter(e=>E.lineStateOf(e.line.id).active).length),M=m(()=>D.value.filter(e=>{let t=E.lineStateOf(e.line.id).active;if(k.value===`running`&&!t||k.value===`idle`&&t)return!1;let n=A.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),N=v(!1),P=v(!1),F=v(``),I=h({name:``,description:``,color:``}),L=m(()=>T[E.lines.length%T.length]??`#3aa0ff`);function Ft(){I.name=``,I.description=``,I.color=``,F.value=``,N.value=!0}async function It(){P.value=!0,F.value=``;try{await E.createLine({name:I.name.trim(),description:I.description.trim(),color:I.color||void 0}),N.value=!1}catch(e){F.value=w(e)}finally{P.value=!1}}let R=v(``),z=v(``),B=h({});async function Lt(e){R.value=e.line.id,z.value=``;try{let t=B[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await E.startLine(e.line.id,t)}catch(e){z.value=w(e)}finally{R.value=``}}async function Rt(e){R.value=e.line.id,z.value=``;try{await E.stopLine(e.line.id)}catch(e){z.value=w(e)}finally{R.value=``}}function V(e){return E.recipes.filter(t=>t.lineId===e)}let H=v(!1),U=v(!1),W=v(``),G=v(!0),K=v(null);function zt(e){K.value=e,G.value=!0,W.value=``,H.value=!0}async function Bt(){if(K.value){U.value=!0,W.value=``;try{await E.removeLine(K.value.line.id,G.value),H.value=!1}catch(e){W.value=w(e)}finally{U.value=!1}}}let q=v(!1),J=v(!1),Y=v(``),X=h({id:``,name:``,description:``,color:``});function Vt(e){X.id=e.line.id,X.name=e.line.name,X.description=e.line.description,X.color=e.line.color,Y.value=``,q.value=!0}async function Ht(){J.value=!0,Y.value=``;try{await E.updateLine(X.id,{name:X.name.trim(),description:X.description.trim(),color:X.color||void 0}),q.value=!1}catch(e){Y.value=w(e)}finally{J.value=!1}}let Z=v(!1),Q=v(``),$=h({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Ut=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Wt(){Q.value=``;try{if(!$.name.trim())throw Error(S(`dcw.k6ugbw2046`));if($.min===``||$.max===``)throw Error(S(`dcw.k13awowo047`));await E.createTemplate({name:$.name.trim(),ch:$.ch.trim()||$.name.trim(),code:$.code.trim()||`CUSTOM`,unit:$.unit.trim()||`-`,min:Number($.min),max:Number($.max),decimals:Number($.decimals)||0,icon:$.icon,semantics:$.semantics.trim()||void 0}),$.name=``,$.ch=``,$.code=``,$.unit=``,$.min=``,$.max=``}catch(e){Q.value=w(e)}}async function Gt(e){Q.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=E.templates.findIndex(t=>t.key===e);t>=0&&E.templates.splice(t,1)}catch(e){Q.value=w(e)}}let Kt=m(()=>E.templates.filter(e=>e.builtin).length);return(a,m)=>{let h=ee;return s(),g(`div`,re,[b(`div`,ie,[b(`div`,null,[m[27]||=b(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),b(`h1`,null,d(a.$t(`dcw.k1b2tk5c009`)),1),b(`p`,ae,d(a.$t(`dcw.k5q0aqi010`)),1)]),b(`div`,oe,[O.value?(s(),g(`span`,{key:0,class:`badge warn-badge`,title:a.$t(`dcw.k1i5a9vw001`)},d(a.$t(`dcw.k3ootr6049`))+` `+d(O.value),9,se)):_(``,!0),b(`span`,ce,d(a.$t(`dcw.k3wj9n050`))+` `+d(l(E).lines.length),1),b(`button`,{class:`badge tpl-btn`,onClick:m[0]||=e=>Z.value=!0},d(a.$t(`dcw.k11nndsp051`))+` `+d(l(E).templates.length),1)])]),z.value?(s(),g(`p`,le,d(z.value),1)):_(``,!0),b(`div`,ue,[b(`div`,de,[b(`button`,{class:c({on:k.value===`all`}),onClick:m[1]||=e=>k.value=`all`},d(a.$t(`common.all`))+` `+d(D.value.length),3),b(`button`,{class:c({on:k.value===`running`}),onClick:m[2]||=e=>k.value=`running`},d(a.$t(`dcw.k1eox1el055`))+` `+d(j.value),3),b(`button`,{class:c({on:k.value===`idle`}),onClick:m[3]||=e=>k.value=`idle`},d(a.$t(`dcw.k149r6y7059`))+` `+d(D.value.length-j.value),3)]),x(b(`input`,{"onUpdate:modelValue":m[4]||=e=>A.value=e,class:`inp fleet-search`,type:`search`,placeholder:a.$t(`dcw.filterSearchPh`)},null,8,fe),[[r,A.value]])]),b(`div`,pe,[(s(!0),g(f,null,o(M.value,e=>(s(),g(`div`,{key:e.line.id,class:c([`line-card aw-liftable`,{idle:!l(E).lineStateOf(e.line.id).active}]),style:u({"--lc":e.line.color})},[b(`div`,me,[m[30]||=b(`span`,{class:`lc-dot`},null,-1),b(`b`,he,d(e.line.name),1),b(`span`,{class:c([`lc-state`,{on:l(E).lineStateOf(e.line.id).active}])},d(l(E).lineStateOf(e.line.id).active?a.$t(`dcw.k1eox1el055`):a.$t(`dcw.k149r6y7059`)),3),b(`button`,{class:`lc-act`,title:a.$t(`common.edit`),onClick:t=>Vt(e)},[...m[28]||=[b(`span`,{class:`i-tabler-pencil`},null,-1)]],8,ge),b(`button`,{class:`lc-act danger`,title:a.$t(`dcw.k3xakp026`),onClick:t=>zt(e)},[...m[29]||=[b(`span`,{class:`i-tabler-trash`},null,-1)]],8,_e)]),l(E).lineStateOf(e.line.id).active?(s(),g(`small`,ve,d(l(E).lineStateOf(e.line.id).productName)+` · `+d(l(E).lineStateOf(e.line.id).recipeName)+` · `+d(a.$t(`dcw.k3zz0f052`))+` `+d(l(E).lineStateOf(e.line.id).taggedSamples),1)):(s(),g(`small`,{key:1,class:c([`lc-run dim`,{ph:!e.line.description}])},d(e.line.description||a.$t(`dcw.k18moyq1056`)),3)),b(`div`,ye,[b(`span`,null,[p(d(a.$t(`dcw.k45uio011`))+` `,1),b(`b`,null,d(e.nodes),1)]),b(`span`,null,[p(d(a.$t(`dcw.k3waz1012`))+` `,1),b(`b`,null,d(e.products),1)]),b(`span`,null,[p(d(a.$t(`dcw.k48grv013`))+` `,1),b(`b`,null,d(e.recipes),1)])]),b(`div`,be,[l(E).lineStateOf(e.line.id).active?(s(),g(`button`,{key:1,class:`pill-btn stop`,disabled:R.value===e.line.id,onClick:t=>Rt(e)},d(a.$t(`dcw.k148rclf015`)),9,Te)):(s(),g(f,{key:0},[x(b(`select`,{"onUpdate:modelValue":t=>B[e.line.id]=t,class:`inp`,disabled:V(e.line.id).length===0,title:a.$t(`dcw.k1dhaby4003`)},[b(`option`,Se,d(V(e.line.id).length?a.$t(`dcw.kutxzsz057`):a.$t(`dcw.k1elczt9060`)),1),(s(!0),g(f,null,o(V(e.line.id),e=>(s(),g(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},d(e.name)+`(`+d(e.params.length)+`) `,9,Ce))),128))],8,xe),[[t,B[e.line.id]]]),b(`button`,{class:`pill-btn`,disabled:R.value===e.line.id||!B[e.line.id],onClick:t=>Lt(e)},d(a.$t(`dcw.k149b4vg014`)),9,we)],64))]),C(h,{class:`lc-manage`,to:`/dcw/${e.line.id}`},{default:y(()=>[p(d(a.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),b(`button`,{class:`line-card new-card`,onClick:Ft},[m[31]||=b(`span`,{class:`i-tabler-plus`},null,-1),p(` `+d(a.$t(`dcw.k1efe391017`))+` `,1),b(`small`,null,d(a.$t(`dcw.k19dlbli053`)),1)])]),l(E).loaded&&l(E).lines.length===0?(s(),g(`p`,Ee,d(a.$t(`dcw.k1sk85vs018`)),1)):l(E).loaded&&M.value.length===0?(s(),g(`p`,De,d(a.$t(`dcw.filterEmpty`)),1)):_(``,!0),C(e,{name:`modal`},{default:y(()=>[N.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[8]||=i(e=>N.value=!1,[`self`])},[b(`div`,Oe,[b(`h3`,ke,d(a.$t(`dcw.k1efe391017`)),1),b(`label`,Ae,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[32]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[5]||=e=>I.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,je),[[r,I.name]])]),b(`label`,Me,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[6]||=e=>I.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ne),[[r,I.description]])]),b(`div`,Pe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Fe,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:I.color===e}]),style:u({background:e}),onClick:t=>I.color=I.color===e?``:e},null,14,Ie))),128)),b(`small`,Le,d(I.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),F.value?(s(),g(`p`,Re,d(F.value),1)):_(``,!0),b(`div`,ze,[b(`button`,{class:`mini-btn`,onClick:m[7]||=e=>N.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:P.value||!I.name.trim(),onClick:It},d(a.$t(`dcw.k3wzi2023`)),9,Be)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[q.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[12]||=i(e=>q.value=!1,[`self`])},[b(`div`,Ve,[b(`h3`,He,d(a.$t(`dcw.k5tq8wc071`)),1),b(`label`,Ue,[b(`span`,null,[p(d(a.$t(`dcw.k1b2ioko019`)),1),m[33]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[9]||=e=>X.name=e,class:`inp`,placeholder:a.$t(`dcw.kru37i3004`)},null,8,We),[[r,X.name]])]),b(`label`,Ge,[b(`span`,null,d(a.$t(`dcw.k24dxcd020`)),1),x(b(`input`,{"onUpdate:modelValue":m[10]||=e=>X.description=e,class:`inp`,placeholder:a.$t(`dcw.k1f2nwsp005`)},null,8,Ke),[[r,X.description]])]),b(`div`,qe,[b(`span`,null,d(a.$t(`dcw.k1x7nubr021`)),1),b(`div`,Je,[(s(!0),g(f,null,o(l(T),e=>(s(),g(`button`,{key:e,class:c([`color-dot`,{on:X.color===e}]),style:u({background:e}),onClick:t=>X.color=X.color===e?``:e},null,14,Ye))),128)),b(`small`,Xe,d(X.color||a.$t(`dcw.k1qidbpy061`,{p0:L.value})),1)])]),Y.value?(s(),g(`p`,Ze,d(Y.value),1)):_(``,!0),b(`div`,Qe,[b(`button`,{class:`mini-btn`,onClick:m[11]||=e=>q.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn`,disabled:J.value||!X.name.trim(),onClick:Ht},d(a.$t(`common.save`)),9,$e)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[H.value&&K.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[15]||=i(e=>H.value=!1,[`self`])},[b(`div`,et,[b(`h3`,tt,[m[34]||=b(`span`,{class:`i-tabler-alert-triangle`},null,-1),p(` `+d(a.$t(`dcw.k7xq2mfd063`,{p0:K.value.line.name})),1)]),b(`p`,nt,d(G.value?a.$t(`dcw.k4r7nbd073`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes}):a.$t(`dcw.k1gp649b062`,{p0:K.value.line.name,p1:K.value.nodes,p2:K.value.products,p3:K.value.recipes})),1),b(`label`,rt,[x(b(`input`,{"onUpdate:modelValue":m[13]||=e=>G.value=e,type:`checkbox`},null,512),[[n,G.value]]),b(`span`,null,d(a.$t(`dcw.k9m2vxa072`)),1)]),W.value?(s(),g(`p`,it,d(W.value),1)):_(``,!0),b(`div`,at,[b(`button`,{class:`mini-btn`,onClick:m[14]||=e=>H.value=!1},d(a.$t(`dcw.k3xdnn022`)),1),b(`button`,{class:`pill-btn danger`,disabled:U.value,onClick:Bt},d(a.$t(`dcw.k3xakp026`)),9,ot)])])])):_(``,!0)]),_:1}),C(e,{name:`modal`},{default:y(()=>[Z.value?(s(),g(`div`,{key:0,class:`modal-mask`,onClick:m[26]||=i(e=>Z.value=!1,[`self`])},[b(`div`,st,[b(`h3`,ct,[p(d(a.$t(`dcw.k11oadmx024`))+` `,1),b(`small`,lt,d(a.$t(`dcw.k3x23c054`))+` `+d(Kt.value)+` · `+d(a.$t(`dcw.k3t616a058`))+` `+d(l(E).templates.length-Kt.value),1)]),b(`p`,ut,d(a.$t(`dcw.k2hlav5025`)),1),b(`div`,dt,[(s(!0),g(f,null,o(l(E).templates,e=>(s(),g(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[b(`b`,null,d(e.name),1),b(`small`,pt,d(e.code)+` · `+d(e.min)+`~`+d(e.max)+` `+d(e.unit),1),e.semantics?(s(),g(`small`,mt,d(e.semantics.slice(0,40))+d(e.semantics.length>40?`…`:``),1)):_(``,!0),b(`span`,{class:c([`tpl-tag`,{builtin:e.builtin}])},d(e.builtin?a.$t(`dcw.k3x23c054`):a.$t(`dcw.k3t616a058`)),3),e.builtin?_(``,!0):(s(),g(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Gt(e.key)},d(a.$t(`dcw.k3xakp026`)),9,ht))],8,ft))),128))]),b(`p`,gt,d(a.$t(`dcw.k169eb4s027`)),1),b(`div`,_t,[b(`label`,vt,[b(`span`,null,[p(d(a.$t(`dcw.k3xhia028`)),1),m[35]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[16]||=e=>$.name=e,class:`inp`,placeholder:a.$t(`dcw.k1tooi3o006`)},null,8,yt),[[r,$.name]])]),b(`label`,bt,[b(`span`,null,d(a.$t(`dcw.k1bqk219029`)),1),x(b(`input`,{"onUpdate:modelValue":m[17]||=e=>$.ch=e,class:`inp`,placeholder:a.$t(`dcw.k698qz0007`)},null,8,xt),[[r,$.ch]])]),b(`label`,St,[b(`span`,null,d(a.$t(`dcw.k1ayxrqb030`)),1),x(b(`input`,{"onUpdate:modelValue":m[18]||=e=>$.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[r,$.code]])]),b(`label`,Ct,[b(`span`,null,d(a.$t(`dcw.k3x4ef031`)),1),x(b(`input`,{"onUpdate:modelValue":m[19]||=e=>$.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[r,$.unit]])]),b(`label`,wt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv5m032`)),1),m[36]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[20]||=e=>$.min=e,type:`number`,class:`inp`},null,512),[[r,$.min,void 0,{number:!0}]])]),b(`label`,Tt,[b(`span`,null,[p(d(a.$t(`dcw.k1l9jv4p033`)),1),m[37]||=b(`em`,null,`*`,-1)]),x(b(`input`,{"onUpdate:modelValue":m[21]||=e=>$.max=e,type:`number`,class:`inp`},null,512),[[r,$.max,void 0,{number:!0}]])]),b(`label`,Et,[b(`span`,null,d(a.$t(`dcw.k3mxmcx034`)),1),x(b(`input`,{"onUpdate:modelValue":m[22]||=e=>$.decimals=e,type:`number`,class:`inp`},null,512),[[r,$.decimals,void 0,{number:!0}]])]),b(`label`,Dt,[b(`span`,null,d(a.$t(`dcw.k3xx56035`)),1),x(b(`select`,{"onUpdate:modelValue":m[23]||=e=>$.icon=e,class:`inp`},[(s(),g(f,null,o(Ut,e=>b(`option`,{key:e.key,value:e.key},d(e.label),9,Ot)),64))],512),[[t,$.icon]])])]),b(`label`,kt,[b(`span`,null,d(a.$t(`dcw.k1b6qorg036`)),1),x(b(`textarea`,{"onUpdate:modelValue":m[24]||=e=>$.semantics=e,class:`inp`,rows:`3`,placeholder:a.$t(`dcw.k1qdnfzc008`)},null,8,At),[[r,$.semantics]])]),Q.value?(s(),g(`p`,jt,d(Q.value),1)):_(``,!0),b(`div`,Mt,[b(`button`,{class:`mini-btn`,onClick:m[25]||=e=>Z.value=!1},d(a.$t(`dcw.k3x62t037`)),1),b(`button`,{class:`pill-btn`,disabled:!$.name.trim()||$.min===``||$.max===``,onClick:Wt},d(a.$t(`dcw.k1bg9nga038`)),9,Nt)])])])):_(``,!0)]),_:1}),l(E).error?(s(),g(`p`,Pt,d(l(E).error),1)):_(``,!0)])}}}),[[`__scopeId`,`data-v-a200e0d3`]]);export{E as default};
@@ -1,4 +1,4 @@
1
- import{G as e,I as t,K as n,W as r,q as i}from"./rqZ-1SoP.js";import{A as a,B as o,C as s,F as c,G as l,H as u,Ht as d,M as f,O as p,Q as m,St as h,U as g,Ut as _,V as v,Wt as y,Y as b,a as x,b as S,bt as C,c as w,d as T,dt as E,et as D,f as O,ft as k,g as A,gt as j,h as M,lt as N,m as P,mt as F,nt as I,p as L,q as R,rt as z,t as B,x as V,y as H,z as U}from"./BSCpFtzG.js";import{d as W,p as G}from"./-6OnbLFb.js";import{n as K}from"./B5S_UyaC.js";import{n as q}from"./BeIfu4N3.js";import{t as J}from"./DpojD719.js";import{t as Y}from"./DXRZPxGs.js";import{$ as X,At as Z,Ct as ee,E as te,J as ne,O as re,Q as ie,X as ae,Z as oe,at as se,ct as ce,d as le,et as ue,h as de,it as fe,j as pe,kt as Q,m as me,n as he,pt as ge,t as _e,tt as ve,u as ye}from"./BDUjyaF4.js";import{$ as be,c as xe,i as Se}from"./DtBu71ev.js";import{t as Ce}from"./BfGc7TJp.js";import{G as we,V as Te,t as Ee}from"./VLI2Zy4t.js";import{n as De,r as Oe,t as ke}from"./eHYnGew0.js";import{a as Ae,i as je,t as Me}from"./BN_PdN3J.js";import{f as Ne,p as Pe,r as $,s as Fe,x as Ie}from"./D-Ca4BGY.js";import{a as Le,i as Re,n as ze,r as Be,t as Ve}from"./RzXYI9FM.js";import{i as He,n as Ue,r as We,t as Ge}from"./B-xskWta.js";import{t as Ke}from"./CKfhtOt7.js";import{n as qe,r as Je,t as Ye}from"./BxPPAkGA.js";import{t as Xe}from"./BBwMH_hG.js";import{t as Ze}from"./DTYBfjRY.js";import{t as Qe}from"./lO5tpDZ5.js";import{t as $e}from"./D1z7i2UP.js";import{t as et}from"./ORt9oDIy2.js";import{t as tt}from"./DA4lxCWC2.js";import{n as nt,r as rt,t as it}from"./DWcEk1ur2.js";import{t as at}from"./Bp5luxkg2.js";import{t as ot}from"./C9f8QMp12.js";import{t as st}from"./DoLasgPj2.js";import{t as ct}from"./BcrN7QEl2.js";import{t as lt}from"./C4OAdbVK2.js";import{t as ut}from"./G0qIw7Gq2.js";import{a as dt,c as ft,d as pt,f as mt,i as ht,l as gt,m as _t,n as vt,o as yt,r as bt,s as xt,t as St,u as Ct}from"./arUY5dyq2.js";import{t as wt}from"./kZV5TQvh2.js";import{t as Tt}from"./CNs_Ozdc.js";import{t as Et}from"./DeYsUzhr.js";import{t as Dt}from"./BxtpDtzC.js";import{n as Ot,t as kt}from"./Ba7YofCb.js";function At(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),V(`p`,{style:a,class:ee(`${t}-only-unit`,{current:r})},[n])}function jt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Mt=s({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=O(()=>Number(e.value)),n=O(()=>Math.abs(e.count)),r=k({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=F();return D(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),o(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[At(Q(Q({},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 At(Q(Q({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-jt(r.prevValue,s,l)}00%)`}}return V(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Nt=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},Pt={prefixCls:String,count:_e.any,component:String,title:_e.any,show:Boolean},Ft=s({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Pt,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=he(`scroll-number`,e);return()=>{let t=Q(Q({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Nt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=Q(Q({},f),{style:d,"data-show":e.show,class:ee(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>V(Mt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=Q(Q({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=se(r.default?.call(r));return h&&h.length?Te(h,{class:ee(`${i.value}-custom-component`)},!1):V(l,p,{default:()=>[m]})}}}),It=new re(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Lt=new re(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Rt=new re(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),zt=new re(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Bt=new re(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Vt=new re(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Ht=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=be(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=be(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:Q(Q(Q(Q({},de(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:Vt,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:It,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:Lt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Bt,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}`]:Q(Q(Q(Q({},de(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`}})}},Ut=le(`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[Ht(ye(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%)`}))]}),Wt=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},Gt=s({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:_e.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=he(`ribbon`,e),[o,s]=Ut(i),c=O(()=>xe(e.color,!1)),l=O(()=>[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=Wt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(V(`div`,Z({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),V(`div`,{class:[l.value,t,s.value],style:Q(Q({},d),a)},[V(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),V(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Kt=s({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Gt,inheritAttrs:!1,props:{count:_e.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:_e.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(n,r){let{slots:i,attrs:a}=r,{prefixCls:o,direction:s}=he(`badge`,n),[c,l]=Ut(o),u=O(()=>n.count>n.overflowCount?`${n.overflowCount}+`:n.count),d=O(()=>u.value===`0`||u.value===0),f=O(()=>n.count===null||d.value&&!n.showZero),p=O(()=>(n.status!==null&&n.status!==void 0||n.color!==null&&n.color!==void 0)&&f.value),m=O(()=>n.dot&&!d.value),h=O(()=>m.value?``:u.value),g=O(()=>(h.value===null||h.value===void 0||h.value===``||d.value&&!n.showZero)&&!m.value),_=F(n.count),v=F(h.value),y=F(m.value);D([()=>n.count,h,m],()=>{g.value||(_.value=n.count,v.value=h.value,y.value=m.value)},{immediate:!0});let b=O(()=>xe(n.color,!1)),x=O(()=>({[`${o.value}-status-dot`]:p.value,[`${o.value}-status-${n.status}`]:!!n.status,[`${o.value}-color-${n.color}`]:b.value})),S=O(()=>n.color&&!b.value?{background:n.color,color:n.color}:{}),C=O(()=>({[`${o.value}-dot`]:y.value,[`${o.value}-count`]:!y.value,[`${o.value}-count-sm`]:n.size===`small`,[`${o.value}-multiple-words`]:!y.value&&v.value&&v.value.toString().length>1,[`${o.value}-status-${n.status}`]:!!n.status,[`${o.value}-color-${n.color}`]:b.value}));return()=>{let{offset:r,title:u,color:d}=n,f=a.style,m=ge(i,n,`text`),h=o.value,y=_.value,w=ce(i.default?.call(i));w=w.length?w:null;let T=!!(!g.value||i.count),E=(()=>{if(!r)return Q({},f);let e={marginTop:Qe(r[1])?`${r[1]}px`:r[1]};return s.value===`rtl`?e.left=`${parseInt(r[0],10)}px`:e.right=`${-parseInt(r[0],10)}px`,Q(Q({},e),f)})(),D=u??(typeof y==`string`||typeof y==`number`?y:void 0),O=T||!m?null:V(`span`,{class:`${h}-status-text`},[m]),k=typeof y==`object`||y===void 0&&i.count?Te(y??i.count?.call(i),{style:E},!1):null,A=ee(h,{[`${h}-status`]:p.value,[`${h}-not-a-wrapper`]:!w,[`${h}-rtl`]:s.value===`rtl`},a.class,l.value);if(!w&&p.value){let e=E.color;return c(V(`span`,Z(Z({},a),{},{class:A,style:E}),[V(`span`,{class:x.value,style:S.value},null),V(`span`,{style:{color:e},class:`${h}-status-text`},[m])]))}let j=Ie(w?`${h}-zoom`:``,{appear:!1}),M=Q(Q({},E),n.numberStyle);return d&&!b.value&&(M||={},M.background=d),c(V(`span`,Z(Z({},a),{},{class:A}),[w,V(t,j,{default:()=>[z(V(Ft,{prefixCls:n.scrollNumberPrefixCls,show:T,class:C.value,count:v.value,title:D,style:M,key:`scrollNumber`},{default:()=>[k]}),[[e,T]])]}),O]))}}});Kt.install=function(e){return e.component(Kt.name,Kt),e.component(Gt.name,Gt),e};var qt=Kt,Jt=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},Yt=s({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:_e.any,dropdownProps:X(),overlay:_e.any,onClick:oe()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=he(`breadcrumb`,e),o=(t,r)=>{let i=ge(n,e,`overlay`);return i?V($e,Z(Z({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[V(`span`,{class:`${r}-overlay-link`},[t,V(Ae,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=ge(n,e,`separator`)??`/`,i=ge(n,e),{class:c,style:l}=r,u=Jt(r,[`class`,`style`]),d;return d=e.href===void 0?V(`span`,Z({class:`${a.value}-link`,onClick:s},u),[i]):V(`a`,Z({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:V(`li`,{class:c,style:l},[d,t&&V(`span`,{class:`${a.value}-separator`},[t])])}}}),Xt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Q(Q({},de(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:Q({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}},me(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
1
+ import{G as e,I as t,K as n,W as r,q as i}from"./rqZ-1SoP.js";import{A as a,B as o,C as s,F as c,G as l,H as u,Ht as d,M as f,O as p,Q as m,St as h,U as g,Ut as _,V as v,Wt as y,Y as b,a as x,b as S,bt as C,c as w,d as T,dt as E,et as D,f as O,ft as k,g as A,gt as j,h as M,lt as N,m as P,mt as F,nt as I,p as L,q as R,rt as z,t as B,x as V,y as H,z as U}from"./BSCpFtzG.js";import{d as W,p as G}from"./-6OnbLFb.js";import{n as K}from"./B5S_UyaC.js";import{n as q}from"./BeIfu4N3.js";import{t as J}from"./DpojD719.js";import{t as Y}from"./DXRZPxGs.js";import{$ as X,At as Z,Ct as ee,E as te,J as ne,O as re,Q as ie,X as ae,Z as oe,at as se,ct as ce,d as le,et as ue,h as de,it as fe,j as pe,kt as Q,m as me,n as he,pt as ge,t as _e,tt as ve,u as ye}from"./BDUjyaF4.js";import{$ as be,c as xe,i as Se}from"./DtBu71ev.js";import{t as Ce}from"./BfGc7TJp.js";import{G as we,V as Te,t as Ee}from"./VLI2Zy4t.js";import{n as De,r as Oe,t as ke}from"./eHYnGew0.js";import{a as Ae,i as je,t as Me}from"./BN_PdN3J.js";import{f as Ne,p as Pe,r as $,s as Fe,x as Ie}from"./D-Ca4BGY.js";import{a as Le,i as Re,n as ze,r as Be,t as Ve}from"./RzXYI9FM.js";import{i as He,n as Ue,r as We,t as Ge}from"./B-xskWta.js";import{t as Ke}from"./CKfhtOt7.js";import{n as qe,r as Je,t as Ye}from"./BxPPAkGA.js";import{t as Xe}from"./BBwMH_hG.js";import{t as Ze}from"./DTYBfjRY.js";import{t as Qe}from"./lO5tpDZ5.js";import{t as $e}from"./D1z7i2UP.js";import{t as et}from"./ORt9oDIy2.js";import{t as tt}from"./DA4lxCWC2.js";import{n as nt,r as rt,t as it}from"./DWcEk1ur2.js";import{t as at}from"./Bp5luxkg2.js";import{t as ot}from"./C9f8QMp12.js";import{t as st}from"./DoLasgPj2.js";import{t as ct}from"./BcrN7QEl2.js";import{t as lt}from"./C4OAdbVK2.js";import{t as ut}from"./G0qIw7Gq2.js";import{a as dt,c as ft,d as pt,f as mt,i as ht,l as gt,m as _t,n as vt,o as yt,r as bt,s as xt,t as St,u as Ct}from"./arUY5dyq2.js";import{t as wt}from"./kZV5TQvh2.js";import{t as Tt}from"./CNs_Ozdc.js";import{t as Et}from"./DeYsUzhr.js";import{t as Dt}from"./BxtpDtzC.js";import{n as Ot,t as kt}from"./dbi5bHkY.js";function At(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),V(`p`,{style:a,class:ee(`${t}-only-unit`,{current:r})},[n])}function jt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Mt=s({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=O(()=>Number(e.value)),n=O(()=>Math.abs(e.count)),r=k({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=F();return D(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),o(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[At(Q(Q({},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 At(Q(Q({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-jt(r.prevValue,s,l)}00%)`}}return V(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Nt=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},Pt={prefixCls:String,count:_e.any,component:String,title:_e.any,show:Boolean},Ft=s({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Pt,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=he(`scroll-number`,e);return()=>{let t=Q(Q({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Nt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=Q(Q({},f),{style:d,"data-show":e.show,class:ee(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>V(Mt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=Q(Q({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=se(r.default?.call(r));return h&&h.length?Te(h,{class:ee(`${i.value}-custom-component`)},!1):V(l,p,{default:()=>[m]})}}}),It=new re(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Lt=new re(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Rt=new re(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),zt=new re(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Bt=new re(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Vt=new re(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Ht=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=be(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=be(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:Q(Q(Q(Q({},de(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:Vt,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:It,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:Lt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Bt,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}`]:Q(Q(Q(Q({},de(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`}})}},Ut=le(`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[Ht(ye(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%)`}))]}),Wt=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},Gt=s({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:_e.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=he(`ribbon`,e),[o,s]=Ut(i),c=O(()=>xe(e.color,!1)),l=O(()=>[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=Wt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(V(`div`,Z({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),V(`div`,{class:[l.value,t,s.value],style:Q(Q({},d),a)},[V(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),V(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Kt=s({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Gt,inheritAttrs:!1,props:{count:_e.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:_e.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(n,r){let{slots:i,attrs:a}=r,{prefixCls:o,direction:s}=he(`badge`,n),[c,l]=Ut(o),u=O(()=>n.count>n.overflowCount?`${n.overflowCount}+`:n.count),d=O(()=>u.value===`0`||u.value===0),f=O(()=>n.count===null||d.value&&!n.showZero),p=O(()=>(n.status!==null&&n.status!==void 0||n.color!==null&&n.color!==void 0)&&f.value),m=O(()=>n.dot&&!d.value),h=O(()=>m.value?``:u.value),g=O(()=>(h.value===null||h.value===void 0||h.value===``||d.value&&!n.showZero)&&!m.value),_=F(n.count),v=F(h.value),y=F(m.value);D([()=>n.count,h,m],()=>{g.value||(_.value=n.count,v.value=h.value,y.value=m.value)},{immediate:!0});let b=O(()=>xe(n.color,!1)),x=O(()=>({[`${o.value}-status-dot`]:p.value,[`${o.value}-status-${n.status}`]:!!n.status,[`${o.value}-color-${n.color}`]:b.value})),S=O(()=>n.color&&!b.value?{background:n.color,color:n.color}:{}),C=O(()=>({[`${o.value}-dot`]:y.value,[`${o.value}-count`]:!y.value,[`${o.value}-count-sm`]:n.size===`small`,[`${o.value}-multiple-words`]:!y.value&&v.value&&v.value.toString().length>1,[`${o.value}-status-${n.status}`]:!!n.status,[`${o.value}-color-${n.color}`]:b.value}));return()=>{let{offset:r,title:u,color:d}=n,f=a.style,m=ge(i,n,`text`),h=o.value,y=_.value,w=ce(i.default?.call(i));w=w.length?w:null;let T=!!(!g.value||i.count),E=(()=>{if(!r)return Q({},f);let e={marginTop:Qe(r[1])?`${r[1]}px`:r[1]};return s.value===`rtl`?e.left=`${parseInt(r[0],10)}px`:e.right=`${-parseInt(r[0],10)}px`,Q(Q({},e),f)})(),D=u??(typeof y==`string`||typeof y==`number`?y:void 0),O=T||!m?null:V(`span`,{class:`${h}-status-text`},[m]),k=typeof y==`object`||y===void 0&&i.count?Te(y??i.count?.call(i),{style:E},!1):null,A=ee(h,{[`${h}-status`]:p.value,[`${h}-not-a-wrapper`]:!w,[`${h}-rtl`]:s.value===`rtl`},a.class,l.value);if(!w&&p.value){let e=E.color;return c(V(`span`,Z(Z({},a),{},{class:A,style:E}),[V(`span`,{class:x.value,style:S.value},null),V(`span`,{style:{color:e},class:`${h}-status-text`},[m])]))}let j=Ie(w?`${h}-zoom`:``,{appear:!1}),M=Q(Q({},E),n.numberStyle);return d&&!b.value&&(M||={},M.background=d),c(V(`span`,Z(Z({},a),{},{class:A}),[w,V(t,j,{default:()=>[z(V(Ft,{prefixCls:n.scrollNumberPrefixCls,show:T,class:C.value,count:v.value,title:D,style:M,key:`scrollNumber`},{default:()=>[k]}),[[e,T]])]}),O]))}}});Kt.install=function(e){return e.component(Kt.name,Kt),e.component(Gt.name,Gt),e};var qt=Kt,Jt=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},Yt=s({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:_e.any,dropdownProps:X(),overlay:_e.any,onClick:oe()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=he(`breadcrumb`,e),o=(t,r)=>{let i=ge(n,e,`overlay`);return i?V($e,Z(Z({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[V(`span`,{class:`${r}-overlay-link`},[t,V(Ae,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=ge(n,e,`separator`)??`/`,i=ge(n,e),{class:c,style:l}=r,u=Jt(r,[`class`,`style`]),d;return d=e.href===void 0?V(`span`,Z({class:`${a.value}-link`,onClick:s},u),[i]):V(`a`,Z({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:V(`li`,{class:c,style:l},[d,t&&V(`span`,{class:`${a.value}-separator`},[t])])}}}),Xt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Q(Q({},de(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:Q({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}},me(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
2
2
  > ${n} + span,
3
3
  > ${n} + a
4
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`}})}},Zt=le(`Breadcrumb`,e=>[Xt(ye(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}))]),Qt=()=>({prefixCls:String,routes:{type:Array},params:_e.any,separator:_e.any,itemRender:{type:Function}});function $t(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 en(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=$t(t,n);return a?V(`span`,null,[o]):V(`a`,{href:`#/${i.join(`/`)}`},[o])}var tn=s({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:Qt(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=he(`breadcrumb`,e),[o,s]=Zt(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=en}=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=V(Ke,{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),V(Yt,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=ce(ge(n,e)),f=ge(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||en;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(pe(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`),T(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(V(`nav`,Z(Z({},r),{},{class:m}),[V(`ol`,null,[t])]))}}}),nn=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},rn=s({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}=he(`breadcrumb`,e);return()=>{let{separator:e,class:t}=r,a=nn(r,[`separator`,`class`]),o=ce(n.default?.call(n));return V(`span`,Z({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});tn.Item=Yt,tn.Separator=rn,tn.install=function(e){return e.component(tn.name,tn),e.component(Yt.name,Yt),e.component(rn.name,rn),e};var an=tn,on=[`normal`,`exception`,`active`,`success`],sn=()=>({prefixCls:String,type:ve(),percent:Number,format:ie(),status:ve(),showInfo:ae(),strokeWidth:Number,strokeLinecap:ve(),strokeColor:ne(),trailColor:String,width:Number,success:X(),gapDegree:Number,gapPosition:ve(),size:ue([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:ve()});function cn(e){return!e||e<0?0:e>100?100:e}function ln(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(we(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function un(e){let{percent:t,success:n,successPercent:r}=e,i=cn(ln({success:n,successPercent:r}));return[i,cn(cn(t)-i)]}function dn(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||te.green,n||null]}var fn=(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}},pn=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},mn=()=>Q(Q({},sn()),{strokeColor:ne(),direction:ve()}),hn=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(`, `)},gn=(e,t)=>{let{from:n=te.blue,to:r=te.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=pn(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${hn(a)})`}},_n=s({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:mn(),setup(e,t){let{slots:n,attrs:r}=t,i=O(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?gn(t,n):{backgroundColor:t}}),a=O(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=O(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=O(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=O(()=>fn(s.value,`line`,{strokeWidth:e.strokeWidth})),l=O(()=>{let{percent:t}=e;return Q({width:`${cn(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=O(()=>ln(e)),d=O(()=>{let{success:t}=e;return{width:`${cn(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()=>V(x,null,[V(`div`,Z(Z({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[V(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[V(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:V(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),vn={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},yn=e=>{let t=F(null);return v(()=>{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},bn={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},xn=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},Sn=0;function Cn(e){return+e.replace(`%`,``)}function wn(e){return Array.isArray(e)?e:[e]}function Tn(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}
@@ -6,7 +6,7 @@ import{G as e,I as t,K as n,W as r,q as i}from"./rqZ-1SoP.js";import{A as a,B as
6
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 En=s({compatConfig:{MODE:3},name:`VCCircle`,props:Ce(bn,vn),setup(e){Sn+=1;let t=F(Sn),n=O(()=>wn(e.percent)),r=O(()=>wn(e.strokeColor)),[i,a]=Je();yn(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}=Tn(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 V(`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=xn(e,[`prefixCls`,`strokeWidth`,`trailWidth`,`gapDegree`,`gapPosition`,`trailColor`,`strokeLinecap`,`strokeColor`]),{pathString:p,pathStyle:m}=Tn(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 V(`svg`,Z({class:`${n}-circle`,viewBox:`0 0 100 100`},f),[h&&V(`defs`,null,[V(`linearGradient`,{id:`${n}-gradient-${t.value}`,x1:`100%`,y1:`0%`,x2:`0%`,y2:`0%`},[Object.keys(h).sort((e,t)=>Cn(e)-Cn(t)).map((e,t)=>V(`stop`,{key:t,offset:e,"stop-color":h[e]},null))])]),V(`path`,g,null),o().reverse()])}}}),Dn=()=>Q(Q({},sn()),{strokeColor:ne()}),On=3,kn=e=>On/e*100,An=s({compatConfig:{MODE:3},name:`ProgressCircle`,inheritAttrs:!1,props:Ce(Dn(),{trailColor:null}),setup(e,t){let{slots:n,attrs:r}=t,i=O(()=>e.width??120),a=O(()=>e.size??[i.value,i.value]),o=O(()=>fn(a.value,`circle`)),s=O(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type===`dashboard`)return 75}),c=O(()=>({width:`${o.value.width}px`,height:`${o.value.height}px`,fontSize:`${o.value.width*.15+6}px`})),l=O(()=>e.strokeWidth??Math.max(kn(o.value.width),6)),u=O(()=>e.gapPosition||e.type===`dashboard`&&`bottom`||void 0),d=O(()=>un(e)),f=O(()=>Object.prototype.toString.call(e.strokeColor)===`[object Object]`),p=O(()=>dn({success:e.success,strokeColor:e.strokeColor})),m=O(()=>({[`${e.prefixCls}-inner`]:!0,[`${e.prefixCls}-circle-gradient`]:f.value}));return()=>{let t=V(En,{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 V(`div`,Z(Z({},r),{},{class:[m.value,r.class],style:[r.style,c.value]}),[o.value.width<=20?V(Se,null,{default:()=>[V(`span`,null,[t])],title:n.default}):V(x,null,[t,n.default?.call(n)])])}}}),jn=s({compatConfig:{MODE:3},name:`Steps`,props:Q(Q({},sn()),{steps:Number,strokeColor:ue(),trailColor:String}),setup(e,t){let{slots:n}=t,r=O(()=>Math.round(e.steps*((e.percent||0)/100))),i=O(()=>e.size??[e.size===`small`?2:14,e.strokeWidth||8]),a=O(()=>fn(i.value,`step`,{steps:e.steps,strokeWidth:e.strokeWidth||8})),o=O(()=>{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(V(`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()=>V(`div`,{class:`${e.prefixCls}-steps-outer`},[o.value,n.default?.call(n)])}}),Mn=new re(`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}}),Nn=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Q(Q({},de(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:Mn,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}}})}},Pn=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`}}}},Fn=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}}}}}},In=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},Ln=le(`Progress`,e=>{let t=e.marginXXS/2,n=ye(e,{progressLineRadius:100,progressInfoTextColor:e.colorText,progressDefaultColor:e.colorInfo,progressRemainingColor:e.colorFillSecondary,progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:`2.4s`});return[Nn(n),Pn(n),Fn(n),In(n)]}),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},zn=s({compatConfig:{MODE:3},name:`AProgress`,inheritAttrs:!1,props:Ce(sn(),{type:`line`,percent:0,showInfo:!0,trailColor:null,size:`default`,strokeLinecap:`round`}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=he(`progress`,e),[o,s]=Ln(i),c=O(()=>Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor),l=O(()=>{let{percent:t=0}=e,n=ln(e);return parseInt(n===void 0?t.toString():n.toString(),10)}),u=O(()=>{let{status:t}=e;return!on.includes(t)&&l.value>=100?`success`:t||`normal`}),d=O(()=>{let{type:t,showInfo:n,size:r}=e,o=i.value;return{[o]:!0,[`${o}-inline-circle`]:t===`circle`&&fn(r,`circle`).width<=20,[`${o}-${t===`dashboard`&&`circle`||t}`]:!0,[`${o}-status-${u.value}`]:!0,[`${o}-show-info`]:n,[`${o}-${r}`]:r,[`${o}-rtl`]:a.value===`rtl`,[s.value]:!0}}),f=O(()=>typeof e.strokeColor==`string`||Array.isArray(e.strokeColor)?e.strokeColor:void 0),p=()=>{let{showInfo:t,format:r,type:a,percent:o,title:s}=e,c=ln(e);if(!t)return null;let l,d=r||n?.format||(e=>`${e}%`),f=a===`line`;return r||n?.format||u.value!==`exception`&&u.value!==`success`?l=d(cn(o),cn(c)):u.value===`exception`?l=V(f?Ne:Pe,null,null):u.value===`success`&&(l=V(f?Fe:je,null,null)),V(`span`,{class:`${i.value}-text`,title:s===void 0&&typeof l==`string`?l:void 0},[l])};return()=>{let{type:t,steps:n,title:s}=e,{class:l}=r,m=Rn(r,[`class`]),h=p(),g;return t===`line`?g=n?V(jn,Z(Z({},e),{},{strokeColor:f.value,prefixCls:i.value,steps:n}),{default:()=>[h]}):V(_n,Z(Z({},e),{},{strokeColor:c.value,prefixCls:i.value,direction:a.value}),{default:()=>[h]}):(t===`circle`||t===`dashboard`)&&(g=V(An,Z(Z({},e),{},{prefixCls:i.value,strokeColor:c.value,progressStatus:u.value}),{default:()=>[h]})),o(V(`div`,Z(Z({role:`progressbar`},m),{},{class:[d.value,l],title:s}),[g]))}}}),Bn=fe(zn),Vn={class:`mh-body`},Hn={class:`mh-name`},Un={class:`mh-role`},Wn={key:0,class:`mh-task`},Gn={class:`mh-hint`},Kn=Object.assign(B(s({__name:`MentionHoverCard`,setup(e){let t=vt(),n=F(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)};U(()=>{document.addEventListener(`mouseover`,o),document.addEventListener(`mouseout`,s)}),c(()=>{r&&clearTimeout(r),document.removeEventListener(`mouseover`,o),document.removeEventListener(`mouseout`,s)});let l=e=>e===`busy`?`var(--tone-live-dot)`:`var(--ink-fainter)`;return(e,r)=>(u(),P(w,{to:`body`},[n.value?(u(),A(`div`,{key:0,class:`mh-card`,style:_({left:`${n.value.x}px`,top:`${n.value.y}px`})},[L(`span`,{class:`aw-avatar is-agent mh-ava`,style:_({"--av":h(xt)(n.value.agent.agentId)})},y(n.value.agent.name.trim().charAt(0).toUpperCase()),5),L(`div`,Vn,[L(`div`,Hn,[L(`span`,{class:`mh-dot`,style:_({background:l(n.value.agent.state)})},null,4),S(` `+y(n.value.agent.name),1)]),L(`div`,Un,y(n.value.agent.role)+` / `+y(n.value.agent.harness)+` / `+y(n.value.agent.state),1),n.value.agent.currentTaskId?(u(),A(`div`,Wn,y(e.$t(`mentionHoverCard.k3o5eky002`))+y(h(t).taskTitle(n.value.channelId,n.value.agent.currentTaskId)),1)):M(``,!0),L(`div`,Gn,y(e.$t(`mentionHoverCard.k1t89ag4001`)),1)])],4)):M(``,!0)]))}}),[[`__scopeId`,`data-v-b043d434`]]),{__name:`WorkshopMentionHoverCard`}),qn={class:`fs`},Jn={class:`addr`},Yn=[`onClick`],Xn={class:`list`},Zn={class:`name`},Qn=[`onClick`],$n={class:`icon`},er={class:`name`},tr={key:1,class:`empty`},nr={class:`hint`},rr=Object.assign(B(s({__name:`FileSelectorModal`,props:{open:{type:Boolean},initialPath:{},title:{}},emits:[`update:open`,`select`],setup(e,{emit:t}){let{t:n}=q(),r=e,a=t,o=ct(),s=F(``),c=F(null),d=F([]),f=F(!1),p=F(``),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){$.warning(t.message??n(`fileSelectorModal.kz99pgv004`));return}s.value=t.data.cwd,c.value=t.data.parent,d.value=t.data.dirs??[],p.value=t.data.cwd}finally{f.value=!1}};D(()=>r.open,e=>{e&&m(r.initialPath||s.value||void 0)});let g=O(()=>{let e=s.value.includes(`\\`)?`\\`:`/`,t=s.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}),_=e=>void m(e),v=()=>{let e=p.value.trim();e&&m(e)},b=()=>{s.value&&(a(`select`,s.value),a(`update:open`,!1))},S=()=>a(`update:open`,!1);return(t,n)=>{let r=Yt,a=an,o=Re,s=ot,m=Xe;return u(),P(m,{open:e.open,title:e.title??`选择工作目录`,width:640,"ok-text":`选择此目录`,"cancel-text":`取消`,"confirm-loading":h(f),onOk:b,onCancel:S},{default:I(()=>[L(`div`,qn,[L(`div`,Jn,[V(a,{class:`crumbs`},{default:I(()=>[(u(!0),A(x,null,l(h(g),(e,t)=>(u(),P(r,{key:e.path+t},{default:I(()=>[L(`a`,{onClick:i(t=>_(e.path),[`prevent`])},y(e.label),9,Yn)]),_:2},1024))),128))]),_:1})]),V(o,{value:h(p),"onUpdate:value":n[0]||=e=>N(p)?p.value=e:null,size:`small`,class:`manual`,placeholder:`输入绝对路径跳转(如 D:\\\\projects\\\\my-app)`,"enter-button":`跳转`,onSearch:v},null,8,[`value`]),V(s,{spinning:h(f)},{default:I(()=>[L(`div`,Xn,[h(c)?(u(),A(`div`,{key:0,class:`row up`,onClick:n[1]||=e=>_(h(c))},[n[2]||=L(`span`,{class:`icon`},`⬆`,-1),L(`span`,Zn,y(t.$t(`fileSelectorModal.kvwnnvn001`)),1)])):M(``,!0),(u(!0),A(x,null,l(h(d),e=>(u(),A(`div`,{key:e.path,class:`row`,onClick:t=>_(e.path),onDblclick:b},[L(`span`,$n,y(e.hasChildren?`📂`:`📁`),1),L(`span`,er,y(e.name),1)],40,Qn))),128)),!h(f)&&h(d).length===0?(u(),A(`div`,tr,y(t.$t(`fileSelectorModal.k268o2o002`)),1)):M(``,!0)])]),_:1},8,[`spinning`]),L(`div`,nr,y(t.$t(`fileSelectorModal.k1rt80dq003`)),1)])]),_:1},8,[`open`,`title`,`confirm-loading`])}}}),[[`__scopeId`,`data-v-c35e0bdd`]]),{__name:`WorkshopFileSelectorModal`}),ir={class:`channel-list`},ar={class:`list-head`},or={class:`head-actions`},sr={key:0,class:`empty`},cr=[`onClick`],lr={class:`row1`},ur={class:`ch-name`},dr=[`title`,`aria-label`,`onClick`],fr=[`aria-label`,`onClick`],pr={class:`row2`},mr={key:0,class:`meta syncing`},hr={key:1,class:`meta`},gr=[`title`,`onClick`],_r={class:`mount-template`},vr={class:`tpl-hint`},yr={class:`ws-hint`},br={class:`ws-hint`},xr={class:`ws-hint`},Sr={class:`ws-hint`},Cr={class:`ws-hint`},wr=Object.assign(B(s({__name:`ChannelSessionList`,props:{wsId:{}},setup(e){let{t}=q(),n=e,r=lt(),a=vt(),o=wt(),s=O(()=>r.workspaces.find(e=>e.id===n.wsId)),c=F([]),f=F([]),p=async()=>{if(typeof window>`u`)return;let[e,t]=await Promise.all([o.listChannels(),o.listChannelTemplates().catch(()=>null)]);c.value=e?.data??[],f.value=t?.data??[]};p();let m=O(()=>(s.value?.channelIds??[]).map(e=>({id:e,meta:c.value.find(t=>t.id===e),entity:a.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:a.busyCount(e),agents:a.agents[e]?.length??0,activeTasks:(a.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length,workspace:t?.workspace??``}))),g=e=>{r.setActiveChannel(n.wsId,e)},_=async e=>{try{await navigator.clipboard.writeText(e),$.success(t(`channelSessionList.kud74vg040`,{p0:e}))}catch{$.error(t(`channelSessionList.krij3gg026`))}},v=e=>e.replace(/[\\/]+$/,``).split(/[\\/]/).pop()??e,b=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i,C=e=>{let t=v(e);return b.test(t)?``:t},w=F(!1),T=k({name:``,description:``,workspace:``,scenarioPrompt:``}),E=F(!1),D=F(!1),j=async()=>{if(!T.name.trim()){$.warning(`Channel 名称必填`);return}E.value=!0;try{let e=(await o.createChannel({name:T.name.trim(),description:T.description||void 0,scenarioPrompt:T.scenarioPrompt.trim()||void 0,workspace:T.workspace.trim()||void 0}))?.data?.channelId;if(!e)throw Error(t(`channelSessionList.k1bg6shc027`));await r.mountChannel(n.wsId,e),w.value=!1,T.name=``,T.description=``,T.workspace=``,T.scenarioPrompt=``,p(),$.success(t(`channelSessionList.kn89jvs028`))}catch(e){$.error(t(`channelSessionList.k1x2th9e041`,{p0:ut(e)}))}finally{E.value=!1}},R=F(),z=F(!1),B=async()=>{if(R.value){z.value=!0;try{let e=(await o.mountChannelTemplate(n.wsId,R.value))?.data;$.success(t(`channelSessionList.kai50qc042`,{p0:e?.agentCount??0})),R.value=void 0,p()}catch(e){let n=e;$.error(ut(n,t(`channelSessionList.k97xi7u029`)))}finally{z.value=!1}}},H=e=>{r.unmountChannel(n.wsId,e).catch(e=>{$.error(ut(e,t(`channelSessionList.k1hgfvdc030`)))})},U=F(!1),G=F(``),K=k({name:``,scenarioPrompt:``,workspace:``}),Y=k({harness:`omp`,provider:``,model:``,effort:``,enabled:!1}),X=F([]),Z=F(`levels`),ee=F(!1),te=O(()=>X.value.map(e=>({value:e.id,label:e.id}))),ne=O(()=>(X.value.find(e=>e.id===Y.provider)?.models??[]).map(e=>({value:e.id,label:e.id}))),re=O(()=>{let e=X.value.find(e=>e.id===Y.provider)?.models.find(e=>e.id===Y.model);return(e?.efforts??[]).map(t=>({value:t,label:t+(e?.defaultEffort===t?`(默认)`:``)}))}),ie=async e=>{ee.value=!0,X.value=[];try{let t=(await o.listHarnessProviders(e))?.data?.catalog;X.value=t?.providers??[],Z.value=t?.effortMode??`unsupported`}catch{}finally{ee.value=!1}},ae=async()=>{Y.provider=``,Y.model=``,Y.effort=``,await ie(Y.harness)},oe=()=>{Y.model=``,Y.effort=``},se=()=>{Y.effort=``},ce=F(!1),le=F(!1),ue=e=>{let t=c.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}Y.enabled=!!n?.model,Y.harness=`omp`,Y.provider=n?.provider??``,Y.model=n?.model??``,Y.effort=n?.effort??``,U.value=!0,Y.enabled&&ie(Y.harness)},de=async()=>{ce.value=!0;try{await o.patchChannel(G.value,{scenarioPrompt:K.scenarioPrompt,workspace:K.workspace.trim()||void 0,llm:Y.enabled&&Y.model?{...Y.provider?{provider:Y.provider}:{},model:Y.model,...Y.effort?{effort:Y.effort}:{}}:null}),$.success(t(`channelSessionList.kvsxlu6031`)),U.value=!1,p()}catch(e){$.error(ut(e))}finally{ce.value=!1}},fe=F(!1),pe=k({name:``,description:``,visibility:`private`}),Q=F(!1),me=()=>{pe.name=t(`channelSessionList.k2hfym5043`,{p0:K.name||`channel`}),pe.description=``,pe.visibility=`private`,fe.value=!0},he=async()=>{if(!pe.name.trim()){$.warning(t(`channelSessionList.k1i0ji0y032`));return}Q.value=!0;try{await o.captureChannelTemplate({channelId:G.value,name:pe.name.trim(),description:pe.description||void 0,visibility:pe.visibility}),$.success(t(`channelSessionList.kjpguxw033`)),fe.value=!1,p()}catch(e){$.error(ut(e))}finally{Q.value=!1}};return(e,t)=>{let n=J,r=Me,a=Ve,o=Oe,c=Be,p=Ee,v=Le,b=De,O=Xe,k=st,F=et,G=Ue,q=He,X=rr;return u(),A(`div`,ir,[L(`div`,ar,[t[30]||=L(`span`,{class:`title`},`Channels`,-1),L(`span`,or,[L(`button`,{class:`head-op im`,type:`button`,title:`Channel 模板中心`,onClick:t[0]||=t=>(`navigateTo`in e?e.navigateTo:h(W))(`/workshop/channel-templates`)},[...t[28]||=[L(`span`,{class:`i-tabler-layout-grid-add im-pop`},null,-1)]]),L(`button`,{class:`head-op im`,type:`button`,title:`新建 Channel`,onClick:t[1]||=e=>w.value=!0},[...t[29]||=[L(`span`,{class:`i-tabler-plus im-pop`},null,-1)]])])]),V(n,null,{default:I(()=>[h(m).length===0?(u(),A(`div`,sr,y(e.$t(`channelSessionList.kkv789s014`)),1)):M(``,!0),(u(!0),A(x,null,l(h(m),n=>(u(),A(`div`,{key:n.id,class:d([`channel-item`,{active:h(s)?.activeChannelId===n.id}]),onClick:e=>g(n.id)},[L(`div`,lr,[L(`span`,{class:d([`dot`,{live:n.activeTasks>0}])},null,2),L(`span`,ur,y(n.name),1),L(`button`,{class:`op im`,type:`button`,title:e.$t(`channelSessionList.kne35ug001`),"aria-label":e.$t(`channelSessionList.kjmldih035`,{p0:n.name}),onClick:i(e=>ue(n.id),[`stop`])},[...t[31]||=[L(`span`,{class:`i-tabler-settings2 im-pop`},null,-1)]],8,dr),L(`button`,{class:`op im`,type:`button`,title:`移出 workspace`,"aria-label":e.$t(`channelSessionList.k1yurooi036`,{p0:n.name}),onClick:i(e=>H(n.id),[`stop`])},[...t[32]||=[L(`span`,{class:`i-tabler-x im-pop`},null,-1)]],8,fr)]),L(`div`,pr,[n.synced?(u(),A(`span`,hr,y(n.agents)+` `+y(e.$t(`channelSessionList.k1ggoa45025`))+` `+y(n.busy)+` / `+y(e.$t(`channelSessionList.k3wcox034`))+` `+y(n.activeTasks),1)):(u(),A(`span`,mr,y(e.$t(`channelSessionList.k1bst7s9015`)),1))]),C(n.workspace)?(u(),A(`button`,{key:0,class:`row2 ws im`,type:`button`,title:e.$t(`channelSessionList.kfe4pzq037`,{p0:n.workspace}),onClick:i(e=>_(n.workspace),[`stop`])},[t[33]||=L(`span`,{class:`i-tabler-folder`},null,-1),S(` `+y(C(n.workspace)),1)],8,gr)):M(``,!0)],10,cr))),128))]),_:1}),L(`div`,_r,[V(r,{value:h(R),"onUpdate:value":t[2]||=e=>N(R)?R.value=e:null,size:`small`,placeholder:`从 Channel 模板挂载`,class:`select`,loading:h(z),options:h(f).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`]),L(`div`,vr,y(e.$t(`channelSessionList.k18ppu31016`)),1)]),V(O,{open:h(w),"onUpdate:open":t[8]||=e=>N(w)?w.value=e:null,title:e.$t(`channelSessionList.k1qjyl6l002`),"confirm-loading":h(E),"ok-text":`创建`,"cancel-text":`取消`,onOk:j},{default:I(()=>[V(b,{layout:`vertical`},{default:I(()=>[V(o,{label:`Channel 名称`},{default:I(()=>[V(a,{value:h(T).name,"onUpdate:value":t[3]||=e=>h(T).name=e},null,8,[`value`])]),_:1}),V(o,{label:e.$t(`channelSessionList.k40gkk003`)},{default:I(()=>[V(a,{value:h(T).description,"onUpdate:value":t[4]||=e=>h(T).description=e},null,8,[`value`])]),_:1},8,[`label`]),V(o,{label:e.$t(`channelSessionList.k1wj4f38004`)},{extra:I(()=>[L(`span`,yr,y(e.$t(`channelSessionList.k1u3zsr5017`)),1)]),default:I(()=>[V(c,{value:h(T).scenarioPrompt,"onUpdate:value":t[5]||=e=>h(T).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.k1098zie005`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),V(o,{label:e.$t(`channelSessionList.kmgv4h5006`)},{extra:I(()=>[L(`span`,br,y(e.$t(`channelSessionList.kucq30k019`)),1)]),default:I(()=>[V(v,{compact:``},{default:I(()=>[V(a,{value:h(T).workspace,"onUpdate:value":t[6]||=e=>h(T).workspace=e,style:{width:`70%`},placeholder:`留空 = data/workspaces/<channelId>`,"allow-clear":``,onPressEnter:j},null,8,[`value`]),V(p,{style:{width:`30%`},onClick:t[7]||=e=>D.value=!0},{default:I(()=>[S(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),V(o,null,{default:I(()=>[L(`span`,xr,y(e.$t(`channelSessionList.k1ful761020`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),V(O,{open:h(U),"onUpdate:open":t[19]||=e=>N(U)?U.value=e:null,title:e.$t(`channelSessionList.k1pmemvt039`,{p0:h(K).name}),"confirm-loading":h(ce),"ok-text":`保存`,"cancel-text":`取消`,onOk:de},{default:I(()=>[V(b,{layout:`vertical`},{default:I(()=>[V(o,{label:e.$t(`channelSessionList.k1i8q46x007`)},{default:I(()=>[V(c,{value:h(K).scenarioPrompt,"onUpdate:value":t[9]||=e=>h(K).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.ku3ugac008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),V(o,{label:e.$t(`channelSessionList.k67dzev009`)},{default:I(()=>[V(v,{compact:``},{default:I(()=>[V(a,{value:h(K).workspace,"onUpdate:value":t[10]||=e=>h(K).workspace=e,style:{width:`70%`},placeholder:`data/workspaces/<channelId>`,"allow-clear":``},null,8,[`value`]),V(p,{style:{width:`30%`},onClick:t[11]||=e=>le.value=!0},{default:I(()=>[S(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),V(o,{label:`默认模型(可选;留空用各 Harness 默认)`},{default:I(()=>[V(F,null,{default:I(()=>[V(k,{checked:h(Y).enabled,"onUpdate:checked":t[12]||=e=>h(Y).enabled=e,size:`small`,onChange:t[13]||=e=>{e&&ie(h(Y).harness)}},null,8,[`checked`]),V(r,{value:h(Y).harness,"onUpdate:value":t[14]||=e=>h(Y).harness=e,style:{width:`130px`},options:[{value:`omp`,label:`omp`},{value:`codex`,label:`codex`},{value:`opencode`,label:`opencode`},{value:`dsh`,label:`dsh`}],disabled:!h(Y).enabled,onChange:ae},null,8,[`value`,`disabled`]),V(r,{value:h(Y).provider,"onUpdate:value":t[15]||=e=>h(Y).provider=e,style:{width:`170px`},placeholder:h(ee)?`目录加载中…`:`provider`,options:h(te),disabled:!h(Y).enabled||h(ee),"show-search":``,onChange:oe},null,8,[`value`,`placeholder`,`options`,`disabled`]),V(r,{value:h(Y).model,"onUpdate:value":t[16]||=e=>h(Y).model=e,style:{width:`210px`},placeholder:`model`,options:h(ne),disabled:!h(Y).enabled||!h(Y).provider,"show-search":``,onChange:se},null,8,[`value`,`options`,`disabled`]),h(Z)===`levels`?(u(),P(r,{key:0,value:h(Y).effort,"onUpdate:value":t[17]||=e=>h(Y).effort=e,style:{width:`130px`},placeholder:`effort(可选)`,options:h(re),disabled:!h(Y).enabled||!h(Y).model,"allow-clear":``},null,8,[`value`,`options`,`disabled`])):h(Z)===`freetext`?(u(),P(a,{key:1,value:h(Y).effort,"onUpdate:value":t[18]||=e=>h(Y).effort=e,style:{width:`130px`},placeholder:`variant(可选)`,disabled:!h(Y).enabled||!h(Y).model,"allow-clear":``},null,8,[`value`,`disabled`])):M(``,!0)]),_:1})]),_:1}),V(o,null,{default:I(()=>[V(p,{size:`small`,onClick:me},{default:I(()=>[t[34]||=L(`span`,{class:`i-tabler-template`},null,-1),S(` `+y(e.$t(`channelSessionList.k6kpql010`)),1)]),_:1}),L(`span`,Sr,y(e.$t(`channelSessionList.k1x6kznr021`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),V(O,{open:h(fe),"onUpdate:open":t[23]||=e=>N(fe)?fe.value=e:null,title:e.$t(`channelSessionList.k6kpql010`),"confirm-loading":h(Q),"ok-text":`保存模板`,"cancel-text":`取消`,onOk:he},{default:I(()=>[V(b,{layout:`vertical`},{default:I(()=>[V(o,{label:e.$t(`channelSessionList.k1f55q76011`)},{default:I(()=>[V(a,{value:h(pe).name,"onUpdate:value":t[20]||=e=>h(pe).name=e},null,8,[`value`])]),_:1},8,[`label`]),V(o,{label:e.$t(`channelSessionList.k40gkk003`)},{default:I(()=>[V(a,{value:h(pe).description,"onUpdate:value":t[21]||=e=>h(pe).description=e},null,8,[`value`])]),_:1},8,[`label`]),V(o,{label:e.$t(`channelSessionList.k3lrqn0012`)},{default:I(()=>[V(q,{value:h(pe).visibility,"onUpdate:value":t[22]||=e=>h(pe).visibility=e},{default:I(()=>[V(G,{value:`private`},{default:I(()=>[S(y(e.$t(`channelSessionList.k1otvrfv022`)),1)]),_:1}),V(G,{value:`public`},{default:I(()=>[S(y(e.$t(`channelSessionList.k1cc399s023`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),V(o,null,{default:I(()=>[L(`span`,Cr,y(e.$t(`channelSessionList.kl9btf7024`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),V(X,{open:h(D),"onUpdate:open":t[24]||=e=>N(D)?D.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":h(T).workspace||void 0,onSelect:t[25]||=e=>{h(T).workspace=e}},null,8,[`open`,`title`,`initial-path`]),V(X,{open:h(le),"onUpdate:open":t[26]||=e=>N(le)?le.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":h(K).workspace||void 0,onSelect:t[27]||=e=>{h(K).workspace=e}},null,8,[`open`,`title`,`initial-path`])])}}}),[[`__scopeId`,`data-v-b6386095`]]),{__name:`WorkshopChannelSessionList`}),Tr={class:`live-bar`},Er={key:0,class:`live-idle`},Dr={class:`idle-text`},Or=[`title`],kr={class:`live-ava`},Ar={class:`live-text`},jr={class:`live-name`},Mr={class:`live-detail`},Nr=[`aria-expanded`,`title`],Pr={class:`live-pop`},Fr={class:`live-pop-title`},Ir=[`onClick`],Lr={class:`live-pop-text`},Rr={class:`live-pop-name`},zr={class:`live-pop-detail`},Br=Object.assign(B(s({__name:`LiveAgentBar`,props:{wsId:{}},emits:[`openAgent`],setup(e,{emit:t}){let{t:n}=q(),r=e,i=t,a=lt(),o=vt(),s=O(()=>a.workspaces.find(e=>e.id===r.wsId)),c=O(()=>{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}),d=F(!1),f=e=>e.trim().charAt(0).toUpperCase(),p=e=>{d.value=!1,i(`openAgent`,{channelId:e.channelId,agentId:e.agentId})};return(e,t)=>(u(),A(`div`,Tr,[h(c).length===0?(u(),A(`div`,Er,[t[3]||=L(`span`,{class:`idle-dot`,"aria-hidden":`true`},null,-1),L(`span`,Dr,y(e.$t(`liveAgentBar.kr4bxgp001`)),1)])):(u(),A(x,{key:1},[L(`button`,{type:`button`,class:`live-main`,title:e.$t(`liveAgentBar.kh66fan003`,{p0:h(c)[0].name}),onClick:t[0]||=e=>p(h(c)[0])},[L(`span`,kr,[L(`span`,{class:`aw-avatar is-agent live-avatar`,style:_({"--av":h(xt)(h(c)[0].agentId)})},y(f(h(c)[0].name)),5),t[4]||=L(`span`,{class:`live-pip`,"aria-hidden":`true`},null,-1)]),L(`span`,Ar,[L(`span`,jr,y(h(c)[0].name),1),L(`span`,Mr,y(h(c)[0].taskLabel),1)])],8,Or),h(c).length>1?(u(),A(`button`,{key:0,type:`button`,class:`live-more`,"aria-haspopup":`true`,"aria-expanded":h(d),title:e.$t(`liveAgentBar.k1a39d92004`,{p0:h(c).length-1}),onClick:t[1]||=e=>d.value=!h(d)},` +`+y(h(c).length-1),9,Nr)):M(``,!0),h(d)&&h(c).length>1?(u(),A(x,{key:1},[L(`div`,{class:`live-backdrop`,onClick:t[2]||=e=>d.value=!1}),L(`div`,Pr,[L(`div`,Fr,y(e.$t(`liveAgentBar.k1sf0ymy002`))+` `+y(h(c).length),1),(u(!0),A(x,null,l(h(c),e=>(u(),A(`button`,{key:e.agentId,type:`button`,class:`live-pop-item`,onClick:t=>p(e)},[L(`span`,{class:`aw-avatar is-agent live-avatar-sm`,style:_({"--av":h(xt)(e.agentId)})},y(f(e.name)),5),L(`span`,Lr,[L(`span`,Rr,y(e.name),1),L(`span`,zr,y(e.taskLabel),1)]),t[5]||=L(`span`,{class:`pop-dot`,"aria-hidden":`true`},null,-1)],8,Ir))),128))])],64)):M(``,!0)],64))]))}}),[[`__scopeId`,`data-v-865fed94`]]),{__name:`WorkshopLiveAgentBar`}),Vr=[`aria-label`],Hr=Object.assign(B(s({__name:`PaneSplitter`,props:{label:{default:``},variant:{default:`divider`}},emits:[`resize`,`reset`],setup(e,{emit:t}){let{t:n}=q(),r=e,i=O(()=>r.label||n(`paneSplitter.kejk1i9001`)),a=t,o=F(!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)},f=e=>{if(o.value){o.value=!1,document.body.classList.remove(`aw-pane-dragging`);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},p=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)=>(u(),A(`div`,{class:d([`pane-splitter`,[e.variant,{dragging:h(o)}]]),role:`separator`,"aria-orientation":`vertical`,"aria-label":h(i),tabindex:`0`,onPointerdown:c,onPointermove:l,onPointerup:f,onPointercancel:f,onDblclick:n[0]||=e=>a(`reset`),onKeydown:p},[...n[1]||=[L(`span`,{class:`grip`},null,-1)]],42,Vr))}}),[[`__scopeId`,`data-v-4f787ef8`]]),{__name:`WorkshopPaneSplitter`}),Ur=F(null);function Wr(){return{quoteText:Ur,quote:e=>{Ur.value=e}}}var Gr={key:0,class:`stream-covered`},Kr={class:`stream-text prose`},qr=[`innerHTML`],Jr={key:0,class:`cursor`},Yr={key:2,class:`stream-pending`},Xr=Object.assign(B(s({__name:`ClusterStream`,props:{block:{}},setup(e){let t=e,n=vt(),r=p(`aw:open-agent`,()=>{}),i=O(()=>t.block.events[0]?.channelId??``),a=O(()=>(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=O(()=>gt(t.block)),l=O(()=>Ct(t.block)),f=F(0),m=null,h=()=>{m!==null&&(cancelAnimationFrame(m),m=null)},g=()=>{let e=s.value.length;if(f.value>=e){m=null;return}let t=e-f.value,n=Math.max(24,Math.min(1024,Math.ceil(t/16)));f.value=Math.min(e,f.value+n),m=requestAnimationFrame(g)},_=()=>{m===null&&(m=requestAnimationFrame(g))},v=()=>typeof document<`u`&&document.hidden;D([s,()=>t.block.settled],([e,t])=>{if(!e){f.value=0;return}if(t||e.length-f.value>4e3||v()){h(),f.value=e.length;return}f.value>e.length&&(f.value=e.length),f.value<e.length&&_()},{immediate:!0});let b=()=>{document.hidden||f.value<s.value.length&&(h(),_())};U(()=>{document.addEventListener(`visibilitychange`,b),t.block.settled||v()?f.value=s.value.length:(f.value=Math.min(f.value,s.value.length),_())}),c(()=>{h(),document.removeEventListener(`visibilitychange`,b)});let x=O(()=>mt(s.value.length,f.value,l.value)),S=O(()=>pt(s.value.slice(0,f.value),a.value));return(t,n)=>e.block.coveredBy?(u(),A(`div`,Gr,[n[0]||=L(`span`,{class:`i-tabler-corner-right-up`},null,-1),L(`span`,null,y(t.$t(`clusterStream.kpk9wff001`)),1)])):s.value?(u(),A(`div`,{key:1,class:d([`stream-bubble`,{settled:e.block.settled}]),onClick:o},[L(`div`,Kr,[L(`span`,{innerHTML:S.value},null,8,qr),x.value?(u(),A(`span`,Jr,`▋`)):M(``,!0)])],2)):l.value?(u(),A(`div`,Yr,[...n[1]||=[L(`span`,{class:`pending-dot`},null,-1),L(`span`,{class:`pending-dot`},null,-1),L(`span`,{class:`pending-dot`},null,-1)]])):M(``,!0)}}),[[`__scopeId`,`data-v-89d25e3d`]]),{__name:`WorkshopBlocksClusterStream`}),Zr={class:`tool-cluster`},Qr={class:`tool-time aw-mono`},$r={class:`tool-name`},ei=[`title`],ti={key:1,class:`tool-kind`},ni=4,ri=Object.assign(B(s({__name:`ClusterTool`,props:{block:{}},setup(e){let t=e,n=O(()=>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:Et(e.at),name:n,args:r,meta:yt[n]??{icon:`i-tabler-tool`,kind:`native`}}})),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,ni)),a=O(()=>n.value.length>ni);return(e,t)=>(u(),A(`div`,Zr,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:d([`tool-line`,e.meta.kind])},[L(`time`,Qr,y(e.time),1),t[1]||=L(`span`,{class:`tool-node`},null,-1),L(`span`,{class:d([`tool-icon`,e.meta.icon])},null,2),L(`span`,$r,y(e.name),1),e.args?(u(),A(`span`,{key:0,class:`tool-args`,title:e.args},y(e.args),9,ei)):M(``,!0),e.meta.kind===`host`?(u(),A(`span`,ti,`harness`)):M(``,!0)],2))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-0bef4195`]]),{__name:`WorkshopBlocksClusterTool`}),ii={class:`status-cluster`},ai=[`aria-expanded`],oi={class:`st-label`},si={class:`st-count`},ci={key:0,class:`st-preview`},li={key:0,class:`st-detail`},ui={class:`st-text`},di=Object.assign(B(s({__name:`ClusterStatus`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,text:String(e.payload.text??``)}))),r=O(()=>{let e=n.value[n.value.length-1];if(!e)return`(空)`;let t=(e.text.split(`
7
7
  `).find(e=>e.trim().length>0)??``).replace(/\s+/g,` `).trim();return t.length>120?`${t.slice(0,120)}…`:t||`(空)`}),i=F(!1),a=()=>{i.value=!i.value};return(e,t)=>(u(),A(`div`,ii,[L(`button`,{class:`st-toggle`,"aria-expanded":i.value,onClick:a},[L(`span`,{class:d([`chev`,{open:i.value}])},`▸`,2),L(`span`,oi,y(e.$t(`clusterStatus.k1fpy8te001`)),1),L(`span`,si,y(n.value.length),1),i.value?M(``,!0):(u(),A(`span`,ci,y(r.value),1))],8,ai),i.value?(u(),A(`div`,li,[(u(!0),A(x,null,l(n.value,e=>(u(),A(`div`,{key:e.seq,class:`st-line`},[t[0]||=L(`span`,{class:`st-mark`},`·`,-1),L(`pre`,ui,y(e.text),1)]))),128))])):M(``,!0)]))}}),[[`__scopeId`,`data-v-1da3d4ae`]]),{__name:`WorkshopBlocksClusterStatus`}),fi={class:`life-cluster`},pi=[`data-state`],mi={key:1,class:`life-row`},hi={class:`life-state`},gi=[`title`],_i={class:`life-meta`},vi={key:1,class:`life-count`},yi={key:2,class:`life-row`},bi=Object.assign(B(s({__name:`ClusterLife`,props:{block:{}},setup(e){let t=e,n=vt(),r=O(()=>{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=O(()=>{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)=>(u(),A(`div`,fi,[r.value?(u(),A(`span`,{key:0,class:`life-dot`,"data-state":r.value.state},null,8,pi)):M(``,!0),r.value?(u(),A(`div`,mi,[L(`span`,hi,y(r.value.state),1),i.value?(u(),A(`span`,{key:0,class:`life-task`,title:r.value.currentTaskId??``},`「`+y(i.value)+`」`,9,gi)):M(``,!0),L(`span`,_i,y(e.$t(`clusterLife.k498bf002`))+` `+y(r.value.queued)+` · 完成 `+y(r.value.completed),1),r.value.transitions>1?(u(),A(`span`,vi,y(r.value.transitions)+` `+y(e.$t(`clusterLife.k3pi5z1003`)),1)):M(``,!0)])):(u(),A(`span`,yi,y(e.$t(`clusterLife.k1xthifv001`)),1))]))}}),[[`__scopeId`,`data-v-effa619b`]]),{__name:`WorkshopBlocksClusterLife`}),xi={class:`chat-meta`},Si=[`title`],Ci=[`data-agent-id`,`title`],wi={key:2,class:`to-arrow`,"aria-hidden":`true`},Ti=[`data-agent-id`,`title`],Ei={key:4,class:`who-broadcast`},Di=[`data-tone`],Oi=[`title`],ki=[`title`],Ai={class:`chat-time aw-mono`},ji=[`innerHTML`],Mi=4,Ni=Object.assign(B(s({__name:`ClusterRoute`,props:{block:{}},setup(e){let{t}=q(),n=e,r=vt(),i=p(`aw:open-agent`,()=>{}),a=O(()=>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
8
  `).trim(),time:Et(e.at),requireReply:r[`x-aw-require-reply`]===`true`,inReplyTo:typeof d==`string`?d:``}})),o=O(()=>n.block.events[0]?.channelId??``),s=O(()=>(r.agents[o.value]??[]).map(e=>({agentId:e.agentId,name:e.name}))),c=e=>e?r.agentName(o.value,e):``,f=e=>e.trim().charAt(0).toUpperCase(),m=O(()=>a.value.map(e=>pt(e.text,s.value))),g=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})},v=F(!1),b=O(()=>v.value?a.value:a.value.slice(0,Mi)),C=O(()=>v.value?m.value:m.value.slice(0,Mi)),w=O(()=>a.value.length>Mi);return(e,t)=>(u(),A(`div`,{class:`route-cluster`,onClick:g},[(u(!0),A(x,null,l(b.value,(n,r)=>(u(),A(`div`,{key:n.seq,class:`chat-row`},[L(`div`,xi,[n.fromLabel&&!n.from?(u(),A(`span`,{key:0,class:`human-chip`,title:e.$t(`clusterRoute.k12448jn010`,{p0:n.fromLabel})},[t[1]||=L(`span`,{class:`i-tabler-user`},null,-1),S(` `+y(n.fromLabel),1)],8,Si)):M(``,!0),n.from?(u(),A(`button`,{key:1,type:`button`,class:`who-pill from`,"data-agent-id":n.from,title:e.$t(`clusterRoute.khsfl59011`,{p0:c(n.from)})},[L(`span`,{class:`aw-avatar is-agent who-ava`,style:_({"--av":h(xt)(n.from)})},y(f(c(n.from))),5),S(` @`+y(c(n.from)),1)],8,Ci)):M(``,!0),n.to?(u(),A(`span`,wi,`→`)):M(``,!0),n.to?(u(),A(`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,Ti)):(u(),A(`span`,Ei,y(e.$t(`clusterRoute.kyza1ya002`)),1)),L(`span`,{class:`route-badge`,"data-tone":n.kind.tone},[L(`span`,{class:d(n.kind.icon)},null,2),S(y(n.kind.label),1)],8,Di),n.requireReply?(u(),A(`span`,{key:5,class:`route-badge receipt`,title:e.$t(`clusterRoute.kfbpe32001`)},[t[2]||=L(`span`,{class:`i-tabler-message-reply`},null,-1),S(y(e.$t(`clusterRoute.k3wn89c003`)),1)],8,Oi)):M(``,!0),n.inReplyTo?(u(),A(`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,ki)):M(``,!0),L(`span`,Ai,y(n.time),1)]),n.text?(u(),A(`div`,{key:0,class:`chat-body prose`,innerHTML:C.value[r]},null,8,ji)):M(``,!0)]))),128)),w.value?(u(),A(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>v.value=!v.value},y(v.value?e.$t(`clusterRoute.k40p82004`):e.$t(`clusterRoute.k13ewgum013`,{p0:a.value.length})),1)):M(``,!0)]))}}),[[`__scopeId`,`data-v-9422b1df`]]),{__name:`WorkshopBlocksClusterRoute`}),Pi={class:`task-cluster`},Fi={key:0,class:`chain-arrow`},Ii=[`data-state`,`title`],Li={class:`state-code`},Ri={class:`task-title`},zi={key:0,class:`task-assignee`},Bi=Object.assign(B(s({__name:`ClusterTask`,props:{block:{}},setup(e){let{t}=q(),n=e,r=vt(),i=O(()=>n.block.events[0]?.channelId??``),a=O(()=>{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=O(()=>{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=O(()=>{let e=n.block.events.find(e=>e.type===`task.status`&&e.payload.assigneeId);return e?r.agentName(i.value,e.payload.assigneeId):``}),c=O(()=>{let e=0;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e}),d=O(()=>{let e=-1;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e>=0}),f={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)`}},p=e=>f[e]??f.SUBMITTED,m={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`)},h=e=>m[e]??e;return(e,t)=>{let n=Bn;return u(),A(`div`,Pi,[(u(!0),A(x,null,l(a.value,(t,n)=>(u(),A(x,{key:t},[n>0?(u(),A(`span`,Fi,`→`)):M(``,!0),L(`span`,{class:`state-chip`,style:_({background:p(t).bg}),"data-state":t,title:e.$t(`clusterTask.kfwdcd4008`,{p0:t})},[L(`span`,{class:`state-dot`,style:_({background:p(t).dot})},null,4),S(y(h(t)),1),L(`span`,Li,y(t),1)],12,Ii)],64))),128)),L(`span`,Ri,y(o.value),1),s.value?(u(),A(`span`,zi,`→ `+y(s.value),1)):M(``,!0),d.value?(u(),P(n,{key:1,percent:c.value,size:`small`,class:`progress`,"show-info":!0},null,8,[`percent`])):M(``,!0)])}}}),[[`__scopeId`,`data-v-cdaa9d8e`]]),{__name:`WorkshopBlocksClusterTask`}),Vi={class:`artifact-head`},Hi={class:`tag`},Ui={class:`name`},Wi=Object.assign(B(s({__name:`ArtifactCard`,props:{artifact:{}},setup(e){let t=e,n=O(()=>t.artifact.parts.map(e=>e.text??``).join(`
9
- `).trim()),r=O(()=>{let e=n.value;if(!e)return!1;try{return JSON.parse(e),!0}catch{return!1}}),i=O(()=>t.artifact.name===`deliverable`||t.artifact.name===`summary`||t.artifact.name===`result`||t.artifact.name===`goal-summary`),a=O(()=>{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`}}),o=F(!1),s=O(()=>{let e=n.value;return e.length>200&&!o.value?`${e.slice(0,200)}…`:e}),c=F(!1),l=async()=>{try{await navigator.clipboard.writeText(n.value),c.value=!0,setTimeout(()=>{c.value=!1},1500)}catch{}};return(t,n)=>{let f=Ee;return u(),A(`div`,{class:d([`artifact-card`,{deliverable:h(i)}])},[L(`div`,Vi,[L(`span`,Hi,[L(`span`,{class:d(h(a))},null,2)]),L(`span`,Ui,y(e.artifact.name??`artifact`),1),V(f,{size:`small`,type:`text`,class:`op`,onClick:n[0]||=e=>o.value=!h(o)},{default:I(()=>[S(y(h(o)?t.$t(`artifactCard.k40p82001`):t.$t(`artifactCard.k3yu62003`)),1)]),_:1}),V(f,{size:`small`,type:`text`,class:`op`,onClick:l},{default:I(()=>[S(y(h(c)?t.$t(`artifactCard.k3n6o1m002`):t.$t(`artifactCard.k3y694004`)),1)]),_:1})]),L(`pre`,{class:d([`artifact-body`,{json:h(r)}])},y(h(s)||`(空)`),3)],2)}}}),[[`__scopeId`,`data-v-1699711f`]]),{__name:`WorkshopArtifactCard`}),Gi={class:`artifact-cluster`},Ki={key:0,class:`dup-note`},qi=Object.assign(B(s({__name:`ClusterArtifact`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.filter(e=>e.type===`a2a.artifact`).map(e=>e.payload.artifact)),r=O(()=>!t.block.dupStream),i=F(t.block.dupStream);return(t,a)=>{let o=Wi;return u(),A(`div`,Gi,[e.block.dupStream?(u(),A(`div`,Ki,[a[1]||=L(`span`,{class:`i-tabler-copy`},null,-1),L(`span`,null,y(t.$t(`clusterArtifact.kyh87lw001`)),1),L(`button`,{class:`mini-btn`,onClick:a[0]||=e=>i.value=!i.value},y(i.value?t.$t(`clusterArtifact.k49les002`):`查看`),1)])):M(``,!0),r.value||i.value?(u(!0),A(x,{key:1},l(n.value,(e,t)=>(u(),P(o,{key:t,artifact:e},null,8,[`artifact`]))),128)):M(``,!0)])}}}),[[`__scopeId`,`data-v-407440f2`]]),{__name:`WorkshopBlocksClusterArtifact`}),Ji={class:`member-cluster`},Yi=[`data-op`],Xi={class:`line-text`},Zi=8,Qi=Object.assign(B(s({__name:`ClusterMember`,props:{block:{}},setup(e){let t=e,n=vt(),r=O(()=>t.block.events[0]?.channelId??``),i=O(()=>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=F(!1),o=O(()=>a.value?i.value:i.value.slice(0,Zi)),s=O(()=>i.value.length>Zi);return(e,t)=>(u(),A(`div`,Ji,[(u(!0),A(x,null,l(o.value,e=>(u(),A(`div`,{key:e.seq,class:`member-line`,"data-op":e.op},[t[1]||=L(`span`,{class:`i-tabler-users`},null,-1),L(`span`,Xi,y(e.text),1)],8,Yi))),128)),s.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-0647f285`]]),{__name:`WorkshopBlocksClusterMember`}),$i={class:`memory-cluster`},ea=[`data-scope`],ta={class:`mem-title`},na=8,ra=Object.assign(B(s({__name:`ClusterMemory`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,scope:String(e.payload.scope),title:String(e.payload.title)}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,na)),a=O(()=>n.value.length>na);return(e,t)=>(u(),A(`div`,$i,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`memory-line`},[t[1]||=L(`span`,{class:`i-tabler-bookmark`},null,-1),L(`span`,{class:`mem-scope`,"data-scope":e.scope},y(e.scope),9,ea),L(`span`,ta,y(e.title),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-9ba9f01b`]]),{__name:`WorkshopBlocksClusterMemory`}),ia={class:`error-cluster`},aa={key:0,class:`error-code`},oa={class:`error-text`},sa=3,ca=Object.assign(B(s({__name:`ClusterError`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,code:String(e.payload.code??``),text:String(e.payload.message??``)}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,sa)),a=O(()=>n.value.length>sa);return(e,t)=>(u(),A(`div`,ia,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`error-line`},[t[1]||=L(`span`,{class:`i-tabler-alert-triangle`},null,-1),e.code?(u(),A(`span`,aa,y(e.code),1)):M(``,!0),L(`span`,oa,y(e.text),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-22804f20`]]),{__name:`WorkshopBlocksClusterError`}),la={class:`other-cluster`},ua={class:`other-type`},da=6,fa=Object.assign(B(s({__name:`ClusterOther`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,type:e.type}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,da)),a=O(()=>n.value.length>da);return(e,t)=>(u(),A(`div`,la,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`other-row`},[t[1]||=L(`span`,{class:`i-tabler-dots`},null,-1),L(`span`,ua,y(e.type),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-5f033e18`]]),{__name:`WorkshopBlocksClusterOther`}),pa=[`data-kind`,`data-tier`,`data-settled`,`data-covered`,`data-seq`,`data-events`,`data-folded`],ma=[`title`],ha={key:0,class:`i-tabler-user system-icon`},ga={key:1,class:`i-tabler-cpu system-icon`},_a=[`title`],va={class:`eb-main`},ya={class:`block-head`},ba={class:`agent-name`},xa={key:0,class:`role-label`},Sa=[`title`],Ca={class:`head-right`},wa={key:0,class:`running-chip`},Ta=[`title`],Ea={key:2,class:`merged`},Da={class:`kind-chip`},Oa={class:`time`},ka={key:2,class:`eb-toolbar`},Aa=[`title`],ja=[`title`],Ma={key:0,class:`ghost-time`},Na=Object.assign(B(s({__name:`EventBlock`,props:{block:{},turnStart:{type:Boolean},compact:{type:Boolean},enterStage:{}},setup(t){let n=t,r=vt(),{quote:i}=Wr(),a=O(()=>n.block.events[0]?.channelId??``),o=O(()=>Et(n.block.firstAt)),s=O(()=>{let e=n.block.agentId;return e?r.agentName(a.value,e):`system`}),c=O(()=>{if(n.block.agentId)return null;let e=n.block.events[0];if(!e||e.type!==`a2a.message`)return null;let t=(e.payload.metadata??{})[`x-aw-from-label`];return typeof t==`string`&&t?t:null}),l=O(()=>{let e=n.block.agentId;return e?(r.agentName(a.value,e)||e).charAt(0).toUpperCase():``}),f=O(()=>n.block.agentId?xt(n.block.agentId):void 0),m=O(()=>dt[n.block.kind]),g=p(`aw:open-agent`,()=>{}),v=()=>{n.block.agentId&&g({channelId:a.value,agentId:n.block.agentId})},C=O(()=>{let e=n.block.agentId;if(!e)return``;let t=(r.agents[a.value]??[]).find(t=>t.agentId===e);if(!t)return`agent`;let i=t.role===`lead`?`lead`:`worker`,o=t.harness??``;return o?`${i} · ${o}`:i}),w=O(()=>ft(n.block.events)),T=O(()=>{let e=n.block.agentId;return e?(r.agents[a.value]??[]).find(t=>t.agentId===e)?.state??null:null}),E=O(()=>n.block.kind===`stream`&&!n.block.settled&&T.value===`busy`),D=O(()=>n.block.events[0]?.seq??0),k={stream:Xr,tool:ri,status:di,life:bi,route:Ni,task:Bi,artifact:qi,member:Qi,memory:ra,error:ca,other:fa},j=O(()=>k[n.block.kind]??fa),N=O(()=>n.block.kind===`stream`?gt(n.block).trim()||null:n.block.kind===`route`&&n.block.events.map(e=>(e.payload.parts??[]).map(e=>e.text??``).join(`
9
+ `).trim()),r=O(()=>{let e=n.value;if(!e)return!1;try{return JSON.parse(e),!0}catch{return!1}}),i=O(()=>t.artifact.name===`deliverable`||t.artifact.name===`summary`||t.artifact.name===`result`||t.artifact.name===`goal-summary`),a=O(()=>{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`}}),o=F(!1),s=O(()=>{let e=n.value;return e.length>200&&!o.value?`${e.slice(0,200)}…`:e}),c=F(!1),l=async()=>{try{await navigator.clipboard.writeText(n.value),c.value=!0,setTimeout(()=>{c.value=!1},1500)}catch{}};return(t,n)=>{let f=Ee;return u(),A(`div`,{class:d([`artifact-card`,{deliverable:h(i)}])},[L(`div`,Vi,[L(`span`,Hi,[L(`span`,{class:d(h(a))},null,2)]),L(`span`,Ui,y(e.artifact.name??`artifact`),1),V(f,{size:`small`,type:`text`,class:`op`,onClick:n[0]||=e=>o.value=!h(o)},{default:I(()=>[S(y(h(o)?t.$t(`artifactCard.k40p82001`):t.$t(`artifactCard.k3yu62003`)),1)]),_:1}),V(f,{size:`small`,type:`text`,class:`op`,onClick:l},{default:I(()=>[S(y(h(c)?t.$t(`artifactCard.k3n6o1m002`):t.$t(`artifactCard.k3y694004`)),1)]),_:1})]),L(`pre`,{class:d([`artifact-body`,{json:h(r)}])},y(h(s)||`(空)`),3)],2)}}}),[[`__scopeId`,`data-v-1699711f`]]),{__name:`WorkshopArtifactCard`}),Gi={class:`artifact-cluster`},Ki={key:0,class:`dup-note`},qi=Object.assign(B(s({__name:`ClusterArtifact`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.filter(e=>e.type===`a2a.artifact`).map(e=>e.payload.artifact)),r=O(()=>!t.block.dupStream),i=F(t.block.dupStream);return(t,a)=>{let o=Wi;return u(),A(`div`,Gi,[e.block.dupStream?(u(),A(`div`,Ki,[a[1]||=L(`span`,{class:`i-tabler-copy`},null,-1),L(`span`,null,y(t.$t(`clusterArtifact.kyh87lw001`)),1),L(`button`,{class:`mini-btn`,onClick:a[0]||=e=>i.value=!i.value},y(i.value?t.$t(`clusterArtifact.k49les002`):`查看`),1)])):M(``,!0),r.value||i.value?(u(!0),A(x,{key:1},l(n.value,(e,t)=>(u(),P(o,{key:t,artifact:e},null,8,[`artifact`]))),128)):M(``,!0)])}}}),[[`__scopeId`,`data-v-8e7bf1b1`]]),{__name:`WorkshopBlocksClusterArtifact`}),Ji={class:`member-cluster`},Yi=[`data-op`],Xi={class:`line-text`},Zi=8,Qi=Object.assign(B(s({__name:`ClusterMember`,props:{block:{}},setup(e){let t=e,n=vt(),r=O(()=>t.block.events[0]?.channelId??``),i=O(()=>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=F(!1),o=O(()=>a.value?i.value:i.value.slice(0,Zi)),s=O(()=>i.value.length>Zi);return(e,t)=>(u(),A(`div`,Ji,[(u(!0),A(x,null,l(o.value,e=>(u(),A(`div`,{key:e.seq,class:`member-line`,"data-op":e.op},[t[1]||=L(`span`,{class:`i-tabler-users`},null,-1),L(`span`,Xi,y(e.text),1)],8,Yi))),128)),s.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-0647f285`]]),{__name:`WorkshopBlocksClusterMember`}),$i={class:`memory-cluster`},ea=[`data-scope`],ta={class:`mem-title`},na=8,ra=Object.assign(B(s({__name:`ClusterMemory`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,scope:String(e.payload.scope),title:String(e.payload.title)}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,na)),a=O(()=>n.value.length>na);return(e,t)=>(u(),A(`div`,$i,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`memory-line`},[t[1]||=L(`span`,{class:`i-tabler-bookmark`},null,-1),L(`span`,{class:`mem-scope`,"data-scope":e.scope},y(e.scope),9,ea),L(`span`,ta,y(e.title),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-9ba9f01b`]]),{__name:`WorkshopBlocksClusterMemory`}),ia={class:`error-cluster`},aa={key:0,class:`error-code`},oa={class:`error-text`},sa=3,ca=Object.assign(B(s({__name:`ClusterError`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,code:String(e.payload.code??``),text:String(e.payload.message??``)}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,sa)),a=O(()=>n.value.length>sa);return(e,t)=>(u(),A(`div`,ia,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`error-line`},[t[1]||=L(`span`,{class:`i-tabler-alert-triangle`},null,-1),e.code?(u(),A(`span`,aa,y(e.code),1)):M(``,!0),L(`span`,oa,y(e.text),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-22804f20`]]),{__name:`WorkshopBlocksClusterError`}),la={class:`other-cluster`},ua={class:`other-type`},da=6,fa=Object.assign(B(s({__name:`ClusterOther`,props:{block:{}},setup(e){let t=e,n=O(()=>t.block.events.map(e=>({seq:e.seq,type:e.type}))),r=F(!1),i=O(()=>r.value?n.value:n.value.slice(0,da)),a=O(()=>n.value.length>da);return(e,t)=>(u(),A(`div`,la,[(u(!0),A(x,null,l(i.value,e=>(u(),A(`div`,{key:e.seq,class:`other-row`},[t[1]||=L(`span`,{class:`i-tabler-dots`},null,-1),L(`span`,ua,y(e.type),1)]))),128)),a.value?(u(),A(`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)):M(``,!0)]))}}),[[`__scopeId`,`data-v-5f033e18`]]),{__name:`WorkshopBlocksClusterOther`}),pa=[`data-kind`,`data-tier`,`data-settled`,`data-covered`,`data-seq`,`data-events`,`data-folded`],ma=[`title`],ha={key:0,class:`i-tabler-user system-icon`},ga={key:1,class:`i-tabler-cpu system-icon`},_a=[`title`],va={class:`eb-main`},ya={class:`block-head`},ba={class:`agent-name`},xa={key:0,class:`role-label`},Sa=[`title`],Ca={class:`head-right`},wa={key:0,class:`running-chip`},Ta=[`title`],Ea={key:2,class:`merged`},Da={class:`kind-chip`},Oa={class:`time`},ka={key:2,class:`eb-toolbar`},Aa=[`title`],ja=[`title`],Ma={key:0,class:`ghost-time`},Na=Object.assign(B(s({__name:`EventBlock`,props:{block:{},turnStart:{type:Boolean},compact:{type:Boolean},enterStage:{}},setup(t){let n=t,r=vt(),{quote:i}=Wr(),a=O(()=>n.block.events[0]?.channelId??``),o=O(()=>Et(n.block.firstAt)),s=O(()=>{let e=n.block.agentId;return e?r.agentName(a.value,e):`system`}),c=O(()=>{if(n.block.agentId)return null;let e=n.block.events[0];if(!e||e.type!==`a2a.message`)return null;let t=(e.payload.metadata??{})[`x-aw-from-label`];return typeof t==`string`&&t?t:null}),l=O(()=>{let e=n.block.agentId;return e?(r.agentName(a.value,e)||e).charAt(0).toUpperCase():``}),f=O(()=>n.block.agentId?xt(n.block.agentId):void 0),m=O(()=>dt[n.block.kind]),g=p(`aw:open-agent`,()=>{}),v=()=>{n.block.agentId&&g({channelId:a.value,agentId:n.block.agentId})},C=O(()=>{let e=n.block.agentId;if(!e)return``;let t=(r.agents[a.value]??[]).find(t=>t.agentId===e);if(!t)return`agent`;let i=t.role===`lead`?`lead`:`worker`,o=t.harness??``;return o?`${i} · ${o}`:i}),w=O(()=>ft(n.block.events)),T=O(()=>{let e=n.block.agentId;return e?(r.agents[a.value]??[]).find(t=>t.agentId===e)?.state??null:null}),E=O(()=>n.block.kind===`stream`&&!n.block.settled&&T.value===`busy`),D=O(()=>n.block.events[0]?.seq??0),k={stream:Xr,tool:ri,status:di,life:bi,route:Ni,task:Bi,artifact:qi,member:Qi,memory:ra,error:ca,other:fa},j=O(()=>k[n.block.kind]??fa),N=O(()=>n.block.kind===`stream`?gt(n.block).trim()||null:n.block.kind===`route`&&n.block.events.map(e=>(e.payload.parts??[]).map(e=>e.text??``).join(`
10
10
  `).trim()).filter(Boolean).join(`
11
11
  `)||null),I=F(!1),R=async()=>{let e=N.value;if(e)try{await navigator.clipboard.writeText(e),I.value=!0,setTimeout(()=>{I.value=!1},1400)}catch{}},B=()=>{let e=N.value;e&&i(e)};return(n,r)=>(u(),A(`section`,{class:d([`event-block`,{"turn-start":t.turnStart,compact:t.compact,enter:t.enterStage?.enter}]),style:_(t.enterStage?.enter?{"--d":`${t.enterStage.delay}ms`}:void 0),"data-kind":t.block.kind,"data-tier":w.value,"data-settled":t.block.settled?`true`:`false`,"data-covered":t.block.coveredBy?`true`:`false`,"data-seq":D.value,"data-events":t.block.events.length,"data-folded":t.block.folded},[L(`button`,{type:`button`,class:d([`agent-avatar`,{"is-agent":!!t.block.agentId,"is-human":!!c.value,clickable:!!t.block.agentId}]),title:c.value??`${s.value}${C.value?` · ${C.value}`:``}`,style:_(f.value?{"--av":f.value}:void 0),onClick:v},[c.value?(u(),A(`span`,ha)):t.block.agentId?(u(),A(x,{key:2},[S(y(l.value),1)],64)):(u(),A(`span`,ga)),t.block.agentId&&T.value?(u(),A(`span`,{key:3,class:d([`av-status`,T.value]),title:T.value===`busy`?`运行中`:T.value===`stopped`?`已停止`:`空闲`},null,10,_a)):M(``,!0)],14,ma),L(`div`,va,[z(L(`header`,ya,[L(`span`,ba,y(c.value??s.value),1),C.value?(u(),A(`span`,xa,y(C.value),1)):M(``,!0),w.value===`attention`?(u(),A(`span`,{key:1,class:`tier-attention`,title:n.$t(`eventBlock.kc918hn001`)},[r[0]||=L(`span`,{class:`i-tabler-alert-circle`},null,-1),S(y(n.$t(`eventBlock.k3wmcv4004`)),1)],8,Sa)):M(``,!0),L(`span`,Ca,[E.value?(u(),A(`span`,wa,[r[1]||=L(`span`,{class:`running-dot`},null,-1),S(y(n.$t(`eventBlock.k3vp67i005`)),1)])):M(``,!0),t.block.folded>0?(u(),A(`span`,{key:1,class:`folded`,title:n.$t(`eventBlock.kcugdph002`)},y(n.$t(`eventBlock.k3xk4t006`))+` `+y(t.block.folded),9,Ta)):M(``,!0),t.block.events.length>1?(u(),A(`span`,Ea,`×`+y(t.block.events.length),1)):M(``,!0),L(`span`,Da,y(m.value.label),1),L(`span`,Oa,y(o.value),1)]),N.value?(u(),A(`span`,ka,[L(`button`,{type:`button`,class:`eb-tool`,title:h(I)?`已复制`:`复制全文`,onClick:R},[L(`span`,{class:d(h(I)?`i-tabler-check`:`i-tabler-copy`)},null,2)],8,Aa),L(`button`,{type:`button`,class:`eb-tool`,title:n.$t(`eventBlock.kknq700003`),onClick:B},[...r[2]||=[L(`span`,{class:`i-tabler-quote`},null,-1)]],8,ja)])):M(``,!0)],512),[[e,!t.compact]]),t.compact?(u(),A(`span`,Ma,y(o.value.slice(0,5)),1)):M(``,!0),(u(),P(b(j.value),{block:t.block,class:`eb-body`},null,8,[`block`]))])],14,pa))}}),[[`__scopeId`,`data-v-49551fd4`]]),{__name:`WorkshopEventBlock`}),Pa=160,Fa=8,Ia=new Set([`agent.message`,`a2a.artifact`,`error`,`task.status`,`a2a.message`,`agent.member`,`agent.status`]);function La(e,t={}){let n=bt(),r=new ht,i=j(r.blocks),a=O(()=>C(e)??``),o=O(()=>n.filters[a.value]??`all`),s=O(()=>n.focusAgents[a.value]??null),c=O(()=>C(t.resetKey)),l=O(()=>t.predicate??null),u=O(()=>t.raw?a.value?n.ring(a.value).items:[]:a.value?n.timeline(a.value):[]),d=O(()=>(c.value,l.value?u.value.filter(l.value):u.value)),f=null,p=!1,m=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=gt(e).trim();return!(!r&&!e.overrideText||n===t&&!e.settled&&r.length<Fa)})},h=()=>{f!=null&&(clearTimeout(f),f=null),i.value=m(r.blocks)},g=e=>{if(e||p){p=!1,h();return}f??=setTimeout(h,Pa)};return E(()=>{f!=null&&clearTimeout(f)}),t.raw?D([a,l,c],()=>{r.reset(),p=!0},{immediate:!0}):D([a,o,s,l,c],()=>{r.reset(),p=!0},{immediate:!0}),D(d,e=>{let t=e[e.length-1],n=t!=null&&Ia.has(t.type);r.sync(e),g(n)},{immediate:!0}),{blocks:i,totalEvents:O(()=>d.value.length),clusterer:r}}var Ra=!1;function za(){Ra||typeof document>`u`||(Ra=!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 Ba={class:`transcript`},Va={class:`filter-bar`},Ha={class:`count`},Ua=[`data-state`,`title`],Wa={key:0,class:`sync-pulse`},Ga={key:1,class:`i-tabler-point-filled sync-dot`},Ka=[`title`],qa=[`disabled`],Ja={key:1,class:`earlier-done`},Ya={key:2,class:`skel-stack`},Xa={key:3,class:`empty`},Za={key:0,class:`i-tabler-refresh empty-icon`},Qa={key:1,class:`i-tabler-message-dots empty-icon`},$a={class:`empty-title`},eo={class:`empty-hint`},to={key:4,class:`empty filtered`},no={class:`empty-title`},ro={class:`empty-hint`},io={key:0,class:`date-divider`},ao={class:`date-divider-label`},oo=Object.assign(B(s({__name:`TranscriptTimeline`,props:{channelId:{}},setup(e){let{t}=q(),n=e,r=bt(),{conn:i}=St();za();let a=F(null),o=F(!0),s=O(()=>i.state===`connecting`&&r.ring(n.channelId).items.length===0),d=O({get:()=>r.filters[n.channelId]??`all`,set:e=>r.setFilter(n.channelId,e)}),{blocks:p,totalEvents:m}=La(()=>n.channelId),g=F(!1),v=F(!1),b=O(()=>r.ring(n.channelId).items.length),C=O(()=>!v.value&&b.value>0),w=async()=>{if(g.value||v.value)return;g.value=!0;let e=a.value,t=e?{top:e.scrollTop,height:e.scrollHeight}:null;try{await r.loadEarlier(n.channelId)||(v.value=!0),e&&t&&(await f(),e.scrollTop=e.scrollHeight-t.height+t.top)}catch{}finally{g.value=!1}},T=()=>{let e=a.value;e&&(o.value=e.scrollHeight-e.scrollTop-e.clientHeight<120)},E=F(!1),k=(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)}),j=async()=>{o.value=!0;let e=a.value;if(e){E.value=!0;try{await k(e,800)}finally{E.value=!1}}},P=F(new Map),I=0,R=0,z=Date.now();D(p,(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()-z<1500;if(!a){let e=Date.now();e-I>600&&(I=e,R=0)}for(let t of e){let e=!n.has(t.id)&&!a?Math.min(R++,7)*60:-1;i.set(t.id,{enter:e>=0,delay:Math.max(0,e)})}P.value=i},{immediate:!0});let B=async()=>{if(!o.value)return;await f();let e=a.value;e&&(e.scrollTop=e.scrollHeight)};D(()=>p.value.length,()=>{B()}),D(()=>r.lastSeq(n.channelId),()=>{B()});let W=F(null),G=null;U(()=>{let e=a.value,t=W.value;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>{o.value&&(e.scrollTop=e.scrollHeight)});n.observe(t),G=n}),c(()=>{G?.disconnect(),G=null});let K=O(()=>i.pendingReplay||i.state===`connecting`),J=O(()=>{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})}),Y=[{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`)}],X=e=>{let t=new Date(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()},Z=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()})},ee=O(()=>{let e=[],t=null;for(let n of p.value){let r=X(n.firstAt);e.push({divider:t===null||r!==t?Z(n.firstAt):null}),t=r}return e});return(e,t)=>{let n=ke,r=Na;return u(),A(`div`,Ba,[L(`div`,Va,[V(n,{value:h(d),"onUpdate:value":t[0]||=e=>N(d)?d.value=e:null,size:`small`,options:Y},null,8,[`value`]),L(`span`,Ha,y(h(m))+` `+y(e.$t(`transcriptTimeline.k1atjpx1005`))+` `+y(h(p).length)+` `+y(e.$t(`transcriptTimeline.k4a9o007`)),1),L(`span`,{class:`sync-chip`,"data-state":h(K)?`syncing`:h(i).state,title:h(K)?`连接中断,重连后将自动对齐缺失事件`:e.$t(`transcriptTimeline.kglov3b025`,{p0:h(J)||`无`})},[h(K)?(u(),A(`span`,Wa)):h(i).state===`open`?(u(),A(`span`,Ga)):M(``,!0),S(` `+y(h(K)?e.$t(`transcriptTimeline.k3lmtk3008`):h(i).state===`open`?h(J)||e.$t(`transcriptTimeline.k3y2p8020`):e.$t(`transcriptTimeline.k44c2n024`)),1)],8,Ua)]),L(`div`,{ref_key:`scroller`,ref:a,class:`scroller`,onScroll:T},[!h(o)&&!h(E)?(u(),A(`button`,{key:0,class:`jump-latest`,title:e.$t(`transcriptTimeline.kqu93z8001`),onClick:j},[t[1]||=L(`span`,{class:`i-tabler-arrow-down`},null,-1),S(` `+y(e.$t(`transcriptTimeline.k40t11002`)),1)],8,Ka)):M(``,!0),L(`div`,{ref_key:`columnEl`,ref:W,class:`column`},[h(C)?(u(),A(`button`,{key:0,class:`earlier-btn`,disabled:h(g),onClick:w},y(h(g)?e.$t(`transcriptTimeline.k1br0ij9009`):e.$t(`transcriptTimeline.kywgd38021`)),9,qa)):M(``,!0),h(v)&&h(b)>0?(u(),A(`div`,Ja,y(e.$t(`transcriptTimeline.k1kbaden003`)),1)):M(``,!0),h(s)?(u(),A(`div`,Ya,[(u(),A(x,null,l(3,e=>L(`div`,{key:e,class:`skel-row`,style:_({"--d":`${(e-1)*.12}s`})},[...t[2]||=[H(`<span class="aw-skel skel-ava" data-v-a25318ff></span><div class="skel-lines" data-v-a25318ff><span class="aw-skel skel-line name" data-v-a25318ff></span><span class="aw-skel skel-line w70" data-v-a25318ff></span><span class="aw-skel skel-line w45" data-v-a25318ff></span></div>`,2)]],4)),64))])):h(p).length===0&&h(m)===0?(u(),A(`div`,Xa,[h(K)||h(i).state!==`open`?(u(),A(`span`,Za)):(u(),A(`span`,Qa)),L(`p`,$a,y(h(K)||h(i).state!==`open`?e.$t(`transcriptTimeline.klnne6o010`):e.$t(`transcriptTimeline.k126izdm022`)),1),L(`p`,eo,y(h(K)||h(i).state!==`open`?e.$t(`transcriptTimeline.k1iuqpxj011`):e.$t(`transcriptTimeline.kuyjpmi023`)),1)])):h(p).length===0?(u(),A(`div`,to,[t[3]||=L(`span`,{class:`i-tabler-filter-off empty-icon`},null,-1),L(`p`,no,y(e.$t(`transcriptTimeline.ktuo1zg004`)),1),L(`p`,ro,` 「`+y(Y.find(e=>e.value===h(d))?.label??h(d))+`」`+y(e.$t(`transcriptTimeline.kapxgq4006`)),1)])):M(``,!0),(u(!0),A(x,null,l(h(p),(e,t)=>(u(),A(x,{key:e.id},[h(ee)[t]?.divider?(u(),A(`div`,io,[L(`span`,ao,y(h(ee)[t].divider),1)])):M(``,!0),V(r,{block:e,"turn-start":t>0&&h(p)[t-1].agentId!==e.agentId,compact:t>0&&h(p)[t-1].agentId===e.agentId,"enter-stage":h(P).get(e.id)},null,8,[`block`,`turn-start`,`compact`,`enter-stage`])],64))),128))],512)],544)])}}}),[[`__scopeId`,`data-v-a25318ff`]]),{__name:`WorkshopTranscriptTimeline`}),so={key:0,class:`lane-empty`},co={key:1,class:`lane-empty`},lo=[`disabled`],uo=Object.assign(B(s({__name:`LaneBlocks`,props:{channelId:{},agentId:{}},setup(e){let t=e,n=bt(),{blocks:r}=La(()=>t.channelId,{predicate:e=>e.agentId===t.agentId,resetKey:()=>t.agentId,raw:!0}),i=F(!0);U(()=>{n.loadLaneHistory(t.channelId,t.agentId).finally(()=>{i.value=!1})});let a=F(!1),o=F(!1),s=O(()=>r.value.length>0),c=O(()=>!o.value&&s.value),d=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=Na;return h(r).length===0&&h(i)?(u(),A(`div`,so,[t[0]||=L(`span`,{class:`i-tabler-refresh lane-empty-icon`},null,-1),S(` `+y(e.$t(`laneBlocks.k1otw1r3001`)),1)])):h(r).length===0?(u(),A(`div`,co,y(e.$t(`laneBlocks.k1el0s5k002`)),1)):(u(),A(x,{key:2},[h(c)?(u(),A(`button`,{key:0,type:`button`,class:`lane-earlier`,disabled:h(a),onClick:d},y(h(a)?e.$t(`laneBlocks.k1br0ij9003`):e.$t(`laneBlocks.k1br5dtr004`)),9,lo)):M(``,!0),(u(!0),A(x,null,l(h(r),e=>(u(),P(n,{key:e.id,block:e},null,8,[`block`]))),128))],64))}}}),[[`__scopeId`,`data-v-b04638b2`]]),{__name:`WorkshopLanesLaneBlocks`}),fo={class:`lanes-wrap`},po={class:`toolbar`},mo={class:`team-summary`},ho={class:`ts-label`},go={class:`ts-count`},_o={class:`ts-unit`},vo={class:`ts-detail`},yo={class:`lanes`},bo={key:0,class:`empty`},xo={class:`empty-title`},So={class:`empty-title`},Co={class:`empty-hint`},wo={class:`lane-head`},To={class:`head-top`},Eo={class:`lane-ava`},Do=[`title`],Oo=[`title`],ko=[`title`],Ao={class:`head-sub`},jo={class:`lane-meta`},Mo={key:0,class:`lane-progress`},No={class:`lane-actions`},Po={class:`term-label`},Fo={class:`lane-body`},Io={class:`mode-hint`},Lo={class:`mode-hint`},Ro={class:`ws-hint`},zo=320,Bo=Object.assign(B(s({__name:`AgentLanesView`,props:{channelId:{}},setup(e){let{t}=q(),n=e,r=vt(),i=wt(),a=O(()=>r.agents[n.channelId]??[]),o=Ot(`aw.harness.laneW`,{}),s=e=>o.value[e]??zo,f=(e,t)=>{o.value={...o.value,[e]:Math.min(720,Math.max(240,s(e)+t))}},p=e=>{let t={...o.value};Reflect.deleteProperty(t,e),o.value=t},m=e=>e.trim().charAt(0).toUpperCase()||`?`,g=e=>xt(e),v={processing:`var(--tone-live-dot)`,warning:`var(--tone-warning-dot)`,success:`var(--tone-success-dot)`},b=F(!1),C=F(!1),w=F(`create`),T=k({name:``,harness:`omp`,role:`worker`,systemPrompt:``}),E=F([]),D=F([]),j=F(``),R=F(``),z=async()=>{try{let[e,t]=await Promise.all([i.listTemplates(),i.listTeams()]);E.value=(e.data??[]).map(e=>({id:e.id,name:e.name,harness:e.harness,enabled:e.enabled})),D.value=(t.data??[]).map(e=>({id:e.id,name:e.name,memberCount:e.members.length,hasLead:e.members.some(e=>e.role===`lead`)}))}catch{}},B=F(!1),H=F(!1),W=k({agentId:``,name:``,role:`worker`,harness:``,systemPrompt:``}),G=e=>{W.agentId=e.agentId,W.name=e.name,W.role=e.role===`lead`?`lead`:`worker`,W.harness=e.harness,W.systemPrompt=typeof e.config?.systemPromptPrefix==`string`?e.config.systemPromptPrefix:``,B.value=!0},K=async()=>{let e=W.name.trim();if(!e){$.warning(t(`agentLanesView.ky6jqt4032`));return}H.value=!0;try{await i.updateChannelAgent(n.channelId,W.agentId,{name:e,config:{...r.agents[n.channelId]?.find(e=>e.agentId===W.agentId)?.config??{},systemPromptPrefix:W.systemPrompt.trim()},reason:t(`agentLanesView.kfvflle033`)}),$.success(t(`agentLanesView.k21xjz2044`,{p0:e})),B.value=!1}catch(e){$.error(t(`agentLanesView.k3jmrw1045`,{p0:ut(e)}))}finally{H.value=!1}},J=()=>{T.name=``,T.harness=`omp`,T.role=`worker`,T.systemPrompt=``,w.value=`create`,j.value=``,R.value=``,b.value=!0,z()},X=async()=>{if(w.value===`create`){let e=T.name.trim();if(!e){$.warning(t(`agentLanesView.ky6jqt4032`));return}C.value=!0;try{await i.addChannelAgent(n.channelId,{name:e,harness:T.harness,role:T.role,config:T.systemPrompt.trim()?{systemPromptPrefix:T.systemPrompt.trim()}:void 0}),$.success(t(`agentLanesView.k1g5ykr3046`,{p0:e})),b.value=!1}catch(e){$.error(t(`agentLanesView.k1j97j74047`,{p0:ut(e)}))}finally{C.value=!1}return}if(w.value===`template`){if(!j.value){$.warning(t(`agentLanesView.k13xo8sz034`));return}C.value=!0;try{let e=E.value.find(e=>e.id===j.value);await i.addChannelAgent(n.channelId,{agentId:j.value,role:T.role,config:T.systemPrompt.trim()?{systemPromptPrefix:T.systemPrompt.trim()}:void 0}),$.success(t(`agentLanesView.kk3uwzo048`,{p0:T.role,p1:e?.name??``})),b.value=!1}catch(e){let t=ut(e);$.error(`模板克隆失败${t.includes(`LEAD_EXISTS`)?`(已有 lead,不能再添加 lead)`:`: ${t}`}`)}finally{C.value=!1}return}if(!R.value){$.warning(t(`agentLanesView.k1tjd5ab035`));return}C.value=!0;try{let e=D.value.find(e=>e.id===R.value);await i.deployTeam(R.value,n.channelId),$.success(t(`agentLanesView.k1gslqf9050`,{p0:e?.name??``,p1:e?.memberCount??0})),b.value=!1}catch(e){let t=ut(e);$.error(`编组部署失败${t.includes(`LEAD_EXISTS`)?`(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)`:`: ${t}`}`)}finally{C.value=!1}},Z=F(null),ee=async(e,r)=>{Z.value=e;try{await i.removeChannelAgent(n.channelId,e),$.success(t(`agentLanesView.k1n3o03a052`,{p0:r}))}catch(e){$.error(t(`agentLanesView.k13dsp10053`,{p0:ut(e)}))}finally{Z.value=null}},te=F(null),ne=async(e,r)=>{te.value=e;try{await i.stopChannelAgent(n.channelId,e),$.success(t(`agentLanesView.kcpbv47054`,{p0:r}))}catch(e){$.error(t(`agentLanesView.k139ec5j055`,{p0:ut(e)}))}finally{te.value=null}},re=F([]),ie=O(()=>{let e=new Map;for(let t of re.value)!t.alive||!t.agentId||e.set(t.agentId,t);return e}),ae=e=>e?e.streaming?{text:`streaming`,color:`processing`}:e.running?{text:`turn`,color:`warning`}:{text:`idle`,color:`success`}:null,oe=null,se=async()=>{try{let e=await i.listChannelTerminals(n.channelId);re.value=e.data??[]}catch{}},ce=F(!1),le=F(null),ue=F(``),de=e=>{le.value=e.agentId,ue.value=`${e.name} · ${e.role}`,ce.value=!0};return U(()=>{se(),oe=Y(()=>void se(),5e3)}),c(()=>{oe&&clearInterval(oe)}),(t,n)=>{let i=Ee,o=Ze,c=Hr,O=We,k=He,F=Ve,z=Oe,U=Ue,q=Be,Y=De,re=Me,oe=Xe,se=Ge,fe=et;return u(),A(`div`,fo,[L(`div`,po,[L(`div`,mo,[L(`span`,ho,y(t.$t(`agentLanesView.k3y5ja016`)),1),L(`span`,go,y(h(a).length),1),L(`span`,_o,y(t.$t(`agentLanesView.k3ll6sa017`)),1),L(`span`,vo,`lead `+y(h(a).filter(e=>e.role===`lead`).length)+` · worker `+y(h(a).filter(e=>e.role===`worker`).length),1)]),V(i,{size:`small`,type:`primary`,ghost:``,onClick:J},{default:I(()=>[n[14]||=L(`span`,{class:`i-tabler-user-plus`},null,-1),L(`span`,null,y(t.$t(`agentLanesView.k1fmutgo018`)),1)]),_:1})]),L(`div`,yo,[h(a).length===0?(u(),A(`div`,bo,[h(r).channels[e.channelId]?(u(),A(x,{key:1},[n[16]||=L(`span`,{class:`i-tabler-users-group empty-icon`},null,-1),L(`p`,So,y(t.$t(`agentLanesView.k122h4pc020`)),1),L(`p`,Co,y(t.$t(`agentLanesView.k7cr2h8021`)),1)],64)):(u(),A(x,{key:0},[n[15]||=L(`span`,{class:`i-tabler-refresh empty-icon`},null,-1),L(`p`,xo,y(t.$t(`agentLanesView.k1woev5v019`)),1)],64))])):M(``,!0),(u(!0),A(x,null,l(h(a),r=>(u(),A(x,{key:r.agentId},[L(`div`,{class:`lane`,style:_({flexBasis:`${s(r.agentId)}px`})},[L(`div`,wo,[L(`div`,To,[L(`span`,Eo,[L(`span`,{style:_({"--av":g(r.agentId)})},y(m(r.name)),5),L(`span`,{class:d([`lane-state`,r.state])},null,2)]),L(`span`,{class:`lane-name`,title:r.name},y(r.name),9,Do),r.config?.systemPromptPrefix?(u(),A(`span`,{key:0,class:`lane-chip`,title:t.$t(`agentLanesView.k107s4am001`)},y(t.$t(`agentLanesView.k3xycu022`)),9,Oo)):M(``,!0),L(`span`,{class:d([`lane-role`,r.role])},y(r.role),3),ae(h(ie).get(r.agentId))?(u(),A(`span`,{key:1,class:`term-badge`,title:t.$t(`agentLanesView.k1wn2vmt036`,{p0:h(ie).get(r.agentId)?.pid})},[L(`span`,{class:`term-dot`,style:_({background:v[ae(h(ie).get(r.agentId)).color]??`var(--tone-neutral-dot)`})},null,4),S(` `+y(ae(h(ie).get(r.agentId)).text),1)],8,ko)):M(``,!0)]),L(`div`,Ao,[L(`span`,jo,[r.state===`busy`&&r.currentTaskTitle?(u(),A(x,{key:0},[S(y(r.currentTaskTitle)+` `,1),r.currentTaskProgress==null?M(``,!0):(u(),A(`span`,Mo,y(r.currentTaskProgress)+`%`,1))],64)):(u(),A(x,{key:1},[S(y(r.state)+` · Q`+y(r.queued??0),1)],64))]),L(`div`,No,[r.harness===`omp`?(u(),P(i,{key:0,size:`small`,type:`primary`,ghost:``,class:`lane-term`,title:t.$t(`agentLanesView.k1884q17002`),onClick:e=>de(r)},{default:I(()=>[n[17]||=L(`span`,{class:`i-tabler-terminal-2`},null,-1),L(`span`,Po,y(t.$t(`agentLanesView.k4588s023`)),1)]),_:1},8,[`title`,`onClick`])):M(``,!0),V(i,{size:`small`,type:`text`,class:`lane-edit`,title:t.$t(`agentLanesView.k1pgd3tf003`),onClick:e=>G(r)},{default:I(()=>[...n[18]||=[L(`span`,{class:`i-tabler-edit`},null,-1)]]),_:1},8,[`title`,`onClick`]),n[21]||=L(`span`,{class:`actions-divider`},null,-1),V(o,{title:t.$t(`agentLanesView.k1l029kf037`,{p0:r.name}),"ok-text":`停止`,"cancel-text":`取消`,onConfirm:e=>ne(r.agentId,r.name)},{default:I(()=>[V(i,{size:`small`,type:`text`,class:`lane-stop`,loading:h(te)===r.agentId,title:`HITL 停止该 Agent 运行时`},{default:I(()=>[...n[19]||=[L(`span`,{class:`i-tabler-player-stop`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`]),V(o,{title:t.$t(`agentLanesView.kt3n27m038`,{p0:r.name}),"ok-text":`移除`,"cancel-text":`取消`,onConfirm:e=>ee(r.agentId,r.name)},{default:I(()=>[V(i,{size:`small`,type:`text`,danger:``,class:`lane-remove`,loading:h(Z)===r.agentId},{default:I(()=>[...n[20]||=[L(`span`,{class:`i-tabler-x`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`])])])]),L(`div`,Fo,[V(uo,{"channel-id":e.channelId,"agent-id":r.agentId},null,8,[`channel-id`,`agent-id`])])],4),V(c,{label:t.$t(`agentLanesView.k7xt1y6039`,{p0:r.name}),onResize:e=>f(r.agentId,e),onReset:e=>p(r.agentId)},null,8,[`label`,`onResize`,`onReset`])],64))),128))]),V(oe,{open:h(b),"onUpdate:open":n[9]||=e=>N(b)?b.value=e:null,title:t.$t(`agentLanesView.k17kcn55004`),"confirm-loading":h(C),"ok-text":`添加`,"cancel-text":`取消`,onOk:X},{default:I(()=>[V(k,{value:h(w),"onUpdate:value":n[0]||=e=>N(w)?w.value=e:null,class:`mode-switch`},{default:I(()=>[V(O,{value:`create`},{default:I(()=>[S(y(t.$t(`agentLanesView.k1b7cwvy024`)),1)]),_:1}),V(O,{value:`template`},{default:I(()=>[S(y(t.$t(`agentLanesView.k1ndey1w025`)),1)]),_:1}),V(O,{value:`team`},{default:I(()=>[S(y(t.$t(`agentLanesView.k1l5qyux026`)),1)]),_:1})]),_:1},8,[`value`]),h(w)===`create`?(u(),P(Y,{key:0,layout:`vertical`,class:`member-form`},{default:I(()=>[V(z,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:I(()=>[V(F,{value:h(T).name,"onUpdate:value":n[1]||=e=>h(T).name=e,placeholder:`如 db-migrator / test-writer`,onPressEnter:X},null,8,[`value`])]),_:1},8,[`label`]),V(z,{label:`harness`},{default:I(()=>[V(k,{value:h(T).harness,"onUpdate:value":n[2]||=e=>h(T).harness=e},{default:I(()=>[V(U,{value:`omp`},{default:I(()=>[...n[22]||=[S(` omp(完整 LLM agent) `,-1)]]),_:1}),V(U,{value:`mock`},{default:I(()=>[S(y(t.$t(`agentLanesView.kqg6783027`)),1)]),_:1}),V(U,{value:`claude`},{default:I(()=>[...n[23]||=[S(` claude `,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),V(z,{label:t.$t(`agentLanesView.k479op006`)},{default:I(()=>[V(k,{value:h(T).role,"onUpdate:value":n[3]||=e=>h(T).role=e},{default:I(()=>[V(U,{value:`worker`},{default:I(()=>[...n[24]||=[S(` worker `,-1)]]),_:1}),V(U,{value:`lead`},{default:I(()=>[S(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),V(z,{label:t.$t(`agentLanesView.kaogfp007`)},{default:I(()=>[V(q,{value:h(T).systemPrompt,"onUpdate:value":n[4]||=e=>h(T).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.kbqn6w5008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})):h(w)===`template`?(u(),P(Y,{key:1,layout:`vertical`,class:`member-form`},{default:I(()=>[V(z,{label:`选择 Agent 模板(克隆 name/harness/config 为独立实例)`},{default:I(()=>[V(re,{value:h(j),"onUpdate:value":n[5]||=e=>N(j)?j.value=e:null,placeholder:t.$t(`agentLanesView.kung925009`),options:h(E).map(e=>({value:e.id,label:`${e.name}(${e.harness})${e.enabled===0?` · 已停用`:``}`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),V(z,{label:t.$t(`agentLanesView.k1bl78fu010`)},{default:I(()=>[V(k,{value:h(T).role,"onUpdate:value":n[6]||=e=>h(T).role=e},{default:I(()=>[V(U,{value:`worker`},{default:I(()=>[...n[25]||=[S(` worker `,-1)]]),_:1}),V(U,{value:`lead`},{default:I(()=>[S(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),V(z,{label:t.$t(`agentLanesView.k1vhvbz7011`)},{default:I(()=>[V(q,{value:h(T).systemPrompt,"onUpdate:value":n[7]||=e=>h(T).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.k7ft6ig012`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),L(`div`,Io,y(t.$t(`agentLanesView.knybb6r029`)),1)]),_:1})):(u(),P(Y,{key:2,layout:`vertical`,class:`member-form`},{default:I(()=>[V(z,{label:t.$t(`agentLanesView.k29om9b013`)},{default:I(()=>[V(re,{value:h(R),"onUpdate:value":n[8]||=e=>N(R)?R.value=e:null,placeholder:t.$t(`agentLanesView.kur1otz014`),options:h(D).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`]),L(`div`,Lo,y(t.$t(`agentLanesView.k1qqnq5030`)),1)]),_:1}))]),_:1},8,[`open`,`title`,`confirm-loading`]),V(oe,{open:h(B),"onUpdate:open":n[12]||=e=>N(B)?B.value=e:null,title:t.$t(`agentLanesView.k19j5rho041`,{p0:h(W).name||``}),"confirm-loading":h(H),"ok-text":`保存`,"cancel-text":`取消`,onOk:K},{default:I(()=>[V(Y,{layout:`vertical`,class:`member-form`},{default:I(()=>[V(z,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:I(()=>[V(F,{value:h(W).name,"onUpdate:value":n[10]||=e=>h(W).name=e},null,8,[`value`])]),_:1},8,[`label`]),V(z,{label:`角色 / harness`},{default:I(()=>[V(fe,null,{default:I(()=>[V(se,{color:h(W).role===`lead`?`purple`:`blue`},{default:I(()=>[S(y(h(W).role),1)]),_:1},8,[`color`]),V(se,null,{default:I(()=>[S(y(h(W).harness),1)]),_:1})]),_:1})]),_:1}),V(z,{label:`场景系统提示词(systemPromptPrefix)`},{extra:I(()=>[L(`span`,Ro,y(t.$t(`agentLanesView.k1rw1rd2031`)),1)]),default:I(()=>[V(q,{value:h(W).systemPrompt,"onUpdate:value":n[11]||=e=>h(W).systemPrompt=e,rows:6,placeholder:t.$t(`agentLanesView.k10ti81i015`)},null,8,[`value`,`placeholder`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),V(Dt,{open:h(ce),"onUpdate:open":n[13]||=e=>N(ce)?ce.value=e:null,"agent-id":h(le),"channel-id":e.channelId,pid:null,subtitle:h(ue)},null,8,[`open`,`agent-id`,`channel-id`,`subtitle`])])}}}),[[`__scopeId`,`data-v-3d57301f`]]),{__name:`WorkshopAgentLanesView`}),Vo={class:`board-shell`},Ho={class:`toolbar`},Uo={class:`aw-seg`},Wo={class:`count`},Go={key:0,class:`pane-empty`},Ko={class:`pe-title`},qo={class:`aw-serif-accent-italic`},Jo={class:`pe-sub`},Yo={key:1,class:`board`},Xo=[`onDragover`,`onDragleave`,`onDrop`],Zo={class:`sec`},Qo={class:`sec-title`},$o={class:`sec-cnt`},es={class:`task-col-body`},ts=[`onDragstart`,`onClick`],ns={class:`tk-chan`},rs={key:0,class:`tk-num`},is={key:1,class:`tk-num`},as={class:`tk-title`},os=[`title`],ss={class:`tk-foot`},cs=[`onClick`],ls={key:0,class:`col-empty`},us={key:2,class:`task-list`},ds={key:0,class:`list-sec sec`},fs={class:`sec-title`},ps={class:`sec-cnt`},ms=[`onClick`],hs={class:`grow`},gs={class:`lnum`},_s={class:`meta`},vs=[`onClick`],ys=Object.assign(B(s({__name:`TaskBoardView`,props:{channelId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:n}=q(),r=e,a=t,o=vt(),s=wt(),c=O(()=>o.tasks[r.channelId]??[]),f=O(()=>o.channels[r.channelId]!==void 0||o.tasks[r.channelId]!==void 0),p=F(new Map),m=O(()=>c.value.map(e=>p.value.has(e.id)?{...e,state:p.value.get(e.id)}:e)),g=[{key:`todo`,title:n(`taskBoardView.k3nf71d008`),states:[`SUBMITTED`,`ASSIGNED`],dot:`var(--tone-neutral-dot)`,moveAction:`retry`},{key:`doing`,title:n(`taskBoardView.k3o5tz9009`),states:[`WORKING`],dot:`var(--tone-info-dot)`,moveAction:null},{key:`waiting`,title:n(`taskBoardView.k1hpx9p1010`),states:[`WAITING`],dot:`var(--tone-warning-dot)`,moveAction:null},{key:`done`,title:n(`taskBoardView.k3n77g3011`),states:[`COMPLETED`],dot:`var(--tone-success-dot)`,moveAction:null},{key:`bad`,title:n(`taskBoardView.k1veotws012`),states:[`FAILED`,`CANCELED`],dot:`var(--tone-danger-dot)`,moveAction:`cancel`}],v=O(()=>g.map(e=>({...e,items:m.value.filter(t=>e.states.includes(t.state))}))),b=e=>o.agentById(r.channelId,e)?.name??e.slice(0,6),C=e=>m.value.filter(t=>t.parentId===e).length,w=e=>e.state,T=F(localStorage.getItem(`aw.tasks.boardLayout`)===`list`?`list`:`board`),E=e=>{T.value=e,localStorage.setItem(`aw.tasks.boardLayout`,e)},D=F(null),k=F(null),j=F(null),N=e=>m.value.find(t=>t.id===e),I=(e,t)=>{if(!t.moveAction)return!1;let n=N(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)},R=(e,t,n)=>{D.value=t.id,k.value=n,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id))},z=(e,t)=>{!D.value||!I(D.value,t)||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))},B=e=>{j.value===e&&(j.value=null)},V=(e,t)=>{j.value=t.key,z(e,t)},H=()=>{D.value=null,k.value=null,j.value=null},U=e=>({"drop-over":j.value===e.key&&!!D.value&&I(D.value,e),"no-drop":!!D.value&&j.value===e.key&&!I(D.value,e),"drag-origin":k.value===e.key}),W=async(e,t)=>{e.preventDefault();let n=D.value;j.value=null,D.value=null,k.value=null,!(!n||!I(n,t))&&await K(n,t.moveAction)},G=F(new Set),K=async(e,t)=>{if(G.value.has(e))return;let n=N(e);if(!n)return;G.value.add(e);let r=n.state,i=t===`cancel`?`CANCELED`:`ASSIGNED`,a=new Map(p.value);a.set(e,i),p.value=a;try{await(t===`cancel`?s.cancelTask(e):s.retryTask(e)),$.success(n(t===`cancel`?`taskBoardView.k189y4q013`:`taskBoardView.kv1l1j3014`))}catch(t){let i=new Map(p.value);i.set(e,r),p.value=i;let a=t;$.error(ut(a,n(`taskBoardView.k1e7zwuc015`)))}finally{G.value.delete(e),setTimeout(()=>{let t=new Map(p.value);t.delete(e),p.value=t},4e3)}},J=F(null),Y=(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));J.value={task:t,x:n,y:r}},X=()=>{J.value=null},Z=O(()=>{let e=J.value?.task;if(!e)return[];let t=[];return[`SUBMITTED`,`ASSIGNED`,`WORKING`,`WAITING`,`FAILED`].includes(e.state)&&t.push({key:`cancel`,label:e(`taskBoardView.k1bs0t9b016`),danger:!0}),[`FAILED`,`CANCELED`].includes(e.state)&&t.push({key:`retry`,label:e(`taskBoardView.k1lclwk6017`)}),t.push({key:`detail`,label:e(`taskBoardView.k1dx9ysj018`)}),t}),ee=async e=>{let t=J.value?.task;X(),t&&(e===`detail`?a(`openTask`,t.id):await K(t.id,e))};return(e,t)=>{let n=Bn;return u(),A(`div`,Vo,[L(`div`,Ho,[L(`div`,Uo,[L(`button`,{type:`button`,class:d({on:h(T)===`board`}),onClick:t[0]||=e=>E(`board`)},y(e.$t(`taskBoardView.k43pyn001`)),3),L(`button`,{type:`button`,class:d({on:h(T)===`list`}),onClick:t[1]||=e=>E(`list`)},y(e.$t(`taskBoardView.k3x7l0002`)),3)]),L(`span`,Wo,y(h(m).length)+` `+y(e.$t(`taskBoardView.k168w1ze004`)),1)]),h(m).length===0?(u(),A(`div`,Go,[L(`span`,{class:d(h(f)?`pe-icon i-tabler-list-check`:`pe-icon i-tabler-refresh`)},null,2),L(`div`,Ko,[S(y(h(f)?e.$t(`taskBoardView.k3vkhhj006`):e.$t(`taskBoardView.k1f9c17l019`))+` `,1),L(`span`,qo,y(e.$t(`taskBoardView.k3wcox003`)),1)]),L(`div`,Jo,y(h(f)?`在下方 Composer 提交首个任务(首行标题,支持 goal / loop / pipeline 模式)`:`任务快照对齐后自动呈现`),1)])):h(T)===`board`?(u(),A(`div`,Yo,[(u(!0),A(x,null,l(h(v),r=>(u(),A(`div`,{key:r.key,class:d([`task-col`,U(r)]),onDragover:e=>V(e,r),onDragleave:e=>B(r.key),onDrop:e=>W(e,r)},[L(`div`,Zo,[L(`span`,{class:`st-dot`,style:_({background:r.dot})},null,4),L(`span`,Qo,y(r.title),1),L(`span`,$o,y(r.items.length),1)]),L(`div`,es,[(u(!0),A(x,null,l(r.items,o=>(u(),A(`div`,{key:o.id,class:d([`card task`,{dragging:h(D)===o.id}]),draggable:`true`,onDragstart:e=>R(e,o,r.key),onDragend:H,onClick:e=>a(`openTask`,o.id)},[L(`div`,ns,[L(`span`,null,`#`+y(b(o.assigneeId)),1),C(o.id)?(u(),A(`span`,rs,y(e.$t(`taskBoardView.k4b1x005`))+` `+y(C(o.id)),1)):M(``,!0),o.artifacts?(u(),A(`span`,is,[t[2]||=L(`span`,{class:`i-tabler-package`},null,-1),S(` `+y(o.artifacts),1)])):M(``,!0)]),L(`div`,as,y(o.title),1),o.routeReason?(u(),A(`div`,{key:0,class:`tk-route`,title:e.$t(`taskBoardView.k8m7hm6020`,{p0:o.routeReason})},` ↳ `+y(o.routeReason),9,os)):M(``,!0),o.state===`WORKING`&&o.progress>0?(u(),P(n,{key:1,percent:o.progress,size:`small`,"show-info":!1},null,8,[`percent`])):M(``,!0),L(`div`,ss,[L(`button`,{type:`button`,class:`st-pill-btn`,onClick:i(e=>Y(e,o),[`stop`])},[L(`span`,{class:`st-pill`,style:_({color:r.dot,borderColor:r.dot})},y(r.title),5)],8,cs)])],42,ts))),128)),r.items.length===0?(u(),A(`div`,ls,y(r.moveAction?e.$t(`taskBoardView.k13pad50007`):`-`),1)):M(``,!0)])],42,Xo))),128))])):(u(),A(`div`,us,[(u(!0),A(x,null,l(h(v),e=>(u(),A(x,{key:e.key},[e.items.length?(u(),A(`div`,ds,[L(`span`,{class:`st-dot`,style:_({background:e.dot})},null,4),L(`span`,fs,y(e.title),1),L(`span`,ps,y(e.items.length),1)])):M(``,!0),(u(!0),A(x,null,l(e.items,t=>(u(),A(`div`,{key:t.id,class:`list-row`,onClick:e=>a(`openTask`,t.id)},[L(`span`,hs,y(t.title),1),L(`span`,gs,`#`+y(b(t.assigneeId)),1),L(`span`,_s,y(t.id.slice(0,8)),1),L(`span`,{class:`st-pill`,style:_({color:e.dot,borderColor:e.dot})},y(w(t)),5)],8,ms))),128))],64))),128))])),h(J)?(u(),A(x,{key:3},[L(`div`,{class:`menu-backdrop`,onClick:X,onScroll:X},null,32),L(`div`,{class:`st-menu`,style:_({left:`${h(J).x}px`,top:`${h(J).y}px`})},[(u(!0),A(x,null,l(h(Z),e=>(u(),A(`button`,{key:e.key,type:`button`,class:d({danger:e.danger}),onClick:t=>ee(e.key)},[L(`span`,{class:d(e.key===`cancel`?`i-tabler-circle-off`:e.key===`retry`?`i-tabler-rotate`:`i-tabler-external-link`)},null,2),S(` `+y(e.label),1)],10,vs))),128))],4)],64)):M(``,!0)])}}}),[[`__scopeId`,`data-v-22725176`]]),{__name:`WorkshopTaskBoardView`}),bs={class:`split`},xs={key:0,class:`empty`},Ss={class:`col-head`},Cs={class:`col-name`},ws={class:`col-meta`},Ts={class:`col-body`},Es={key:0,class:`col-empty`},Ds=[`onClick`],Os={class:`me-time`},ks={class:`me-agent`},As={class:`me-text`},js=360,Ms=Object.assign(B(s({__name:`MultiChannelView`,props:{wsId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:n}=q(),r=e,i=t,a=Ot(`aw.harness.mcColW`,{}),o=e=>a.value[e]??js,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},f=lt(),p=vt(),m=bt(),g=O(()=>(f.workspaces.find(e=>e.id===r.wsId)?.channelIds??[]).map(e=>{let t=p.agents[e]??[],n=p.tasks[e]??[];return{id:e,name:p.channels[e]?.name??e.slice(0,8),synced:p.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:m.lastSeq(e),items:m.ring(e).items.slice(-120)}})),v=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=Hr;return u(),A(`div`,bs,[h(g).length===0?(u(),A(`div`,xs,y(e.$t(`multiChannelView.k1bfi9ms001`)),1)):M(``,!0),(u(!0),A(x,null,l(h(g),t=>(u(),A(x,{key:t.id},[L(`div`,{class:`col`,style:_({flexBasis:`${o(t.id)}px`})},[L(`div`,Ss,[L(`span`,Cs,y(t.name),1),L(`span`,ws,[t.synced?(u(),A(x,{key:0},[S(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)):(u(),A(x,{key:1},[S(y(e.$t(`multiChannelView.k1bst7s9002`)),1)],64))])]),L(`div`,Ts,[t.items.length===0?(u(),A(`div`,Es,y(t.synced?e.$t(`multiChannelView.k1el0s5k004`):e.$t(`multiChannelView.k1bst7s9002`)),1)):M(``,!0),(u(!0),A(x,null,l(t.items,e=>(u(),A(`div`,{key:`${t.id}-${e.seq}`,class:d([`mini-event`,{clickable:e.type===`task.status`}]),onClick:t=>e.type===`task.status`&&i(`openTask`,e.payload.taskId)},[L(`span`,Os,y(h(Et)(e.at)),1),L(`span`,ks,y(e.agentId?.slice(0,4)??`sys`),1),L(`span`,As,y(v(e)),1)],10,Ds))),128))])],4),V(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-23486e32`]]),{__name:`WorkshopMultiChannelView`}),Ns={class:`memory-panel`},Ps={class:`toolbar`},Fs=[`data-ok`],Is={class:`search-bar`},Ls={key:1,class:`search-results`},Rs=[`title`],zs=[`data-source`],Bs={class:`score`},Vs={class:`hit-title`},Hs={class:`list-head`},Us={class:`row-head`},Ws={class:`row-importance`},Gs={class:`row-title`},Ks={class:`row-content`},qs={key:0,class:`empty`},Js=Object.assign(B(s({__name:`MemoryPanel`,props:{channelId:{},agentId:{}},setup(e){let{t}=q(),n=e,r=vt(),i=wt(),a=F(`shared`),o=F(n.agentId??``);D(()=>n.agentId,e=>{e&&(o.value=e)});let s=F({}),c=F(``),d=O(()=>c.value.trim()||s.value[o.value]||``),f=O(()=>d.value.length>0),p=async()=>{try{let e=await i.listChannelAgents(n.channelId),t={};for(let n of e.data??[])n.token&&(t[n.id]=n.token);if(s.value=t,!o.value){let t=(e.data??[]).find(e=>e.role===`lead`);t&&(o.value=t.id)}}catch{}};U(()=>void p()),D(()=>n.channelId,()=>{s.value={},o.value=n.agentId??``,p()});let m=O(()=>{let e={};return d.value&&(e.authorization=`Bearer ${d.value}`),e}),g=O(()=>r.agents[n.channelId]??[]),_=F([]),v=F(!1),b=async()=>{v.value=!0;try{let e=a.value===`shared`?`/api/workshop/channels/${n.channelId}/memories`:`/api/workshop/channels/${n.channelId}/agents/${o.value}/memories`,r=await(await fetch(e,{headers:m.value})).json();_.value=r.code===0?r.data:[],r.code!==0&&$.warning(r.message??t(`memoryPanel.k186sctu014`))}finally{v.value=!1}};D([a,o,d],()=>{d.value&&(a.value===`shared`||o.value)&&b()});let C=F(``),w=F(`auto`),T=F([]),E=F(!1),j=async()=>{if(!C.value.trim()||!o.value||!d.value){$.warning(t(`memoryPanel.k1eh0fbo015`));return}E.value=!0;try{let e=await(await fetch(`/api/workshop/channels/${n.channelId}/agents/${o.value}/memories/search`,{method:`POST`,headers:{"content-type":`application/json`,...m.value},body:JSON.stringify({query:C.value,scope:w.value,limit:8})})).json();T.value=e.code===0?e.data:[]}finally{E.value=!1}},R=F(!1),z=k({title:``,content:``,scope:`shared`,importance:.8,dedupKey:``}),B=async()=>{if(!z.title||!z.content||!o.value||!d.value){$.warning(t(`memoryPanel.k1dpj734016`));return}let e=await(await fetch(`/api/workshop/channels/${n.channelId}/agents/${o.value}/memories`,{method:`POST`,headers:{"content-type":`application/json`,...m.value},body:JSON.stringify({...z,dedupKey:z.dedupKey||void 0})})).json();e.code===0?($.success(t(`memoryPanel.k3n5bat017`)),R.value=!1,z.title=``,z.content=``,b()):$.error(e.message??t(`memoryPanel.k1bb5i1l018`))};return(t,n)=>{let r=We,i=He,s=Me,d=Se,p=ze,m=Re,D=Ee,O=et,k=Ge,F=ot,H=Ue,U=Oe,W=Ve,G=Be,K=it,q=De,J=Xe;return u(),A(`div`,Ns,[L(`div`,Ps,[V(i,{value:h(a),"onUpdate:value":n[0]||=e=>N(a)?a.value=e:null,size:`small`,"button-style":`solid`},{default:I(()=>[V(r,{value:`shared`},{default:I(()=>[S(y(t.$t(`memoryPanel.k3l2hmp005`)),1)]),_:1}),V(r,{value:`private`},{default:I(()=>[S(y(t.$t(`memoryPanel.k3rve9a006`)),1)]),_:1})]),_:1},8,[`value`]),e.agentId?M(``,!0):(u(),P(s,{key:0,value:h(o),"onUpdate:value":n[1]||=e=>N(o)?o.value=e:null,size:`small`,placeholder:t.$t(`memoryPanel.k1du3379001`),class:`agent-select`,options:h(g).map(e=>({value:e.agentId,label:e.name}))},null,8,[`value`,`placeholder`,`options`])),V(d,{title:h(f)?`成员 token 已自动装配`:`自动装配失败,可手动填入成员 token`},{default:I(()=>[L(`span`,{class:`token-state`,"data-ok":h(f)},[n[12]||=L(`span`,{class:`i-tabler-key`},null,-1),S(y(h(f)?`auto`:t.$t(`memoryPanel.k3zul4013`)),1)],8,Fs)]),_:1},8,[`title`])]),h(f)?M(``,!0):(u(),P(p,{key:0,value:h(c),"onUpdate:value":n[2]||=e=>N(c)?c.value=e:null,size:`small`,placeholder:`Bearer token(成员身份,兜底手填)`,class:`token`},null,8,[`value`])),L(`div`,Is,[V(m,{value:h(C),"onUpdate:value":n[3]||=e=>N(C)?C.value=e:null,size:`small`,placeholder:`混合检索记忆(FTS+向量,与 agent search_memory 同源)…`,loading:h(E),onSearch:j},null,8,[`value`,`loading`]),V(s,{value:h(w),"onUpdate:value":n[4]||=e=>N(w)?w.value=e:null,size:`small`,class:`scope`,options:[{value:`auto`,label:`auto`},{value:`private`,label:`private`},{value:`shared`,label:`shared`}]},null,8,[`value`])]),h(T).length?(u(),A(`div`,Ls,[(u(!0),A(x,null,l(h(T),e=>(u(),A(`div`,{key:e.id,class:`hit`,title:e.content.slice(0,200)},[L(`span`,{class:`src`,"data-source":e.source},y(e.source),9,zs),L(`span`,Bs,y(e.score),1),L(`span`,Vs,y(e.title),1)],8,Rs))),128))])):M(``,!0),L(`div`,Hs,[L(`span`,null,y(t.$t(`memoryPanel.k1k7okbe007`)),1),V(O,{size:`small`},{default:I(()=>[V(D,{size:`small`,type:`text`,onClick:b},{default:I(()=>[S(y(t.$t(`memoryPanel.k3x1jg008`)),1)]),_:1}),V(D,{size:`small`,type:`text`,onClick:n[5]||=e=>R.value=!0},{default:I(()=>[S(y(t.$t(`memoryPanel.k3wtib009`)),1)]),_:1})]),_:1})]),V(F,{spinning:h(v)},{default:I(()=>[(u(!0),A(x,null,l(h(_),e=>(u(),A(`div`,{key:e.id,class:`row`},[L(`div`,Us,[V(k,{class:`kind`},{default:I(()=>[S(y(e.kind),1)]),_:2},1024),L(`span`,Ws,y(e.importance.toFixed(2)),1),L(`span`,Gs,y(e.title),1)]),L(`div`,Ks,y(e.content.slice(0,140))+y(e.content.length>140?`…`:``),1)]))),128)),h(_).length===0&&!h(v)?(u(),A(`div`,qs,` (`+y(t.$t(`memoryPanel.k43rxk011`)),1)):M(``,!0)]),_:1},8,[`spinning`]),V(J,{open:h(R),"onUpdate:open":n[11]||=e=>N(R)?R.value=e:null,title:t.$t(`memoryPanel.k1bbee8p002`),"ok-text":`写入`,"cancel-text":`取消`,onOk:B},{default:I(()=>[V(q,{layout:`vertical`},{default:I(()=>[V(U,{label:`scope`},{default:I(()=>[V(i,{value:h(z).scope,"onUpdate:value":n[6]||=e=>h(z).scope=e},{default:I(()=>[V(H,{value:`shared`},{default:I(()=>[S(y(t.$t(`memoryPanel.kemjjvq010`)),1)]),_:1}),V(H,{value:`private`},{default:I(()=>[S(` private(`+y(t.$t(`memoryPanel.k3onh9w012`)),1)]),_:1})]),_:1},8,[`value`])]),_:1}),V(U,{label:t.$t(`memoryPanel.k419s4003`)},{default:I(()=>[V(W,{value:h(z).title,"onUpdate:value":n[7]||=e=>h(z).title=e},null,8,[`value`])]),_:1},8,[`label`]),V(U,{label:t.$t(`memoryPanel.k3wv1f004`)},{default:I(()=>[V(G,{value:h(z).content,"onUpdate:value":n[8]||=e=>h(z).content=e,rows:4},null,8,[`value`])]),_:1},8,[`label`]),V(U,{label:`importance(0-1)`},{default:I(()=>[V(K,{value:h(z).importance,"onUpdate:value":n[9]||=e=>h(z).importance=e,min:0,max:1,step:.1},null,8,[`value`])]),_:1}),V(U,{label:`dedupKey(可选,幂等)`},{default:I(()=>[V(W,{value:h(z).dedupKey,"onUpdate:value":n[10]||=e=>h(z).dedupKey=e},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-25b1b7cc`]]),{__name:`WorkshopMemoryPanel`}),Ys={class:`stats`},Xs={class:`kpis`},Zs={class:`kpi`},Qs={class:`kpi-num`},$s={class:`kpi-label`},ec={class:`kpi`},tc={class:`kpi-num`},nc={class:`kpi-label`},rc={class:`kpi`},ic={class:`kpi-num`},ac={class:`kpi-label`},oc={class:`chart`},sc={class:`types`},cc={class:`types-title`},lc={class:`t-name`},uc={class:`t-bar-wrap`},dc={class:`t-n`},fc={key:0,class:`empty`},pc=60,mc=Object.assign(B(s({__name:`StatsPanel`,props:{channelId:{}},setup(e){let t=e,n=bt(),r=_t(),i=O(()=>{let e=n.ring(t.channelId).items,r=Date.now(),i=Array(pc).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<pc?59-n:-1;a>=0&&(i[a]=(i[a]??0)+1)}return i}),a=O(()=>{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=O(()=>({grid:{left:36,right:8,top:12,bottom:20},xAxis:{type:`category`,data:i.value.map((e,t)=>String(t-pc+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=O(()=>n.ring(t.channelId).items.length),c=O(()=>i.value.slice(-10).reduce((e,t)=>e+t,0)/10);return(t,i)=>{let d=R(`app-chart`);return u(),A(`div`,Ys,[L(`div`,Xs,[L(`div`,Zs,[L(`div`,Qs,y(h(s)),1),L(`div`,$s,y(t.$t(`statsPanel.k1i88c0b001`)),1)]),L(`div`,ec,[L(`div`,tc,y(h(c).toFixed(1))+`/s `,1),L(`div`,nc,y(t.$t(`statsPanel.kfplawo002`)),1)]),L(`div`,rc,[L(`div`,ic,y(h(n).lastSeq(e.channelId)),1),L(`div`,ac,` seq / `+y(h(r).state),1)])]),L(`div`,oc,[V(d,{option:h(o),class:`app-chart`,autoresize:``},null,8,[`option`])]),L(`div`,sc,[L(`div`,cc,y(t.$t(`statsPanel.kzcd51003`)),1),(u(!0),A(x,null,l(h(a),([e,t])=>(u(),A(`div`,{key:e,class:`type-row`},[L(`span`,lc,y(e),1),L(`div`,uc,[L(`div`,{class:`t-bar`,style:_({width:`${Math.round(t/(h(a)[0]?.[1]??1)*100)}%`})},null,4)]),L(`span`,dc,y(t),1)]))),128)),h(a).length===0?(u(),A(`div`,fc,y(t.$t(`statsPanel.k1pevwxl004`)),1)):M(``,!0)])])}}}),[[`__scopeId`,`data-v-23e4d795`]]),{__name:`WorkshopStatsPanel`}),hc={class:`inspector`},gc=[`onClick`,`onKeydown`],_c={class:`member-info`},vc={class:`member-name`},yc={class:`name-text`},bc={class:`member-meta`},xc={key:0,class:`prog`},Sc={class:`member-cap`},Cc={key:0,class:`empty`},wc=[`onClick`,`onKeydown`],Tc={class:`task-head`},Ec={class:`state-chip aw-mono`},Dc={class:`task-title`},Oc={class:`task-meta`},kc={key:0},Ac={key:1},jc={key:0,class:`empty`},Mc=Object.assign(B(s({__name:`InspectorPanel`,props:{channelId:{}},emits:[`openAgent`,`openTask`],setup(e,{emit:t}){let{t:r}=q(),i=e,a=t,o=vt(),s=F(`members`),c=O(()=>o.agents[i.channelId]??[]),f=O(()=>o.tasks[i.channelId]??[]),p=O(()=>f.value.filter(e=>!e.parentId)),m=O(()=>o.channels[i.channelId]!==void 0),g=O(()=>{let e=new Map;for(let t of f.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}),v=e=>{let t=g.value.get(e);if(!t||t.total===0)return r(`inspectorPanel.k1el1plr007`);let n=Math.round(t.completed/t.total*100),i=t.completed>0?Math.round(t.durationSum/t.completed/1e3):0;return r(`inspectorPanel.k12oip5c010`,{p0:n,p1:i,p2:t.failed})},b=e=>f.value.filter(t=>t.parentId===e).length,C={idle:`var(--tone-success-dot)`,busy:`var(--tone-info-dot)`,stopped:`var(--tone-neutral-dot)`};return(t,r)=>{let i=qe,o=Bn,f=Js,g=mc,w=Ye;return u(),A(`div`,hc,[V(w,{"active-key":h(s),"onUpdate:activeKey":r[0]||=e=>N(s)?s.value=e:null,size:`small`,class:`tabs`},{default:I(()=>[V(i,{key:`members`,tab:`成员`},{default:I(()=>[(u(!0),A(x,null,l(h(c),e=>(u(),A(`div`,{key:e.agentId,class:`member aw-tile`,role:`button`,tabindex:`0`,onClick:t=>a(`openAgent`,e.agentId),onKeydown:n(t=>a(`openAgent`,e.agentId),[`enter`])},[L(`span`,{class:`dot`,style:_({background:C[e.state]??`var(--tone-neutral-dot)`})},null,4),L(`div`,_c,[L(`div`,vc,[L(`span`,yc,y(e.name),1),L(`span`,{class:d([`role-chip`,e.role])},y(e.role),3)]),L(`div`,bc,[e.state===`busy`&&e.currentTaskTitle?(u(),A(x,{key:0},[S(y(e.currentTaskTitle)+` `,1),e.currentTaskProgress==null?M(``,!0):(u(),A(`span`,xc,y(e.currentTaskProgress)+`%`,1))],64)):(u(),A(x,{key:1},[S(y(e.state)+` `,1),e.queued?(u(),A(x,{key:0},[S(` · `+y(t.$t(`inspectorPanel.k498bf001`))+` `+y(e.queued),1)],64)):M(``,!0),e.completed?(u(),A(x,{key:1},[S(` · `+y(t.$t(`inspectorPanel.k3ypnl002`))+` `+y(e.completed),1)],64)):M(``,!0)],64))]),L(`div`,Sc,y(v(e.agentId)),1)])],40,gc))),128)),h(c).length===0?(u(),A(`div`,Cc,y(h(m)?t.$t(`inspectorPanel.k1el4cgf005`):t.$t(`inspectorPanel.k1tqitzl008`)),1)):M(``,!0)]),_:1}),V(i,{key:`tasks`,tab:`任务`},{default:I(()=>[(u(!0),A(x,null,l(h(p),e=>(u(),A(`div`,{key:e.id,class:`task aw-tile`,role:`button`,tabindex:`0`,onClick:t=>a(`openTask`,e.id),onKeydown:n(t=>a(`openTask`,e.id),[`enter`])},[L(`div`,Tc,[L(`span`,Ec,y(e.state),1),L(`span`,Dc,y(e.title),1)]),L(`div`,Oc,[S(y(e.id.slice(0,8))+` · `+y(e.progress)+`% `,1),b(e.id)?(u(),A(`span`,kc,`· `+y(t.$t(`inspectorPanel.k3mp44x003`))+` `+y(b(e.id)),1)):M(``,!0),e.artifacts?(u(),A(`span`,Ac,`· `+y(t.$t(`inspectorPanel.k3w9q9004`))+` `+y(e.artifacts),1)):M(``,!0)]),e.state===`WORKING`?(u(),P(o,{key:0,percent:e.progress,size:`small`,"show-info":!1},null,8,[`percent`])):M(``,!0)],40,wc))),128)),h(p).length===0?(u(),A(`div`,jc,y(h(m)?t.$t(`inspectorPanel.k1el0vqb006`):t.$t(`inspectorPanel.kks0y5h009`)),1)):M(``,!0)]),_:1}),V(i,{key:`memory`,tab:`记忆`},{default:I(()=>[V(f,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1}),V(i,{key:`stats`,tab:`统计`},{default:I(()=>[V(g,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1})]),_:1},8,[`active-key`])])}}}),[[`__scopeId`,`data-v-ea1bee22`]]),{__name:`WorkshopInspectorPanel`}),Nc={class:`composer`},Pc={class:`composer-box`},Fc={key:0,class:`mention-menu`},Ic={class:`mention-title`},Lc=[`onMousedown`,`onMouseenter`],Rc={class:`mention-name`},zc={class:`mention-role`},Bc=[`title`],Vc={class:`composer-status-chip`},Hc={class:`chip-key`},Uc={key:0},Wc=[`title`],Gc=[`data-tone`,`title`],Kc={class:`chip-hint`},qc={class:`chip-key`},Jc={key:0},Yc=[`data-tone`,`title`],Xc=[`placeholder`],Zc={class:`composer-bar`},Qc={class:`cb-left`},$c={class:`aw-seg`},el={class:`aw-seg`},tl=[`onClick`],nl={class:`aw-seg`},rl=[`title`],il=[`title`],al={class:`cb-right`},ol=[`disabled`],sl=Object.assign(B(s({__name:`Composer`,props:{channelId:{}},emits:[`submitted`],setup(e,{emit:t}){let{t:n}=q(),a=e,o=t,s=wt(),c=vt(),p=ct(),m=F(`task`),g=F(``),{quoteText:v}=Wr(),b=F(null);D(v,e=>{if(!e)return;let t=e.trim().split(`
12
12
  `).map(e=>`> ${e}`).join(`