agentworkshop 0.7.13 → 0.7.14

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 (81) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{CXutoGrn.js → CD1SlCoI.js} +3 -3
  3. package/.output/public/_nuxt/CYBq3kS7.js +1 -0
  4. package/.output/public/_nuxt/Cr9DkD1d.js +1 -0
  5. package/.output/public/_nuxt/DMdVWIGz.js +19 -0
  6. package/.output/public/_nuxt/agents.CB9Ck7VQ.css +1 -0
  7. package/.output/public/_nuxt/builds/latest.json +1 -1
  8. package/.output/public/_nuxt/builds/meta/23c30854-f9e1-4651-bc3a-b695ef5faca4.json +1 -0
  9. package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +1 -0
  10. package/.output/public/_nuxt/{Ds8JbqGB.js → ed5qX-x5.js} +1 -1
  11. package/.output/public/_nuxt/{entry.Bv_GCmPP.css → entry.BNApuuEW.css} +1 -1
  12. package/.output/public/_nuxt/pages.CG8UJ2TK.css +1 -0
  13. package/.output/public/_nuxt/teams.DN0pAGGu.css +1 -0
  14. package/.output/server/chunks/_/nitro.mjs +881 -785
  15. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  16. package/.output/server/chunks/build/TownView-CunmEMzS.mjs +1 -1
  17. package/.output/server/chunks/build/_id_-CVnMdSeG.mjs +1 -1
  18. package/.output/server/chunks/build/_id_-D265Wh_k.mjs +1 -1
  19. package/.output/server/chunks/build/{agents-B10wmFri.mjs → agents--6bzGtES.mjs} +156 -80
  20. package/.output/server/chunks/build/agents--6bzGtES.mjs.map +1 -0
  21. package/.output/server/chunks/build/{channel-templates-CpWxVk5A.mjs → channel-templates-C1Bb-U75.mjs} +19 -20
  22. package/.output/server/chunks/build/channel-templates-C1Bb-U75.mjs.map +1 -0
  23. package/.output/server/chunks/build/daq-DxaXk_8N.mjs +1 -1
  24. package/.output/server/chunks/build/dcw-B0dtiHFG.mjs +1 -1
  25. package/.output/server/chunks/build/{pages-BmRUbGUi.mjs → pages-Aexs6LjD.mjs} +27 -15
  26. package/.output/server/chunks/build/pages-Aexs6LjD.mjs.map +1 -0
  27. package/.output/server/chunks/build/{teams-CNflUtPh.mjs → teams-DD8ZXTKL.mjs} +29 -32
  28. package/.output/server/chunks/build/teams-DD8ZXTKL.mjs.map +1 -0
  29. package/.output/server/chunks/build/useDaqStream-BkmyQT06.mjs +1 -1
  30. package/.output/server/chunks/build/useDcwStream-DWVoU96J.mjs +1 -1
  31. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs.map +1 -1
  32. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  33. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  34. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  35. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +14 -2
  36. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  37. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  38. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  39. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  40. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  41. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  42. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  43. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  44. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  45. package/.output/server/chunks/routes/renderer.mjs +2 -2
  46. package/.output/server/chunks/virtual/entry.mjs +21 -9
  47. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  48. package/.output/server/package.json +1 -1
  49. package/app/composables/workshop/useWorkshopApi.ts +11 -1
  50. package/app/pages/index.vue +72 -0
  51. package/app/pages/workshop/agents.vue +71 -6
  52. package/app/pages/workshop/channel-templates.vue +2 -1
  53. package/app/pages/workshop/teams.vue +24 -2
  54. package/app/plugins/http.ts +4 -3
  55. package/i18n/locales/en.ts +7 -0
  56. package/i18n/locales/zh-CN.ts +7 -0
  57. package/package.json +148 -148
  58. package/scripts/_dbg-harness-e2e.mjs +92 -0
  59. package/scripts/_dbg-harness-ui-dbg.py +49 -0
  60. package/scripts/_dbg-harness-ui-e2e.py +87 -0
  61. package/scripts/_dbg-login-e2e.mjs +26 -0
  62. package/server/api/workshop/harnesses.get.ts +15 -2
  63. package/server/data/dcw-lines.json +14 -0
  64. package/server/data/dcw-rollback.json +6 -6
  65. package/server/data/dcws.json +198 -198
  66. package/server/services/workshop/agents/adapters/line-spawn.ts +3 -2
  67. package/server/services/workshop/agents/harness-availability.ts +127 -0
  68. package/server/services/workshop/agents/registry.ts +21 -0
  69. package/server/services/workshop/runtime/manager.ts +16 -1
  70. package/.output/public/_nuxt/D8xY-Yjc.js +0 -19
  71. package/.output/public/_nuxt/QoCzfpo2.js +0 -1
  72. package/.output/public/_nuxt/agents.CEbox5-D.css +0 -1
  73. package/.output/public/_nuxt/builds/meta/bf43874b-06d3-4e20-a84d-e5b0d09e8a27.json +0 -1
  74. package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +0 -1
  75. package/.output/public/_nuxt/eUGyJdiT.js +0 -1
  76. package/.output/public/_nuxt/pages.BkE-AfIb.css +0 -1
  77. package/.output/public/_nuxt/teams.CUMnbQGf.css +0 -1
  78. package/.output/server/chunks/build/agents-B10wmFri.mjs.map +0 -1
  79. package/.output/server/chunks/build/channel-templates-CpWxVk5A.mjs.map +0 -1
  80. package/.output/server/chunks/build/pages-BmRUbGUi.mjs.map +0 -1
  81. package/.output/server/chunks/build/teams-CNflUtPh.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ .harness-caps[data-v-d7a5c98d]{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.harness-cap[data-v-d7a5c98d]{border:1px solid var(--border,#2a3a4a);opacity:.75;border-radius:3px;padding:0 6px;font-size:11px;line-height:18px}.harness-status[data-v-d7a5c98d]{color:var(--ink-faint);align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.harness-status.off[data-v-d7a5c98d]{color:var(--danger,#c25a4e)}.h-cell[data-v-d7a5c98d]{font-family:var(--font-mono);align-items:center;gap:6px;font-size:12px;display:inline-flex}.h-dot[data-v-d7a5c98d]{background:var(--ok,#4a6b57);border-radius:50%;width:6px;height:6px}.h-cell.off .h-dot[data-v-d7a5c98d]{background:var(--danger,#c25a4e)}.h-cell.off[data-v-d7a5c98d]{opacity:.75}.h-miss[data-v-d7a5c98d]{color:var(--danger,#c25a4e);font-family:var(--font-sans);font-size:11px}.page[data-v-d7a5c98d]{padding:4px}.head[data-v-d7a5c98d]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-d7a5c98d]{margin:0 0 4px}.sub[data-v-d7a5c98d]{opacity:.55;margin:0;font-size:12px}.toolbar[data-v-d7a5c98d]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-note[data-v-d7a5c98d]{color:var(--ink-faint);align-items:center;gap:5px;font-size:11px;display:inline-flex}.tpl-name[data-v-d7a5c98d]{align-items:center;gap:6px;display:inline-flex}.vis-tag[data-v-d7a5c98d]{margin-right:8px}.owner[data-v-d7a5c98d]{color:var(--ink-soft);font-size:12px}.inst[data-v-d7a5c98d]{align-items:center;gap:8px;padding:2px 0;font-size:12px;display:flex}.inst-ch[data-v-d7a5c98d],.inst-id[data-v-d7a5c98d]{font-family:var(--font-mono);opacity:.6}.empty[data-v-d7a5c98d]{opacity:.4;padding:6px 0;font-size:12px}
@@ -1 +1 @@
1
- {"id":"bf43874b-06d3-4e20-a84d-e5b0d09e8a27","timestamp":1788685036117}
1
+ {"id":"23c30854-f9e1-4651-bc3a-b695ef5faca4","timestamp":1788693267652}
@@ -0,0 +1 @@
1
+ {"id":"23c30854-f9e1-4651-bc3a-b695ef5faca4","timestamp":1788693267652,"prerendered":[]}
@@ -0,0 +1 @@
1
+ .page[data-v-0c2ddfe8]{padding:4px}.head[data-v-0c2ddfe8]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-0c2ddfe8]{margin:0 0 4px}.sub[data-v-0c2ddfe8]{opacity:.55;margin:0;font-size:12px}.toolbar[data-v-0c2ddfe8]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-note[data-v-0c2ddfe8]{color:var(--ink-faint);align-items:center;gap:5px;font-size:11px;display:inline-flex}.grid[data-v-0c2ddfe8]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.card[data-v-0c2ddfe8]{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);transition:border-color var(--transition-fast);flex-direction:column;gap:8px;padding:14px;display:flex}.card[data-v-0c2ddfe8]:hover{border-color:var(--line-strong)}.card-head[data-v-0c2ddfe8]{align-items:center;gap:8px;display:flex}.name[data-v-0c2ddfe8]{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:15px;font-weight:600;overflow:hidden}.vis-tag[data-v-0c2ddfe8]{margin-right:2px}.owner[data-v-0c2ddfe8]{color:var(--ink-faint);font-size:11px}.desc[data-v-0c2ddfe8]{color:var(--ink-soft);margin:0;font-size:12px}.member-line[data-v-0c2ddfe8]{align-items:center;gap:6px;font-size:12px;display:flex}.lead-name[data-v-0c2ddfe8]{font-weight:500}.count[data-v-0c2ddfe8]{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.scenario[data-v-0c2ddfe8]{font-family:var(--font-mono);color:var(--ink-faint);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.card-foot[data-v-0c2ddfe8]{align-items:center;gap:6px;margin-top:2px;display:flex}.ws[data-v-0c2ddfe8]{max-width:60%;font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:10.5px;display:inline-flex;overflow:hidden}.spacer[data-v-0c2ddfe8]{flex:auto}.card.placeholder[data-v-0c2ddfe8]{opacity:.55;cursor:pointer;border-style:dashed;justify-content:center;align-items:center;min-height:160px;font-size:13px}.big[data-v-0c2ddfe8]{font-size:28px}
@@ -1 +1 @@
1
- import{C as e,G as t,H as n,Ht as ee,St as r,Wt as i,a,b as o,f as s,ft as c,g as l,h as u,lt as d,m as f,mt as p,nt as m,p as h,t as g,x as _}from"./BSCpFtzG.js";import{d as te}from"./-6OnbLFb.js";import{n as v}from"./B5S_UyaC.js";import{n as y}from"./BeIfu4N3.js";import{t as ne}from"./VLI2Zy4t.js";import{n as re,r as b,t as ie}from"./eHYnGew0.js";import{t as ae}from"./BN_PdN3J.js";import{r as x}from"./D-Ca4BGY.js";import{r as oe,t as se}from"./RzXYI9FM.js";import{i as ce,n as le,t as ue}from"./B-xskWta.js";import{t as de}from"./BBwMH_hG.js";import{t as fe}from"./DTYBfjRY.js";import{t as pe}from"./ORt9oDIy2.js";import{t as me}from"./C9f8QMp12.js";import{t as he}from"./DoLasgPj2.js";import{t as S}from"./BcrN7QEl2.js";import{t as C}from"./G0qIw7Gq2.js";import{t as w}from"./kZV5TQvh2.js";import{t as T}from"./CNs_Ozdc.js";var E={class:`page`},D={class:`head`},O={class:`sub`},k={class:`toolbar`},A={key:0,class:`admin-note`},j={class:`grid`},M={class:`card-head`},N={class:`name`},P={class:`owner`},F={key:0,class:`desc`},I={class:`member-line`},L={class:`lead-name`},R={key:0,class:`count`},ge={key:1,class:`count`},_e=[`title`],ve={class:`card-foot`},ye=[`title`],z=g(e({__name:`channel-templates`,setup(e){let{t:g}=y();T({layout:`default`});let z=w(),B=S(),V=p([]),H=p([]),U=p(!1),W=async()=>{U.value=!0;try{let[e,t]=await Promise.all([z.listChannelTemplates(),z.listTemplates()]);V.value=e?.data??[],H.value=t?.data??[]}finally{U.value=!1}};W();let G=p(`all`),K=s(()=>{let e=B.user?.id;switch(G.value){case`mine`:return V.value.filter(t=>t.ownerUserId===e);case`public`:return V.value.filter(e=>e.visibility===`public`);case`builtin`:return V.value.filter(e=>e.isBuiltin);default:return V.value}}),q=e=>!e.isBuiltin&&(e.ownerUserId===B.user?.id||B.isAdmin),J=e=>e.isBuiltin?{text:g(`ctpl.k3x23c021`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:g(`ctpl.k3wv1t022`),color:`green`}:{text:g(`ctpl.k447jj023`),color:`default`},be=e=>`templateId`in e?H.value.find(t=>t.id===e.templateId)?.name??e.templateId.slice(0,8):e.inline.name,Y=p(!1),X=c({name:``,description:``,scenarioPrompt:``,workspace:``,visibility:`private`,leadId:``,memberIds:[]}),Z=()=>{X.name=``,X.description=``,X.scenarioPrompt=``,X.workspace=``,X.visibility=`private`,X.leadId=``,X.memberIds=[],Y.value=!0},xe=async()=>{if(!X.name.trim()){x.warning(g(`ctpl.k1i0ji0y024`));return}let e=X.leadId?H.value.find(e=>e.id===X.leadId):void 0,t=X.memberIds.filter(e=>e!==X.leadId).map(e=>({templateId:e,role:`worker`}));try{await z.createChannelTemplate({name:X.name.trim(),description:X.description||void 0,scenarioPrompt:X.scenarioPrompt||void 0,workspace:X.workspace||void 0,lead:e?{name:e.name,harness:e.harness,config:e.config}:null,members:t,visibility:X.visibility}),x.success(g(`ctpl.kyppebc025`)),Y.value=!1,W()}catch(e){x.error(C(e))}},Se=async(e,t)=>{try{await z.updateChannelTemplate(e.id,{visibility:t?`public`:`private`}),x.success(g(t?`ctpl.kkziya3026`:`ctpl.k1xxabaf027`)),W()}catch(e){x.error(C(e))}},Q=p(null),Ce=async e=>{Q.value=e.id;try{let t=(await z.instantiateChannelTemplate(e.id))?.data;x.success(g(`ctpl.kefkfnl030`,{p0:e.name,p1:t?.agentCount??0}))}catch(e){x.error(C(e))}finally{Q.value=null}},$=async e=>{await z.deleteChannelTemplate(e.id),x.success(g(`ctpl.k1oxfuqj028`)),W()};return v({title:()=>g(`titles.ctpl`)}),(e,s)=>{let c=ne,p=pe,g=ie,v=ue,y=he,x=fe,S=me,C=se,w=b,T=ae,z=oe,W=le,we=ce,Te=re,Ee=de;return n(),l(`div`,E,[h(`div`,D,[h(`div`,null,[h(`h2`,null,`Channel `+i(e.$t(`ctpl.k1f54iqd029`)),1),h(`p`,O,i(e.$t(`ctpl.k18gglgp011`)),1)]),_(p,null,{default:m(()=>[_(c,{onClick:s[0]||=t=>(`navigateTo`in e?e.navigateTo:r(te))(`/workshop`)},{default:m(()=>[o(i(e.$t(`ctpl.krpx6qa012`)),1)]),_:1}),_(c,{type:`primary`,onClick:Z},{default:m(()=>[o(i(e.$t(`ctpl.k1efixrj013`)),1)]),_:1})]),_:1})]),h(`div`,k,[_(g,{value:r(G),"onUpdate:value":s[1]||=e=>d(G)?G.value=e:null,size:`small`,options:[{value:`all`,label:e.$t(`chips.chipAll`,{n:r(V).length})},{value:`mine`,label:e.$t(`chips.mine`)},{value:`public`,label:e.$t(`chips.public`)},{value:`builtin`,label:e.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),r(B).isAdmin?(n(),l(`span`,A,[s[10]||=h(`span`,{class:`i-tabler-shield-check`},null,-1),o(` `+i(e.$t(`ctpl.ka1gpdj014`)),1)])):u(``,!0)]),_(S,{spinning:r(U)},{default:m(()=>[h(`div`,j,[(n(!0),l(a,null,t(r(K),t=>(n(),l(`div`,{key:t.id,class:`card`},[h(`div`,M,[h(`span`,N,i(t.name),1),_(v,{color:J(t).color,class:`vis-tag`},{default:m(()=>[J(t).icon?(n(),l(`span`,{key:0,class:ee(J(t).icon)},null,2)):u(``,!0),o(i(J(t).text),1)]),_:2},1032,[`color`]),!t.isBuiltin&&q(t)?(n(),f(y,{key:0,checked:t.visibility===`public`,size:`small`,"checked-children":`公开`,"un-checked-children":`私有`,onChange:e=>Se(t,e===!0)},null,8,[`checked`,`onChange`])):u(``,!0),h(`span`,P,i(t.ownerName??`-`),1)]),t.description?(n(),l(`p`,F,i(t.description),1)):u(``,!0),h(`div`,I,[s[12]||=h(`span`,{class:`i-tabler-users-group`},null,-1),t.lead||t.members.length>0?(n(),l(a,{key:0},[_(v,{color:`gold`},{default:m(()=>[...s[11]||=[o(` lead `,-1)]]),_:1}),h(`span`,L,i(t.lead?.name??be(t.members.find(e=>e.role===`lead`)??t.members[0])),1),t.members.filter(e=>e.role!==`lead`).length>0?(n(),l(`span`,R,`+ `+i(t.members.filter(e=>e.role!==`lead`).length)+` worker`,1)):u(``,!0)],64)):(n(),l(`span`,ge,i(e.$t(`ctpl.k3rx4ps015`)),1))]),t.scenarioPrompt?(n(),l(`div`,{key:1,class:`scenario`,title:t.scenarioPrompt},i(t.scenarioPrompt.slice(0,90))+i(t.scenarioPrompt.length>90?`…`:``),9,_e)):u(``,!0),h(`div`,ve,[t.workspace?(n(),l(`span`,{key:0,class:`ws`,title:t.workspace},[s[13]||=h(`span`,{class:`i-tabler-folder`},null,-1),o(` `+i(t.workspace),1)],8,ye)):u(``,!0),s[14]||=h(`span`,{class:`spacer`},null,-1),q(t)?(n(),f(x,{key:1,title:e.$t(`ctpl.k117jag9001`),onConfirm:e=>$(t)},{default:m(()=>[_(c,{size:`small`,type:`text`,danger:``},{default:m(()=>[o(i(e.$t(`ctpl.k3xakp016`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])):u(``,!0),_(c,{size:`small`,type:`primary`,ghost:``,loading:r(Q)===t.id,title:e.$t(`ctpl.knjomku002`),onClick:e=>Ce(t)},{default:m(()=>[o(i(e.$t(`ctpl.k3mr1fo017`)),1)]),_:1},8,[`loading`,`title`,`onClick`])])]))),128)),r(K).length===0?(n(),l(`div`,{key:0,class:`card placeholder`,onClick:Z},[s[15]||=h(`span`,{class:`i-tabler-layout-grid-add big`},null,-1),h(`span`,null,i(e.$t(`ctpl.k19fglby018`)),1)])):u(``,!0)])]),_:1},8,[`spinning`]),_(Ee,{open:r(Y),"onUpdate:open":s[9]||=e=>d(Y)?Y.value=e:null,title:`新建 Channel 模板`,"ok-text":`创建`,"cancel-text":`取消`,onOk:xe},{default:m(()=>[_(Te,{layout:`vertical`},{default:m(()=>[_(w,{label:e.$t(`ctpl.k1f55q76003`)},{default:m(()=>[_(C,{value:r(X).name,"onUpdate:value":s[2]||=e=>r(X).name=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k40gkk004`)},{default:m(()=>[_(C,{value:r(X).description,"onUpdate:value":s[3]||=e=>r(X).description=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:`Lead 模板(实例化时克隆为 channel lead)`},{default:m(()=>[_(T,{value:r(X).leadId,"onUpdate:value":s[4]||=e=>r(X).leadId=e,"allow-clear":``,placeholder:e.$t(`ctpl.k1ju32o7005`),options:r(H).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),_(w,{label:e.$t(`ctpl.k5uq1js006`)},{default:m(()=>[_(T,{value:r(X).memberIds,"onUpdate:value":s[5]||=e=>r(X).memberIds=e,mode:`multiple`,placeholder:e.$t(`ctpl.kqmdkc9007`),options:r(H).filter(e=>e.id!==r(X).leadId).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k1q87yho008`)},{default:m(()=>[_(z,{value:r(X).scenarioPrompt,"onUpdate:value":s[6]||=e=>r(X).scenarioPrompt=e,rows:3},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.kk4u5cr009`)},{default:m(()=>[_(C,{value:r(X).workspace,"onUpdate:value":s[7]||=e=>r(X).workspace=e,placeholder:`data/workspaces/<channelId>`},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k3lrqn0010`)},{default:m(()=>[_(we,{value:r(X).visibility,"onUpdate:value":s[8]||=e=>r(X).visibility=e},{default:m(()=>[_(W,{value:`private`},{default:m(()=>[o(i(e.$t(`ctpl.k17jfge3019`)),1)]),_:1}),_(W,{value:`public`},{default:m(()=>[o(i(e.$t(`ctpl.k191u0u5020`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`])])}}}),[[`__scopeId`,`data-v-0726e755`]]);export{z as default};
1
+ import{C as e,G as t,H as n,Ht as ee,St as r,Wt as i,a,b as o,f as s,ft as c,g as l,h as u,lt as d,m as f,mt as p,nt as m,p as h,t as g,x as _}from"./BSCpFtzG.js";import{d as te}from"./-6OnbLFb.js";import{n as v}from"./B5S_UyaC.js";import{n as y}from"./BeIfu4N3.js";import{t as ne}from"./VLI2Zy4t.js";import{n as re,r as b,t as ie}from"./eHYnGew0.js";import{t as ae}from"./BN_PdN3J.js";import{r as x}from"./D-Ca4BGY.js";import{r as oe,t as se}from"./RzXYI9FM.js";import{i as ce,n as le,t as ue}from"./B-xskWta.js";import{t as de}from"./BBwMH_hG.js";import{t as fe}from"./DTYBfjRY.js";import{t as pe}from"./ORt9oDIy2.js";import{t as me}from"./C9f8QMp12.js";import{t as he}from"./DoLasgPj2.js";import{t as S}from"./BcrN7QEl2.js";import{t as C}from"./G0qIw7Gq2.js";import{t as w}from"./kZV5TQvh2.js";import{t as T}from"./CNs_Ozdc.js";var E={class:`page`},D={class:`head`},O={class:`sub`},k={class:`toolbar`},A={key:0,class:`admin-note`},j={class:`grid`},M={class:`card-head`},N={class:`name`},P={class:`owner`},F={key:0,class:`desc`},I={class:`member-line`},L={class:`lead-name`},R={key:0,class:`count`},ge={key:1,class:`count`},_e=[`title`],ve={class:`card-foot`},ye=[`title`],z=g(e({__name:`channel-templates`,setup(e){let{t:g}=y();T({layout:`default`});let z=w(),B=S(),V=p([]),H=p([]),U=p(!1),W=async()=>{U.value=!0;try{let[e,t]=await Promise.all([z.listChannelTemplates(),z.listTemplates()]);V.value=e?.data??[],H.value=t?.data??[]}finally{U.value=!1}};W();let G=p(`all`),K=s(()=>{let e=B.user?.id;switch(G.value){case`mine`:return V.value.filter(t=>t.ownerUserId===e);case`public`:return V.value.filter(e=>e.visibility===`public`);case`builtin`:return V.value.filter(e=>e.isBuiltin);default:return V.value}}),q=e=>!e.isBuiltin&&(e.ownerUserId===B.user?.id||B.isAdmin),J=e=>e.isBuiltin?{text:g(`ctpl.k3x23c021`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:g(`ctpl.k3wv1t022`),color:`green`}:{text:g(`ctpl.k447jj023`),color:`default`},be=e=>`templateId`in e?H.value.find(t=>t.id===e.templateId)?.name??e.templateId.slice(0,8):e.inline.name,Y=p(!1),X=c({name:``,description:``,scenarioPrompt:``,workspace:``,visibility:`private`,leadId:``,memberIds:[]}),Z=()=>{X.name=``,X.description=``,X.scenarioPrompt=``,X.workspace=``,X.visibility=`private`,X.leadId=``,X.memberIds=[],Y.value=!0},xe=async()=>{if(!X.name.trim()){x.warning(g(`ctpl.k1i0ji0y024`));return}let e=X.leadId?H.value.find(e=>e.id===X.leadId):void 0,t=X.memberIds.filter(e=>e!==X.leadId).map(e=>({templateId:e,role:`worker`}));try{await z.createChannelTemplate({name:X.name.trim(),description:X.description||void 0,scenarioPrompt:X.scenarioPrompt||void 0,workspace:X.workspace||void 0,lead:e?{name:e.name,harness:e.harness,config:e.config}:null,members:t,visibility:X.visibility}),x.success(g(`ctpl.kyppebc025`)),Y.value=!1,W()}catch(e){x.error(C(e))}},Se=async(e,t)=>{try{await z.updateChannelTemplate(e.id,{visibility:t?`public`:`private`}),x.success(g(t?`ctpl.kkziya3026`:`ctpl.k1xxabaf027`)),W()}catch(e){x.error(C(e))}},Q=p(null),Ce=async e=>{Q.value=e.id;try{let t=(await z.instantiateChannelTemplate(e.id))?.data;x.success(g(`ctpl.kefkfnl030`,{p0:e.name,p1:t?.agentCount??0}))}catch(e){x.error(C(e))}finally{Q.value=null}},$=async e=>{await z.deleteChannelTemplate(e.id),x.success(g(`ctpl.k1oxfuqj028`)),W()};return v({title:()=>g(`titles.ctpl`)}),(e,s)=>{let c=ne,p=pe,g=ie,v=ue,y=he,x=fe,S=me,C=se,w=b,T=ae,z=oe,W=le,we=ce,Te=re,Ee=de;return n(),l(`div`,E,[h(`div`,D,[h(`div`,null,[h(`h2`,null,`Channel `+i(e.$t(`ctpl.k1f54iqd029`)),1),h(`p`,O,i(e.$t(`ctpl.k18gglgp011`)),1)]),_(p,null,{default:m(()=>[_(c,{onClick:s[0]||=t=>(`navigateTo`in e?e.navigateTo:r(te))(`/workshop`)},{default:m(()=>[o(i(e.$t(`ctpl.krpx6qa012`)),1)]),_:1}),_(c,{type:`primary`,onClick:Z},{default:m(()=>[o(i(e.$t(`ctpl.k1efixrj013`)),1)]),_:1})]),_:1})]),h(`div`,k,[_(g,{value:r(G),"onUpdate:value":s[1]||=e=>d(G)?G.value=e:null,size:`small`,options:[{value:`all`,label:e.$t(`chips.chipAll`,{n:r(V).length})},{value:`mine`,label:e.$t(`chips.mine`)},{value:`public`,label:e.$t(`chips.public`)},{value:`builtin`,label:e.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),r(B).isAdmin?(n(),l(`span`,A,[s[10]||=h(`span`,{class:`i-tabler-shield-check`},null,-1),o(` `+i(e.$t(`ctpl.ka1gpdj014`)),1)])):u(``,!0)]),_(S,{spinning:r(U)},{default:m(()=>[h(`div`,j,[(n(!0),l(a,null,t(r(K),t=>(n(),l(`div`,{key:t.id,class:`card`},[h(`div`,M,[h(`span`,N,i(t.name),1),_(v,{color:J(t).color,class:`vis-tag`},{default:m(()=>[J(t).icon?(n(),l(`span`,{key:0,class:ee(J(t).icon)},null,2)):u(``,!0),o(i(J(t).text),1)]),_:2},1032,[`color`]),!t.isBuiltin&&q(t)?(n(),f(y,{key:0,checked:t.visibility===`public`,size:`small`,"checked-children":`公开`,"un-checked-children":`私有`,onChange:e=>Se(t,e===!0)},null,8,[`checked`,`onChange`])):u(``,!0),h(`span`,P,i(t.ownerName??`-`),1)]),t.description?(n(),l(`p`,F,i(t.description),1)):u(``,!0),h(`div`,I,[s[12]||=h(`span`,{class:`i-tabler-users-group`},null,-1),t.lead||t.members.length>0?(n(),l(a,{key:0},[_(v,{color:`gold`},{default:m(()=>[...s[11]||=[o(` lead `,-1)]]),_:1}),h(`span`,L,i(t.lead?.name??be(t.members.find(e=>e.role===`lead`)??t.members[0])),1),t.members.filter(e=>e.role!==`lead`).length>0?(n(),l(`span`,R,`+ `+i(t.members.filter(e=>e.role!==`lead`).length)+` worker`,1)):u(``,!0)],64)):(n(),l(`span`,ge,i(e.$t(`ctpl.k3rx4ps015`)),1))]),t.scenarioPrompt?(n(),l(`div`,{key:1,class:`scenario`,title:t.scenarioPrompt},i(t.scenarioPrompt.slice(0,90))+i(t.scenarioPrompt.length>90?`…`:``),9,_e)):u(``,!0),h(`div`,ve,[t.workspace?(n(),l(`span`,{key:0,class:`ws`,title:t.workspace},[s[13]||=h(`span`,{class:`i-tabler-folder`},null,-1),o(` `+i(t.workspace),1)],8,ye)):u(``,!0),s[14]||=h(`span`,{class:`spacer`},null,-1),q(t)?(n(),f(x,{key:1,title:e.$t(`ctpl.k117jag9001`),onConfirm:e=>$(t)},{default:m(()=>[_(c,{size:`small`,type:`text`,danger:``},{default:m(()=>[o(i(e.$t(`ctpl.k3xakp016`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])):u(``,!0),_(c,{size:`small`,type:`primary`,ghost:``,loading:r(Q)===t.id,title:e.$t(`ctpl.knjomku002`),onClick:e=>Ce(t)},{default:m(()=>[o(i(e.$t(`ctpl.k3mr1fo017`)),1)]),_:1},8,[`loading`,`title`,`onClick`])])]))),128)),r(K).length===0?(n(),l(`div`,{key:0,class:`card placeholder`,onClick:Z},[s[15]||=h(`span`,{class:`i-tabler-layout-grid-add big`},null,-1),h(`span`,null,i(e.$t(`ctpl.k19fglby018`)),1)])):u(``,!0)])]),_:1},8,[`spinning`]),_(Ee,{open:r(Y),"onUpdate:open":s[9]||=e=>d(Y)?Y.value=e:null,title:`新建 Channel 模板`,"ok-text":`创建`,"cancel-text":`取消`,onOk:xe},{default:m(()=>[_(Te,{layout:`vertical`},{default:m(()=>[_(w,{label:e.$t(`ctpl.k1f55q76003`)},{default:m(()=>[_(C,{value:r(X).name,"onUpdate:value":s[2]||=e=>r(X).name=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k40gkk004`)},{default:m(()=>[_(C,{value:r(X).description,"onUpdate:value":s[3]||=e=>r(X).description=e},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:`Lead 模板(实例化时克隆为 channel lead)`},{default:m(()=>[_(T,{value:r(X).leadId,"onUpdate:value":s[4]||=e=>r(X).leadId=e,"allow-clear":``,placeholder:e.$t(`ctpl.k1ju32o7005`),options:r(H).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),_(w,{label:e.$t(`ctpl.k5uq1js006`)},{default:m(()=>[_(T,{value:r(X).memberIds,"onUpdate:value":s[5]||=e=>r(X).memberIds=e,mode:`multiple`,placeholder:e.$t(`ctpl.kqmdkc9007`),options:r(H).filter(e=>e.id!==r(X).leadId).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k1q87yho008`)},{default:m(()=>[_(z,{value:r(X).scenarioPrompt,"onUpdate:value":s[6]||=e=>r(X).scenarioPrompt=e,rows:3},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.kk4u5cr009`)},{default:m(()=>[_(C,{value:r(X).workspace,"onUpdate:value":s[7]||=e=>r(X).workspace=e,placeholder:`data/workspaces/<channelId>`},null,8,[`value`])]),_:1},8,[`label`]),_(w,{label:e.$t(`ctpl.k3lrqn0010`)},{default:m(()=>[_(we,{value:r(X).visibility,"onUpdate:value":s[8]||=e=>r(X).visibility=e},{default:m(()=>[_(W,{value:`private`},{default:m(()=>[o(i(e.$t(`ctpl.k17jfge3019`)),1)]),_:1}),_(W,{value:`public`},{default:m(()=>[o(i(e.$t(`ctpl.k191u0u5020`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`])])}}}),[[`__scopeId`,`data-v-0c2ddfe8`]]);export{z as default};