@loicngr/kobo 1.7.13 → 1.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -399
- package/dist/server/routes/health.js +2 -1
- package/package.json +1 -1
- package/src/client/dist/spa/assets/{ActivityFeed-CrlJXGsr.js → ActivityFeed-LlMDs201.js} +1 -1
- package/src/client/dist/spa/assets/{CreatePage-B7DVVS0u.js → CreatePage-kLDqaPDs.js} +1 -1
- package/src/client/dist/spa/assets/{DiffViewer-hWxcG22N.js → DiffViewer-B-pWVglv.js} +3 -3
- package/src/client/dist/spa/assets/HealthPage-C3wPvMBd.js +1 -0
- package/src/client/dist/spa/assets/{MainLayout-BRV8i-6o.js → MainLayout-BQc7MqCn.js} +2 -2
- package/src/client/dist/spa/assets/{SearchPage-MfSrrMo1.js → SearchPage-DifF1k07.js} +1 -1
- package/src/client/dist/spa/assets/{SettingsPage-CR3kXpHd.js → SettingsPage-DfNUJb99.js} +1 -1
- package/src/client/dist/spa/assets/{WorkspacePage-DUKKBulA.js → WorkspacePage-B-E0Ry6O.js} +3 -3
- package/src/client/dist/spa/assets/{cssMode-DTibHxcy.js → cssMode-D5ZOAlu6.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api-CdLzoLLv.js → editor.api-CTE0T74t.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-DSLdinVQ.js → editor.main-Buyn4kmD.js} +3 -3
- package/src/client/dist/spa/assets/{engineFeatures-DNZNjYIf.js → engineFeatures-DYvwpYlV.js} +1 -1
- package/src/client/dist/spa/assets/{expand-template-Fy2sU7vj.js → expand-template-BBEWjwKv.js} +1 -1
- package/src/client/dist/spa/assets/{freemarker2-wf8G5c3b.js → freemarker2-BqQ6Og68.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-BGPZbdOB.js → handlebars-DuIKUFde.js} +1 -1
- package/src/client/dist/spa/assets/{html-DPEVCP74.js → html-BHWxRlmb.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-DMWUNRWz.js → htmlMode-C-SjHXMn.js} +1 -1
- package/src/client/dist/spa/assets/i18n-CpmhEjSj.js +1 -0
- package/src/client/dist/spa/assets/index-DRHsozfK.js +2 -0
- package/src/client/dist/spa/assets/{javascript-hOcrXbaP.js → javascript-ukUWOwiC.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-EeNIyfJU.js → jsonMode-C_hd-E3X.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-Cvw1gFPR.js → liquid-B6flz_LR.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-CGtsv5px.js → mdx-F-Hst5AO.js} +1 -1
- package/src/client/dist/spa/assets/{monaco.contribution-RY1eW2u5.js → monaco.contribution-C8xDzD2M.js} +2 -2
- package/src/client/dist/spa/assets/{permissionModes-BBA8zBcf.js → permissionModes-B1595Yfm.js} +1 -1
- package/src/client/dist/spa/assets/{purify.es-CxaFgMzS.js → purify.es-DfpOsee9.js} +1 -1
- package/src/client/dist/spa/assets/{python-t0GNay3W.js → python-Bl42f-yd.js} +1 -1
- package/src/client/dist/spa/assets/{razor-v9eEhqO6.js → razor-Dx7_W971.js} +1 -1
- package/src/client/dist/spa/assets/{render-chat-markdown-B41YA3kF.js → render-chat-markdown-CeI636ZV.js} +1 -1
- package/src/client/dist/spa/assets/{tsMode-B376_f_2.js → tsMode-CO3Uuszk.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-WTvQ8gc0.js → typescript-BxouTBRr.js} +1 -1
- package/src/client/dist/spa/assets/{xml-BMuHSj3C.js → xml-W_9Wtmsi.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-BRigOMm_.js → yaml-ByUJ6m8w.js} +1 -1
- package/src/client/dist/spa/index.html +1 -1
- package/src/client/dist/spa/assets/HealthPage-BP_TiWeV.js +0 -1
- package/src/client/dist/spa/assets/i18n-CUkOJRYM.js +0 -1
- package/src/client/dist/spa/assets/index-D9yyMIdQ.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,F as t,G as n,L as r,M as i,N as a,S as o,U as s,W as c,d as l,f as u,g as d,h as f,it as p,k as m,l as h,p as g,r as _,u as v,v as y,vt as b,x,xt as S,y as C,yt as ee}from"./runtime-core.esm-bundler-DPcTPMmX.js";import{N as w,P as te,R as ne,V as T,i as E,k as re,n as ie,r as ae,t as D}from"./QIcon-0rjEivgj.js";import{r as oe}from"./use-id-BQW6DfJU.js";import{L as se,R as O,a as ce,c as le,i as ue,l as de,n as fe,o as pe,s as me}from"./notifications-BzyK_kYE.js";import{n as he,r as ge}from"./QRadio-BEsMlsx1.js";import{c as _e,t as k}from"./QBtn-CLU6snCm.js";import{n as ve}from"./vue-i18n-cyuEW5NY.js";import{i as A,o as j,r as M,t as N}from"./QInput-Ciqjq5-e.js";import{t as P}from"./QToggle-aBvIHg6j.js";import{h as ye,m as be,t as xe,v as Se,y as Ce}from"./index-D9yyMIdQ.js";import{n as we,t as F}from"./QItemSection-DZnyqPM3.js";import{t as I}from"./QItemLabel-B0tYxHQg.js";import{d as L,t as Te}from"./QTooltip-DdpeVKGV.js";import{t as R}from"./QExpansionItem-BFqbf9C7.js";import{t as Ee}from"./TouchPan-DPBZDRzA.js";import{t as z}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as B}from"./QSpace-BrtkvWzZ.js";import{t as De}from"./QList-MfhZa-uv.js";import{t as Oe}from"./ClosePopup-C5EF3QrA.js";import{t as ke}from"./use-quasar-C5gKpYwL.js";import{a as Ae,i as je,n as Me,o as Ne,r as Pe,t as Fe}from"./QChip-DSMeriN6.js";import{t as Ie}from"./project-color-d_h7ZYoM.js";import{a as V,n as Le,r as Re,t as ze}from"./permissionModes-BBA8zBcf.js";import{t as Be}from"./QPage-CGYPttdA.js";var H=`q-slider__marker-labels`,U=e=>({value:e}),Ve=({marker:e})=>o(`div`,{key:e.value,style:e.style,class:e.classes},e.label),W=[34,37,40,33,39,38],He={...ae,...j,min:{type:Number,default:0},max:{type:Number,default:100},innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:e=>e>=0},snap:Boolean,vertical:Boolean,reverse:Boolean,color:String,markerLabelsClass:String,label:Boolean,labelColor:String,labelTextColor:String,labelAlways:Boolean,switchLabelSide:Boolean,markers:[Boolean,Number],markerLabels:[Boolean,Array,Object,Function],switchMarkerLabelsSide:Boolean,trackImg:String,trackColor:String,innerTrackImg:String,innerTrackColor:String,selectionColor:String,selectionImg:String,thumbSize:{type:String,default:`20px`},trackSize:{type:String,default:`4px`},disable:Boolean,readonly:Boolean,dense:Boolean,tabindex:[String,Number],thumbColor:String,thumbPath:{type:String,default:`M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0`}},G=[`pan`,`update:modelValue`,`change`];function Ue({updateValue:t,updatePosition:n,getDragging:r,formAttrs:i}){let{props:a,emit:s,slots:c,proxy:{$q:l}}=C(),u=ie(a,l),d=A(i),f=e(!1),p=e(!1),g=e(!1),_=e(!1),v=h(()=>a.vertical===!0?`--v`:`--h`),y=h(()=>`-`+(a.switchLabelSide===!0?`switched`:`standard`)),b=h(()=>a.vertical===!0?a.reverse===!0:a.reverse!==(l.lang.rtl===!0)),x=h(()=>isNaN(a.innerMin)===!0||a.innerMin<a.min?a.min:a.innerMin),S=h(()=>isNaN(a.innerMax)===!0||a.innerMax>a.max?a.max:a.innerMax),ee=h(()=>a.disable!==!0&&a.readonly!==!0&&x.value<S.value),w=h(()=>{if(a.step===0)return e=>e;let e=(String(a.step).trim().split(`.`)[1]||``).length;return t=>parseFloat(t.toFixed(e))}),te=h(()=>a.step===0?1:a.step),ne=h(()=>ee.value===!0?a.tabindex||0:-1),T=h(()=>a.max-a.min),ae=h(()=>S.value-x.value),D=h(()=>Ce(x.value)),oe=h(()=>Ce(S.value)),ce=h(()=>a.vertical===!0?b.value===!0?`bottom`:`top`:b.value===!0?`right`:`left`),le=h(()=>a.vertical===!0?`height`:`width`),ue=h(()=>a.vertical===!0?`width`:`height`),de=h(()=>a.vertical===!0?`vertical`:`horizontal`),fe=h(()=>{let e={role:`slider`,"aria-valuemin":x.value,"aria-valuemax":S.value,"aria-orientation":de.value,"data-step":a.step};return a.disable===!0?e[`aria-disabled`]=`true`:a.readonly===!0&&(e[`aria-readonly`]=`true`),e}),pe=h(()=>`q-slider q-slider${v.value} q-slider--${f.value===!0?``:`in`}active inline no-wrap `+(a.vertical===!0?`row`:`column`)+(a.disable===!0?` disabled`:` q-slider--enabled`+(ee.value===!0?` q-slider--editable`:``))+(g.value===`both`?` q-slider--focus`:``)+(a.label||a.labelAlways===!0?` q-slider--label`:``)+(a.labelAlways===!0?` q-slider--label-always`:``)+(u.value===!0?` q-slider--dark`:``)+(a.dense===!0?` q-slider--dense q-slider--dense`+v.value:``));function me(e){let t=`q-slider__`+e;return`${t} ${t}${v.value} ${t}${v.value}${y.value}`}function he(e){let t=`q-slider__`+e;return`${t} ${t}${v.value}`}let ge=h(()=>{let e=a.selectionColor||a.color;return`q-slider__selection absolute`+(e===void 0?``:` text-${e}`)}),_e=h(()=>he(`markers`)+` absolute overflow-hidden`),k=h(()=>he(`track-container`)),ve=h(()=>me(`pin`)),j=h(()=>me(`label`)),M=h(()=>me(`text-container`)),N=h(()=>me(`marker-labels-container`)+(a.markerLabelsClass===void 0?``:` ${a.markerLabelsClass}`)),P=h(()=>`q-slider__track relative-position no-outline`+(a.trackColor===void 0?``:` bg-${a.trackColor}`)),ye=h(()=>{let e={[ue.value]:a.trackSize};return a.trackImg!==void 0&&(e.backgroundImage=`url(${a.trackImg}) !important`),e}),be=h(()=>`q-slider__inner absolute`+(a.innerTrackColor===void 0?``:` bg-${a.innerTrackColor}`)),xe=h(()=>{let e=oe.value-D.value,t={[ce.value]:`${100*D.value}%`,[le.value]:e===0?`2px`:`${100*e}%`};return a.innerTrackImg!==void 0&&(t.backgroundImage=`url(${a.innerTrackImg}) !important`),t});function Se(e){let{min:t,max:n,step:r}=a,i=t+e*(n-t);if(r>0){let e=(i-x.value)%r;i+=(Math.abs(e)>=r/2?(e<0?-1:1)*r:0)-e}return i=w.value(i),L(i,x.value,S.value)}function Ce(e){return T.value===0?0:(e-a.min)/T.value}function we(e,t){let n=re(e),r=a.vertical===!0?L((n.top-t.top)/t.height,0,1):L((n.left-t.left)/t.width,0,1);return L(b.value===!0?1-r:r,D.value,oe.value)}let F=h(()=>se(a.markers)===!0?a.markers:te.value),I=h(()=>{let e=[],t=F.value,n=a.max,r=a.min;do e.push(r),r+=t;while(r<n);return e.push(n),e}),Te=h(()=>{let e=` ${H}${v.value}-`;return`q-slider__marker-labels${e}${a.switchMarkerLabelsSide===!0?`switched`:`standard`}${e}${b.value===!0?`rtl`:`ltr`}`}),R=h(()=>a.markerLabels===!1?null:De(a.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:Te.value+(e.classes===void 0?``:` `+e.classes),style:{...Oe(e.value),...e.style||{}}}))),z=h(()=>({markerList:R.value,markerMap:ke.value,classes:Te.value,getStyle:Oe})),B=h(()=>{let e=ae.value===0?`2px`:100*F.value/ae.value;return{...xe.value,backgroundSize:a.vertical===!0?`2px ${e}%`:`${e}% 2px`}});function De(e){if(e===!1)return null;if(e===!0)return I.value.map(U);if(typeof e==`function`)return I.value.map(t=>{let n=e(t);return O(n)===!0?{...n,value:t}:{value:t,label:n}});let t=({value:e})=>e>=a.min&&e<=a.max;return Array.isArray(e)===!0?e.map(e=>O(e)===!0?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return O(n)===!0?{...n,value:r}:{value:r,label:n}}).filter(t)}function Oe(e){return{[ce.value]:`${100*(e-a.min)/T.value}%`}}let ke=h(()=>{if(a.markerLabels===!1)return null;let e={};return R.value.forEach(t=>{e[t.value]=t}),e});function Ae(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](z.value);let e=c[`marker-label`]||Ve;return R.value.map(t=>e({marker:t,...z.value}))}let je=h(()=>[[Ee,Me,void 0,{[de.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function Me(e){e.isFinal===!0?(_.value!==void 0&&(n(e.evt),e.touch===!0&&t(!0),_.value=void 0,s(`pan`,`end`)),f.value=!1,g.value=!1):e.isFirst===!0?(_.value=r(e.evt),n(e.evt),t(),f.value=!0,s(`pan`,`start`)):(n(e.evt),t())}function Ne(){g.value=!1}function Pe(e){n(e,r(e)),t(),p.value=!0,f.value=!0,document.addEventListener(`mouseup`,Fe,!0)}function Fe(){p.value=!1,f.value=!1,t(!0),Ne(),document.removeEventListener(`mouseup`,Fe,!0)}function Ie(e){n(e,r(e)),t(!0)}function V(e){W.includes(e.keyCode)&&t(!0)}function Le(e){if(a.vertical===!0)return null;let t=l.lang.rtl===a.reverse?e:1-e;return{transform:`translateX(calc(${2*t-1} * ${a.thumbSize} / 2 + ${50-100*t}%))`}}function Re(e){let t=h(()=>p.value===!1&&(g.value===e.focusValue||g.value===`both`)?` q-slider--focus`:``),n=h(()=>`q-slider__thumb q-slider__thumb${v.value} q-slider__thumb${v.value}-${b.value===!0?`rtl`:`ltr`} absolute non-selectable`+t.value+(e.thumbColor.value===void 0?``:` text-${e.thumbColor.value}`)),r=h(()=>({width:a.thumbSize,height:a.thumbSize,[ce.value]:`${100*e.ratio.value}%`,zIndex:g.value===e.focusValue?2:void 0})),i=h(()=>e.labelColor.value===void 0?``:` text-${e.labelColor.value}`),s=h(()=>Le(e.ratio.value)),c=h(()=>`q-slider__text`+(e.labelTextColor.value===void 0?``:` text-${e.labelTextColor.value}`));return()=>{let t=[o(`svg`,{class:`q-slider__thumb-shape absolute-full`,viewBox:`0 0 20 20`,"aria-hidden":`true`},[o(`path`,{d:a.thumbPath})]),o(`div`,{class:`q-slider__focus-ring fit`})];return(a.label===!0||a.labelAlways===!0)&&(t.push(o(`div`,{class:ve.value+` absolute fit no-pointer-events`+i.value},[o(`div`,{class:j.value,style:{minWidth:a.thumbSize}},[o(`div`,{class:M.value,style:s.value},[o(`span`,{class:c.value},e.label.value)])])])),a.name!==void 0&&a.disable!==!0&&d(t,`push`)),o(`div`,{class:n.value,style:r.value,...e.getNodeData()},t)}}function ze(e,t,n,r){let i=[];a.innerTrackColor!==`transparent`&&i.push(o(`div`,{key:`inner`,class:be.value,style:xe.value})),a.selectionColor!==`transparent`&&i.push(o(`div`,{key:`selection`,class:ge.value,style:e.value})),a.markers!==!1&&i.push(o(`div`,{key:`marker`,class:_e.value,style:B.value})),r(i);let s=[E(`div`,{key:`trackC`,class:k.value,tabindex:t.value,...n.value},[o(`div`,{class:P.value,style:ye.value},i)],`slide`,ee.value,()=>je.value)];return a.markerLabels!==!1&&s[a.switchMarkerLabelsSide===!0?`unshift`:`push`](o(`div`,{key:`markerL`,class:N.value},Ae())),s}return m(()=>{document.removeEventListener(`mouseup`,Fe,!0)}),{state:{active:f,focus:g,preventFocus:p,dragging:_,editable:ee,classes:pe,tabindex:ne,attributes:fe,roundValueFn:w,keyStep:te,trackLen:T,innerMin:x,innerMinRatio:D,innerMax:S,innerMaxRatio:oe,positionProp:ce,sizeProp:le,isReversed:b},methods:{onActivate:Pe,onMobileClick:Ie,onBlur:Ne,onKeyup:V,getContent:ze,getThumbRenderFn:Re,convertRatioToModel:Se,convertModelToRatio:Ce,getDraggingRatio:we}}}var We=()=>({}),Ge=te({name:`QSlider`,props:{...He,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:G,setup(t,{emit:n}){let{proxy:{$q:r}}=C(),{state:i,methods:a}=Ue({updateValue:v,updatePosition:b,getDragging:y,formAttrs:M(t)}),c=e(null),l=e(0),u=e(0);function d(){u.value=t.modelValue===null?i.innerMin.value:L(t.modelValue,i.innerMin.value,i.innerMax.value)}s(()=>`${t.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,d),d();let f=h(()=>a.convertModelToRatio(u.value)),p=h(()=>i.active.value===!0?l.value:f.value),m=h(()=>{let e={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(p.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(e.backgroundImage=`url(${t.selectionImg}) !important`),e}),g=a.getThumbRenderFn({focusValue:!0,getNodeData:We,ratio:p,label:h(()=>t.labelValue===void 0?u.value:t.labelValue),thumbColor:h(()=>t.thumbColor||t.color),labelColor:h(()=>t.labelColor),labelTextColor:h(()=>t.labelTextColor)}),_=h(()=>i.editable.value===!0?r.platform.is.mobile===!0?{onClick:a.onMobileClick}:{onMousedown:a.onActivate,onFocus:x,onBlur:a.onBlur,onKeydown:S,onKeyup:a.onKeyup}:{});function v(e){u.value!==t.modelValue&&n(`update:modelValue`,u.value),e===!0&&n(`change`,u.value)}function y(){return c.value.getBoundingClientRect()}function b(e,n=i.dragging.value){let r=a.getDraggingRatio(e,n);u.value=a.convertRatioToModel(r),l.value=t.snap!==!0||t.step===0?r:a.convertModelToRatio(u.value)}function x(){i.focus.value=!0}function S(e){if(W.includes(e.keyCode)===!1)return;w(e);let n=([34,33].includes(e.keyCode)?10:1)*i.keyStep.value,r=([34,37,40].includes(e.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*n;u.value=L(i.roundValueFn.value(u.value+r),i.innerMin.value,i.innerMax.value),v()}return()=>{let e=a.getContent(m,i.tabindex,_,e=>{e.push(g())});return o(`div`,{ref:c,class:i.classes.value+(t.modelValue===null?` q-slider--no-value`:``),...i.attributes.value,"aria-valuenow":t.modelValue},e)}}}),Ke={class:`settings-layout`},qe={class:`settings-nav`},Je={class:`settings-nav__title`},Ye={class:`settings-content`},Xe={class:`settings-content__header`},Ze={class:`settings-content__title`},Qe={class:`settings-panels`},$e={class:`settings-global-wrap`},et={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},tt={class:`text-subtitle2 q-mb-sm`},nt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},rt={class:`text-subtitle2 q-mb-sm`},it={class:`text-caption text-grey-7 q-mt-xs`},at={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ot={class:`text-subtitle2 q-mb-sm`},st={class:`text-caption text-grey-6 q-mt-xs`},ct={key:0,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},lt={class:`text-subtitle2 q-mb-sm`},ut={class:`text-caption text-grey-6 q-mb-xs q-mt-sm`},dt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},ft={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},pt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},mt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},ht={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gt={class:`text-subtitle2 q-mb-sm`},_t={class:`text-subtitle2 q-mb-sm q-mt-md`},vt={class:`text-subtitle2 q-mb-sm q-mt-md`},yt={class:`text-caption text-grey-7 q-mb-sm`},bt={class:`text-subtitle2 q-mb-sm q-mt-md`},xt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},St={class:`text-subtitle2 q-mb-sm`},Ct={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wt={class:`text-subtitle2 q-mb-sm`},Tt={class:`column q-gutter-xs`},Et={class:`row items-center q-gutter-sm q-mt-sm`},Dt={class:`row items-center q-gutter-sm q-mt-sm`},Ot={class:`text-grey-5 text-caption`,style:{"min-width":`80px`}},kt={class:`text-grey-5 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},At={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jt={class:`row items-center q-mb-sm`},Mt={class:`text-subtitle2`},Nt={class:`column q-gutter-xs`},Pt={class:`row items-center q-gutter-sm`},Ft={class:`row items-center q-gutter-sm`},It={class:`q-pa-sm text-caption text-grey-5`},Lt={class:`q-mb-sm`},Rt={class:`q-mb-sm`},zt={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-indigo-4`},Bt={class:`q-mb-xs text-grey-4`},Vt={class:`q-mb-sm`},Ht={class:`q-mb-xs text-grey-4`},Ut={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Wt={class:`text-subtitle2 q-mb-sm`},Gt={class:`row q-col-gutter-sm`},Kt={class:`col-12 col-sm-6`},qt={class:`col-12 col-sm-6`},Jt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yt={class:`text-subtitle2 q-mb-sm`},Xt={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},Zt={class:`text-caption text-grey-5 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},Qt={class:`column q-gutter-sm`},$t={class:`row items-center q-gutter-sm`},en={class:`text-body2 text-grey-3`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},tn={class:`text-caption text-grey-6`},nn={key:0,class:`q-mt-sm`},rn={class:`row items-center q-mt-xs`},an={class:`text-caption text-grey-6`},on={class:`text-caption text-indigo-4`},sn={key:1,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},cn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ln={class:`text-subtitle2 q-mb-sm`},un={class:`q-pa-sm column q-gutter-sm`},dn={class:`row items-center q-gutter-sm`},fn={class:`text-caption text-grey-5`},pn={class:`text-caption text-grey-5`,style:{"min-width":`40px`,"text-align":`right`}},mn={class:`text-caption text-grey-7`},hn={class:`text-caption text-grey-7`},gn={class:`text-caption text-grey-7`},_n={class:`text-caption text-grey-7`},vn={class:`q-pa-sm column q-gutter-sm`},yn={key:1,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},bn={class:`row items-center q-mb-sm`},xn={class:`text-subtitle2`},Sn={class:`text-caption text-grey-7 q-mb-sm`},Cn={class:`q-mb-sm`},wn={class:`row items-center q-mb-sm q-mt-md`},Tn={class:`text-subtitle2`},En={class:`text-caption text-grey-7 q-mb-sm`},Dn={class:`row items-center q-mb-sm q-mt-md`},On={class:`text-subtitle2`},kn={class:`text-caption text-grey-7 q-mb-sm`},An={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jn={class:`text-subtitle2 q-mb-sm`},Mn={class:`text-caption text-grey-7 q-mb-sm`},Nn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pn={class:`text-subtitle2 q-mb-sm`},Fn={class:`text-caption text-grey-7 q-mb-sm`},In={class:`q-mb-sm`},Ln={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Rn={class:`q-mb-sm`},zn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Bn={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Vn={class:`text-subtitle2 q-mb-sm`},Hn={class:`text-caption text-grey-7 q-mb-sm`},Un={class:`q-mb-sm`},Wn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Gn={class:`q-mb-sm`},Kn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},qn={class:`row items-center q-mb-sm`},Jn={class:`text-subtitle2`},Yn={class:`text-caption text-grey-7 q-mb-xs`},Xn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zn={class:`text-subtitle2 q-mb-sm`},Qn={class:`text-caption text-grey-7 q-mb-sm`},$n={class:`q-mb-sm`},er={class:`field-label-sub text-caption q-mb-xs text-grey-7`},tr={class:`q-mb-sm`},nr={class:`row items-center q-mb-xs`},rr={class:`field-label-sub text-caption text-grey-7 col`},ir=[`src`,`alt`],ar={key:1,class:`text-caption text-grey-7 q-py-sm`},or={key:0,class:`text-caption text-orange-5 q-mb-xs`},sr={key:3,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},cr={class:`text-subtitle2 q-mb-sm`},lr={class:`row items-center q-mb-sm`},ur={class:`text-subtitle2`},dr={class:`text-caption text-grey-7 q-mb-xs`},fr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pr={class:`text-subtitle2 q-mb-sm`},mr={class:`text-caption text-grey-7 q-mb-sm`},hr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gr={class:`text-subtitle2 q-mb-sm`},_r={class:`text-caption text-grey-7 q-mb-sm`},vr={class:`text-caption text-grey-7 q-mt-xs`},yr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},br={class:`text-subtitle2 q-mb-sm`},xr={class:`text-caption text-grey-7 q-mb-sm`},Sr={class:`row q-gutter-sm`},Cr={class:`row justify-end settings-sticky-actions`},wr={class:`q-pa-none`},Tr={class:`row q-gutter-md`,style:{"min-height":`500px`}},Er={class:`project-list-col`},Dr={class:`settings-card rounded-borders`,style:{height:`100%`}},Or={class:`q-pa-sm`},kr={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},Ar={key:0,class:`q-pa-md text-center text-caption text-grey-8`},jr={class:`q-pa-sm`},Mr={class:`project-form-col`},Nr={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Pr={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Fr={key:0,class:`q-mb-md`},Ir={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Lr={class:`text-caption text-grey-7 q-mt-xs`},Rr={class:`q-mb-md`},zr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Br={class:`q-mb-md`},Vr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Hr={class:`q-mb-md`},Ur={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Wr={class:`row items-center q-gutter-xs`},Gr={class:`text-caption text-grey-6 q-mt-xs`},Kr={class:`q-mb-md`},qr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Jr={class:`q-mb-md`},Yr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xr={class:`q-mb-md`},Zr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Qr={class:`q-mb-md`},$r={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ei={class:`q-mb-md`},ti={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ni={class:`text-caption text-grey-7 q-mb-xs`},ri={class:`q-mb-md`},ii={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ai={class:`text-caption text-grey-7 q-mb-xs`},oi={class:`q-mb-md`},si={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ci={class:`text-caption text-grey-7 q-mt-xs`},li={class:`q-mb-lg`},ui={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},di={class:`text-caption text-grey-7 q-mt-xs`},fi={class:`q-mb-lg`},pi={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},mi={class:`q-mb-md`},hi={class:`field-label-sub text-caption q-mb-xs text-grey-7`},gi={class:`field-label-sub text-caption q-mb-xs text-grey-7`},_i={class:`q-mb-lg`},vi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},yi={class:`text-caption text-grey-7 q-mb-sm`},bi={class:`q-mb-lg`},xi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Si={class:`text-caption text-grey-7 q-mb-sm`},Ci={class:`row items-center q-gutter-sm settings-sticky-actions`},wi={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Ti={class:`text-body2 text-grey-8`},Ei={class:`q-pa-none`},Di={class:`settings-card rounded-borders q-pa-lg`},Oi={class:`row items-center justify-between q-mb-md`},ki={class:`text-subtitle1 text-weight-medium text-grey-3`},Ai={class:`row q-gutter-sm items-center`},ji={key:0,class:`text-grey-6 q-py-lg text-center`},Mi={key:1,class:`column q-gutter-sm`},Ni={class:`row items-start justify-between no-wrap`},Pi={class:`col`},Fi={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},Ii={class:`text-caption text-grey-5 q-mt-xs`},Li={class:`row no-wrap q-gutter-xs`},Ri={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},zi={key:0,class:`settings-savebar`},Bi={class:`settings-savebar__label`},Vi={class:`text-subtitle1`},Hi={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},Ui={key:0,class:`text-negative text-caption`},Wi=z(y({__name:`SettingsPage`,setup(o){let m=ke(),y=me(),C=be(),{t:w,locale:te}=ve(),E=e(`general`),re=h(()=>[{value:`general`,icon:`tune`,label:w(`settings.nav.general`)},{value:`agents`,icon:`smart_toy`,label:w(`settings.nav.agents`)},{value:`skills`,icon:`extension`,label:w(`settings.nav.skills`)},{value:`prompts`,icon:`text_snippet`,label:w(`settings.nav.prompts`)},{value:`notion`,icon:`integration_instructions`,label:w(`settings.nav.notion`)},{value:`sentry`,icon:`bug_report`,label:w(`settings.nav.sentry`)},{value:`voice`,icon:`mic`,label:w(`settings.nav.voice`)},{value:`notifications`,icon:`notifications`,label:w(`settings.nav.notifications`)},{value:`worktrees`,icon:`account_tree`,label:w(`settings.nav.worktrees`)},{value:`projects`,icon:`folder`,label:w(`settings.projects`)},{value:`templates`,icon:`description`,label:w(`templates.title`)},{value:`export`,icon:`import_export`,label:w(`settings.nav.export`)}]),ie=h(()=>re.value.find(e=>e.value===E.value)?.label??``),ae=h(()=>[`general`,`agents`,`skills`,`prompts`,`notion`,`sentry`,`voice`,`notifications`,`worktrees`,`export`].includes(E.value)),se=e(`auto`),O=e(`auto`),A=e(``),j=e(``),M=e(``),L=e(``),Ee=e(!0),z=e(!0),H=e(ue),U=e(1),Ve=e(``),W=e(``),He=e(``),G=e(``),Ue=e([]),We=e(!1),Wi=e(``),Gi=h(()=>Ue.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function Ki(e=!1){if(!We.value&&!(!e&&Ue.value.length>0)){We.value=!0,Wi.value=``;try{let e=await fetch(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Ue.value=Array.isArray(t.users)?t.users:[]}catch(e){Wi.value=e instanceof Error?e.message:String(e),Ue.value=[]}finally{We.value=!1}}}let qi=e(``),Ji=e(``),K=e(null),Yi=e(`bypass`),Xi=e(`bypass`),Zi=e(``),Qi=e(``),$i=e([]),ea=e(le),ta=e(null),na=e(!0),ra=e(!1),q=e(`superpowers`),ia=h(()=>{switch(q.value){case`gstack`:return`settings.skillSuite.gstackHint`;case`superpowers+gstack`:return`settings.skillSuite.superpowersGstackHint`;case`custom`:return`settings.skillSuite.customHint`;default:return`settings.skillSuite.superpowersHint`}}),aa=e(``),oa=e(``),sa=e(``),ca=e(``),la=e(``),ua=e(!1),da=e(`alt`),fa=e(`auto`),J=e(null),pa=e(``),ma=e(``),ha=e(0),ga=e(``),_a=e(!1),va=e(!0),ya=e(null),ba=e(!1);function xa(){m.dialog({title:w(`settings.skillSuite.reloadDefaults`),message:w(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{aa.value=Ne,oa.value=Pe,sa.value=Me,ca.value=Ae,la.value=je})}function Sa(e){return!e||e===`tiny`||e===`base`?.1:.2}let Ca=[e=>e.trim().length>0||w(`settings.worktreesPathRequired`)],wa=e(!1),Y=e(-1),X=e(!1),Z=e({path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),Ta=[`defaultModel`,`prPromptTemplate`,`reviewPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`devServer`,`e2e`,`finalization`],Ea=e(null),Da=e(null),Oa=h(()=>y.projects.map(e=>({value:e.path,label:Go(e)||e.path})));function ka(e){let t=y.projects.find(t=>t.path===e);t&&(Z.value.defaultModel=t.defaultModel??``,Z.value.prPromptTemplate=t.prPromptTemplate??``,Z.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Z.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Z.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Z.value.gitConventions=t.gitConventions??``,Z.value.setupScript=t.setupScript??``,Z.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Z.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Z.value.finalization={prompt:t.finalization?.prompt??``})}function Aa(){let e={defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return Ta.every(t=>JSON.stringify(Z.value[t])===JSON.stringify(e[t]))}function ja(e){if(e===null){Ea.value=null,Da.value=null;return}if(Da.value===null&&Aa()){ka(e),Ea.value=e,Da.value=e;return}let t=y.projects.find(t=>t.path===e),n=t&&Go(t)||e;m.dialog({title:w(`settings.copyFromConfirmTitle`),message:w(`settings.copyFromConfirm`,{project:n}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ka(e),Ea.value=e,Da.value=e}).onCancel(()=>{Ea.value=Da.value})}let Ma=e([]),Na=e([]);async function Pa(){try{let e=await fetch(`/api/skills`);e.ok&&(Ma.value=await e.json())}catch{}}function Fa(e,t){t(()=>{let t=e.trim().toLowerCase();Na.value=t?Ma.value.filter(e=>e.toLowerCase().includes(t)):Ma.value.slice()})}let Ia=e([]),La=e(!1),Ra=e(!1),za=e(!1),Ba=e(!1),Q=e(null),Va=e(``),Ha=e(``),Ua=e(``),$=e(``),Wa=e(!1),Ga=e(!1),Ka=h(()=>[...C.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),qa=[`{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 Ja(){Q.value=null,Va.value=``,Ha.value=``,Ua.value=``,$.value=``,Ba.value=!0}function Ya(e){Q.value=e.slug,Va.value=e.slug,Ha.value=e.description,Ua.value=e.content,$.value=``,Ba.value=!0}async function Xa(){$.value=``;let e=Va.value.trim(),t=Ha.value.trim();if(Q.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){$.value=w(`templates.slugInvalid`);return}if(!t){$.value=w(`templates.descriptionRequired`);return}if(!Ua.value.trim()){$.value=w(`templates.contentRequired`);return}Wa.value=!0;try{Q.value===null?await C.createTemplate({slug:e,description:t,content:Ua.value}):await C.updateTemplate(Q.value,{description:t,content:Ua.value}),Ba.value=!1}catch(e){$.value=e instanceof Error?e.message:w(`templates.createFailed`)}finally{Wa.value=!1}}function Za(){m.dialog({title:w(`templates.reloadDefaults`),message:w(`templates.reloadDefaultsConfirmMessage`),dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.reloadDefaults`),color:`primary`}}).onOk(async()=>{Ga.value=!0;try{let e=await C.reloadDefaults();m.notify({type:`positive`,message:w(`templates.reloadDefaultsSuccess`,{added:e.added.length,kept:e.kept.length}),position:`top`,timeout:4e3})}catch(e){m.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.reloadDefaultsFailed`),position:`top`})}finally{Ga.value=!1}})}async function Qa(e){m.dialog({title:w(`templates.deleteTemplate`),message:`${w(`templates.deleteConfirm`,{slug:e.slug})}\n\n${w(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await C.deleteTemplate(e.slug)}catch(e){m.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.deleteFailed`),position:`top`})}})}let $a=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function eo(e){te.value=e,localStorage.setItem(`kobo:locale`,e)}let to=h(()=>[...Re.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),no=h(()=>[...Le.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),ro=h(()=>[{label:w(`settings.useGlobal`),value:``},...to.value]),io=h(()=>ze[`claude-code`].map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),ao=h(()=>ze.codex.map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),oo=h(()=>[{name:`{{pr_number}}`,description:w(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:w(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:w(`settings.var.branchName`)},{name:`{{source_branch}}`,description:w(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:w(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:w(`settings.var.projectName`)},{name:`{{notion_url}}`,description:w(`settings.var.notionUrl`)},{name:`{{commits}}`,description:w(`settings.var.commits`)},{name:`{{diff_stats}}`,description:w(`settings.var.diffStats`)},{name:`{{tasks}}`,description:w(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:w(`settings.var.acceptanceCriteria`)}]),so=h(()=>[{label:w(`settings.mcpAutoSelect`),value:``},...y.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),co=h(()=>ce.map(e=>({label:w(e.labelKey),value:e.id}))),lo=h(()=>[{label:w(`voice.noneModel`),value:null}].concat(y.voiceModels.map(e=>({label:e.installed?`${e.name}`:`${e.name} (${w(`voice.notInstalled`)})`,value:e.name})))),uo=[{label:`auto`,value:`auto`},{label:`ar`,value:`ar`},{label:`de`,value:`de`},{label:`en`,value:`en`},{label:`es`,value:`es`},{label:`fr`,value:`fr`},{label:`hi`,value:`hi`},{label:`it`,value:`it`},{label:`ja`,value:`ja`},{label:`ko`,value:`ko`},{label:`nl`,value:`nl`},{label:`pl`,value:`pl`},{label:`pt`,value:`pt`},{label:`ru`,value:`ru`},{label:`tr`,value:`tr`},{label:`uk`,value:`uk`},{label:`vi`,value:`vi`},{label:`zh`,value:`zh`}];function fo(){fe(H.value,U.value)}let po=h(()=>Y.value<0||Y.value>=y.projects.length?null:y.projects[Y.value]??null),mo=e(``),ho=e(``);function go(){return JSON.stringify({claudeModel:se.value,codexModel:O.value,prPrompt:A.value,reviewPrompt:j.value,gitConventions:M.value,editorCommand:L.value,browserNotifications:Ee.value,audioNotifications:z.value,audioNotificationSound:H.value,audioNotificationVolume:U.value,notionStatusProperty:Ve.value,notionStatus:W.value,notionAssigneeProperty:He.value,notionUserId:G.value,notionInitialPrompt:qi.value,sentryInitialPrompt:Ji.value,claudePermissionMode:Yi.value,codexPermissionMode:Xi.value,notionMcpKey:Zi.value,sentryMcpKey:Qi.value,tags:$i.value,worktreesPath:ea.value,worktreesPrefixByProject:na.value,flattenWorkspaceList:ra.value,skillSuite:q.value,customReviewTemplate:aa.value,customAutoLoopReviewGate:oa.value,customAutoLoopGroomingIntro:sa.value,customQaPromptTemplate:ca.value,customBrainstormingInstruction:la.value,voiceEnabled:ua.value,voicePttKey:da.value,voiceLanguage:fa.value,voiceModel:J.value,voiceCommandPath:pa.value,voiceFfmpegPath:ma.value,voiceTemperature:ha.value,voicePrompt:ga.value,voiceTranslateToEnglish:_a.value,voiceSuppressNst:va.value})}function _o(){return JSON.stringify(Z.value)}let vo=h(()=>go()!==mo.value),yo=h(()=>_o()!==ho.value),bo=h(()=>E.value===`projects`?yo.value&&(po.value!==null||X.value):E.value===`templates`?!1:vo.value),xo=h(()=>E.value===`projects`?Ra.value:Wa.value);function So(){E.value===`projects`?Vo():Mo()}function Co(){ba.value=!0;let e=y.global.defaultModelByEngine??{};se.value=e[`claude-code`]??`auto`,O.value=e.codex??`auto`,A.value=y.global.prPromptTemplate,j.value=y.global.reviewPromptTemplate??``,M.value=y.global.gitConventions,L.value=y.global.editorCommand??``,Ee.value=y.global.browserNotifications??!0,z.value=y.global.audioNotifications??!0,H.value=pe(y.global.audioNotificationSound);let t=y.global.audioNotificationVolume;U.value=typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):1,Ve.value=y.global.notionStatusProperty??``,W.value=y.global.notionInProgressStatus??``,He.value=y.global.notionAssigneeProperty??``,G.value=y.global.notionUserId??``,qi.value=y.global.notionInitialPromptTemplate??``,Ji.value=y.global.sentryInitialPromptTemplate??``;{let e=y.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,n=e[`claude-code`];Yi.value=t(n)?n:`bypass`;let r=e.codex;Xi.value=t(r)?r:`bypass`}Zi.value=y.global.notionMcpKey??``,Qi.value=y.global.sentryMcpKey??``,$i.value=Array.isArray(y.global.tags)?[...y.global.tags]:[],ea.value=y.global.worktreesPath??`.worktrees`,na.value=y.global.worktreesPrefixByProject??!1,ra.value=y.global.flattenWorkspaceList??!1,q.value=y.global.skillSuite??`superpowers`,aa.value=y.global.customReviewTemplate??``,oa.value=y.global.customAutoLoopReviewGate??``,sa.value=y.global.customAutoLoopGroomingIntro??``,ca.value=y.global.customQaPromptTemplate??``,la.value=y.global.customBrainstormingInstruction??``,ua.value=y.global.voiceEnabled??!1,da.value=y.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,fa.value=y.global.voiceLanguage??`auto`,J.value=y.global.voiceModel??null,pa.value=y.global.voiceCommandPath??``,ma.value=y.global.voiceFfmpegPath??``,ha.value=typeof y.global.voiceTemperature==`number`?y.global.voiceTemperature:0,ga.value=y.global.voicePrompt??``,_a.value=y.global.voiceTranslateToEnglish??!1,va.value=y.global.voiceSuppressNonSpeechTokens??!0,ba.value=!1,mo.value=go()}s(()=>J.value,(e,t)=>{ba.value||e!==t&&(ha.value=Sa(e))});function wo(e){if(!e){Z.value={path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},Ia.value=[],ho.value=_o();return}Z.value={path:e.path,displayName:e.displayName,color:e.color??null,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,prPromptTemplate:e.prPromptTemplate,reviewPromptTemplate:e.reviewPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,devServer:{startCommand:e.devServer?.startCommand??``,stopCommand:e.devServer?.stopCommand??``},e2e:{framework:e.e2e?.framework??``,skill:e.e2e?.skill??``,prompt:e.e2e?.prompt??``},finalization:{prompt:e.finalization?.prompt??``}},ho.value=_o(),e.path&&To(e.path)}async function To(e){if(!e.trim()){Ia.value=[];return}La.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();Ia.value=n.local??n.branches??[]}catch{Ia.value=[]}finally{La.value=!1}}let Eo=null;s(()=>Z.value.path,e=>{Eo&&clearTimeout(Eo),Eo=setTimeout(()=>{To(e)},500)}),s(Y,()=>{X.value=!1,wo(po.value)});let Do=e(null);async function Oo(){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),m.notify({type:`positive`,message:w(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){m.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function ko(){Do.value?.click()}async function Ao(e){let t=e.target,n=t.files?.[0];if(n)try{m.dialog({title:w(`settings.importConfirmTitle`),message:w(`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 y.fetchSettings(),Co(),m.notify({type:`positive`,message:w(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){m.notify({type:`negative`,message:String(e),position:`top`,timeout:5e3})}})}finally{t.value=``}}async function jo(e){if(K.value===null){K.value=e;try{let t=await y.fetchGlobalDefaults(),n={prPromptTemplate:A,reviewPromptTemplate:j,gitConventions:M,notionInitialPromptTemplate:qi,sentryInitialPromptTemplate:Ji};n[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),m.notify({type:`negative`,message:w(`settings.resetFailed`),position:`top`})}finally{K.value=null}}}async function Mo(){if(await ta.value?.validate()!==!1){wa.value=!0;try{await y.updateGlobal({defaultModelByEngine:{"claude-code":se.value,codex:O.value},prPromptTemplate:A.value,reviewPromptTemplate:j.value,gitConventions:M.value,editorCommand:L.value,browserNotifications:Ee.value,audioNotifications:z.value,audioNotificationSound:H.value,audioNotificationVolume:U.value,notionStatusProperty:Ve.value,notionInProgressStatus:W.value,notionAssigneeProperty:He.value,notionUserId:G.value,notionInitialPromptTemplate:qi.value,sentryInitialPromptTemplate:Ji.value,defaultPermissionModeByEngine:{"claude-code":Yi.value,codex:Xi.value},notionMcpKey:Zi.value,sentryMcpKey:Qi.value,tags:$i.value,worktreesPath:ea.value,worktreesPrefixByProject:na.value,flattenWorkspaceList:ra.value,skillSuite:q.value,customReviewTemplate:aa.value,customAutoLoopReviewGate:oa.value,customAutoLoopGroomingIntro:sa.value,customQaPromptTemplate:ca.value,customBrainstormingInstruction:la.value,voiceEnabled:ua.value,voicePttKey:da.value,voiceLanguage:fa.value,voiceModel:J.value,voiceCommandPath:pa.value.trim(),voiceFfmpegPath:ma.value.trim(),voiceTemperature:ha.value,voicePrompt:ga.value,voiceTranslateToEnglish:_a.value,voiceSuppressNonSpeechTokens:va.value}),mo.value=go(),m.notify({type:`positive`,message:w(`settings.saved`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.saveError`),position:`top`})}finally{wa.value=!1}}}async function No(e){ya.value=e,Ro();try{await y.downloadVoiceModel(e)}catch{m.notify({type:`negative`,message:w(`voice.downloadFailed`),position:`top`})}finally{ya.value=null,zo()}}async function Po(e){ya.value=e;try{await y.deleteVoiceModel(e),J.value===e&&(J.value=null)}catch{m.notify({type:`negative`,message:w(`voice.deleteFailed`),position:`top`})}finally{ya.value=null}}async function Fo(e){try{await y.cancelVoiceModelDownload(e)}catch{m.notify({type:`negative`,message:w(`voice.cancelFailed`),position:`top`})}}function Io(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n<10?n.toFixed(1):Math.round(n)} ${t[r]}`}let Lo=null;function Ro(){Lo||=setInterval(()=>{y.fetchVoiceModels().catch(()=>{})},800)}function zo(){Lo&&=(clearInterval(Lo),null)}async function Bo(e){try{await navigator.clipboard.writeText(e),m.notify({type:`positive`,message:w(`common.copied`),position:`top`,timeout:1200})}catch{m.notify({type:`negative`,message:w(`common.copyFailed`),position:`top`})}}async function Vo(){if(!Z.value.path.trim()){m.notify({type:`negative`,message:w(`settings.projectPathRequired`),position:`top`});return}Ra.value=!0;try{await y.upsertProject(Z.value.path.trim(),{displayName:Z.value.displayName,color:Z.value.color,defaultSourceBranch:Z.value.defaultSourceBranch,defaultModel:Z.value.defaultModel,prPromptTemplate:Z.value.prPromptTemplate,reviewPromptTemplate:Z.value.reviewPromptTemplate,notionInitialPromptTemplate:Z.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Z.value.sentryInitialPromptTemplate,gitConventions:Z.value.gitConventions,setupScript:Z.value.setupScript,devServer:Z.value.devServer,e2e:Z.value.e2e,finalization:Z.value.finalization}),X.value=!1;let e=y.projects.findIndex(e=>e.path===Z.value.path.trim());e>=0&&(Y.value=e),ho.value=_o(),m.notify({type:`positive`,message:w(`settings.projectSaved`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.projectSaveError`),position:`top`})}finally{Ra.value=!1}}async function Ho(){if(po.value){za.value=!0;try{await y.deleteProject(po.value.path),Y.value=-1,X.value=!1,wo(null),m.notify({type:`positive`,message:w(`settings.projectDeleted`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.projectDeleteError`),position:`top`})}finally{za.value=!1}}}function Uo(){Y.value=-1,X.value=!0,wo(null),Ea.value=null,Da.value=null}function Wo(e){X.value=!1,Y.value=e,Ea.value=null,Da.value=null}function Go(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Ko=e([]);function qo(e,t){t(()=>{Ko.value=e?Ia.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):Ia.value})}return i(async()=>{await Promise.all([y.fetchSettings(),y.fetchActiveMcpServers(),Pa()]),await y.fetchVoiceModels(),await y.fetchVoiceRuntime(),Co(),Ki().catch(()=>{})}),a(()=>{Eo&&clearTimeout(Eo),zo()}),(e,i)=>(t(),l(Be,{class:`settings-page`},{default:c(()=>[v(`div`,Ke,[v(`aside`,qe,[v(`div`,Je,S(e.$t(`settings.title`)),1),d(De,{dense:``,class:`settings-nav__list`},{default:c(()=>[(t(!0),g(_,null,r(re.value,e=>n((t(),l(we,{key:e.value,clickable:``,class:b([`settings-nav__item`,{"settings-nav__item--active":E.value===e.value}]),onClick:t=>E.value=e.value},{default:c(()=>[d(F,{avatar:``,class:`settings-nav__icon`},{default:c(()=>[d(D,{name:e.icon,size:`16px`},null,8,[`name`])]),_:2},1024),d(F,{class:`settings-nav__label`},{default:c(()=>[f(S(e.label),1)]),_:2},1024)]),_:2},1032,[`class`,`onClick`])),[[_e,!1]])),128))]),_:1})]),v(`main`,Ye,[v(`header`,Xe,[v(`h2`,Ze,S(ie.value),1)]),v(`div`,Qe,[n(v(`div`,$e,[n(v(`div`,et,[v(`div`,tt,S(e.$t(`settings.language`)),1),d(V,{"model-value":p(te),options:$a,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":eo},null,8,[`model-value`])],512),[[T,E.value===`general`]]),n(v(`div`,nt,[v(`div`,rt,S(e.$t(`settings.workspaceListSection`)),1),d(P,{modelValue:ra.value,"onUpdate:modelValue":i[0]||=e=>ra.value=e,label:e.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),v(`div`,it,S(e.$t(`settings.flattenWorkspaceListHint`)),1)],512),[[T,E.value===`general`]]),n(v(`div`,at,[v(`div`,ot,S(e.$t(`settings.skillSuite.section`)),1),d(xe,{modelValue:q.value,"onUpdate:modelValue":i[1]||=e=>q.value=e,options:[{label:e.$t(`settings.skillSuite.superpowers`),value:`superpowers`},{label:e.$t(`settings.skillSuite.gstack`),value:`gstack`},{label:e.$t(`settings.skillSuite.superpowersGstack`),value:`superpowers+gstack`},{label:e.$t(`settings.skillSuite.custom`),value:`custom`}],type:`radio`,color:`indigo-4`,dense:``,dark:``,inline:``},null,8,[`modelValue`,`options`]),v(`div`,st,S(e.$t(ia.value)),1),d(k,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:e.$t(`settings.skillSuite.reloadDefaults`),disable:q.value!==`custom`,class:`q-mt-sm`,onClick:xa},null,8,[`label`,`disable`])],512),[[T,E.value===`skills`]]),E.value===`skills`&&q.value===`custom`?(t(),g(`div`,ct,[v(`div`,lt,S(e.$t(`settings.skillSuite.customPrompts`)),1),v(`div`,ut,S(e.$t(`settings.skillSuite.reviewTemplate`)),1),d(N,{modelValue:aa.value,"onUpdate:modelValue":i[2]||=e=>aa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,dt,S(e.$t(`settings.skillSuite.autoLoopReviewGate`)),1),d(N,{modelValue:oa.value,"onUpdate:modelValue":i[3]||=e=>oa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,ft,S(e.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),d(N,{modelValue:sa.value,"onUpdate:modelValue":i[4]||=e=>sa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,pt,S(e.$t(`settings.skillSuite.qaTemplate`)),1),d(N,{modelValue:ca.value,"onUpdate:modelValue":i[5]||=e=>ca.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,mt,S(e.$t(`settings.skillSuite.brainstormingInstruction`)),1),d(N,{modelValue:la.value,"onUpdate:modelValue":i[6]||=e=>la.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):u(``,!0),n(v(`div`,ht,[v(`div`,gt,S(e.$t(`settings.defaultModelClaude`)),1),d(V,{modelValue:se.value,"onUpdate:modelValue":i[7]||=e=>se.value=e,options:to.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,_t,S(e.$t(`settings.defaultModelCodex`)),1),d(V,{modelValue:O.value,"onUpdate:modelValue":i[8]||=e=>O.value=e,options:no.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,vt,S(e.$t(`settings.defaultPermissionModeClaude`)),1),v(`div`,yt,S(e.$t(`settings.defaultPermissionModeHint`)),1),d(V,{modelValue:Yi.value,"onUpdate:modelValue":i[9]||=e=>Yi.value=e,options:io.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,bt,S(e.$t(`settings.defaultPermissionModeCodex`)),1),d(V,{modelValue:Xi.value,"onUpdate:modelValue":i[10]||=e=>Xi.value=e,options:ao.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])],512),[[T,E.value===`agents`]]),n(v(`div`,xt,[v(`div`,St,S(e.$t(`settings.activityFeed`)),1),d(P,{"model-value":p(y).showVerboseSystemMessages,label:e.$t(`settings.verboseMessages`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":i[11]||=e=>p(y).toggleVerboseSystemMessages()},null,8,[`model-value`,`label`])],512),[[T,E.value===`general`]]),n(v(`div`,Ct,[v(`div`,wt,S(e.$t(`settings.notifications`)),1),v(`div`,Tt,[d(P,{modelValue:Ee.value,"onUpdate:modelValue":i[12]||=e=>Ee.value=e,label:e.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),d(P,{modelValue:z.value,"onUpdate:modelValue":i[13]||=e=>z.value=e,label:e.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),v(`div`,Et,[d(V,{modelValue:H.value,"onUpdate:modelValue":i[14]||=e=>H.value=e,options:co.value,label:e.$t(`settings.notificationSound`),disable:!z.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),d(k,{flat:``,dense:``,color:`indigo-4`,icon:`play_arrow`,label:e.$t(`settings.notificationSoundPreview`),disable:!z.value,onClick:fo},null,8,[`label`,`disable`])]),v(`div`,Dt,[v(`div`,Ot,S(e.$t(`settings.notificationVolume`)),1),d(Ge,{modelValue:U.value,"onUpdate:modelValue":i[15]||=e=>U.value=e,min:0,max:1,step:.05,disable:!z.value,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`disable`]),v(`div`,kt,S(Math.round(U.value*100))+`% `,1)])],512),[[T,E.value===`notifications`]]),n(v(`div`,At,[v(`div`,jt,[v(`div`,Mt,S(e.$t(`voice.sectionRuntime`)),1),d(B),d(k,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`grey-5`,label:p(w)(`common.refresh`),onClick:i[16]||=e=>p(y).fetchVoiceRuntime()},null,8,[`label`])]),v(`div`,Nt,[v(`div`,Pt,[d(D,{name:p(y).voiceRuntime?.available?`check_circle`:`cancel`,color:p(y).voiceRuntime?.available?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),v(`span`,{class:b([`text-caption`,p(y).voiceRuntime?.available?`text-green-5`:`text-red-5`])},S(p(y).voiceRuntime?.available?p(w)(`voice.runtimeReady`,{command:p(y).voiceRuntime?.command??`whisper-cli`}):p(w)(`voice.runtimeMissing`,{command:p(y).voiceRuntime?.command??`whisper-cli`})),3)]),v(`div`,Ft,[d(D,{name:p(y).voiceRuntime?.ffmpegAvailable?`check_circle`:`cancel`,color:p(y).voiceRuntime?.ffmpegAvailable?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),v(`span`,{class:b([`text-caption`,p(y).voiceRuntime?.ffmpegAvailable?`text-green-5`:`text-red-5`])},S(p(y).voiceRuntime?.ffmpegAvailable?p(w)(`voice.ffmpegReady`):p(w)(`voice.ffmpegMissing`)),3)])]),d(R,{dense:``,dark:``,icon:`help_outline`,label:e.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:c(()=>[v(`div`,It,[v(`div`,Lt,S(e.$t(`voice.installGuideIntro`)),1),v(`div`,Rt,[v(`a`,zt,S(e.$t(`voice.installLink`)),1)]),v(`div`,Bt,S(e.$t(`voice.installGuideUbuntuTitle`)),1),i[71]||=v(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
|
|
1
|
+
import{$ as e,F as t,G as n,L as r,M as i,N as a,S as o,U as s,W as c,d as l,f as u,g as d,h as f,it as p,k as m,l as h,p as g,r as _,u as v,v as y,vt as b,x,xt as S,y as C,yt as ee}from"./runtime-core.esm-bundler-DPcTPMmX.js";import{N as w,P as te,R as ne,V as T,i as E,k as re,n as ie,r as ae,t as D}from"./QIcon-0rjEivgj.js";import{r as oe}from"./use-id-BQW6DfJU.js";import{L as se,R as O,a as ce,c as le,i as ue,l as de,n as fe,o as pe,s as me}from"./notifications-BzyK_kYE.js";import{n as he,r as ge}from"./QRadio-BEsMlsx1.js";import{c as _e,t as k}from"./QBtn-CLU6snCm.js";import{n as ve}from"./vue-i18n-cyuEW5NY.js";import{i as A,o as j,r as M,t as N}from"./QInput-Ciqjq5-e.js";import{t as P}from"./QToggle-aBvIHg6j.js";import{h as ye,m as be,t as xe,v as Se,y as Ce}from"./index-DRHsozfK.js";import{n as we,t as F}from"./QItemSection-DZnyqPM3.js";import{t as I}from"./QItemLabel-B0tYxHQg.js";import{d as L,t as Te}from"./QTooltip-DdpeVKGV.js";import{t as R}from"./QExpansionItem-BFqbf9C7.js";import{t as Ee}from"./TouchPan-DPBZDRzA.js";import{t as z}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as B}from"./QSpace-BrtkvWzZ.js";import{t as De}from"./QList-MfhZa-uv.js";import{t as Oe}from"./ClosePopup-C5EF3QrA.js";import{t as ke}from"./use-quasar-C5gKpYwL.js";import{a as Ae,i as je,n as Me,o as Ne,r as Pe,t as Fe}from"./QChip-DSMeriN6.js";import{t as Ie}from"./project-color-d_h7ZYoM.js";import{a as V,n as Le,r as Re,t as ze}from"./permissionModes-B1595Yfm.js";import{t as Be}from"./QPage-CGYPttdA.js";var H=`q-slider__marker-labels`,U=e=>({value:e}),Ve=({marker:e})=>o(`div`,{key:e.value,style:e.style,class:e.classes},e.label),W=[34,37,40,33,39,38],He={...ae,...j,min:{type:Number,default:0},max:{type:Number,default:100},innerMin:Number,innerMax:Number,step:{type:Number,default:1,validator:e=>e>=0},snap:Boolean,vertical:Boolean,reverse:Boolean,color:String,markerLabelsClass:String,label:Boolean,labelColor:String,labelTextColor:String,labelAlways:Boolean,switchLabelSide:Boolean,markers:[Boolean,Number],markerLabels:[Boolean,Array,Object,Function],switchMarkerLabelsSide:Boolean,trackImg:String,trackColor:String,innerTrackImg:String,innerTrackColor:String,selectionColor:String,selectionImg:String,thumbSize:{type:String,default:`20px`},trackSize:{type:String,default:`4px`},disable:Boolean,readonly:Boolean,dense:Boolean,tabindex:[String,Number],thumbColor:String,thumbPath:{type:String,default:`M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0`}},G=[`pan`,`update:modelValue`,`change`];function Ue({updateValue:t,updatePosition:n,getDragging:r,formAttrs:i}){let{props:a,emit:s,slots:c,proxy:{$q:l}}=C(),u=ie(a,l),d=A(i),f=e(!1),p=e(!1),g=e(!1),_=e(!1),v=h(()=>a.vertical===!0?`--v`:`--h`),y=h(()=>`-`+(a.switchLabelSide===!0?`switched`:`standard`)),b=h(()=>a.vertical===!0?a.reverse===!0:a.reverse!==(l.lang.rtl===!0)),x=h(()=>isNaN(a.innerMin)===!0||a.innerMin<a.min?a.min:a.innerMin),S=h(()=>isNaN(a.innerMax)===!0||a.innerMax>a.max?a.max:a.innerMax),ee=h(()=>a.disable!==!0&&a.readonly!==!0&&x.value<S.value),w=h(()=>{if(a.step===0)return e=>e;let e=(String(a.step).trim().split(`.`)[1]||``).length;return t=>parseFloat(t.toFixed(e))}),te=h(()=>a.step===0?1:a.step),ne=h(()=>ee.value===!0?a.tabindex||0:-1),T=h(()=>a.max-a.min),ae=h(()=>S.value-x.value),D=h(()=>Ce(x.value)),oe=h(()=>Ce(S.value)),ce=h(()=>a.vertical===!0?b.value===!0?`bottom`:`top`:b.value===!0?`right`:`left`),le=h(()=>a.vertical===!0?`height`:`width`),ue=h(()=>a.vertical===!0?`width`:`height`),de=h(()=>a.vertical===!0?`vertical`:`horizontal`),fe=h(()=>{let e={role:`slider`,"aria-valuemin":x.value,"aria-valuemax":S.value,"aria-orientation":de.value,"data-step":a.step};return a.disable===!0?e[`aria-disabled`]=`true`:a.readonly===!0&&(e[`aria-readonly`]=`true`),e}),pe=h(()=>`q-slider q-slider${v.value} q-slider--${f.value===!0?``:`in`}active inline no-wrap `+(a.vertical===!0?`row`:`column`)+(a.disable===!0?` disabled`:` q-slider--enabled`+(ee.value===!0?` q-slider--editable`:``))+(g.value===`both`?` q-slider--focus`:``)+(a.label||a.labelAlways===!0?` q-slider--label`:``)+(a.labelAlways===!0?` q-slider--label-always`:``)+(u.value===!0?` q-slider--dark`:``)+(a.dense===!0?` q-slider--dense q-slider--dense`+v.value:``));function me(e){let t=`q-slider__`+e;return`${t} ${t}${v.value} ${t}${v.value}${y.value}`}function he(e){let t=`q-slider__`+e;return`${t} ${t}${v.value}`}let ge=h(()=>{let e=a.selectionColor||a.color;return`q-slider__selection absolute`+(e===void 0?``:` text-${e}`)}),_e=h(()=>he(`markers`)+` absolute overflow-hidden`),k=h(()=>he(`track-container`)),ve=h(()=>me(`pin`)),j=h(()=>me(`label`)),M=h(()=>me(`text-container`)),N=h(()=>me(`marker-labels-container`)+(a.markerLabelsClass===void 0?``:` ${a.markerLabelsClass}`)),P=h(()=>`q-slider__track relative-position no-outline`+(a.trackColor===void 0?``:` bg-${a.trackColor}`)),ye=h(()=>{let e={[ue.value]:a.trackSize};return a.trackImg!==void 0&&(e.backgroundImage=`url(${a.trackImg}) !important`),e}),be=h(()=>`q-slider__inner absolute`+(a.innerTrackColor===void 0?``:` bg-${a.innerTrackColor}`)),xe=h(()=>{let e=oe.value-D.value,t={[ce.value]:`${100*D.value}%`,[le.value]:e===0?`2px`:`${100*e}%`};return a.innerTrackImg!==void 0&&(t.backgroundImage=`url(${a.innerTrackImg}) !important`),t});function Se(e){let{min:t,max:n,step:r}=a,i=t+e*(n-t);if(r>0){let e=(i-x.value)%r;i+=(Math.abs(e)>=r/2?(e<0?-1:1)*r:0)-e}return i=w.value(i),L(i,x.value,S.value)}function Ce(e){return T.value===0?0:(e-a.min)/T.value}function we(e,t){let n=re(e),r=a.vertical===!0?L((n.top-t.top)/t.height,0,1):L((n.left-t.left)/t.width,0,1);return L(b.value===!0?1-r:r,D.value,oe.value)}let F=h(()=>se(a.markers)===!0?a.markers:te.value),I=h(()=>{let e=[],t=F.value,n=a.max,r=a.min;do e.push(r),r+=t;while(r<n);return e.push(n),e}),Te=h(()=>{let e=` ${H}${v.value}-`;return`q-slider__marker-labels${e}${a.switchMarkerLabelsSide===!0?`switched`:`standard`}${e}${b.value===!0?`rtl`:`ltr`}`}),R=h(()=>a.markerLabels===!1?null:De(a.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:Te.value+(e.classes===void 0?``:` `+e.classes),style:{...Oe(e.value),...e.style||{}}}))),z=h(()=>({markerList:R.value,markerMap:ke.value,classes:Te.value,getStyle:Oe})),B=h(()=>{let e=ae.value===0?`2px`:100*F.value/ae.value;return{...xe.value,backgroundSize:a.vertical===!0?`2px ${e}%`:`${e}% 2px`}});function De(e){if(e===!1)return null;if(e===!0)return I.value.map(U);if(typeof e==`function`)return I.value.map(t=>{let n=e(t);return O(n)===!0?{...n,value:t}:{value:t,label:n}});let t=({value:e})=>e>=a.min&&e<=a.max;return Array.isArray(e)===!0?e.map(e=>O(e)===!0?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return O(n)===!0?{...n,value:r}:{value:r,label:n}}).filter(t)}function Oe(e){return{[ce.value]:`${100*(e-a.min)/T.value}%`}}let ke=h(()=>{if(a.markerLabels===!1)return null;let e={};return R.value.forEach(t=>{e[t.value]=t}),e});function Ae(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](z.value);let e=c[`marker-label`]||Ve;return R.value.map(t=>e({marker:t,...z.value}))}let je=h(()=>[[Ee,Me,void 0,{[de.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function Me(e){e.isFinal===!0?(_.value!==void 0&&(n(e.evt),e.touch===!0&&t(!0),_.value=void 0,s(`pan`,`end`)),f.value=!1,g.value=!1):e.isFirst===!0?(_.value=r(e.evt),n(e.evt),t(),f.value=!0,s(`pan`,`start`)):(n(e.evt),t())}function Ne(){g.value=!1}function Pe(e){n(e,r(e)),t(),p.value=!0,f.value=!0,document.addEventListener(`mouseup`,Fe,!0)}function Fe(){p.value=!1,f.value=!1,t(!0),Ne(),document.removeEventListener(`mouseup`,Fe,!0)}function Ie(e){n(e,r(e)),t(!0)}function V(e){W.includes(e.keyCode)&&t(!0)}function Le(e){if(a.vertical===!0)return null;let t=l.lang.rtl===a.reverse?e:1-e;return{transform:`translateX(calc(${2*t-1} * ${a.thumbSize} / 2 + ${50-100*t}%))`}}function Re(e){let t=h(()=>p.value===!1&&(g.value===e.focusValue||g.value===`both`)?` q-slider--focus`:``),n=h(()=>`q-slider__thumb q-slider__thumb${v.value} q-slider__thumb${v.value}-${b.value===!0?`rtl`:`ltr`} absolute non-selectable`+t.value+(e.thumbColor.value===void 0?``:` text-${e.thumbColor.value}`)),r=h(()=>({width:a.thumbSize,height:a.thumbSize,[ce.value]:`${100*e.ratio.value}%`,zIndex:g.value===e.focusValue?2:void 0})),i=h(()=>e.labelColor.value===void 0?``:` text-${e.labelColor.value}`),s=h(()=>Le(e.ratio.value)),c=h(()=>`q-slider__text`+(e.labelTextColor.value===void 0?``:` text-${e.labelTextColor.value}`));return()=>{let t=[o(`svg`,{class:`q-slider__thumb-shape absolute-full`,viewBox:`0 0 20 20`,"aria-hidden":`true`},[o(`path`,{d:a.thumbPath})]),o(`div`,{class:`q-slider__focus-ring fit`})];return(a.label===!0||a.labelAlways===!0)&&(t.push(o(`div`,{class:ve.value+` absolute fit no-pointer-events`+i.value},[o(`div`,{class:j.value,style:{minWidth:a.thumbSize}},[o(`div`,{class:M.value,style:s.value},[o(`span`,{class:c.value},e.label.value)])])])),a.name!==void 0&&a.disable!==!0&&d(t,`push`)),o(`div`,{class:n.value,style:r.value,...e.getNodeData()},t)}}function ze(e,t,n,r){let i=[];a.innerTrackColor!==`transparent`&&i.push(o(`div`,{key:`inner`,class:be.value,style:xe.value})),a.selectionColor!==`transparent`&&i.push(o(`div`,{key:`selection`,class:ge.value,style:e.value})),a.markers!==!1&&i.push(o(`div`,{key:`marker`,class:_e.value,style:B.value})),r(i);let s=[E(`div`,{key:`trackC`,class:k.value,tabindex:t.value,...n.value},[o(`div`,{class:P.value,style:ye.value},i)],`slide`,ee.value,()=>je.value)];return a.markerLabels!==!1&&s[a.switchMarkerLabelsSide===!0?`unshift`:`push`](o(`div`,{key:`markerL`,class:N.value},Ae())),s}return m(()=>{document.removeEventListener(`mouseup`,Fe,!0)}),{state:{active:f,focus:g,preventFocus:p,dragging:_,editable:ee,classes:pe,tabindex:ne,attributes:fe,roundValueFn:w,keyStep:te,trackLen:T,innerMin:x,innerMinRatio:D,innerMax:S,innerMaxRatio:oe,positionProp:ce,sizeProp:le,isReversed:b},methods:{onActivate:Pe,onMobileClick:Ie,onBlur:Ne,onKeyup:V,getContent:ze,getThumbRenderFn:Re,convertRatioToModel:Se,convertModelToRatio:Ce,getDraggingRatio:we}}}var We=()=>({}),Ge=te({name:`QSlider`,props:{...He,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:G,setup(t,{emit:n}){let{proxy:{$q:r}}=C(),{state:i,methods:a}=Ue({updateValue:v,updatePosition:b,getDragging:y,formAttrs:M(t)}),c=e(null),l=e(0),u=e(0);function d(){u.value=t.modelValue===null?i.innerMin.value:L(t.modelValue,i.innerMin.value,i.innerMax.value)}s(()=>`${t.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,d),d();let f=h(()=>a.convertModelToRatio(u.value)),p=h(()=>i.active.value===!0?l.value:f.value),m=h(()=>{let e={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(p.value-i.innerMinRatio.value)}%`};return t.selectionImg!==void 0&&(e.backgroundImage=`url(${t.selectionImg}) !important`),e}),g=a.getThumbRenderFn({focusValue:!0,getNodeData:We,ratio:p,label:h(()=>t.labelValue===void 0?u.value:t.labelValue),thumbColor:h(()=>t.thumbColor||t.color),labelColor:h(()=>t.labelColor),labelTextColor:h(()=>t.labelTextColor)}),_=h(()=>i.editable.value===!0?r.platform.is.mobile===!0?{onClick:a.onMobileClick}:{onMousedown:a.onActivate,onFocus:x,onBlur:a.onBlur,onKeydown:S,onKeyup:a.onKeyup}:{});function v(e){u.value!==t.modelValue&&n(`update:modelValue`,u.value),e===!0&&n(`change`,u.value)}function y(){return c.value.getBoundingClientRect()}function b(e,n=i.dragging.value){let r=a.getDraggingRatio(e,n);u.value=a.convertRatioToModel(r),l.value=t.snap!==!0||t.step===0?r:a.convertModelToRatio(u.value)}function x(){i.focus.value=!0}function S(e){if(W.includes(e.keyCode)===!1)return;w(e);let n=([34,33].includes(e.keyCode)?10:1)*i.keyStep.value,r=([34,37,40].includes(e.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(t.vertical===!0?-1:1)*n;u.value=L(i.roundValueFn.value(u.value+r),i.innerMin.value,i.innerMax.value),v()}return()=>{let e=a.getContent(m,i.tabindex,_,e=>{e.push(g())});return o(`div`,{ref:c,class:i.classes.value+(t.modelValue===null?` q-slider--no-value`:``),...i.attributes.value,"aria-valuenow":t.modelValue},e)}}}),Ke={class:`settings-layout`},qe={class:`settings-nav`},Je={class:`settings-nav__title`},Ye={class:`settings-content`},Xe={class:`settings-content__header`},Ze={class:`settings-content__title`},Qe={class:`settings-panels`},$e={class:`settings-global-wrap`},et={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},tt={class:`text-subtitle2 q-mb-sm`},nt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},rt={class:`text-subtitle2 q-mb-sm`},it={class:`text-caption text-grey-7 q-mt-xs`},at={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ot={class:`text-subtitle2 q-mb-sm`},st={class:`text-caption text-grey-6 q-mt-xs`},ct={key:0,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},lt={class:`text-subtitle2 q-mb-sm`},ut={class:`text-caption text-grey-6 q-mb-xs q-mt-sm`},dt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},ft={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},pt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},mt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},ht={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gt={class:`text-subtitle2 q-mb-sm`},_t={class:`text-subtitle2 q-mb-sm q-mt-md`},vt={class:`text-subtitle2 q-mb-sm q-mt-md`},yt={class:`text-caption text-grey-7 q-mb-sm`},bt={class:`text-subtitle2 q-mb-sm q-mt-md`},xt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},St={class:`text-subtitle2 q-mb-sm`},Ct={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wt={class:`text-subtitle2 q-mb-sm`},Tt={class:`column q-gutter-xs`},Et={class:`row items-center q-gutter-sm q-mt-sm`},Dt={class:`row items-center q-gutter-sm q-mt-sm`},Ot={class:`text-grey-5 text-caption`,style:{"min-width":`80px`}},kt={class:`text-grey-5 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},At={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jt={class:`row items-center q-mb-sm`},Mt={class:`text-subtitle2`},Nt={class:`column q-gutter-xs`},Pt={class:`row items-center q-gutter-sm`},Ft={class:`row items-center q-gutter-sm`},It={class:`q-pa-sm text-caption text-grey-5`},Lt={class:`q-mb-sm`},Rt={class:`q-mb-sm`},zt={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-indigo-4`},Bt={class:`q-mb-xs text-grey-4`},Vt={class:`q-mb-sm`},Ht={class:`q-mb-xs text-grey-4`},Ut={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Wt={class:`text-subtitle2 q-mb-sm`},Gt={class:`row q-col-gutter-sm`},Kt={class:`col-12 col-sm-6`},qt={class:`col-12 col-sm-6`},Jt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yt={class:`text-subtitle2 q-mb-sm`},Xt={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},Zt={class:`text-caption text-grey-5 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},Qt={class:`column q-gutter-sm`},$t={class:`row items-center q-gutter-sm`},en={class:`text-body2 text-grey-3`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},tn={class:`text-caption text-grey-6`},nn={key:0,class:`q-mt-sm`},rn={class:`row items-center q-mt-xs`},an={class:`text-caption text-grey-6`},on={class:`text-caption text-indigo-4`},sn={key:1,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},cn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ln={class:`text-subtitle2 q-mb-sm`},un={class:`q-pa-sm column q-gutter-sm`},dn={class:`row items-center q-gutter-sm`},fn={class:`text-caption text-grey-5`},pn={class:`text-caption text-grey-5`,style:{"min-width":`40px`,"text-align":`right`}},mn={class:`text-caption text-grey-7`},hn={class:`text-caption text-grey-7`},gn={class:`text-caption text-grey-7`},_n={class:`text-caption text-grey-7`},vn={class:`q-pa-sm column q-gutter-sm`},yn={key:1,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},bn={class:`row items-center q-mb-sm`},xn={class:`text-subtitle2`},Sn={class:`text-caption text-grey-7 q-mb-sm`},Cn={class:`q-mb-sm`},wn={class:`row items-center q-mb-sm q-mt-md`},Tn={class:`text-subtitle2`},En={class:`text-caption text-grey-7 q-mb-sm`},Dn={class:`row items-center q-mb-sm q-mt-md`},On={class:`text-subtitle2`},kn={class:`text-caption text-grey-7 q-mb-sm`},An={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jn={class:`text-subtitle2 q-mb-sm`},Mn={class:`text-caption text-grey-7 q-mb-sm`},Nn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pn={class:`text-subtitle2 q-mb-sm`},Fn={class:`text-caption text-grey-7 q-mb-sm`},In={class:`q-mb-sm`},Ln={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Rn={class:`q-mb-sm`},zn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Bn={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Vn={class:`text-subtitle2 q-mb-sm`},Hn={class:`text-caption text-grey-7 q-mb-sm`},Un={class:`q-mb-sm`},Wn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Gn={class:`q-mb-sm`},Kn={class:`field-label-sub text-caption q-mb-xs text-grey-7`},qn={class:`row items-center q-mb-sm`},Jn={class:`text-subtitle2`},Yn={class:`text-caption text-grey-7 q-mb-xs`},Xn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zn={class:`text-subtitle2 q-mb-sm`},Qn={class:`text-caption text-grey-7 q-mb-sm`},$n={class:`q-mb-sm`},er={class:`field-label-sub text-caption q-mb-xs text-grey-7`},tr={class:`q-mb-sm`},nr={class:`row items-center q-mb-xs`},rr={class:`field-label-sub text-caption text-grey-7 col`},ir=[`src`,`alt`],ar={key:1,class:`text-caption text-grey-7 q-py-sm`},or={key:0,class:`text-caption text-orange-5 q-mb-xs`},sr={key:3,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},cr={class:`text-subtitle2 q-mb-sm`},lr={class:`row items-center q-mb-sm`},ur={class:`text-subtitle2`},dr={class:`text-caption text-grey-7 q-mb-xs`},fr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pr={class:`text-subtitle2 q-mb-sm`},mr={class:`text-caption text-grey-7 q-mb-sm`},hr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gr={class:`text-subtitle2 q-mb-sm`},_r={class:`text-caption text-grey-7 q-mb-sm`},vr={class:`text-caption text-grey-7 q-mt-xs`},yr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},br={class:`text-subtitle2 q-mb-sm`},xr={class:`text-caption text-grey-7 q-mb-sm`},Sr={class:`row q-gutter-sm`},Cr={class:`row justify-end settings-sticky-actions`},wr={class:`q-pa-none`},Tr={class:`row q-gutter-md`,style:{"min-height":`500px`}},Er={class:`project-list-col`},Dr={class:`settings-card rounded-borders`,style:{height:`100%`}},Or={class:`q-pa-sm`},kr={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},Ar={key:0,class:`q-pa-md text-center text-caption text-grey-8`},jr={class:`q-pa-sm`},Mr={class:`project-form-col`},Nr={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Pr={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},Fr={key:0,class:`q-mb-md`},Ir={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Lr={class:`text-caption text-grey-7 q-mt-xs`},Rr={class:`q-mb-md`},zr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Br={class:`q-mb-md`},Vr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Hr={class:`q-mb-md`},Ur={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Wr={class:`row items-center q-gutter-xs`},Gr={class:`text-caption text-grey-6 q-mt-xs`},Kr={class:`q-mb-md`},qr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Jr={class:`q-mb-md`},Yr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xr={class:`q-mb-md`},Zr={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Qr={class:`q-mb-md`},$r={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ei={class:`q-mb-md`},ti={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ni={class:`text-caption text-grey-7 q-mb-xs`},ri={class:`q-mb-md`},ii={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ai={class:`text-caption text-grey-7 q-mb-xs`},oi={class:`q-mb-md`},si={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ci={class:`text-caption text-grey-7 q-mt-xs`},li={class:`q-mb-lg`},ui={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},di={class:`text-caption text-grey-7 q-mt-xs`},fi={class:`q-mb-lg`},pi={class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},mi={class:`q-mb-md`},hi={class:`field-label-sub text-caption q-mb-xs text-grey-7`},gi={class:`field-label-sub text-caption q-mb-xs text-grey-7`},_i={class:`q-mb-lg`},vi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},yi={class:`text-caption text-grey-7 q-mb-sm`},bi={class:`q-mb-lg`},xi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Si={class:`text-caption text-grey-7 q-mb-sm`},Ci={class:`row items-center q-gutter-sm settings-sticky-actions`},wi={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Ti={class:`text-body2 text-grey-8`},Ei={class:`q-pa-none`},Di={class:`settings-card rounded-borders q-pa-lg`},Oi={class:`row items-center justify-between q-mb-md`},ki={class:`text-subtitle1 text-weight-medium text-grey-3`},Ai={class:`row q-gutter-sm items-center`},ji={key:0,class:`text-grey-6 q-py-lg text-center`},Mi={key:1,class:`column q-gutter-sm`},Ni={class:`row items-start justify-between no-wrap`},Pi={class:`col`},Fi={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},Ii={class:`text-caption text-grey-5 q-mt-xs`},Li={class:`row no-wrap q-gutter-xs`},Ri={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},zi={key:0,class:`settings-savebar`},Bi={class:`settings-savebar__label`},Vi={class:`text-subtitle1`},Hi={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},Ui={key:0,class:`text-negative text-caption`},Wi=z(y({__name:`SettingsPage`,setup(o){let m=ke(),y=me(),C=be(),{t:w,locale:te}=ve(),E=e(`general`),re=h(()=>[{value:`general`,icon:`tune`,label:w(`settings.nav.general`)},{value:`agents`,icon:`smart_toy`,label:w(`settings.nav.agents`)},{value:`skills`,icon:`extension`,label:w(`settings.nav.skills`)},{value:`prompts`,icon:`text_snippet`,label:w(`settings.nav.prompts`)},{value:`notion`,icon:`integration_instructions`,label:w(`settings.nav.notion`)},{value:`sentry`,icon:`bug_report`,label:w(`settings.nav.sentry`)},{value:`voice`,icon:`mic`,label:w(`settings.nav.voice`)},{value:`notifications`,icon:`notifications`,label:w(`settings.nav.notifications`)},{value:`worktrees`,icon:`account_tree`,label:w(`settings.nav.worktrees`)},{value:`projects`,icon:`folder`,label:w(`settings.projects`)},{value:`templates`,icon:`description`,label:w(`templates.title`)},{value:`export`,icon:`import_export`,label:w(`settings.nav.export`)}]),ie=h(()=>re.value.find(e=>e.value===E.value)?.label??``),ae=h(()=>[`general`,`agents`,`skills`,`prompts`,`notion`,`sentry`,`voice`,`notifications`,`worktrees`,`export`].includes(E.value)),se=e(`auto`),O=e(`auto`),A=e(``),j=e(``),M=e(``),L=e(``),Ee=e(!0),z=e(!0),H=e(ue),U=e(1),Ve=e(``),W=e(``),He=e(``),G=e(``),Ue=e([]),We=e(!1),Wi=e(``),Gi=h(()=>Ue.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function Ki(e=!1){if(!We.value&&!(!e&&Ue.value.length>0)){We.value=!0,Wi.value=``;try{let e=await fetch(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Ue.value=Array.isArray(t.users)?t.users:[]}catch(e){Wi.value=e instanceof Error?e.message:String(e),Ue.value=[]}finally{We.value=!1}}}let qi=e(``),Ji=e(``),K=e(null),Yi=e(`bypass`),Xi=e(`bypass`),Zi=e(``),Qi=e(``),$i=e([]),ea=e(le),ta=e(null),na=e(!0),ra=e(!1),q=e(`superpowers`),ia=h(()=>{switch(q.value){case`gstack`:return`settings.skillSuite.gstackHint`;case`superpowers+gstack`:return`settings.skillSuite.superpowersGstackHint`;case`custom`:return`settings.skillSuite.customHint`;default:return`settings.skillSuite.superpowersHint`}}),aa=e(``),oa=e(``),sa=e(``),ca=e(``),la=e(``),ua=e(!1),da=e(`alt`),fa=e(`auto`),J=e(null),pa=e(``),ma=e(``),ha=e(0),ga=e(``),_a=e(!1),va=e(!0),ya=e(null),ba=e(!1);function xa(){m.dialog({title:w(`settings.skillSuite.reloadDefaults`),message:w(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{aa.value=Ne,oa.value=Pe,sa.value=Me,ca.value=Ae,la.value=je})}function Sa(e){return!e||e===`tiny`||e===`base`?.1:.2}let Ca=[e=>e.trim().length>0||w(`settings.worktreesPathRequired`)],wa=e(!1),Y=e(-1),X=e(!1),Z=e({path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),Ta=[`defaultModel`,`prPromptTemplate`,`reviewPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`devServer`,`e2e`,`finalization`],Ea=e(null),Da=e(null),Oa=h(()=>y.projects.map(e=>({value:e.path,label:Go(e)||e.path})));function ka(e){let t=y.projects.find(t=>t.path===e);t&&(Z.value.defaultModel=t.defaultModel??``,Z.value.prPromptTemplate=t.prPromptTemplate??``,Z.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Z.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Z.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Z.value.gitConventions=t.gitConventions??``,Z.value.setupScript=t.setupScript??``,Z.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Z.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Z.value.finalization={prompt:t.finalization?.prompt??``})}function Aa(){let e={defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return Ta.every(t=>JSON.stringify(Z.value[t])===JSON.stringify(e[t]))}function ja(e){if(e===null){Ea.value=null,Da.value=null;return}if(Da.value===null&&Aa()){ka(e),Ea.value=e,Da.value=e;return}let t=y.projects.find(t=>t.path===e),n=t&&Go(t)||e;m.dialog({title:w(`settings.copyFromConfirmTitle`),message:w(`settings.copyFromConfirm`,{project:n}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ka(e),Ea.value=e,Da.value=e}).onCancel(()=>{Ea.value=Da.value})}let Ma=e([]),Na=e([]);async function Pa(){try{let e=await fetch(`/api/skills`);e.ok&&(Ma.value=await e.json())}catch{}}function Fa(e,t){t(()=>{let t=e.trim().toLowerCase();Na.value=t?Ma.value.filter(e=>e.toLowerCase().includes(t)):Ma.value.slice()})}let Ia=e([]),La=e(!1),Ra=e(!1),za=e(!1),Ba=e(!1),Q=e(null),Va=e(``),Ha=e(``),Ua=e(``),$=e(``),Wa=e(!1),Ga=e(!1),Ka=h(()=>[...C.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),qa=[`{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 Ja(){Q.value=null,Va.value=``,Ha.value=``,Ua.value=``,$.value=``,Ba.value=!0}function Ya(e){Q.value=e.slug,Va.value=e.slug,Ha.value=e.description,Ua.value=e.content,$.value=``,Ba.value=!0}async function Xa(){$.value=``;let e=Va.value.trim(),t=Ha.value.trim();if(Q.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){$.value=w(`templates.slugInvalid`);return}if(!t){$.value=w(`templates.descriptionRequired`);return}if(!Ua.value.trim()){$.value=w(`templates.contentRequired`);return}Wa.value=!0;try{Q.value===null?await C.createTemplate({slug:e,description:t,content:Ua.value}):await C.updateTemplate(Q.value,{description:t,content:Ua.value}),Ba.value=!1}catch(e){$.value=e instanceof Error?e.message:w(`templates.createFailed`)}finally{Wa.value=!1}}function Za(){m.dialog({title:w(`templates.reloadDefaults`),message:w(`templates.reloadDefaultsConfirmMessage`),dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.reloadDefaults`),color:`primary`}}).onOk(async()=>{Ga.value=!0;try{let e=await C.reloadDefaults();m.notify({type:`positive`,message:w(`templates.reloadDefaultsSuccess`,{added:e.added.length,kept:e.kept.length}),position:`top`,timeout:4e3})}catch(e){m.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.reloadDefaultsFailed`),position:`top`})}finally{Ga.value=!1}})}async function Qa(e){m.dialog({title:w(`templates.deleteTemplate`),message:`${w(`templates.deleteConfirm`,{slug:e.slug})}\n\n${w(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await C.deleteTemplate(e.slug)}catch(e){m.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.deleteFailed`),position:`top`})}})}let $a=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function eo(e){te.value=e,localStorage.setItem(`kobo:locale`,e)}let to=h(()=>[...Re.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),no=h(()=>[...Le.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),ro=h(()=>[{label:w(`settings.useGlobal`),value:``},...to.value]),io=h(()=>ze[`claude-code`].map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),ao=h(()=>ze.codex.map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),oo=h(()=>[{name:`{{pr_number}}`,description:w(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:w(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:w(`settings.var.branchName`)},{name:`{{source_branch}}`,description:w(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:w(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:w(`settings.var.projectName`)},{name:`{{notion_url}}`,description:w(`settings.var.notionUrl`)},{name:`{{commits}}`,description:w(`settings.var.commits`)},{name:`{{diff_stats}}`,description:w(`settings.var.diffStats`)},{name:`{{tasks}}`,description:w(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:w(`settings.var.acceptanceCriteria`)}]),so=h(()=>[{label:w(`settings.mcpAutoSelect`),value:``},...y.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),co=h(()=>ce.map(e=>({label:w(e.labelKey),value:e.id}))),lo=h(()=>[{label:w(`voice.noneModel`),value:null}].concat(y.voiceModels.map(e=>({label:e.installed?`${e.name}`:`${e.name} (${w(`voice.notInstalled`)})`,value:e.name})))),uo=[{label:`auto`,value:`auto`},{label:`ar`,value:`ar`},{label:`de`,value:`de`},{label:`en`,value:`en`},{label:`es`,value:`es`},{label:`fr`,value:`fr`},{label:`hi`,value:`hi`},{label:`it`,value:`it`},{label:`ja`,value:`ja`},{label:`ko`,value:`ko`},{label:`nl`,value:`nl`},{label:`pl`,value:`pl`},{label:`pt`,value:`pt`},{label:`ru`,value:`ru`},{label:`tr`,value:`tr`},{label:`uk`,value:`uk`},{label:`vi`,value:`vi`},{label:`zh`,value:`zh`}];function fo(){fe(H.value,U.value)}let po=h(()=>Y.value<0||Y.value>=y.projects.length?null:y.projects[Y.value]??null),mo=e(``),ho=e(``);function go(){return JSON.stringify({claudeModel:se.value,codexModel:O.value,prPrompt:A.value,reviewPrompt:j.value,gitConventions:M.value,editorCommand:L.value,browserNotifications:Ee.value,audioNotifications:z.value,audioNotificationSound:H.value,audioNotificationVolume:U.value,notionStatusProperty:Ve.value,notionStatus:W.value,notionAssigneeProperty:He.value,notionUserId:G.value,notionInitialPrompt:qi.value,sentryInitialPrompt:Ji.value,claudePermissionMode:Yi.value,codexPermissionMode:Xi.value,notionMcpKey:Zi.value,sentryMcpKey:Qi.value,tags:$i.value,worktreesPath:ea.value,worktreesPrefixByProject:na.value,flattenWorkspaceList:ra.value,skillSuite:q.value,customReviewTemplate:aa.value,customAutoLoopReviewGate:oa.value,customAutoLoopGroomingIntro:sa.value,customQaPromptTemplate:ca.value,customBrainstormingInstruction:la.value,voiceEnabled:ua.value,voicePttKey:da.value,voiceLanguage:fa.value,voiceModel:J.value,voiceCommandPath:pa.value,voiceFfmpegPath:ma.value,voiceTemperature:ha.value,voicePrompt:ga.value,voiceTranslateToEnglish:_a.value,voiceSuppressNst:va.value})}function _o(){return JSON.stringify(Z.value)}let vo=h(()=>go()!==mo.value),yo=h(()=>_o()!==ho.value),bo=h(()=>E.value===`projects`?yo.value&&(po.value!==null||X.value):E.value===`templates`?!1:vo.value),xo=h(()=>E.value===`projects`?Ra.value:Wa.value);function So(){E.value===`projects`?Vo():Mo()}function Co(){ba.value=!0;let e=y.global.defaultModelByEngine??{};se.value=e[`claude-code`]??`auto`,O.value=e.codex??`auto`,A.value=y.global.prPromptTemplate,j.value=y.global.reviewPromptTemplate??``,M.value=y.global.gitConventions,L.value=y.global.editorCommand??``,Ee.value=y.global.browserNotifications??!0,z.value=y.global.audioNotifications??!0,H.value=pe(y.global.audioNotificationSound);let t=y.global.audioNotificationVolume;U.value=typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):1,Ve.value=y.global.notionStatusProperty??``,W.value=y.global.notionInProgressStatus??``,He.value=y.global.notionAssigneeProperty??``,G.value=y.global.notionUserId??``,qi.value=y.global.notionInitialPromptTemplate??``,Ji.value=y.global.sentryInitialPromptTemplate??``;{let e=y.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,n=e[`claude-code`];Yi.value=t(n)?n:`bypass`;let r=e.codex;Xi.value=t(r)?r:`bypass`}Zi.value=y.global.notionMcpKey??``,Qi.value=y.global.sentryMcpKey??``,$i.value=Array.isArray(y.global.tags)?[...y.global.tags]:[],ea.value=y.global.worktreesPath??`.worktrees`,na.value=y.global.worktreesPrefixByProject??!1,ra.value=y.global.flattenWorkspaceList??!1,q.value=y.global.skillSuite??`superpowers`,aa.value=y.global.customReviewTemplate??``,oa.value=y.global.customAutoLoopReviewGate??``,sa.value=y.global.customAutoLoopGroomingIntro??``,ca.value=y.global.customQaPromptTemplate??``,la.value=y.global.customBrainstormingInstruction??``,ua.value=y.global.voiceEnabled??!1,da.value=y.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,fa.value=y.global.voiceLanguage??`auto`,J.value=y.global.voiceModel??null,pa.value=y.global.voiceCommandPath??``,ma.value=y.global.voiceFfmpegPath??``,ha.value=typeof y.global.voiceTemperature==`number`?y.global.voiceTemperature:0,ga.value=y.global.voicePrompt??``,_a.value=y.global.voiceTranslateToEnglish??!1,va.value=y.global.voiceSuppressNonSpeechTokens??!0,ba.value=!1,mo.value=go()}s(()=>J.value,(e,t)=>{ba.value||e!==t&&(ha.value=Sa(e))});function wo(e){if(!e){Z.value={path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},Ia.value=[],ho.value=_o();return}Z.value={path:e.path,displayName:e.displayName,color:e.color??null,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,prPromptTemplate:e.prPromptTemplate,reviewPromptTemplate:e.reviewPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,devServer:{startCommand:e.devServer?.startCommand??``,stopCommand:e.devServer?.stopCommand??``},e2e:{framework:e.e2e?.framework??``,skill:e.e2e?.skill??``,prompt:e.e2e?.prompt??``},finalization:{prompt:e.finalization?.prompt??``}},ho.value=_o(),e.path&&To(e.path)}async function To(e){if(!e.trim()){Ia.value=[];return}La.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();Ia.value=n.local??n.branches??[]}catch{Ia.value=[]}finally{La.value=!1}}let Eo=null;s(()=>Z.value.path,e=>{Eo&&clearTimeout(Eo),Eo=setTimeout(()=>{To(e)},500)}),s(Y,()=>{X.value=!1,wo(po.value)});let Do=e(null);async function Oo(){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),m.notify({type:`positive`,message:w(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){m.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function ko(){Do.value?.click()}async function Ao(e){let t=e.target,n=t.files?.[0];if(n)try{m.dialog({title:w(`settings.importConfirmTitle`),message:w(`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 y.fetchSettings(),Co(),m.notify({type:`positive`,message:w(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){m.notify({type:`negative`,message:String(e),position:`top`,timeout:5e3})}})}finally{t.value=``}}async function jo(e){if(K.value===null){K.value=e;try{let t=await y.fetchGlobalDefaults(),n={prPromptTemplate:A,reviewPromptTemplate:j,gitConventions:M,notionInitialPromptTemplate:qi,sentryInitialPromptTemplate:Ji};n[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),m.notify({type:`negative`,message:w(`settings.resetFailed`),position:`top`})}finally{K.value=null}}}async function Mo(){if(await ta.value?.validate()!==!1){wa.value=!0;try{await y.updateGlobal({defaultModelByEngine:{"claude-code":se.value,codex:O.value},prPromptTemplate:A.value,reviewPromptTemplate:j.value,gitConventions:M.value,editorCommand:L.value,browserNotifications:Ee.value,audioNotifications:z.value,audioNotificationSound:H.value,audioNotificationVolume:U.value,notionStatusProperty:Ve.value,notionInProgressStatus:W.value,notionAssigneeProperty:He.value,notionUserId:G.value,notionInitialPromptTemplate:qi.value,sentryInitialPromptTemplate:Ji.value,defaultPermissionModeByEngine:{"claude-code":Yi.value,codex:Xi.value},notionMcpKey:Zi.value,sentryMcpKey:Qi.value,tags:$i.value,worktreesPath:ea.value,worktreesPrefixByProject:na.value,flattenWorkspaceList:ra.value,skillSuite:q.value,customReviewTemplate:aa.value,customAutoLoopReviewGate:oa.value,customAutoLoopGroomingIntro:sa.value,customQaPromptTemplate:ca.value,customBrainstormingInstruction:la.value,voiceEnabled:ua.value,voicePttKey:da.value,voiceLanguage:fa.value,voiceModel:J.value,voiceCommandPath:pa.value.trim(),voiceFfmpegPath:ma.value.trim(),voiceTemperature:ha.value,voicePrompt:ga.value,voiceTranslateToEnglish:_a.value,voiceSuppressNonSpeechTokens:va.value}),mo.value=go(),m.notify({type:`positive`,message:w(`settings.saved`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.saveError`),position:`top`})}finally{wa.value=!1}}}async function No(e){ya.value=e,Ro();try{await y.downloadVoiceModel(e)}catch{m.notify({type:`negative`,message:w(`voice.downloadFailed`),position:`top`})}finally{ya.value=null,zo()}}async function Po(e){ya.value=e;try{await y.deleteVoiceModel(e),J.value===e&&(J.value=null)}catch{m.notify({type:`negative`,message:w(`voice.deleteFailed`),position:`top`})}finally{ya.value=null}}async function Fo(e){try{await y.cancelVoiceModelDownload(e)}catch{m.notify({type:`negative`,message:w(`voice.cancelFailed`),position:`top`})}}function Io(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n<10?n.toFixed(1):Math.round(n)} ${t[r]}`}let Lo=null;function Ro(){Lo||=setInterval(()=>{y.fetchVoiceModels().catch(()=>{})},800)}function zo(){Lo&&=(clearInterval(Lo),null)}async function Bo(e){try{await navigator.clipboard.writeText(e),m.notify({type:`positive`,message:w(`common.copied`),position:`top`,timeout:1200})}catch{m.notify({type:`negative`,message:w(`common.copyFailed`),position:`top`})}}async function Vo(){if(!Z.value.path.trim()){m.notify({type:`negative`,message:w(`settings.projectPathRequired`),position:`top`});return}Ra.value=!0;try{await y.upsertProject(Z.value.path.trim(),{displayName:Z.value.displayName,color:Z.value.color,defaultSourceBranch:Z.value.defaultSourceBranch,defaultModel:Z.value.defaultModel,prPromptTemplate:Z.value.prPromptTemplate,reviewPromptTemplate:Z.value.reviewPromptTemplate,notionInitialPromptTemplate:Z.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Z.value.sentryInitialPromptTemplate,gitConventions:Z.value.gitConventions,setupScript:Z.value.setupScript,devServer:Z.value.devServer,e2e:Z.value.e2e,finalization:Z.value.finalization}),X.value=!1;let e=y.projects.findIndex(e=>e.path===Z.value.path.trim());e>=0&&(Y.value=e),ho.value=_o(),m.notify({type:`positive`,message:w(`settings.projectSaved`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.projectSaveError`),position:`top`})}finally{Ra.value=!1}}async function Ho(){if(po.value){za.value=!0;try{await y.deleteProject(po.value.path),Y.value=-1,X.value=!1,wo(null),m.notify({type:`positive`,message:w(`settings.projectDeleted`),position:`top`})}catch{m.notify({type:`negative`,message:w(`settings.projectDeleteError`),position:`top`})}finally{za.value=!1}}}function Uo(){Y.value=-1,X.value=!0,wo(null),Ea.value=null,Da.value=null}function Wo(e){X.value=!1,Y.value=e,Ea.value=null,Da.value=null}function Go(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Ko=e([]);function qo(e,t){t(()=>{Ko.value=e?Ia.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):Ia.value})}return i(async()=>{await Promise.all([y.fetchSettings(),y.fetchActiveMcpServers(),Pa()]),await y.fetchVoiceModels(),await y.fetchVoiceRuntime(),Co(),Ki().catch(()=>{})}),a(()=>{Eo&&clearTimeout(Eo),zo()}),(e,i)=>(t(),l(Be,{class:`settings-page`},{default:c(()=>[v(`div`,Ke,[v(`aside`,qe,[v(`div`,Je,S(e.$t(`settings.title`)),1),d(De,{dense:``,class:`settings-nav__list`},{default:c(()=>[(t(!0),g(_,null,r(re.value,e=>n((t(),l(we,{key:e.value,clickable:``,class:b([`settings-nav__item`,{"settings-nav__item--active":E.value===e.value}]),onClick:t=>E.value=e.value},{default:c(()=>[d(F,{avatar:``,class:`settings-nav__icon`},{default:c(()=>[d(D,{name:e.icon,size:`16px`},null,8,[`name`])]),_:2},1024),d(F,{class:`settings-nav__label`},{default:c(()=>[f(S(e.label),1)]),_:2},1024)]),_:2},1032,[`class`,`onClick`])),[[_e,!1]])),128))]),_:1})]),v(`main`,Ye,[v(`header`,Xe,[v(`h2`,Ze,S(ie.value),1)]),v(`div`,Qe,[n(v(`div`,$e,[n(v(`div`,et,[v(`div`,tt,S(e.$t(`settings.language`)),1),d(V,{"model-value":p(te),options:$a,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":eo},null,8,[`model-value`])],512),[[T,E.value===`general`]]),n(v(`div`,nt,[v(`div`,rt,S(e.$t(`settings.workspaceListSection`)),1),d(P,{modelValue:ra.value,"onUpdate:modelValue":i[0]||=e=>ra.value=e,label:e.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),v(`div`,it,S(e.$t(`settings.flattenWorkspaceListHint`)),1)],512),[[T,E.value===`general`]]),n(v(`div`,at,[v(`div`,ot,S(e.$t(`settings.skillSuite.section`)),1),d(xe,{modelValue:q.value,"onUpdate:modelValue":i[1]||=e=>q.value=e,options:[{label:e.$t(`settings.skillSuite.superpowers`),value:`superpowers`},{label:e.$t(`settings.skillSuite.gstack`),value:`gstack`},{label:e.$t(`settings.skillSuite.superpowersGstack`),value:`superpowers+gstack`},{label:e.$t(`settings.skillSuite.custom`),value:`custom`}],type:`radio`,color:`indigo-4`,dense:``,dark:``,inline:``},null,8,[`modelValue`,`options`]),v(`div`,st,S(e.$t(ia.value)),1),d(k,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:e.$t(`settings.skillSuite.reloadDefaults`),disable:q.value!==`custom`,class:`q-mt-sm`,onClick:xa},null,8,[`label`,`disable`])],512),[[T,E.value===`skills`]]),E.value===`skills`&&q.value===`custom`?(t(),g(`div`,ct,[v(`div`,lt,S(e.$t(`settings.skillSuite.customPrompts`)),1),v(`div`,ut,S(e.$t(`settings.skillSuite.reviewTemplate`)),1),d(N,{modelValue:aa.value,"onUpdate:modelValue":i[2]||=e=>aa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,dt,S(e.$t(`settings.skillSuite.autoLoopReviewGate`)),1),d(N,{modelValue:oa.value,"onUpdate:modelValue":i[3]||=e=>oa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,ft,S(e.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),d(N,{modelValue:sa.value,"onUpdate:modelValue":i[4]||=e=>sa.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,pt,S(e.$t(`settings.skillSuite.qaTemplate`)),1),d(N,{modelValue:ca.value,"onUpdate:modelValue":i[5]||=e=>ca.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),v(`div`,mt,S(e.$t(`settings.skillSuite.brainstormingInstruction`)),1),d(N,{modelValue:la.value,"onUpdate:modelValue":i[6]||=e=>la.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):u(``,!0),n(v(`div`,ht,[v(`div`,gt,S(e.$t(`settings.defaultModelClaude`)),1),d(V,{modelValue:se.value,"onUpdate:modelValue":i[7]||=e=>se.value=e,options:to.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,_t,S(e.$t(`settings.defaultModelCodex`)),1),d(V,{modelValue:O.value,"onUpdate:modelValue":i[8]||=e=>O.value=e,options:no.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,vt,S(e.$t(`settings.defaultPermissionModeClaude`)),1),v(`div`,yt,S(e.$t(`settings.defaultPermissionModeHint`)),1),d(V,{modelValue:Yi.value,"onUpdate:modelValue":i[9]||=e=>Yi.value=e,options:io.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),v(`div`,bt,S(e.$t(`settings.defaultPermissionModeCodex`)),1),d(V,{modelValue:Xi.value,"onUpdate:modelValue":i[10]||=e=>Xi.value=e,options:ao.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])],512),[[T,E.value===`agents`]]),n(v(`div`,xt,[v(`div`,St,S(e.$t(`settings.activityFeed`)),1),d(P,{"model-value":p(y).showVerboseSystemMessages,label:e.$t(`settings.verboseMessages`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":i[11]||=e=>p(y).toggleVerboseSystemMessages()},null,8,[`model-value`,`label`])],512),[[T,E.value===`general`]]),n(v(`div`,Ct,[v(`div`,wt,S(e.$t(`settings.notifications`)),1),v(`div`,Tt,[d(P,{modelValue:Ee.value,"onUpdate:modelValue":i[12]||=e=>Ee.value=e,label:e.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),d(P,{modelValue:z.value,"onUpdate:modelValue":i[13]||=e=>z.value=e,label:e.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),v(`div`,Et,[d(V,{modelValue:H.value,"onUpdate:modelValue":i[14]||=e=>H.value=e,options:co.value,label:e.$t(`settings.notificationSound`),disable:!z.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),d(k,{flat:``,dense:``,color:`indigo-4`,icon:`play_arrow`,label:e.$t(`settings.notificationSoundPreview`),disable:!z.value,onClick:fo},null,8,[`label`,`disable`])]),v(`div`,Dt,[v(`div`,Ot,S(e.$t(`settings.notificationVolume`)),1),d(Ge,{modelValue:U.value,"onUpdate:modelValue":i[15]||=e=>U.value=e,min:0,max:1,step:.05,disable:!z.value,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`disable`]),v(`div`,kt,S(Math.round(U.value*100))+`% `,1)])],512),[[T,E.value===`notifications`]]),n(v(`div`,At,[v(`div`,jt,[v(`div`,Mt,S(e.$t(`voice.sectionRuntime`)),1),d(B),d(k,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`grey-5`,label:p(w)(`common.refresh`),onClick:i[16]||=e=>p(y).fetchVoiceRuntime()},null,8,[`label`])]),v(`div`,Nt,[v(`div`,Pt,[d(D,{name:p(y).voiceRuntime?.available?`check_circle`:`cancel`,color:p(y).voiceRuntime?.available?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),v(`span`,{class:b([`text-caption`,p(y).voiceRuntime?.available?`text-green-5`:`text-red-5`])},S(p(y).voiceRuntime?.available?p(w)(`voice.runtimeReady`,{command:p(y).voiceRuntime?.command??`whisper-cli`}):p(w)(`voice.runtimeMissing`,{command:p(y).voiceRuntime?.command??`whisper-cli`})),3)]),v(`div`,Ft,[d(D,{name:p(y).voiceRuntime?.ffmpegAvailable?`check_circle`:`cancel`,color:p(y).voiceRuntime?.ffmpegAvailable?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),v(`span`,{class:b([`text-caption`,p(y).voiceRuntime?.ffmpegAvailable?`text-green-5`:`text-red-5`])},S(p(y).voiceRuntime?.ffmpegAvailable?p(w)(`voice.ffmpegReady`):p(w)(`voice.ffmpegMissing`)),3)])]),d(R,{dense:``,dark:``,icon:`help_outline`,label:e.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:c(()=>[v(`div`,It,[v(`div`,Lt,S(e.$t(`voice.installGuideIntro`)),1),v(`div`,Rt,[v(`a`,zt,S(e.$t(`voice.installLink`)),1)]),v(`div`,Bt,S(e.$t(`voice.installGuideUbuntuTitle`)),1),i[71]||=v(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
|
|
2
2
|
sudo apt install -y cmake build-essential ffmpeg
|
|
3
3
|
git clone https://github.com/ggml-org/whisper.cpp.git
|
|
4
4
|
cd whisper.cpp
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-
|
|
2
|
-
import{$ as e,E as t,F as n,G as r,I as i,L as a,M as o,N as s,S as c,T as l,U as u,W as d,_ as f,a as p,d as m,f as h,g,h as _,i as v,it as y,k as b,l as x,p as S,r as C,u as w,v as T,vt as E,w as ee,xt as D,y as O}from"./runtime-core.esm-bundler-DPcTPMmX.js";import{H as te,P as k,U as A,a as j,i as ne,m as M,n as N,r as re,s as P,t as F,v as ie}from"./QIcon-0rjEivgj.js";import{r as I}from"./use-id-BQW6DfJU.js";import{s as ae}from"./notifications-BzyK_kYE.js";import{n as oe,r as se,t as L}from"./QRadio-BEsMlsx1.js";import{c as R,t as z}from"./QBtn-CLU6snCm.js";import{n as B}from"./vue-i18n-cyuEW5NY.js";import{t as ce}from"./QInput-Ciqjq5-e.js";import{t as V}from"./QCheckbox-skYuqkHX.js";import{c as H,f as le,h as ue,i as U,m as W,n as G,o as de,r as fe,u as K,v as pe,y as me}from"./index-D9yyMIdQ.js";import{t as he}from"./QSpinnerDots-CluOpUgq.js";import{n as ge,t as _e}from"./QItemSection-DZnyqPM3.js";import{t as ve}from"./QItemLabel-B0tYxHQg.js";import{m as ye,t as q}from"./QTooltip-DdpeVKGV.js";import{t as J}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as be}from"./QBadge-u0mEz_W1.js";import{t as Y}from"./QSpace-BrtkvWzZ.js";import{t as X}from"./QMenu-Cx3v9_6z.js";import{t as xe}from"./ClosePopup-C5EF3QrA.js";import{t as Se}from"./use-quasar-C5gKpYwL.js";import{a as Ce,c as we,i as Te,o as Ee,r as De,s as Oe,t as ke}from"./engineFeatures-DNZNjYIf.js";import{t as Ae}from"./kobo-commands-Bh5k0Smw.js";import{t as je}from"./formatters-CgfY9uSI.js";import{a as Me,i as Ne,r as Pe,t as Fe}from"./permissionModes-BBA8zBcf.js";import{t as Ie}from"./QPage-CGYPttdA.js";import{a as Le,i as Re,n as ze,r as Be,t as Ve}from"./expand-template-Fy2sU7vj.js";var He={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},Ue={key:0,class:`q-ml-xs`},Z=T({__name:`AgentBusyBanner`,setup(e){let{t}=B(),r=H(),i=ee(`openDrawerTab`),a=x(()=>r.currentSubagents.filter(e=>e.status===`running`).length),o=x(()=>{let e=r.selectedWorkspace;return e?K(e.status):!1});function s(){i?.(`subagents`)}return(e,r)=>o.value?(n(),S(`div`,He,[g(he,{size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),w(`span`,null,D(y(t)(`agentBusy.banner`)),1),a.value>0?(n(),S(`span`,Ue,` — `+D(y(t)(`agentBusy.subagentsRunning`,{n:a.value},a.value)),1)):h(``,!0),a.value>0?(n(),S(C,{key:1},[g(Y),w(`span`,{class:`text-indigo-4 cursor-pointer`,style:{"text-decoration":`underline`},onClick:s},D(y(t)(`agentBusy.viewSubagents`)),1)],64)):h(``,!0)])):h(``,!0)}}),Q=k({name:`QBanner`,props:{...re,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:t}){let{proxy:{$q:n}}=O(),r=N(e,n),i=x(()=>`q-banner row items-center`+(e.dense===!0?` q-banner--dense`:``)+(r.value===!0?` q-banner--dark q-dark`:``)+(e.rounded===!0?` rounded-borders`:``)),a=x(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?`auto`:`all`}`);return()=>{let n=[c(`div`,{class:`q-banner__avatar col-auto row items-center self-start`},P(t.avatar)),c(`div`,{class:`q-banner__content col text-body2`},P(t.default))],r=P(t.action);return r!==void 0&&n.push(c(`div`,{class:a.value},r)),c(`div`,{class:i.value+(e.inlineActions===!1&&r!==void 0?` q-banner--top-padding`:``),role:`alert`},n)}}}),We={class:`text-subtitle2`},Ge={class:`text-caption`},Ke=T({__name:`AgentErrorBanner`,props:{workspaceId:{}},setup(e){let t=e,{t:r}=B(),i=le();async function a(){let e=c.value;if(e){i.removeByEventId(t.workspaceId,e);try{await fetch(`/api/workspaces/${t.workspaceId}/events/${e}`,{method:`DELETE`})}catch(e){console.warn(`[agent-error-banner] failed to persist dismiss:`,e)}}}function o(e){let t=e.replace(/\u001b\[\d+m/g,``).trim();return/^warning:/i.test(t)}let s=x(()=>{let e=i.eventsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.kind!==`error`||n.category===`quota`)&&!(n.category===`other`&&o(n.message)))return n}return null}),c=x(()=>{let e=i.eventsFor(t.workspaceId),n=i.eventIdsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let r=e[t];if(!(r.kind!==`error`||r.category===`quota`)&&!(r.category===`other`&&o(r.message)))return n[t]??null}return null}),l=s;return(e,t)=>y(l)?(n(),m(Q,{key:0,class:`bg-negative text-white q-ma-sm`},{avatar:d(()=>[g(F,{name:`error_outline`})]),action:d(()=>[g(z,{flat:``,dense:``,round:``,icon:`close`,"aria-label":y(r)(`common.close`),onClick:a},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(r)(`common.close`)),1)]),_:1})]),_:1},8,[`aria-label`])]),default:d(()=>[w(`div`,We,D(y(r)(`agent.error.${y(l).category}`)),1),w(`div`,Ge,D(y(l).message),1)]),_:1})):h(``,!0)}}),qe=k({name:`StepHeader`,props:{stepper:{},step:{},goToPanel:Function},setup(t,{attrs:n}){let{proxy:{$q:i}}=O(),a=e(null),o=x(()=>t.stepper.modelValue===t.step.name),s=x(()=>{let e=t.step.disable;return e===!0||e===``}),l=x(()=>{let e=t.step.error;return e===!0||e===``}),u=x(()=>{let e=t.step.done;return s.value===!1&&(e===!0||e===``)}),d=x(()=>{let e=t.step.headerNav,n=e===!0||e===``||e===void 0;return s.value===!1&&t.stepper.headerNav&&n}),f=x(()=>t.step.prefix&&(o.value===!1||t.stepper.activeIcon===`none`)&&(l.value===!1||t.stepper.errorIcon===`none`)&&(u.value===!1||t.stepper.doneIcon===`none`)),p=x(()=>{let e=t.step.icon||t.stepper.inactiveIcon;if(o.value===!0){let n=t.step.activeIcon||t.stepper.activeIcon;return n===`none`?e:n||i.iconSet.stepper.active}if(l.value===!0){let n=t.step.errorIcon||t.stepper.errorIcon;return n===`none`?e:n||i.iconSet.stepper.error}if(s.value===!1&&u.value===!0){let n=t.step.doneIcon||t.stepper.doneIcon;return n===`none`?e:n||i.iconSet.stepper.done}return e}),m=x(()=>{let e=l.value===!0?t.step.errorColor||t.stepper.errorColor:void 0;if(o.value===!0){let n=t.step.activeColor||t.stepper.activeColor||t.step.color;return n===void 0?e:n}return e===void 0?s.value===!1&&u.value===!0?t.step.doneColor||t.stepper.doneColor||t.step.color||t.stepper.inactiveColor:t.step.color||t.stepper.inactiveColor:e}),h=x(()=>`q-stepper__tab col-grow flex items-center no-wrap relative-position`+(m.value===void 0?``:` text-${m.value}`)+(l.value===!0?` q-stepper__tab--error q-stepper__tab--error-with-`+(f.value===!0?`prefix`:`icon`):``)+(o.value===!0?` q-stepper__tab--active`:``)+(u.value===!0?` q-stepper__tab--done`:``)+(d.value===!0?` q-stepper__tab--navigation q-focusable q-hoverable`:``)+(s.value===!0?` q-stepper__tab--disabled`:``)),g=x(()=>t.stepper.headerNav===!0?d.value:!1);function _(){a.value?.focus(),o.value===!1&&t.goToPanel(t.step.name)}function v(e){e.keyCode===13&&o.value===!1&&t.goToPanel(t.step.name)}return()=>{let e={class:h.value};d.value===!0&&(e.onClick=_,e.onKeyup=v,Object.assign(e,s.value===!0?{tabindex:-1,"aria-disabled":`true`}:{tabindex:n.tabindex||0}));let i=[c(`div`,{class:`q-focus-helper`,tabindex:-1,ref:a}),c(`div`,{class:`q-stepper__dot row flex-center q-stepper__line relative-position`},[c(`span`,{class:`row flex-center`},[f.value===!0?t.step.prefix:c(F,{name:p.value})])])];if(t.step.title!==void 0&&t.step.title!==null){let e=[c(`div`,{class:`q-stepper__title`},t.step.title)];t.step.caption!==void 0&&t.step.caption!==null&&e.push(c(`div`,{class:`q-stepper__caption`},t.step.caption)),i.push(c(`div`,{class:`q-stepper__label q-stepper__line relative-position`},e))}return r(c(`div`,e,i),[[R,g.value]])}}});function Je(e){return c(`div`,{class:`q-stepper__step-content`},[c(`div`,{class:`q-stepper__step-inner`},P(e.default))])}var $={setup(e,{slots:t}){return()=>Je(t)}},Ye=k({name:`QStep`,props:{...Ce,icon:String,color:String,title:{type:String,required:!0},caption:String,prefix:[String,Number],doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String,headerNav:{type:Boolean,default:!0},done:Boolean,error:Boolean,onScroll:[Function,Array]},setup(t,{slots:n,emit:r}){let{proxy:{$q:i}}=O(),a=ee(ie,M);if(a===M)return console.error(`QStep needs to be a child of QStepper`),M;let{getCache:o}=we(),s=e(null),l=x(()=>a.value.modelValue===t.name),u=x(()=>i.platform.is.ios!==!0&&i.platform.is.chrome===!0||l.value!==!0||a.value.vertical!==!0?{}:{onScroll(e){let{target:n}=e;n.scrollTop>0&&(n.scrollTop=0),t.onScroll!==void 0&&r(`scroll`,e)}}),d=x(()=>typeof t.name==`string`||typeof t.name==`number`?t.name:String(t.name));function f(){let e=a.value.vertical;return e===!0&&a.value.keepAlive===!0?c(v,a.value.keepAliveProps.value,l.value===!0?[c(a.value.needsUniqueKeepAliveWrapper.value===!0?o(d.value,()=>({...$,name:d.value})):$,{key:d.value},n.default)]:void 0):e!==!0||l.value===!0?Je(n):void 0}return()=>c(`div`,{ref:s,class:`q-stepper__step`,role:`tabpanel`,...u.value},a.value.vertical===!0?[c(qe,{stepper:a.value,step:t,goToPanel:a.value.goToPanel}),a.value.animated===!0?c(ye,f):f()]:[f()])}}),Xe=k({name:`QStepperNavigation`,setup(e,{slots:t}){return()=>c(`div`,{class:`q-stepper__nav`},P(t.default))}}),Ze=/(-\w)/g;function Qe(e){let t={};for(let n in e){let r=n.replace(Ze,e=>e[1].toUpperCase());t[r]=e[n]}return t}var $e=k({name:`QStepper`,props:{...re,...Oe,flat:Boolean,bordered:Boolean,alternativeLabels:Boolean,headerNav:Boolean,contracted:Boolean,headerClass:String,inactiveColor:String,inactiveIcon:String,doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String},emits:Ee,setup(e,{slots:t}){let n=N(e,O().proxy.$q),{updatePanelsList:r,isValidPanelName:a,updatePanelIndex:o,getPanelContent:s,getPanels:l,panelDirectives:u,goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p}=Te();i(ie,x(()=>({goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p,...e})));let m=x(()=>`q-stepper q-stepper--${e.vertical===!0?`vertical`:`horizontal`}`+(e.flat===!0?` q-stepper--flat`:``)+(e.bordered===!0?` q-stepper--bordered`:``)+(n.value===!0?` q-stepper--dark q-dark`:``)),h=x(()=>`q-stepper__header row items-stretch justify-between q-stepper__header--${e.alternativeLabels===!0?`alternative`:`standard`}-labels`+(e.flat===!1||e.bordered===!0?` q-stepper__header--border`:``)+(e.contracted===!0?` q-stepper__header--contracted`:``)+(e.headerClass===void 0?``:` ${e.headerClass}`));function g(){let n=P(t.message,[]);if(e.vertical===!0){a(e.modelValue)&&o();let r=c(`div`,{class:`q-stepper__content`},P(t.default));return n===void 0?[r]:n.concat(r)}return[c(`div`,{class:h.value},l().map(t=>{let n=Qe(t.props);return c(qe,{key:n.name,stepper:e,step:n,goToPanel:d})})),n,ne(`div`,{class:`q-stepper__content q-panel-parent`},s(),`cont`,e.swipeable,()=>u.value)]}return()=>(r(t),c(`div`,{class:m.value},j(t.navigation,g())))}}),et=`__KOBO_OTHER__`,tt=`Other — the user will provide a free-form clarification in their next message. Please wait for their input before proceeding.`;function nt(e,t){if(t)return(Array.isArray(e)?e:[]).map(e=>e===`__KOBO_OTHER__`?tt:e).join(`, `);let n=Array.isArray(e)?e[0]??``:e;return n===`__KOBO_OTHER__`?tt:n}var rt={class:`text-grey-3`},it={key:0,class:`text-grey-6 q-ml-xs`},at={key:1,class:`text-grey-6 q-ml-xs`},ot=T({__name:`AukqOptionLabel`,props:{label:{},description:{}},setup(e){let t=e,{t:r}=B(),i=x(()=>t.label===et);return(t,a)=>(n(),S(C,null,[w(`span`,rt,D(i.value?y(r)(`askUserQuestion.otherOption`):e.label),1),i.value?(n(),S(`span`,it,`— `+D(y(r)(`askUserQuestion.otherOptionHint`)),1)):e.description?(n(),S(`span`,at,`— `+D(e.description),1)):h(``,!0)],64))}}),st={key:0,class:`ask-user-question-panel q-pa-sm bg-dark text-grey-3`},ct={class:`row items-center q-mb-xs`},lt={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},ut={key:0,class:`text-caption text-grey-6`},dt={class:`text-body2 text-grey-2 q-mb-sm`},ft={key:0,class:`text-caption text-grey-6 q-mb-xs`},pt={class:`aukq-options column q-gutter-xs`},mt={class:`row items-center q-gutter-sm`},ht={key:3,class:`text-negative text-caption`},gt=J(T({__name:`AskUserQuestionPanel`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),o=H(),s=x(()=>{let e=o.peekPending(r.workspaceId);if(!(!e||e.kind!==`question`))return e}),c=x(()=>s.value?(s.value.input?.questions??[]).map(e=>({...e,options:[...e.options,{label:et}]})):[]),l=x(()=>c.value[T.value]),f=e({}),p=e({}),v=e(!1),b=e(null),T=e(0);u(c,e=>{f.value=Object.fromEntries(e.map(e=>[e.question,[]])),p.value=Object.fromEntries(e.map(e=>[e.question,``])),b.value=null,T.value=0,v.value=!1},{immediate:!0});function E(e,t){return e.header?e.header:`Q${t+1}`}function ee(e){return te(e)?`check`:`help_outline`}function O(e){let t=c.value[e];return t?t.multiSelect?(f.value[t.question]??[]).length>0:!!p.value[t.question]:!1}function te(e){return O(e)&&e<T.value}let k=x(()=>T.value===c.value.length-1),A=x(()=>c.value.every((e,t)=>O(t)));function j(){T.value<c.value.length-1&&(T.value+=1)}function ne(){T.value>0&&--T.value}async function M(){if(!v.value){v.value=!0,b.value=null;try{let e={};for(let t of c.value)t.multiSelect?e[t.question]=nt(f.value[t.question]??[],!0):e[t.question]=nt(p.value[t.question]??``,!1);await o.submitDeferredAnswer(r.workspaceId,e,s.value?.toolCallId)}catch(e){b.value=e instanceof Error?e.message:String(e)}finally{v.value=!1}}}async function N(){if(!v.value){v.value=!0,b.value=null;try{await o.cancelDeferredAnswer(r.workspaceId,`User cancelled the question via the UI`,s.value?.toolCallId)}catch(e){b.value=e instanceof Error?e.message:String(e)}finally{v.value=!1}}}return(e,t)=>s.value?(n(),S(`div`,st,[w(`div`,ct,[g(F,{name:`question_answer`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),w(`div`,lt,D(y(i)(`askUserQuestion.title`)),1),g(Y),c.value.length>1?(n(),S(`span`,ut,D(T.value+1)+` / `+D(c.value.length),1)):h(``,!0)]),l.value?(n(),m($e,{key:0,ref:`stepperRef`,modelValue:T.value,"onUpdate:modelValue":t[0]||=e=>T.value=e,flat:``,dark:``,animated:``,"header-nav":``,class:`aukq-stepper bg-transparent`,color:`amber-5`,"active-color":`amber-4`,"done-color":`amber-5`},{navigation:d(()=>[g(Xe,null,{default:d(()=>[w(`div`,mt,[T.value>0?(n(),m(z,{key:0,flat:``,dense:``,color:`grey-4`,label:y(i)(`askUserQuestion.previous`),disable:v.value,onClick:ne},null,8,[`label`,`disable`])):h(``,!0),k.value?(n(),m(z,{key:2,label:y(i)(`askUserQuestion.submit`),color:`indigo-5`,dense:``,unelevated:``,loading:v.value,disable:!A.value||v.value,onClick:M},null,8,[`label`,`loading`,`disable`])):(n(),m(z,{key:1,label:y(i)(`askUserQuestion.next`),color:`indigo-5`,dense:``,unelevated:``,disable:!O(T.value)||v.value,onClick:j},null,8,[`label`,`disable`])),g(z,{label:y(i)(`askUserQuestion.cancel`),flat:``,dense:``,color:`grey-4`,disable:v.value,onClick:N},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(i)(`askUserQuestion.cancelTooltip`)),1)]),_:1})]),_:1},8,[`label`,`disable`]),g(Y),b.value?(n(),S(`span`,ht,D(b.value),1)):h(``,!0)])]),_:1})]),default:d(()=>[(n(!0),S(C,null,a(c.value,(e,t)=>(n(),m(Ye,{key:t,name:t,title:E(e,t),icon:ee(t),"active-icon":`edit`,done:te(t),"header-nav":te(t)||t===T.value},{default:d(()=>[w(`div`,dt,D(e.question),1),e.multiSelect?(n(),S(`div`,ft,D(y(i)(`askUserQuestion.multiSelectHint`)),1)):h(``,!0),w(`div`,pt,[e.multiSelect?(n(!0),S(C,{key:0},a(e.options,t=>(n(),m(V,{key:t.label,modelValue:f.value[e.question],"onUpdate:modelValue":t=>f.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:v.value},{default:d(()=>[g(ot,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128)):(n(!0),S(C,{key:1},a(e.options,t=>(n(),m(L,{key:t.label,modelValue:p.value[e.question],"onUpdate:modelValue":t=>p.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:v.value},{default:d(()=>[g(ot,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128))])]),_:2},1032,[`name`,`title`,`icon`,`done`,`header-nav`]))),128))]),_:1},8,[`modelValue`])):h(``,!0)])):h(``,!0)}}),[[`__scopeId`,`data-v-ab068179`]]);function _t(e,t){return e===`five_hour`?t(`rateLimitType.fiveHour`):e===`seven_day`?t(`rateLimitType.sevenDay`):e}function vt(e,t){try{let n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleTimeString(t?.locale,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:t?.timeZone})}catch{return e}}function yt(e,t,n){return e.id===`text-detected`&&e.resetAt?n(`stats.resetsAt`,{value:vt(e.resetAt)}):!e.label||e.label.trim().length===0?n(`stats.usageBucket`,{n:t+1}):_t(e.label,n)}function bt(e){return e<50?`positive`:e<75?`warning`:e<90?`orange`:`negative`}var xt={class:`quota-footer`},St={key:0,class:`text-grey-7`},Ct={class:`text-negative text-weight-medium`},wt={class:`text-weight-medium q-mb-sm`},Tt={class:`text-caption q-mb-sm`},Et={class:`text-orange text-weight-medium`},Dt={class:`text-weight-medium q-mb-sm`},Ot={class:`text-caption text-orange q-mb-sm`},kt={class:`text-grey-8`},At={class:`text-weight-medium q-mb-sm`},jt={class:`row items-center justify-between q-mb-xs`},Mt={key:0,class:`text-caption q-mt-xs`},Nt={class:`text-caption q-mt-sm`},Pt={class:`row q-gutter-sm q-mt-sm`},Ft=J(T({__name:`QuotaFooter`,setup(t){let r=H(),{t:i}=B(),o=x(()=>r.currentProviderUsage),s=e(!1),c=x(()=>{let e=o.value;if(!e)return``;try{return new Date(e.fetchedAt).toLocaleTimeString()}catch{return e.fetchedAt}});function l(e,t){let n=o.value?.buckets[t];return n?yt({id:n.id,label:e,usedPct:n.usedPct,resetAt:n.resetsAt},t,i):i(`stats.usageBucket`,{n:t+1})}async function u(){if(!s.value){s.value=!0;try{await r.requestUsageRefresh(`claude-code`)}finally{s.value=!1}}}return(e,t)=>(n(),S(`span`,xt,[o.value?o.value.status===`unauthenticated`?(n(),S(C,{key:1},[g(F,{name:`warning`,color:`negative`,size:`14px`,class:`q-mr-xs`}),w(`span`,Ct,D(e.$t(`quotaFooter.popover.unauthenticated`)),1),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,wt,D(e.$t(`quotaFooter.popover.title`)),1),w(`div`,Tt,D(e.$t(`quotaFooter.popover.unauthenticatedHint`)),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):o.value.status===`error`?(n(),S(C,{key:2},[g(F,{name:`error_outline`,color:`orange`,size:`14px`,class:`q-mr-xs`}),w(`span`,Et,D(e.$t(`quotaFooter.popover.error`)),1),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,Dt,D(e.$t(`quotaFooter.popover.title`)),1),w(`div`,Ot,D(o.value.errorMessage),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):(n(),S(C,{key:3},[(n(!0),S(C,null,a(o.value.buckets,(e,t)=>(n(),S(`span`,{key:e.id,class:`quota-bucket-compact`},[w(`span`,kt,D(l(e.label,t)),1),g(se,{value:Math.max(0,Math.min(1,e.usedPct/100)),color:y(bt)(e.usedPct),"track-color":`grey-9`,class:`quota-bar`},null,8,[`value`,`color`]),w(`span`,{class:E([`bucket-pct`,`text-${y(bt)(e.usedPct)}`])},D(e.usedPct.toFixed(0))+`%`,3)]))),128)),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,At,D(e.$t(`quotaFooter.popover.title`)),1),(n(!0),S(C,null,a(o.value.buckets,(t,r)=>(n(),S(`div`,{key:t.id,class:`q-mb-sm`},[w(`div`,jt,[w(`span`,null,D(l(t.label,r)),1),w(`span`,{class:E(`text-${y(bt)(t.usedPct)}`)},D(t.usedPct.toFixed(0))+`%`,3)]),g(se,{value:Math.max(0,Math.min(1,t.usedPct/100)),color:y(bt)(t.usedPct),"track-color":`grey-9`,class:`full-bar`},null,8,[`value`,`color`]),t.resetsAt?(n(),S(`div`,Mt,D(e.$t(`quotaFooter.popover.resetsIn`,{value:y(vt)(t.resetsAt)})),1)):h(``,!0)]))),128)),w(`div`,Nt,D(e.$t(`quotaFooter.lastUpdated`,{time:c.value})),1),w(`div`,Pt,[g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])])]),_:1})],64)):(n(),S(`span`,St,D(e.$t(`quotaFooter.empty`)),1))]))}}),[[`__scopeId`,`data-v-2edf9322`]]),It={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},Lt={class:`text-caption image-tag-label`},Rt={key:2,class:`queue-banner row items-center q-pa-xs q-px-sm text-caption text-amber-6`},zt={key:3,class:`autoloop-banner row items-center no-wrap q-pa-xs q-px-sm text-caption text-indigo-3`},Bt={class:`col`},Vt={key:4,class:`awaiting-user-banner row items-center q-pa-xs q-px-sm text-caption text-amber-5`},Ht={class:`row items-center q-gutter-sm`},Ut={class:`chat-hint row items-center text-caption text-grey-8`},Wt={key:0,class:`row items-center text-caption text-amber-6 q-mr-sm`},Gt=6e4,Kt=J(T({__name:`ChatInput`,props:{workspaceId:{}},setup(r){let i=r,{t:o}=B(),c=Se(),l=H(),f=ae(),p=de(),v=W(),b=e(``),T=e(!1),ee=x(()=>K(l.selectedWorkspace?.status)),O=x(()=>ke(l.selectedWorkspace?.engine));async function te(){if(i.workspaceId){T.value=!0;try{await l.interruptAgent(i.workspaceId),c.notify({type:`info`,message:o(`workspacePage.interrupted`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:o(`workspacePage.interruptFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{T.value=!1}}}let k=x(()=>K(l.selectedWorkspace?.status)),j=x(()=>!!l.queuedMessages[i.workspaceId]),ne=e(null);function M(){let e=ne.value;return e?e.getNativeElement?.()??null:null}let{showSkills:N,skillFilter:re,selectedSkillIndex:P,groupedDropdown:ie,flatDropdown:I,fetchSkills:oe,detectSlashFragment:se,replaceFragmentWith:L,closeDropdown:R}=Re(b,()=>M()),V=e([]),le=e(null),ue=e(!1),U=e(!1),G=e(!1),fe=e(null),pe=e(null),me=e([]),ge=e(null),_e=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function ve(e){let n=M(),r=n?.selectionStart??b.value.length,i=b.value.slice(0,r),a=b.value.slice(r);b.value=i+e+a,t(()=>{if(n){let t=r+e.length;n.focus(),n.setSelectionRange(t,t)}})}function ye(){let e=`[image: ${o(`chatInput.uploading`)}]`,t=new Set(V.value.map(e=>e.placeholder));if(!t.has(e))return e;let n=2;for(;t.has(`[image: ${o(`chatInput.uploading`)} ${n}]`);)n++;return`[image: ${o(`chatInput.uploading`)} ${n}]`}async function J(e){if(!_e.includes(e.type))return;let t=crypto.randomUUID(),n=e.name||`pasted-image.png`,r=ye(),a={tempId:t,originalName:n,placeholder:r,status:`uploading`};V.value.push(a),ve(r);try{let n=new FormData;n.append(`image`,e);let r=await fetch(`/api/workspaces/${i.workspaceId}/images`,{method:`POST`,body:n});if(!r.ok){let e=await r.json();throw Error(e.error||`Upload failed`)}let a=await r.json(),o=V.value.find(e=>e.tempId===t);if(o){o.uid=a.uid,o.path=a.path,o.status=`ready`;let e=`[image: ${a.path}]`;e!==o.placeholder&&(b.value=b.value.split(o.placeholder).join(e),o.placeholder=e)}}catch{let e=V.value.find(e=>e.tempId===t);e&&(e.status=`error`)}}function be(e,t){fetch(`/api/workspaces/${e}/images/${t}`,{method:`DELETE`}).catch(()=>{})}function X(e){let t=V.value.find(t=>t.tempId===e);if(t){V.value=V.value.filter(t=>t.tempId!==e);{let e=t.placeholder.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);b.value=b.value.replace(RegExp(`${e}\\s?`,`g`),``)}t.uid&&be(i.workspaceId,t.uid)}}function xe(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&J(e)}}}function Ce(e){if(e.preventDefault(),ue.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))_e.includes(t.type)&&J(t)}function we(e){e.preventDefault(),ue.value=!0}function Te(){ue.value=!1}function Ee(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))J(e);t.value=``}}let De=x(()=>V.value.some(e=>e.status===`uploading`)),Oe=x(()=>l.sessions.find(e=>e.id===l.selectedSessionId)??null);oe(),u(()=>l.chatDraft,e=>{e&&(b.value=b.value?`${b.value}\n${e}`:e,l.chatDraft=``)});let je=!1;function Me(){je=!0,l.cancelQueuedMessage(i.workspaceId)}u(j,(e,t)=>{t&&!e&&!je&&(b.value=``),je=!1}),u(()=>i.workspaceId,e=>{let t=l.queuedMessages[e];b.value=t?t.content:``,U.value&&$()}),u(b,async()=>{await t(),await se();let e=[];for(let t of V.value)b.value.includes(t.placeholder)||e.push(t.tempId);for(let t of e)X(t)}),window.addEventListener(`keydown`,Xe),window.addEventListener(`keyup`,Ze),window.addEventListener(`blur`,Qe),document.addEventListener(`visibilitychange`,$e),s(()=>{window.removeEventListener(`keydown`,Xe),window.removeEventListener(`keyup`,Ze),window.removeEventListener(`blur`,Qe),document.removeEventListener(`visibilitychange`,$e),ge.value&&=(clearTimeout(ge.value),null),U.value&&$()});function Ne(e){if(!e)return;if(e.type===`template`){let t=v.templates.find(t=>t.slug===e.name);if(!t)return;let n=l.workspaces.find(e=>e.id===i.workspaceId)??null,r=l.gitStatsCache[i.workspaceId]??null,a=l.sessions.find(e=>e.id===l.selectedSessionId)??null,s=null;if(a)if(a.name)s=a.name;else{let e=l.sessions.findIndex(e=>e.id===a.id);s=o(`workspacePage.session`,{n:l.sessions.length-e})}let c;if(r?.prUrl){let e=r.prUrl.match(/\/pull\/(\d+)/);e&&(c=parseInt(e[1],10))}let u=Ve({workspace:n?{name:n.name,workingBranch:n.workingBranch,sourceBranch:n.sourceBranch,projectPath:n.projectPath}:null,gitStats:r?{commitCount:r.commitCount,unpushedCount:r.unpushedCount,filesChanged:r.filesChanged,insertions:r.insertions,deletions:r.deletions,prNumber:c,prUrl:r.prUrl,prState:r.prState}:null,sessionName:s});L(ze(t.content,u)),R();return}let t=`/${e.name}`;if(e.type===`kobo`&&Ae[t]){b.value=t,R(),qe();return}L(`${t} `),R()}let Pe=x(()=>{let e=i.workspaceId;if(!e)return!1;let t=l.autoLoopStates[e];return t?.auto_loop===!0&&t?.auto_loop_ready===!0}),Fe=x(()=>l.selectedWorkspace?.status===`awaiting-user`),Ie=x(()=>!i.workspaceId||Pe.value||Fe.value),Be=x(()=>f.global.voiceEnabled&&!Ie.value),He=e(!1);async function Ue(){if(!(!i.workspaceId||He.value)){He.value=!0;try{await l.disableAutoLoop(i.workspaceId)}finally{He.value=!1}}}let Z=e(JSON.parse(localStorage.getItem(`kobo:chatHistory`)??`[]`)),Q=e(-1),We=e(``);function Ge(e){e&&Z.value[0]!==e&&(Z.value.unshift(e),Z.value.length>50&&Z.value.pop(),localStorage.setItem(`kobo:chatHistory`,JSON.stringify(Z.value)))}function Ke(){Q.value=-1,We.value=``}async function qe(){let e=b.value.trim();if(!e&&V.value.length===0||Ie.value||De.value)return;let t=Oe.value,n=Ae[e];if(n){p.sendChatMessage(i.workspaceId,n.prompt,l.selectedSessionId??void 0),l.markRead(i.workspaceId),l.addActivityItem(i.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:n.prompt,timestamp:new Date().toISOString(),sessionId:l.selectedSessionId??void 0,meta:{sender:`user`,pending:!0}}),Ge(e),Ke(),b.value=``;return}if(k.value){l.queueMessage(i.workspaceId,e,l.selectedSessionId??void 0);return}l.cancelQueuedMessage(i.workspaceId);let r=e,a=V.value.filter(e=>e.status===`ready`&&e.path&&!r.includes(`[image: ${e.path}]`)).map(e=>`[image: ${e.path}]`).join(` `);a&&(r=`${r} ${a}`.trim());let s=l.selectedSessionId??void 0;if((t?.status===`completed`||t?.status===`error`)&&!t.engineSessionId){c.notify({type:`warning`,message:o(`workspacePage.sessionEndedNotice`),position:`top`,timeout:5e3});return}let u=`user-${Date.now()}`;l.markRead(i.workspaceId),l.addActivityItem(i.workspaceId,{id:u,type:`text`,content:r,timestamp:new Date().toISOString(),sessionId:s,meta:{sender:`user`,pending:!0}});let d=e;Ge(e),Ke(),b.value=``,V.value=[];let f=(e,t)=>{console.error(`[ChatInput] ${t} failed:`,e),l.removeActivityItem(i.workspaceId,u),b.value=d;let n=e instanceof Error?e.message:null;c.notify({type:`negative`,message:n??o(`workspacePage.startFailed`),position:`top`,timeout:6e3})};if(t?.status===`idle`)try{await l.startWorkspace(i.workspaceId,r,t.id),await l.fetchSessions(i.workspaceId)}catch(e){f(e,`startWorkspace`)}else if(t?.status===`completed`||t?.status===`error`)try{await l.startWorkspace(i.workspaceId,r,t.id,!0),await l.fetchSessions(i.workspaceId)}catch(e){f(e,`resume session`)}else p.sendChatMessage(i.workspaceId,r,l.selectedSessionId??void 0)}async function Je(){if(!(!Be.value||U.value||G.value)){if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`){c.notify({type:`warning`,message:o(`voice.notSupported`),position:`top`,timeout:4e3});return}try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});pe.value=e,me.value=[];let t=MediaRecorder.isTypeSupported(`audio/webm`)?`audio/webm`:``,n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e);n.ondataavailable=e=>{e.data&&e.data.size>0&&me.value.push(e.data)},n.start(),fe.value=n,U.value=!0,ge.value=setTimeout(()=>{$(),c.notify({type:`info`,message:o(`voice.maxDurationReached`),position:`top`,timeout:3500})},Gt)}catch{c.notify({type:`negative`,message:o(`voice.errorMicPermission`),position:`top`,timeout:5e3})}}}async function $(){if(!U.value)return;let e=fe.value;if(!e)return;U.value=!1,G.value=!0,ge.value&&=(clearTimeout(ge.value),null);let t=await new Promise(t=>{e.onstop=()=>t(new Blob(me.value,{type:`audio/webm`})),e.stop()});try{if(t.size===0)throw Error(`MIC_AUDIO_INVALID`);let e=new FormData;e.append(`audio`,t,`voice.webm`),e.append(`language`,f.global.voiceLanguage||`auto`);let n=await fetch(`/api/voice/workspaces/${encodeURIComponent(i.workspaceId)}/transcribe`,{method:`POST`,body:e});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(String(e.code??e.error??`HTTP_${n.status}`))}let r=await n.json();r.text?.trim()&&(b.value=b.value?`${b.value.trimEnd()} ${r.text.trim()}`:r.text.trim())}catch(e){let t=e instanceof Error?e.message:`TRANSCRIPTION_FAILED`;c.notify({type:`negative`,message:o({VOICE_DISABLED:`voice.errorDisabled`,MODEL_NOT_CONFIGURED:`voice.errorModelMissing`,MODEL_NOT_INSTALLED:`voice.errorModelNotInstalled`,VOICE_RUNTIME_MISSING:`voice.errorRuntimeMissing`,MIC_AUDIO_INVALID:`voice.errorAudioInvalid`,LANGUAGE_INVALID:`voice.errorLanguageInvalid`,TRANSCRIPTION_TIMEOUT:`voice.errorTranscription`}[t]??`voice.errorTranscription`),position:`top`,timeout:5e3})}finally{fe.value=null,me.value=[],pe.value?.getTracks().forEach(e=>{e.stop()}),pe.value=null,G.value=!1}}function Ye(e){return Be.value?f.global.voicePttKey===`ctrl+space`?e.ctrlKey&&e.code===`Space`:e.key===`Alt`:!1}function Xe(e){!Ye(e)||e.repeat||(e.preventDefault(),Je())}function Ze(e){Ye(e)&&(e.preventDefault(),$())}function Qe(){U.value&&$()}function $e(){document.visibilityState!==`visible`&&U.value&&$()}function et(e){if(N.value&&I.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),P.value=Math.min(P.value+1,I.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),P.value=Math.max(P.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Ne(I.value[P.value]);return}if(e.key===`Escape`){e.preventDefault(),R();return}}if(e.key===`ArrowUp`&&Z.value.length>0){let t=e.target;if(!(!t||t.selectionStart<=(b.value.indexOf(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-LlMDs201.js","assets/index-DRHsozfK.js","assets/vue-i18n-cyuEW5NY.js","assets/runtime-core.esm-bundler-DPcTPMmX.js","assets/QIcon-0rjEivgj.js","assets/use-id-BQW6DfJU.js","assets/notifications-BzyK_kYE.js","assets/QBtn-CLU6snCm.js","assets/QRadio-BEsMlsx1.js","assets/use-checkbox-DzLCp4E3.js","assets/QInput-Ciqjq5-e.js","assets/QCheckbox-skYuqkHX.js","assets/QToggle-aBvIHg6j.js","assets/index-5ydpLSpt.css","assets/_plugin-vue_export-helper-Cj6tcsj6.js","assets/purify.es-DfpOsee9.js","assets/QExpansionItem-BFqbf9C7.js","assets/QItemSection-DZnyqPM3.js","assets/QItemLabel-B0tYxHQg.js","assets/QTooltip-DdpeVKGV.js","assets/render-chat-markdown-CeI636ZV.js","assets/TouchPan-DPBZDRzA.js","assets/touch-2Qa-HSDZ.js","assets/QSpinnerDots-CluOpUgq.js","assets/documents-qOarUoMj.js","assets/ActivityFeed-WjiQ9716.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as e,E as t,F as n,G as r,I as i,L as a,M as o,N as s,S as c,T as l,U as u,W as d,_ as f,a as p,d as m,f as h,g,h as _,i as v,it as y,k as b,l as x,p as S,r as C,u as w,v as T,vt as E,w as ee,xt as D,y as O}from"./runtime-core.esm-bundler-DPcTPMmX.js";import{H as te,P as k,U as A,a as j,i as ne,m as M,n as N,r as re,s as P,t as F,v as ie}from"./QIcon-0rjEivgj.js";import{r as I}from"./use-id-BQW6DfJU.js";import{s as ae}from"./notifications-BzyK_kYE.js";import{n as oe,r as se,t as L}from"./QRadio-BEsMlsx1.js";import{c as R,t as z}from"./QBtn-CLU6snCm.js";import{n as B}from"./vue-i18n-cyuEW5NY.js";import{t as ce}from"./QInput-Ciqjq5-e.js";import{t as V}from"./QCheckbox-skYuqkHX.js";import{c as H,f as le,h as ue,i as U,m as W,n as G,o as de,r as fe,u as K,v as pe,y as me}from"./index-DRHsozfK.js";import{t as he}from"./QSpinnerDots-CluOpUgq.js";import{n as ge,t as _e}from"./QItemSection-DZnyqPM3.js";import{t as ve}from"./QItemLabel-B0tYxHQg.js";import{m as ye,t as q}from"./QTooltip-DdpeVKGV.js";import{t as J}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as be}from"./QBadge-u0mEz_W1.js";import{t as Y}from"./QSpace-BrtkvWzZ.js";import{t as X}from"./QMenu-Cx3v9_6z.js";import{t as xe}from"./ClosePopup-C5EF3QrA.js";import{t as Se}from"./use-quasar-C5gKpYwL.js";import{a as Ce,c as we,i as Te,o as Ee,r as De,s as Oe,t as ke}from"./engineFeatures-DYvwpYlV.js";import{t as Ae}from"./kobo-commands-Bh5k0Smw.js";import{t as je}from"./formatters-CgfY9uSI.js";import{a as Me,i as Ne,r as Pe,t as Fe}from"./permissionModes-B1595Yfm.js";import{t as Ie}from"./QPage-CGYPttdA.js";import{a as Le,i as Re,n as ze,r as Be,t as Ve}from"./expand-template-BBEWjwKv.js";var He={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},Ue={key:0,class:`q-ml-xs`},Z=T({__name:`AgentBusyBanner`,setup(e){let{t}=B(),r=H(),i=ee(`openDrawerTab`),a=x(()=>r.currentSubagents.filter(e=>e.status===`running`).length),o=x(()=>{let e=r.selectedWorkspace;return e?K(e.status):!1});function s(){i?.(`subagents`)}return(e,r)=>o.value?(n(),S(`div`,He,[g(he,{size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),w(`span`,null,D(y(t)(`agentBusy.banner`)),1),a.value>0?(n(),S(`span`,Ue,` — `+D(y(t)(`agentBusy.subagentsRunning`,{n:a.value},a.value)),1)):h(``,!0),a.value>0?(n(),S(C,{key:1},[g(Y),w(`span`,{class:`text-indigo-4 cursor-pointer`,style:{"text-decoration":`underline`},onClick:s},D(y(t)(`agentBusy.viewSubagents`)),1)],64)):h(``,!0)])):h(``,!0)}}),Q=k({name:`QBanner`,props:{...re,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:t}){let{proxy:{$q:n}}=O(),r=N(e,n),i=x(()=>`q-banner row items-center`+(e.dense===!0?` q-banner--dense`:``)+(r.value===!0?` q-banner--dark q-dark`:``)+(e.rounded===!0?` rounded-borders`:``)),a=x(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?`auto`:`all`}`);return()=>{let n=[c(`div`,{class:`q-banner__avatar col-auto row items-center self-start`},P(t.avatar)),c(`div`,{class:`q-banner__content col text-body2`},P(t.default))],r=P(t.action);return r!==void 0&&n.push(c(`div`,{class:a.value},r)),c(`div`,{class:i.value+(e.inlineActions===!1&&r!==void 0?` q-banner--top-padding`:``),role:`alert`},n)}}}),We={class:`text-subtitle2`},Ge={class:`text-caption`},Ke=T({__name:`AgentErrorBanner`,props:{workspaceId:{}},setup(e){let t=e,{t:r}=B(),i=le();async function a(){let e=c.value;if(e){i.removeByEventId(t.workspaceId,e);try{await fetch(`/api/workspaces/${t.workspaceId}/events/${e}`,{method:`DELETE`})}catch(e){console.warn(`[agent-error-banner] failed to persist dismiss:`,e)}}}function o(e){let t=e.replace(/\u001b\[\d+m/g,``).trim();return/^warning:/i.test(t)}let s=x(()=>{let e=i.eventsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.kind!==`error`||n.category===`quota`)&&!(n.category===`other`&&o(n.message)))return n}return null}),c=x(()=>{let e=i.eventsFor(t.workspaceId),n=i.eventIdsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let r=e[t];if(!(r.kind!==`error`||r.category===`quota`)&&!(r.category===`other`&&o(r.message)))return n[t]??null}return null}),l=s;return(e,t)=>y(l)?(n(),m(Q,{key:0,class:`bg-negative text-white q-ma-sm`},{avatar:d(()=>[g(F,{name:`error_outline`})]),action:d(()=>[g(z,{flat:``,dense:``,round:``,icon:`close`,"aria-label":y(r)(`common.close`),onClick:a},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(r)(`common.close`)),1)]),_:1})]),_:1},8,[`aria-label`])]),default:d(()=>[w(`div`,We,D(y(r)(`agent.error.${y(l).category}`)),1),w(`div`,Ge,D(y(l).message),1)]),_:1})):h(``,!0)}}),qe=k({name:`StepHeader`,props:{stepper:{},step:{},goToPanel:Function},setup(t,{attrs:n}){let{proxy:{$q:i}}=O(),a=e(null),o=x(()=>t.stepper.modelValue===t.step.name),s=x(()=>{let e=t.step.disable;return e===!0||e===``}),l=x(()=>{let e=t.step.error;return e===!0||e===``}),u=x(()=>{let e=t.step.done;return s.value===!1&&(e===!0||e===``)}),d=x(()=>{let e=t.step.headerNav,n=e===!0||e===``||e===void 0;return s.value===!1&&t.stepper.headerNav&&n}),f=x(()=>t.step.prefix&&(o.value===!1||t.stepper.activeIcon===`none`)&&(l.value===!1||t.stepper.errorIcon===`none`)&&(u.value===!1||t.stepper.doneIcon===`none`)),p=x(()=>{let e=t.step.icon||t.stepper.inactiveIcon;if(o.value===!0){let n=t.step.activeIcon||t.stepper.activeIcon;return n===`none`?e:n||i.iconSet.stepper.active}if(l.value===!0){let n=t.step.errorIcon||t.stepper.errorIcon;return n===`none`?e:n||i.iconSet.stepper.error}if(s.value===!1&&u.value===!0){let n=t.step.doneIcon||t.stepper.doneIcon;return n===`none`?e:n||i.iconSet.stepper.done}return e}),m=x(()=>{let e=l.value===!0?t.step.errorColor||t.stepper.errorColor:void 0;if(o.value===!0){let n=t.step.activeColor||t.stepper.activeColor||t.step.color;return n===void 0?e:n}return e===void 0?s.value===!1&&u.value===!0?t.step.doneColor||t.stepper.doneColor||t.step.color||t.stepper.inactiveColor:t.step.color||t.stepper.inactiveColor:e}),h=x(()=>`q-stepper__tab col-grow flex items-center no-wrap relative-position`+(m.value===void 0?``:` text-${m.value}`)+(l.value===!0?` q-stepper__tab--error q-stepper__tab--error-with-`+(f.value===!0?`prefix`:`icon`):``)+(o.value===!0?` q-stepper__tab--active`:``)+(u.value===!0?` q-stepper__tab--done`:``)+(d.value===!0?` q-stepper__tab--navigation q-focusable q-hoverable`:``)+(s.value===!0?` q-stepper__tab--disabled`:``)),g=x(()=>t.stepper.headerNav===!0?d.value:!1);function _(){a.value?.focus(),o.value===!1&&t.goToPanel(t.step.name)}function v(e){e.keyCode===13&&o.value===!1&&t.goToPanel(t.step.name)}return()=>{let e={class:h.value};d.value===!0&&(e.onClick=_,e.onKeyup=v,Object.assign(e,s.value===!0?{tabindex:-1,"aria-disabled":`true`}:{tabindex:n.tabindex||0}));let i=[c(`div`,{class:`q-focus-helper`,tabindex:-1,ref:a}),c(`div`,{class:`q-stepper__dot row flex-center q-stepper__line relative-position`},[c(`span`,{class:`row flex-center`},[f.value===!0?t.step.prefix:c(F,{name:p.value})])])];if(t.step.title!==void 0&&t.step.title!==null){let e=[c(`div`,{class:`q-stepper__title`},t.step.title)];t.step.caption!==void 0&&t.step.caption!==null&&e.push(c(`div`,{class:`q-stepper__caption`},t.step.caption)),i.push(c(`div`,{class:`q-stepper__label q-stepper__line relative-position`},e))}return r(c(`div`,e,i),[[R,g.value]])}}});function Je(e){return c(`div`,{class:`q-stepper__step-content`},[c(`div`,{class:`q-stepper__step-inner`},P(e.default))])}var $={setup(e,{slots:t}){return()=>Je(t)}},Ye=k({name:`QStep`,props:{...Ce,icon:String,color:String,title:{type:String,required:!0},caption:String,prefix:[String,Number],doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String,headerNav:{type:Boolean,default:!0},done:Boolean,error:Boolean,onScroll:[Function,Array]},setup(t,{slots:n,emit:r}){let{proxy:{$q:i}}=O(),a=ee(ie,M);if(a===M)return console.error(`QStep needs to be a child of QStepper`),M;let{getCache:o}=we(),s=e(null),l=x(()=>a.value.modelValue===t.name),u=x(()=>i.platform.is.ios!==!0&&i.platform.is.chrome===!0||l.value!==!0||a.value.vertical!==!0?{}:{onScroll(e){let{target:n}=e;n.scrollTop>0&&(n.scrollTop=0),t.onScroll!==void 0&&r(`scroll`,e)}}),d=x(()=>typeof t.name==`string`||typeof t.name==`number`?t.name:String(t.name));function f(){let e=a.value.vertical;return e===!0&&a.value.keepAlive===!0?c(v,a.value.keepAliveProps.value,l.value===!0?[c(a.value.needsUniqueKeepAliveWrapper.value===!0?o(d.value,()=>({...$,name:d.value})):$,{key:d.value},n.default)]:void 0):e!==!0||l.value===!0?Je(n):void 0}return()=>c(`div`,{ref:s,class:`q-stepper__step`,role:`tabpanel`,...u.value},a.value.vertical===!0?[c(qe,{stepper:a.value,step:t,goToPanel:a.value.goToPanel}),a.value.animated===!0?c(ye,f):f()]:[f()])}}),Xe=k({name:`QStepperNavigation`,setup(e,{slots:t}){return()=>c(`div`,{class:`q-stepper__nav`},P(t.default))}}),Ze=/(-\w)/g;function Qe(e){let t={};for(let n in e){let r=n.replace(Ze,e=>e[1].toUpperCase());t[r]=e[n]}return t}var $e=k({name:`QStepper`,props:{...re,...Oe,flat:Boolean,bordered:Boolean,alternativeLabels:Boolean,headerNav:Boolean,contracted:Boolean,headerClass:String,inactiveColor:String,inactiveIcon:String,doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String},emits:Ee,setup(e,{slots:t}){let n=N(e,O().proxy.$q),{updatePanelsList:r,isValidPanelName:a,updatePanelIndex:o,getPanelContent:s,getPanels:l,panelDirectives:u,goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p}=Te();i(ie,x(()=>({goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p,...e})));let m=x(()=>`q-stepper q-stepper--${e.vertical===!0?`vertical`:`horizontal`}`+(e.flat===!0?` q-stepper--flat`:``)+(e.bordered===!0?` q-stepper--bordered`:``)+(n.value===!0?` q-stepper--dark q-dark`:``)),h=x(()=>`q-stepper__header row items-stretch justify-between q-stepper__header--${e.alternativeLabels===!0?`alternative`:`standard`}-labels`+(e.flat===!1||e.bordered===!0?` q-stepper__header--border`:``)+(e.contracted===!0?` q-stepper__header--contracted`:``)+(e.headerClass===void 0?``:` ${e.headerClass}`));function g(){let n=P(t.message,[]);if(e.vertical===!0){a(e.modelValue)&&o();let r=c(`div`,{class:`q-stepper__content`},P(t.default));return n===void 0?[r]:n.concat(r)}return[c(`div`,{class:h.value},l().map(t=>{let n=Qe(t.props);return c(qe,{key:n.name,stepper:e,step:n,goToPanel:d})})),n,ne(`div`,{class:`q-stepper__content q-panel-parent`},s(),`cont`,e.swipeable,()=>u.value)]}return()=>(r(t),c(`div`,{class:m.value},j(t.navigation,g())))}}),et=`__KOBO_OTHER__`,tt=`Other — the user will provide a free-form clarification in their next message. Please wait for their input before proceeding.`;function nt(e,t){if(t)return(Array.isArray(e)?e:[]).map(e=>e===`__KOBO_OTHER__`?tt:e).join(`, `);let n=Array.isArray(e)?e[0]??``:e;return n===`__KOBO_OTHER__`?tt:n}var rt={class:`text-grey-3`},it={key:0,class:`text-grey-6 q-ml-xs`},at={key:1,class:`text-grey-6 q-ml-xs`},ot=T({__name:`AukqOptionLabel`,props:{label:{},description:{}},setup(e){let t=e,{t:r}=B(),i=x(()=>t.label===et);return(t,a)=>(n(),S(C,null,[w(`span`,rt,D(i.value?y(r)(`askUserQuestion.otherOption`):e.label),1),i.value?(n(),S(`span`,it,`— `+D(y(r)(`askUserQuestion.otherOptionHint`)),1)):e.description?(n(),S(`span`,at,`— `+D(e.description),1)):h(``,!0)],64))}}),st={key:0,class:`ask-user-question-panel q-pa-sm bg-dark text-grey-3`},ct={class:`row items-center q-mb-xs`},lt={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},ut={key:0,class:`text-caption text-grey-6`},dt={class:`text-body2 text-grey-2 q-mb-sm`},ft={key:0,class:`text-caption text-grey-6 q-mb-xs`},pt={class:`aukq-options column q-gutter-xs`},mt={class:`row items-center q-gutter-sm`},ht={key:3,class:`text-negative text-caption`},gt=J(T({__name:`AskUserQuestionPanel`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),o=H(),s=x(()=>{let e=o.peekPending(r.workspaceId);if(!(!e||e.kind!==`question`))return e}),c=x(()=>s.value?(s.value.input?.questions??[]).map(e=>({...e,options:[...e.options,{label:et}]})):[]),l=x(()=>c.value[T.value]),f=e({}),p=e({}),v=e(!1),b=e(null),T=e(0);u(c,e=>{f.value=Object.fromEntries(e.map(e=>[e.question,[]])),p.value=Object.fromEntries(e.map(e=>[e.question,``])),b.value=null,T.value=0,v.value=!1},{immediate:!0});function E(e,t){return e.header?e.header:`Q${t+1}`}function ee(e){return te(e)?`check`:`help_outline`}function O(e){let t=c.value[e];return t?t.multiSelect?(f.value[t.question]??[]).length>0:!!p.value[t.question]:!1}function te(e){return O(e)&&e<T.value}let k=x(()=>T.value===c.value.length-1),A=x(()=>c.value.every((e,t)=>O(t)));function j(){T.value<c.value.length-1&&(T.value+=1)}function ne(){T.value>0&&--T.value}async function M(){if(!v.value){v.value=!0,b.value=null;try{let e={};for(let t of c.value)t.multiSelect?e[t.question]=nt(f.value[t.question]??[],!0):e[t.question]=nt(p.value[t.question]??``,!1);await o.submitDeferredAnswer(r.workspaceId,e,s.value?.toolCallId)}catch(e){b.value=e instanceof Error?e.message:String(e)}finally{v.value=!1}}}async function N(){if(!v.value){v.value=!0,b.value=null;try{await o.cancelDeferredAnswer(r.workspaceId,`User cancelled the question via the UI`,s.value?.toolCallId)}catch(e){b.value=e instanceof Error?e.message:String(e)}finally{v.value=!1}}}return(e,t)=>s.value?(n(),S(`div`,st,[w(`div`,ct,[g(F,{name:`question_answer`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),w(`div`,lt,D(y(i)(`askUserQuestion.title`)),1),g(Y),c.value.length>1?(n(),S(`span`,ut,D(T.value+1)+` / `+D(c.value.length),1)):h(``,!0)]),l.value?(n(),m($e,{key:0,ref:`stepperRef`,modelValue:T.value,"onUpdate:modelValue":t[0]||=e=>T.value=e,flat:``,dark:``,animated:``,"header-nav":``,class:`aukq-stepper bg-transparent`,color:`amber-5`,"active-color":`amber-4`,"done-color":`amber-5`},{navigation:d(()=>[g(Xe,null,{default:d(()=>[w(`div`,mt,[T.value>0?(n(),m(z,{key:0,flat:``,dense:``,color:`grey-4`,label:y(i)(`askUserQuestion.previous`),disable:v.value,onClick:ne},null,8,[`label`,`disable`])):h(``,!0),k.value?(n(),m(z,{key:2,label:y(i)(`askUserQuestion.submit`),color:`indigo-5`,dense:``,unelevated:``,loading:v.value,disable:!A.value||v.value,onClick:M},null,8,[`label`,`loading`,`disable`])):(n(),m(z,{key:1,label:y(i)(`askUserQuestion.next`),color:`indigo-5`,dense:``,unelevated:``,disable:!O(T.value)||v.value,onClick:j},null,8,[`label`,`disable`])),g(z,{label:y(i)(`askUserQuestion.cancel`),flat:``,dense:``,color:`grey-4`,disable:v.value,onClick:N},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(i)(`askUserQuestion.cancelTooltip`)),1)]),_:1})]),_:1},8,[`label`,`disable`]),g(Y),b.value?(n(),S(`span`,ht,D(b.value),1)):h(``,!0)])]),_:1})]),default:d(()=>[(n(!0),S(C,null,a(c.value,(e,t)=>(n(),m(Ye,{key:t,name:t,title:E(e,t),icon:ee(t),"active-icon":`edit`,done:te(t),"header-nav":te(t)||t===T.value},{default:d(()=>[w(`div`,dt,D(e.question),1),e.multiSelect?(n(),S(`div`,ft,D(y(i)(`askUserQuestion.multiSelectHint`)),1)):h(``,!0),w(`div`,pt,[e.multiSelect?(n(!0),S(C,{key:0},a(e.options,t=>(n(),m(V,{key:t.label,modelValue:f.value[e.question],"onUpdate:modelValue":t=>f.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:v.value},{default:d(()=>[g(ot,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128)):(n(!0),S(C,{key:1},a(e.options,t=>(n(),m(L,{key:t.label,modelValue:p.value[e.question],"onUpdate:modelValue":t=>p.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:v.value},{default:d(()=>[g(ot,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128))])]),_:2},1032,[`name`,`title`,`icon`,`done`,`header-nav`]))),128))]),_:1},8,[`modelValue`])):h(``,!0)])):h(``,!0)}}),[[`__scopeId`,`data-v-ab068179`]]);function _t(e,t){return e===`five_hour`?t(`rateLimitType.fiveHour`):e===`seven_day`?t(`rateLimitType.sevenDay`):e}function vt(e,t){try{let n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleTimeString(t?.locale,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:t?.timeZone})}catch{return e}}function yt(e,t,n){return e.id===`text-detected`&&e.resetAt?n(`stats.resetsAt`,{value:vt(e.resetAt)}):!e.label||e.label.trim().length===0?n(`stats.usageBucket`,{n:t+1}):_t(e.label,n)}function bt(e){return e<50?`positive`:e<75?`warning`:e<90?`orange`:`negative`}var xt={class:`quota-footer`},St={key:0,class:`text-grey-7`},Ct={class:`text-negative text-weight-medium`},wt={class:`text-weight-medium q-mb-sm`},Tt={class:`text-caption q-mb-sm`},Et={class:`text-orange text-weight-medium`},Dt={class:`text-weight-medium q-mb-sm`},Ot={class:`text-caption text-orange q-mb-sm`},kt={class:`text-grey-8`},At={class:`text-weight-medium q-mb-sm`},jt={class:`row items-center justify-between q-mb-xs`},Mt={key:0,class:`text-caption q-mt-xs`},Nt={class:`text-caption q-mt-sm`},Pt={class:`row q-gutter-sm q-mt-sm`},Ft=J(T({__name:`QuotaFooter`,setup(t){let r=H(),{t:i}=B(),o=x(()=>r.currentProviderUsage),s=e(!1),c=x(()=>{let e=o.value;if(!e)return``;try{return new Date(e.fetchedAt).toLocaleTimeString()}catch{return e.fetchedAt}});function l(e,t){let n=o.value?.buckets[t];return n?yt({id:n.id,label:e,usedPct:n.usedPct,resetAt:n.resetsAt},t,i):i(`stats.usageBucket`,{n:t+1})}async function u(){if(!s.value){s.value=!0;try{await r.requestUsageRefresh(`claude-code`)}finally{s.value=!1}}}return(e,t)=>(n(),S(`span`,xt,[o.value?o.value.status===`unauthenticated`?(n(),S(C,{key:1},[g(F,{name:`warning`,color:`negative`,size:`14px`,class:`q-mr-xs`}),w(`span`,Ct,D(e.$t(`quotaFooter.popover.unauthenticated`)),1),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,wt,D(e.$t(`quotaFooter.popover.title`)),1),w(`div`,Tt,D(e.$t(`quotaFooter.popover.unauthenticatedHint`)),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):o.value.status===`error`?(n(),S(C,{key:2},[g(F,{name:`error_outline`,color:`orange`,size:`14px`,class:`q-mr-xs`}),w(`span`,Et,D(e.$t(`quotaFooter.popover.error`)),1),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,Dt,D(e.$t(`quotaFooter.popover.title`)),1),w(`div`,Ot,D(o.value.errorMessage),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):(n(),S(C,{key:3},[(n(!0),S(C,null,a(o.value.buckets,(e,t)=>(n(),S(`span`,{key:e.id,class:`quota-bucket-compact`},[w(`span`,kt,D(l(e.label,t)),1),g(se,{value:Math.max(0,Math.min(1,e.usedPct/100)),color:y(bt)(e.usedPct),"track-color":`grey-9`,class:`quota-bar`},null,8,[`value`,`color`]),w(`span`,{class:E([`bucket-pct`,`text-${y(bt)(e.usedPct)}`])},D(e.usedPct.toFixed(0))+`%`,3)]))),128)),g(X,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:d(()=>[w(`div`,At,D(e.$t(`quotaFooter.popover.title`)),1),(n(!0),S(C,null,a(o.value.buckets,(t,r)=>(n(),S(`div`,{key:t.id,class:`q-mb-sm`},[w(`div`,jt,[w(`span`,null,D(l(t.label,r)),1),w(`span`,{class:E(`text-${y(bt)(t.usedPct)}`)},D(t.usedPct.toFixed(0))+`%`,3)]),g(se,{value:Math.max(0,Math.min(1,t.usedPct/100)),color:y(bt)(t.usedPct),"track-color":`grey-9`,class:`full-bar`},null,8,[`value`,`color`]),t.resetsAt?(n(),S(`div`,Mt,D(e.$t(`quotaFooter.popover.resetsIn`,{value:y(vt)(t.resetsAt)})),1)):h(``,!0)]))),128)),w(`div`,Nt,D(e.$t(`quotaFooter.lastUpdated`,{time:c.value})),1),w(`div`,Pt,[g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:s.value,disable:s.value,onClick:u},null,8,[`label`,`loading`,`disable`])])]),_:1})],64)):(n(),S(`span`,St,D(e.$t(`quotaFooter.empty`)),1))]))}}),[[`__scopeId`,`data-v-2edf9322`]]),It={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},Lt={class:`text-caption image-tag-label`},Rt={key:2,class:`queue-banner row items-center q-pa-xs q-px-sm text-caption text-amber-6`},zt={key:3,class:`autoloop-banner row items-center no-wrap q-pa-xs q-px-sm text-caption text-indigo-3`},Bt={class:`col`},Vt={key:4,class:`awaiting-user-banner row items-center q-pa-xs q-px-sm text-caption text-amber-5`},Ht={class:`row items-center q-gutter-sm`},Ut={class:`chat-hint row items-center text-caption text-grey-8`},Wt={key:0,class:`row items-center text-caption text-amber-6 q-mr-sm`},Gt=6e4,Kt=J(T({__name:`ChatInput`,props:{workspaceId:{}},setup(r){let i=r,{t:o}=B(),c=Se(),l=H(),f=ae(),p=de(),v=W(),b=e(``),T=e(!1),ee=x(()=>K(l.selectedWorkspace?.status)),O=x(()=>ke(l.selectedWorkspace?.engine));async function te(){if(i.workspaceId){T.value=!0;try{await l.interruptAgent(i.workspaceId),c.notify({type:`info`,message:o(`workspacePage.interrupted`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:o(`workspacePage.interruptFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{T.value=!1}}}let k=x(()=>K(l.selectedWorkspace?.status)),j=x(()=>!!l.queuedMessages[i.workspaceId]),ne=e(null);function M(){let e=ne.value;return e?e.getNativeElement?.()??null:null}let{showSkills:N,skillFilter:re,selectedSkillIndex:P,groupedDropdown:ie,flatDropdown:I,fetchSkills:oe,detectSlashFragment:se,replaceFragmentWith:L,closeDropdown:R}=Re(b,()=>M()),V=e([]),le=e(null),ue=e(!1),U=e(!1),G=e(!1),fe=e(null),pe=e(null),me=e([]),ge=e(null),_e=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function ve(e){let n=M(),r=n?.selectionStart??b.value.length,i=b.value.slice(0,r),a=b.value.slice(r);b.value=i+e+a,t(()=>{if(n){let t=r+e.length;n.focus(),n.setSelectionRange(t,t)}})}function ye(){let e=`[image: ${o(`chatInput.uploading`)}]`,t=new Set(V.value.map(e=>e.placeholder));if(!t.has(e))return e;let n=2;for(;t.has(`[image: ${o(`chatInput.uploading`)} ${n}]`);)n++;return`[image: ${o(`chatInput.uploading`)} ${n}]`}async function J(e){if(!_e.includes(e.type))return;let t=crypto.randomUUID(),n=e.name||`pasted-image.png`,r=ye(),a={tempId:t,originalName:n,placeholder:r,status:`uploading`};V.value.push(a),ve(r);try{let n=new FormData;n.append(`image`,e);let r=await fetch(`/api/workspaces/${i.workspaceId}/images`,{method:`POST`,body:n});if(!r.ok){let e=await r.json();throw Error(e.error||`Upload failed`)}let a=await r.json(),o=V.value.find(e=>e.tempId===t);if(o){o.uid=a.uid,o.path=a.path,o.status=`ready`;let e=`[image: ${a.path}]`;e!==o.placeholder&&(b.value=b.value.split(o.placeholder).join(e),o.placeholder=e)}}catch{let e=V.value.find(e=>e.tempId===t);e&&(e.status=`error`)}}function be(e,t){fetch(`/api/workspaces/${e}/images/${t}`,{method:`DELETE`}).catch(()=>{})}function X(e){let t=V.value.find(t=>t.tempId===e);if(t){V.value=V.value.filter(t=>t.tempId!==e);{let e=t.placeholder.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);b.value=b.value.replace(RegExp(`${e}\\s?`,`g`),``)}t.uid&&be(i.workspaceId,t.uid)}}function xe(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&J(e)}}}function Ce(e){if(e.preventDefault(),ue.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))_e.includes(t.type)&&J(t)}function we(e){e.preventDefault(),ue.value=!0}function Te(){ue.value=!1}function Ee(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))J(e);t.value=``}}let De=x(()=>V.value.some(e=>e.status===`uploading`)),Oe=x(()=>l.sessions.find(e=>e.id===l.selectedSessionId)??null);oe(),u(()=>l.chatDraft,e=>{e&&(b.value=b.value?`${b.value}\n${e}`:e,l.chatDraft=``)});let je=!1;function Me(){je=!0,l.cancelQueuedMessage(i.workspaceId)}u(j,(e,t)=>{t&&!e&&!je&&(b.value=``),je=!1}),u(()=>i.workspaceId,e=>{let t=l.queuedMessages[e];b.value=t?t.content:``,U.value&&$()}),u(b,async()=>{await t(),await se();let e=[];for(let t of V.value)b.value.includes(t.placeholder)||e.push(t.tempId);for(let t of e)X(t)}),window.addEventListener(`keydown`,Xe),window.addEventListener(`keyup`,Ze),window.addEventListener(`blur`,Qe),document.addEventListener(`visibilitychange`,$e),s(()=>{window.removeEventListener(`keydown`,Xe),window.removeEventListener(`keyup`,Ze),window.removeEventListener(`blur`,Qe),document.removeEventListener(`visibilitychange`,$e),ge.value&&=(clearTimeout(ge.value),null),U.value&&$()});function Ne(e){if(!e)return;if(e.type===`template`){let t=v.templates.find(t=>t.slug===e.name);if(!t)return;let n=l.workspaces.find(e=>e.id===i.workspaceId)??null,r=l.gitStatsCache[i.workspaceId]??null,a=l.sessions.find(e=>e.id===l.selectedSessionId)??null,s=null;if(a)if(a.name)s=a.name;else{let e=l.sessions.findIndex(e=>e.id===a.id);s=o(`workspacePage.session`,{n:l.sessions.length-e})}let c;if(r?.prUrl){let e=r.prUrl.match(/\/pull\/(\d+)/);e&&(c=parseInt(e[1],10))}let u=Ve({workspace:n?{name:n.name,workingBranch:n.workingBranch,sourceBranch:n.sourceBranch,projectPath:n.projectPath}:null,gitStats:r?{commitCount:r.commitCount,unpushedCount:r.unpushedCount,filesChanged:r.filesChanged,insertions:r.insertions,deletions:r.deletions,prNumber:c,prUrl:r.prUrl,prState:r.prState}:null,sessionName:s});L(ze(t.content,u)),R();return}let t=`/${e.name}`;if(e.type===`kobo`&&Ae[t]){b.value=t,R(),qe();return}L(`${t} `),R()}let Pe=x(()=>{let e=i.workspaceId;if(!e)return!1;let t=l.autoLoopStates[e];return t?.auto_loop===!0&&t?.auto_loop_ready===!0}),Fe=x(()=>l.selectedWorkspace?.status===`awaiting-user`),Ie=x(()=>!i.workspaceId||Pe.value||Fe.value),Be=x(()=>f.global.voiceEnabled&&!Ie.value),He=e(!1);async function Ue(){if(!(!i.workspaceId||He.value)){He.value=!0;try{await l.disableAutoLoop(i.workspaceId)}finally{He.value=!1}}}let Z=e(JSON.parse(localStorage.getItem(`kobo:chatHistory`)??`[]`)),Q=e(-1),We=e(``);function Ge(e){e&&Z.value[0]!==e&&(Z.value.unshift(e),Z.value.length>50&&Z.value.pop(),localStorage.setItem(`kobo:chatHistory`,JSON.stringify(Z.value)))}function Ke(){Q.value=-1,We.value=``}async function qe(){let e=b.value.trim();if(!e&&V.value.length===0||Ie.value||De.value)return;let t=Oe.value,n=Ae[e];if(n){p.sendChatMessage(i.workspaceId,n.prompt,l.selectedSessionId??void 0),l.markRead(i.workspaceId),l.addActivityItem(i.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:n.prompt,timestamp:new Date().toISOString(),sessionId:l.selectedSessionId??void 0,meta:{sender:`user`,pending:!0}}),Ge(e),Ke(),b.value=``;return}if(k.value){l.queueMessage(i.workspaceId,e,l.selectedSessionId??void 0);return}l.cancelQueuedMessage(i.workspaceId);let r=e,a=V.value.filter(e=>e.status===`ready`&&e.path&&!r.includes(`[image: ${e.path}]`)).map(e=>`[image: ${e.path}]`).join(` `);a&&(r=`${r} ${a}`.trim());let s=l.selectedSessionId??void 0;if((t?.status===`completed`||t?.status===`error`)&&!t.engineSessionId){c.notify({type:`warning`,message:o(`workspacePage.sessionEndedNotice`),position:`top`,timeout:5e3});return}let u=`user-${Date.now()}`;l.markRead(i.workspaceId),l.addActivityItem(i.workspaceId,{id:u,type:`text`,content:r,timestamp:new Date().toISOString(),sessionId:s,meta:{sender:`user`,pending:!0}});let d=e;Ge(e),Ke(),b.value=``,V.value=[];let f=(e,t)=>{console.error(`[ChatInput] ${t} failed:`,e),l.removeActivityItem(i.workspaceId,u),b.value=d;let n=e instanceof Error?e.message:null;c.notify({type:`negative`,message:n??o(`workspacePage.startFailed`),position:`top`,timeout:6e3})};if(t?.status===`idle`)try{await l.startWorkspace(i.workspaceId,r,t.id),await l.fetchSessions(i.workspaceId)}catch(e){f(e,`startWorkspace`)}else if(t?.status===`completed`||t?.status===`error`)try{await l.startWorkspace(i.workspaceId,r,t.id,!0),await l.fetchSessions(i.workspaceId)}catch(e){f(e,`resume session`)}else p.sendChatMessage(i.workspaceId,r,l.selectedSessionId??void 0)}async function Je(){if(!(!Be.value||U.value||G.value)){if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`){c.notify({type:`warning`,message:o(`voice.notSupported`),position:`top`,timeout:4e3});return}try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});pe.value=e,me.value=[];let t=MediaRecorder.isTypeSupported(`audio/webm`)?`audio/webm`:``,n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e);n.ondataavailable=e=>{e.data&&e.data.size>0&&me.value.push(e.data)},n.start(),fe.value=n,U.value=!0,ge.value=setTimeout(()=>{$(),c.notify({type:`info`,message:o(`voice.maxDurationReached`),position:`top`,timeout:3500})},Gt)}catch{c.notify({type:`negative`,message:o(`voice.errorMicPermission`),position:`top`,timeout:5e3})}}}async function $(){if(!U.value)return;let e=fe.value;if(!e)return;U.value=!1,G.value=!0,ge.value&&=(clearTimeout(ge.value),null);let t=await new Promise(t=>{e.onstop=()=>t(new Blob(me.value,{type:`audio/webm`})),e.stop()});try{if(t.size===0)throw Error(`MIC_AUDIO_INVALID`);let e=new FormData;e.append(`audio`,t,`voice.webm`),e.append(`language`,f.global.voiceLanguage||`auto`);let n=await fetch(`/api/voice/workspaces/${encodeURIComponent(i.workspaceId)}/transcribe`,{method:`POST`,body:e});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(String(e.code??e.error??`HTTP_${n.status}`))}let r=await n.json();r.text?.trim()&&(b.value=b.value?`${b.value.trimEnd()} ${r.text.trim()}`:r.text.trim())}catch(e){let t=e instanceof Error?e.message:`TRANSCRIPTION_FAILED`;c.notify({type:`negative`,message:o({VOICE_DISABLED:`voice.errorDisabled`,MODEL_NOT_CONFIGURED:`voice.errorModelMissing`,MODEL_NOT_INSTALLED:`voice.errorModelNotInstalled`,VOICE_RUNTIME_MISSING:`voice.errorRuntimeMissing`,MIC_AUDIO_INVALID:`voice.errorAudioInvalid`,LANGUAGE_INVALID:`voice.errorLanguageInvalid`,TRANSCRIPTION_TIMEOUT:`voice.errorTranscription`}[t]??`voice.errorTranscription`),position:`top`,timeout:5e3})}finally{fe.value=null,me.value=[],pe.value?.getTracks().forEach(e=>{e.stop()}),pe.value=null,G.value=!1}}function Ye(e){return Be.value?f.global.voicePttKey===`ctrl+space`?e.ctrlKey&&e.code===`Space`:e.key===`Alt`:!1}function Xe(e){!Ye(e)||e.repeat||(e.preventDefault(),Je())}function Ze(e){Ye(e)&&(e.preventDefault(),$())}function Qe(){U.value&&$()}function $e(){document.visibilityState!==`visible`&&U.value&&$()}function et(e){if(N.value&&I.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),P.value=Math.min(P.value+1,I.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),P.value=Math.max(P.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Ne(I.value[P.value]);return}if(e.key===`Escape`){e.preventDefault(),R();return}}if(e.key===`ArrowUp`&&Z.value.length>0){let t=e.target;if(!(!t||t.selectionStart<=(b.value.indexOf(`
|
|
3
3
|
`)===-1?b.value.length:b.value.indexOf(`
|
|
4
|
-
`)))&&Q.value===-1)return;e.preventDefault(),Q.value===-1&&(We.value=b.value),Q.value<Z.value.length-1&&(Q.value++,b.value=Z.value[Q.value]);return}if(e.key===`ArrowDown`&&Q.value>=0){e.preventDefault(),Q.value--,b.value=Q.value>=0?Z.value[Q.value]:We.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),qe())}return(e,t)=>(n(),S(`div`,{class:E([`chat-input-container column q-pa-sm`,{"chat-input-dragging":ue.value}]),onDragover:we,onDragleave:Te,onDrop:Ce},[V.value.length>0?(n(),S(`div`,It,[(n(!0),S(C,null,a(V.value,t=>(n(),S(`div`,{key:t.tempId,class:E([`image-tag row items-center q-px-sm q-py-xs rounded-borders`,{"image-tag--uploading":t.status===`uploading`,"image-tag--ready":t.status===`ready`,"image-tag--error":t.status===`error`}])},[t.status===`uploading`?(n(),m(he,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):t.status===`ready`?(n(),m(F,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(n(),m(F,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),w(`span`,Lt,D(t.status===`uploading`?e.$t(`chatInput.uploading`):t.path||t.originalName),1),g(z,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:e=>X(t.tempId)},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`tooltip.removeImage`)),1)]),_:1})]),_:1},8,[`onClick`])],2))),128))])):h(``,!0),y(N)&&y(I).length>0?(n(),m(Le,{key:1,class:`chat-slash-popup`,"grouped-dropdown":y(ie),"flat-dropdown":y(I),"selected-index":y(P),onSelect:Ne},null,8,[`grouped-dropdown`,`flat-dropdown`,`selected-index`])):h(``,!0),j.value?(n(),S(`div`,Rt,[g(F,{name:`schedule`,size:`14px`,color:`amber-6`,class:`q-mr-sm`}),w(`span`,null,D(e.$t(`chatInput.queueBanner`)),1)])):h(``,!0),Pe.value?(n(),S(`div`,zt,[g(F,{name:`all_inclusive`,size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),w(`span`,Bt,D(e.$t(`chatInput.autoLoopBanner`)),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`stop_circle`,color:`orange-4`,label:e.$t(`chatInput.autoLoopStop`),loading:He.value,disable:He.value,onClick:Ue},null,8,[`label`,`loading`,`disable`])])):h(``,!0),Fe.value&&!Pe.value?(n(),S(`div`,Vt,[g(F,{name:`question_answer`,size:`14px`,color:`amber-5`,class:`q-mr-sm`}),w(`span`,null,D(e.$t(`chatInput.awaitingUserBanner`)),1)])):h(``,!0),w(`div`,Ht,[g(ce,{ref_key:`chatInputRef`,ref:ne,modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e,dense:``,dark:``,borderless:``,autogrow:``,readonly:j.value,placeholder:e.$t(`chatInput.placeholder`),"input-style":{maxHeight:`200px`,overflowY:`auto`},class:`chat-input col rounded-borders`,disable:Ie.value,onKeydown:et,onPaste:xe},null,8,[`modelValue`,`readonly`,`placeholder`,`disable`]),w(`input`,{ref_key:`fileInputRef`,ref:le,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:Ee},null,544),g(z,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:Ie.value,onClick:t[1]||=e=>le.value?.click()},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`chatInput.attachImage`)),1)]),_:1})]),_:1},8,[`disable`]),g(z,{flat:``,dense:``,icon:G.value?`hourglass_top`:U.value?`mic`:`mic_none`,color:U.value?`red-5`:G.value?`amber-6`:`grey-6`,disable:!Be.value||G.value,class:E({"voice-btn--recording":U.value}),onMousedown:A(Je,[`prevent`]),onMouseup:A($,[`prevent`]),onMouseleave:A($,[`prevent`]),onTouchstart:A(Je,[`prevent`]),onTouchend:A($,[`prevent`])},{default:d(()=>[g(q,null,{default:d(()=>[_(D(G.value?e.$t(`voice.transcribing`):U.value?e.$t(`voice.recording`):e.$t(`voice.holdToTalk`)),1)]),_:1})]),_:1},8,[`icon`,`color`,`disable`,`class`]),j.value?(n(),m(z,{key:0,flat:``,dense:``,icon:`cancel`,color:`orange`,onClick:Me},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`chatInput.cancelQueue`)),1)]),_:1})]),_:1})):(n(),m(z,{key:1,flat:``,dense:``,icon:`send`,color:`primary`,disable:Ie.value||!b.value.trim()&&V.value.length===0||De.value,onClick:qe},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`tooltip.sendMessage`)),1)]),_:1})]),_:1},8,[`disable`]))]),w(`div`,Ut,[w(`div`,null,[t[2]||=w(`kbd`,null,`Enter`,-1),_(` `+D(e.$t(`common.send`))+` `,1),t[3]||=w(`span`,{class:`q-mx-xs`},`·`,-1),t[4]||=_(),t[5]||=w(`kbd`,null,`Shift+Enter`,-1),_(` `+D(e.$t(`common.newLine`))+` `,1),t[6]||=w(`span`,{class:`q-mx-xs`},`·`,-1),t[7]||=_(),t[8]||=w(`kbd`,null,`↑↓`,-1),_(` `+D(e.$t(`common.history`)),1)]),g(Y),G.value?(n(),S(`div`,Wt,[g(he,{size:`14px`,color:`amber-6`,class:`q-mr-xs`}),w(`span`,null,D(e.$t(`voice.transcribing`)),1)])):h(``,!0),O.value?(n(),m(Ft,{key:1,class:`q-mr-md`})):h(``,!0),ee.value?(n(),m(z,{key:2,flat:``,dense:``,"no-caps":``,size:`sm`,color:`orange-4`,icon:`pause`,label:e.$t(`workspacePage.interrupt`),loading:T.value,disable:T.value,onClick:te},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.interruptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):h(``,!0)])],34))}}),[[`__scopeId`,`data-v-f074ca82`]]),qt={key:0,class:`permission-request-panel q-pa-sm bg-dark text-grey-3`},Jt={class:`row items-center q-mb-sm`},Yt={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},Xt={class:`text-body2 text-grey-2 q-mb-xs`},Zt={class:`text-weight-medium`},Qt={class:`q-ml-xs`},$t={class:`text-caption text-grey-6 q-mb-xs`},en={class:`permission-input-pre`},tn={class:`row items-center q-gutter-sm q-mt-sm`},nn={key:0,class:`text-negative text-caption`},rn=J(T({__name:`PermissionRequestPanel`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),a=H(),o=x(()=>{let e=a.peekPending(r.workspaceId);if(!(!e||e.kind!==`permission`))return e}),s=x(()=>{if(!o.value)return``;try{return JSON.stringify(o.value.toolInput,null,2)}catch{return String(o.value.toolInput)}}),c=e(!1),l=e(null);u(()=>o.value?.toolCallId??null,()=>{c.value=!1,l.value=null});async function d(e){if(o.value&&!c.value){c.value=!0,l.value=null;try{await a.submitDeferredPermission(r.workspaceId,o.value.toolCallId,e,e===`deny`?i(`permissionRequest.denied`):void 0)}catch(e){l.value=e instanceof Error?e.message:String(e)}finally{c.value=!1}}}return(e,t)=>o.value?(n(),S(`div`,qt,[w(`div`,Jt,[g(F,{name:`security`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),w(`div`,Yt,D(y(i)(`permissionRequest.title`)),1)]),w(`div`,Xt,[w(`span`,Zt,D(y(i)(`permissionRequest.tool`))+`:`,1),w(`code`,Qt,D(o.value.toolName),1)]),w(`div`,$t,D(y(i)(`permissionRequest.input`)),1),w(`pre`,en,D(s.value),1),w(`div`,tn,[g(z,{label:y(i)(`permissionRequest.allow`),color:`indigo-5`,dense:``,unelevated:``,loading:c.value,disable:c.value,onClick:t[0]||=e=>d(`allow`)},null,8,[`label`,`loading`,`disable`]),g(z,{label:y(i)(`permissionRequest.deny`),flat:``,dense:``,color:`grey-4`,disable:c.value,onClick:t[1]||=e=>d(`deny`)},null,8,[`label`,`disable`]),g(Y),l.value?(n(),S(`span`,nn,D(l.value),1)):h(``,!0)])])):h(``,!0)}}),[[`__scopeId`,`data-v-12227c33`]]),an={key:0,class:`quota-backoff-banner row items-center q-px-md q-py-sm`,style:{"background-color":`#b87333`,color:`#f0f0f0`}},on={class:`text-body2`},sn=T({__name:`QuotaBackoffBanner`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),a=Se(),o=H(),s=e(!1),c=x(()=>o.pendingQuotaBackoffs[r.workspaceId]),l=x(()=>o.workspaces.find(e=>e.id===r.workspaceId)),u=x(()=>o.autoLoopStates[r.workspaceId]),f=x(()=>l.value?.status===`quota`&&u.value?.auto_loop===!0&&c.value!==void 0),p=x(()=>{let e=c.value?.targetAt;return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):``}),v=x(()=>{let e=c.value?.resetsAt;return e?new Date(e).toLocaleString():``});async function b(){if(!s.value){s.value=!0;try{await o.cancelQuotaBackoff(r.workspaceId),a.notify({type:`info`,message:i(`quotaBackoff.cancelled`),position:`top`,timeout:4e3})}catch(e){a.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}finally{s.value=!1}}}return(e,t)=>f.value?(n(),S(`div`,an,[g(F,{name:`hourglass_top`,size:`18px`,class:`q-mr-sm`}),w(`span`,on,D(y(i)(`quotaBackoff.banner.title`,{time:p.value})),1),c.value?.resetsAt?(n(),m(q,{key:0},{default:d(()=>[_(D(y(i)(`quotaBackoff.banner.tooltip`,{resets_at:v.value})),1)]),_:1})):h(``,!0),g(Y),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-3`,label:y(i)(`quotaBackoff.banner.cancel`),loading:s.value,onClick:b},null,8,[`label`,`loading`])])):h(``,!0)}}),cn={class:`text-subtitle2`},ln={class:`text-caption`},un=T({__name:`StaleSessionBanner`,props:{workspaceId:{}},setup(e){let t=e,r=H(),i=x(()=>{if(!r.selectedSessionId||r.sessions.length<2)return!1;let e=r.sessions[0];if(!e||e.id===r.selectedSessionId)return!1;let n=r.workspaces.find(e=>e.id===t.workspaceId);return!n||!K(n.status)?!1:r.autoLoopStates[t.workspaceId]?.auto_loop===!0});function a(){let e=r.sessions[0];e&&r.selectSession(e.id)}return(e,t)=>i.value?(n(),m(Q,{key:0,class:`bg-indigo-9 text-white q-ma-sm`,rounded:``},{avatar:d(()=>[g(F,{name:`loop`})]),action:d(()=>[g(z,{flat:``,dense:``,"no-caps":``,label:e.$t(`staleSessionBanner.switchToCurrent`),onClick:a},null,8,[`label`])]),default:d(()=>[w(`div`,cn,D(e.$t(`staleSessionBanner.title`)),1),w(`div`,ln,D(e.$t(`staleSessionBanner.message`)),1)]),_:1})):h(``,!0)}}),dn={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},fn=T({__name:`WakeupBanner`,setup(t){let{t:r}=B(),i=H(),a=e(Date.now()),s=null;o(()=>{s=setInterval(()=>{a.value=Date.now()},1e3)}),b(()=>{s&&clearInterval(s)});let c=x(()=>{let e=i.selectedWorkspace;return e?i.pendingWakeups[e.id]??null:null}),l=x(()=>i.selectedWorkspace?!!c.value:!1),u=x(()=>{if(!c.value)return 0;let e=Math.ceil((new Date(c.value.targetAt).getTime()-a.value)/1e3);return Math.max(0,e)}),f=x(()=>u.value===0?r(`wakeup.firing`):r(`wakeup.scheduledIn`,{n:u.value}));function p(){let e=i.selectedWorkspace;e&&i.cancelPendingWakeup(e.id)}return(e,t)=>l.value?(n(),S(`div`,dn,[g(F,{name:`schedule`,size:`14px`,color:`amber-4`,class:`q-mr-sm`}),w(`span`,null,[_(D(f.value)+` `,1),c.value?.reason?(n(),m(q,{key:0,anchor:`top middle`,self:`bottom middle`,offset:[0,6]},{default:d(()=>[_(D(y(r)(`wakeup.reason`,{reason:c.value.reason})),1)]),_:1})):h(``,!0)]),g(Y),g(z,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-5`,"aria-label":y(r)(`wakeup.cancel`),onClick:p},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(r)(`wakeup.cancel`)),1)]),_:1})]),_:1},8,[`aria-label`])])):h(``,!0)}}),pn={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},mn={class:`text-body1 text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`480px`}},hn={class:`row items-center no-wrap text-caption text-grey-5`},gn={class:`row items-center no-wrap text-caption text-grey-5`},_n={class:`row items-center no-wrap text-caption text-grey-5`},vn={key:1,class:`text-body2 text-grey-8`},yn={key:0,class:`wp-subheader column q-px-md q-pb-sm`},bn=[`title`],xn={class:`col column items-center justify-center`},Sn={class:`text-grey-6 text-caption q-mt-sm`},Cn={class:`text-subtitle1`},wn=J(T({__name:`WorkspacePage`,setup(t){let i=f(()=>Promise.all([G(()=>import(`./ActivityFeed-CrlJXGsr.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,25])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),a=Se(),s=H(),{t:c}=B(),{timeAgo:v}=je();function b(e){return e===`awaiting-user`?c(`workspaceStatus.awaitingUser`):e}e(!1);let T=e(!1),ee=new Set,O=e(``);u(()=>s.selectedWorkspace?.description??``,e=>{O.value=e},{immediate:!0});async function k(){if(!s.selectedWorkspace)return;let e=O.value.trim();if(e!==(s.selectedWorkspace.description??``)){if(e.length>200){a.notify({type:`negative`,message:c(`workspace.descriptionTooLong`),position:`top`});return}try{await s.updateWorkspaceDescription(s.selectedWorkspace.id,e.length>0?e:null)}catch(e){let t=e instanceof Error?e.message:c(`workspace.descriptionSaveFailed`);a.notify({type:`negative`,message:t,position:`top`})}}}let j=e(new Set),ne=x(()=>K(s.selectedWorkspace?.status));u(ne,e=>{e||(j.value=new Set)}),u(()=>s.selectedWorkspaceId,e=>{j.value=new Set,e&&s.fetchPendingWakeup(e)},{immediate:!0});function M(e){if(!ne.value)return;let t=new Set(j.value);t.add(e),j.value=t}function N(e){ee.add(e),e.finally(()=>{ee.delete(e)})}e(!1);async function re(){if(s.selectedWorkspaceId){T.value=!0;try{await s.stopWorkspace(s.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:c(`workspacePage.stopFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{T.value=!1}}}let P=x(()=>s.selectedWorkspace?.engine??`claude-code`),ie=x(()=>(Ne[P.value]??Pe).map(e=>({label:c(e.i18nLabelKey),value:e.value}))),ae=x(()=>(Be[P.value]??Be[`claude-code`]).map(e=>({label:V(c(e.i18nLabelKey)),value:e.value}))),se=x(()=>{let e=s.selectedWorkspace,t=e?s.autoLoopStates[e.id]?.auto_loop??e.autoLoop:!1;return(Fe[P.value]??Fe[`claude-code`]).map(e=>({label:c(`agentPermissionMode.${e}`),value:e,disable:e===`plan`&&t}))}),L=x({get:()=>s.selectedWorkspace?.model??`auto`,set:e=>{s.selectedWorkspaceId&&(M(`model`),N(s.updateModel(s.selectedWorkspaceId,e)))}}),R=x({get:()=>s.selectedWorkspace?.reasoningEffort??`auto`,set:e=>{s.selectedWorkspaceId&&(M(`reasoningEffort`),N(s.updateReasoningEffort(s.selectedWorkspaceId,e)))}});function V(e){let t=e.indexOf(`:`);return t>=0?e.slice(t+1).trim():e}function le(e){return ae.value.find(t=>t.value===e)?.label??e}let W=x({get:()=>s.selectedWorkspace?.agentPermissionMode??`bypass`,set:e=>{s.selectedWorkspaceId&&(M(`agentPermissionMode`),N(s.updateAgentPermissionMode(s.selectedWorkspaceId,e)))}}),de=fe(),ye=U(),J=x(()=>s.selectedWorkspaceId),X=x(()=>s.selectedWorkspace),Ce=x(()=>s.sessions),we=x({get:()=>s.selectedSessionId,set:e=>{if(e===`__new__`){ze();return}if(!e)return;s.selectSession(e);let t={...de.query};t.session=e,ye.replace({query:t})}}),Te=x(()=>[...s.sessions.map((e,t)=>({label:e.name??c(`workspacePage.session`,{n:s.sessions.length-t}),value:e.id,caption:v(e.startedAt),isSession:!0})),{label:c(`workspacePage.newSession`),value:`__new__`,caption:``,isSession:!1}]),Ee=e(!1),Oe=e(null),ke=e(``),Ae=e(!1);function Le(e,t){let n=s.sessions.find(t=>t.id===e);n&&(Oe.value={id:e},ke.value=n.name??t,Ee.value=!0)}async function Re(){if(!(!Oe.value||!s.selectedWorkspaceId))try{await s.renameSession(s.selectedWorkspaceId,Oe.value.id,ke.value.trim())}catch(e){console.error(`[WorkspacePage] renameSession failed:`,e),a.notify({type:`negative`,message:c(`workspacePage.renameFailed`),position:`top`})}finally{Ee.value=!1}}async function ze(){if(s.selectedWorkspaceId){Ae.value=!0;try{await s.createSession(s.selectedWorkspaceId)}catch(e){console.error(`[WorkspacePage] createSession failed:`,e);let t=e instanceof Error?e.message:null;a.notify({type:`negative`,message:t??c(`workspacePage.createSessionFailed`),position:`top`,timeout:6e3})}finally{Ae.value=!1}}}return o(()=>{let e=de.params.id;e&&(s.selectWorkspace(e),s.fetchPendingWakeup(e));let t=de.query.session;t&&s.selectSession(t)}),u(()=>de.params.id,e=>{e&&e!==s.selectedWorkspaceId&&s.selectWorkspace(e)}),u(()=>s.selectedWorkspaceId,e=>{e===null&&de.params.id&&ye.push({name:`workspace`})}),(e,t)=>(n(),m(Ie,{class:`column no-wrap`,style:{height:`100vh`}},{default:d(()=>[w(`div`,pn,[X.value?(n(),S(C,{key:0},[w(`span`,mn,[_(D(X.value.name)+` `,1),g(q,null,{default:d(()=>[_(D(X.value.name),1)]),_:1})]),g(be,{label:b(X.value.status),color:[`error`,`quota`].includes(X.value.status)?`red-9`:X.value.status===`awaiting-user`?`amber-9`:y(K)(X.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),g(De),Ce.value.length>0?(n(),m(Me,{key:0,modelValue:we.value,"onUpdate:modelValue":t[0]||=e=>we.value=e,options:Te.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,loading:Ae.value,disable:Ae.value,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},{option:d(e=>[e.opt.isSession?h(``,!0):(n(),m(I,{key:0,spaced:``})),g(ge,l(e.itemProps,{clickable:``,dense:``,class:`row items-center no-wrap`}),{default:d(()=>[g(_e,null,{default:d(()=>[g(ve,{class:E(e.opt.isSession?``:`text-grey-5`)},{default:d(()=>[_(D(e.opt.label),1)]),_:2},1032,[`class`]),e.opt.caption?(n(),m(ve,{key:0,caption:``},{default:d(()=>[_(D(e.opt.caption),1)]),_:2},1024)):h(``,!0)]),_:2},1024),e.opt.isSession?(n(),m(_e,{key:0,side:``},{default:d(()=>[g(z,{icon:`more_vert`,flat:``,dense:``,round:``,size:`xs`,color:`grey-6`,onClick:A(t=>Le(e.opt.value,e.opt.label),[`stop`])},null,8,[`onClick`])]),_:2},1024)):h(``,!0)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`loading`,`disable`])):h(``,!0),g(Y),g(Me,{modelValue:W.value,"onUpdate:modelValue":t[1]||=e=>W.value=e,options:se.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-xs`,style:{"min-width":`80px`,"max-width":`140px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,hn,[g(F,{name:W.value===`plan`?`visibility`:W.value===`strict`?`lock`:W.value===`interactive`?`security`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),_(` `+D(se.value.find(e=>e.value===W.value)?.label??W.value)+` `,1),j.value.has(`agentPermissionMode`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(Me,{modelValue:L.value,"onUpdate:modelValue":t[2]||=e=>L.value=e,options:ie.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm model-select`,style:{"min-width":`100px`,"max-width":`160px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,gn,[g(F,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),_(` `+D(ie.value.find(e=>e.value===L.value)?.label??L.value)+` `,1),j.value.has(`model`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(Me,{modelValue:R.value,"onUpdate:modelValue":t[3]||=e=>R.value=e,options:ae.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm`,style:{"min-width":`90px`,"max-width":`140px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,_n,[g(F,{name:`psychology`,size:`12px`,color:`amber-6`,class:`q-mr-xs`}),_(` `+D(le(R.value))+` `,1),j.value.has(`reasoningEffort`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),y(K)(X.value.status)?(n(),m(z,{key:1,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:e.$t(`common.stop`),class:`q-mr-xs`,loading:T.value,disable:T.value,onClick:re},null,8,[`label`,`loading`,`disable`])):h(``,!0)],64)):(n(),S(`span`,vn,D(e.$t(`workspacePage.selectWorkspace`)),1))]),X.value?(n(),S(`div`,yn,[g(ce,{modelValue:O.value,"onUpdate:modelValue":t[4]||=e=>O.value=e,dense:``,dark:``,borderless:``,placeholder:y(c)(`workspace.descriptionPlaceholder`),maxlength:200,"input-class":`text-caption text-grey-5`,class:`workspace-description-input`,style:{width:`100%`,"max-width":`960px`},onBlur:k,onKeydown:te(A(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),X.value?.agentDescription?(n(),S(`div`,{key:0,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-style":`italic`,"max-width":`960px`},title:y(c)(`workspace.agentDescriptionTooltip`)},D(X.value.agentDescription),9,bn)):h(``,!0)])):h(``,!0),g(I,{dark:``}),J.value?(n(),m(Ke,{key:1,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(un,{key:2,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(sn,{key:3,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(p,{key:4},{fallback:d(()=>[w(`div`,xn,[g(he,{size:`40px`,color:`indigo-4`}),w(`div`,Sn,D(e.$t(`common.loading`)),1)])]),default:d(()=>[g(y(i),{class:`col`,style:{"min-height":`0`},"workspace-id":J.value},null,8,[`workspace-id`])]),_:1})):h(``,!0),g(Z),g(fn),J.value?(n(),m(gt,{key:5,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(rn,{key:6,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(Kt,{key:7,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),g(ue,{modelValue:Ee.value,"onUpdate:modelValue":t[6]||=e=>Ee.value=e,persistent:``},{default:d(()=>[g(pe,{dark:``,style:{"min-width":`320px`}},{default:d(()=>[g(me,null,{default:d(()=>[w(`div`,Cn,D(y(c)(`workspacePage.renameSessionTitle`)),1)]),_:1}),g(me,null,{default:d(()=>[g(ce,{modelValue:ke.value,"onUpdate:modelValue":t[5]||=e=>ke.value=e,label:y(c)(`workspacePage.sessionNameLabel`),dark:``,dense:``,autofocus:``,onKeyup:te(Re,[`enter`])},null,8,[`modelValue`,`label`])]),_:1}),g(oe,{align:`right`},{default:d(()=>[r(g(z,{flat:``,label:y(c)(`common.cancel`)},null,8,[`label`]),[[xe]]),g(z,{flat:``,color:`primary`,label:y(c)(`workspacePage.renameSession`),disable:!ke.value.trim(),onClick:Re},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-953138be`]]);export{wn as default};
|
|
4
|
+
`)))&&Q.value===-1)return;e.preventDefault(),Q.value===-1&&(We.value=b.value),Q.value<Z.value.length-1&&(Q.value++,b.value=Z.value[Q.value]);return}if(e.key===`ArrowDown`&&Q.value>=0){e.preventDefault(),Q.value--,b.value=Q.value>=0?Z.value[Q.value]:We.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),qe())}return(e,t)=>(n(),S(`div`,{class:E([`chat-input-container column q-pa-sm`,{"chat-input-dragging":ue.value}]),onDragover:we,onDragleave:Te,onDrop:Ce},[V.value.length>0?(n(),S(`div`,It,[(n(!0),S(C,null,a(V.value,t=>(n(),S(`div`,{key:t.tempId,class:E([`image-tag row items-center q-px-sm q-py-xs rounded-borders`,{"image-tag--uploading":t.status===`uploading`,"image-tag--ready":t.status===`ready`,"image-tag--error":t.status===`error`}])},[t.status===`uploading`?(n(),m(he,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):t.status===`ready`?(n(),m(F,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(n(),m(F,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),w(`span`,Lt,D(t.status===`uploading`?e.$t(`chatInput.uploading`):t.path||t.originalName),1),g(z,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:e=>X(t.tempId)},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`tooltip.removeImage`)),1)]),_:1})]),_:1},8,[`onClick`])],2))),128))])):h(``,!0),y(N)&&y(I).length>0?(n(),m(Le,{key:1,class:`chat-slash-popup`,"grouped-dropdown":y(ie),"flat-dropdown":y(I),"selected-index":y(P),onSelect:Ne},null,8,[`grouped-dropdown`,`flat-dropdown`,`selected-index`])):h(``,!0),j.value?(n(),S(`div`,Rt,[g(F,{name:`schedule`,size:`14px`,color:`amber-6`,class:`q-mr-sm`}),w(`span`,null,D(e.$t(`chatInput.queueBanner`)),1)])):h(``,!0),Pe.value?(n(),S(`div`,zt,[g(F,{name:`all_inclusive`,size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),w(`span`,Bt,D(e.$t(`chatInput.autoLoopBanner`)),1),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`stop_circle`,color:`orange-4`,label:e.$t(`chatInput.autoLoopStop`),loading:He.value,disable:He.value,onClick:Ue},null,8,[`label`,`loading`,`disable`])])):h(``,!0),Fe.value&&!Pe.value?(n(),S(`div`,Vt,[g(F,{name:`question_answer`,size:`14px`,color:`amber-5`,class:`q-mr-sm`}),w(`span`,null,D(e.$t(`chatInput.awaitingUserBanner`)),1)])):h(``,!0),w(`div`,Ht,[g(ce,{ref_key:`chatInputRef`,ref:ne,modelValue:b.value,"onUpdate:modelValue":t[0]||=e=>b.value=e,dense:``,dark:``,borderless:``,autogrow:``,readonly:j.value,placeholder:e.$t(`chatInput.placeholder`),"input-style":{maxHeight:`200px`,overflowY:`auto`},class:`chat-input col rounded-borders`,disable:Ie.value,onKeydown:et,onPaste:xe},null,8,[`modelValue`,`readonly`,`placeholder`,`disable`]),w(`input`,{ref_key:`fileInputRef`,ref:le,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:Ee},null,544),g(z,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:Ie.value,onClick:t[1]||=e=>le.value?.click()},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`chatInput.attachImage`)),1)]),_:1})]),_:1},8,[`disable`]),g(z,{flat:``,dense:``,icon:G.value?`hourglass_top`:U.value?`mic`:`mic_none`,color:U.value?`red-5`:G.value?`amber-6`:`grey-6`,disable:!Be.value||G.value,class:E({"voice-btn--recording":U.value}),onMousedown:A(Je,[`prevent`]),onMouseup:A($,[`prevent`]),onMouseleave:A($,[`prevent`]),onTouchstart:A(Je,[`prevent`]),onTouchend:A($,[`prevent`])},{default:d(()=>[g(q,null,{default:d(()=>[_(D(G.value?e.$t(`voice.transcribing`):U.value?e.$t(`voice.recording`):e.$t(`voice.holdToTalk`)),1)]),_:1})]),_:1},8,[`icon`,`color`,`disable`,`class`]),j.value?(n(),m(z,{key:0,flat:``,dense:``,icon:`cancel`,color:`orange`,onClick:Me},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`chatInput.cancelQueue`)),1)]),_:1})]),_:1})):(n(),m(z,{key:1,flat:``,dense:``,icon:`send`,color:`primary`,disable:Ie.value||!b.value.trim()&&V.value.length===0||De.value,onClick:qe},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`tooltip.sendMessage`)),1)]),_:1})]),_:1},8,[`disable`]))]),w(`div`,Ut,[w(`div`,null,[t[2]||=w(`kbd`,null,`Enter`,-1),_(` `+D(e.$t(`common.send`))+` `,1),t[3]||=w(`span`,{class:`q-mx-xs`},`·`,-1),t[4]||=_(),t[5]||=w(`kbd`,null,`Shift+Enter`,-1),_(` `+D(e.$t(`common.newLine`))+` `,1),t[6]||=w(`span`,{class:`q-mx-xs`},`·`,-1),t[7]||=_(),t[8]||=w(`kbd`,null,`↑↓`,-1),_(` `+D(e.$t(`common.history`)),1)]),g(Y),G.value?(n(),S(`div`,Wt,[g(he,{size:`14px`,color:`amber-6`,class:`q-mr-xs`}),w(`span`,null,D(e.$t(`voice.transcribing`)),1)])):h(``,!0),O.value?(n(),m(Ft,{key:1,class:`q-mr-md`})):h(``,!0),ee.value?(n(),m(z,{key:2,flat:``,dense:``,"no-caps":``,size:`sm`,color:`orange-4`,icon:`pause`,label:e.$t(`workspacePage.interrupt`),loading:T.value,disable:T.value,onClick:te},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.interruptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):h(``,!0)])],34))}}),[[`__scopeId`,`data-v-f074ca82`]]),qt={key:0,class:`permission-request-panel q-pa-sm bg-dark text-grey-3`},Jt={class:`row items-center q-mb-sm`},Yt={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},Xt={class:`text-body2 text-grey-2 q-mb-xs`},Zt={class:`text-weight-medium`},Qt={class:`q-ml-xs`},$t={class:`text-caption text-grey-6 q-mb-xs`},en={class:`permission-input-pre`},tn={class:`row items-center q-gutter-sm q-mt-sm`},nn={key:0,class:`text-negative text-caption`},rn=J(T({__name:`PermissionRequestPanel`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),a=H(),o=x(()=>{let e=a.peekPending(r.workspaceId);if(!(!e||e.kind!==`permission`))return e}),s=x(()=>{if(!o.value)return``;try{return JSON.stringify(o.value.toolInput,null,2)}catch{return String(o.value.toolInput)}}),c=e(!1),l=e(null);u(()=>o.value?.toolCallId??null,()=>{c.value=!1,l.value=null});async function d(e){if(o.value&&!c.value){c.value=!0,l.value=null;try{await a.submitDeferredPermission(r.workspaceId,o.value.toolCallId,e,e===`deny`?i(`permissionRequest.denied`):void 0)}catch(e){l.value=e instanceof Error?e.message:String(e)}finally{c.value=!1}}}return(e,t)=>o.value?(n(),S(`div`,qt,[w(`div`,Jt,[g(F,{name:`security`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),w(`div`,Yt,D(y(i)(`permissionRequest.title`)),1)]),w(`div`,Xt,[w(`span`,Zt,D(y(i)(`permissionRequest.tool`))+`:`,1),w(`code`,Qt,D(o.value.toolName),1)]),w(`div`,$t,D(y(i)(`permissionRequest.input`)),1),w(`pre`,en,D(s.value),1),w(`div`,tn,[g(z,{label:y(i)(`permissionRequest.allow`),color:`indigo-5`,dense:``,unelevated:``,loading:c.value,disable:c.value,onClick:t[0]||=e=>d(`allow`)},null,8,[`label`,`loading`,`disable`]),g(z,{label:y(i)(`permissionRequest.deny`),flat:``,dense:``,color:`grey-4`,disable:c.value,onClick:t[1]||=e=>d(`deny`)},null,8,[`label`,`disable`]),g(Y),l.value?(n(),S(`span`,nn,D(l.value),1)):h(``,!0)])])):h(``,!0)}}),[[`__scopeId`,`data-v-12227c33`]]),an={key:0,class:`quota-backoff-banner row items-center q-px-md q-py-sm`,style:{"background-color":`#b87333`,color:`#f0f0f0`}},on={class:`text-body2`},sn=T({__name:`QuotaBackoffBanner`,props:{workspaceId:{}},setup(t){let r=t,{t:i}=B(),a=Se(),o=H(),s=e(!1),c=x(()=>o.pendingQuotaBackoffs[r.workspaceId]),l=x(()=>o.workspaces.find(e=>e.id===r.workspaceId)),u=x(()=>o.autoLoopStates[r.workspaceId]),f=x(()=>l.value?.status===`quota`&&u.value?.auto_loop===!0&&c.value!==void 0),p=x(()=>{let e=c.value?.targetAt;return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):``}),v=x(()=>{let e=c.value?.resetsAt;return e?new Date(e).toLocaleString():``});async function b(){if(!s.value){s.value=!0;try{await o.cancelQuotaBackoff(r.workspaceId),a.notify({type:`info`,message:i(`quotaBackoff.cancelled`),position:`top`,timeout:4e3})}catch(e){a.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}finally{s.value=!1}}}return(e,t)=>f.value?(n(),S(`div`,an,[g(F,{name:`hourglass_top`,size:`18px`,class:`q-mr-sm`}),w(`span`,on,D(y(i)(`quotaBackoff.banner.title`,{time:p.value})),1),c.value?.resetsAt?(n(),m(q,{key:0},{default:d(()=>[_(D(y(i)(`quotaBackoff.banner.tooltip`,{resets_at:v.value})),1)]),_:1})):h(``,!0),g(Y),g(z,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-3`,label:y(i)(`quotaBackoff.banner.cancel`),loading:s.value,onClick:b},null,8,[`label`,`loading`])])):h(``,!0)}}),cn={class:`text-subtitle2`},ln={class:`text-caption`},un=T({__name:`StaleSessionBanner`,props:{workspaceId:{}},setup(e){let t=e,r=H(),i=x(()=>{if(!r.selectedSessionId||r.sessions.length<2)return!1;let e=r.sessions[0];if(!e||e.id===r.selectedSessionId)return!1;let n=r.workspaces.find(e=>e.id===t.workspaceId);return!n||!K(n.status)?!1:r.autoLoopStates[t.workspaceId]?.auto_loop===!0});function a(){let e=r.sessions[0];e&&r.selectSession(e.id)}return(e,t)=>i.value?(n(),m(Q,{key:0,class:`bg-indigo-9 text-white q-ma-sm`,rounded:``},{avatar:d(()=>[g(F,{name:`loop`})]),action:d(()=>[g(z,{flat:``,dense:``,"no-caps":``,label:e.$t(`staleSessionBanner.switchToCurrent`),onClick:a},null,8,[`label`])]),default:d(()=>[w(`div`,cn,D(e.$t(`staleSessionBanner.title`)),1),w(`div`,ln,D(e.$t(`staleSessionBanner.message`)),1)]),_:1})):h(``,!0)}}),dn={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},fn=T({__name:`WakeupBanner`,setup(t){let{t:r}=B(),i=H(),a=e(Date.now()),s=null;o(()=>{s=setInterval(()=>{a.value=Date.now()},1e3)}),b(()=>{s&&clearInterval(s)});let c=x(()=>{let e=i.selectedWorkspace;return e?i.pendingWakeups[e.id]??null:null}),l=x(()=>i.selectedWorkspace?!!c.value:!1),u=x(()=>{if(!c.value)return 0;let e=Math.ceil((new Date(c.value.targetAt).getTime()-a.value)/1e3);return Math.max(0,e)}),f=x(()=>u.value===0?r(`wakeup.firing`):r(`wakeup.scheduledIn`,{n:u.value}));function p(){let e=i.selectedWorkspace;e&&i.cancelPendingWakeup(e.id)}return(e,t)=>l.value?(n(),S(`div`,dn,[g(F,{name:`schedule`,size:`14px`,color:`amber-4`,class:`q-mr-sm`}),w(`span`,null,[_(D(f.value)+` `,1),c.value?.reason?(n(),m(q,{key:0,anchor:`top middle`,self:`bottom middle`,offset:[0,6]},{default:d(()=>[_(D(y(r)(`wakeup.reason`,{reason:c.value.reason})),1)]),_:1})):h(``,!0)]),g(Y),g(z,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-5`,"aria-label":y(r)(`wakeup.cancel`),onClick:p},{default:d(()=>[g(q,null,{default:d(()=>[_(D(y(r)(`wakeup.cancel`)),1)]),_:1})]),_:1},8,[`aria-label`])])):h(``,!0)}}),pn={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},mn={class:`text-body1 text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`480px`}},hn={class:`row items-center no-wrap text-caption text-grey-5`},gn={class:`row items-center no-wrap text-caption text-grey-5`},_n={class:`row items-center no-wrap text-caption text-grey-5`},vn={key:1,class:`text-body2 text-grey-8`},yn={key:0,class:`wp-subheader column q-px-md q-pb-sm`},bn=[`title`],xn={class:`col column items-center justify-center`},Sn={class:`text-grey-6 text-caption q-mt-sm`},Cn={class:`text-subtitle1`},wn=J(T({__name:`WorkspacePage`,setup(t){let i=f(()=>Promise.all([G(()=>import(`./ActivityFeed-LlMDs201.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,25])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),a=Se(),s=H(),{t:c}=B(),{timeAgo:v}=je();function b(e){return e===`awaiting-user`?c(`workspaceStatus.awaitingUser`):e}e(!1);let T=e(!1),ee=new Set,O=e(``);u(()=>s.selectedWorkspace?.description??``,e=>{O.value=e},{immediate:!0});async function k(){if(!s.selectedWorkspace)return;let e=O.value.trim();if(e!==(s.selectedWorkspace.description??``)){if(e.length>200){a.notify({type:`negative`,message:c(`workspace.descriptionTooLong`),position:`top`});return}try{await s.updateWorkspaceDescription(s.selectedWorkspace.id,e.length>0?e:null)}catch(e){let t=e instanceof Error?e.message:c(`workspace.descriptionSaveFailed`);a.notify({type:`negative`,message:t,position:`top`})}}}let j=e(new Set),ne=x(()=>K(s.selectedWorkspace?.status));u(ne,e=>{e||(j.value=new Set)}),u(()=>s.selectedWorkspaceId,e=>{j.value=new Set,e&&s.fetchPendingWakeup(e)},{immediate:!0});function M(e){if(!ne.value)return;let t=new Set(j.value);t.add(e),j.value=t}function N(e){ee.add(e),e.finally(()=>{ee.delete(e)})}e(!1);async function re(){if(s.selectedWorkspaceId){T.value=!0;try{await s.stopWorkspace(s.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:c(`workspacePage.stopFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{T.value=!1}}}let P=x(()=>s.selectedWorkspace?.engine??`claude-code`),ie=x(()=>(Ne[P.value]??Pe).map(e=>({label:c(e.i18nLabelKey),value:e.value}))),ae=x(()=>(Be[P.value]??Be[`claude-code`]).map(e=>({label:V(c(e.i18nLabelKey)),value:e.value}))),se=x(()=>{let e=s.selectedWorkspace,t=e?s.autoLoopStates[e.id]?.auto_loop??e.autoLoop:!1;return(Fe[P.value]??Fe[`claude-code`]).map(e=>({label:c(`agentPermissionMode.${e}`),value:e,disable:e===`plan`&&t}))}),L=x({get:()=>s.selectedWorkspace?.model??`auto`,set:e=>{s.selectedWorkspaceId&&(M(`model`),N(s.updateModel(s.selectedWorkspaceId,e)))}}),R=x({get:()=>s.selectedWorkspace?.reasoningEffort??`auto`,set:e=>{s.selectedWorkspaceId&&(M(`reasoningEffort`),N(s.updateReasoningEffort(s.selectedWorkspaceId,e)))}});function V(e){let t=e.indexOf(`:`);return t>=0?e.slice(t+1).trim():e}function le(e){return ae.value.find(t=>t.value===e)?.label??e}let W=x({get:()=>s.selectedWorkspace?.agentPermissionMode??`bypass`,set:e=>{s.selectedWorkspaceId&&(M(`agentPermissionMode`),N(s.updateAgentPermissionMode(s.selectedWorkspaceId,e)))}}),de=fe(),ye=U(),J=x(()=>s.selectedWorkspaceId),X=x(()=>s.selectedWorkspace),Ce=x(()=>s.sessions),we=x({get:()=>s.selectedSessionId,set:e=>{if(e===`__new__`){ze();return}if(!e)return;s.selectSession(e);let t={...de.query};t.session=e,ye.replace({query:t})}}),Te=x(()=>[...s.sessions.map((e,t)=>({label:e.name??c(`workspacePage.session`,{n:s.sessions.length-t}),value:e.id,caption:v(e.startedAt),isSession:!0})),{label:c(`workspacePage.newSession`),value:`__new__`,caption:``,isSession:!1}]),Ee=e(!1),Oe=e(null),ke=e(``),Ae=e(!1);function Le(e,t){let n=s.sessions.find(t=>t.id===e);n&&(Oe.value={id:e},ke.value=n.name??t,Ee.value=!0)}async function Re(){if(!(!Oe.value||!s.selectedWorkspaceId))try{await s.renameSession(s.selectedWorkspaceId,Oe.value.id,ke.value.trim())}catch(e){console.error(`[WorkspacePage] renameSession failed:`,e),a.notify({type:`negative`,message:c(`workspacePage.renameFailed`),position:`top`})}finally{Ee.value=!1}}async function ze(){if(s.selectedWorkspaceId){Ae.value=!0;try{await s.createSession(s.selectedWorkspaceId)}catch(e){console.error(`[WorkspacePage] createSession failed:`,e);let t=e instanceof Error?e.message:null;a.notify({type:`negative`,message:t??c(`workspacePage.createSessionFailed`),position:`top`,timeout:6e3})}finally{Ae.value=!1}}}return o(()=>{let e=de.params.id;e&&(s.selectWorkspace(e),s.fetchPendingWakeup(e));let t=de.query.session;t&&s.selectSession(t)}),u(()=>de.params.id,e=>{e&&e!==s.selectedWorkspaceId&&s.selectWorkspace(e)}),u(()=>s.selectedWorkspaceId,e=>{e===null&&de.params.id&&ye.push({name:`workspace`})}),(e,t)=>(n(),m(Ie,{class:`column no-wrap`,style:{height:`100vh`}},{default:d(()=>[w(`div`,pn,[X.value?(n(),S(C,{key:0},[w(`span`,mn,[_(D(X.value.name)+` `,1),g(q,null,{default:d(()=>[_(D(X.value.name),1)]),_:1})]),g(be,{label:b(X.value.status),color:[`error`,`quota`].includes(X.value.status)?`red-9`:X.value.status===`awaiting-user`?`amber-9`:y(K)(X.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),g(De),Ce.value.length>0?(n(),m(Me,{key:0,modelValue:we.value,"onUpdate:modelValue":t[0]||=e=>we.value=e,options:Te.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,loading:Ae.value,disable:Ae.value,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},{option:d(e=>[e.opt.isSession?h(``,!0):(n(),m(I,{key:0,spaced:``})),g(ge,l(e.itemProps,{clickable:``,dense:``,class:`row items-center no-wrap`}),{default:d(()=>[g(_e,null,{default:d(()=>[g(ve,{class:E(e.opt.isSession?``:`text-grey-5`)},{default:d(()=>[_(D(e.opt.label),1)]),_:2},1032,[`class`]),e.opt.caption?(n(),m(ve,{key:0,caption:``},{default:d(()=>[_(D(e.opt.caption),1)]),_:2},1024)):h(``,!0)]),_:2},1024),e.opt.isSession?(n(),m(_e,{key:0,side:``},{default:d(()=>[g(z,{icon:`more_vert`,flat:``,dense:``,round:``,size:`xs`,color:`grey-6`,onClick:A(t=>Le(e.opt.value,e.opt.label),[`stop`])},null,8,[`onClick`])]),_:2},1024)):h(``,!0)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`loading`,`disable`])):h(``,!0),g(Y),g(Me,{modelValue:W.value,"onUpdate:modelValue":t[1]||=e=>W.value=e,options:se.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-xs`,style:{"min-width":`80px`,"max-width":`140px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,hn,[g(F,{name:W.value===`plan`?`visibility`:W.value===`strict`?`lock`:W.value===`interactive`?`security`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),_(` `+D(se.value.find(e=>e.value===W.value)?.label??W.value)+` `,1),j.value.has(`agentPermissionMode`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(Me,{modelValue:L.value,"onUpdate:modelValue":t[2]||=e=>L.value=e,options:ie.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm model-select`,style:{"min-width":`100px`,"max-width":`160px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,gn,[g(F,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),_(` `+D(ie.value.find(e=>e.value===L.value)?.label??L.value)+` `,1),j.value.has(`model`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(Me,{modelValue:R.value,"onUpdate:modelValue":t[3]||=e=>R.value=e,options:ae.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm`,style:{"min-width":`90px`,"max-width":`140px`,"font-size":`11px`}},{selected:d(()=>[w(`span`,_n,[g(F,{name:`psychology`,size:`12px`,color:`amber-6`,class:`q-mr-xs`}),_(` `+D(le(R.value))+` `,1),j.value.has(`reasoningEffort`)?(n(),m(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:d(()=>[g(q,null,{default:d(()=>[_(D(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),y(K)(X.value.status)?(n(),m(z,{key:1,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:e.$t(`common.stop`),class:`q-mr-xs`,loading:T.value,disable:T.value,onClick:re},null,8,[`label`,`loading`,`disable`])):h(``,!0)],64)):(n(),S(`span`,vn,D(e.$t(`workspacePage.selectWorkspace`)),1))]),X.value?(n(),S(`div`,yn,[g(ce,{modelValue:O.value,"onUpdate:modelValue":t[4]||=e=>O.value=e,dense:``,dark:``,borderless:``,placeholder:y(c)(`workspace.descriptionPlaceholder`),maxlength:200,"input-class":`text-caption text-grey-5`,class:`workspace-description-input`,style:{width:`100%`,"max-width":`960px`},onBlur:k,onKeydown:te(A(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),X.value?.agentDescription?(n(),S(`div`,{key:0,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-style":`italic`,"max-width":`960px`},title:y(c)(`workspace.agentDescriptionTooltip`)},D(X.value.agentDescription),9,bn)):h(``,!0)])):h(``,!0),g(I,{dark:``}),J.value?(n(),m(Ke,{key:1,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(un,{key:2,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(sn,{key:3,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(p,{key:4},{fallback:d(()=>[w(`div`,xn,[g(he,{size:`40px`,color:`indigo-4`}),w(`div`,Sn,D(e.$t(`common.loading`)),1)])]),default:d(()=>[g(y(i),{class:`col`,style:{"min-height":`0`},"workspace-id":J.value},null,8,[`workspace-id`])]),_:1})):h(``,!0),g(Z),g(fn),J.value?(n(),m(gt,{key:5,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(rn,{key:6,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),J.value?(n(),m(Kt,{key:7,"workspace-id":J.value},null,8,[`workspace-id`])):h(``,!0),g(ue,{modelValue:Ee.value,"onUpdate:modelValue":t[6]||=e=>Ee.value=e,persistent:``},{default:d(()=>[g(pe,{dark:``,style:{"min-width":`320px`}},{default:d(()=>[g(me,null,{default:d(()=>[w(`div`,Cn,D(y(c)(`workspacePage.renameSessionTitle`)),1)]),_:1}),g(me,null,{default:d(()=>[g(ce,{modelValue:ke.value,"onUpdate:modelValue":t[5]||=e=>ke.value=e,label:y(c)(`workspacePage.sessionNameLabel`),dark:``,dense:``,autofocus:``,onKeyup:te(Re,[`enter`])},null,8,[`modelValue`,`label`])]),_:1}),g(oe,{align:`right`},{default:d(()=>[r(g(z,{flat:``,label:y(c)(`common.cancel`)},null,8,[`label`]),[[xe]]),g(z,{flat:``,color:`primary`,label:y(c)(`workspacePage.renameSession`),disable:!ke.value.trim(),onClick:Re},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-953138be`]]);export{wn as default};
|