@loicngr/kobo 1.6.6 → 1.6.7
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.
- package/dist/server/db/migrations.js +13 -0
- package/dist/server/db/schema.js +8 -0
- package/dist/server/index.js +3 -1
- package/dist/server/routes/workspaces.js +30 -0
- package/dist/server/services/agent/orchestrator.js +18 -0
- package/dist/server/services/wakeup-service.js +154 -0
- package/dist/server/services/workspace-service.js +7 -0
- package/package.json +1 -1
- package/src/client/dist/spa/assets/{ActivityFeed-BmGNYNux.js → ActivityFeed-yFyT9xvb.js} +1 -1
- package/src/client/dist/spa/assets/{CreatePage-BC4P1Xq2.js → CreatePage-DRaf5RN1.js} +1 -1
- package/src/client/dist/spa/assets/{DiffViewer-C6d1h3-o.js → DiffViewer-DQvXQTEa.js} +2 -2
- package/src/client/dist/spa/assets/{HealthPage-usVzGjv-.js → HealthPage-Bme28RgK.js} +1 -1
- package/src/client/dist/spa/assets/{MainLayout-DcltT6j8.js → MainLayout-DbElmr1D.js} +2 -2
- package/src/client/dist/spa/assets/{SearchPage-DqVwM-Nw.js → SearchPage-C-WJxRPe.js} +1 -1
- package/src/client/dist/spa/assets/{SettingsPage-BKKAIJXH.js → SettingsPage-BfJMIJnY.js} +1 -1
- package/src/client/dist/spa/assets/{WorkspacePage-BIquds-p.css → WorkspacePage-CM676R3B.css} +1 -1
- package/src/client/dist/spa/assets/WorkspacePage-CjPLcpSW.js +4 -0
- package/src/client/dist/spa/assets/{build-path-tree-BaiH1Val.js → build-path-tree-DuCsR4mF.js} +1 -1
- package/src/client/dist/spa/assets/{cssMode-DV77SXAp.js → cssMode-Du10lHBq.js} +1 -1
- package/src/client/dist/spa/assets/{documents-DLpLMq-0.js → documents-AXuTuYab.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api-BGhylbsn.js → editor.api-rtN9xKX_.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-qZAJW6DY.js → editor.main-Bjkd_T6v.js} +3 -3
- package/src/client/dist/spa/assets/{freemarker2-BKAXCv8N.js → freemarker2-A3kMxtRq.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-v0nKPEWi.js → handlebars-D_rpe5yL.js} +1 -1
- package/src/client/dist/spa/assets/{html-BRupIzA4.js → html-DXwQospq.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-BihW-P2O.js → htmlMode-D5FQHZJa.js} +1 -1
- package/src/client/dist/spa/assets/i18n-ByXz1S2J.js +1 -0
- package/src/client/dist/spa/assets/index-C-IVb0lG.js +2 -0
- package/src/client/dist/spa/assets/{javascript-BJDZ_NcB.js → javascript-Co6I4XSh.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-C9JdqFNv.js → jsonMode-Bp7yDKPn.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-Lk-oZkkL.js → liquid-DNcFzYOe.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-DXTW2dI0.js → mdx-DBavZVIR.js} +1 -1
- package/src/client/dist/spa/assets/{models-D_Rq_B4d.js → models-CBrNFRtB.js} +1 -1
- package/src/client/dist/spa/assets/{monaco.contribution-sDg_eF3E.js → monaco.contribution-DUmoyOMN.js} +2 -2
- package/src/client/dist/spa/assets/{python-DWz3NVjv.js → python-DmL-S2ZK.js} +1 -1
- package/src/client/dist/spa/assets/{razor-BwkYCkDS.js → razor-Bpa1oEQM.js} +1 -1
- package/src/client/dist/spa/assets/{tsMode-C0izvBnL.js → tsMode-LSHCraGE.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-CKsF3o2F.js → typescript-2KSBXoSD.js} +1 -1
- package/src/client/dist/spa/assets/{xml-D2KHAqfG.js → xml-CCjUFDf8.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-Bh60Z-Sr.js → yaml-w5memWnS.js} +1 -1
- package/src/client/dist/spa/index.html +1 -1
- package/src/client/dist/spa/assets/WorkspacePage-B-iEkrN1.js +0 -4
- package/src/client/dist/spa/assets/i18n-B4u2URrK.js +0 -1
- package/src/client/dist/spa/assets/index-CDTpNA2L.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DiffViewer-
|
|
2
|
-
import{E as e,F as t,H as n,I as r,L as i,M as a,N as o,Q as s,R as c,S as l,U as u,W as d,Z as f,_ as p,_t as m,bt as h,d as g,f as _,g as v,h as y,k as b,l as x,p as S,r as C,rt as w,u as T,v as E,w as D,y as O,yt as k}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{E as A,F as j,I as M,L as N,O as P,a as ee,i as te,l as ne,n as re,r as F,s as ie,t as I}from"./QIcon-B0-pH3Qs.js";import{l as ae,t as L}from"./QSeparator-DNSiXYrN.js";import{o as oe,s as se,t as ce}from"./QDialog-G448EJG4.js";import{i as le,r as R,t as ue}from"./symbols-DCYodwb2.js";import{S as de,_ as fe,b as pe,r as z,v as me,y as he}from"./scroll-C-Vz5BD9.js";import{n as ge,r as _e,t as B}from"./QBtn-CyzfM9-_.js";import{t as ve}from"./use-id-BmXMngYX.js";import{n as ye}from"./vue-i18n-eUDnMrPl.js";import{D as be,E as xe,O as Se,S as Ce,_ as we,b as Te,d as Ee,f as De,g as Oe,i as ke,m as Ae,p as je,r as Me,t as Ne,v as Pe,x as Fe}from"./index-CDTpNA2L.js";import{n as Ie,t as V}from"./QItemSection-BzWLL-V-.js";import{r as Le}from"./touch-B2uuAH_y.js";import{n as Re,t as ze}from"./TouchPan-Y_Bxzun2.js";import{d as Be,t as H}from"./QTooltip-DbEBexRN.js";import{n as Ve,r as He,t as Ue}from"./documents-DLpLMq-0.js";import{t as We}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as Ge}from"./QBadge-Di02fu2H.js";import{t as Ke}from"./QSpace-0zdF1m5x.js";import{i as qe,r as Je,t as Ye}from"./build-path-tree-BaiH1Val.js";import{i as Xe,n as Ze,r as Qe,t as $e}from"./QTabPanels-Cw4nnIbR.js";import{n as et,t as tt}from"./QChip-1nQ_KMFF.js";import{r as nt,t as rt}from"./rate-limit-labels-Su-L56A2.js";import{t as it}from"./use-quasar-BBrzedjR.js";import{t as at}from"./QList-D2GuTeLl.js";import{t as ot}from"./ClosePopup-DTgXzcoa.js";import{t as st}from"./formatters-D7eTm7uK.js";var ct=150,lt=P({name:`QDrawer`,inheritAttrs:!1,props:{...pe,...F,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...he,`onLayout`,`miniState`],setup(t,{slots:r,emit:i,attrs:o}){let c=O(),{proxy:{$q:u}}=c,f=re(t,u),{preventBodyScroll:p}=oe(),{registerTimeout:m,removeTimeout:h}=de(),g=D(R,ue);if(g===ue)return console.error(`QDrawer needs to be child of QLayout`),ue;let _,v=null,y,S=s(t.behavior===`mobile`||t.behavior!==`desktop`&&g.totalWidth.value<=t.breakpoint),C=x(()=>t.mini===!0&&S.value!==!0),w=x(()=>C.value===!0?t.miniWidth:t.width),T=s(t.showIfAbove===!0&&S.value===!1?!0:t.modelValue===!0),E=x(()=>t.persistent!==!0&&(S.value===!0||he.value===!0));function k(e,t){if(N(),e!==!1&&g.animate(),De(0),S.value===!0){let e=g.instances[le.value];e?.belowBreakpoint===!0&&e.hide(!1),Oe(1),g.isContainer.value!==!0&&p(!0)}else Oe(0),e!==!1&&ke(!1);m(()=>{e!==!1&&ke(!0),t!==!0&&i(`show`,e)},ct)}function A(e,t){P(),e!==!1&&g.animate(),Oe(0),De(F.value*w.value),Ne(),t===!0?h():m(()=>{i(`hide`,e)},ct)}let{show:j,hide:M}=me({showing:T,hideOnRouteChange:E,handleShow:k,handleHide:A}),{addToHistory:N,removeFromHistory:P}=se(T,M,E),ee={belowBreakpoint:S,hide:M},ne=x(()=>t.side===`right`),F=x(()=>(u.lang.rtl===!0?-1:1)*(ne.value===!0?1:-1)),I=s(0),ae=s(!1),L=s(!1),ce=s(w.value*F.value),le=x(()=>ne.value===!0?`left`:`right`),fe=x(()=>T.value===!0&&S.value===!1&&t.overlay===!1?t.miniToOverlay===!0?t.miniWidth:w.value:0),pe=x(()=>t.overlay===!0||t.miniToOverlay===!0||g.view.value.indexOf(ne.value?`R`:`L`)!==-1||u.platform.is.ios===!0&&g.isContainer.value===!0),z=x(()=>t.overlay===!1&&T.value===!0&&S.value===!1),he=x(()=>t.overlay===!0&&T.value===!0&&S.value===!1),ge=x(()=>`fullscreen q-drawer__backdrop`+(T.value===!1&&ae.value===!1?` hidden`:``)),_e=x(()=>({backgroundColor:`rgba(0,0,0,${I.value*.4})`})),B=x(()=>ne.value===!0?g.rows.value.top[2]===`r`:g.rows.value.top[0]===`l`),ve=x(()=>ne.value===!0?g.rows.value.bottom[2]===`r`:g.rows.value.bottom[0]===`l`),ye=x(()=>{let e={};return g.header.space===!0&&B.value===!1&&(pe.value===!0?e.top=`${g.header.offset}px`:g.header.space===!0&&(e.top=`${g.header.size}px`)),g.footer.space===!0&&ve.value===!1&&(pe.value===!0?e.bottom=`${g.footer.offset}px`:g.footer.space===!0&&(e.bottom=`${g.footer.size}px`)),e}),be=x(()=>{let e={width:`${w.value}px`,transform:`translateX(${ce.value}px)`};return S.value===!0?e:Object.assign(e,ye.value)}),xe=x(()=>`q-drawer__content fit `+(g.isContainer.value===!0?`overflow-auto`:`scroll`)),Se=x(()=>`q-drawer q-drawer--${t.side}`+(L.value===!0?` q-drawer--mini-animate`:``)+(t.bordered===!0?` q-drawer--bordered`:``)+(f.value===!0?` q-drawer--dark q-dark`:``)+(ae.value===!0?` no-transition`:T.value===!0?``:` q-layout--prevent-focus`)+(S.value===!0?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${C.value===!0?`mini`:`standard`}`+(pe.value===!0||z.value!==!0?` fixed`:``)+(t.overlay===!0||t.miniToOverlay===!0?` q-drawer--on-top`:``)+(B.value===!0?` q-drawer--top-padding`:``))),Ce=x(()=>[[ze,je,void 0,{[u.lang.rtl===!0?t.side:le.value]:!0,mouse:!0}]]),we=x(()=>[[ze,Me,void 0,{[u.lang.rtl===!0?le.value:t.side]:!0,mouse:!0}]]),Te=x(()=>[[ze,Me,void 0,{[u.lang.rtl===!0?le.value:t.side]:!0,mouse:!0,mouseAllDir:!0}]]);function Ee(){Fe(S,t.behavior===`mobile`||t.behavior!==`desktop`&&g.totalWidth.value<=t.breakpoint)}n(S,e=>{e===!0?(_=T.value,T.value===!0&&M(!1)):t.overlay===!1&&t.behavior!==`mobile`&&_!==!1&&(T.value===!0?(De(0),Oe(0),Ne()):j(!1))}),n(()=>t.side,(e,t)=>{g.instances[t]===ee&&(g.instances[t]=void 0,g[t].space=!1,g[t].offset=0),g.instances[e]=ee,g[e].size=w.value,g[e].space=z.value,g[e].offset=fe.value}),n(g.totalWidth,()=>{(g.isContainer.value===!0||document.qScrollPrevented!==!0)&&Ee()}),n(()=>t.behavior+t.breakpoint,Ee),n(g.isContainer,e=>{T.value===!0&&p(e!==!0),e===!0&&Ee()}),n(g.scrollbarWidth,()=>{De(T.value===!0?0:void 0)}),n(fe,e=>{Pe(`offset`,e)}),n(z,e=>{i(`onLayout`,e),Pe(`space`,e)}),n(ne,()=>{De()}),n(w,e=>{De(),Ie(t.miniToOverlay,e)}),n(()=>t.miniToOverlay,e=>{Ie(e,w.value)}),n(()=>u.lang.rtl,()=>{De()}),n(()=>t.mini,()=>{t.noMiniAnimation||t.modelValue===!0&&(Ae(),g.animate())}),n(C,e=>{i(`miniState`,e)});function De(t){t===void 0?e(()=>{t=T.value===!0?0:w.value,De(F.value*t)}):(g.isContainer.value===!0&&ne.value===!0&&(S.value===!0||Math.abs(t)===w.value)&&(t+=F.value*g.scrollbarWidth.value),ce.value=t)}function Oe(e){I.value=e}function ke(e){let t=e===!0?`remove`:g.isContainer.value===!0?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function Ae(){v!==null&&clearTimeout(v),c.proxy&&c.proxy.$el&&c.proxy.$el.classList.add(`q-drawer--mini-animate`),L.value=!0,v=setTimeout(()=>{v=null,L.value=!1,c?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function je(e){if(T.value!==!1)return;let t=w.value,n=Be(e.distance.x,0,t);if(e.isFinal===!0){n>=Math.min(75,t)?j():(g.animate(),Oe(0),De(F.value*t)),ae.value=!1;return}De((u.lang.rtl===!0?ne.value!==!0:ne.value)?Math.max(t-n,0):Math.min(0,n-t)),Oe(Be(n/t,0,1)),e.isFirst===!0&&(ae.value=!0)}function Me(e){if(T.value!==!0)return;let n=w.value,r=e.direction===t.side,i=(u.lang.rtl===!0?r!==!0:r)?Be(e.distance.x,0,n):0;if(e.isFinal===!0){Math.abs(i)<Math.min(75,n)?(g.animate(),Oe(1),De(0)):M(),ae.value=!1;return}De(F.value*i),Oe(Be(1-i/n,0,1)),e.isFirst===!0&&(ae.value=!0)}function Ne(){p(!1),ke(!0)}function Pe(e,n){g.update(t.side,e,n)}function Fe(e,t){e.value!==t&&(e.value=t)}function Ie(e,n){Pe(`size`,e===!0?t.miniWidth:n)}return g.instances[t.side]=ee,Ie(t.miniToOverlay,w.value),Pe(`space`,z.value),Pe(`offset`,fe.value),t.showIfAbove===!0&&t.modelValue!==!0&&T.value===!0&&t[`onUpdate:modelValue`]!==void 0&&i(`update:modelValue`,!0),a(()=>{i(`onLayout`,z.value),i(`miniState`,C.value),_=t.showIfAbove===!0;let r=()=>{(T.value===!0?k:A)(!1,!0)};if(g.totalWidth.value!==0){e(r);return}y=n(g.totalWidth,()=>{y(),y=void 0,T.value===!1&&t.showIfAbove===!0&&S.value===!1?j(!1):r()})}),b(()=>{y?.(),v!==null&&(clearTimeout(v),v=null),T.value===!0&&Ne(),g.instances[t.side]===ee&&(g.instances[t.side]=void 0,Pe(`size`,0),Pe(`offset`,0),Pe(`space`,!1))}),()=>{let e=[];S.value===!0&&(t.noSwipeOpen===!1&&e.push(d(l(`div`,{key:`open`,class:`q-drawer__opener fixed-${t.side}`,"aria-hidden":`true`}),Ce.value)),e.push(te(`div`,{ref:`backdrop`,class:ge.value,style:_e.value,"aria-hidden":`true`,onClick:M},void 0,`backdrop`,t.noSwipeBackdrop!==!0&&T.value===!0,()=>Te.value)));let n=C.value===!0&&r.mini!==void 0,i=[l(`div`,{...o,key:String(n),class:[xe.value,o.class]},n===!0?r.mini():ie(r.default))];return t.elevated===!0&&T.value===!0&&i.push(l(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),e.push(te(`aside`,{ref:`content`,class:Se.value,style:be.value},i,`contentclose`,t.noSwipeClose!==!0&&S.value===!0,()=>we.value)),l(`div`,{class:`q-drawer-container`},e)}}}),ut=P({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=O(),i=D(R,ue);if(i===ue)return console.error(`QPageContainer needs to be child of QLayout`),ue;r(le,!0);let a=x(()=>{let e={};return i.header.space===!0&&(e.paddingTop=`${i.header.size}px`),i.right.space===!0&&(e[`padding${n.lang.rtl===!0?`Left`:`Right`}`]=`${i.right.size}px`),i.footer.space===!0&&(e.paddingBottom=`${i.footer.size}px`),i.left.space===!0&&(e[`padding${n.lang.rtl===!0?`Right`:`Left`}`]=`${i.left.size}px`),e});return()=>l(`div`,{class:`q-page-container`,style:a.value},ie(t.default))}}),dt=P({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:t,emit:i}){let{proxy:{$q:a}}=O(),c=s(null),u=s(a.screen.height),d=s(e.container===!0?0:a.screen.width),p=s({position:0,direction:`down`,inflectionPoint:0}),m=s(0),h=s(ae.value===!0?0:z()),g=x(()=>`q-layout q-layout--`+(e.container===!0?`containerized`:`standard`)),_=x(()=>e.container===!1?{minHeight:a.screen.height+`px`}:null),v=x(()=>h.value===0?null:{[a.lang.rtl===!0?`left`:`right`]:`${h.value}px`}),y=x(()=>h.value===0?null:{[a.lang.rtl===!0?`right`:`left`]:0,[a.lang.rtl===!0?`left`:`right`]:`-${h.value}px`,width:`calc(100% + ${h.value}px)`});function b(t){if(e.container===!0||document.qScrollPrevented!==!0){let n={position:t.position.top,direction:t.direction,directionChanged:t.directionChanged,inflectionPoint:t.inflectionPoint.top,delta:t.delta.top};p.value=n,e.onScroll!==void 0&&i(`scroll`,n)}}function S(t){let{height:n,width:r}=t,a=!1;u.value!==n&&(a=!0,u.value=n,e.onScrollHeight!==void 0&&i(`scrollHeight`,n),w()),d.value!==r&&(a=!0,d.value=r),a===!0&&e.onResize!==void 0&&i(`resize`,t)}function C({height:e}){m.value!==e&&(m.value=e,w())}function w(){if(e.container===!0){let e=u.value>m.value?z():0;h.value!==e&&(h.value=e)}}let T=null,E={instances:{},view:x(()=>e.view),isContainer:x(()=>e.container),rootRef:c,height:u,containerHeight:m,scrollbarWidth:h,totalWidth:x(()=>d.value+h.value),rows:x(()=>{let t=e.view.toLowerCase().split(` `);return{top:t[0].split(``),middle:t[1].split(``),bottom:t[2].split(``)}}),header:f({size:0,offset:0,space:!1}),right:f({size:300,offset:0,space:!1}),footer:f({size:0,offset:0,space:!1}),left:f({size:300,offset:0,space:!1}),scroll:p,animate(){T===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(T),T=setTimeout(()=>{T=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){E[e][t]=n}};if(r(R,E),z()>0){let t=null,r=document.body;function i(){t=null,r.classList.remove(`hide-scrollbar`)}function s(){if(t===null){if(r.scrollHeight>a.screen.height)return;r.classList.add(`hide-scrollbar`)}else clearTimeout(t);t=setTimeout(i,300)}function c(e){t!==null&&e===`remove`&&(clearTimeout(t),i()),window[`${e}EventListener`](`resize`,s)}n(()=>e.container===!0?`remove`:`add`,c),e.container!==!0&&c(`add`),o(()=>{c(`remove`)})}return()=>{let n=ee(t.default,[l(Re,{onScroll:b}),l(Le,{onResize:S})]),r=l(`div`,{class:g.value,style:_.value,ref:e.container===!0?void 0:c,tabindex:-1},n);return e.container===!0?l(`div`,{class:`q-layout-container overflow-hidden`,ref:c},[l(Le,{onResize:C}),l(`div`,{class:`absolute-full`,style:v.value},[l(`div`,{class:`scroll`,style:y.value},[r])])]):r}}}),ft={class:`acceptance-panel q-pa-md`},pt={class:`row items-center q-mb-sm`},mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ht={key:0,class:`criterion-add-row row items-center q-mb-xs`},gt={key:1,class:`acceptance-list`},_t=[`onDblclick`],vt={key:2,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},yt=We(E({__name:`AcceptancePanel`,props:{tasks:{}},setup(n){let{t:r}=ye(),a=Pe(),o=Oe();function c(){let e=a.selectedWorkspaceId;e&&nt(e,o,a)}let l=s(!1),d=s(``),f=s(null),p=s(``),b=s({});function x(e,t){if(t){let n=t.$el??t;b.value[e]=n}else delete b.value[e]}function E(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function D(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}async function O(e){let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);a.selectedWorkspaceId&&a.fetchWorkspaceDetails(a.selectedWorkspaceId)}catch(e){console.error(`Failed to update task:`,e)}}function A(){l.value=!0,d.value=``}async function j(){let e=d.value.trim(),t=a.selectedWorkspace?.id;if(!(!e||!t))try{await a.createTask(t,e,!0),d.value=``,l.value=!1}catch{}}function P(){d.value=``,l.value=!1}function ee(t){f.value=t.id,p.value=t.title,e(()=>{let e=b.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function te(e){if(f.value!==e.id)return;let t=p.value.trim(),n=e.id;if(f.value=null,!t||t===e.title)return;let r=a.selectedWorkspace?.id;if(r)try{await a.updateTaskTitle(r,n,t)}catch{}}function ne(){f.value=null,p.value=``}async function re(e){let t=a.selectedWorkspace?.id;if(t)try{await a.deleteTask(t,e.id)}catch{}}return(e,r)=>(t(),S(`div`,ft,[T(`div`,pt,[T(`div`,mt,h(e.$t(`acceptance.title`)),1),v(Ke),w(a).selectedWorkspace?(t(),g(B,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:c},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):_(``,!0),w(a).selectedWorkspace?(t(),g(B,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:A},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1})):_(``,!0)]),l.value?(t(),S(`div`,ht,[v(ke,{modelValue:d.value,"onUpdate:modelValue":r[0]||=e=>d.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`acceptance.newCriterion`),class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[M(N(j,[`prevent`]),[`enter`]),M(N(P,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):_(``,!0),n.tasks.length>0?(t(),S(`div`,gt,[(t(!0),S(C,null,i(n.tasks,n=>(t(),S(`div`,{key:n.id,class:`acceptance-item row items-center q-mb-xxs`},[v(I,{name:E(n.status),size:`16px`,style:k({color:D(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>O(n)},null,8,[`name`,`style`,`onClick`]),f.value===n.id?(t(),g(ke,{key:0,ref_for:!0,ref:e=>x(n.id,e),modelValue:p.value,"onUpdate:modelValue":r[1]||=e=>p.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[M(N(e=>te(n),[`prevent`]),[`enter`]),M(N(ne,[`prevent`]),[`esc`])],onBlur:e=>te(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),S(C,{key:1},[T(`span`,{class:m([`col acceptance-title text-caption`,{"text-strike":n.status===`done`}]),style:k({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>ee(n)},h(n.title),47,_t),v(B,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`criterion-delete-btn`,onClick:e=>re(n)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):l.value?_(``,!0):(t(),S(`div`,vt,h(e.$t(`acceptance.empty`)),1))]))}}),[[`__scopeId`,`data-v-63b144ad`]]),bt={class:`agent-todos-panel q-pa-md`},xt={class:`row items-center q-mb-sm`},St={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Ct={key:0,class:`todos-list`},wt={key:1,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},Tt=We(E({__name:`AgentTodosPanel`,setup(e){let{t:n}=ye(),r=Pe();function a(e){switch(e){case`completed`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function o(e){switch(e){case`completed`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,n)=>(t(),S(`div`,bt,[T(`div`,xt,[T(`div`,St,h(e.$t(`agentTodos.title`)),1)]),w(r).currentAgentTodos.length>0?(t(),S(`div`,Ct,[(t(!0),S(C,null,i(w(r).currentAgentTodos,(e,n)=>(t(),S(`div`,{key:n,class:`todo-item row items-start q-py-xxs`},[v(I,{name:a(e.status),size:`14px`,style:k({color:o(e.status)}),class:`q-mr-xs q-mt-xxs`},null,8,[`name`,`style`]),T(`span`,{class:m([`col todo-title text-caption`,{"text-strike":e.status===`completed`}]),style:k({color:e.status===`completed`?`#4ade80`:`#ccc`})},h(e.content),7)]))),128))])):(t(),S(`div`,wt,h(e.$t(`agentTodos.empty`)),1))]))}}),[[`__scopeId`,`data-v-4eddf754`]]),Et={class:`documents-panel q-pa-md`},Dt={class:`row items-center justify-between q-mb-sm`},Ot={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},kt={key:0,class:`text-caption text-grey-8`},At={key:1,class:`text-center q-py-lg`},jt={key:2,class:`text-caption text-grey-8 text-center q-py-lg`},Mt={key:0,class:`text-center q-py-lg`},Nt=[`innerHTML`],Pt=We(E({__name:`DocumentsPanel`,props:{workspace:{}},setup(e){let r=e,{t:i}=ye(),a=it(),o=Ue(),s=x(()=>r.workspace?o.documentsFor(r.workspace.id):[]),c=x(()=>Ye(s.value)),l=x(()=>o.selected?.path??null),d=x(()=>{if(!o.selected)return``;let e=Ve.parse(o.selected.content,{async:!1,breaks:!0,gfm:!0});return He.sanitize(e)});async function f(){r.workspace&&await o.fetchDocuments(r.workspace.id)}async function p(e){if(!(!r.workspace||!e.file))try{await o.openDocument(r.workspace.id,e.file)}catch{a.notify({type:`negative`,message:i(`documents.loadFailed`),position:`top`})}}function _(){o.closeDocument()}return n(()=>r.workspace?.id,e=>{o.closeDocument(),e&&o.fetchDocuments(e)},{immediate:!0}),(n,r)=>(t(),S(`div`,Et,[T(`div`,Dt,[T(`div`,Ot,h(n.$t(`documents.title`)),1),w(o).selected?(t(),g(B,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,icon:`arrow_back`,label:n.$t(`documents.back`),color:`grey-5`,onClick:_},null,8,[`label`])):(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:w(o).loadingList,onClick:f},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`documents.refresh`)),1)]),_:1})]),_:1},8,[`loading`]))]),w(o).selected?(t(),S(C,{key:1},[w(o).loadingContent?(t(),S(`div`,Mt,[v(ne,{size:`24px`,color:`grey-6`})])):(t(),S(`div`,{key:1,class:`document-content`,innerHTML:d.value},null,8,Nt))],64)):(t(),S(C,{key:0},[e.workspace?w(o).loadingList?(t(),S(`div`,At,[v(ne,{size:`24px`,color:`grey-6`})])):s.value.length===0?(t(),S(`div`,jt,h(n.$t(`documents.empty`)),1)):(t(),g(Je,{key:3,nodes:c.value,"node-key":`nodeKey`,"label-key":`label`,"children-key":`children`,dark:``,dense:``,"default-expand-all":``,"no-selection-unset":``,selected:l.value?`file:${l.value}`:``,class:`documents-tree`,"onUpdate:selected":r[0]||=e=>{if(typeof e!=`string`||!e.startsWith(`file:`))return;let t=s.value.find(t=>`file:${t.path}`===e);t&&p({file:t})}},{"default-header":u(({node:e})=>[v(I,{name:e.isFolder?`folder`:`description`,color:e.isFolder?`indigo-4`:`grey-5`,size:`14px`,class:`q-mr-xs`},null,8,[`name`,`color`]),T(`span`,{class:m(e.isFolder?`text-grey-4`:`text-grey-3`),style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},h(e.label),3)]),_:1},8,[`nodes`,`selected`])):(t(),S(`div`,kt,h(n.$t(`common.selectWorkspace`)),1))],64))]))}}),[[`__scopeId`,`data-v-445c589c`]]),Ft=Object.keys(_e);function It(e){return Ft.reduce((t,n)=>{let r=e[n];return r!==void 0&&(t[n]=r),t},{})}var Lt=P({name:`QBtnDropdown`,props:{..._e,...fe,modelValue:Boolean,split:Boolean,dropdownIcon:String,contentClass:[Array,String,Object],contentStyle:[Array,String,Object],cover:Boolean,persistent:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,autoClose:Boolean,noRefocus:Boolean,noFocus:Boolean,menuAnchor:{type:String,default:`bottom end`},menuSelf:{type:String,default:`top end`},menuOffset:Array,disableMainBtn:Boolean,disableDropdown:Boolean,noIconAnimation:Boolean,toggleAriaLabel:String},emits:[`update:modelValue`,`click`,`beforeShow`,`show`,`beforeHide`,`hide`],setup(e,{slots:t,emit:r}){let{proxy:i}=O(),o=s(e.modelValue),c=s(null),u=ve(),d=x(()=>{let t={"aria-expanded":o.value===!0?`true`:`false`,"aria-haspopup":`true`,"aria-controls":u.value,"aria-label":e.toggleAriaLabel||i.$q.lang.label[o.value===!0?`collapse`:`expand`](e.label)};return(e.disable===!0||e.split===!1&&e.disableMainBtn===!0||e.disableDropdown===!0)&&(t[`aria-disabled`]=`true`),t}),f=x(()=>`q-btn-dropdown__arrow`+(o.value===!0&&e.noIconAnimation===!1?` rotate-180`:``)+(e.split===!1?` q-btn-dropdown__arrow-container`:``)),p=x(()=>ge(e)),m=x(()=>It(e));n(()=>e.modelValue,e=>{c.value?.[e?`show`:`hide`]()}),n(()=>e.split,w);function h(e){o.value=!0,r(`beforeShow`,e)}function g(e){r(`show`,e),r(`update:modelValue`,!0)}function _(e){o.value=!1,r(`beforeHide`,e)}function v(e){r(`hide`,e),r(`update:modelValue`,!1)}function y(e){r(`click`,e)}function b(e){A(e),w(),r(`click`,e)}function S(e){c.value?.toggle(e)}function C(e){c.value?.show(e)}function w(e){c.value?.hide(e)}return Object.assign(i,{show:C,hide:w,toggle:S}),a(()=>{e.modelValue===!0&&C()}),()=>{let n=[l(I,{class:f.value,name:e.dropdownIcon||i.$q.iconSet.arrow.dropdown})];return e.disableDropdown!==!0&&n.push(l(et,{ref:c,id:u.value,class:e.contentClass,style:e.contentStyle,cover:e.cover,fit:!0,persistent:e.persistent,noEscDismiss:e.noEscDismiss,noRouteDismiss:e.noRouteDismiss,autoClose:e.autoClose,noFocus:e.noFocus,noRefocus:e.noRefocus,anchor:e.menuAnchor,self:e.menuSelf,offset:e.menuOffset,separateClosePopup:!0,transitionShow:e.transitionShow,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,onBeforeShow:h,onShow:g,onBeforeHide:_,onHide:v},t.default)),e.split===!1?l(B,{class:`q-btn-dropdown q-btn-dropdown--simple`,...m.value,...d.value,disable:e.disable===!0||e.disableMainBtn===!0,noWrap:!0,round:!1,onClick:y},{default:()=>ie(t.label,[]).concat(n),loading:t.loading}):l(qe,{class:`q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item`,rounded:e.rounded,square:e.square,...p.value,glossy:e.glossy,stretch:e.stretch},()=>[l(B,{class:`q-btn-dropdown--current`,...m.value,disable:e.disable===!0||e.disableMainBtn===!0,noWrap:!0,round:!1,onClick:b},{default:t.label,loading:t.loading}),l(B,{class:`q-btn-dropdown__arrow-container q-anchor--skip`,...d.value,...p.value,disable:e.disable===!0||e.disableDropdown===!0,rounded:e.rounded,color:e.color,textColor:e.textColor,dense:e.dense,size:e.size,padding:e.padding,ripple:e.ripple},()=>n)])}}}),Rt={class:`git-panel q-px-sm q-py-md`},zt={class:`row items-center justify-between q-mb-sm`},Bt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Vt={class:`row items-center q-mb-sm`},Ht={class:`text-caption text-grey-3`},Ut={class:`row items-center q-mb-sm`},Wt={class:`text-caption text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Gt={class:`text-caption q-mb-sm text-grey-8`,style:{"font-size":`11px`}},Kt={key:0},qt={key:1,style:{color:`#4ade80`}},Jt={key:2,style:{color:`#f59e0b`}},Yt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Xt={key:1,class:`row items-center q-mb-xs`},Zt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Qt={key:2,class:`commit-list q-mb-sm`},$t={key:0,class:`text-caption text-grey-6 q-pa-xs`},en={key:1,class:`text-caption text-grey-7 q-pa-xs`},tn=[`onClick`],nn={class:`commit-sha text-grey-5`},rn={class:`commit-subject text-grey-4 ellipsis q-ml-sm`},an={class:`text-caption`},on={class:`text-grey-5 q-mt-xs`},sn={class:`text-grey-6 q-mt-xs`,style:{"font-style":`italic`}},cn={key:3,class:`row items-center q-mb-md`},ln={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},un={key:0,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#4ade80`}},dn={key:1,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#f87171`}},fn={key:4,class:`q-mb-xs`},pn={key:5,class:`row items-center q-gutter-xs q-mb-md`,style:{"font-size":`11px`}},mn={key:0,class:`text-caption`,style:{color:`#4ade80`}},hn={key:1,class:`text-caption`,style:{color:`#f59e0b`}},gn={key:2,class:`text-caption text-grey-6`},_n={key:6,class:`q-mb-md`},vn={class:`row items-center q-gutter-xs`},yn={key:1,class:`text-caption text-grey-8`},bn={class:`text-subtitle1 text-warning`},xn={class:`text-caption text-grey-6 q-mt-xs`},Sn={class:`text-caption text-mono`},Cn=We(E({__name:`GitPanel`,props:{workspace:{}},setup(e){let r=p(()=>De(()=>import(`./DiffViewer-C6d1h3-o.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]))),a=e,{t:c}=ye(),l=it(),f=Pe(),m=s(!1),b=s(!1),E=s(!1),D=s(!1),O=s(!1),k=s(!1),A=s(!1),j=s(!1),M=s(!1),N=s(!1),P=s([]);async function ee(){if(a.workspace){N.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/commits?limit=50`,{cache:`no-store`});if(!e.ok)throw Error(`HTTP ${e.status}`);P.value=(await e.json()).commits}catch(e){console.error(`[GitPanel] fetchCommits failed:`,e),P.value=[]}finally{N.value=!1}}}async function te(){M.value=!M.value,M.value&&(N.value=!0,await ee())}function re(e){f.chatDraft=e}function F(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}let ie=s(!1),ae=s(null),L=s([]),oe=s(!1),se=s(!1);function le(e){f.chatDraft=e,A.value=!1}let R=s(null),ue=s(!1),de=x(()=>{if(!a.workspace?.projectPath)return`-`;let e=a.workspace.projectPath.replace(/\\/g,`/`).split(`/`);return e[e.length-1]||e[e.length-2]||`-`}),fe=x(()=>!(!R.value||R.value.unpushedCount===-1)),pe=x(()=>R.value&&R.value.unpushedCount===-1?c(`git.createPrNoRemote`):``);async function z(){if(!a.workspace){R.value=null;return}ue.value=!0;try{R.value=await f.fetchGitStats(a.workspace.id)}catch{R.value=null}finally{ue.value=!1}}n(()=>a.workspace?.id,()=>z(),{immediate:!0});let me=null;n(()=>f.gitRefreshTrigger,()=>{me&&clearTimeout(me),me=setTimeout(()=>z(),3e3)}),o(()=>{me&&clearTimeout(me)});function he(){let e=a.workspace;e&&l.dialog({title:c(`git.renameBranch`),message:c(`git.renameBranchPrompt`,{branch:e.workingBranch}),prompt:{model:e.workingBranch,type:`text`},dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.renameBranch`),color:`indigo-4`}}).onOk(async t=>{let n=(t??``).trim();if(!(!n||n===e.workingBranch)){j.value=!0;try{await f.renameWorkspaceBranch(e.id,n),l.notify({type:`positive`,message:c(`git.renameBranchSuccess`,{branch:n}),position:`top`}),z()}catch(e){let t=e instanceof we&&e.code===`branch_exists`?c(`git.renameBranchExists`,{branch:n}):e instanceof Error?e.message:c(`git.renameBranchFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{j.value=!1}}})}function ge(){a.workspace&&l.dialog({title:c(`git.rebaseConfirmTitle`),message:c(`git.rebaseConfirmMessage`,{branch:a.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.rebase`),color:`orange-4`}}).onOk(async()=>{E.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/rebase`,{method:`POST`});if(e.status===409){let t=await e.json();ve(`rebase`,Array.isArray(t.files)?t.files:[]);return}if(!e.ok){let t=await e.json();throw Error(t.error??`Rebase failed`)}l.notify({type:`positive`,message:c(`git.rebaseSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.rebaseFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{E.value=!1}})}function _e(){a.workspace&&l.dialog({title:c(`git.mergeConfirmTitle`),message:c(`git.mergeConfirmMessage`,{branch:a.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.merge`),color:`purple-4`}}).onOk(async()=>{D.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/merge`,{method:`POST`});if(e.status===409){let t=await e.json();ve(`merge`,Array.isArray(t.files)?t.files:[]);return}if(!e.ok){let t=await e.json();throw Error(t.error??`Merge failed`)}l.notify({type:`positive`,message:c(`git.mergeSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.mergeFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{D.value=!1}})}function ve(e,t){ae.value=e,L.value=t,ie.value=!0}async function be(){if(a.workspace){oe.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/git/abort`,{method:`POST`});if(!e.ok){let t=await e.json();throw Error(t.error??`Abort failed`)}l.notify({type:`positive`,message:c(`git.conflictAborted`),position:`top`}),ie.value=!1,z()}catch(e){let t=e instanceof Error?e.message:`Abort failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{oe.value=!1}}}async function Ce(){if(!(!a.workspace||!ae.value)){se.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/git/resolve-with-agent`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({operation:ae.value,files:L.value})});if(!e.ok){let t=await e.json();throw Error(t.error??`Handoff failed`)}l.notify({type:`positive`,message:c(`git.conflictHandoffSuccess`),position:`top`}),ie.value=!1}catch(e){let t=e instanceof Error?e.message:`Handoff failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{se.value=!1}}}function Te(){a.workspace&&l.dialog({title:c(`git.pushConfirmTitle`),message:c(`git.pushConfirmMessage`,{branch:a.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.push`),color:`grey-5`}}).onOk(async()=>{m.value=!0;try{await f.pushBranch(a.workspace.id),l.notify({type:`positive`,message:c(`git.branchPushed`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:`Push failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{m.value=!1}})}function Oe(){a.workspace&&l.dialog({title:c(`git.pullConfirmTitle`),message:c(`git.pullConfirmMessage`,{branch:a.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.pull`),color:`grey-5`}}).onOk(async()=>{b.value=!0;try{await f.pullBranch(a.workspace.id),l.notify({type:`positive`,message:c(`git.branchPulled`),position:`top`}),z()}catch(e){console.error(`[GitPanel] pullBranch failed:`,e);let t=e instanceof Error?e.message:c(`git.pullFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{b.value=!1}})}function ke(){R.value?.prUrl&&window.open(R.value.prUrl,`_blank`)}function Ae(){a.workspace&&l.dialog({title:c(`git.changePrBaseTitle`),message:c(`git.changePrBaseMessage`),prompt:{model:a.workspace.sourceBranch,type:`text`},dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`common.save`),color:`primary`}}).onOk(async e=>{if(!(!e.trim()||!a.workspace)){k.value=!0;try{let t=await fetch(`/api/workspaces/${a.workspace.id}/change-pr-base`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({base:e.trim()})});if(!t.ok){let e=await t.json();throw Error(e.error??`Failed`)}l.notify({type:`positive`,message:c(`git.changePrBaseSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.changePrBaseFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{k.value=!1}}})}async function je(){if(a.workspace){O.value=!0;try{let e=await f.openPullRequest(a.workspace.id);l.notify({type:`positive`,message:c(`git.prCreated`,{n:e.prNumber}),caption:e.prUrl,position:`top`,timeout:5e3}),z()}catch(e){if(e instanceof we&&e.code===`branch_not_pushed`){l.notify({type:`warning`,message:c(`git.pushFirst`),position:`top`,timeout:6e3});return}if(e instanceof we&&e.code===`unpushed_commits`){l.notify({type:`warning`,message:c(`git.unpushedCommits`),position:`top`,timeout:6e3});return}let t=e instanceof Error?e.message:`Open PR failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{O.value=!1}}}return(n,a)=>(t(),S(`div`,Rt,[T(`div`,zt,[T(`div`,Bt,h(n.$t(`git.title`)),1),e.workspace?(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:ue.value,onClick:z},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`tooltip.refreshGitStats`)),1)]),_:1})]),_:1},8,[`loading`])):_(``,!0)]),e.workspace?(t(),S(C,{key:0},[T(`div`,Vt,[v(I,{name:`folder`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Ht,h(de.value),1)]),T(`div`,Ut,[a[5]||=T(`span`,{style:{width:`8px`,height:`8px`,"border-radius":`50%`,"background-color":`#4ade80`,display:`inline-block`},class:`q-mr-xs`},null,-1),T(`span`,Wt,h(e.workspace.workingBranch),1),v(B,{flat:``,round:``,dense:``,size:`xs`,icon:`edit`,color:`grey-6`,class:`q-ml-xs`,loading:j.value,onClick:he},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`git.renameBranch`)),1)]),_:1})]),_:1},8,[`loading`])]),T(`div`,Gt,[y(h(n.$t(`git.from`))+` `+h(e.workspace.sourceBranch)+` `,1),R.value?(t(),S(C,{key:0},[a[6]||=y(` · `,-1),R.value.unpushedCount===-1?(t(),S(`span`,Kt,h(n.$t(`git.localOnly`)),1)):R.value.unpushedCount===0?(t(),S(`span`,qt,h(n.$t(`git.pushed`)),1)):(t(),S(`span`,Jt,h(n.$t(`git.unpushed`,{count:R.value.unpushedCount})),1))],64)):_(``,!0)]),R.value?(t(),S(C,{key:0},[R.value.commitCount>0?(t(),S(`div`,{key:0,class:`row items-center q-mb-xs commit-toggle cursor-pointer`,onClick:te},[v(I,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Yt,h(n.$t(`git.commits`,{count:R.value.commitCount},R.value.commitCount)),1),N.value?(t(),g(ne,{key:0,size:`12px`,color:`indigo-4`,class:`q-ml-xs`})):(t(),g(I,{key:1,name:M.value?`expand_less`:`expand_more`,size:`14px`,color:`grey-6`,class:`q-ml-xs`},null,8,[`name`]))])):(t(),S(`div`,Xt,[v(I,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Zt,h(n.$t(`git.commits`,{count:0},0)),1)])),M.value?(t(),S(`div`,Qt,[N.value?(t(),S(`div`,$t,[v(ne,{size:`xs`,class:`q-mr-xs`}),y(h(n.$t(`git.commits.loading`)),1)])):P.value.length===0?(t(),S(`div`,en,h(n.$t(`git.commits.empty`)),1)):(t(!0),S(C,{key:2},i(P.value,e=>(t(),S(`div`,{key:e.sha,class:`commit-item row no-wrap items-center cursor-pointer`,onClick:t=>re(e.sha)},[v(I,{name:e.isPushed?`cloud_done`:`cloud_upload`,size:`12px`,color:e.isPushed?`grey-6`:`orange-5`,class:`q-mr-xs commit-item-icon`},null,8,[`name`,`color`]),T(`span`,nn,h(e.shortSha),1),T(`span`,rn,h(e.subject),1),v(H,{anchor:`top middle`,self:`bottom middle`,class:`commit-tooltip`},{default:u(()=>[T(`div`,an,[T(`div`,null,[T(`code`,null,h(e.sha),1)]),T(`div`,on,h(e.author)+` · `+h(F(e.date)),1),T(`div`,sn,h(e.isPushed?n.$t(`git.commits.pushed`):n.$t(`git.commits.unpushed`))+` · `+h(n.$t(`git.commits.clickToAppend`)),1)])]),_:2},1024)],8,tn))),128))])):_(``,!0),R.value.filesChanged>0?(t(),S(`div`,cn,[v(I,{name:`insert_drive_file`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,ln,h(n.$t(`git.files`,{count:R.value.filesChanged},R.value.filesChanged)),1),R.value.insertions>0?(t(),S(`span`,un,` +`+h(R.value.insertions),1)):_(``,!0),R.value.deletions>0?(t(),S(`span`,dn,` -`+h(R.value.deletions),1)):_(``,!0)])):(t(),S(`div`,fn)),R.value.workingTree&&(R.value.workingTree.staged>0||R.value.workingTree.modified>0||R.value.workingTree.untracked>0)?(t(),S(`div`,pn,[v(I,{name:`edit_note`,size:`14px`,color:`grey-6`}),R.value.workingTree.staged>0?(t(),S(`span`,mn,h(n.$t(`git.staged`,{count:R.value.workingTree.staged})),1)):_(``,!0),R.value.workingTree.modified>0?(t(),S(`span`,hn,h(n.$t(`git.modified`,{count:R.value.workingTree.modified})),1)):_(``,!0),R.value.workingTree.untracked>0?(t(),S(`span`,gn,h(n.$t(`git.untracked`,{count:R.value.workingTree.untracked})),1)):_(``,!0)])):(t(),S(`div`,_n))],64)):_(``,!0),T(`div`,vn,[R.value&&R.value.unpushedCount!==-1?(t(),g(Lt,{key:0,split:``,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`sync`,label:n.$t(`git.sync`),class:`git-btn git-sync-btn`,loading:b.value||E.value||D.value,disable:!e.workspace||m.value,onClick:Oe},{default:u(()=>[v(at,{dark:``,dense:``,style:{"min-width":`140px`}},{default:u(()=>[d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:Oe},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`download`,size:`16px`,color:`grey-5`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.pull`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]]),d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:ge},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`replay`,size:`16px`,color:`orange-4`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.rebase`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]]),d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:_e},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`merge`,size:`16px`,color:`purple-4`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.merge`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]])]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):_(``,!0),!R.value||R.value.unpushedCount!==0?(t(),g(B,{key:1,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`upload`,label:n.$t(`git.push`),class:`git-btn`,loading:m.value,disable:!e.workspace||O.value||b.value||E.value,onClick:Te},null,8,[`label`,`loading`,`disable`])):_(``,!0),v(B,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`difference`,label:n.$t(`git.diff`),class:`git-btn`,disable:!e.workspace,onClick:a[0]||=e=>A.value=!0},null,8,[`label`,`disable`]),R.value?.prUrl&&R.value.prState===`OPEN`?(t(),g(B,{key:2,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`swap_horiz`,loading:k.value,class:`git-btn`,onClick:Ae},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`git.changePrBase`)),1)]),_:1})]),_:1},8,[`loading`])):_(``,!0),R.value?.prUrl?(t(),g(B,{key:3,dense:``,"no-caps":``,size:`sm`,outline:``,color:`green-4`,icon:`open_in_new`,label:n.$t(`git.viewPr`),class:`git-btn`,onClick:ke},null,8,[`label`])):_(``,!0),!R.value?.prUrl||R.value.prState===`CLOSED`||R.value.prState===`MERGED`?(t(),g(B,{key:4,dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,icon:`open_in_new`,label:n.$t(`git.createPr`),class:`git-btn`,loading:O.value,disable:!e.workspace||m.value||!fe.value,onClick:je},{default:u(()=>[!fe.value&&pe.value?(t(),g(H,{key:0},{default:u(()=>[y(h(pe.value),1)]),_:1})):_(``,!0)]),_:1},8,[`label`,`loading`,`disable`])):_(``,!0)])],64)):(t(),S(`div`,yn,h(n.$t(`common.selectWorkspace`)),1)),v(ce,{modelValue:ie.value,"onUpdate:modelValue":a[2]||=e=>ie.value=e,persistent:``},{default:u(()=>[v(xe,{dark:``,style:{"min-width":`420px`,"max-width":`600px`}},{default:u(()=>[v(Se,null,{default:u(()=>[T(`div`,bn,[v(I,{name:`warning`,class:`q-mr-xs`}),y(` `+h(ae.value===`merge`?n.$t(`git.conflictTitleMerge`):n.$t(`git.conflictTitleRebase`)),1)]),T(`div`,xn,h(n.$t(`git.conflictSubtitle`,{count:L.value.length})),1)]),_:1}),L.value.length>0?(t(),g(Se,{key:0,class:`q-pt-none`},{default:u(()=>[v(at,{dense:``,dark:``},{default:u(()=>[(t(!0),S(C,null,i(L.value,e=>(t(),g(Ie,{key:e},{default:u(()=>[v(V,{side:``},{default:u(()=>[v(I,{name:`insert_drive_file`,size:`xs`})]),_:1}),v(V,null,{default:u(()=>[T(`div`,Sn,h(e),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):_(``,!0),v(Ee,{align:`right`},{default:u(()=>[v(B,{flat:``,"no-caps":``,label:n.$t(`common.cancel`),color:`grey-5`,disable:oe.value||se.value,onClick:a[1]||=e=>ie.value=!1},null,8,[`label`,`disable`]),v(B,{flat:``,"no-caps":``,color:`red-4`,icon:`undo`,label:n.$t(`git.conflictAbort`),loading:oe.value,disable:se.value,onClick:be},null,8,[`label`,`loading`,`disable`]),v(B,{unelevated:``,"no-caps":``,color:`primary`,icon:`smart_toy`,label:n.$t(`git.conflictResolveWithAgent`),loading:se.value,disable:oe.value,onClick:Ce},null,8,[`label`,`loading`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(ce,{modelValue:A.value,"onUpdate:modelValue":a[4]||=e=>A.value=e,maximized:``},{default:u(()=>[e.workspace?(t(),g(w(r),{key:0,"workspace-id":e.workspace.id,onClose:a[3]||=e=>A.value=!1,onSendToChat:le},null,8,[`workspace-id`])):_(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-90ea7311`]]),wn={class:`notion-panel q-pa-md`},Tn={class:`row items-center q-mb-sm`},En={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Dn={key:0,class:`q-mb-sm`},On=[`href`],kn={key:1,class:`text-caption q-mb-sm text-grey-8`},An={key:3,class:`q-mb-sm`},jn={class:`text-caption text-grey-7`,style:{"font-size":`11px`}},Mn={key:4,class:`text-caption text-grey-8 q-mb-sm`,style:{"font-size":`11px`}},Nn={key:5,class:`task-add-row row items-center q-mb-xs`},Pn={key:6,class:`tasks-list`},Fn=[`onDblclick`],In={key:1,class:`text-caption text-grey-8`},Ln=We(E({__name:`NotionPanel`,props:{workspace:{},tasks:{}},setup(n){let r=n,{t:a}=ye(),o=Pe(),c=Oe(),l=s(!1);function d(){r.workspace?.id&&nt(r.workspace.id,c,o)}let f=x(()=>r.tasks.filter(e=>!e.isAcceptanceCriterion)),p=x(()=>f.value.filter(e=>e.status===`done`).length),b=x(()=>f.value.length),w=x(()=>b.value>0?p.value/b.value:0),E=s(!1),D=s(``),O=s(null),A=s(``),j=s({});function P(e,t){if(t){let n=t.$el??t;j.value[e]=n}else delete j.value[e]}async function ee(){if(!(!r.workspace?.id||!r.workspace.notionUrl)){l.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/refresh-notion`,{method:`POST`});if(!e.ok)throw Error(`HTTP ${e.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to refresh from Notion:`,e)}finally{l.value=!1}}}function te(){E.value=!0,D.value=``}async function ne(){let e=D.value.trim();if(!(!e||!r.workspace?.id))try{await o.createTask(r.workspace.id,e,!1),D.value=``,E.value=!1}catch{}}function re(){D.value=``,E.value=!1}function F(t){O.value=t.id,A.value=t.title,e(()=>{let e=j.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function ie(e){if(O.value!==e.id)return;let t=A.value.trim(),n=e.id;if(O.value=null,!(!t||t===e.title)&&r.workspace?.id)try{await o.updateTaskTitle(r.workspace.id,n,t)}catch{}}function ae(){O.value=null,A.value=``}async function L(e){if(r.workspace?.id)try{await o.deleteTask(r.workspace.id,e.id)}catch{}}async function oe(e){if(!r.workspace?.id)return;let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to toggle task:`,e)}}function se(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function ce(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,r)=>(t(),S(`div`,wn,[T(`div`,Tn,[T(`div`,En,h(e.$t(`notion.title`)),1),v(Ke),n.workspace?(t(),g(B,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:d},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):_(``,!0),n.workspace?(t(),g(B,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:te},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.addNotionTask`)),1)]),_:1})]),_:1})):_(``,!0)]),n.workspace?(t(),S(C,{key:0},[n.workspace.notionUrl?(t(),S(`div`,Dn,[T(`a`,{href:n.workspace.notionUrl,target:`_blank`,rel:`noopener noreferrer`,class:`notion-link text-caption items-center text-blue-4`},[v(I,{name:`open_in_new`,size:`12px`,class:`q-mr-xs`}),y(` `+h(e.$t(`notion.openInNotion`)),1)],8,On)])):(t(),S(`div`,kn,h(e.$t(`notion.noUrl`)),1)),n.workspace.notionUrl?(t(),g(B,{key:2,flat:``,dense:``,"no-caps":``,size:`xs`,icon:`refresh`,label:e.$t(`common.refresh`),color:`grey-6`,class:`q-mb-sm`,loading:l.value,onClick:ee},null,8,[`label`,`loading`])):_(``,!0),b.value>0?(t(),S(`div`,An,[v(be,{value:w.value,color:`primary`,"track-color":`grey-9`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),T(`div`,jn,h(e.$t(`notion.subtasks`,{done:p.value,total:b.value})),1)])):E.value?_(``,!0):(t(),S(`div`,Mn,h(e.$t(`notion.noTasks`)),1)),E.value?(t(),S(`div`,Nn,[v(ke,{modelValue:D.value,"onUpdate:modelValue":r[0]||=e=>D.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`notion.newTask`),class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[M(N(ne,[`prevent`]),[`enter`]),M(N(re,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):_(``,!0),f.value.length>0?(t(),S(`div`,Pn,[(t(!0),S(C,null,i(f.value,n=>(t(),S(`div`,{key:n.id,class:`task-item row items-center q-py-xxs`},[v(I,{name:se(n.status),size:`14px`,style:k({color:ce(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>oe(n)},null,8,[`name`,`style`,`onClick`]),O.value===n.id?(t(),g(ke,{key:0,ref_for:!0,ref:e=>P(n.id,e),modelValue:A.value,"onUpdate:modelValue":r[1]||=e=>A.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[M(N(e=>ie(n),[`prevent`]),[`enter`]),M(N(ae,[`prevent`]),[`esc`])],onBlur:e=>ie(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),S(C,{key:1},[T(`span`,{class:m([`col task-title text-caption`,{"text-strike":n.status===`done`}]),style:k({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>F(n)},h(n.title),47,Fn),v(B,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`task-delete-btn`,onClick:e=>L(n)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.removeNotionTask`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):_(``,!0)],64)):(t(),S(`div`,In,h(e.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-99e38dbd`]]),Rn={class:`stats-panel q-pa-md`},zn={class:`row items-center q-mb-md`},Bn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Vn={class:`stat-group-label q-mb-xs`},Hn={class:`stat-row`},Un={class:`stat-label`},Wn={class:`stat-value`},Gn={class:`stat-row`},Kn={class:`stat-label`},qn={class:`stat-value`},Jn={key:0,class:`stat-row`},Yn={class:`stat-label`},Xn={class:`stat-value stat-value-ellipsis`},Zn={class:`stat-row`},Qn={class:`stat-label`},$n={class:`stat-value`},er={class:`stat-row`},tr={class:`stat-label`},nr={class:`stat-value`},rr={class:`stat-group-label q-mb-xs`},ir={class:`stat-row`},ar={class:`stat-label`},or={class:`stat-value`},sr={key:1,class:`stat-row`},cr={class:`stat-label`},lr={class:`stat-value`},ur={key:2,class:`stat-row`},dr={class:`stat-label`},fr={class:`stat-value`},pr={key:3,class:`stat-row`},mr={class:`stat-label`},hr={class:`stat-value`},gr={key:4,class:`stat-row`},_r={class:`stat-label`},vr={class:`stat-value`},yr={class:`stat-group-label q-mb-xs`},br={class:`stat-row`},xr={class:`stat-label`},Sr={class:`stat-value`},Cr={class:`stat-row`},wr={class:`stat-label`},Tr={class:`stat-value`},Er={class:`stat-row`},Dr={class:`stat-label`},Or={class:`stat-value`},kr={key:5,class:`stat-row`},Ar={class:`stat-label text-red-4`},jr={class:`stat-value text-red-4`},Mr={key:6},Nr={class:`stat-group-label q-mb-xs`},Pr={class:`usage-breakdown q-mb-sm`},Fr={class:`stat-row`},Ir={class:`stat-label`},Lr={class:`stat-value`},Rr={class:`stat-value-muted`},zr={class:`stat-row`},Br={class:`stat-label`},Vr={class:`stat-value`},Hr={class:`stat-value-muted`},Ur={class:`stat-row`},Wr={class:`stat-label`},Gr={class:`stat-value`},Kr={key:0,class:`stat-row`},qr={class:`stat-label`},Jr={class:`stat-value`},Yr={key:7},Xr={class:`stat-group-label q-mb-xs`},Zr={class:`stat-row q-mb-xxs`},Qr={class:`stat-label`},$r={class:`stat-value`},ei={key:0,class:`stat-subtext q-mt-xxs`},ti={key:0},ni={key:1},ri={key:2},ii={key:8},ai={class:`stat-group-label q-mb-xs`},oi={class:`stat-row`},si={class:`stat-label`},ci={class:`stat-value`},li={key:0,class:`stat-row`},ui={class:`stat-label`},di={class:`stat-value`},fi={key:1,class:`stat-row`},pi={class:`stat-label`},mi={class:`stat-value`},hi={key:9},gi={class:`stat-group-label q-mb-xs`},_i={key:0,class:`q-mb-xs`},vi={class:`stat-row q-mb-xxs`},yi={class:`stat-label`},bi={class:`stat-value`},xi={key:1},Si={class:`stat-row q-mb-xxs`},Ci={class:`stat-label`},wi={class:`stat-value`},Ti={key:1,class:`text-caption text-grey-8`},Ei=We(E({__name:`StatsPanel`,props:{workspace:{}},setup(e){let{t:n}=ye(),r=Pe(),{timeAgo:a}=st(),o=x(()=>{let e=r.selectedWorkspaceId;if(!e)return null;let t=r.activityFeeds[e]??[],n=r.sessions,i=Object.values(r.subagents[e]??{}),a=r.tasks,o=r.selectedWorkspace,s=r.activityCounts[e]??{toolUses:0,agentMessages:0,userMessages:0,errors:0},c=s.toolUses,l=s.agentMessages,u=s.userMessages,d=s.errors,f=n.length,p=n.filter(e=>e.status===`completed`).length,m=i.length,h=i.filter(e=>e.status===`done`).length,g=i.reduce((e,t)=>e+(t.totalTokens??0),0),_=i.reduce((e,t)=>e+(t.toolUses??0),0),v=a.filter(e=>!e.isAcceptanceCriterion).length,y=a.filter(e=>!e.isAcceptanceCriterion&&e.status===`done`).length,b=a.filter(e=>e.isAcceptanceCriterion).length,x=a.filter(e=>e.isAcceptanceCriterion&&e.status===`done`).length,S=o?.createdAt?new Date(o.createdAt):null,C=o?.updatedAt?new Date(o.updatedAt):null,w=S?Date.now()-S.getTime():0,T=null,E=null;for(let e=t.length-1;e>=0;e--){let n=t[e];if(!T&&n.meta?.sender===`user`&&(T=new Date(n.timestamp)),!E&&n.type===`text`&&n.meta?.sender!==`user`&&n.meta?.sender!==`system-prompt`&&(E=new Date(n.timestamp)),T&&E)break}let D=n.length>0?new Date(n[n.length-1].startedAt):null,O=r.usageStats[e]??{inputTokens:0,outputTokens:0,costUsd:0,sessionCount:0},k=r.rateLimitUsage[e],A=o?.model??`auto`,j=o?.workingBranch??``,M=o?.status??``;return{toolUses:c,agentMessages:l,userMessages:u,errors:d,totalSessions:f,completedSessions:p,totalSubagents:m,doneSubagents:h,totalSubagentTokens:g,totalSubagentTools:_,totalTasks:v,doneTasks:y,totalCriteria:b,doneCriteria:x,durationMs:w,createdAt:S,updatedAt:C,lastPromptAt:T,lastAgentResponseAt:E,firstSessionAt:D,model:A,branch:j,status:M,usage:O,rateLimitUsage:k}});function s(e){let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return n<24?`${n}h ${r}m`:`${Math.floor(n/24)}d ${n%24}h`}function c(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function l(e){return e.toLocaleDateString(void 0,{day:`2-digit`,month:`2-digit`,year:`numeric`})}function d(e){return e.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function f(e){return`${l(e)} ${d(e)}`}function p(e,t){return e?rt(e,n):n(`stats.usageBucket`,{n:t+1})}function m(e,t){return t<=0?0:Math.max(0,Math.min(100,e/t*100))}return(n,l)=>(t(),S(`div`,Rn,[T(`div`,zn,[T(`div`,Bn,h(n.$t(`stats.title`)),1),v(Ke),e.workspace?(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,onClick:l[0]||=t=>w(r).fetchWorkspaceDetails(e.workspace.id)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`tooltip.refreshStats`)),1)]),_:1})]),_:1})):_(``,!0)]),e.workspace&&o.value?(t(),S(C,{key:0},[T(`div`,Vn,h(n.$t(`stats.info`)),1),T(`div`,Hn,[T(`span`,Un,h(n.$t(`stats.status`)),1),T(`span`,Wn,h(o.value.status),1)]),T(`div`,Gn,[T(`span`,Kn,h(n.$t(`stats.model`)),1),T(`span`,qn,h(o.value.model),1)]),o.value.branch?(t(),S(`div`,Jn,[T(`span`,Yn,h(n.$t(`stats.branch`)),1),T(`span`,Xn,h(o.value.branch),1)])):_(``,!0),T(`div`,Zn,[T(`span`,Qn,h(n.$t(`stats.sessions`)),1),T(`span`,$n,h(o.value.completedSessions)+` / `+h(o.value.totalSessions),1)]),T(`div`,er,[T(`span`,tr,h(n.$t(`stats.duration`)),1),T(`span`,nr,h(s(o.value.durationMs)),1)]),v(L,{dark:``,class:`q-my-sm`}),T(`div`,rr,h(n.$t(`stats.timeline`)),1),T(`div`,ir,[T(`span`,ar,h(n.$t(`stats.created`)),1),T(`span`,or,h(o.value.createdAt?f(o.value.createdAt):`—`),1)]),o.value.firstSessionAt?(t(),S(`div`,sr,[T(`span`,cr,h(n.$t(`stats.firstSession`)),1),T(`span`,lr,h(f(o.value.firstSessionAt)),1)])):_(``,!0),o.value.lastPromptAt?(t(),S(`div`,ur,[T(`span`,dr,h(n.$t(`stats.lastPrompt`)),1),T(`span`,fr,[y(h(w(a)(o.value.lastPromptAt))+` `,1),v(H,null,{default:u(()=>[y(h(f(o.value.lastPromptAt)),1)]),_:1})])])):_(``,!0),o.value.lastAgentResponseAt?(t(),S(`div`,pr,[T(`span`,mr,h(n.$t(`stats.lastResponse`)),1),T(`span`,hr,[y(h(w(a)(o.value.lastAgentResponseAt))+` `,1),v(H,null,{default:u(()=>[y(h(f(o.value.lastAgentResponseAt)),1)]),_:1})])])):_(``,!0),o.value.updatedAt?(t(),S(`div`,gr,[T(`span`,_r,h(n.$t(`stats.updated`)),1),T(`span`,vr,h(w(a)(o.value.updatedAt)),1)])):_(``,!0),v(L,{dark:``,class:`q-my-sm`}),T(`div`,yr,h(n.$t(`stats.activity`)),1),T(`div`,br,[T(`span`,xr,h(n.$t(`stats.agentMessages`)),1),T(`span`,Sr,h(o.value.agentMessages),1)]),T(`div`,Cr,[T(`span`,wr,h(n.$t(`stats.userMessages`)),1),T(`span`,Tr,h(o.value.userMessages),1)]),T(`div`,Er,[T(`span`,Dr,h(n.$t(`stats.toolCalls`)),1),T(`span`,Or,h(o.value.toolUses),1)]),o.value.errors>0?(t(),S(`div`,kr,[T(`span`,Ar,h(n.$t(`stats.errors`)),1),T(`span`,jr,h(o.value.errors),1)])):_(``,!0),o.value.usage.inputTokens>0||o.value.usage.outputTokens>0?(t(),S(`div`,Mr,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,Nr,h(n.$t(`stats.usage`)),1),T(`div`,Pr,[T(`div`,{class:`usage-breakdown-input`,style:k({width:`${m(o.value.usage.inputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens)}%`})},null,4),T(`div`,{class:`usage-breakdown-output`,style:k({width:`${m(o.value.usage.outputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens)}%`})},null,4)]),T(`div`,Fr,[T(`span`,Ir,h(n.$t(`stats.inputTokens`)),1),T(`span`,Lr,[y(h(c(o.value.usage.inputTokens))+` `,1),T(`span`,Rr,` (`+h(m(o.value.usage.inputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens).toFixed(0))+`%) `,1)])]),T(`div`,zr,[T(`span`,Br,h(n.$t(`stats.outputTokens`)),1),T(`span`,Vr,[y(h(c(o.value.usage.outputTokens))+` `,1),T(`span`,Hr,` (`+h(m(o.value.usage.outputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens).toFixed(0))+`%) `,1)])]),T(`div`,Ur,[T(`span`,Wr,h(n.$t(`stats.totalTokens`)),1),T(`span`,Gr,h(c(o.value.usage.inputTokens+o.value.usage.outputTokens)),1)]),o.value.usage.costUsd>0?(t(),S(`div`,Kr,[T(`span`,qr,h(n.$t(`stats.cost`)),1),T(`span`,Jr,`$`+h(o.value.usage.costUsd.toFixed(4)),1)])):_(``,!0)])):_(``,!0),o.value.rateLimitUsage?.buckets?.length?(t(),S(`div`,Yr,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,Xr,h(n.$t(`stats.usageLimits`)),1),(t(!0),S(C,null,i(o.value.rateLimitUsage.buckets,(e,r)=>(t(),S(`div`,{key:e.id,class:`q-mb-sm`},[T(`div`,Zr,[T(`span`,Qr,h(p(e.label,r)),1),T(`span`,$r,h(e.usedPct.toFixed(0))+`% `+h(n.$t(`stats.used`)),1)]),v(be,{value:e.usedPct/100,color:`indigo-4`,"track-color":`grey-9`,style:{height:`6px`,"border-radius":`999px`}},null,8,[`value`]),e.details||e.resetAt?(t(),S(`div`,ei,[e.details?(t(),S(`span`,ti,h(e.details),1)):_(``,!0),e.details&&e.resetAt?(t(),S(`span`,ni,` · `)):_(``,!0),e.resetAt?(t(),S(`span`,ri,h(n.$t(`stats.resetsAt`,{value:e.resetAt})),1)):_(``,!0)])):_(``,!0)]))),128))])):_(``,!0),o.value.totalSubagents>0?(t(),S(`div`,ii,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,ai,h(n.$t(`stats.subagents`)),1),T(`div`,oi,[T(`span`,si,h(n.$t(`stats.completed`)),1),T(`span`,ci,h(o.value.doneSubagents)+` / `+h(o.value.totalSubagents),1)]),o.value.totalSubagentTokens>0?(t(),S(`div`,li,[T(`span`,ui,h(n.$t(`stats.tokens`)),1),T(`span`,di,h(c(o.value.totalSubagentTokens)),1)])):_(``,!0),o.value.totalSubagentTools>0?(t(),S(`div`,fi,[T(`span`,pi,h(n.$t(`stats.toolCalls`)),1),T(`span`,mi,h(o.value.totalSubagentTools),1)])):_(``,!0)])):_(``,!0),o.value.totalTasks>0||o.value.totalCriteria>0?(t(),S(`div`,hi,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,gi,h(n.$t(`stats.progress`)),1),o.value.totalTasks>0?(t(),S(`div`,_i,[T(`div`,vi,[T(`span`,yi,h(n.$t(`stats.tasks`)),1),T(`span`,bi,h(o.value.doneTasks)+` / `+h(o.value.totalTasks),1)]),v(be,{value:o.value.doneTasks/o.value.totalTasks,color:`primary`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):_(``,!0),o.value.totalCriteria>0?(t(),S(`div`,xi,[T(`div`,Si,[T(`span`,Ci,h(n.$t(`stats.acceptanceCriteria`)),1),T(`span`,wi,h(o.value.doneCriteria)+` / `+h(o.value.totalCriteria),1)]),v(be,{value:o.value.doneCriteria/o.value.totalCriteria,color:`green-6`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):_(``,!0)])):_(``,!0)],64)):(t(),S(`div`,Ti,h(n.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-61fd94e7`]]),Di={class:`subagents-panel q-pa-md`},Oi={class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},ki={key:0,class:`text-caption text-grey-8`},Ai={class:`row items-center q-mb-xs`},ji={class:`text-caption text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`220px`}},Mi={key:0,class:`text-caption text-grey-6`,style:{"font-size":`10px`}},Ni={class:`text-grey-4`},Pi={class:`row items-center q-gutter-xs q-mt-xs text-caption text-grey-7`,style:{"font-size":`10px`}},Fi={key:0},Ii={key:1},Li={key:2},Ri=We(E({__name:`SubagentsPanel`,setup(e){let{t:n}=ye(),r=Pe(),a=x(()=>[...r.currentSubagents].reverse());function o(e){return e?e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:``}function s(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,n)=>(t(),S(`div`,Di,[T(`div`,Oi,h(e.$t(`subagents.title`)),1),a.value.length===0?(t(),S(`div`,ki,h(e.$t(`subagents.empty`)),1)):_(``,!0),(t(!0),S(C,null,i(a.value,n=>(t(),S(`div`,{key:n.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[T(`div`,Ai,[v(I,{name:n.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:n.status===`running`?`green-4`:`grey-6`,class:`q-mr-xs`},null,8,[`name`,`color`]),T(`span`,ji,h(n.description||n.toolUseId),1)]),n.lastToolName?(t(),S(`div`,Mi,[y(h(e.$t(`subagents.running`)),1),T(`span`,Ni,h(n.lastToolName),1)])):_(``,!0),T(`div`,Pi,[n.toolUses===void 0?_(``,!0):(t(),S(`span`,Fi,h(e.$t(`subagents.tools`,{count:n.toolUses})),1)),n.totalTokens?(t(),S(`span`,Ii,`· `+h(s(n.totalTokens))+` tok`,1)):_(``,!0),n.durationMs?(t(),S(`span`,Li,`· `+h(o(n.durationMs)),1)):_(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-81ad2481`]]),zi=2,Bi=1,Vi=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(zi,Math.floor(u/e.css.cell.width)),rows:Math.max(Bi,Math.floor(l/e.css.cell.height))}}},Hi=Object.defineProperty,Ui=Object.getOwnPropertyDescriptor,Wi=(e,t)=>{for(var n in t)Hi(e,n,{get:t[n],enumerable:!0})},Gi=(e,t,n,r)=>{for(var i=r>1?void 0:r?Ui(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&Hi(t,n,i),i},U=(e,t)=>(n,r)=>t(n,r,e),Ki=`Terminal input`,qi={get:()=>Ki,set:e=>Ki=e},Ji=`Too much output to announce, navigate to rows manually to read`,Yi={get:()=>Ji,set:e=>Ji=e};function Xi(e){return e.replace(/\r?\n/g,`\r`)}function Zi(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Qi(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function $i(e,t,n,r){e.stopPropagation(),e.clipboardData&&ea(e.clipboardData.getData(`text/plain`),t,n,r)}function ea(e,t,n,r){e=Xi(e),e=Zi(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ta(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function na(e,t,n,r,i){ta(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ra(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ia(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var aa=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},oa=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},sa=``,ca=` `,la=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ua}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ua=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},da=class e extends la{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ua,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?ra(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},fa=`di$target`,pa=`di$dependencies`,ma=new Map;function ha(e){return e[pa]||[]}function ga(e){if(ma.has(e))return ma.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);_a(t,e,r)};return t._id=e,ma.set(e,t),t}function _a(e,t,n){t[fa]===t?t[pa].push({id:e,index:n}):(t[pa]=[{id:e,index:n}],t[fa]=t)}var va=ga(`BufferService`),ya=ga(`CoreMouseService`),ba=ga(`CoreService`),xa=ga(`CharsetService`),Sa=ga(`InstantiationService`),Ca=ga(`LogService`),wa=ga(`OptionsService`),Ta=ga(`OscLinkService`),Ea=ga(`UnicodeService`),Da=ga(`DecorationService`),Oa=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new da,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+(!l&&t===o-1?1:0),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):ka(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Oa=Gi([U(0,va),U(1,wa),U(2,Ta)],Oa);function ka(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DiffViewer-DQvXQTEa.js","assets/index-C-IVb0lG.js","assets/vue-i18n-eUDnMrPl.js","assets/runtime-core.esm-bundler-C3IgBgY5.js","assets/QIcon-B0-pH3Qs.js","assets/use-id-BmXMngYX.js","assets/QSeparator-DNSiXYrN.js","assets/QBtn-CyzfM9-_.js","assets/use-checkbox-BduGd8xg.js","assets/private.use-form-C5G_3nU5.js","assets/QDialog-G448EJG4.js","assets/scroll-C-Vz5BD9.js","assets/symbols-DCYodwb2.js","assets/index-eX_lKHSg.css","assets/_plugin-vue_export-helper-Cj6tcsj6.js","assets/QBadge-Di02fu2H.js","assets/build-path-tree-DuCsR4mF.js","assets/QSlideTransition-s6ZkYsLs.js","assets/QScrollArea-CBW6shMb.js","assets/touch-B2uuAH_y.js","assets/TouchPan-Y_Bxzun2.js","assets/QTooltip-DbEBexRN.js","assets/QSpace-0zdF1m5x.js","assets/QSpinnerDots-By20ptst.js","assets/DiffViewer-BC81-2me.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{E as e,F as t,H as n,I as r,L as i,M as a,N as o,Q as s,R as c,S as l,U as u,W as d,Z as f,_ as p,_t as m,bt as h,d as g,f as _,g as v,h as y,k as b,l as x,p as S,r as C,rt as w,u as T,v as E,w as D,y as O,yt as k}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{E as A,F as j,I as M,L as N,O as P,a as ee,i as te,l as ne,n as re,r as F,s as ie,t as I}from"./QIcon-B0-pH3Qs.js";import{l as ae,t as L}from"./QSeparator-DNSiXYrN.js";import{o as oe,s as se,t as ce}from"./QDialog-G448EJG4.js";import{i as le,r as R,t as ue}from"./symbols-DCYodwb2.js";import{S as de,_ as fe,b as pe,r as z,v as me,y as he}from"./scroll-C-Vz5BD9.js";import{n as ge,r as _e,t as B}from"./QBtn-CyzfM9-_.js";import{t as ve}from"./use-id-BmXMngYX.js";import{n as ye}from"./vue-i18n-eUDnMrPl.js";import{D as be,E as xe,O as Se,S as Ce,_ as we,b as Te,d as Ee,f as De,g as Oe,i as ke,m as Ae,p as je,r as Me,t as Ne,v as Pe,x as Fe}from"./index-C-IVb0lG.js";import{n as Ie,t as V}from"./QItemSection-BzWLL-V-.js";import{r as Le}from"./touch-B2uuAH_y.js";import{n as Re,t as ze}from"./TouchPan-Y_Bxzun2.js";import{d as Be,t as H}from"./QTooltip-DbEBexRN.js";import{n as Ve,r as He,t as Ue}from"./documents-AXuTuYab.js";import{t as We}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as Ge}from"./QBadge-Di02fu2H.js";import{t as Ke}from"./QSpace-0zdF1m5x.js";import{i as qe,r as Je,t as Ye}from"./build-path-tree-DuCsR4mF.js";import{i as Xe,n as Ze,r as Qe,t as $e}from"./QTabPanels-Cw4nnIbR.js";import{n as et,t as tt}from"./QChip-1nQ_KMFF.js";import{r as nt,t as rt}from"./rate-limit-labels-Su-L56A2.js";import{t as it}from"./use-quasar-BBrzedjR.js";import{t as at}from"./QList-D2GuTeLl.js";import{t as ot}from"./ClosePopup-DTgXzcoa.js";import{t as st}from"./formatters-D7eTm7uK.js";var ct=150,lt=P({name:`QDrawer`,inheritAttrs:!1,props:{...pe,...F,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...he,`onLayout`,`miniState`],setup(t,{slots:r,emit:i,attrs:o}){let c=O(),{proxy:{$q:u}}=c,f=re(t,u),{preventBodyScroll:p}=oe(),{registerTimeout:m,removeTimeout:h}=de(),g=D(R,ue);if(g===ue)return console.error(`QDrawer needs to be child of QLayout`),ue;let _,v=null,y,S=s(t.behavior===`mobile`||t.behavior!==`desktop`&&g.totalWidth.value<=t.breakpoint),C=x(()=>t.mini===!0&&S.value!==!0),w=x(()=>C.value===!0?t.miniWidth:t.width),T=s(t.showIfAbove===!0&&S.value===!1?!0:t.modelValue===!0),E=x(()=>t.persistent!==!0&&(S.value===!0||he.value===!0));function k(e,t){if(N(),e!==!1&&g.animate(),De(0),S.value===!0){let e=g.instances[le.value];e?.belowBreakpoint===!0&&e.hide(!1),Oe(1),g.isContainer.value!==!0&&p(!0)}else Oe(0),e!==!1&&ke(!1);m(()=>{e!==!1&&ke(!0),t!==!0&&i(`show`,e)},ct)}function A(e,t){P(),e!==!1&&g.animate(),Oe(0),De(F.value*w.value),Ne(),t===!0?h():m(()=>{i(`hide`,e)},ct)}let{show:j,hide:M}=me({showing:T,hideOnRouteChange:E,handleShow:k,handleHide:A}),{addToHistory:N,removeFromHistory:P}=se(T,M,E),ee={belowBreakpoint:S,hide:M},ne=x(()=>t.side===`right`),F=x(()=>(u.lang.rtl===!0?-1:1)*(ne.value===!0?1:-1)),I=s(0),ae=s(!1),L=s(!1),ce=s(w.value*F.value),le=x(()=>ne.value===!0?`left`:`right`),fe=x(()=>T.value===!0&&S.value===!1&&t.overlay===!1?t.miniToOverlay===!0?t.miniWidth:w.value:0),pe=x(()=>t.overlay===!0||t.miniToOverlay===!0||g.view.value.indexOf(ne.value?`R`:`L`)!==-1||u.platform.is.ios===!0&&g.isContainer.value===!0),z=x(()=>t.overlay===!1&&T.value===!0&&S.value===!1),he=x(()=>t.overlay===!0&&T.value===!0&&S.value===!1),ge=x(()=>`fullscreen q-drawer__backdrop`+(T.value===!1&&ae.value===!1?` hidden`:``)),_e=x(()=>({backgroundColor:`rgba(0,0,0,${I.value*.4})`})),B=x(()=>ne.value===!0?g.rows.value.top[2]===`r`:g.rows.value.top[0]===`l`),ve=x(()=>ne.value===!0?g.rows.value.bottom[2]===`r`:g.rows.value.bottom[0]===`l`),ye=x(()=>{let e={};return g.header.space===!0&&B.value===!1&&(pe.value===!0?e.top=`${g.header.offset}px`:g.header.space===!0&&(e.top=`${g.header.size}px`)),g.footer.space===!0&&ve.value===!1&&(pe.value===!0?e.bottom=`${g.footer.offset}px`:g.footer.space===!0&&(e.bottom=`${g.footer.size}px`)),e}),be=x(()=>{let e={width:`${w.value}px`,transform:`translateX(${ce.value}px)`};return S.value===!0?e:Object.assign(e,ye.value)}),xe=x(()=>`q-drawer__content fit `+(g.isContainer.value===!0?`overflow-auto`:`scroll`)),Se=x(()=>`q-drawer q-drawer--${t.side}`+(L.value===!0?` q-drawer--mini-animate`:``)+(t.bordered===!0?` q-drawer--bordered`:``)+(f.value===!0?` q-drawer--dark q-dark`:``)+(ae.value===!0?` no-transition`:T.value===!0?``:` q-layout--prevent-focus`)+(S.value===!0?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${C.value===!0?`mini`:`standard`}`+(pe.value===!0||z.value!==!0?` fixed`:``)+(t.overlay===!0||t.miniToOverlay===!0?` q-drawer--on-top`:``)+(B.value===!0?` q-drawer--top-padding`:``))),Ce=x(()=>[[ze,je,void 0,{[u.lang.rtl===!0?t.side:le.value]:!0,mouse:!0}]]),we=x(()=>[[ze,Me,void 0,{[u.lang.rtl===!0?le.value:t.side]:!0,mouse:!0}]]),Te=x(()=>[[ze,Me,void 0,{[u.lang.rtl===!0?le.value:t.side]:!0,mouse:!0,mouseAllDir:!0}]]);function Ee(){Fe(S,t.behavior===`mobile`||t.behavior!==`desktop`&&g.totalWidth.value<=t.breakpoint)}n(S,e=>{e===!0?(_=T.value,T.value===!0&&M(!1)):t.overlay===!1&&t.behavior!==`mobile`&&_!==!1&&(T.value===!0?(De(0),Oe(0),Ne()):j(!1))}),n(()=>t.side,(e,t)=>{g.instances[t]===ee&&(g.instances[t]=void 0,g[t].space=!1,g[t].offset=0),g.instances[e]=ee,g[e].size=w.value,g[e].space=z.value,g[e].offset=fe.value}),n(g.totalWidth,()=>{(g.isContainer.value===!0||document.qScrollPrevented!==!0)&&Ee()}),n(()=>t.behavior+t.breakpoint,Ee),n(g.isContainer,e=>{T.value===!0&&p(e!==!0),e===!0&&Ee()}),n(g.scrollbarWidth,()=>{De(T.value===!0?0:void 0)}),n(fe,e=>{Pe(`offset`,e)}),n(z,e=>{i(`onLayout`,e),Pe(`space`,e)}),n(ne,()=>{De()}),n(w,e=>{De(),Ie(t.miniToOverlay,e)}),n(()=>t.miniToOverlay,e=>{Ie(e,w.value)}),n(()=>u.lang.rtl,()=>{De()}),n(()=>t.mini,()=>{t.noMiniAnimation||t.modelValue===!0&&(Ae(),g.animate())}),n(C,e=>{i(`miniState`,e)});function De(t){t===void 0?e(()=>{t=T.value===!0?0:w.value,De(F.value*t)}):(g.isContainer.value===!0&&ne.value===!0&&(S.value===!0||Math.abs(t)===w.value)&&(t+=F.value*g.scrollbarWidth.value),ce.value=t)}function Oe(e){I.value=e}function ke(e){let t=e===!0?`remove`:g.isContainer.value===!0?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function Ae(){v!==null&&clearTimeout(v),c.proxy&&c.proxy.$el&&c.proxy.$el.classList.add(`q-drawer--mini-animate`),L.value=!0,v=setTimeout(()=>{v=null,L.value=!1,c?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function je(e){if(T.value!==!1)return;let t=w.value,n=Be(e.distance.x,0,t);if(e.isFinal===!0){n>=Math.min(75,t)?j():(g.animate(),Oe(0),De(F.value*t)),ae.value=!1;return}De((u.lang.rtl===!0?ne.value!==!0:ne.value)?Math.max(t-n,0):Math.min(0,n-t)),Oe(Be(n/t,0,1)),e.isFirst===!0&&(ae.value=!0)}function Me(e){if(T.value!==!0)return;let n=w.value,r=e.direction===t.side,i=(u.lang.rtl===!0?r!==!0:r)?Be(e.distance.x,0,n):0;if(e.isFinal===!0){Math.abs(i)<Math.min(75,n)?(g.animate(),Oe(1),De(0)):M(),ae.value=!1;return}De(F.value*i),Oe(Be(1-i/n,0,1)),e.isFirst===!0&&(ae.value=!0)}function Ne(){p(!1),ke(!0)}function Pe(e,n){g.update(t.side,e,n)}function Fe(e,t){e.value!==t&&(e.value=t)}function Ie(e,n){Pe(`size`,e===!0?t.miniWidth:n)}return g.instances[t.side]=ee,Ie(t.miniToOverlay,w.value),Pe(`space`,z.value),Pe(`offset`,fe.value),t.showIfAbove===!0&&t.modelValue!==!0&&T.value===!0&&t[`onUpdate:modelValue`]!==void 0&&i(`update:modelValue`,!0),a(()=>{i(`onLayout`,z.value),i(`miniState`,C.value),_=t.showIfAbove===!0;let r=()=>{(T.value===!0?k:A)(!1,!0)};if(g.totalWidth.value!==0){e(r);return}y=n(g.totalWidth,()=>{y(),y=void 0,T.value===!1&&t.showIfAbove===!0&&S.value===!1?j(!1):r()})}),b(()=>{y?.(),v!==null&&(clearTimeout(v),v=null),T.value===!0&&Ne(),g.instances[t.side]===ee&&(g.instances[t.side]=void 0,Pe(`size`,0),Pe(`offset`,0),Pe(`space`,!1))}),()=>{let e=[];S.value===!0&&(t.noSwipeOpen===!1&&e.push(d(l(`div`,{key:`open`,class:`q-drawer__opener fixed-${t.side}`,"aria-hidden":`true`}),Ce.value)),e.push(te(`div`,{ref:`backdrop`,class:ge.value,style:_e.value,"aria-hidden":`true`,onClick:M},void 0,`backdrop`,t.noSwipeBackdrop!==!0&&T.value===!0,()=>Te.value)));let n=C.value===!0&&r.mini!==void 0,i=[l(`div`,{...o,key:String(n),class:[xe.value,o.class]},n===!0?r.mini():ie(r.default))];return t.elevated===!0&&T.value===!0&&i.push(l(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),e.push(te(`aside`,{ref:`content`,class:Se.value,style:be.value},i,`contentclose`,t.noSwipeClose!==!0&&S.value===!0,()=>we.value)),l(`div`,{class:`q-drawer-container`},e)}}}),ut=P({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=O(),i=D(R,ue);if(i===ue)return console.error(`QPageContainer needs to be child of QLayout`),ue;r(le,!0);let a=x(()=>{let e={};return i.header.space===!0&&(e.paddingTop=`${i.header.size}px`),i.right.space===!0&&(e[`padding${n.lang.rtl===!0?`Left`:`Right`}`]=`${i.right.size}px`),i.footer.space===!0&&(e.paddingBottom=`${i.footer.size}px`),i.left.space===!0&&(e[`padding${n.lang.rtl===!0?`Right`:`Left`}`]=`${i.left.size}px`),e});return()=>l(`div`,{class:`q-page-container`,style:a.value},ie(t.default))}}),dt=P({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:t,emit:i}){let{proxy:{$q:a}}=O(),c=s(null),u=s(a.screen.height),d=s(e.container===!0?0:a.screen.width),p=s({position:0,direction:`down`,inflectionPoint:0}),m=s(0),h=s(ae.value===!0?0:z()),g=x(()=>`q-layout q-layout--`+(e.container===!0?`containerized`:`standard`)),_=x(()=>e.container===!1?{minHeight:a.screen.height+`px`}:null),v=x(()=>h.value===0?null:{[a.lang.rtl===!0?`left`:`right`]:`${h.value}px`}),y=x(()=>h.value===0?null:{[a.lang.rtl===!0?`right`:`left`]:0,[a.lang.rtl===!0?`left`:`right`]:`-${h.value}px`,width:`calc(100% + ${h.value}px)`});function b(t){if(e.container===!0||document.qScrollPrevented!==!0){let n={position:t.position.top,direction:t.direction,directionChanged:t.directionChanged,inflectionPoint:t.inflectionPoint.top,delta:t.delta.top};p.value=n,e.onScroll!==void 0&&i(`scroll`,n)}}function S(t){let{height:n,width:r}=t,a=!1;u.value!==n&&(a=!0,u.value=n,e.onScrollHeight!==void 0&&i(`scrollHeight`,n),w()),d.value!==r&&(a=!0,d.value=r),a===!0&&e.onResize!==void 0&&i(`resize`,t)}function C({height:e}){m.value!==e&&(m.value=e,w())}function w(){if(e.container===!0){let e=u.value>m.value?z():0;h.value!==e&&(h.value=e)}}let T=null,E={instances:{},view:x(()=>e.view),isContainer:x(()=>e.container),rootRef:c,height:u,containerHeight:m,scrollbarWidth:h,totalWidth:x(()=>d.value+h.value),rows:x(()=>{let t=e.view.toLowerCase().split(` `);return{top:t[0].split(``),middle:t[1].split(``),bottom:t[2].split(``)}}),header:f({size:0,offset:0,space:!1}),right:f({size:300,offset:0,space:!1}),footer:f({size:0,offset:0,space:!1}),left:f({size:300,offset:0,space:!1}),scroll:p,animate(){T===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(T),T=setTimeout(()=>{T=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){E[e][t]=n}};if(r(R,E),z()>0){let t=null,r=document.body;function i(){t=null,r.classList.remove(`hide-scrollbar`)}function s(){if(t===null){if(r.scrollHeight>a.screen.height)return;r.classList.add(`hide-scrollbar`)}else clearTimeout(t);t=setTimeout(i,300)}function c(e){t!==null&&e===`remove`&&(clearTimeout(t),i()),window[`${e}EventListener`](`resize`,s)}n(()=>e.container===!0?`remove`:`add`,c),e.container!==!0&&c(`add`),o(()=>{c(`remove`)})}return()=>{let n=ee(t.default,[l(Re,{onScroll:b}),l(Le,{onResize:S})]),r=l(`div`,{class:g.value,style:_.value,ref:e.container===!0?void 0:c,tabindex:-1},n);return e.container===!0?l(`div`,{class:`q-layout-container overflow-hidden`,ref:c},[l(Le,{onResize:C}),l(`div`,{class:`absolute-full`,style:v.value},[l(`div`,{class:`scroll`,style:y.value},[r])])]):r}}}),ft={class:`acceptance-panel q-pa-md`},pt={class:`row items-center q-mb-sm`},mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ht={key:0,class:`criterion-add-row row items-center q-mb-xs`},gt={key:1,class:`acceptance-list`},_t=[`onDblclick`],vt={key:2,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},yt=We(E({__name:`AcceptancePanel`,props:{tasks:{}},setup(n){let{t:r}=ye(),a=Pe(),o=Oe();function c(){let e=a.selectedWorkspaceId;e&&nt(e,o,a)}let l=s(!1),d=s(``),f=s(null),p=s(``),b=s({});function x(e,t){if(t){let n=t.$el??t;b.value[e]=n}else delete b.value[e]}function E(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function D(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}async function O(e){let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);a.selectedWorkspaceId&&a.fetchWorkspaceDetails(a.selectedWorkspaceId)}catch(e){console.error(`Failed to update task:`,e)}}function A(){l.value=!0,d.value=``}async function j(){let e=d.value.trim(),t=a.selectedWorkspace?.id;if(!(!e||!t))try{await a.createTask(t,e,!0),d.value=``,l.value=!1}catch{}}function P(){d.value=``,l.value=!1}function ee(t){f.value=t.id,p.value=t.title,e(()=>{let e=b.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function te(e){if(f.value!==e.id)return;let t=p.value.trim(),n=e.id;if(f.value=null,!t||t===e.title)return;let r=a.selectedWorkspace?.id;if(r)try{await a.updateTaskTitle(r,n,t)}catch{}}function ne(){f.value=null,p.value=``}async function re(e){let t=a.selectedWorkspace?.id;if(t)try{await a.deleteTask(t,e.id)}catch{}}return(e,r)=>(t(),S(`div`,ft,[T(`div`,pt,[T(`div`,mt,h(e.$t(`acceptance.title`)),1),v(Ke),w(a).selectedWorkspace?(t(),g(B,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:c},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):_(``,!0),w(a).selectedWorkspace?(t(),g(B,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:A},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1})):_(``,!0)]),l.value?(t(),S(`div`,ht,[v(ke,{modelValue:d.value,"onUpdate:modelValue":r[0]||=e=>d.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`acceptance.newCriterion`),class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[M(N(j,[`prevent`]),[`enter`]),M(N(P,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):_(``,!0),n.tasks.length>0?(t(),S(`div`,gt,[(t(!0),S(C,null,i(n.tasks,n=>(t(),S(`div`,{key:n.id,class:`acceptance-item row items-center q-mb-xxs`},[v(I,{name:E(n.status),size:`16px`,style:k({color:D(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>O(n)},null,8,[`name`,`style`,`onClick`]),f.value===n.id?(t(),g(ke,{key:0,ref_for:!0,ref:e=>x(n.id,e),modelValue:p.value,"onUpdate:modelValue":r[1]||=e=>p.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[M(N(e=>te(n),[`prevent`]),[`enter`]),M(N(ne,[`prevent`]),[`esc`])],onBlur:e=>te(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),S(C,{key:1},[T(`span`,{class:m([`col acceptance-title text-caption`,{"text-strike":n.status===`done`}]),style:k({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>ee(n)},h(n.title),47,_t),v(B,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`criterion-delete-btn`,onClick:e=>re(n)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):l.value?_(``,!0):(t(),S(`div`,vt,h(e.$t(`acceptance.empty`)),1))]))}}),[[`__scopeId`,`data-v-63b144ad`]]),bt={class:`agent-todos-panel q-pa-md`},xt={class:`row items-center q-mb-sm`},St={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Ct={key:0,class:`todos-list`},wt={key:1,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},Tt=We(E({__name:`AgentTodosPanel`,setup(e){let{t:n}=ye(),r=Pe();function a(e){switch(e){case`completed`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function o(e){switch(e){case`completed`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,n)=>(t(),S(`div`,bt,[T(`div`,xt,[T(`div`,St,h(e.$t(`agentTodos.title`)),1)]),w(r).currentAgentTodos.length>0?(t(),S(`div`,Ct,[(t(!0),S(C,null,i(w(r).currentAgentTodos,(e,n)=>(t(),S(`div`,{key:n,class:`todo-item row items-start q-py-xxs`},[v(I,{name:a(e.status),size:`14px`,style:k({color:o(e.status)}),class:`q-mr-xs q-mt-xxs`},null,8,[`name`,`style`]),T(`span`,{class:m([`col todo-title text-caption`,{"text-strike":e.status===`completed`}]),style:k({color:e.status===`completed`?`#4ade80`:`#ccc`})},h(e.content),7)]))),128))])):(t(),S(`div`,wt,h(e.$t(`agentTodos.empty`)),1))]))}}),[[`__scopeId`,`data-v-4eddf754`]]),Et={class:`documents-panel q-pa-md`},Dt={class:`row items-center justify-between q-mb-sm`},Ot={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},kt={key:0,class:`text-caption text-grey-8`},At={key:1,class:`text-center q-py-lg`},jt={key:2,class:`text-caption text-grey-8 text-center q-py-lg`},Mt={key:0,class:`text-center q-py-lg`},Nt=[`innerHTML`],Pt=We(E({__name:`DocumentsPanel`,props:{workspace:{}},setup(e){let r=e,{t:i}=ye(),a=it(),o=Ue(),s=x(()=>r.workspace?o.documentsFor(r.workspace.id):[]),c=x(()=>Ye(s.value)),l=x(()=>o.selected?.path??null),d=x(()=>{if(!o.selected)return``;let e=Ve.parse(o.selected.content,{async:!1,breaks:!0,gfm:!0});return He.sanitize(e)});async function f(){r.workspace&&await o.fetchDocuments(r.workspace.id)}async function p(e){if(!(!r.workspace||!e.file))try{await o.openDocument(r.workspace.id,e.file)}catch{a.notify({type:`negative`,message:i(`documents.loadFailed`),position:`top`})}}function _(){o.closeDocument()}return n(()=>r.workspace?.id,e=>{o.closeDocument(),e&&o.fetchDocuments(e)},{immediate:!0}),(n,r)=>(t(),S(`div`,Et,[T(`div`,Dt,[T(`div`,Ot,h(n.$t(`documents.title`)),1),w(o).selected?(t(),g(B,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,icon:`arrow_back`,label:n.$t(`documents.back`),color:`grey-5`,onClick:_},null,8,[`label`])):(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:w(o).loadingList,onClick:f},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`documents.refresh`)),1)]),_:1})]),_:1},8,[`loading`]))]),w(o).selected?(t(),S(C,{key:1},[w(o).loadingContent?(t(),S(`div`,Mt,[v(ne,{size:`24px`,color:`grey-6`})])):(t(),S(`div`,{key:1,class:`document-content`,innerHTML:d.value},null,8,Nt))],64)):(t(),S(C,{key:0},[e.workspace?w(o).loadingList?(t(),S(`div`,At,[v(ne,{size:`24px`,color:`grey-6`})])):s.value.length===0?(t(),S(`div`,jt,h(n.$t(`documents.empty`)),1)):(t(),g(Je,{key:3,nodes:c.value,"node-key":`nodeKey`,"label-key":`label`,"children-key":`children`,dark:``,dense:``,"default-expand-all":``,"no-selection-unset":``,selected:l.value?`file:${l.value}`:``,class:`documents-tree`,"onUpdate:selected":r[0]||=e=>{if(typeof e!=`string`||!e.startsWith(`file:`))return;let t=s.value.find(t=>`file:${t.path}`===e);t&&p({file:t})}},{"default-header":u(({node:e})=>[v(I,{name:e.isFolder?`folder`:`description`,color:e.isFolder?`indigo-4`:`grey-5`,size:`14px`,class:`q-mr-xs`},null,8,[`name`,`color`]),T(`span`,{class:m(e.isFolder?`text-grey-4`:`text-grey-3`),style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},h(e.label),3)]),_:1},8,[`nodes`,`selected`])):(t(),S(`div`,kt,h(n.$t(`common.selectWorkspace`)),1))],64))]))}}),[[`__scopeId`,`data-v-445c589c`]]),Ft=Object.keys(_e);function It(e){return Ft.reduce((t,n)=>{let r=e[n];return r!==void 0&&(t[n]=r),t},{})}var Lt=P({name:`QBtnDropdown`,props:{..._e,...fe,modelValue:Boolean,split:Boolean,dropdownIcon:String,contentClass:[Array,String,Object],contentStyle:[Array,String,Object],cover:Boolean,persistent:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,autoClose:Boolean,noRefocus:Boolean,noFocus:Boolean,menuAnchor:{type:String,default:`bottom end`},menuSelf:{type:String,default:`top end`},menuOffset:Array,disableMainBtn:Boolean,disableDropdown:Boolean,noIconAnimation:Boolean,toggleAriaLabel:String},emits:[`update:modelValue`,`click`,`beforeShow`,`show`,`beforeHide`,`hide`],setup(e,{slots:t,emit:r}){let{proxy:i}=O(),o=s(e.modelValue),c=s(null),u=ve(),d=x(()=>{let t={"aria-expanded":o.value===!0?`true`:`false`,"aria-haspopup":`true`,"aria-controls":u.value,"aria-label":e.toggleAriaLabel||i.$q.lang.label[o.value===!0?`collapse`:`expand`](e.label)};return(e.disable===!0||e.split===!1&&e.disableMainBtn===!0||e.disableDropdown===!0)&&(t[`aria-disabled`]=`true`),t}),f=x(()=>`q-btn-dropdown__arrow`+(o.value===!0&&e.noIconAnimation===!1?` rotate-180`:``)+(e.split===!1?` q-btn-dropdown__arrow-container`:``)),p=x(()=>ge(e)),m=x(()=>It(e));n(()=>e.modelValue,e=>{c.value?.[e?`show`:`hide`]()}),n(()=>e.split,w);function h(e){o.value=!0,r(`beforeShow`,e)}function g(e){r(`show`,e),r(`update:modelValue`,!0)}function _(e){o.value=!1,r(`beforeHide`,e)}function v(e){r(`hide`,e),r(`update:modelValue`,!1)}function y(e){r(`click`,e)}function b(e){A(e),w(),r(`click`,e)}function S(e){c.value?.toggle(e)}function C(e){c.value?.show(e)}function w(e){c.value?.hide(e)}return Object.assign(i,{show:C,hide:w,toggle:S}),a(()=>{e.modelValue===!0&&C()}),()=>{let n=[l(I,{class:f.value,name:e.dropdownIcon||i.$q.iconSet.arrow.dropdown})];return e.disableDropdown!==!0&&n.push(l(et,{ref:c,id:u.value,class:e.contentClass,style:e.contentStyle,cover:e.cover,fit:!0,persistent:e.persistent,noEscDismiss:e.noEscDismiss,noRouteDismiss:e.noRouteDismiss,autoClose:e.autoClose,noFocus:e.noFocus,noRefocus:e.noRefocus,anchor:e.menuAnchor,self:e.menuSelf,offset:e.menuOffset,separateClosePopup:!0,transitionShow:e.transitionShow,transitionHide:e.transitionHide,transitionDuration:e.transitionDuration,onBeforeShow:h,onShow:g,onBeforeHide:_,onHide:v},t.default)),e.split===!1?l(B,{class:`q-btn-dropdown q-btn-dropdown--simple`,...m.value,...d.value,disable:e.disable===!0||e.disableMainBtn===!0,noWrap:!0,round:!1,onClick:y},{default:()=>ie(t.label,[]).concat(n),loading:t.loading}):l(qe,{class:`q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item`,rounded:e.rounded,square:e.square,...p.value,glossy:e.glossy,stretch:e.stretch},()=>[l(B,{class:`q-btn-dropdown--current`,...m.value,disable:e.disable===!0||e.disableMainBtn===!0,noWrap:!0,round:!1,onClick:b},{default:t.label,loading:t.loading}),l(B,{class:`q-btn-dropdown__arrow-container q-anchor--skip`,...d.value,...p.value,disable:e.disable===!0||e.disableDropdown===!0,rounded:e.rounded,color:e.color,textColor:e.textColor,dense:e.dense,size:e.size,padding:e.padding,ripple:e.ripple},()=>n)])}}}),Rt={class:`git-panel q-px-sm q-py-md`},zt={class:`row items-center justify-between q-mb-sm`},Bt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Vt={class:`row items-center q-mb-sm`},Ht={class:`text-caption text-grey-3`},Ut={class:`row items-center q-mb-sm`},Wt={class:`text-caption text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Gt={class:`text-caption q-mb-sm text-grey-8`,style:{"font-size":`11px`}},Kt={key:0},qt={key:1,style:{color:`#4ade80`}},Jt={key:2,style:{color:`#f59e0b`}},Yt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Xt={key:1,class:`row items-center q-mb-xs`},Zt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Qt={key:2,class:`commit-list q-mb-sm`},$t={key:0,class:`text-caption text-grey-6 q-pa-xs`},en={key:1,class:`text-caption text-grey-7 q-pa-xs`},tn=[`onClick`],nn={class:`commit-sha text-grey-5`},rn={class:`commit-subject text-grey-4 ellipsis q-ml-sm`},an={class:`text-caption`},on={class:`text-grey-5 q-mt-xs`},sn={class:`text-grey-6 q-mt-xs`,style:{"font-style":`italic`}},cn={key:3,class:`row items-center q-mb-md`},ln={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},un={key:0,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#4ade80`}},dn={key:1,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#f87171`}},fn={key:4,class:`q-mb-xs`},pn={key:5,class:`row items-center q-gutter-xs q-mb-md`,style:{"font-size":`11px`}},mn={key:0,class:`text-caption`,style:{color:`#4ade80`}},hn={key:1,class:`text-caption`,style:{color:`#f59e0b`}},gn={key:2,class:`text-caption text-grey-6`},_n={key:6,class:`q-mb-md`},vn={class:`row items-center q-gutter-xs`},yn={key:1,class:`text-caption text-grey-8`},bn={class:`text-subtitle1 text-warning`},xn={class:`text-caption text-grey-6 q-mt-xs`},Sn={class:`text-caption text-mono`},Cn=We(E({__name:`GitPanel`,props:{workspace:{}},setup(e){let r=p(()=>De(()=>import(`./DiffViewer-DQvXQTEa.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]))),a=e,{t:c}=ye(),l=it(),f=Pe(),m=s(!1),b=s(!1),E=s(!1),D=s(!1),O=s(!1),k=s(!1),A=s(!1),j=s(!1),M=s(!1),N=s(!1),P=s([]);async function ee(){if(a.workspace){N.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/commits?limit=50`,{cache:`no-store`});if(!e.ok)throw Error(`HTTP ${e.status}`);P.value=(await e.json()).commits}catch(e){console.error(`[GitPanel] fetchCommits failed:`,e),P.value=[]}finally{N.value=!1}}}async function te(){M.value=!M.value,M.value&&(N.value=!0,await ee())}function re(e){f.chatDraft=e}function F(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}let ie=s(!1),ae=s(null),L=s([]),oe=s(!1),se=s(!1);function le(e){f.chatDraft=e,A.value=!1}let R=s(null),ue=s(!1),de=x(()=>{if(!a.workspace?.projectPath)return`-`;let e=a.workspace.projectPath.replace(/\\/g,`/`).split(`/`);return e[e.length-1]||e[e.length-2]||`-`}),fe=x(()=>!(!R.value||R.value.unpushedCount===-1)),pe=x(()=>R.value&&R.value.unpushedCount===-1?c(`git.createPrNoRemote`):``);async function z(){if(!a.workspace){R.value=null;return}ue.value=!0;try{R.value=await f.fetchGitStats(a.workspace.id)}catch{R.value=null}finally{ue.value=!1}}n(()=>a.workspace?.id,()=>z(),{immediate:!0});let me=null;n(()=>f.gitRefreshTrigger,()=>{me&&clearTimeout(me),me=setTimeout(()=>z(),3e3)}),o(()=>{me&&clearTimeout(me)});function he(){let e=a.workspace;e&&l.dialog({title:c(`git.renameBranch`),message:c(`git.renameBranchPrompt`,{branch:e.workingBranch}),prompt:{model:e.workingBranch,type:`text`},dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.renameBranch`),color:`indigo-4`}}).onOk(async t=>{let n=(t??``).trim();if(!(!n||n===e.workingBranch)){j.value=!0;try{await f.renameWorkspaceBranch(e.id,n),l.notify({type:`positive`,message:c(`git.renameBranchSuccess`,{branch:n}),position:`top`}),z()}catch(e){let t=e instanceof we&&e.code===`branch_exists`?c(`git.renameBranchExists`,{branch:n}):e instanceof Error?e.message:c(`git.renameBranchFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{j.value=!1}}})}function ge(){a.workspace&&l.dialog({title:c(`git.rebaseConfirmTitle`),message:c(`git.rebaseConfirmMessage`,{branch:a.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.rebase`),color:`orange-4`}}).onOk(async()=>{E.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/rebase`,{method:`POST`});if(e.status===409){let t=await e.json();ve(`rebase`,Array.isArray(t.files)?t.files:[]);return}if(!e.ok){let t=await e.json();throw Error(t.error??`Rebase failed`)}l.notify({type:`positive`,message:c(`git.rebaseSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.rebaseFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{E.value=!1}})}function _e(){a.workspace&&l.dialog({title:c(`git.mergeConfirmTitle`),message:c(`git.mergeConfirmMessage`,{branch:a.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.merge`),color:`purple-4`}}).onOk(async()=>{D.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/merge`,{method:`POST`});if(e.status===409){let t=await e.json();ve(`merge`,Array.isArray(t.files)?t.files:[]);return}if(!e.ok){let t=await e.json();throw Error(t.error??`Merge failed`)}l.notify({type:`positive`,message:c(`git.mergeSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.mergeFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{D.value=!1}})}function ve(e,t){ae.value=e,L.value=t,ie.value=!0}async function be(){if(a.workspace){oe.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/git/abort`,{method:`POST`});if(!e.ok){let t=await e.json();throw Error(t.error??`Abort failed`)}l.notify({type:`positive`,message:c(`git.conflictAborted`),position:`top`}),ie.value=!1,z()}catch(e){let t=e instanceof Error?e.message:`Abort failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{oe.value=!1}}}async function Ce(){if(!(!a.workspace||!ae.value)){se.value=!0;try{let e=await fetch(`/api/workspaces/${a.workspace.id}/git/resolve-with-agent`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({operation:ae.value,files:L.value})});if(!e.ok){let t=await e.json();throw Error(t.error??`Handoff failed`)}l.notify({type:`positive`,message:c(`git.conflictHandoffSuccess`),position:`top`}),ie.value=!1}catch(e){let t=e instanceof Error?e.message:`Handoff failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{se.value=!1}}}function Te(){a.workspace&&l.dialog({title:c(`git.pushConfirmTitle`),message:c(`git.pushConfirmMessage`,{branch:a.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.push`),color:`grey-5`}}).onOk(async()=>{m.value=!0;try{await f.pushBranch(a.workspace.id),l.notify({type:`positive`,message:c(`git.branchPushed`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:`Push failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{m.value=!1}})}function Oe(){a.workspace&&l.dialog({title:c(`git.pullConfirmTitle`),message:c(`git.pullConfirmMessage`,{branch:a.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`git.pull`),color:`grey-5`}}).onOk(async()=>{b.value=!0;try{await f.pullBranch(a.workspace.id),l.notify({type:`positive`,message:c(`git.branchPulled`),position:`top`}),z()}catch(e){console.error(`[GitPanel] pullBranch failed:`,e);let t=e instanceof Error?e.message:c(`git.pullFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{b.value=!1}})}function ke(){R.value?.prUrl&&window.open(R.value.prUrl,`_blank`)}function Ae(){a.workspace&&l.dialog({title:c(`git.changePrBaseTitle`),message:c(`git.changePrBaseMessage`),prompt:{model:a.workspace.sourceBranch,type:`text`},dark:!0,cancel:{flat:!0,label:c(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:c(`common.save`),color:`primary`}}).onOk(async e=>{if(!(!e.trim()||!a.workspace)){k.value=!0;try{let t=await fetch(`/api/workspaces/${a.workspace.id}/change-pr-base`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({base:e.trim()})});if(!t.ok){let e=await t.json();throw Error(e.error??`Failed`)}l.notify({type:`positive`,message:c(`git.changePrBaseSuccess`),position:`top`}),z()}catch(e){let t=e instanceof Error?e.message:c(`git.changePrBaseFailed`);l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{k.value=!1}}})}async function je(){if(a.workspace){O.value=!0;try{let e=await f.openPullRequest(a.workspace.id);l.notify({type:`positive`,message:c(`git.prCreated`,{n:e.prNumber}),caption:e.prUrl,position:`top`,timeout:5e3}),z()}catch(e){if(e instanceof we&&e.code===`branch_not_pushed`){l.notify({type:`warning`,message:c(`git.pushFirst`),position:`top`,timeout:6e3});return}if(e instanceof we&&e.code===`unpushed_commits`){l.notify({type:`warning`,message:c(`git.unpushedCommits`),position:`top`,timeout:6e3});return}let t=e instanceof Error?e.message:`Open PR failed`;l.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{O.value=!1}}}return(n,a)=>(t(),S(`div`,Rt,[T(`div`,zt,[T(`div`,Bt,h(n.$t(`git.title`)),1),e.workspace?(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:ue.value,onClick:z},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`tooltip.refreshGitStats`)),1)]),_:1})]),_:1},8,[`loading`])):_(``,!0)]),e.workspace?(t(),S(C,{key:0},[T(`div`,Vt,[v(I,{name:`folder`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Ht,h(de.value),1)]),T(`div`,Ut,[a[5]||=T(`span`,{style:{width:`8px`,height:`8px`,"border-radius":`50%`,"background-color":`#4ade80`,display:`inline-block`},class:`q-mr-xs`},null,-1),T(`span`,Wt,h(e.workspace.workingBranch),1),v(B,{flat:``,round:``,dense:``,size:`xs`,icon:`edit`,color:`grey-6`,class:`q-ml-xs`,loading:j.value,onClick:he},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`git.renameBranch`)),1)]),_:1})]),_:1},8,[`loading`])]),T(`div`,Gt,[y(h(n.$t(`git.from`))+` `+h(e.workspace.sourceBranch)+` `,1),R.value?(t(),S(C,{key:0},[a[6]||=y(` · `,-1),R.value.unpushedCount===-1?(t(),S(`span`,Kt,h(n.$t(`git.localOnly`)),1)):R.value.unpushedCount===0?(t(),S(`span`,qt,h(n.$t(`git.pushed`)),1)):(t(),S(`span`,Jt,h(n.$t(`git.unpushed`,{count:R.value.unpushedCount})),1))],64)):_(``,!0)]),R.value?(t(),S(C,{key:0},[R.value.commitCount>0?(t(),S(`div`,{key:0,class:`row items-center q-mb-xs commit-toggle cursor-pointer`,onClick:te},[v(I,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Yt,h(n.$t(`git.commits`,{count:R.value.commitCount},R.value.commitCount)),1),N.value?(t(),g(ne,{key:0,size:`12px`,color:`indigo-4`,class:`q-ml-xs`})):(t(),g(I,{key:1,name:M.value?`expand_less`:`expand_more`,size:`14px`,color:`grey-6`,class:`q-ml-xs`},null,8,[`name`]))])):(t(),S(`div`,Xt,[v(I,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,Zt,h(n.$t(`git.commits`,{count:0},0)),1)])),M.value?(t(),S(`div`,Qt,[N.value?(t(),S(`div`,$t,[v(ne,{size:`xs`,class:`q-mr-xs`}),y(h(n.$t(`git.commits.loading`)),1)])):P.value.length===0?(t(),S(`div`,en,h(n.$t(`git.commits.empty`)),1)):(t(!0),S(C,{key:2},i(P.value,e=>(t(),S(`div`,{key:e.sha,class:`commit-item row no-wrap items-center cursor-pointer`,onClick:t=>re(e.sha)},[v(I,{name:e.isPushed?`cloud_done`:`cloud_upload`,size:`12px`,color:e.isPushed?`grey-6`:`orange-5`,class:`q-mr-xs commit-item-icon`},null,8,[`name`,`color`]),T(`span`,nn,h(e.shortSha),1),T(`span`,rn,h(e.subject),1),v(H,{anchor:`top middle`,self:`bottom middle`,class:`commit-tooltip`},{default:u(()=>[T(`div`,an,[T(`div`,null,[T(`code`,null,h(e.sha),1)]),T(`div`,on,h(e.author)+` · `+h(F(e.date)),1),T(`div`,sn,h(e.isPushed?n.$t(`git.commits.pushed`):n.$t(`git.commits.unpushed`))+` · `+h(n.$t(`git.commits.clickToAppend`)),1)])]),_:2},1024)],8,tn))),128))])):_(``,!0),R.value.filesChanged>0?(t(),S(`div`,cn,[v(I,{name:`insert_drive_file`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),T(`span`,ln,h(n.$t(`git.files`,{count:R.value.filesChanged},R.value.filesChanged)),1),R.value.insertions>0?(t(),S(`span`,un,` +`+h(R.value.insertions),1)):_(``,!0),R.value.deletions>0?(t(),S(`span`,dn,` -`+h(R.value.deletions),1)):_(``,!0)])):(t(),S(`div`,fn)),R.value.workingTree&&(R.value.workingTree.staged>0||R.value.workingTree.modified>0||R.value.workingTree.untracked>0)?(t(),S(`div`,pn,[v(I,{name:`edit_note`,size:`14px`,color:`grey-6`}),R.value.workingTree.staged>0?(t(),S(`span`,mn,h(n.$t(`git.staged`,{count:R.value.workingTree.staged})),1)):_(``,!0),R.value.workingTree.modified>0?(t(),S(`span`,hn,h(n.$t(`git.modified`,{count:R.value.workingTree.modified})),1)):_(``,!0),R.value.workingTree.untracked>0?(t(),S(`span`,gn,h(n.$t(`git.untracked`,{count:R.value.workingTree.untracked})),1)):_(``,!0)])):(t(),S(`div`,_n))],64)):_(``,!0),T(`div`,vn,[R.value&&R.value.unpushedCount!==-1?(t(),g(Lt,{key:0,split:``,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`sync`,label:n.$t(`git.sync`),class:`git-btn git-sync-btn`,loading:b.value||E.value||D.value,disable:!e.workspace||m.value,onClick:Oe},{default:u(()=>[v(at,{dark:``,dense:``,style:{"min-width":`140px`}},{default:u(()=>[d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:Oe},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`download`,size:`16px`,color:`grey-5`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.pull`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]]),d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:ge},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`replay`,size:`16px`,color:`orange-4`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.rebase`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]]),d((t(),g(Ie,{clickable:``,disable:b.value||E.value||D.value,onClick:_e},{default:u(()=>[v(V,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[v(I,{name:`merge`,size:`16px`,color:`purple-4`})]),_:1}),v(V,null,{default:u(()=>[y(h(n.$t(`git.merge`)),1)]),_:1})]),_:1},8,[`disable`])),[[ot]])]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):_(``,!0),!R.value||R.value.unpushedCount!==0?(t(),g(B,{key:1,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`upload`,label:n.$t(`git.push`),class:`git-btn`,loading:m.value,disable:!e.workspace||O.value||b.value||E.value,onClick:Te},null,8,[`label`,`loading`,`disable`])):_(``,!0),v(B,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`difference`,label:n.$t(`git.diff`),class:`git-btn`,disable:!e.workspace,onClick:a[0]||=e=>A.value=!0},null,8,[`label`,`disable`]),R.value?.prUrl&&R.value.prState===`OPEN`?(t(),g(B,{key:2,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`swap_horiz`,loading:k.value,class:`git-btn`,onClick:Ae},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`git.changePrBase`)),1)]),_:1})]),_:1},8,[`loading`])):_(``,!0),R.value?.prUrl?(t(),g(B,{key:3,dense:``,"no-caps":``,size:`sm`,outline:``,color:`green-4`,icon:`open_in_new`,label:n.$t(`git.viewPr`),class:`git-btn`,onClick:ke},null,8,[`label`])):_(``,!0),!R.value?.prUrl||R.value.prState===`CLOSED`||R.value.prState===`MERGED`?(t(),g(B,{key:4,dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,icon:`open_in_new`,label:n.$t(`git.createPr`),class:`git-btn`,loading:O.value,disable:!e.workspace||m.value||!fe.value,onClick:je},{default:u(()=>[!fe.value&&pe.value?(t(),g(H,{key:0},{default:u(()=>[y(h(pe.value),1)]),_:1})):_(``,!0)]),_:1},8,[`label`,`loading`,`disable`])):_(``,!0)])],64)):(t(),S(`div`,yn,h(n.$t(`common.selectWorkspace`)),1)),v(ce,{modelValue:ie.value,"onUpdate:modelValue":a[2]||=e=>ie.value=e,persistent:``},{default:u(()=>[v(xe,{dark:``,style:{"min-width":`420px`,"max-width":`600px`}},{default:u(()=>[v(Se,null,{default:u(()=>[T(`div`,bn,[v(I,{name:`warning`,class:`q-mr-xs`}),y(` `+h(ae.value===`merge`?n.$t(`git.conflictTitleMerge`):n.$t(`git.conflictTitleRebase`)),1)]),T(`div`,xn,h(n.$t(`git.conflictSubtitle`,{count:L.value.length})),1)]),_:1}),L.value.length>0?(t(),g(Se,{key:0,class:`q-pt-none`},{default:u(()=>[v(at,{dense:``,dark:``},{default:u(()=>[(t(!0),S(C,null,i(L.value,e=>(t(),g(Ie,{key:e},{default:u(()=>[v(V,{side:``},{default:u(()=>[v(I,{name:`insert_drive_file`,size:`xs`})]),_:1}),v(V,null,{default:u(()=>[T(`div`,Sn,h(e),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):_(``,!0),v(Ee,{align:`right`},{default:u(()=>[v(B,{flat:``,"no-caps":``,label:n.$t(`common.cancel`),color:`grey-5`,disable:oe.value||se.value,onClick:a[1]||=e=>ie.value=!1},null,8,[`label`,`disable`]),v(B,{flat:``,"no-caps":``,color:`red-4`,icon:`undo`,label:n.$t(`git.conflictAbort`),loading:oe.value,disable:se.value,onClick:be},null,8,[`label`,`loading`,`disable`]),v(B,{unelevated:``,"no-caps":``,color:`primary`,icon:`smart_toy`,label:n.$t(`git.conflictResolveWithAgent`),loading:se.value,disable:oe.value,onClick:Ce},null,8,[`label`,`loading`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(ce,{modelValue:A.value,"onUpdate:modelValue":a[4]||=e=>A.value=e,maximized:``},{default:u(()=>[e.workspace?(t(),g(w(r),{key:0,"workspace-id":e.workspace.id,onClose:a[3]||=e=>A.value=!1,onSendToChat:le},null,8,[`workspace-id`])):_(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-90ea7311`]]),wn={class:`notion-panel q-pa-md`},Tn={class:`row items-center q-mb-sm`},En={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Dn={key:0,class:`q-mb-sm`},On=[`href`],kn={key:1,class:`text-caption q-mb-sm text-grey-8`},An={key:3,class:`q-mb-sm`},jn={class:`text-caption text-grey-7`,style:{"font-size":`11px`}},Mn={key:4,class:`text-caption text-grey-8 q-mb-sm`,style:{"font-size":`11px`}},Nn={key:5,class:`task-add-row row items-center q-mb-xs`},Pn={key:6,class:`tasks-list`},Fn=[`onDblclick`],In={key:1,class:`text-caption text-grey-8`},Ln=We(E({__name:`NotionPanel`,props:{workspace:{},tasks:{}},setup(n){let r=n,{t:a}=ye(),o=Pe(),c=Oe(),l=s(!1);function d(){r.workspace?.id&&nt(r.workspace.id,c,o)}let f=x(()=>r.tasks.filter(e=>!e.isAcceptanceCriterion)),p=x(()=>f.value.filter(e=>e.status===`done`).length),b=x(()=>f.value.length),w=x(()=>b.value>0?p.value/b.value:0),E=s(!1),D=s(``),O=s(null),A=s(``),j=s({});function P(e,t){if(t){let n=t.$el??t;j.value[e]=n}else delete j.value[e]}async function ee(){if(!(!r.workspace?.id||!r.workspace.notionUrl)){l.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/refresh-notion`,{method:`POST`});if(!e.ok)throw Error(`HTTP ${e.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to refresh from Notion:`,e)}finally{l.value=!1}}}function te(){E.value=!0,D.value=``}async function ne(){let e=D.value.trim();if(!(!e||!r.workspace?.id))try{await o.createTask(r.workspace.id,e,!1),D.value=``,E.value=!1}catch{}}function re(){D.value=``,E.value=!1}function F(t){O.value=t.id,A.value=t.title,e(()=>{let e=j.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function ie(e){if(O.value!==e.id)return;let t=A.value.trim(),n=e.id;if(O.value=null,!(!t||t===e.title)&&r.workspace?.id)try{await o.updateTaskTitle(r.workspace.id,n,t)}catch{}}function ae(){O.value=null,A.value=``}async function L(e){if(r.workspace?.id)try{await o.deleteTask(r.workspace.id,e.id)}catch{}}async function oe(e){if(!r.workspace?.id)return;let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to toggle task:`,e)}}function se(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function ce(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,r)=>(t(),S(`div`,wn,[T(`div`,Tn,[T(`div`,En,h(e.$t(`notion.title`)),1),v(Ke),n.workspace?(t(),g(B,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:d},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):_(``,!0),n.workspace?(t(),g(B,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:te},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.addNotionTask`)),1)]),_:1})]),_:1})):_(``,!0)]),n.workspace?(t(),S(C,{key:0},[n.workspace.notionUrl?(t(),S(`div`,Dn,[T(`a`,{href:n.workspace.notionUrl,target:`_blank`,rel:`noopener noreferrer`,class:`notion-link text-caption items-center text-blue-4`},[v(I,{name:`open_in_new`,size:`12px`,class:`q-mr-xs`}),y(` `+h(e.$t(`notion.openInNotion`)),1)],8,On)])):(t(),S(`div`,kn,h(e.$t(`notion.noUrl`)),1)),n.workspace.notionUrl?(t(),g(B,{key:2,flat:``,dense:``,"no-caps":``,size:`xs`,icon:`refresh`,label:e.$t(`common.refresh`),color:`grey-6`,class:`q-mb-sm`,loading:l.value,onClick:ee},null,8,[`label`,`loading`])):_(``,!0),b.value>0?(t(),S(`div`,An,[v(be,{value:w.value,color:`primary`,"track-color":`grey-9`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),T(`div`,jn,h(e.$t(`notion.subtasks`,{done:p.value,total:b.value})),1)])):E.value?_(``,!0):(t(),S(`div`,Mn,h(e.$t(`notion.noTasks`)),1)),E.value?(t(),S(`div`,Nn,[v(ke,{modelValue:D.value,"onUpdate:modelValue":r[0]||=e=>D.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`notion.newTask`),class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[M(N(ne,[`prevent`]),[`enter`]),M(N(re,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):_(``,!0),f.value.length>0?(t(),S(`div`,Pn,[(t(!0),S(C,null,i(f.value,n=>(t(),S(`div`,{key:n.id,class:`task-item row items-center q-py-xxs`},[v(I,{name:se(n.status),size:`14px`,style:k({color:ce(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>oe(n)},null,8,[`name`,`style`,`onClick`]),O.value===n.id?(t(),g(ke,{key:0,ref_for:!0,ref:e=>P(n.id,e),modelValue:A.value,"onUpdate:modelValue":r[1]||=e=>A.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[M(N(e=>ie(n),[`prevent`]),[`enter`]),M(N(ae,[`prevent`]),[`esc`])],onBlur:e=>ie(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),S(C,{key:1},[T(`span`,{class:m([`col task-title text-caption`,{"text-strike":n.status===`done`}]),style:k({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>F(n)},h(n.title),47,Fn),v(B,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`task-delete-btn`,onClick:e=>L(n)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(e.$t(`tooltip.removeNotionTask`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):_(``,!0)],64)):(t(),S(`div`,In,h(e.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-99e38dbd`]]),Rn={class:`stats-panel q-pa-md`},zn={class:`row items-center q-mb-md`},Bn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Vn={class:`stat-group-label q-mb-xs`},Hn={class:`stat-row`},Un={class:`stat-label`},Wn={class:`stat-value`},Gn={class:`stat-row`},Kn={class:`stat-label`},qn={class:`stat-value`},Jn={key:0,class:`stat-row`},Yn={class:`stat-label`},Xn={class:`stat-value stat-value-ellipsis`},Zn={class:`stat-row`},Qn={class:`stat-label`},$n={class:`stat-value`},er={class:`stat-row`},tr={class:`stat-label`},nr={class:`stat-value`},rr={class:`stat-group-label q-mb-xs`},ir={class:`stat-row`},ar={class:`stat-label`},or={class:`stat-value`},sr={key:1,class:`stat-row`},cr={class:`stat-label`},lr={class:`stat-value`},ur={key:2,class:`stat-row`},dr={class:`stat-label`},fr={class:`stat-value`},pr={key:3,class:`stat-row`},mr={class:`stat-label`},hr={class:`stat-value`},gr={key:4,class:`stat-row`},_r={class:`stat-label`},vr={class:`stat-value`},yr={class:`stat-group-label q-mb-xs`},br={class:`stat-row`},xr={class:`stat-label`},Sr={class:`stat-value`},Cr={class:`stat-row`},wr={class:`stat-label`},Tr={class:`stat-value`},Er={class:`stat-row`},Dr={class:`stat-label`},Or={class:`stat-value`},kr={key:5,class:`stat-row`},Ar={class:`stat-label text-red-4`},jr={class:`stat-value text-red-4`},Mr={key:6},Nr={class:`stat-group-label q-mb-xs`},Pr={class:`usage-breakdown q-mb-sm`},Fr={class:`stat-row`},Ir={class:`stat-label`},Lr={class:`stat-value`},Rr={class:`stat-value-muted`},zr={class:`stat-row`},Br={class:`stat-label`},Vr={class:`stat-value`},Hr={class:`stat-value-muted`},Ur={class:`stat-row`},Wr={class:`stat-label`},Gr={class:`stat-value`},Kr={key:0,class:`stat-row`},qr={class:`stat-label`},Jr={class:`stat-value`},Yr={key:7},Xr={class:`stat-group-label q-mb-xs`},Zr={class:`stat-row q-mb-xxs`},Qr={class:`stat-label`},$r={class:`stat-value`},ei={key:0,class:`stat-subtext q-mt-xxs`},ti={key:0},ni={key:1},ri={key:2},ii={key:8},ai={class:`stat-group-label q-mb-xs`},oi={class:`stat-row`},si={class:`stat-label`},ci={class:`stat-value`},li={key:0,class:`stat-row`},ui={class:`stat-label`},di={class:`stat-value`},fi={key:1,class:`stat-row`},pi={class:`stat-label`},mi={class:`stat-value`},hi={key:9},gi={class:`stat-group-label q-mb-xs`},_i={key:0,class:`q-mb-xs`},vi={class:`stat-row q-mb-xxs`},yi={class:`stat-label`},bi={class:`stat-value`},xi={key:1},Si={class:`stat-row q-mb-xxs`},Ci={class:`stat-label`},wi={class:`stat-value`},Ti={key:1,class:`text-caption text-grey-8`},Ei=We(E({__name:`StatsPanel`,props:{workspace:{}},setup(e){let{t:n}=ye(),r=Pe(),{timeAgo:a}=st(),o=x(()=>{let e=r.selectedWorkspaceId;if(!e)return null;let t=r.activityFeeds[e]??[],n=r.sessions,i=Object.values(r.subagents[e]??{}),a=r.tasks,o=r.selectedWorkspace,s=r.activityCounts[e]??{toolUses:0,agentMessages:0,userMessages:0,errors:0},c=s.toolUses,l=s.agentMessages,u=s.userMessages,d=s.errors,f=n.length,p=n.filter(e=>e.status===`completed`).length,m=i.length,h=i.filter(e=>e.status===`done`).length,g=i.reduce((e,t)=>e+(t.totalTokens??0),0),_=i.reduce((e,t)=>e+(t.toolUses??0),0),v=a.filter(e=>!e.isAcceptanceCriterion).length,y=a.filter(e=>!e.isAcceptanceCriterion&&e.status===`done`).length,b=a.filter(e=>e.isAcceptanceCriterion).length,x=a.filter(e=>e.isAcceptanceCriterion&&e.status===`done`).length,S=o?.createdAt?new Date(o.createdAt):null,C=o?.updatedAt?new Date(o.updatedAt):null,w=S?Date.now()-S.getTime():0,T=null,E=null;for(let e=t.length-1;e>=0;e--){let n=t[e];if(!T&&n.meta?.sender===`user`&&(T=new Date(n.timestamp)),!E&&n.type===`text`&&n.meta?.sender!==`user`&&n.meta?.sender!==`system-prompt`&&(E=new Date(n.timestamp)),T&&E)break}let D=n.length>0?new Date(n[n.length-1].startedAt):null,O=r.usageStats[e]??{inputTokens:0,outputTokens:0,costUsd:0,sessionCount:0},k=r.rateLimitUsage[e],A=o?.model??`auto`,j=o?.workingBranch??``,M=o?.status??``;return{toolUses:c,agentMessages:l,userMessages:u,errors:d,totalSessions:f,completedSessions:p,totalSubagents:m,doneSubagents:h,totalSubagentTokens:g,totalSubagentTools:_,totalTasks:v,doneTasks:y,totalCriteria:b,doneCriteria:x,durationMs:w,createdAt:S,updatedAt:C,lastPromptAt:T,lastAgentResponseAt:E,firstSessionAt:D,model:A,branch:j,status:M,usage:O,rateLimitUsage:k}});function s(e){let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return n<24?`${n}h ${r}m`:`${Math.floor(n/24)}d ${n%24}h`}function c(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function l(e){return e.toLocaleDateString(void 0,{day:`2-digit`,month:`2-digit`,year:`numeric`})}function d(e){return e.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function f(e){return`${l(e)} ${d(e)}`}function p(e,t){return e?rt(e,n):n(`stats.usageBucket`,{n:t+1})}function m(e,t){return t<=0?0:Math.max(0,Math.min(100,e/t*100))}return(n,l)=>(t(),S(`div`,Rn,[T(`div`,zn,[T(`div`,Bn,h(n.$t(`stats.title`)),1),v(Ke),e.workspace?(t(),g(B,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,onClick:l[0]||=t=>w(r).fetchWorkspaceDetails(e.workspace.id)},{default:u(()=>[v(H,null,{default:u(()=>[y(h(n.$t(`tooltip.refreshStats`)),1)]),_:1})]),_:1})):_(``,!0)]),e.workspace&&o.value?(t(),S(C,{key:0},[T(`div`,Vn,h(n.$t(`stats.info`)),1),T(`div`,Hn,[T(`span`,Un,h(n.$t(`stats.status`)),1),T(`span`,Wn,h(o.value.status),1)]),T(`div`,Gn,[T(`span`,Kn,h(n.$t(`stats.model`)),1),T(`span`,qn,h(o.value.model),1)]),o.value.branch?(t(),S(`div`,Jn,[T(`span`,Yn,h(n.$t(`stats.branch`)),1),T(`span`,Xn,h(o.value.branch),1)])):_(``,!0),T(`div`,Zn,[T(`span`,Qn,h(n.$t(`stats.sessions`)),1),T(`span`,$n,h(o.value.completedSessions)+` / `+h(o.value.totalSessions),1)]),T(`div`,er,[T(`span`,tr,h(n.$t(`stats.duration`)),1),T(`span`,nr,h(s(o.value.durationMs)),1)]),v(L,{dark:``,class:`q-my-sm`}),T(`div`,rr,h(n.$t(`stats.timeline`)),1),T(`div`,ir,[T(`span`,ar,h(n.$t(`stats.created`)),1),T(`span`,or,h(o.value.createdAt?f(o.value.createdAt):`—`),1)]),o.value.firstSessionAt?(t(),S(`div`,sr,[T(`span`,cr,h(n.$t(`stats.firstSession`)),1),T(`span`,lr,h(f(o.value.firstSessionAt)),1)])):_(``,!0),o.value.lastPromptAt?(t(),S(`div`,ur,[T(`span`,dr,h(n.$t(`stats.lastPrompt`)),1),T(`span`,fr,[y(h(w(a)(o.value.lastPromptAt))+` `,1),v(H,null,{default:u(()=>[y(h(f(o.value.lastPromptAt)),1)]),_:1})])])):_(``,!0),o.value.lastAgentResponseAt?(t(),S(`div`,pr,[T(`span`,mr,h(n.$t(`stats.lastResponse`)),1),T(`span`,hr,[y(h(w(a)(o.value.lastAgentResponseAt))+` `,1),v(H,null,{default:u(()=>[y(h(f(o.value.lastAgentResponseAt)),1)]),_:1})])])):_(``,!0),o.value.updatedAt?(t(),S(`div`,gr,[T(`span`,_r,h(n.$t(`stats.updated`)),1),T(`span`,vr,h(w(a)(o.value.updatedAt)),1)])):_(``,!0),v(L,{dark:``,class:`q-my-sm`}),T(`div`,yr,h(n.$t(`stats.activity`)),1),T(`div`,br,[T(`span`,xr,h(n.$t(`stats.agentMessages`)),1),T(`span`,Sr,h(o.value.agentMessages),1)]),T(`div`,Cr,[T(`span`,wr,h(n.$t(`stats.userMessages`)),1),T(`span`,Tr,h(o.value.userMessages),1)]),T(`div`,Er,[T(`span`,Dr,h(n.$t(`stats.toolCalls`)),1),T(`span`,Or,h(o.value.toolUses),1)]),o.value.errors>0?(t(),S(`div`,kr,[T(`span`,Ar,h(n.$t(`stats.errors`)),1),T(`span`,jr,h(o.value.errors),1)])):_(``,!0),o.value.usage.inputTokens>0||o.value.usage.outputTokens>0?(t(),S(`div`,Mr,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,Nr,h(n.$t(`stats.usage`)),1),T(`div`,Pr,[T(`div`,{class:`usage-breakdown-input`,style:k({width:`${m(o.value.usage.inputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens)}%`})},null,4),T(`div`,{class:`usage-breakdown-output`,style:k({width:`${m(o.value.usage.outputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens)}%`})},null,4)]),T(`div`,Fr,[T(`span`,Ir,h(n.$t(`stats.inputTokens`)),1),T(`span`,Lr,[y(h(c(o.value.usage.inputTokens))+` `,1),T(`span`,Rr,` (`+h(m(o.value.usage.inputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens).toFixed(0))+`%) `,1)])]),T(`div`,zr,[T(`span`,Br,h(n.$t(`stats.outputTokens`)),1),T(`span`,Vr,[y(h(c(o.value.usage.outputTokens))+` `,1),T(`span`,Hr,` (`+h(m(o.value.usage.outputTokens,o.value.usage.inputTokens+o.value.usage.outputTokens).toFixed(0))+`%) `,1)])]),T(`div`,Ur,[T(`span`,Wr,h(n.$t(`stats.totalTokens`)),1),T(`span`,Gr,h(c(o.value.usage.inputTokens+o.value.usage.outputTokens)),1)]),o.value.usage.costUsd>0?(t(),S(`div`,Kr,[T(`span`,qr,h(n.$t(`stats.cost`)),1),T(`span`,Jr,`$`+h(o.value.usage.costUsd.toFixed(4)),1)])):_(``,!0)])):_(``,!0),o.value.rateLimitUsage?.buckets?.length?(t(),S(`div`,Yr,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,Xr,h(n.$t(`stats.usageLimits`)),1),(t(!0),S(C,null,i(o.value.rateLimitUsage.buckets,(e,r)=>(t(),S(`div`,{key:e.id,class:`q-mb-sm`},[T(`div`,Zr,[T(`span`,Qr,h(p(e.label,r)),1),T(`span`,$r,h(e.usedPct.toFixed(0))+`% `+h(n.$t(`stats.used`)),1)]),v(be,{value:e.usedPct/100,color:`indigo-4`,"track-color":`grey-9`,style:{height:`6px`,"border-radius":`999px`}},null,8,[`value`]),e.details||e.resetAt?(t(),S(`div`,ei,[e.details?(t(),S(`span`,ti,h(e.details),1)):_(``,!0),e.details&&e.resetAt?(t(),S(`span`,ni,` · `)):_(``,!0),e.resetAt?(t(),S(`span`,ri,h(n.$t(`stats.resetsAt`,{value:e.resetAt})),1)):_(``,!0)])):_(``,!0)]))),128))])):_(``,!0),o.value.totalSubagents>0?(t(),S(`div`,ii,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,ai,h(n.$t(`stats.subagents`)),1),T(`div`,oi,[T(`span`,si,h(n.$t(`stats.completed`)),1),T(`span`,ci,h(o.value.doneSubagents)+` / `+h(o.value.totalSubagents),1)]),o.value.totalSubagentTokens>0?(t(),S(`div`,li,[T(`span`,ui,h(n.$t(`stats.tokens`)),1),T(`span`,di,h(c(o.value.totalSubagentTokens)),1)])):_(``,!0),o.value.totalSubagentTools>0?(t(),S(`div`,fi,[T(`span`,pi,h(n.$t(`stats.toolCalls`)),1),T(`span`,mi,h(o.value.totalSubagentTools),1)])):_(``,!0)])):_(``,!0),o.value.totalTasks>0||o.value.totalCriteria>0?(t(),S(`div`,hi,[v(L,{dark:``,class:`q-my-sm`}),T(`div`,gi,h(n.$t(`stats.progress`)),1),o.value.totalTasks>0?(t(),S(`div`,_i,[T(`div`,vi,[T(`span`,yi,h(n.$t(`stats.tasks`)),1),T(`span`,bi,h(o.value.doneTasks)+` / `+h(o.value.totalTasks),1)]),v(be,{value:o.value.doneTasks/o.value.totalTasks,color:`primary`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):_(``,!0),o.value.totalCriteria>0?(t(),S(`div`,xi,[T(`div`,Si,[T(`span`,Ci,h(n.$t(`stats.acceptanceCriteria`)),1),T(`span`,wi,h(o.value.doneCriteria)+` / `+h(o.value.totalCriteria),1)]),v(be,{value:o.value.doneCriteria/o.value.totalCriteria,color:`green-6`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):_(``,!0)])):_(``,!0)],64)):(t(),S(`div`,Ti,h(n.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-61fd94e7`]]),Di={class:`subagents-panel q-pa-md`},Oi={class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},ki={key:0,class:`text-caption text-grey-8`},Ai={class:`row items-center q-mb-xs`},ji={class:`text-caption text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`220px`}},Mi={key:0,class:`text-caption text-grey-6`,style:{"font-size":`10px`}},Ni={class:`text-grey-4`},Pi={class:`row items-center q-gutter-xs q-mt-xs text-caption text-grey-7`,style:{"font-size":`10px`}},Fi={key:0},Ii={key:1},Li={key:2},Ri=We(E({__name:`SubagentsPanel`,setup(e){let{t:n}=ye(),r=Pe(),a=x(()=>[...r.currentSubagents].reverse());function o(e){return e?e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:``}function s(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,n)=>(t(),S(`div`,Di,[T(`div`,Oi,h(e.$t(`subagents.title`)),1),a.value.length===0?(t(),S(`div`,ki,h(e.$t(`subagents.empty`)),1)):_(``,!0),(t(!0),S(C,null,i(a.value,n=>(t(),S(`div`,{key:n.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[T(`div`,Ai,[v(I,{name:n.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:n.status===`running`?`green-4`:`grey-6`,class:`q-mr-xs`},null,8,[`name`,`color`]),T(`span`,ji,h(n.description||n.toolUseId),1)]),n.lastToolName?(t(),S(`div`,Mi,[y(h(e.$t(`subagents.running`)),1),T(`span`,Ni,h(n.lastToolName),1)])):_(``,!0),T(`div`,Pi,[n.toolUses===void 0?_(``,!0):(t(),S(`span`,Fi,h(e.$t(`subagents.tools`,{count:n.toolUses})),1)),n.totalTokens?(t(),S(`span`,Ii,`· `+h(s(n.totalTokens))+` tok`,1)):_(``,!0),n.durationMs?(t(),S(`span`,Li,`· `+h(o(n.durationMs)),1)):_(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-81ad2481`]]),zi=2,Bi=1,Vi=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(zi,Math.floor(u/e.css.cell.width)),rows:Math.max(Bi,Math.floor(l/e.css.cell.height))}}},Hi=Object.defineProperty,Ui=Object.getOwnPropertyDescriptor,Wi=(e,t)=>{for(var n in t)Hi(e,n,{get:t[n],enumerable:!0})},Gi=(e,t,n,r)=>{for(var i=r>1?void 0:r?Ui(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&Hi(t,n,i),i},U=(e,t)=>(n,r)=>t(n,r,e),Ki=`Terminal input`,qi={get:()=>Ki,set:e=>Ki=e},Ji=`Too much output to announce, navigate to rows manually to read`,Yi={get:()=>Ji,set:e=>Ji=e};function Xi(e){return e.replace(/\r?\n/g,`\r`)}function Zi(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Qi(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function $i(e,t,n,r){e.stopPropagation(),e.clipboardData&&ea(e.clipboardData.getData(`text/plain`),t,n,r)}function ea(e,t,n,r){e=Xi(e),e=Zi(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function ta(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function na(e,t,n,r,i){ta(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ra(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ia(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var aa=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},oa=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},sa=``,ca=` `,la=class e{constructor(){this.fg=0,this.bg=0,this.extended=new ua}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},ua=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},da=class e extends la{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new ua,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?ra(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},fa=`di$target`,pa=`di$dependencies`,ma=new Map;function ha(e){return e[pa]||[]}function ga(e){if(ma.has(e))return ma.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);_a(t,e,r)};return t._id=e,ma.set(e,t),t}function _a(e,t,n){t[fa]===t?t[pa].push({id:e,index:n}):(t[pa]=[{id:e,index:n}],t[fa]=t)}var va=ga(`BufferService`),ya=ga(`CoreMouseService`),ba=ga(`CoreService`),xa=ga(`CharsetService`),Sa=ga(`InstantiationService`),Ca=ga(`LogService`),wa=ga(`OptionsService`),Ta=ga(`OscLinkService`),Ea=ga(`UnicodeService`),Da=ga(`DecorationService`),Oa=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new da,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+(!l&&t===o-1?1:0),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):ka(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Oa=Gi([U(0,va),U(1,wa),U(2,Ta)],Oa);function ka(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
3
3
|
|
|
4
4
|
WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var Aa=ga(`CharSizeService`),ja=ga(`CoreBrowserService`),Ma=ga(`MouseService`),Na=ga(`RenderService`),Pa=ga(`SelectionService`),Fa=ga(`CharacterJoinerService`),Ia=ga(`ThemeService`),La=ga(`LinkProviderService`),Ra=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Wa.isErrorNoTelemetry(e)?new Wa(e.message+`
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,H as t,L as n,Q as r,U as i,bt as a,d as o,f as s,g as c,p as l,r as u,rt as d,u as f,v as p}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{t as m}from"./QIcon-B0-pH3Qs.js";import{t as h}from"./QSeparator-DNSiXYrN.js";import{i as g}from"./use-id-BmXMngYX.js";import{n as _}from"./vue-i18n-eUDnMrPl.js";import{i as v,m as y,n as b}from"./index-
|
|
1
|
+
import{F as e,H as t,L as n,Q as r,U as i,bt as a,d as o,f as s,g as c,p as l,r as u,rt as d,u as f,v as p}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{t as m}from"./QIcon-B0-pH3Qs.js";import{t as h}from"./QSeparator-DNSiXYrN.js";import{i as g}from"./use-id-BmXMngYX.js";import{n as _}from"./vue-i18n-eUDnMrPl.js";import{i as v,m as y,n as b}from"./index-C-IVb0lG.js";import{t as x}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as S}from"./QBadge-Di02fu2H.js";import{t as C}from"./QSpace-0zdF1m5x.js";import{t as w}from"./formatters-D7eTm7uK.js";import{t as T}from"./QPage-BTzNQlb1.js";var E=g(`search`,{state:()=>({query:``,includeArchived:!1,results:[],loading:!1,error:``}),actions:{async search(){let e=this.query.trim();if(!e){this.results=[],this.error=``;return}this.loading=!0,this.error=``;try{let t=new URLSearchParams({q:e});this.includeArchived&&t.set(`includeArchived`,`true`);let n=await fetch(`/api/search?${t.toString()}`);if(!n.ok){let e=`HTTP ${n.status}`;try{let t=await n.json();t?.error&&(e=t.error)}catch{}throw Error(e)}this.results=await n.json()}catch(e){this.error=e instanceof Error?e.message:String(e),this.results=[]}finally{this.loading=!1}},clear(){this.query=``,this.results=[],this.error=``}}}),D={class:`search-header`},O={class:`text-h5 q-mb-md`},k={class:`row items-center q-mt-sm q-gutter-sm`},A={key:0,class:`text-caption text-grey-6`},j={key:0,class:`text-grey-6 text-caption`},M={key:1,class:`text-negative text-caption`},N={key:2,class:`text-grey-6 text-caption`},P={key:3,class:`search-results`},F=[`onClick`],I={class:`row items-center q-mb-xs text-caption`},L={class:`text-grey-5 text-weight-medium`},R={class:`text-grey-6`},z={class:`search-snippet text-body2 text-grey-4`},B=x(p({__name:`SearchPage`,setup(p){let g=E(),x=y(),{t:B}=_(),{timeAgo:V}=w(),H=r(null),U=null;function W(){U&&clearTimeout(U),U=setTimeout(()=>{g.search()},250)}t(()=>g.includeArchived,()=>{g.query.trim().length>0&&g.search()});function G(e){x.push({name:`workspace`,params:{id:e}})}function K(e){return e===`user:message`?B(`search.eventType.userMessage`):e===`agent:output`?B(`search.eventType.agentOutput`):e}return(t,r)=>(e(),o(T,{class:`q-pa-md search-page`},{default:i(()=>[f(`div`,D,[f(`h2`,O,a(t.$t(`search.title`)),1),c(v,{ref_key:`inputEl`,ref:H,modelValue:d(g).query,"onUpdate:modelValue":[r[0]||=e=>d(g).query=e,W],dense:``,dark:``,outlined:``,clearable:``,autofocus:``,placeholder:t.$t(`search.placeholder`),onClear:r[1]||=e=>d(g).clear()},{prepend:i(()=>[c(m,{name:`search`})]),_:1},8,[`modelValue`,`placeholder`]),f(`div`,k,[c(b,{modelValue:d(g).includeArchived,"onUpdate:modelValue":r[2]||=e=>d(g).includeArchived=e,label:t.$t(`search.includeArchived`),dense:``,dark:``,color:`indigo-4`,size:`sm`},null,8,[`modelValue`,`label`]),c(C),d(g).results.length>0?(e(),l(`span`,A,a(t.$t(`search.resultCount`,{n:d(g).results.length})),1)):s(``,!0)])]),c(h,{dark:``,class:`q-my-md`}),d(g).loading?(e(),l(`div`,j,a(t.$t(`search.loading`)),1)):d(g).error?(e(),l(`div`,M,a(t.$t(`search.error`,{message:d(g).error})),1)):d(g).query.trim().length>0&&d(g).results.length===0?(e(),l(`div`,N,a(t.$t(`search.noResults`)),1)):d(g).results.length>0?(e(),l(`div`,P,[(e(!0),l(u,null,n(d(g).results,(n,r)=>(e(),l(`div`,{key:`${n.workspaceId}-${n.timestamp}-${r}`,class:`search-result q-pa-sm q-mb-sm cursor-pointer`,onClick:e=>G(n.workspaceId)},[f(`div`,I,[f(`span`,L,a(n.workspaceName),1),n.archived?(e(),o(S,{key:0,color:`grey-7`,class:`q-ml-xs`,label:t.$t(`common.archive`)},null,8,[`label`])):s(``,!0),c(C),c(S,{color:n.type===`user:message`?`blue-grey-7`:`indigo-7`,class:`q-mr-sm`,label:K(n.type)},null,8,[`color`,`label`]),f(`span`,R,a(d(V)(n.timestamp)),1)]),f(`div`,z,a(n.snippet),1)],8,F))),128))])):s(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-f2604415`]]);export{B as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,H as t,L as n,M as r,N as i,Q as a,U as o,W as ee,_t as te,bt as s,d as c,f as l,g as u,h as d,l as f,p,r as m,rt as h,u as g,v as ne}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{t as re}from"./QIcon-B0-pH3Qs.js";import{t as _}from"./QSeparator-DNSiXYrN.js";import{t as ie}from"./QDialog-G448EJG4.js";import{t as v}from"./QBtn-CyzfM9-_.js";import{n as ae}from"./vue-i18n-eUDnMrPl.js";import{E as oe,O as se,S as ce,T as le,d as ue,i as y,n as b}from"./index-CDTpNA2L.js";import{n as de,t as fe}from"./QItemSection-BzWLL-V-.js";import{t as x}from"./QItemLabel-Czw5g0px.js";import{t as pe}from"./QExpansionItem-HLBjHx-0.js";import{t as me}from"./QTooltip-DbEBexRN.js";import{t as S}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as he}from"./QSpace-0zdF1m5x.js";import{i as ge,n as _e,r as ve,t as ye}from"./QTabPanels-Cw4nnIbR.js";import{t as be}from"./use-quasar-BBrzedjR.js";import{t as xe}from"./QList-D2GuTeLl.js";import{t as Se}from"./ClosePopup-DTgXzcoa.js";import{n as C,t as Ce}from"./models-D_Rq_B4d.js";import{t as we}from"./QPage-BTzNQlb1.js";var Te={class:`settings-inner`},Ee={class:`settings-header row items-center q-mb-lg`},De={class:`text-h5 text-weight-medium text-grey-3`},Oe={class:`settings-card rounded-borders q-pa-lg`},ke={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Ae={class:`q-mb-lg`},je={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Me={class:`q-mb-lg`},Ne={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pe={class:`q-mb-lg`},Fe={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ie={class:`text-caption text-red-4 q-mt-xs`},Le={class:`q-mb-lg`},Re={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ze={class:`text-caption text-grey-7 q-mt-xs`},Be={class:`q-mb-lg`},Ve={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},He={class:`q-mb-lg`},Ue={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},We={class:`q-mb-md`},Ge={class:`q-mb-lg`},Ke={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},qe={class:`text-caption text-grey-7 q-mt-xs`},Je={class:`q-mb-lg`},Ye={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xe={class:`text-caption text-grey-7 q-mt-xs`},Ze={class:`q-mb-lg`},Qe={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},$e={class:`text-caption text-grey-7 q-mt-xs`},et={class:`q-mb-lg`},tt={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},nt={class:`q-mb-sm`},rt={class:`field-label-sub text-caption q-mb-xs text-grey-7`},it={class:`q-mb-sm`},at={class:`field-label-sub text-caption q-mb-xs text-grey-7`},ot={class:`text-caption text-grey-7 q-mt-xs`},st={class:`q-mb-lg`},ct={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},lt={class:`q-mb-sm`},ut={class:`field-label-sub text-caption q-mb-xs text-grey-7`},dt={class:`q-mb-sm`},ft={class:`field-label-sub text-caption q-mb-xs text-grey-7`},pt={class:`text-caption text-grey-7 q-mt-xs`},mt={class:`settings-card q-pa-md rounded-borders`},ht={class:`text-subtitle2 q-mb-sm`},gt={class:`text-caption text-grey-7 q-mb-sm`},_t={class:`settings-card q-pa-md rounded-borders`},vt={class:`text-subtitle2 q-mb-sm`},yt={class:`text-caption text-grey-7 q-mb-sm`},bt={class:`row q-gutter-sm`},xt={class:`row justify-end`},St={class:`row q-gutter-md`,style:{"min-height":`500px`}},Ct={class:`project-list-col`},wt={class:`settings-card rounded-borders`,style:{height:`100%`}},Tt={class:`q-pa-sm`},Et={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},Dt={key:0,class:`q-pa-md text-center text-caption text-grey-8`},Ot={class:`q-pa-sm`},kt={class:`project-form-col`},At={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},jt={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Mt={class:`q-mb-md`},Nt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pt={class:`q-mb-md`},Ft={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},It={class:`q-mb-md`},Lt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Rt={class:`q-mb-md`},zt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Bt={class:`q-mb-md`},Vt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ht={class:`q-mb-md`},Ut={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Wt={class:`q-mb-md`},Gt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Kt={class:`text-caption text-grey-7 q-mt-xs`},qt={class:`q-mb-lg`},Jt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Yt={class:`text-caption text-grey-7 q-mt-xs`},Xt={class:`q-mb-lg`},Zt={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},Qt={class:`q-mb-md`},$t={class:`field-label-sub text-caption q-mb-xs text-grey-7`},en={class:`field-label-sub text-caption q-mb-xs text-grey-7`},tn={class:`row items-center q-gutter-sm`},nn={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},rn={class:`text-body2 text-grey-8`},an={class:`settings-card rounded-borders q-pa-lg`},on={class:`row items-center justify-between q-mb-md`},sn={class:`text-subtitle1 text-weight-medium text-grey-3`},cn={key:0,class:`text-grey-6 q-py-lg text-center`},ln={key:1,class:`column q-gutter-sm`},un={class:`row items-start justify-between no-wrap`},dn={class:`col`},fn={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},pn={class:`text-caption text-grey-5 q-mt-xs`},mn={class:`row no-wrap q-gutter-xs`},hn={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},gn={class:`text-subtitle1`},_n={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},vn={key:0,class:`text-negative text-caption`},w=S(ne({__name:`SettingsPage`,setup(ne){let S=be(),w=ce(),T=le(),{t:E,locale:yn}=ae(),D=a(`global`),O=a(`auto`),k=a(!0),A=a(``),j=a(``),M=a(``),N=a(!0),P=a(!0),F=a(``),I=a(``),L=a(`plan`),R=a(``),z=a(``),B=a([]),V=a(!1),H=a(-1),U=a(!1),W=a({path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,dangerouslySkipPermissions:!0,prPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``}}),G=a([]),bn=a(!1),xn=a(!1),Sn=a(!1),K=a(!1),q=a(null),J=a(``),Y=a(``),X=a(``),Z=a(``),Cn=a(!1),wn=f(()=>[...T.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),Tn=[`{workspace_name}`,`{working_branch}`,`{source_branch}`,`{project_path}`,`{worktree_path}`,`{commit_count}`,`{unpushed_count}`,`{files_changed}`,`{insertions}`,`{deletions}`,`{pr_number}`,`{pr_url}`,`{pr_state}`,`{session_name}`];function En(){q.value=null,J.value=``,Y.value=``,X.value=``,Z.value=``,K.value=!0}function Dn(e){q.value=e.slug,J.value=e.slug,Y.value=e.description,X.value=e.content,Z.value=``,K.value=!0}async function On(){Z.value=``;let e=J.value.trim(),t=Y.value.trim();if(q.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){Z.value=E(`templates.slugInvalid`);return}if(!t){Z.value=E(`templates.descriptionRequired`);return}if(!X.value.trim()){Z.value=E(`templates.contentRequired`);return}Cn.value=!0;try{q.value===null?await T.createTemplate({slug:e,description:t,content:X.value}):await T.updateTemplate(q.value,{description:t,content:X.value}),K.value=!1}catch(e){Z.value=e instanceof Error?e.message:E(`templates.createFailed`)}finally{Cn.value=!1}}async function kn(e){S.dialog({title:E(`templates.deleteTemplate`),message:`${E(`templates.deleteConfirm`,{slug:e.slug})}\n\n${E(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:E(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:E(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await T.deleteTemplate(e.slug)}catch(e){S.notify({type:`negative`,message:e instanceof Error?e.message:E(`templates.deleteFailed`),position:`top`})}})}let An=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function jn(e){yn.value=e,localStorage.setItem(`kobo:locale`,e)}let Mn=f(()=>[...Ce.map(e=>({label:E(e.i18nLabelKey),value:e.value}))]),Nn=f(()=>[{label:E(`settings.useGlobal`),value:``},...Mn.value]),Pn=f(()=>[{name:`{{pr_number}}`,description:E(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:E(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:E(`settings.var.branchName`)},{name:`{{source_branch}}`,description:E(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:E(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:E(`settings.var.projectName`)},{name:`{{notion_url}}`,description:E(`settings.var.notionUrl`)},{name:`{{commits}}`,description:E(`settings.var.commits`)},{name:`{{diff_stats}}`,description:E(`settings.var.diffStats`)},{name:`{{tasks}}`,description:E(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:E(`settings.var.acceptanceCriteria`)}]),Fn=f(()=>[{label:E(`settings.mcpAutoSelect`),value:``},...w.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Q=f(()=>H.value<0||H.value>=w.projects.length?null:w.projects[H.value]??null);function In(){O.value=w.global.defaultModel,k.value=w.global.dangerouslySkipPermissions??!0,A.value=w.global.prPromptTemplate,j.value=w.global.gitConventions,M.value=w.global.editorCommand??``,N.value=w.global.browserNotifications??!0,P.value=w.global.audioNotifications??!0,F.value=w.global.notionStatusProperty??``,I.value=w.global.notionInProgressStatus??``,L.value=w.global.defaultPermissionMode||`plan`,R.value=w.global.notionMcpKey??``,z.value=w.global.sentryMcpKey??``,B.value=Array.isArray(w.global.tags)?[...w.global.tags]:[]}function Ln(e){if(!e){W.value={path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,dangerouslySkipPermissions:!0,prPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``}},G.value=[];return}W.value={path:e.path,displayName:e.displayName,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,dangerouslySkipPermissions:e.dangerouslySkipPermissions??!0,prPromptTemplate:e.prPromptTemplate,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,devServer:{startCommand:e.devServer?.startCommand??``,stopCommand:e.devServer?.stopCommand??``}},e.path&&Rn(e.path)}async function Rn(e){if(!e.trim()){G.value=[];return}bn.value=!0;try{let t=await fetch(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();G.value=n.local??n.branches??[]}catch{G.value=[]}finally{bn.value=!1}}let $=null;t(()=>W.value.path,e=>{$&&clearTimeout($),$=setTimeout(()=>{Rn(e)},500)}),t(H,()=>{U.value=!1,Ln(Q.value)});let zn=a(null);async function Bn(){try{let e=await fetch(`/api/settings/export`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json(),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`kobo-config-${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,i.click(),URL.revokeObjectURL(r),S.notify({type:`positive`,message:E(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){S.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function Vn(){zn.value?.click()}async function Hn(e){let t=e.target,n=t.files?.[0];if(n)try{S.dialog({title:E(`settings.importConfirmTitle`),message:E(`settings.importConfirmMessage`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{let e=await n.text(),t=JSON.parse(e),r=await fetch(`/api/settings/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??`HTTP ${r.status}`)}await w.fetchSettings(),In(),S.notify({type:`positive`,message:E(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){S.notify({type:`negative`,message:String(e),position:`top`,timeout:5e3})}})}finally{t.value=``}}async function Un(){V.value=!0;try{await w.updateGlobal({defaultModel:O.value,dangerouslySkipPermissions:k.value,prPromptTemplate:A.value,gitConventions:j.value,editorCommand:M.value,browserNotifications:N.value,audioNotifications:P.value,notionStatusProperty:F.value,notionInProgressStatus:I.value,defaultPermissionMode:L.value,notionMcpKey:R.value,sentryMcpKey:z.value,tags:B.value}),S.notify({type:`positive`,message:E(`settings.saved`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.saveError`),position:`top`})}finally{V.value=!1}}async function Wn(){if(!W.value.path.trim()){S.notify({type:`negative`,message:E(`settings.projectPathRequired`),position:`top`});return}xn.value=!0;try{await w.upsertProject(W.value.path.trim(),{displayName:W.value.displayName,defaultSourceBranch:W.value.defaultSourceBranch,defaultModel:W.value.defaultModel,dangerouslySkipPermissions:W.value.dangerouslySkipPermissions,prPromptTemplate:W.value.prPromptTemplate,gitConventions:W.value.gitConventions,setupScript:W.value.setupScript,devServer:W.value.devServer}),U.value=!1;let e=w.projects.findIndex(e=>e.path===W.value.path.trim());e>=0&&(H.value=e),S.notify({type:`positive`,message:E(`settings.projectSaved`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.projectSaveError`),position:`top`})}finally{xn.value=!1}}async function Gn(){if(Q.value){Sn.value=!0;try{await w.deleteProject(Q.value.path),H.value=-1,U.value=!1,Ln(null),S.notify({type:`positive`,message:E(`settings.projectDeleted`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.projectDeleteError`),position:`top`})}finally{Sn.value=!1}}}function Kn(){H.value=-1,U.value=!0,Ln(null)}function qn(e){U.value=!1,H.value=e}function Jn(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Yn=a([]);function Xn(e,t){t(()=>{Yn.value=e?G.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):G.value})}return r(async()=>{await Promise.all([w.fetchSettings(),w.fetchActiveMcpServers()]),In()}),i(()=>{$&&clearTimeout($)}),(t,r)=>(e(),c(we,{class:`settings-page`},{default:o(()=>[g(`div`,Te,[g(`div`,Ee,[u(re,{name:`settings`,size:`24px`,color:`indigo-4`,class:`q-mr-sm`}),g(`span`,De,s(t.$t(`settings.title`)),1)]),u(ve,{modelValue:D.value,"onUpdate:modelValue":r[0]||=e=>D.value=e,dense:``,"active-color":`indigo-4`,"indicator-color":`indigo-4`,class:`settings-tabs q-mb-lg`,align:`left`,"narrow-indicator":``},{default:o(()=>[u(ge,{name:`global`,label:t.$t(`settings.global`)},null,8,[`label`]),u(ge,{name:`projects`,label:t.$t(`settings.projects`)},null,8,[`label`]),u(ge,{name:`templates`,label:t.$t(`templates.title`)},null,8,[`label`])]),_:1},8,[`modelValue`]),u(ye,{modelValue:D.value,"onUpdate:modelValue":r[25]||=e=>D.value=e,animated:``,class:`settings-panels`},{default:o(()=>[u(_e,{name:`global`,class:`q-pa-none`},{default:o(()=>[g(`div`,Oe,[g(`div`,ke,s(t.$t(`settings.globalSettings`)),1),u(_,{dark:``,class:`q-mb-md`}),g(`div`,Ae,[g(`div`,je,s(t.$t(`settings.language`)),1),u(C,{"model-value":h(yn),options:An,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":jn},null,8,[`model-value`])]),g(`div`,Me,[g(`div`,Ne,s(t.$t(`settings.defaultModel`)),1),u(C,{modelValue:O.value,"onUpdate:modelValue":r[1]||=e=>O.value=e,options:Mn.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,Pe,[g(`div`,Fe,s(t.$t(`settings.agentPermissions`)),1),u(b,{modelValue:k.value,"onUpdate:modelValue":r[2]||=e=>k.value=e,label:t.$t(`settings.skipPermissions`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),g(`div`,Ie,s(t.$t(`settings.skipPermissionsWarning`)),1)]),g(`div`,Le,[g(`div`,Re,s(t.$t(`settings.defaultPermissionMode`)),1),u(C,{modelValue:L.value,"onUpdate:modelValue":r[3]||=e=>L.value=e,options:[{label:t.$t(`permissionMode.plan`),value:`plan`},{label:t.$t(`permissionMode.autoAccept`),value:`auto-accept`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`]),g(`div`,ze,s(t.$t(`settings.defaultPermissionModeHint`)),1)]),g(`div`,Be,[g(`div`,Ve,s(t.$t(`settings.activityFeed`)),1),u(b,{"model-value":h(w).showVerboseSystemMessages,label:t.$t(`settings.verboseMessages`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":r[4]||=e=>h(w).toggleVerboseSystemMessages()},null,8,[`model-value`,`label`])]),g(`div`,He,[g(`div`,Ue,s(t.$t(`settings.notifications`)),1),u(b,{modelValue:N.value,"onUpdate:modelValue":r[5]||=e=>N.value=e,label:t.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),u(b,{modelValue:P.value,"onUpdate:modelValue":r[6]||=e=>P.value=e,label:t.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),g(`div`,We,[u(pe,{dense:``,dark:``,icon:`code`,label:t.$t(`settings.availableVariables`),class:`variables-panel rounded-borders`},{default:o(()=>[u(xe,{dense:``,dark:``,class:`q-pa-sm`},{default:o(()=>[(e(!0),p(m,null,n(Pn.value,t=>(e(),c(de,{key:t.name,dense:``},{default:o(()=>[u(fe,null,{default:o(()=>[u(x,{class:`text-caption`,style:{"font-family":`monospace`}},{default:o(()=>[d(s(t.name),1)]),_:2},1024),u(x,{caption:``,class:`text-grey-7`},{default:o(()=>[d(s(t.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1},8,[`label`])]),g(`div`,Ge,[g(`div`,Ke,s(t.$t(`settings.prPromptTemplate`)),1),u(y,{modelValue:A.value,"onUpdate:modelValue":r[7]||=e=>A.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.prPromptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,qe,s(t.$t(`settings.prPromptHint`)),1)]),g(`div`,Je,[g(`div`,Ye,s(t.$t(`settings.gitConventions`)),1),u(y,{modelValue:j.value,"onUpdate:modelValue":r[8]||=e=>j.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.gitConventionsPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Xe,s(t.$t(`settings.gitConventionsHint`)),1)]),g(`div`,Ze,[g(`div`,Qe,s(t.$t(`settings.editorCommand`)),1),u(y,{modelValue:M.value,"onUpdate:modelValue":r[9]||=e=>M.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.editorCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`]),g(`div`,$e,s(t.$t(`settings.editorCommandHint`)),1)]),g(`div`,et,[g(`div`,tt,s(t.$t(`settings.mcpSelection`)),1),g(`div`,nt,[g(`div`,rt,s(t.$t(`settings.notionMcp`)),1),u(C,{modelValue:R.value,"onUpdate:modelValue":r[10]||=e=>R.value=e,options:Fn.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,it,[g(`div`,at,s(t.$t(`settings.sentryMcp`)),1),u(C,{modelValue:z.value,"onUpdate:modelValue":r[11]||=e=>z.value=e,options:Fn.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,ot,s(t.$t(`settings.mcpSelectionHint`)),1)]),g(`div`,st,[g(`div`,ct,s(t.$t(`settings.notionStatus`)),1),g(`div`,lt,[g(`div`,ut,s(t.$t(`settings.notionStatusProperty`)),1),u(y,{modelValue:F.value,"onUpdate:modelValue":r[12]||=e=>F.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionStatusPropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,dt,[g(`div`,ft,s(t.$t(`settings.notionInProgressStatus`)),1),u(y,{modelValue:I.value,"onUpdate:modelValue":r[13]||=e=>I.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionInProgressStatusPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,pt,s(t.$t(`settings.notionStatusHint`)),1)]),g(`div`,mt,[g(`div`,ht,s(t.$t(`settings.tagsTitle`)),1),g(`div`,gt,s(t.$t(`settings.tagsHint`)),1),u(C,{modelValue:B.value,"onUpdate:modelValue":r[14]||=e=>B.value=e,label:t.$t(`settings.tagsLabel`),dark:``,outlined:``,multiple:``,"use-input":``,"use-chips":``,"new-value-mode":`add-unique`,"hide-dropdown-icon":``,"input-debounce":`0`,class:`settings-input`},null,8,[`modelValue`,`label`])]),g(`div`,_t,[g(`div`,vt,s(t.$t(`settings.shareTitle`)),1),g(`div`,yt,s(t.$t(`settings.shareHint`)),1),g(`div`,bt,[u(v,{label:t.$t(`settings.exportConfig`),icon:`download`,"no-caps":``,outline:``,color:`grey-4`,onClick:Bn},null,8,[`label`]),u(v,{label:t.$t(`settings.importConfig`),icon:`upload`,"no-caps":``,outline:``,color:`grey-4`,onClick:Vn},null,8,[`label`]),g(`input`,{ref_key:`importFileInput`,ref:zn,type:`file`,accept:`application/json,.json`,style:{display:`none`},onChange:Hn},null,544)])]),g(`div`,xt,[u(v,{label:t.$t(`common.save`),"no-caps":``,unelevated:``,color:`primary`,loading:V.value,onClick:Un},null,8,[`label`,`loading`])])])]),_:1}),u(_e,{name:`projects`,class:`q-pa-none`},{default:o(()=>[g(`div`,St,[g(`div`,Ct,[g(`div`,wt,[g(`div`,Tt,[g(`div`,Et,s(t.$t(`settings.configuredProjects`)),1)]),u(_,{dark:``}),u(xe,{dark:``,dense:``,class:`q-py-xs`},{default:o(()=>[(e(!0),p(m,null,n(h(w).projects,(t,n)=>(e(),c(de,{key:t.path,clickable:``,active:H.value===n&&!U.value,"active-class":`project-item--active`,class:`project-item q-mx-xs rounded-borders`,style:{"min-height":`40px`},onClick:e=>qn(n)},{default:o(()=>[u(fe,null,{default:o(()=>[u(x,{class:`text-body2 text-grey-3`},{default:o(()=>[d(s(Jn(t)),1)]),_:2},1024),u(x,{caption:``,class:`text-grey-7 ellipsis`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:o(()=>[d(s(t.path),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1}),h(w).projects.length===0&&!h(w).loading?(e(),p(`div`,Dt,s(t.$t(`settings.noProjects`)),1)):l(``,!0),u(_,{dark:``}),g(`div`,Ot,[u(v,{label:t.$t(`settings.addProject`),icon:`add`,"no-caps":``,flat:``,dense:``,class:`full-width`,color:`indigo-4`,onClick:Kn},null,8,[`label`])])])]),g(`div`,kt,[g(`div`,At,[Q.value||U.value?(e(),p(m,{key:0},[g(`div`,jt,s(U.value?t.$t(`settings.newProject`):t.$t(`settings.editProject`)),1),u(_,{dark:``,class:`q-mb-md`}),g(`div`,Mt,[g(`div`,Nt,s(t.$t(`settings.projectPath`)),1),u(y,{modelValue:W.value.path,"onUpdate:modelValue":r[15]||=e=>W.value.path=e,dense:``,dark:``,outlined:``,readonly:!U.value,placeholder:t.$t(`settings.projectPathPlaceholder`),class:te([`settings-input`,{"readonly-input":!U.value}])},null,8,[`modelValue`,`readonly`,`placeholder`,`class`])]),g(`div`,Pt,[g(`div`,Ft,s(t.$t(`settings.displayName`)),1),u(y,{modelValue:W.value.displayName,"onUpdate:modelValue":r[16]||=e=>W.value.displayName=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.displayNamePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,It,[g(`div`,Lt,s(t.$t(`settings.defaultSourceBranch`)),1),u(C,{modelValue:W.value.defaultSourceBranch,"onUpdate:modelValue":r[17]||=e=>W.value.defaultSourceBranch=e,options:Yn.value,dense:``,dark:``,outlined:``,"use-input":``,"emit-value":``,loading:bn.value,class:`settings-input`,placeholder:`main`,onFilter:Xn},{"no-option":o(()=>[u(de,null,{default:o(()=>[u(fe,{class:`text-grey-6 text-caption`},{default:o(()=>[d(s(W.value.path.trim()?t.$t(`createPage.noBranches`):t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`])]),g(`div`,Rt,[g(`div`,zt,s(t.$t(`settings.defaultModel.project`)),1),u(C,{modelValue:W.value.defaultModel,"onUpdate:modelValue":r[18]||=e=>W.value.defaultModel=e,options:Nn.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,Bt,[g(`div`,Vt,s(t.$t(`settings.agentPermissions`)),1),u(b,{modelValue:W.value.dangerouslySkipPermissions,"onUpdate:modelValue":r[19]||=e=>W.value.dangerouslySkipPermissions=e,label:t.$t(`settings.skipPermissions.project`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),g(`div`,Ht,[g(`div`,Ut,s(t.$t(`settings.prPromptTemplate.project`)),1),u(y,{modelValue:W.value.prPromptTemplate,"onUpdate:modelValue":r[20]||=e=>W.value.prPromptTemplate=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:4,placeholder:t.$t(`settings.prPromptPlaceholder.project`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),g(`div`,Wt,[g(`div`,Gt,s(t.$t(`settings.gitConventions.project`)),1),u(y,{modelValue:W.value.gitConventions,"onUpdate:modelValue":r[21]||=e=>W.value.gitConventions=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:6,placeholder:t.$t(`settings.gitConventionsEmpty`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Kt,s(t.$t(`settings.gitConventionsEmpty`)),1)]),g(`div`,qt,[g(`div`,Jt,s(t.$t(`settings.setupScript`)),1),u(y,{modelValue:W.value.setupScript,"onUpdate:modelValue":r[22]||=e=>W.value.setupScript=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:5,placeholder:t.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Yt,s(t.$t(`settings.setupScriptHint`)),1)]),g(`div`,Xt,[g(`div`,Zt,s(t.$t(`settings.devServer`)),1),g(`div`,Qt,[g(`div`,$t,s(t.$t(`settings.devServerStart`)),1),u(y,{modelValue:W.value.devServer.startCommand,"onUpdate:modelValue":r[23]||=e=>W.value.devServer.startCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:t.$t(`settings.devServerStartPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),g(`div`,null,[g(`div`,en,s(t.$t(`settings.devServerStop`)),1),u(y,{modelValue:W.value.devServer.stopCommand,"onUpdate:modelValue":r[24]||=e=>W.value.devServer.stopCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:t.$t(`settings.devServerStopPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),g(`div`,tn,[U.value?l(``,!0):(e(),c(v,{key:0,label:t.$t(`common.delete`),"no-caps":``,flat:``,color:`red-5`,loading:Sn.value,onClick:Gn},null,8,[`label`,`loading`])),u(he),u(v,{label:t.$t(`common.save`),"no-caps":``,unelevated:``,color:`primary`,loading:xn.value,onClick:Wn},null,8,[`label`,`loading`])])],64)):(e(),p(`div`,nn,[u(re,{name:`folder_open`,size:`48px`,color:`grey-7`,class:`q-mb-md`}),g(`div`,rn,s(t.$t(`settings.selectProject`)),1)]))])])])]),_:1}),u(_e,{name:`templates`,class:`q-pa-none`},{default:o(()=>[g(`div`,an,[g(`div`,on,[g(`div`,sn,s(t.$t(`templates.title`)),1),u(v,{color:`primary`,icon:`add`,label:t.$t(`templates.newTemplate`),dense:``,"no-caps":``,onClick:En},null,8,[`label`])]),u(_,{dark:``,class:`q-mb-md`}),wn.value.length===0?(e(),p(`div`,cn,s(t.$t(`templates.empty`)),1)):(e(),p(`div`,ln,[(e(!0),p(m,null,n(wn.value,n=>(e(),c(oe,{key:n.slug,dark:``,flat:``,bordered:``,class:`q-pa-md template-card`},{default:o(()=>[g(`div`,un,[g(`div`,dn,[g(`div`,fn,` /`+s(n.slug),1),g(`div`,pn,s(n.description),1)]),g(`div`,mn,[u(v,{flat:``,dense:``,round:``,size:`sm`,icon:`edit`,color:`grey-5`,onClick:e=>Dn(n)},{default:o(()=>[u(me,null,{default:o(()=>[d(s(t.$t(`templates.editTemplate`)),1)]),_:1})]),_:1},8,[`onClick`]),u(v,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`red-4`,onClick:e=>kn(n)},{default:o(()=>[u(me,null,{default:o(()=>[d(s(t.$t(`templates.deleteTemplate`)),1)]),_:1})]),_:1},8,[`onClick`])])])]),_:2},1024))),128))])),g(`div`,hn,s(t.$t(`templates.filePath`,{path:`~/.config/kobo/templates.json`})),1)])]),_:1})]),_:1},8,[`modelValue`])]),u(ie,{modelValue:K.value,"onUpdate:modelValue":r[29]||=e=>K.value=e,persistent:``},{default:o(()=>[u(oe,{dark:``,style:{"min-width":`560px`,"max-width":`800px`,width:`80vw`}},{default:o(()=>[u(se,null,{default:o(()=>[g(`div`,gn,s(q.value===null?t.$t(`templates.newTemplate`):t.$t(`templates.editTemplate`)),1)]),_:1}),u(se,{class:`q-gutter-md`},{default:o(()=>[u(y,{modelValue:J.value,"onUpdate:modelValue":r[26]||=e=>J.value=e,label:t.$t(`templates.slug`),hint:t.$t(`templates.slugHint`),dark:``,dense:``,prefix:`/`,disable:q.value!==null,rules:[e=>/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)||t.$t(`templates.slugInvalid`)],"lazy-rules":``},null,8,[`modelValue`,`label`,`hint`,`disable`,`rules`]),u(y,{modelValue:Y.value,"onUpdate:modelValue":r[27]||=e=>Y.value=e,label:t.$t(`templates.description`),hint:t.$t(`templates.descriptionHint`),dark:``,dense:``,counter:``,maxlength:`120`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),u(y,{modelValue:X.value,"onUpdate:modelValue":r[28]||=e=>X.value=e,label:t.$t(`templates.content`),hint:t.$t(`templates.contentHint`),dark:``,dense:``,type:`textarea`,autogrow:``,counter:``,maxlength:`4096`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),u(pe,{dense:``,"dense-toggle":``,label:t.$t(`templates.availableVars`),"header-class":`text-grey-6 text-caption q-pa-none`,style:{"font-size":`11px`}},{default:o(()=>[g(`div`,_n,[(e(),p(m,null,n(Tn,e=>g(`div`,{key:e,class:`text-grey-5 q-mb-xs`},s(e),1)),64))])]),_:1},8,[`label`]),Z.value?(e(),p(`div`,vn,s(Z.value),1)):l(``,!0)]),_:1}),u(ue,{align:`right`},{default:o(()=>[ee(u(v,{flat:``,label:t.$t(`common.cancel`)},null,8,[`label`]),[[Se]]),u(v,{flat:``,color:`primary`,label:q.value===null?t.$t(`templates.create`):t.$t(`templates.save`),loading:Cn.value,onClick:On},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-9ac26f61`]]);export{w as default};
|
|
1
|
+
import{F as e,H as t,L as n,M as r,N as i,Q as a,U as o,W as ee,_t as te,bt as s,d as c,f as l,g as u,h as d,l as f,p,r as m,rt as h,u as g,v as ne}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{t as re}from"./QIcon-B0-pH3Qs.js";import{t as _}from"./QSeparator-DNSiXYrN.js";import{t as ie}from"./QDialog-G448EJG4.js";import{t as v}from"./QBtn-CyzfM9-_.js";import{n as ae}from"./vue-i18n-eUDnMrPl.js";import{E as oe,O as se,S as ce,T as le,d as ue,i as y,n as b}from"./index-C-IVb0lG.js";import{n as de,t as fe}from"./QItemSection-BzWLL-V-.js";import{t as x}from"./QItemLabel-Czw5g0px.js";import{t as pe}from"./QExpansionItem-HLBjHx-0.js";import{t as me}from"./QTooltip-DbEBexRN.js";import{t as S}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as he}from"./QSpace-0zdF1m5x.js";import{i as ge,n as _e,r as ve,t as ye}from"./QTabPanels-Cw4nnIbR.js";import{t as be}from"./use-quasar-BBrzedjR.js";import{t as xe}from"./QList-D2GuTeLl.js";import{t as Se}from"./ClosePopup-DTgXzcoa.js";import{n as C,t as Ce}from"./models-CBrNFRtB.js";import{t as we}from"./QPage-BTzNQlb1.js";var Te={class:`settings-inner`},Ee={class:`settings-header row items-center q-mb-lg`},De={class:`text-h5 text-weight-medium text-grey-3`},Oe={class:`settings-card rounded-borders q-pa-lg`},ke={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Ae={class:`q-mb-lg`},je={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Me={class:`q-mb-lg`},Ne={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pe={class:`q-mb-lg`},Fe={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ie={class:`text-caption text-red-4 q-mt-xs`},Le={class:`q-mb-lg`},Re={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ze={class:`text-caption text-grey-7 q-mt-xs`},Be={class:`q-mb-lg`},Ve={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},He={class:`q-mb-lg`},Ue={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},We={class:`q-mb-md`},Ge={class:`q-mb-lg`},Ke={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},qe={class:`text-caption text-grey-7 q-mt-xs`},Je={class:`q-mb-lg`},Ye={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xe={class:`text-caption text-grey-7 q-mt-xs`},Ze={class:`q-mb-lg`},Qe={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},$e={class:`text-caption text-grey-7 q-mt-xs`},et={class:`q-mb-lg`},tt={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},nt={class:`q-mb-sm`},rt={class:`field-label-sub text-caption q-mb-xs text-grey-7`},it={class:`q-mb-sm`},at={class:`field-label-sub text-caption q-mb-xs text-grey-7`},ot={class:`text-caption text-grey-7 q-mt-xs`},st={class:`q-mb-lg`},ct={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},lt={class:`q-mb-sm`},ut={class:`field-label-sub text-caption q-mb-xs text-grey-7`},dt={class:`q-mb-sm`},ft={class:`field-label-sub text-caption q-mb-xs text-grey-7`},pt={class:`text-caption text-grey-7 q-mt-xs`},mt={class:`settings-card q-pa-md rounded-borders`},ht={class:`text-subtitle2 q-mb-sm`},gt={class:`text-caption text-grey-7 q-mb-sm`},_t={class:`settings-card q-pa-md rounded-borders`},vt={class:`text-subtitle2 q-mb-sm`},yt={class:`text-caption text-grey-7 q-mb-sm`},bt={class:`row q-gutter-sm`},xt={class:`row justify-end`},St={class:`row q-gutter-md`,style:{"min-height":`500px`}},Ct={class:`project-list-col`},wt={class:`settings-card rounded-borders`,style:{height:`100%`}},Tt={class:`q-pa-sm`},Et={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},Dt={key:0,class:`q-pa-md text-center text-caption text-grey-8`},Ot={class:`q-pa-sm`},kt={class:`project-form-col`},At={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},jt={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Mt={class:`q-mb-md`},Nt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pt={class:`q-mb-md`},Ft={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},It={class:`q-mb-md`},Lt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Rt={class:`q-mb-md`},zt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Bt={class:`q-mb-md`},Vt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ht={class:`q-mb-md`},Ut={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Wt={class:`q-mb-md`},Gt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Kt={class:`text-caption text-grey-7 q-mt-xs`},qt={class:`q-mb-lg`},Jt={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Yt={class:`text-caption text-grey-7 q-mt-xs`},Xt={class:`q-mb-lg`},Zt={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},Qt={class:`q-mb-md`},$t={class:`field-label-sub text-caption q-mb-xs text-grey-7`},en={class:`field-label-sub text-caption q-mb-xs text-grey-7`},tn={class:`row items-center q-gutter-sm`},nn={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},rn={class:`text-body2 text-grey-8`},an={class:`settings-card rounded-borders q-pa-lg`},on={class:`row items-center justify-between q-mb-md`},sn={class:`text-subtitle1 text-weight-medium text-grey-3`},cn={key:0,class:`text-grey-6 q-py-lg text-center`},ln={key:1,class:`column q-gutter-sm`},un={class:`row items-start justify-between no-wrap`},dn={class:`col`},fn={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},pn={class:`text-caption text-grey-5 q-mt-xs`},mn={class:`row no-wrap q-gutter-xs`},hn={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},gn={class:`text-subtitle1`},_n={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},vn={key:0,class:`text-negative text-caption`},w=S(ne({__name:`SettingsPage`,setup(ne){let S=be(),w=ce(),T=le(),{t:E,locale:yn}=ae(),D=a(`global`),O=a(`auto`),k=a(!0),A=a(``),j=a(``),M=a(``),N=a(!0),P=a(!0),F=a(``),I=a(``),L=a(`plan`),R=a(``),z=a(``),B=a([]),V=a(!1),H=a(-1),U=a(!1),W=a({path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,dangerouslySkipPermissions:!0,prPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``}}),G=a([]),bn=a(!1),xn=a(!1),Sn=a(!1),K=a(!1),q=a(null),J=a(``),Y=a(``),X=a(``),Z=a(``),Cn=a(!1),wn=f(()=>[...T.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),Tn=[`{workspace_name}`,`{working_branch}`,`{source_branch}`,`{project_path}`,`{worktree_path}`,`{commit_count}`,`{unpushed_count}`,`{files_changed}`,`{insertions}`,`{deletions}`,`{pr_number}`,`{pr_url}`,`{pr_state}`,`{session_name}`];function En(){q.value=null,J.value=``,Y.value=``,X.value=``,Z.value=``,K.value=!0}function Dn(e){q.value=e.slug,J.value=e.slug,Y.value=e.description,X.value=e.content,Z.value=``,K.value=!0}async function On(){Z.value=``;let e=J.value.trim(),t=Y.value.trim();if(q.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){Z.value=E(`templates.slugInvalid`);return}if(!t){Z.value=E(`templates.descriptionRequired`);return}if(!X.value.trim()){Z.value=E(`templates.contentRequired`);return}Cn.value=!0;try{q.value===null?await T.createTemplate({slug:e,description:t,content:X.value}):await T.updateTemplate(q.value,{description:t,content:X.value}),K.value=!1}catch(e){Z.value=e instanceof Error?e.message:E(`templates.createFailed`)}finally{Cn.value=!1}}async function kn(e){S.dialog({title:E(`templates.deleteTemplate`),message:`${E(`templates.deleteConfirm`,{slug:e.slug})}\n\n${E(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:E(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:E(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await T.deleteTemplate(e.slug)}catch(e){S.notify({type:`negative`,message:e instanceof Error?e.message:E(`templates.deleteFailed`),position:`top`})}})}let An=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function jn(e){yn.value=e,localStorage.setItem(`kobo:locale`,e)}let Mn=f(()=>[...Ce.map(e=>({label:E(e.i18nLabelKey),value:e.value}))]),Nn=f(()=>[{label:E(`settings.useGlobal`),value:``},...Mn.value]),Pn=f(()=>[{name:`{{pr_number}}`,description:E(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:E(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:E(`settings.var.branchName`)},{name:`{{source_branch}}`,description:E(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:E(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:E(`settings.var.projectName`)},{name:`{{notion_url}}`,description:E(`settings.var.notionUrl`)},{name:`{{commits}}`,description:E(`settings.var.commits`)},{name:`{{diff_stats}}`,description:E(`settings.var.diffStats`)},{name:`{{tasks}}`,description:E(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:E(`settings.var.acceptanceCriteria`)}]),Fn=f(()=>[{label:E(`settings.mcpAutoSelect`),value:``},...w.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Q=f(()=>H.value<0||H.value>=w.projects.length?null:w.projects[H.value]??null);function In(){O.value=w.global.defaultModel,k.value=w.global.dangerouslySkipPermissions??!0,A.value=w.global.prPromptTemplate,j.value=w.global.gitConventions,M.value=w.global.editorCommand??``,N.value=w.global.browserNotifications??!0,P.value=w.global.audioNotifications??!0,F.value=w.global.notionStatusProperty??``,I.value=w.global.notionInProgressStatus??``,L.value=w.global.defaultPermissionMode||`plan`,R.value=w.global.notionMcpKey??``,z.value=w.global.sentryMcpKey??``,B.value=Array.isArray(w.global.tags)?[...w.global.tags]:[]}function Ln(e){if(!e){W.value={path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,dangerouslySkipPermissions:!0,prPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``}},G.value=[];return}W.value={path:e.path,displayName:e.displayName,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,dangerouslySkipPermissions:e.dangerouslySkipPermissions??!0,prPromptTemplate:e.prPromptTemplate,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,devServer:{startCommand:e.devServer?.startCommand??``,stopCommand:e.devServer?.stopCommand??``}},e.path&&Rn(e.path)}async function Rn(e){if(!e.trim()){G.value=[];return}bn.value=!0;try{let t=await fetch(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();G.value=n.local??n.branches??[]}catch{G.value=[]}finally{bn.value=!1}}let $=null;t(()=>W.value.path,e=>{$&&clearTimeout($),$=setTimeout(()=>{Rn(e)},500)}),t(H,()=>{U.value=!1,Ln(Q.value)});let zn=a(null);async function Bn(){try{let e=await fetch(`/api/settings/export`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json(),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`kobo-config-${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,i.click(),URL.revokeObjectURL(r),S.notify({type:`positive`,message:E(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){S.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function Vn(){zn.value?.click()}async function Hn(e){let t=e.target,n=t.files?.[0];if(n)try{S.dialog({title:E(`settings.importConfirmTitle`),message:E(`settings.importConfirmMessage`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{let e=await n.text(),t=JSON.parse(e),r=await fetch(`/api/settings/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??`HTTP ${r.status}`)}await w.fetchSettings(),In(),S.notify({type:`positive`,message:E(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){S.notify({type:`negative`,message:String(e),position:`top`,timeout:5e3})}})}finally{t.value=``}}async function Un(){V.value=!0;try{await w.updateGlobal({defaultModel:O.value,dangerouslySkipPermissions:k.value,prPromptTemplate:A.value,gitConventions:j.value,editorCommand:M.value,browserNotifications:N.value,audioNotifications:P.value,notionStatusProperty:F.value,notionInProgressStatus:I.value,defaultPermissionMode:L.value,notionMcpKey:R.value,sentryMcpKey:z.value,tags:B.value}),S.notify({type:`positive`,message:E(`settings.saved`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.saveError`),position:`top`})}finally{V.value=!1}}async function Wn(){if(!W.value.path.trim()){S.notify({type:`negative`,message:E(`settings.projectPathRequired`),position:`top`});return}xn.value=!0;try{await w.upsertProject(W.value.path.trim(),{displayName:W.value.displayName,defaultSourceBranch:W.value.defaultSourceBranch,defaultModel:W.value.defaultModel,dangerouslySkipPermissions:W.value.dangerouslySkipPermissions,prPromptTemplate:W.value.prPromptTemplate,gitConventions:W.value.gitConventions,setupScript:W.value.setupScript,devServer:W.value.devServer}),U.value=!1;let e=w.projects.findIndex(e=>e.path===W.value.path.trim());e>=0&&(H.value=e),S.notify({type:`positive`,message:E(`settings.projectSaved`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.projectSaveError`),position:`top`})}finally{xn.value=!1}}async function Gn(){if(Q.value){Sn.value=!0;try{await w.deleteProject(Q.value.path),H.value=-1,U.value=!1,Ln(null),S.notify({type:`positive`,message:E(`settings.projectDeleted`),position:`top`})}catch{S.notify({type:`negative`,message:E(`settings.projectDeleteError`),position:`top`})}finally{Sn.value=!1}}}function Kn(){H.value=-1,U.value=!0,Ln(null)}function qn(e){U.value=!1,H.value=e}function Jn(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Yn=a([]);function Xn(e,t){t(()=>{Yn.value=e?G.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):G.value})}return r(async()=>{await Promise.all([w.fetchSettings(),w.fetchActiveMcpServers()]),In()}),i(()=>{$&&clearTimeout($)}),(t,r)=>(e(),c(we,{class:`settings-page`},{default:o(()=>[g(`div`,Te,[g(`div`,Ee,[u(re,{name:`settings`,size:`24px`,color:`indigo-4`,class:`q-mr-sm`}),g(`span`,De,s(t.$t(`settings.title`)),1)]),u(ve,{modelValue:D.value,"onUpdate:modelValue":r[0]||=e=>D.value=e,dense:``,"active-color":`indigo-4`,"indicator-color":`indigo-4`,class:`settings-tabs q-mb-lg`,align:`left`,"narrow-indicator":``},{default:o(()=>[u(ge,{name:`global`,label:t.$t(`settings.global`)},null,8,[`label`]),u(ge,{name:`projects`,label:t.$t(`settings.projects`)},null,8,[`label`]),u(ge,{name:`templates`,label:t.$t(`templates.title`)},null,8,[`label`])]),_:1},8,[`modelValue`]),u(ye,{modelValue:D.value,"onUpdate:modelValue":r[25]||=e=>D.value=e,animated:``,class:`settings-panels`},{default:o(()=>[u(_e,{name:`global`,class:`q-pa-none`},{default:o(()=>[g(`div`,Oe,[g(`div`,ke,s(t.$t(`settings.globalSettings`)),1),u(_,{dark:``,class:`q-mb-md`}),g(`div`,Ae,[g(`div`,je,s(t.$t(`settings.language`)),1),u(C,{"model-value":h(yn),options:An,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":jn},null,8,[`model-value`])]),g(`div`,Me,[g(`div`,Ne,s(t.$t(`settings.defaultModel`)),1),u(C,{modelValue:O.value,"onUpdate:modelValue":r[1]||=e=>O.value=e,options:Mn.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,Pe,[g(`div`,Fe,s(t.$t(`settings.agentPermissions`)),1),u(b,{modelValue:k.value,"onUpdate:modelValue":r[2]||=e=>k.value=e,label:t.$t(`settings.skipPermissions`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),g(`div`,Ie,s(t.$t(`settings.skipPermissionsWarning`)),1)]),g(`div`,Le,[g(`div`,Re,s(t.$t(`settings.defaultPermissionMode`)),1),u(C,{modelValue:L.value,"onUpdate:modelValue":r[3]||=e=>L.value=e,options:[{label:t.$t(`permissionMode.plan`),value:`plan`},{label:t.$t(`permissionMode.autoAccept`),value:`auto-accept`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`]),g(`div`,ze,s(t.$t(`settings.defaultPermissionModeHint`)),1)]),g(`div`,Be,[g(`div`,Ve,s(t.$t(`settings.activityFeed`)),1),u(b,{"model-value":h(w).showVerboseSystemMessages,label:t.$t(`settings.verboseMessages`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":r[4]||=e=>h(w).toggleVerboseSystemMessages()},null,8,[`model-value`,`label`])]),g(`div`,He,[g(`div`,Ue,s(t.$t(`settings.notifications`)),1),u(b,{modelValue:N.value,"onUpdate:modelValue":r[5]||=e=>N.value=e,label:t.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),u(b,{modelValue:P.value,"onUpdate:modelValue":r[6]||=e=>P.value=e,label:t.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),g(`div`,We,[u(pe,{dense:``,dark:``,icon:`code`,label:t.$t(`settings.availableVariables`),class:`variables-panel rounded-borders`},{default:o(()=>[u(xe,{dense:``,dark:``,class:`q-pa-sm`},{default:o(()=>[(e(!0),p(m,null,n(Pn.value,t=>(e(),c(de,{key:t.name,dense:``},{default:o(()=>[u(fe,null,{default:o(()=>[u(x,{class:`text-caption`,style:{"font-family":`monospace`}},{default:o(()=>[d(s(t.name),1)]),_:2},1024),u(x,{caption:``,class:`text-grey-7`},{default:o(()=>[d(s(t.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1},8,[`label`])]),g(`div`,Ge,[g(`div`,Ke,s(t.$t(`settings.prPromptTemplate`)),1),u(y,{modelValue:A.value,"onUpdate:modelValue":r[7]||=e=>A.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.prPromptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,qe,s(t.$t(`settings.prPromptHint`)),1)]),g(`div`,Je,[g(`div`,Ye,s(t.$t(`settings.gitConventions`)),1),u(y,{modelValue:j.value,"onUpdate:modelValue":r[8]||=e=>j.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.gitConventionsPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Xe,s(t.$t(`settings.gitConventionsHint`)),1)]),g(`div`,Ze,[g(`div`,Qe,s(t.$t(`settings.editorCommand`)),1),u(y,{modelValue:M.value,"onUpdate:modelValue":r[9]||=e=>M.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.editorCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`]),g(`div`,$e,s(t.$t(`settings.editorCommandHint`)),1)]),g(`div`,et,[g(`div`,tt,s(t.$t(`settings.mcpSelection`)),1),g(`div`,nt,[g(`div`,rt,s(t.$t(`settings.notionMcp`)),1),u(C,{modelValue:R.value,"onUpdate:modelValue":r[10]||=e=>R.value=e,options:Fn.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,it,[g(`div`,at,s(t.$t(`settings.sentryMcp`)),1),u(C,{modelValue:z.value,"onUpdate:modelValue":r[11]||=e=>z.value=e,options:Fn.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,ot,s(t.$t(`settings.mcpSelectionHint`)),1)]),g(`div`,st,[g(`div`,ct,s(t.$t(`settings.notionStatus`)),1),g(`div`,lt,[g(`div`,ut,s(t.$t(`settings.notionStatusProperty`)),1),u(y,{modelValue:F.value,"onUpdate:modelValue":r[12]||=e=>F.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionStatusPropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,dt,[g(`div`,ft,s(t.$t(`settings.notionInProgressStatus`)),1),u(y,{modelValue:I.value,"onUpdate:modelValue":r[13]||=e=>I.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionInProgressStatusPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,pt,s(t.$t(`settings.notionStatusHint`)),1)]),g(`div`,mt,[g(`div`,ht,s(t.$t(`settings.tagsTitle`)),1),g(`div`,gt,s(t.$t(`settings.tagsHint`)),1),u(C,{modelValue:B.value,"onUpdate:modelValue":r[14]||=e=>B.value=e,label:t.$t(`settings.tagsLabel`),dark:``,outlined:``,multiple:``,"use-input":``,"use-chips":``,"new-value-mode":`add-unique`,"hide-dropdown-icon":``,"input-debounce":`0`,class:`settings-input`},null,8,[`modelValue`,`label`])]),g(`div`,_t,[g(`div`,vt,s(t.$t(`settings.shareTitle`)),1),g(`div`,yt,s(t.$t(`settings.shareHint`)),1),g(`div`,bt,[u(v,{label:t.$t(`settings.exportConfig`),icon:`download`,"no-caps":``,outline:``,color:`grey-4`,onClick:Bn},null,8,[`label`]),u(v,{label:t.$t(`settings.importConfig`),icon:`upload`,"no-caps":``,outline:``,color:`grey-4`,onClick:Vn},null,8,[`label`]),g(`input`,{ref_key:`importFileInput`,ref:zn,type:`file`,accept:`application/json,.json`,style:{display:`none`},onChange:Hn},null,544)])]),g(`div`,xt,[u(v,{label:t.$t(`common.save`),"no-caps":``,unelevated:``,color:`primary`,loading:V.value,onClick:Un},null,8,[`label`,`loading`])])])]),_:1}),u(_e,{name:`projects`,class:`q-pa-none`},{default:o(()=>[g(`div`,St,[g(`div`,Ct,[g(`div`,wt,[g(`div`,Tt,[g(`div`,Et,s(t.$t(`settings.configuredProjects`)),1)]),u(_,{dark:``}),u(xe,{dark:``,dense:``,class:`q-py-xs`},{default:o(()=>[(e(!0),p(m,null,n(h(w).projects,(t,n)=>(e(),c(de,{key:t.path,clickable:``,active:H.value===n&&!U.value,"active-class":`project-item--active`,class:`project-item q-mx-xs rounded-borders`,style:{"min-height":`40px`},onClick:e=>qn(n)},{default:o(()=>[u(fe,null,{default:o(()=>[u(x,{class:`text-body2 text-grey-3`},{default:o(()=>[d(s(Jn(t)),1)]),_:2},1024),u(x,{caption:``,class:`text-grey-7 ellipsis`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:o(()=>[d(s(t.path),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1}),h(w).projects.length===0&&!h(w).loading?(e(),p(`div`,Dt,s(t.$t(`settings.noProjects`)),1)):l(``,!0),u(_,{dark:``}),g(`div`,Ot,[u(v,{label:t.$t(`settings.addProject`),icon:`add`,"no-caps":``,flat:``,dense:``,class:`full-width`,color:`indigo-4`,onClick:Kn},null,8,[`label`])])])]),g(`div`,kt,[g(`div`,At,[Q.value||U.value?(e(),p(m,{key:0},[g(`div`,jt,s(U.value?t.$t(`settings.newProject`):t.$t(`settings.editProject`)),1),u(_,{dark:``,class:`q-mb-md`}),g(`div`,Mt,[g(`div`,Nt,s(t.$t(`settings.projectPath`)),1),u(y,{modelValue:W.value.path,"onUpdate:modelValue":r[15]||=e=>W.value.path=e,dense:``,dark:``,outlined:``,readonly:!U.value,placeholder:t.$t(`settings.projectPathPlaceholder`),class:te([`settings-input`,{"readonly-input":!U.value}])},null,8,[`modelValue`,`readonly`,`placeholder`,`class`])]),g(`div`,Pt,[g(`div`,Ft,s(t.$t(`settings.displayName`)),1),u(y,{modelValue:W.value.displayName,"onUpdate:modelValue":r[16]||=e=>W.value.displayName=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.displayNamePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),g(`div`,It,[g(`div`,Lt,s(t.$t(`settings.defaultSourceBranch`)),1),u(C,{modelValue:W.value.defaultSourceBranch,"onUpdate:modelValue":r[17]||=e=>W.value.defaultSourceBranch=e,options:Yn.value,dense:``,dark:``,outlined:``,"use-input":``,"emit-value":``,loading:bn.value,class:`settings-input`,placeholder:`main`,onFilter:Xn},{"no-option":o(()=>[u(de,null,{default:o(()=>[u(fe,{class:`text-grey-6 text-caption`},{default:o(()=>[d(s(W.value.path.trim()?t.$t(`createPage.noBranches`):t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`])]),g(`div`,Rt,[g(`div`,zt,s(t.$t(`settings.defaultModel.project`)),1),u(C,{modelValue:W.value.defaultModel,"onUpdate:modelValue":r[18]||=e=>W.value.defaultModel=e,options:Nn.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),g(`div`,Bt,[g(`div`,Vt,s(t.$t(`settings.agentPermissions`)),1),u(b,{modelValue:W.value.dangerouslySkipPermissions,"onUpdate:modelValue":r[19]||=e=>W.value.dangerouslySkipPermissions=e,label:t.$t(`settings.skipPermissions.project`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),g(`div`,Ht,[g(`div`,Ut,s(t.$t(`settings.prPromptTemplate.project`)),1),u(y,{modelValue:W.value.prPromptTemplate,"onUpdate:modelValue":r[20]||=e=>W.value.prPromptTemplate=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:4,placeholder:t.$t(`settings.prPromptPlaceholder.project`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),g(`div`,Wt,[g(`div`,Gt,s(t.$t(`settings.gitConventions.project`)),1),u(y,{modelValue:W.value.gitConventions,"onUpdate:modelValue":r[21]||=e=>W.value.gitConventions=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:6,placeholder:t.$t(`settings.gitConventionsEmpty`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Kt,s(t.$t(`settings.gitConventionsEmpty`)),1)]),g(`div`,qt,[g(`div`,Jt,s(t.$t(`settings.setupScript`)),1),u(y,{modelValue:W.value.setupScript,"onUpdate:modelValue":r[22]||=e=>W.value.setupScript=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:5,placeholder:t.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),g(`div`,Yt,s(t.$t(`settings.setupScriptHint`)),1)]),g(`div`,Xt,[g(`div`,Zt,s(t.$t(`settings.devServer`)),1),g(`div`,Qt,[g(`div`,$t,s(t.$t(`settings.devServerStart`)),1),u(y,{modelValue:W.value.devServer.startCommand,"onUpdate:modelValue":r[23]||=e=>W.value.devServer.startCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:t.$t(`settings.devServerStartPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),g(`div`,null,[g(`div`,en,s(t.$t(`settings.devServerStop`)),1),u(y,{modelValue:W.value.devServer.stopCommand,"onUpdate:modelValue":r[24]||=e=>W.value.devServer.stopCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:t.$t(`settings.devServerStopPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),g(`div`,tn,[U.value?l(``,!0):(e(),c(v,{key:0,label:t.$t(`common.delete`),"no-caps":``,flat:``,color:`red-5`,loading:Sn.value,onClick:Gn},null,8,[`label`,`loading`])),u(he),u(v,{label:t.$t(`common.save`),"no-caps":``,unelevated:``,color:`primary`,loading:xn.value,onClick:Wn},null,8,[`label`,`loading`])])],64)):(e(),p(`div`,nn,[u(re,{name:`folder_open`,size:`48px`,color:`grey-7`,class:`q-mb-md`}),g(`div`,rn,s(t.$t(`settings.selectProject`)),1)]))])])])]),_:1}),u(_e,{name:`templates`,class:`q-pa-none`},{default:o(()=>[g(`div`,an,[g(`div`,on,[g(`div`,sn,s(t.$t(`templates.title`)),1),u(v,{color:`primary`,icon:`add`,label:t.$t(`templates.newTemplate`),dense:``,"no-caps":``,onClick:En},null,8,[`label`])]),u(_,{dark:``,class:`q-mb-md`}),wn.value.length===0?(e(),p(`div`,cn,s(t.$t(`templates.empty`)),1)):(e(),p(`div`,ln,[(e(!0),p(m,null,n(wn.value,n=>(e(),c(oe,{key:n.slug,dark:``,flat:``,bordered:``,class:`q-pa-md template-card`},{default:o(()=>[g(`div`,un,[g(`div`,dn,[g(`div`,fn,` /`+s(n.slug),1),g(`div`,pn,s(n.description),1)]),g(`div`,mn,[u(v,{flat:``,dense:``,round:``,size:`sm`,icon:`edit`,color:`grey-5`,onClick:e=>Dn(n)},{default:o(()=>[u(me,null,{default:o(()=>[d(s(t.$t(`templates.editTemplate`)),1)]),_:1})]),_:1},8,[`onClick`]),u(v,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`red-4`,onClick:e=>kn(n)},{default:o(()=>[u(me,null,{default:o(()=>[d(s(t.$t(`templates.deleteTemplate`)),1)]),_:1})]),_:1},8,[`onClick`])])])]),_:2},1024))),128))])),g(`div`,hn,s(t.$t(`templates.filePath`,{path:`~/.config/kobo/templates.json`})),1)])]),_:1})]),_:1},8,[`modelValue`])]),u(ie,{modelValue:K.value,"onUpdate:modelValue":r[29]||=e=>K.value=e,persistent:``},{default:o(()=>[u(oe,{dark:``,style:{"min-width":`560px`,"max-width":`800px`,width:`80vw`}},{default:o(()=>[u(se,null,{default:o(()=>[g(`div`,gn,s(q.value===null?t.$t(`templates.newTemplate`):t.$t(`templates.editTemplate`)),1)]),_:1}),u(se,{class:`q-gutter-md`},{default:o(()=>[u(y,{modelValue:J.value,"onUpdate:modelValue":r[26]||=e=>J.value=e,label:t.$t(`templates.slug`),hint:t.$t(`templates.slugHint`),dark:``,dense:``,prefix:`/`,disable:q.value!==null,rules:[e=>/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)||t.$t(`templates.slugInvalid`)],"lazy-rules":``},null,8,[`modelValue`,`label`,`hint`,`disable`,`rules`]),u(y,{modelValue:Y.value,"onUpdate:modelValue":r[27]||=e=>Y.value=e,label:t.$t(`templates.description`),hint:t.$t(`templates.descriptionHint`),dark:``,dense:``,counter:``,maxlength:`120`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),u(y,{modelValue:X.value,"onUpdate:modelValue":r[28]||=e=>X.value=e,label:t.$t(`templates.content`),hint:t.$t(`templates.contentHint`),dark:``,dense:``,type:`textarea`,autogrow:``,counter:``,maxlength:`4096`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),u(pe,{dense:``,"dense-toggle":``,label:t.$t(`templates.availableVars`),"header-class":`text-grey-6 text-caption q-pa-none`,style:{"font-size":`11px`}},{default:o(()=>[g(`div`,_n,[(e(),p(m,null,n(Tn,e=>g(`div`,{key:e,class:`text-grey-5 q-mb-xs`},s(e),1)),64))])]),_:1},8,[`label`]),Z.value?(e(),p(`div`,vn,s(Z.value),1)):l(``,!0)]),_:1}),u(ue,{align:`right`},{default:o(()=>[ee(u(v,{flat:``,label:t.$t(`common.cancel`)},null,8,[`label`]),[[Se]]),u(v,{flat:``,color:`primary`,label:q.value===null?t.$t(`templates.create`):t.$t(`templates.save`),loading:Cn.value,onClick:On},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-9ac26f61`]]);export{w as default};
|
package/src/client/dist/spa/assets/{WorkspacePage-BIquds-p.css → WorkspacePage-CM676R3B.css}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
.quota-footer[data-v-0c047f57]{color:#a0a0c0;white-space:nowrap;cursor:default;font-size:.75rem}.quota-footer--empty[data-v-0c047f57]{color:#6a6a8a}.chat-input-container[data-v-ada81eb7]{background-color:#16162a;border-top:1px solid #2a2a4a;min-height:48px;position:relative}.chat-input-container.chat-input-dragging[data-v-ada81eb7]{outline-offset:-2px;outline:2px dashed #6c63ff}.chat-input[data-v-ada81eb7]{background-color:#224;padding:4px 12px}.chat-input[data-v-ada81eb7] .q-field__control{min-height:32px}.chat-input[data-v-ada81eb7] textarea,.chat-input[data-v-ada81eb7] input{color:#ccc;font-size:13px}.skills-popup[data-v-ada81eb7]{z-index:9999;background-color:#1e1e3a;border:1px solid #2a2a4a;max-height:300px;position:absolute;bottom:calc(100% + 4px);left:8px;right:48px;overflow-y:auto;box-shadow:0 -4px 16px #0006}.skills-section-header[data-v-ada81eb7]{text-transform:uppercase;color:#6b7280;letter-spacing:.05em;border-top:1px solid #ffffff0d;padding:4px 12px;font-size:10px}.skills-section-header[data-v-ada81eb7]:first-child{border-top:none}.skill-item[data-v-ada81eb7]{font-family:Roboto Mono,monospace}.skill-item[data-v-ada81eb7]:hover,.skill-item--active[data-v-ada81eb7]{background-color:#6c63ff26}.image-tag[data-v-ada81eb7]{font-family:Roboto Mono,monospace;font-size:12px;line-height:1}.image-tag--uploading[data-v-ada81eb7]{color:#88a;background-color:#2a2a4a;border:1px solid #3a3a5a}.image-tag--ready[data-v-ada81eb7]{color:#6aaa6a;background-color:#1a2a1a;border:1px solid #2a4a2a}.image-tag--error[data-v-ada81eb7]{color:#aa6a6a;background-color:#2a1a1a;border:1px solid #4a2a2a}.image-tag-label[data-v-ada81eb7]{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.chat-hint[data-v-ada81eb7]{text-align:left;padding:2px 4px 0;font-size:10px}.chat-hint kbd[data-v-ada81eb7]{background-color:#2a2a4a;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px}.queue-banner[data-v-ada81eb7]{background-color:#2a2a1a;border-bottom:1px solid #4a4a2a}.image-tag-close[data-v-ada81eb7]{color:#a44;opacity:.7}.image-tag-close[data-v-ada81eb7]:hover{opacity:1}.wp-header[data-v-
|
|
1
|
+
.quota-footer[data-v-0c047f57]{color:#a0a0c0;white-space:nowrap;cursor:default;font-size:.75rem}.quota-footer--empty[data-v-0c047f57]{color:#6a6a8a}.chat-input-container[data-v-ada81eb7]{background-color:#16162a;border-top:1px solid #2a2a4a;min-height:48px;position:relative}.chat-input-container.chat-input-dragging[data-v-ada81eb7]{outline-offset:-2px;outline:2px dashed #6c63ff}.chat-input[data-v-ada81eb7]{background-color:#224;padding:4px 12px}.chat-input[data-v-ada81eb7] .q-field__control{min-height:32px}.chat-input[data-v-ada81eb7] textarea,.chat-input[data-v-ada81eb7] input{color:#ccc;font-size:13px}.skills-popup[data-v-ada81eb7]{z-index:9999;background-color:#1e1e3a;border:1px solid #2a2a4a;max-height:300px;position:absolute;bottom:calc(100% + 4px);left:8px;right:48px;overflow-y:auto;box-shadow:0 -4px 16px #0006}.skills-section-header[data-v-ada81eb7]{text-transform:uppercase;color:#6b7280;letter-spacing:.05em;border-top:1px solid #ffffff0d;padding:4px 12px;font-size:10px}.skills-section-header[data-v-ada81eb7]:first-child{border-top:none}.skill-item[data-v-ada81eb7]{font-family:Roboto Mono,monospace}.skill-item[data-v-ada81eb7]:hover,.skill-item--active[data-v-ada81eb7]{background-color:#6c63ff26}.image-tag[data-v-ada81eb7]{font-family:Roboto Mono,monospace;font-size:12px;line-height:1}.image-tag--uploading[data-v-ada81eb7]{color:#88a;background-color:#2a2a4a;border:1px solid #3a3a5a}.image-tag--ready[data-v-ada81eb7]{color:#6aaa6a;background-color:#1a2a1a;border:1px solid #2a4a2a}.image-tag--error[data-v-ada81eb7]{color:#aa6a6a;background-color:#2a1a1a;border:1px solid #4a2a2a}.image-tag-label[data-v-ada81eb7]{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.chat-hint[data-v-ada81eb7]{text-align:left;padding:2px 4px 0;font-size:10px}.chat-hint kbd[data-v-ada81eb7]{background-color:#2a2a4a;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px}.queue-banner[data-v-ada81eb7]{background-color:#2a2a1a;border-bottom:1px solid #4a4a2a}.image-tag-close[data-v-ada81eb7]{color:#a44;opacity:.7}.image-tag-close[data-v-ada81eb7]:hover{opacity:1}.wp-header[data-v-f174e931]{background-color:#16162a;border-bottom:1px solid #2a2a4a;min-height:48px}
|