@loicngr/kobo 2.1.16 → 2.1.18
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/AGENTS.md +52 -0
- package/CHANGELOG.md +8 -0
- package/CONFIGURATION.md +61 -16
- package/README.md +4 -2
- package/dist/server/index.js +2 -0
- package/dist/server/middleware/workspace-creation-maintenance.js +13 -0
- package/dist/server/routes/maintenance.js +32 -0
- package/dist/server/routes/pull-requests.js +2 -1
- package/dist/server/routes/workspaces.js +2 -1
- package/dist/server/services/agent/orchestrator.js +20 -4
- package/dist/server/services/cron-service.js +7 -0
- package/dist/server/services/quota-backoff-service.js +7 -0
- package/dist/server/services/update-maintenance-service.js +44 -0
- package/dist/server/services/wakeup-service.js +21 -3
- package/dist/server/services/workspace-creation-mcp-service.js +16 -0
- package/docker-compose.vps.yml +60 -0
- package/docs/deployment-vps.md +506 -0
- package/docs/getting-started.md +9 -0
- package/package.json +8 -1
- package/scripts/kobo-gh +9 -0
- package/scripts/kobo-github-app-token +190 -0
- package/scripts/kobo-install +392 -0
- package/scripts/kobo-update +499 -0
- package/src/client/dist/pwa/assets/{ActivityFeed-tJmJhmtl.js → ActivityFeed-S3XGw3WW.js} +1 -1
- package/src/client/dist/pwa/assets/{AutoLoopFinalReviewSettings-Bbrq02Xt.js → AutoLoopFinalReviewSettings-CC8ICe_I.js} +1 -1
- package/src/client/dist/pwa/assets/{ChangelogPage-BJfkAVYp.js → ChangelogPage-C1aiPBoi.js} +1 -1
- package/src/client/dist/pwa/assets/{ComparisonPanel-BfP8APKY.js → ComparisonPanel-DElbn4ac.js} +1 -1
- package/src/client/dist/pwa/assets/{CreatePage-BbtNfo0x.js → CreatePage-Bx58t4YW.js} +1 -1
- package/src/client/dist/pwa/assets/{DashboardPage-DZYsAh5y.js → DashboardPage-D1S3QGp4.js} +1 -1
- package/src/client/dist/pwa/assets/{DiffViewer-4Q-GJgyA.js → DiffViewer-BH4X9ru1.js} +3 -3
- package/src/client/dist/pwa/assets/{DocumentsPanel-BfPlfiwU.js → DocumentsPanel-C4AvyZF3.js} +1 -1
- package/src/client/dist/pwa/assets/{DrawerToggleButton-DG1Qjqk1.js → DrawerToggleButton-LzIEeeJY.js} +1 -1
- package/src/client/dist/pwa/assets/{GitPanel-ECnbb_rx.js → GitPanel-BP3N_4nh.js} +3 -3
- package/src/client/dist/pwa/assets/{HealthPage-_VXG1Zeo.js → HealthPage-Cm13vxOi.js} +1 -1
- package/src/client/dist/pwa/assets/MainLayout-DGmMkfuw.js +2 -0
- package/src/client/dist/pwa/assets/{MainLayout-DnmUxNk7.css → MainLayout-DoAEgANU.css} +1 -1
- package/src/client/dist/pwa/assets/{MemoryPanel-CVlvGZXZ.js → MemoryPanel-C6tzCv6D.js} +1 -1
- package/src/client/dist/pwa/assets/{MemoryProposalList-SJsnzUAM.js → MemoryProposalList-CzpzIirK.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnDropdown-DBgGsN-D.js → QBtnDropdown-BnuKPevV.js} +1 -1
- package/src/client/dist/pwa/assets/{QExpansionItem-DKgaMJ_l.js → QExpansionItem-DjaUhgjt.js} +1 -1
- package/src/client/dist/pwa/assets/{QScrollArea-D3OCsq3g.js → QScrollArea-Dpksslru.js} +1 -1
- package/src/client/dist/pwa/assets/{QSelect-Cb_s_nox.js → QSelect-Dh4CjliE.js} +1 -1
- package/src/client/dist/pwa/assets/{QTooltip-X5ps8Opw.js → QTooltip-CH45NuVs.js} +1 -1
- package/src/client/dist/pwa/assets/{SchedulePanel-Ww_FVlW5.js → SchedulePanel-QAjXuTIN.js} +1 -1
- package/src/client/dist/pwa/assets/{SearchPage-B87WEHf3.js → SearchPage-B1pbwDej.js} +1 -1
- package/src/client/dist/pwa/assets/{SettingsPage-BAZLGUyg.js → SettingsPage-CUQefsDh.js} +1 -1
- package/src/client/dist/pwa/assets/{SplitWorkspacePage-B99AJUbG.js → SplitWorkspacePage-CJ7e-KPh.js} +1 -1
- package/src/client/dist/pwa/assets/{TerminalPanel-DnA1MXwu.js → TerminalPanel-DVomz3oo.js} +1 -1
- package/src/client/dist/pwa/assets/{ToolCallItem-2vFggaur.js → ToolCallItem-BntDHc6p.js} +1 -1
- package/src/client/dist/pwa/assets/{TouchPan-BSU3z0aO.js → TouchPan-DwqfsAxH.js} +1 -1
- package/src/client/dist/pwa/assets/{TourReplayButton-DQwS2xdD.js → TourReplayButton-OIavXdUg.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-CM1tGDje.js → WorkspaceAttentionLabels-CYwN1-Rf.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspacePage-CQN6EKIn.js → WorkspacePage-CAsY7Hl-.js} +3 -3
- package/src/client/dist/pwa/assets/{browser-DPsupI9Q.js → browser-Cl0d1gbu.js} +1 -1
- package/src/client/dist/pwa/assets/{build-path-tree-CbIdt-p9.js → build-path-tree-J3YQeMuV.js} +1 -1
- package/src/client/dist/pwa/assets/{custom-sounds-DR68eyF8.js → custom-sounds-D-T5rpgv.js} +1 -1
- package/src/client/dist/pwa/assets/{de-D3Ycvf_F.js → de-C-RtXLqL.js} +1 -1
- package/src/client/dist/pwa/assets/{editor.api-DvgAtnOj.js → editor.api-BoFiCjBZ.js} +1 -1
- package/src/client/dist/pwa/assets/{efforts-nmxfTVQD.js → efforts-Y6XotW97.js} +1 -1
- package/src/client/dist/pwa/assets/{es-TgeS5898.js → es-CBlW91ZK.js} +1 -1
- package/src/client/dist/pwa/assets/{expand-template-Brn5O4a1.js → expand-template-sfOHWudd.js} +1 -1
- package/src/client/dist/pwa/assets/{format-DfJ3Fv1i.js → format-mWov137C.js} +1 -1
- package/src/client/dist/pwa/assets/{formatters-B30bNFhq.js → formatters-B_XsveM0.js} +1 -1
- package/src/client/dist/pwa/assets/{fr-CJafryNb.js → fr-Hfzp_sF5.js} +1 -1
- package/src/client/dist/pwa/assets/{freemarker2-DnZe74tc.js → freemarker2-2pGNakhH.js} +1 -1
- package/src/client/dist/pwa/assets/{handlebars-CmuMfxzO.js → handlebars-Bn2V6Liw.js} +1 -1
- package/src/client/dist/pwa/assets/{html-BD7OJFGX.js → html-BBhkJkf2.js} +1 -1
- package/src/client/dist/pwa/assets/i18n-sBCWwf8Y.js +1 -0
- package/src/client/dist/pwa/assets/{index-C5fAw9ll.js → index-DCpe-Tfm.js} +3 -3
- package/src/client/dist/pwa/assets/{it-C5mN8Y61.js → it-Bl-v27qg.js} +1 -1
- package/src/client/dist/pwa/assets/{javascript-Y-OrgcmW.js → javascript-Ba0G68U2.js} +1 -1
- package/src/client/dist/pwa/assets/{liquid-BqOkKePH.js → liquid-C5VrzHr_.js} +1 -1
- package/src/client/dist/pwa/assets/{mdx-D-58x2h0.js → mdx-DrPRiuKb.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco-contributions-BW4ZMKO6.js → monaco-contributions-qQUY6VS7.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco.contribution-DJWqzNG-.js → monaco.contribution-Dtq2RsyB.js} +2 -2
- package/src/client/dist/pwa/assets/{network-auth-BGPRhUa6.js → network-auth-BPJpXK4L.js} +1 -1
- package/src/client/dist/pwa/assets/{notify-theme-DZDzfxph.js → notify-theme-Bl9iRsZB.js} +1 -1
- package/src/client/dist/pwa/assets/{project-color-gB5yeZPN.js → project-color-Dzvvmaml.js} +1 -1
- package/src/client/dist/pwa/assets/{python-BkBj1wDC.js → python-Cuf_7umq.js} +1 -1
- package/src/client/dist/pwa/assets/{razor-DOOJ_0b8.js → razor-DcVpxFeh.js} +1 -1
- package/src/client/dist/pwa/assets/{typescript-Bheo43G5.js → typescript-Bjcc3kYC.js} +1 -1
- package/src/client/dist/pwa/assets/{use-search-index-status-CBpnyV-R.js → use-search-index-status-Bwf40BEI.js} +1 -1
- package/src/client/dist/pwa/assets/{use-tours-BHNasCvg.js → use-tours-CWafZt-m.js} +1 -1
- package/src/client/dist/pwa/assets/{use-worktree-restore-CgABsWno.js → use-worktree-restore-DkcM2FAZ.js} +1 -1
- package/src/client/dist/pwa/assets/{workspace-templates-BnFkigYg.js → workspace-templates-DL_Cs7mD.js} +1 -1
- package/src/client/dist/pwa/assets/{xml-vHt2BD26.js → xml-BmJwqJOz.js} +1 -1
- package/src/client/dist/pwa/assets/{yaml-BvhLPzP9.js → yaml-DAssfLhS.js} +1 -1
- package/src/client/dist/pwa/index.html +1 -1
- package/src/client/dist/pwa/sw.js +1 -1
- package/src/client/dist/pwa/assets/MainLayout-BH6grTuW.js +0 -2
- package/src/client/dist/pwa/assets/i18n-BY4JeBjk.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{M as e,S as t,g as n,lt as r,pt as i,ut as a,v as o}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as s,E as c,F as l,J as u,K as d,L as f,O as p,P as m,S as h,X as g,Y as _,_ as v,b as y,d as b,f as x,g as S,h as C,j as w,l as T,p as E,r as D,u as O,y as k,z as A}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{$ as ee,G as j,K as M,P as N,Q as P,R as F,Y as te,Z as ne,d as re,z as ie}from"./dom-BtYTvLeN.js";import{c as ae,l as I,t as L,u as oe}from"./QBtn-BUSdPaf4.js";import{n as se,t as ce}from"./use-dark-BHObfh0O.js";import{i as le,n as ue,t as de}from"./private.use-form-DY1BkePL.js";import{At as fe,B as pe,Bt as R,Ct as me,F as he,G as ge,Gt as _e,H as ve,Ht as ye,I as be,J as xe,L as Se,N as Ce,P as we,Rt as Te,U as Ee,Ut as De,V as Oe,W as ke,X as Ae,Xt as je,Y as Me,Yt as Ne,Zt as Pe,_ as Fe,_n as Ie,b as Le,bn as Re,c as ze,en as Be,et as Ve,f as He,gn as Ue,h as We,hn as Ge,i as Ke,j as qe,jt as z,l as B,nn as Je,nt as Ye,o as Xe,s as Ze,tn as Qe,tt as $e,u as et,vn as V,wt as tt,yn as nt,z as rt,zt as it}from"./index-C5fAw9ll.js";import{t as H}from"./QList-Cx1UfaUm.js";import{i as at,r as ot,s as U,t as W}from"./QSelect-Cb_s_nox.js";import{n as G,t as K}from"./QItemSection-MdJ1_ZK7.js";import{t as st}from"./QExpansionItem-DKgaMJ_l.js";import{a as ct,i as q,n as lt,r as ut}from"./use-tours-BHNasCvg.js";import{t as dt}from"./TouchPan-BSU3z0aO.js";import{t as ft}from"./QTooltip-X5ps8Opw.js";import{t as pt}from"./QChip-Be16M4Ig.js";import{t as mt}from"./ClosePopup-CRV2hxHS.js";import{t as ht}from"./use-is-mobile-CDB_rzM9.js";import{a as gt,c as _t,l as vt,n as yt,o as bt,r as xt,s as St,t as Ct}from"./permissionModes-DLWiBfdb.js";import{t as wt}from"./QBtnDropdown-DBgGsN-D.js";import{i as Tt,n as Et,r as Dt,t as Ot}from"./MemoryProposalList-SJsnzUAM.js";import{n as kt,r as At,t as jt}from"./custom-sounds-DR68eyF8.js";import{t as Mt}from"./QBanner-BT2ZemYu.js";import{t as Nt}from"./project-color-gB5yeZPN.js";import{t as Pt}from"./QPage-CqkGHokx.js";import{t as Ft}from"./DrawerToggleButton-DG1Qjqk1.js";import{t as It}from"./TourReplayButton-DQwS2xdD.js";import{n as Lt,t as Rt}from"./workspace-templates-BnFkigYg.js";import{t as zt}from"./workspace-page-layout-Dw9NhZsL.js";var Bt=Object.create,Vt=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,Ut=Object.getOwnPropertyNames,Wt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty,Kt=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),qt=(e,t)=>{let n={};for(var r in e)Vt(n,r,{get:e[r],enumerable:!0});return t||Vt(n,Symbol.toStringTag,{value:`Module`}),n},Jt=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Ut(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Gt.call(e,s)&&s!==n&&Vt(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Ht(t,s))||r.enumerable});return e},Yt=(e,t,n)=>(n=e==null?{}:Bt(Wt(e)),Jt(t||!e||!e.__esModule||!Gt.call(e,`default`)?Vt(n,`default`,{value:e,enumerable:!0}):n,e)),Xt=`q-slider__marker-labels`,Zt=e=>({value:e}),Qt=({marker:e})=>s(`div`,{key:e.value,style:e.style,class:e.classes},e.label),$t=[34,37,40,33,39,38,35,36],en={...se,...le,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`}},tn=[`pan`,`update:modelValue`,`change`];function nn({updateValue:e,updatePosition:t,getDragging:n,formAttrs:r}){let{props:i,emit:a,slots:c}=y(),l=re(),u=ce(i,l),d=ue(r),f=o(!1),p=o(!1),m=o(!1),h=o(!1),_=T(()=>i.vertical?`--v`:`--h`),v=T(()=>`-`+(i.switchLabelSide?`switched`:`standard`)),b=T(()=>i.vertical?i.reverse:i.reverse!==(l.lang.rtl===!0)),x=T(()=>!Number.isFinite(i.innerMin)||i.innerMin<i.min?i.min:i.innerMin),S=T(()=>!Number.isFinite(i.innerMax)||i.innerMax>i.max?i.max:i.innerMax),C=T(()=>!i.disable&&!i.readonly&&x.value<S.value),E=T(()=>{if(i.step===0)return e=>e;let e=(String(i.step).trim().split(`.`)[1]||``).length;return t=>Number.parseFloat(t.toFixed(e))}),D=T(()=>i.step===0?1:i.step),O=T(()=>C.value?i.tabindex||0:-1),k=T(()=>i.max-i.min),A=T(()=>S.value-x.value),ee=T(()=>_e(x.value)),j=T(()=>_e(S.value)),M=T(()=>i.vertical?b.value?`bottom`:`top`:b.value?`right`:`left`),P=T(()=>i.vertical?`height`:`width`),F=T(()=>i.vertical?`width`:`height`),te=T(()=>i.vertical?`vertical`:`horizontal`),ne=T(()=>`q-slider q-slider${_.value} q-slider--${f.value?``:`in`}active inline no-wrap `+(i.vertical?`row`:`column`)+(i.disable?` disabled`:` q-slider--enabled`+(C.value?` q-slider--editable`:``))+(m.value===`both`?` q-slider--focus`:``)+(i.label||i.labelAlways?` q-slider--label`:``)+(i.labelAlways?` q-slider--label-always`:``)+(u()?` q-slider--dark`:``)+(i.dense?` q-slider--dense q-slider--dense`+_.value:``));function ie(e){let t=`q-slider__`+e;return`${t} ${t}${_.value} ${t}${_.value}${v.value}`}function ae(e){let t=`q-slider__`+e;return`${t} ${t}${_.value}`}let I=T(()=>{let e=i.selectionColor||i.color;return`q-slider__selection absolute`+(e===void 0?``:` text-${e}`)}),L=T(()=>ae(`markers`)+` absolute overflow-hidden`),oe=T(()=>ae(`track-container`)),se=T(()=>ie(`pin`)),le=T(()=>ie(`label`)),de=T(()=>ie(`text-container`)),fe=T(()=>ie(`marker-labels-container`)+(i.markerLabelsClass===void 0?``:` ${i.markerLabelsClass}`)),pe=T(()=>`q-slider__track relative-position no-outline`+(i.trackColor===void 0?``:` bg-${i.trackColor}`)),R=T(()=>{let e={[F.value]:i.trackSize};return i.trackImg!==void 0&&(e.backgroundImage=`url(${i.trackImg}) !important`),e}),me=T(()=>`q-slider__inner absolute`+(i.innerTrackColor===void 0?``:` bg-${i.innerTrackColor}`)),he=T(()=>{let e=j.value-ee.value,t={[M.value]:`${100*ee.value}%`,[P.value]:e===0?`2px`:`${100*e}%`};return i.innerTrackImg!==void 0&&(t.backgroundImage=`url(${i.innerTrackImg}) !important`),t});function ge(e){let{min:t,max:n,step:r}=i,a=t+e*(n-t);if(r>0){let e=(a-x.value)%r;a+=(Math.abs(e)>=r/2?(e<0?-1:1)*r:0)-e}return a=E.value(a),at(a,x.value,S.value)}function _e(e){return k.value===0?0:(e-i.min)/k.value}function ve(e,t){let n=N(e),r=i.vertical?at((n.top-t.top)/t.height,0,1):at((n.left-t.left)/t.width,0,1);return at(b.value?1-r:r,ee.value,j.value)}let ye=T(()=>nt(i.markers)&&i.markers>0?i.markers:D.value),be=T(()=>{let e=[],t=ye.value,n=i.max,r=Math.max((String(t).trim().split(`.`)[1]||``).length,(String(i.min).trim().split(`.`)[1]||``).length),a=0,o=i.min;do{e.push(o),a++;let n=Number.parseFloat((i.min+a*t).toFixed(r));o=n>o?n:i.min+a*t}while(o<n);return e.push(n),e}),xe=T(()=>{let e=` ${Xt}${_.value}-`;return`q-slider__marker-labels${e}${i.switchMarkerLabelsSide?`switched`:`standard`}${e}${b.value?`rtl`:`ltr`}`}),Se=T(()=>i.markerLabels===!1?null:Te(i.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:xe.value+(e.classes===void 0?``:` `+e.classes),style:{...Ee(e.value),...e.style}}))),Ce=T(()=>({markerList:Se.value,markerMap:De.value,classes:xe.value,getStyle:Ee})),we=T(()=>{let e=A.value===0?`2px`:100*ye.value/A.value;return{...he.value,backgroundSize:i.vertical?`2px ${e}%`:`${e}% 2px`}});function Te(e){if(e===!1)return null;if(e===!0)return be.value.map(Zt);if(typeof e==`function`)return be.value.map(t=>{let n=e(t);return Re(n)?{...n,value:t}:{value:t,label:n}});let t=({value:e})=>e>=i.min&&e<=i.max;return Array.isArray(e)?e.map(e=>Re(e)?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return Re(n)?{...n,value:r}:{value:r,label:n}}).filter(t)}function Ee(e){return{[M.value]:`${100*(e-i.min)/k.value}%`}}let De=T(()=>{if(i.markerLabels===!1)return null;let e={};return Se.value.forEach(t=>{e[t.value]=t}),e});function Oe(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](Ce.value);let e=c[`marker-label`]||Qt;return Se.value.map(t=>e({marker:t,...Ce.value}))}let ke=T(()=>[[dt,C.value?Ae:void 0,void 0,{[te.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function Ae(r){r.isFinal?(h.value!==void 0&&(t(r.evt),r.touch&&e(!0),h.value=void 0,a(`pan`,`end`)),f.value=!1,m.value=!1):r.isFirst?(h.value=n(r.evt),t(r.evt),e(),f.value=!0,a(`pan`,`start`)):(t(r.evt),e())}function je(){m.value=!1}function Me(r){t(r,n(r)),e(),p.value=!0,f.value=!0,document.addEventListener(`mouseup`,Ne,!0)}function Ne(){p.value=!1,f.value=!1,e(!0),je(),document.removeEventListener(`mouseup`,Ne,!0)}function Pe(r){t(r,n(r)),e(!0),je()}function Fe(t){$t.includes(t.keyCode)&&e(!0)}function Ie(e){if(i.vertical)return null;let t=l.lang.rtl===i.reverse?e:1-e;return{transform:`translateX(calc(${2*t-1} * ${i.thumbSize} / 2 + ${50-100*t}%))`}}function Le(e){let t=T(()=>!p.value&&(m.value===e.focusValue||m.value===`both`)?` q-slider--focus`:``),n=T(()=>`q-slider__thumb q-slider__thumb${_.value} q-slider__thumb${_.value}-${b.value?`rtl`:`ltr`} absolute non-selectable`+t.value+(e.thumbColor.value===void 0?``:` text-${e.thumbColor.value}`)),r=T(()=>({width:i.thumbSize,height:i.thumbSize,[M.value]:`${100*e.ratio.value}%`,zIndex:m.value===e.focusValue?2:void 0})),a=T(()=>e.labelColor.value===void 0?``:` text-${e.labelColor.value}`),o=T(()=>Ie(e.ratio.value)),c=T(()=>`q-slider__text`+(e.labelTextColor.value===void 0?``:` text-${e.labelTextColor.value}`));return()=>{let t=[s(`svg`,{class:`q-slider__thumb-shape absolute-full`,viewBox:`0 0 20 20`,"aria-hidden":`true`},[s(`path`,{d:i.thumbPath})]),s(`div`,{class:`q-slider__focus-ring fit`})];return(i.label||i.labelAlways)&&t.push(s(`div`,{class:se.value+` absolute fit no-pointer-events`+a.value},[s(`div`,{class:le.value,style:{minWidth:i.thumbSize}},[s(`div`,{class:de.value,style:o.value},[s(`span`,{class:c.value},e.label.value)])])])),e.injectFormInput!==!1&&i.name!==void 0&&!i.disable&&d(t,`push`),s(`div`,{class:n.value,style:r.value,...e.getNodeData()},t)}}function ze(e,t,n,r){let a=[];i.innerTrackColor!==`transparent`&&a.push(s(`div`,{key:`inner`,class:me.value,style:he.value})),i.selectionColor!==`transparent`&&a.push(s(`div`,{key:`selection`,class:I.value,style:e.value})),i.markers!==!1&&a.push(s(`div`,{key:`marker`,class:L.value,style:we.value})),r(a);let o=[g(s(`div`,{key:`trackC`,class:oe.value,tabindex:t.value,...n.value},[s(`div`,{class:pe.value,style:R.value},a)]),ke.value)];return i.markerLabels!==!1&&o[i.switchMarkerLabelsSide?`unshift`:`push`](s(`div`,{key:`markerL`,class:fe.value},Oe())),o}return w(()=>{document.removeEventListener(`mouseup`,Ne,!0)}),{state:{active:f,focus:m,preventFocus:p,dragging:h,editable:C,classes:ne,tabindex:O,orientation:te,roundValueFn:E,keyStep:D,trackLen:k,innerMin:x,innerMinRatio:ee,innerMax:S,innerMaxRatio:j,positionProp:M,sizeProp:P,isReversed:b},methods:{onActivate:Me,onClick:Pe,onBlur:je,onKeyup:Fe,getContent:ze,getThumbRenderFn:Le,convertRatioToModel:ge,convertModelToRatio:_e,getDraggingRatio:ve}}}var rn=()=>({}),an=ie({name:`QSlider`,props:{...en,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:tn,inheritAttrs:!1,setup(e,{emit:n,attrs:r}){let i=re(),a=Te(),{state:c,methods:l}=nn({updateValue:w,updatePosition:D,getDragging:E,formAttrs:de(e)}),d=t(null),f=o(0),p=o(0),m=null,h=null;function g(){h=null,p.value=e.modelValue===null?c.innerMin.value:at(e.modelValue,c.innerMin.value,c.innerMax.value)}u(()=>`${e.modelValue}|${c.innerMin.value}|${c.innerMax.value}`,g,{immediate:!0});let _=T(()=>l.convertModelToRatio(p.value)),v=T(()=>c.active.value?f.value:_.value),y=T(()=>{let t={[c.positionProp.value]:`${100*c.innerMinRatio.value}%`,[c.sizeProp.value]:`${100*(v.value-c.innerMinRatio.value)}%`};return e.selectionImg!==void 0&&(t.backgroundImage=`url(${e.selectionImg}) !important`),t}),b=l.getThumbRenderFn({focusValue:!0,getNodeData:rn,ratio:v,label:T(()=>e.labelValue===void 0?p.value:e.labelValue),thumbColor:T(()=>e.thumbColor||e.color),labelColor:T(()=>e.labelColor),labelTextColor:T(()=>e.labelTextColor)}),x=T(()=>c.editable.value?{onClick:l.onClick,onMousedown:l.onActivate,onFocus:O,onBlur:l.onBlur,onKeydown:k,onKeyup:l.onKeyup}:{}),S=T(()=>{let t={role:`slider`,"aria-orientation":c.orientation.value,"aria-valuemin":c.innerMin.value,"aria-valuemax":c.innerMax.value,"aria-valuenow":e.modelValue===null?c.innerMin.value:e.modelValue,"data-step":e.step};return e.labelValue===void 0?e.modelValue===null&&(t[`aria-valuetext`]=i.lang.label.noValue):t[`aria-valuetext`]=e.labelValue,e.disable?t[`aria-disabled`]=`true`:e.readonly&&(t[`aria-readonly`]=`true`),t}),C=T(()=>({...S.value,...a.attributes.value,...x.value}));function w(t){p.value!==e.modelValue&&p.value!==h&&(h=p.value,n(`update:modelValue`,p.value)),t&&(m!==null&&m!==p.value&&n(`change`,p.value),m=null)}function E(){return m=p.value,d.value.getBoundingClientRect()}function D(t,n=c.dragging.value){let r=l.getDraggingRatio(t,n);p.value=l.convertRatioToModel(r),f.value=!e.snap||e.step===0?r:l.convertModelToRatio(p.value)}function O(){c.focus.value=!0}function k(t){if(!$t.includes(t.keyCode))return;if(F(t),m===null&&(m=p.value),t.keyCode===36||t.keyCode===35){p.value=t.keyCode===36?c.innerMin.value:c.innerMax.value,w();return}let n=([34,33].includes(t.keyCode)?10:1)*c.keyStep.value,r=([34,37,40].includes(t.keyCode)?-1:1)*(c.isReversed.value?-1:1)*(e.vertical?-1:1)*n;p.value=at(c.roundValueFn.value(p.value+r),c.innerMin.value,c.innerMax.value),w()}return()=>{let t=l.getContent(y,c.tabindex,C,e=>{e.push(b())});return s(`div`,{ref:d,class:[c.classes.value+(e.modelValue===null?` q-slider--no-value`:``),r.class],style:r.style,...a.listeners.value},t)}}});function on(e,t=new WeakMap){if(Object(e)!==e)return e;if(t.has(e))return t.get(e);let n=e instanceof Date?new Date(e):e instanceof RegExp?new RegExp(e.source,e.flags):e instanceof Set?new Set:e instanceof Map?new Map:typeof e.constructor==`function`?e.prototype!==void 0&&typeof e.prototype.constructor==`function`?e:new e.constructor:Object.create(null);if(typeof e.constructor==`function`&&typeof e.valueOf==`function`){let n=e.valueOf();if(Object(n)!==n){let r=new e.constructor(n);return t.set(e,r),r}}return t.set(e,n),e instanceof Set?e.forEach(e=>{n.add(on(e,t))}):e instanceof Map&&e.forEach((e,r)=>{n.set(r,on(e,t))}),Object.assign(n,...Object.keys(e).map(n=>({[n]:on(e[n],t)})))}var sn=ie({name:`QPopupEdit`,props:{modelValue:{required:!0},title:String,buttons:Boolean,labelSet:String,labelCancel:String,color:{type:String,default:`primary`},validate:{type:Function,default:()=>!0},autoSave:Boolean,cover:{type:Boolean,default:!0},disable:Boolean},emits:[`update:modelValue`,`save`,`cancel`,`beforeShow`,`show`,`beforeHide`,`hide`],setup(e,{slots:n,emit:r}){let{proxy:i}=y(),a=re(),c=t(null),l=o(``),u=o(``),d=!1,f=T(()=>j({initialValue:l.value,validate:e.validate,set:m,cancel:h,updatePosition:g},`value`,()=>u.value,e=>{u.value=e}));function m(){e.validate(u.value)&&(_()&&(r(`save`,u.value,l.value),r(`update:modelValue`,u.value)),v())}function h(){_()&&r(`cancel`,u.value,l.value),v()}function g(){p(()=>{c.value.updatePosition()})}function _(){return!V(u.value,l.value)}function v(){d=!0,c.value.hide()}function b(){d=!1,l.value=on(e.modelValue),u.value=on(e.modelValue),r(`beforeShow`)}function x(){r(`show`)}function S(){!d&&_()&&(e.autoSave&&e.validate(u.value)?(r(`save`,u.value,l.value),r(`update:modelValue`,u.value)):r(`cancel`,u.value,l.value)),r(`beforeHide`)}function C(){r(`hide`)}function w(){let t=n.default===void 0?[]:[n.default(f.value)].flat();return e.title&&t.unshift(s(`div`,{class:`q-dialog__title q-mt-sm q-mb-sm`},e.title)),e.buttons&&t.push(s(`div`,{class:`q-popup-edit__buttons row justify-center no-wrap`},[s(L,{flat:!0,color:e.color,label:e.labelCancel||a.lang.label.cancel,onClick:h}),s(L,{flat:!0,color:e.color,label:e.labelSet||a.lang.label.set,onClick:m})])),t}return Object.assign(i,{set:m,cancel:h,show(e){c.value?.show(e)},hide(e){c.value?.hide(e)},updatePosition:g}),()=>{if(!e.disable)return s(ot,{ref:c,class:`q-popup-edit`,cover:e.cover,onBeforeShow:b,onShow:x,onBeforeHide:S,onHide:C,onEscapeKey:h},w)}}}),cn={class:`custom-sounds`,"data-test":`custom-sounds`},ln={class:`text-subtitle2`},un={class:`text-kobo-3 text-caption q-mb-sm`},dn={class:`row items-center q-gutter-sm`},fn=[`accept`,`disabled`],pn={key:0,class:`text-kobo-3 text-caption`},mn={key:0,class:`text-negative text-caption q-mt-sm q-mb-none`,role:`alert`},hn={class:`row items-center no-wrap`},gn=k({__name:`CustomSoundManager`,setup(t){let{t:n}=Pe(),r=jt(),a=o(null),s=o(``),c=T(()=>r.sounds.length>=20),l=[`type`,`size`,`count`];function u(e){return n(`settings.customSoundsError.${e}`,{count:20,size:$e/1024/1024})}function d(e){return e instanceof it?e.status===413?u(`size`):l.includes(e.code)?u(e.code):n(`settings.customSoundsError.failed`):n(`settings.customSoundsError.failed`)}async function p(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){if(s.value=``,n.size>2097152){s.value=u(`size`);return}if(!Ye(n.name)){s.value=u(`type`);return}try{await r.uploadSound(n)}catch(e){s.value=d(e)}}}async function h(e){s.value=``;try{await r.removeSound(e)}catch(e){s.value=d(e)}}function g(e){Le(e,1)}return m(()=>{r.loaded||r.fetchSounds()}),(t,n)=>(f(),E(`div`,cn,[O(`div`,ln,i(t.$t(`settings.customSounds`)),1),O(`div`,un,i(t.$t(`settings.customSoundsHint`,{count:e(20),size:e($e)/1024/1024})),1),O(`div`,dn,[O(`input`,{ref_key:`fileInput`,ref:a,class:`hidden`,type:`file`,"data-test":`custom-sound-input`,accept:e(Ve),disabled:e(r).busy||c.value,onChange:p},null,40,fn),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`library_music`,label:t.$t(`settings.customSoundsImport`),loading:e(r).busy,disable:c.value,"data-test":`custom-sound-import`,onClick:n[0]||=e=>a.value?.click()},null,8,[`label`,`loading`,`disable`]),c.value?(f(),E(`span`,pn,i(t.$t(`settings.customSoundsFull`,{count:e(20)})),1)):x(``,!0)]),s.value?(f(),E(`p`,mn,i(s.value),1)):x(``,!0),e(r).sounds.length>0?(f(),b(H,{key:1,bordered:``,separator:``,class:`rounded-borders q-mt-sm`},{default:_(()=>[(f(!0),E(D,null,A(e(r).sounds,n=>(f(),b(G,{key:n.id},{default:_(()=>[v(K,null,{default:_(()=>[v(U,{class:`ellipsis`,title:n.name},{default:_(()=>[S(i(n.name),1)]),_:2},1032,[`title`]),v(U,{caption:``},{default:_(()=>[S(i(Math.max(1,Math.round(n.size/1024)))+` KB`,1)]),_:2},1024)]),_:2},1024),v(K,{side:``},{default:_(()=>[O(`div`,hn,[v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`play_arrow`,color:`primary`,"aria-label":t.$t(`settings.notificationSoundPreview`),onClick:e=>g(n.reference)},null,8,[`aria-label`,`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`kobo-3`,disable:e(r).busy,"aria-label":t.$t(`common.delete`),onClick:e=>h(n.id)},null,8,[`disable`,`aria-label`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):x(``,!0)]))}}),_n={class:`q-pa-sm q-gutter-sm`},vn={class:`text-caption`},yn={key:0},J={key:1,role:`alert`,class:`text-negative`},bn={key:2,role:`status`},xn={class:`row q-gutter-sm`},Sn=k({__name:`IntegrationConnectionSettings`,props:c({integration:{}},{modelValue:{default:()=>({command:``,args:``,environment:``})},modelModifiers:{},connectionStatus:{default:()=>n({configured:!1})},connectionStatusModifiers:{}}),emits:[`update:modelValue`,`update:connectionStatus`],setup(e){let{t}=Pe(),n=e,r=d(e,`modelValue`),a=T(()=>({command:`npx`,args:JSON.stringify([`-y`,n.integration===`notion`?`@notionhq/notion-mcp-server`:t(`integration.packageExample`)]),environment:JSON.stringify(n.integration===`notion`?{NOTION_TOKEN:t(`integration.tokenExample`)}:{[t(`integration.variableExample`)]:t(`integration.valueExample`)})})),s=d(e,`connectionStatus`),c=T(()=>s.value.configured),l=o(!1),u=o(!1),p=o(!1),h=o(!1);function g(e,t){r.value={...r.value,[e]:String(t??``)}}async function y(){u.value=!0,p.value=!1;try{s.value.configured=(await R(`/api/integrations/${n.integration}`)).configured,l.value=!0}catch{p.value=!0}finally{u.value=!1}}async function S(e){if(!l.value||u.value)return;let t=r.value;u.value=!0,p.value=!1,h.value=!1;try{let i=await R(`/api/integrations/${n.integration}`,{method:`PUT`,body:e===null?`null`:e});s.value.configured=i.configured,Object.assign(t,{command:``,args:``,environment:``}),r.value===t&&(r.value={...t}),h.value=!0}catch{p.value=!0}finally{u.value=!1}}async function C(){try{await S({command:r.value.command,args:JSON.parse(r.value.args.trim()||`[]`),env:JSON.parse(r.value.environment.trim()||`{}`)})}catch{p.value=!0,h.value=!1}}return m(y),(e,t)=>(f(),b(st,{label:e.$t(`integration.direct`),class:`q-mb-md`},{default:_(()=>[O(`div`,_n,[O(`p`,null,i(e.$t(`integration.directHint`)),1),O(`p`,vn,i(e.$t(`integration.agentScope`)),1),c.value?(f(),E(`p`,yn,i(e.$t(`integration.stored`)),1)):x(``,!0),v(z,{"model-value":r.value.command,outlined:``,dense:``,label:e.$t(`integration.command`),placeholder:e.$t(`integration.example`,{example:a.value.command}),"stack-label":``,disable:u.value,autocomplete:`off`,"onUpdate:modelValue":t[0]||=e=>g(`command`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),v(z,{"model-value":r.value.args,outlined:``,dense:``,type:`textarea`,label:e.$t(`integration.args`),placeholder:e.$t(`integration.example`,{example:a.value.args}),"stack-label":``,disable:u.value,autocomplete:`off`,spellcheck:`false`,"onUpdate:modelValue":t[1]||=e=>g(`args`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),v(z,{"model-value":r.value.environment,outlined:``,dense:``,type:`textarea`,label:e.$t(`integration.environment`),placeholder:e.$t(`integration.example`,{example:a.value.environment}),"stack-label":``,disable:u.value,autocomplete:`off`,spellcheck:`false`,"onUpdate:modelValue":t[2]||=e=>g(`environment`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),p.value?(f(),E(`p`,J,i(e.$t(`integration.failed`)),1)):x(``,!0),h.value?(f(),E(`p`,bn,i(e.$t(`integration.saved`)),1)):x(``,!0),O(`div`,xn,[v(L,{outline:``,"no-caps":``,label:e.$t(`integration.save`),disable:u.value||!l.value||!r.value.command.trim(),onClick:C},null,8,[`label`,`disable`]),v(L,{flat:``,"no-caps":``,label:e.$t(`integration.clear`),disable:u.value||!l.value||!c.value,onClick:t[3]||=e=>S(null)},null,8,[`label`,`disable`]),l.value?x(``,!0):(f(),b(L,{key:0,flat:``,"no-caps":``,label:e.$t(`setup.check`),loading:u.value,onClick:y},null,8,[`label`,`loading`]))])])]),_:1},8,[`label`]))}});function Cn(e){let t=document.createElement(`textarea`);t.value=e,t.contentEditable=`true`,t.style.position=`fixed`;let n=()=>{};Qe(n),document.body.append(t),t.focus(),t.select();let r=document.execCommand(`copy`);return t.remove(),Je(n),r}function wn(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let t=Cn(e);return t?Promise.resolve(!0):Promise.reject(t)}function Tn(e,t){let n=[{url:e.localUrl,kind:`local`,requiresToken:e.localRequiresToken}];if(!e.networkEnabled)return n;if(n.push(...e.lanUrls.map(e=>({url:e,kind:`remote`,requiresToken:!0}))),e.behindProxy)try{let r=new URL(t);if([`http:`,`https:`].includes(r.protocol)&&(!e.proxyHostname||r.hostname.replace(/^\[|\]$/g,``)===e.proxyHostname)){let e=`${r.origin}/api/mcp`;n.some(t=>t.url===e)||n.push({url:e,kind:`proxy`,requiresToken:!0})}}catch{}return n}function En(e,t,n,r){let i=n.trim()?Fe(n):``,a=r||`<KOBO_NETWORK_TOKEN>`;if(t===`stdio`){if(!e.stdio)throw Error(`MCP stdio entrypoint unavailable`);return JSON.stringify({mcpServers:{kobo:{...e.stdio,env:{...e.stdio.env,...i?{KOBO_MCP_CLIENT_NAME:i}:{},...e.localRequiresToken?{KOBO_NETWORK_TOKEN:a}:{}}}}},null,2)}let o={...i?{"X-Kobo-Client-Name":encodeURIComponent(i),"X-Kobo-Client-Name-Encoding":`uri`}:{},...t.requiresToken?{"X-Kobo-Token":a}:{}};return JSON.stringify({mcpServers:{kobo:{url:t.url,...Object.keys(o).length?{headers:o}:{}}}},null,2)}var Dn={"data-tour":`settings-mcp`,class:`q-mt-lg`},On={class:`text-subtitle2 q-mb-sm`},Y={class:`text-caption text-kobo-3`},kn={key:0,class:`text-caption text-kobo-3`},An={key:0,class:`row items-center q-mt-sm`},jn={class:`mcp-url col`},Mn={class:`mcp-config q-pa-sm`},Nn={class:`text-caption text-kobo-3`},Pn={class:`row q-gutter-sm`},Fn={key:1,class:`text-caption text-kobo-3 q-mt-sm`},In={key:2,class:`text-caption text-kobo-3 q-mt-sm`},Ln=ct(k({__name:`McpConnectionSettings`,props:{token:{},networkEnabled:{type:Boolean},behindProxy:{type:Boolean}},setup(t){let n=t,{t:r}=Pe(),a=re(),s=o(null),c=o(!1),l=o(``),d=o(``),p=T(()=>s.value?Tn(s.value,window.location.origin):[]),m=T(()=>[...p.value.map(e=>({label:`${r(`settings.mcp.${e.kind}`)} — ${e.url}`,value:e.url})),...s.value?.stdio?[{label:r(`settings.mcp.stdio`),value:`stdio`}]:[]]),h=T(()=>d.value===`stdio`&&s.value?.stdio?`stdio`:p.value.find(e=>e.url===d.value)),g=T(()=>s.value&&h.value?En(s.value,h.value,l.value):``),y=T(()=>h.value===`stdio`?s.value?.localRequiresToken:h.value?.requiresToken);u(()=>[n.networkEnabled,n.behindProxy],async(e,t,n)=>{let r=new AbortController;n(()=>r.abort());try{let e=await R(`/api/settings/mcp`,{signal:r.signal});if(r.signal.aborted)return;s.value=e,c.value=!1,m.value.some(e=>e.value===d.value)||(d.value=s.value.localUrl)}catch{if(r.signal.aborted)return;c.value=!0}},{immediate:!0});async function C(e){try{await wn(e),a.notify({type:`positive`,message:r(`settings.network.copied`)})}catch{a.notify({type:`negative`,message:r(`settings.mcp.copyFailed`)})}}function w(){s.value&&h.value&&n.token&&n.networkEnabled&&C(En(s.value,h.value,l.value,n.token))}return(n,a)=>(f(),E(`section`,Dn,[O(`div`,On,i(e(r)(`settings.mcp.title`)),1),O(`p`,Y,i(e(r)(`settings.mcp.hint`)),1),c.value?(f(),b(Mt,{key:0,dense:``,class:`bg-negative text-white`},{default:_(()=>[S(i(e(r)(`settings.network.loadFailed`)),1)]),_:1})):s.value?(f(),E(D,{key:1},[t.networkEnabled?x(``,!0):(f(),E(`p`,kn,i(e(r)(`settings.mcp.remoteDisabled`)),1)),v(z,{modelValue:l.value,"onUpdate:modelValue":a[0]||=e=>l.value=e,label:e(r)(`settings.mcp.clientName`),maxlength:`120`,outlined:``,dense:``,dark:``,class:`q-mb-md`},null,8,[`modelValue`,`label`]),v(W,{modelValue:d.value,"onUpdate:modelValue":a[1]||=e=>d.value=e,options:m.value,"emit-value":``,"map-options":``,label:e(r)(`settings.mcp.connection`),outlined:``,dense:``,dark:``},null,8,[`modelValue`,`options`,`label`]),h.value?(f(),E(D,{key:1},[h.value===`stdio`?x(``,!0):(f(),E(`div`,An,[O(`code`,jn,i(h.value.url),1),v(L,{flat:``,dense:``,icon:`content_copy`,title:e(r)(`settings.mcp.copyUrl`),onClick:a[2]||=e=>C(h.value.url)},null,8,[`title`])])),O(`pre`,Mn,i(g.value),1),O(`p`,Nn,i(e(r)(`settings.mcp.genericFormat`)),1),O(`div`,Pn,[v(L,{outline:``,dense:``,"no-caps":``,icon:`content_copy`,label:e(r)(`settings.mcp.copyConfig`),onClick:a[3]||=e=>C(g.value)},null,8,[`label`]),y.value?(f(),b(L,{key:0,outline:``,dense:``,"no-caps":``,disable:!t.token||!t.networkEnabled,label:e(r)(`settings.mcp.copyWithToken`),onClick:w},null,8,[`disable`,`label`])):x(``,!0)]),y.value&&!t.token?(f(),E(`p`,Fn,i(e(r)(`settings.mcp.tokenUnavailable`)),1)):x(``,!0)],64)):x(``,!0),s.value.stdio?x(``,!0):(f(),E(`p`,In,i(e(r)(`settings.mcp.stdioUnavailable`)),1))],64)):(f(),b(oe,{key:2}))]))}}),[[`__scopeId`,`data-v-2ac25d1e`]]),Rn={class:`memory-scope-select`},X=[`value`],zn={value:``},Bn=[`value`],Vn=ct(k({__name:`MemoryScopeSelect`,props:{scopes:{},modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n,{t:a}=Pe();function o(e){let t=a(`memory.scope.${e.level}`);return e.level===`project`?`${t} · ${e.projectPath??e.id}`:e.level===`workspace`?`${t} · ${e.workspaceId??e.id}`:t}return(n,s)=>(f(),E(`label`,Rn,[O(`span`,null,i(e(a)(`memory.scope.label`)),1),O(`select`,{value:t.modelValue,onChange:s[0]||=e=>r(`update:modelValue`,e.target.value)},[O(`option`,zn,i(e(a)(`memory.scope.choose`)),1),(f(!0),E(D,null,A(t.scopes,e=>(f(),E(`option`,{key:e.id,value:e.id},i(o(e)),9,Bn))),128))],40,X)]))}}),[[`__scopeId`,`data-v-013b6fd5`]]),Hn={class:`memory-settings`,"data-tour":`settings-card-memory`,"aria-labelledby":`memory-settings-title`},Un={class:`memory-settings__header`},Wn={id:`memory-settings-title`},Gn={class:`memory-settings__modes`,"data-tour":`settings-memory-modes`},Kn=[`value`,`checked`,`onChange`],qn={class:`memory-settings__note`},Jn={class:`memory-settings__note`},Yn={key:0,role:`alert`},Xn={key:1,class:`memory-settings__actions`},Zn=[`disabled`],Qn=[`disabled`],$n=[`disabled`],er={key:3,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},tr={class:`memory-settings__note`},nr={key:0,role:`alert`},rr=[`disabled`],ir=[`disabled`],ar={key:4,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},or={class:`memory-settings__note`},sr=[`disabled`],cr=[`disabled`],lr={key:5,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},ur=[`disabled`],dr={value:``},fr=[`value`],pr=[`disabled`],mr=[`disabled`],hr=[`disabled`],gr=ct(k({__name:`MemorySettingsPanel`,props:{memoryMode:{}},emits:[`update:memoryMode`],setup(t,{emit:n}){let r=t,a=n,{t:s}=Pe(),c=We(),d=o(``),p=o(!1),h=o(null),_=o(null),y=o(null),S=o(``),C=o(!1),w=o(!1),k=o(!1),ee=o(null),j=o(!1),M=o(``),N=o(null),P=0;l(()=>{P++});let F=o(``),ne=T(()=>c.scopesFor()),re=T(()=>c.hasMoreScopes()),ie=T(()=>c.loadingScopes.all??!1),ae=T(()=>d.value?c.entriesFor(d.value):[]),I=T(()=>d.value?c.proposalsFor(d.value):[]),L=T(()=>d.value?c.operationsFor(d.value):[]),oe=T(()=>d.value?c.operationsCursor(d.value):void 0);m(async()=>{try{await c.loadScopes(),d.value||=ne.value.find(e=>e.level===`global`)?.id??ne.value[0]?.id??``}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}}),u(d,async e=>{if(P++,N.value=null,F.value=``,p.value=!1,h.value=null,j.value=!1,e)try{await Promise.all([c.loadEntries(e),c.loadProposals(e),c.loadOperations(e)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}},{flush:`sync`});function se(){h.value=null,M.value=``,j.value=!1,p.value=!0}function ce(e){h.value=e,M.value=``,j.value=!1,p.value=!0}async function le(e){C.value=!0,M.value=``;try{if(h.value){let t=e.expectedRevision===void 0?h.value:{...h.value,revision:e.expectedRevision};await c.updateEntry(t,{key:e.key,title:e.title,body:e.body})}else await c.createEntry({scopeId:e.scopeId,key:e.key,title:e.title,body:e.body});p.value=!1,h.value=null,j.value=!1,await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(e){if(h.value&&ve(e)===409){await c.loadEntries(h.value.scopeId),h.value=c.entriesFor(h.value.scopeId).find(e=>e.id===h.value?.id)??null,j.value=!0,M.value=``;return}M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{C.value=!1}}function ue(e){_.value=e}async function de(){try{await c.loadMoreScopes()}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}}async function fe(){let e=_.value;if(e&&!w.value){w.value=!0;try{await c.deleteEntry(e),_.value=null,await Promise.all([c.loadEntries(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{w.value=!1}}}function pe(){_.value=null}function R(e=d.value){let t=ne.value.find(t=>t.id===e);if(!t)return``;let n=s(`memory.scope.${t.level}`);return t.level===`project`?`${n} · ${t.projectPath??t.id}`:t.level===`workspace`?`${n} · ${t.workspaceId??t.id}`:n}function me(e){y.value=e,S.value=``}async function he(){let e=y.value;if(e&&S.value&&!k.value){k.value=!0;try{await c.promoteEntry(e,S.value),y.value=null,S.value=``,await Promise.all([c.loadEntries(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{k.value=!1}}}async function ge(e,t){if(!ee.value){ee.value=e;try{await c.decideProposal(e,t),await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{ee.value=null}}}async function _e(){if(!d.value)return;let e=d.value,t=++P;F.value=``;try{let n=await c.previewClear(e);if(t!==P||d.value!==e)return;N.value={...n,scopeId:e}}catch(e){if(t!==P)return;F.value=e instanceof Error?e.message:s(`memory.settings.clearFailed`)}}function ve(e){return typeof e==`object`&&e&&`status`in e?Number(e.status):void 0}async function ye(){if(!d.value||!N.value||w.value)return;let e=N.value,t=P;if(d.value===e.scopeId){w.value=!0;try{if(await c.clearScope(e.scopeId,e.revision),t!==P)return;N.value=null,await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(n){if(t!==P)return;if(F.value=ve(n)===409?s(`memory.settings.clearConflict`):n instanceof Error?n.message:s(`memory.settings.clearFailed`),ve(n)===409)try{let n=await c.previewClear(e.scopeId);t===P&&(N.value={...n,scopeId:e.scopeId})}catch{t===P&&(N.value=null)}}finally{w.value=!1}}}function be(){j.value=!1,M.value=``}function xe(){j.value=!1,M.value=``}return(t,n)=>(f(),E(`section`,Hn,[O(`header`,Un,[O(`h3`,Wn,i(e(s)(`memory.settings.title`)),1),O(`p`,null,i(e(s)(`memory.settings.intro`)),1)]),O(`fieldset`,Gn,[O(`legend`,null,i(e(s)(`memory.settings.mode`)),1),(f(),E(D,null,A([`manual`,`automatic`,`hybrid`],t=>O(`label`,{key:t},[O(`input`,{type:`radio`,name:`memory-mode`,value:t,checked:r.memoryMode===t,onChange:e=>a(`update:memoryMode`,t)},null,40,Kn),O(`span`,null,i(e(s)(`memory.settings.mode.${t}`)),1),O(`small`,null,i(e(s)(`memory.settings.modeHint.${t}`)),1)])),64)),O(`p`,qn,i(e(s)(`memory.settings.saveNote`)),1)]),n[7]||=O(`div`,{class:`memory-settings__divider`},null,-1),O(`h4`,null,i(e(s)(`memory.settings.manageTitle`)),1),O(`p`,Jn,i(e(s)(`memory.settings.independentNote`)),1),v(Vn,{scopes:ne.value,"model-value":d.value,"onUpdate:modelValue":n[0]||=e=>d.value=e},null,8,[`scopes`,`model-value`]),M.value?(f(),E(`p`,Yn,i(M.value),1)):x(``,!0),d.value?(f(),E(`div`,Xn,[O(`button`,{type:`button`,"data-testid":`memory-add-entry`,disabled:C.value||w.value||k.value,onClick:se},i(e(s)(`memory.settings.add`)),9,Zn),O(`button`,{type:`button`,"data-testid":`memory-clear-preview`,disabled:C.value||w.value||k.value,onClick:_e},i(e(s)(`memory.settings.clear`)),9,Qn)])):x(``,!0),re.value?(f(),E(`button`,{key:2,type:`button`,"data-testid":`memory-load-more-scopes`,disabled:ie.value,onClick:de},i(ie.value?e(s)(`memory.settings.loadingScopes`):e(s)(`memory.settings.loadMoreScopes`)),9,$n)):x(``,!0),N.value?(f(),E(`div`,er,[O(`h4`,null,i(e(s)(`memory.settings.clearConfirmTitle`)),1),O(`p`,null,i(e(s)(`memory.settings.clearConfirm`,{scope:e(s)(`memory.scope.${ne.value.find(e=>e.id===d.value)?.level??`global`}`),entries:N.value.entries,proposals:N.value.proposals})),1),O(`p`,tr,i(e(s)(`memory.settings.clearWarning`)),1),F.value?(f(),E(`p`,nr,i(F.value),1)):x(``,!0),O(`button`,{type:`button`,"data-testid":`memory-clear-confirm`,disabled:w.value,onClick:ye},i(e(s)(`memory.settings.confirmClear`)),9,rr),O(`button`,{type:`button`,"data-testid":`memory-clear-cancel`,disabled:w.value,onClick:n[1]||=e=>{N.value=null,F.value=``}},i(e(s)(`memory.settings.cancel`)),9,ir)])):x(``,!0),_.value?(f(),E(`div`,ar,[O(`h4`,null,i(e(s)(`memory.settings.deleteConfirmTitle`)),1),O(`p`,null,i(e(s)(`memory.settings.deleteConfirm`,{title:_.value.title,scope:R(_.value.scopeId)})),1),O(`p`,or,i(e(s)(`memory.settings.clearWarning`)),1),O(`button`,{type:`button`,"data-testid":`memory-delete-confirm`,disabled:w.value,onClick:fe},i(e(s)(`memory.settings.deleteConfirmAction`)),9,sr),O(`button`,{type:`button`,"data-testid":`memory-delete-cancel`,disabled:w.value,onClick:pe},i(e(s)(`memory.settings.cancel`)),9,cr)])):x(``,!0),y.value?(f(),E(`div`,lr,[O(`h4`,null,i(e(s)(`memory.panel.promoteTo`)),1),O(`label`,null,[O(`span`,null,i(e(s)(`memory.scope.label`)),1),g(O(`select`,{"onUpdate:modelValue":n[2]||=e=>S.value=e,disabled:k.value},[O(`option`,dr,i(e(s)(`memory.scope.choose`)),1),(f(!0),E(D,null,A(ne.value.filter(e=>e.id!==y.value?.scopeId),e=>(f(),E(`option`,{key:e.id,value:e.id},i(R(e.id)),9,fr))),128))],8,ur),[[te,S.value]])]),O(`button`,{type:`button`,"data-testid":`memory-promote-confirm`,disabled:!S.value||k.value,onClick:he},i(e(s)(`memory.entry.promote`)),9,pr),O(`button`,{type:`button`,"data-testid":`memory-promote-cancel`,disabled:k.value,onClick:n[3]||=e=>{y.value=null,S.value=``}},i(e(s)(`memory.settings.cancel`)),9,mr)])):x(``,!0),p.value&&d.value?(f(),b(Tt,{key:6,"scope-id":d.value,entry:h.value,saving:C.value,error:M.value,conflict:j.value,onSave:le,onReload:be,onRebase:xe,onCancel:n[4]||=e=>{p.value=!1,j.value=!1}},null,8,[`scope-id`,`entry`,`saving`,`error`,`conflict`])):(f(),b(Dt,{key:7,entries:ae.value,disabled:C.value||w.value||k.value,onEdit:ce,onDelete:ue,onPromote:me},null,8,[`entries`,`disabled`])),e(c).hasMoreEntries(d.value)?(f(),E(`button`,{key:8,type:`button`,disabled:e(c).loadingEntries[`${d.value}\u0000`],onClick:n[5]||=t=>e(c).loadEntries(d.value,``,!0).catch(e=>M.value=e.message)},i(e(s)(`memory.entry.loadMore`)),9,hr)):x(``,!0),v(Ot,{proposals:I.value,"busy-proposal-id":ee.value,onDecision:ge},null,8,[`proposals`,`busy-proposal-id`]),v(Et,{operations:L.value,"has-more":!!oe.value,onLoadMore:n[6]||=t=>e(c).loadOperations(d.value,!0)},null,8,[`operations`,`has-more`])]))}}),[[`__scopeId`,`data-v-962dbe3d`]]),_r={class:`notification-sounds-grid q-mt-md`},vr={class:`text-subtitle2`},yr={class:`text-kobo-3 text-caption q-mb-sm`},br={class:`row items-center q-gutter-sm`},xr={class:`row items-center q-gutter-sm q-mt-sm`},Sr={class:`text-kobo-2 text-caption volume-label`},Cr={class:`text-kobo-2 text-caption volume-value`},wr=ct(k({__name:`PrNotificationSoundSettings`,props:{modelValue:{},generalSound:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:o}=Pe(),s=T(()=>[{soundKey:`audioPrCiFailedSound`,enabledKey:`audioPrCiFailedEnabled`,volumeKey:`audioPrCiFailedVolume`,title:o(`settings.prCiFailedSound`),description:o(`settings.prCiFailedSoundHint`)},{soundKey:`audioPrCiRecoveredSound`,enabledKey:`audioPrCiRecoveredEnabled`,volumeKey:`audioPrCiRecoveredVolume`,title:o(`settings.prCiRecoveredSound`),description:o(`settings.prCiRecoveredSoundHint`)},{soundKey:`audioPrChangesRequestedSound`,enabledKey:`audioPrChangesRequestedEnabled`,volumeKey:`audioPrChangesRequestedVolume`,title:o(`settings.prChangesRequestedSound`),description:o(`settings.prChangesRequestedSoundHint`)},{soundKey:`audioPrApprovedSound`,enabledKey:`audioPrApprovedEnabled`,volumeKey:`audioPrApprovedVolume`,title:o(`settings.prApprovedSound`),description:o(`settings.prApprovedSoundHint`)},{soundKey:`audioPrMergeConflictSound`,enabledKey:`audioPrMergeConflictEnabled`,volumeKey:`audioPrMergeConflictVolume`,title:o(`settings.prMergeConflictSound`),description:o(`settings.prMergeConflictSoundHint`)},{soundKey:`audioPrReadyToMergeSound`,enabledKey:`audioPrReadyToMergeEnabled`,volumeKey:`audioPrReadyToMergeVolume`,title:o(`settings.prReadyToMergeSound`),description:o(`settings.prReadyToMergeSoundHint`)},{soundKey:`audioPrMergedSound`,enabledKey:`audioPrMergedEnabled`,volumeKey:`audioPrMergedVolume`,title:o(`settings.prMergedSound`),description:o(`settings.prMergedSoundHint`)}]),c=jt(),l=T(()=>[{label:o(`settings.soundGeneral`),value:ve},...Ee.map(e=>({label:o(e.labelKey),value:e.id})),...c.options]);function u(e,t){a(`update:modelValue`,{...r.modelValue,[e]:t})}function d(e){let t=Me(r.modelValue[e.soundKey]);t!==null&&Le(t??r.generalSound,r.modelValue[e.volumeKey])}return(n,r)=>(f(),E(`div`,_r,[(f(!0),E(D,null,A(s.value,n=>(f(),E(`div`,{key:n.soundKey,class:`notification-sound-card q-pa-md rounded-borders`},[O(`div`,vr,i(n.title),1),O(`div`,yr,i(n.description),1),v(B,{"model-value":t.modelValue[n.enabledKey],label:e(o)(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`,"onUpdate:modelValue":e=>u(n.enabledKey,!!e)},null,8,[`model-value`,`label`,`onUpdate:modelValue`]),O(`div`,br,[v(W,{"model-value":t.modelValue[n.soundKey],options:l.value,label:n.title,disable:!t.modelValue[n.enabledKey],dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`,"onUpdate:modelValue":e=>u(n.soundKey,String(e))},null,8,[`model-value`,`options`,`label`,`disable`,`onUpdate:modelValue`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:e(o)(`settings.notificationSoundPreview`),disable:!t.modelValue[n.enabledKey],onClick:e=>d(n)},null,8,[`label`,`disable`,`onClick`])]),O(`div`,xr,[O(`div`,Sr,i(e(o)(`settings.notificationVolume`)),1),v(an,{"model-value":t.modelValue[n.volumeKey],min:0,max:1,step:.05,disable:!t.modelValue[n.enabledKey],"aria-label":e(o)(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`,"onUpdate:modelValue":e=>u(n.volumeKey,Number(e))},null,8,[`model-value`,`disable`,`aria-label`,`onUpdate:modelValue`]),O(`div`,Cr,i(Math.round(t.modelValue[n.volumeKey]*100))+`% `,1)])]))),128))]))}}),[[`__scopeId`,`data-v-dbeaedac`]]),Tr=ct(k({__name:`SettingsNavList`,props:{navItems:{},activeTab:{}},emits:[`select`],setup(e,{emit:t}){let n=t;return(t,a)=>(f(),b(H,{dense:``,class:`settings-nav__list`},{default:_(()=>[(f(!0),E(D,null,A(e.navItems,t=>g((f(),b(G,{key:t.value,clickable:``,"data-tour":`settings-nav-${t.value}`,class:r([`settings-nav__item`,{"settings-nav__item--active":e.activeTab===t.value}]),onClick:e=>n(`select`,t.value)},{default:_(()=>[v(K,{avatar:``,class:`settings-nav__icon`},{default:_(()=>[v(I,{name:t.icon,size:`16px`},null,8,[`name`])]),_:2},1024),v(K,{class:`settings-nav__label`},{default:_(()=>[S(i(t.label),1)]),_:2},1024)]),_:2},1032,[`data-tour`,`class`,`onClick`])),[[ae,!1]])),128))]),_:1}))}}),[[`__scopeId`,`data-v-fac6b946`]]),Er={class:`whip-shortcut-recorder`},Dr={class:`text-caption text-kobo-2 q-mb-xs`},Or={class:`row items-center no-wrap q-gutter-xs`},kr={"data-testid":`whip-shortcut-value`},Ar={key:0,role:`status`,"aria-live":`polite`,class:`q-sr-only`},jr={key:1,role:`alert`,class:`text-negative text-caption q-mt-xs`},Mr=ct(k({__name:`WhipShortcutRecorder`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:s}=Pe(),c=be(),l=o(!1),u=o(``),d=T(()=>l.value?s(`settings.whipShortcutRecording`):Se(r.modelValue,c)),p=T(()=>l.value?s(`settings.whipShortcutRecordingLabel`):s(`settings.whipShortcutButtonLabel`,{shortcut:d.value}));function m(){l.value&&(l.value=!1,window.removeEventListener(`keydown`,h,!0))}function h(e){e.preventDefault(),e.stopPropagation();let t=he(e,c);if(t.status!==`pending`){if(t.status===`reserved`){u.value=s(`settings.whipShortcutReserved`);return}u.value=``,t.status===`accepted`&&a(`update:modelValue`,t.shortcut),m()}}function g(){l.value||(u.value=``,l.value=!0,window.addEventListener(`keydown`,h,!0))}function y(){m(),u.value=``,a(`update:modelValue`,rt)}return w(m),(t,n)=>(f(),E(`div`,Er,[O(`div`,Dr,i(e(s)(`settings.whipShortcut`)),1),O(`div`,Or,[v(L,{"data-testid":`whip-shortcut-recorder`,dense:``,"no-caps":``,outline:``,color:`primary`,"aria-label":p.value,"aria-pressed":l.value,onClick:g},{default:_(()=>[O(`span`,kr,i(d.value),1),v(ft,null,{default:_(()=>[S(i(e(s)(`settings.whipShortcutHint`)),1)]),_:1})]),_:1},8,[`aria-label`,`aria-pressed`]),v(L,{"data-testid":`whip-shortcut-reset`,dense:``,flat:``,round:``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,"aria-label":e(s)(`settings.whipShortcutReset`),onClick:y},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(e(s)(`settings.whipShortcutReset`)),1)]),_:1})]),_:1},8,[`aria-label`])]),l.value?(f(),E(`div`,Ar,i(e(s)(`settings.whipShortcutRecording`)),1)):x(``,!0),u.value?(f(),E(`div`,jr,i(u.value),1)):x(``,!0)]))}}),[[`__scopeId`,`data-v-d8618bd9`]]);function Nr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pr(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Pr(e[n],t[n]))return!1;return!0}return Nr(e)&&Nr(t)?Fr(e,t):!1}function Fr(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.hasOwn(t,r)||!Pr(e[r],t[r]))return!1;return!0}function Ir(e){if(Array.isArray(e))return e.map(Ir);if(e instanceof Date)return new Date(e.getTime());if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ir(r);return t}return e}function Lr(e){return Ir(e)}function Rr(e){return e?{disabled:!1,hintKey:null}:{disabled:!0,hintKey:`settings.whipVolumeMasterAudioDisabled`}}var zr={key:0,class:`settings-load-error`},Br={class:`column`},Vr={class:`settings-load-error__title`},Hr={class:`settings-load-error__detail`},Ur={class:`settings-load-error__hint`},Wr={class:`settings-layout`},Gr={key:0,class:`settings-nav`},Kr={class:`settings-nav__title`},qr={class:`settings-nav`},Jr={class:`settings-nav__title`},Yr={class:`settings-content`},Xr={class:`settings-content__header`},Zr={class:`settings-content__title`},Qr={class:`text-caption text-kobo-3 q-mb-md`},$r={class:`settings-panels`},ei={class:`settings-global-wrap`},ti={key:1,"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ni={class:`text-subtitle2 q-mb-sm`},ri={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ii={class:`text-subtitle2 q-mb-sm`},ai={class:`text-caption text-kobo-3 q-mt-xs`},oi={key:3,"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},si={class:`text-subtitle2 q-mb-sm`},ci={class:`text-caption text-kobo-3 q-mt-xs`},li={key:4,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ui={class:`text-subtitle2 q-mb-sm`},di={class:`text-caption text-kobo-3 q-mb-xs q-mt-sm`},fi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},pi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},mi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},hi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},gi={key:5,"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},_i={class:`text-subtitle2 q-mb-sm`},vi={class:`text-subtitle2 q-mb-sm q-mt-md`},yi={class:`text-subtitle2 q-mb-sm q-mt-md`},bi={class:`text-caption text-kobo-3 q-mb-sm`},xi={class:`text-subtitle2 q-mb-sm q-mt-md`},Si={key:6,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ci={class:`text-subtitle2 q-mb-sm`},wi={class:`row items-center q-gutter-lg`},Ti={key:7,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ei={class:`text-subtitle2 q-mb-xs`},Di={class:`text-kobo-3 text-caption q-mb-md`},Oi={key:0,class:`column q-gutter-sm q-mt-md`},ki={class:`row items-center q-gutter-sm`},Ai={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},ji={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Mi={key:0,class:`text-kobo-3 text-caption`},Ni={key:8,"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pi={class:`text-subtitle2 q-mb-sm`},Fi={class:`text-kobo-3 text-caption q-mb-md`},Ii={class:`notification-sounds-grid q-mt-md`},Li={class:`notification-sound-card q-pa-md rounded-borders`},Ri={class:`text-subtitle2`},zi={class:`text-kobo-3 text-caption q-mb-sm`},Bi={class:`column q-gutter-xs q-mb-sm`},Vi={class:`row items-center q-gutter-sm q-mb-sm`},Hi={class:`row items-center q-gutter-sm`},Ui={class:`row items-center q-gutter-sm q-mt-sm`},Wi={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},Gi={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Ki={class:`notification-sound-card q-pa-md rounded-borders`},qi={class:`text-subtitle2`},Ji={class:`text-kobo-3 text-caption q-mb-sm`},Yi={class:`row items-center q-gutter-sm`},Xi={class:`row items-center q-gutter-sm q-mt-sm`},Zi={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},Qi={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},$i={class:`notification-sound-card q-pa-md rounded-borders`},ea={class:`text-subtitle2`},ta={class:`text-kobo-3 text-caption q-mb-sm`},na={class:`row items-center q-gutter-sm`},ra={class:`row items-center q-gutter-sm q-mt-sm`},ia={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},aa={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},oa={class:`notification-sound-card q-pa-md rounded-borders`},sa={class:`text-subtitle2`},ca={class:`text-kobo-3 text-caption q-mb-sm`},la={class:`row items-center q-gutter-sm`},ua={class:`row items-center q-gutter-sm q-mt-sm`},da={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},fa={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},pa={key:9,"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ma={class:`row items-center q-mb-sm`},ha={class:`text-subtitle2`},ga={class:`column q-gutter-xs`},_a={class:`row items-center q-gutter-sm`},va={class:`row items-center q-gutter-sm`},ya={class:`q-pa-sm text-caption text-kobo-2`},ba={class:`q-mb-sm`},xa={class:`q-mb-sm`},Sa={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-kobo-2`},Ca={class:`q-mb-xs text-kobo-2`},wa={class:`q-mb-sm`},Ta={class:`q-mb-xs text-kobo-2`},Ea={key:10,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Da={class:`text-subtitle2 q-mb-sm`},Oa={class:`row q-col-gutter-sm`},ka={class:`col-12 col-sm-6`},Aa={class:`col-12 col-sm-6`},ja={key:11,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ma={class:`text-subtitle2 q-mb-sm`},Na={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},Pa={class:`text-caption text-kobo-2 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},Fa={class:`column q-gutter-sm`},Ia={class:`row items-center q-gutter-sm`},La={class:`text-body2 text-kobo-1`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},Ra={class:`text-caption text-kobo-3`},za={key:0,class:`q-mt-sm`},Ba={class:`row items-center q-mt-xs`},Va={class:`text-caption text-kobo-3`},Ha={class:`text-caption text-kobo-2`},Ua={key:1,class:`text-caption text-kobo-3 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},Wa={key:12,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ga={class:`text-subtitle2 q-mb-sm`},Ka={class:`q-pa-sm column q-gutter-sm`},qa={class:`row items-center q-gutter-sm`},Ja={class:`text-caption text-kobo-2`},Ya={class:`text-caption text-kobo-2`,style:{"min-width":`40px`,"text-align":`right`}},Xa={class:`text-caption text-kobo-3`},Za={class:`text-caption text-kobo-3`},Qa={class:`text-caption text-kobo-3`},$a={class:`text-caption text-kobo-3`},eo={class:`q-pa-sm column q-gutter-sm`},to={key:13,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-tour":`settings-card-git`},no={class:`row items-center q-mb-sm q-mt-md`},ro={class:`text-subtitle2`},io={class:`text-caption text-kobo-3 q-mb-sm`},ao={key:14,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},oo={class:`text-subtitle2 q-mb-sm`},so={class:`text-caption text-kobo-3 q-mb-sm`},co={class:`row items-center no-wrap`},lo={key:1,class:`text-caption text-kobo-3 q-mb-sm`},uo={class:`row items-center q-gutter-sm`},fo={key:15,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},po={class:`row items-center q-mb-sm`},mo={class:`text-subtitle2`},ho={class:`text-caption text-kobo-3 q-mb-sm`},go={class:`q-mb-sm`},_o={class:`row items-center q-mb-sm q-mt-md`},vo={class:`text-subtitle2`},yo={class:`text-caption text-kobo-3 q-mb-sm`},bo={class:`row items-center q-mb-sm q-mt-md`},xo={class:`text-subtitle2`},So={class:`text-caption text-kobo-3 q-mb-sm`},Co={class:`row items-center q-mb-sm q-mt-md`},wo={class:`text-subtitle2`},To={class:`text-caption text-kobo-3 q-mb-sm`},Eo={key:16,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Do={class:`text-subtitle2 q-mb-sm`},Oo={class:`text-caption text-kobo-3 q-mb-sm`},ko={key:17,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ao={class:`text-subtitle2 q-mb-sm`},jo={class:`text-caption text-kobo-3 q-mb-sm`},Mo={key:18,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},No={class:`text-subtitle2 q-mb-sm`},Po={class:`text-caption text-kobo-3 q-mb-sm`},Fo={key:19,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Io={class:`text-subtitle2 q-mb-sm`},Lo={class:`text-caption text-kobo-3 q-mb-sm`},Ro={class:`q-mb-sm`},zo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Bo={key:21,"data-tour":`settings-card-sentry`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Vo={class:`text-subtitle2 q-mb-sm`},Ho={class:`text-caption text-kobo-3 q-mb-sm`},Uo={class:`q-mb-sm`},Wo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Go={key:23,"data-tour":`settings-card-forge`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ko={class:`text-subtitle2 q-mb-sm`},qo={class:`text-caption text-kobo-3 q-mb-md`},Jo={class:`text-subtitle2 q-mb-sm`},Yo={class:`text-caption text-kobo-3 q-mb-sm`},Xo={class:`q-mb-sm`},Zo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Qo={class:`q-mb-sm`},$o={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},es={class:`row items-center q-mb-sm`},ts={class:`text-subtitle2`},ns={class:`text-caption text-kobo-3 q-mb-xs`},rs={class:`text-subtitle2 q-mb-sm`},is={class:`text-caption text-kobo-3 q-mb-sm`},as={class:`q-mb-sm`},os={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},ss={class:`q-mb-sm`},cs={class:`row items-center q-mb-xs`},ls={class:`field-label-sub text-caption text-kobo-3 col`},us=[`src`,`alt`],ds={key:1,class:`text-caption text-kobo-3 q-py-sm`},fs={key:0,class:`text-caption text-orange-5 q-mb-xs`},ps={class:`text-subtitle2 q-mb-sm`},ms={class:`row items-center q-mb-sm`},hs={class:`text-subtitle2`},gs={class:`text-caption text-kobo-3 q-mb-xs`},_s={key:27,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vs={class:`text-subtitle2 q-mb-sm`},ys={class:`text-caption text-kobo-3 q-mb-sm`},bs={key:28,"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},xs={class:`text-subtitle2 q-mb-sm`},Ss={class:`text-caption text-kobo-3 q-mb-sm`},Cs={key:29,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ws={class:`text-subtitle2 q-mb-sm`},Ts={class:`text-caption text-kobo-3 q-mb-sm`},Es={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},Ds={key:30,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Os={class:`text-subtitle2 q-mb-sm`},ks={class:`text-caption text-kobo-3 q-mb-sm`},As={key:31,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},js={class:`text-subtitle2 q-mb-sm`},Ms={class:`text-caption text-kobo-3 q-mb-sm`},Ns={key:32,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ps={class:`text-subtitle2 q-mb-sm`},Fs={class:`text-caption text-kobo-3 q-mb-sm`},Is={key:33,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ls={class:`text-subtitle2 q-mb-sm`},Rs={class:`text-caption text-kobo-3 q-mb-sm`},zs={key:34,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bs={class:`row items-center justify-between q-mb-sm`},Vs={class:`text-subtitle2`},Hs={class:`text-caption text-kobo-3 q-mb-xs`},Us={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},Ws={key:35,"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Gs={class:`text-subtitle2 q-mb-sm`},Ks={class:`text-caption text-kobo-3 q-mb-sm`},qs={class:`text-caption text-kobo-3 q-mt-xs`},Js={"data-tour":`settings-card-worktrees-purge`},Ys={class:`text-caption text-kobo-3 q-mt-xs`},Xs={"data-tour":`settings-card-worktrees-retention`},Zs={class:`text-subtitle2 q-mb-sm`},Qs={class:`text-caption text-negative q-mb-sm`},$s={class:`text-caption text-kobo-3 q-mb-sm`},ec={key:0,class:`text-caption text-kobo-3 q-mt-sm`},tc={class:`q-pa-sm text-caption text-kobo-2`,style:{"line-height":`1.55`}},nc={class:`text-weight-medium text-kobo-1 q-mb-xs`},rc={class:`q-mb-xs`},ic={class:`purge-docs-code`},ac={class:`text-kobo-3 q-mb-md`},oc={class:`text-weight-medium text-kobo-1 q-mb-xs`},sc={class:`q-mb-xs`},cc={class:`q-pl-md q-my-xs`},lc={class:`purge-docs-code`},uc={class:`text-kobo-3 q-mb-md`},dc={class:`text-weight-medium text-kobo-1 q-mb-xs`},fc={class:`q-mb-xs`},pc={class:`q-mb-xs text-kobo-3`},mc={class:`purge-docs-code`},hc={class:`q-mb-xs text-kobo-3`},gc={class:`purge-docs-code`},_c={class:`text-kobo-3`},vc={key:36,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},yc={class:`text-subtitle2 q-mb-sm`},bc={class:`text-caption text-kobo-3 q-mb-sm`},xc={key:1,class:`q-mt-md`},Sc={class:`text-caption text-kobo-3 q-mt-xs`},Cc={class:`q-mt-md`},wc={class:`text-caption text-kobo-3 q-mb-xs`},Tc={class:`q-mt-md`},Ec={class:`text-caption text-kobo-3 q-mb-xs`},Dc={key:0,class:`text-caption text-kobo-3`},Oc={key:0,class:`q-mt-md`},kc={class:`text-caption text-kobo-3 q-mb-xs`},Ac=[`src`,`alt`],jc={key:37,"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Mc={class:`text-subtitle2 q-mb-sm`},Nc={class:`text-caption text-kobo-3 q-mb-sm`},Pc={class:`row q-gutter-sm`},Fc={key:0,class:`q-pa-none`},Ic={class:`row q-gutter-md`,style:{"min-height":`500px`}},Lc={class:`project-list-col`},Rc={class:`settings-card rounded-borders`,style:{height:`100%`}},zc={class:`q-pa-sm`},Bc={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-kobo-3`,style:{"letter-spacing":`0.05em`}},Vc={key:0,class:`q-pa-md text-center text-caption text-kobo-3`},Hc={class:`q-pa-sm`},Uc={class:`project-form-col`},Wc={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Gc={class:`row items-center q-mb-md`},Kc={class:`text-subtitle1 text-weight-medium text-kobo-1`},qc={key:0,class:`q-mb-md`},Jc={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Yc={class:`text-caption text-kobo-3 q-mt-xs`},Xc={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zc={class:`text-subtitle2 q-mb-md`},Qc={class:`q-mb-md`},$c={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},el={class:`q-mb-md`},tl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},nl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},rl={class:`row items-center q-gutter-xs`},il={class:`text-caption text-kobo-3 q-mt-xs`},al={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ol={class:`text-subtitle2 q-mb-md`},sl={class:`q-mb-md`},cl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},ll={class:`q-mb-md`},ul={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},dl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},fl={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-test":`project-git-settings`},pl={class:`text-subtitle2 q-mb-md`},ml={class:`q-mb-md`},hl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},gl={class:`text-caption text-kobo-3 q-mb-xs`},_l={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vl={class:`text-subtitle2 q-mb-md`},yl={class:`q-mb-md`},bl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},xl={class:`text-caption text-kobo-3 q-mb-xs`},Sl={class:`q-mb-md`},Cl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},wl={class:`text-caption text-kobo-3 q-mb-xs`},Tl={class:`q-mb-md`},El={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Dl={class:`text-caption text-kobo-3 q-mb-xs`},Ol={key:0,class:`q-mb-md`},kl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Al={class:`text-caption text-kobo-3 q-mb-xs`},jl={key:1,class:`q-mb-md`},Ml={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Nl={class:`text-caption text-kobo-3 q-mb-xs`},Pl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Fl={class:`text-caption text-kobo-3 q-mt-xs`},Il={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ll={class:`text-subtitle2 q-mb-md`},Rl={class:`q-mb-md`},zl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Bl={class:`text-caption text-kobo-3 q-mb-xs`},Vl={class:`text-caption text-kobo-3 q-mt-xs`},Hl={class:`q-mb-md`},Ul={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Wl={class:`text-caption text-kobo-3 q-mb-xs`},Gl={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-kobo-3`},Kl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},ql={class:`text-caption text-kobo-3 q-mb-xs`},Jl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Yl={class:`text-caption text-kobo-3 q-mb-xs`},Xl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Zl={class:`text-caption text-kobo-3 q-mb-xs`},Ql={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},$l={class:`text-caption text-kobo-3 q-mb-xs`},eu={class:`row items-center justify-between q-mb-xs`},tu={class:`field-label text-body2 text-weight-medium text-kobo-3`},nu={class:`text-caption text-kobo-3 q-mb-xs`},ru={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},iu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},au={class:`text-subtitle2 q-mb-md`},ou={class:`q-mb-md`},su={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},cu={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},lu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},uu={class:`text-subtitle2 q-mb-xs`},du={class:`text-caption text-kobo-3 q-mb-sm`},fu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pu={class:`text-subtitle2 q-mb-xs`},mu={class:`text-caption text-kobo-3 q-mb-sm`},hu={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},gu={class:`text-body2 text-kobo-3`},_u={key:1,class:`q-pa-none`},vu={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},yu={class:`row items-center justify-between q-mb-md`},bu={class:`text-subtitle1 text-weight-medium text-kobo-1`},xu={class:`row q-gutter-sm items-center`},Su={key:0,class:`text-kobo-3 q-py-lg text-center`},Cu={key:1,class:`column q-gutter-sm`},wu={class:`row items-start justify-between no-wrap`},Tu={class:`col`},Eu={class:`text-body1 text-weight-medium`,style:{"font-family":`var(--kobo-font-mono)`}},Du={class:`text-caption text-kobo-2 q-mt-xs`},Ou={class:`row no-wrap q-gutter-xs`},ku={class:`text-caption text-kobo-3 q-mt-lg`,style:{"font-family":`var(--kobo-font-mono)`}},Au={key:2,class:`q-pa-none`},ju={"data-tour":`settings-card-workspaceTemplates`,class:`settings-card rounded-borders q-pa-lg`},Mu={class:`text-subtitle1 text-weight-medium text-kobo-1 q-mb-xs`},Nu={class:`text-caption text-kobo-3 q-mb-md`},Pu={key:0,class:`text-caption text-kobo-3`},Fu={class:`row no-wrap q-gutter-xs`},Iu={class:`mono-guide q-ma-none`},Lu={class:`settings-savebar__label`},Ru={class:`text-subtitle1`},zu={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`var(--kobo-font-mono)`,columns:`2`,"column-gap":`24px`}},Bu={key:0,class:`text-negative text-caption`},Vu=2500,Hu=ct(k({__name:`SettingsPage`,setup(t){let n=re(),s=qe(),c=tt(),d=Rt(),{t:p,locale:y}=Pe(),{scheduleAutoRun:w}=lt(),{isMobile:k}=ht(),j=ut(),N=o(`general`),F=o(!1);function te(e){N.value=e,k.value&&(F.value=!1)}function ie(){F.value=!1,j.toggleLeft()}let ae=T(()=>[{value:`general`,icon:`tune`,label:p(`settings.nav.general`)},{value:`agents`,icon:`smart_toy`,label:p(`settings.nav.agents`)},{value:`skills`,icon:`extension`,label:p(`settings.nav.skills`)},{value:`git`,icon:`source`,label:p(`settings.nav.git`)},{value:`prompts`,icon:`text_snippet`,label:p(`settings.nav.prompts`)},{value:`scripts`,icon:`terminal`,label:p(`settings.nav.scripts`)},{value:`notion`,icon:`integration_instructions`,label:p(`settings.nav.notion`)},{value:`sentry`,icon:`bug_report`,label:p(`settings.nav.sentry`)},{value:`forge`,icon:`account_tree`,label:p(`settings.nav.forge`)},{value:`voice`,icon:`mic`,label:p(`settings.nav.voice`)},{value:`notifications`,icon:`notifications`,label:p(`settings.nav.notifications`)},{value:`worktrees`,icon:`account_tree`,label:p(`settings.nav.worktrees`)},{value:`memory`,icon:`psychology`,label:p(`settings.nav.memory`)},{value:`projects`,icon:`folder`,label:p(`settings.projects`)},{value:`templates`,icon:`description`,label:p(`settings.nav.promptTemplates`)},{value:`workspaceTemplates`,icon:`bookmarks`,label:p(`settings.nav.workspaceTemplates`)},{value:`export`,icon:`import_export`,label:p(`settings.nav.export`)}]),oe=Ke();u(()=>oe.query.tab,e=>{typeof e==`string`&&ae.value.some(t=>t.value===e)&&te(e)},{immediate:!0});let se=T(()=>ae.value.find(e=>e.value===N.value)?.label??``),ce=T(()=>[`general`,`agents`,`skills`,`prompts`,`git`,`scripts`,`notion`,`sentry`,`forge`,`voice`,`notifications`,`worktrees`,`memory`,`export`].includes(N.value)),le=o(`auto`),ue=o(`auto`),de=o(``),R=o(``),he=o(``),be=o(``),Se=o(``),Te=o(``),Me=o(``),Fe=o(``),Re=o(!1),Ve=o(5),We=o(0),Je=o(!0),Ye=o(0),Qe=o(0),$e=o(`hybrid`),V=o({enabled:!1,token:``,behindProxy:!1,urls:[]}),nt=o(!1),it=o(``);function at(e){try{let t=new URL(e),n=window.location.port?`:${window.location.port}`:``;return`${window.location.protocol}//${t.hostname}${n}`}catch{return e}}let ot=T(()=>V.value.urls.map(at));async function ct(){try{let e=await ye(`/api/settings/network`);if(!e.ok)throw await _e(e);V.value=await e.json(),await dt()}catch{n.notify({type:`negative`,message:p(`settings.network.loadFailed`),position:`top`})}}async function dt(){let e=ot.value[0];if(!e||!V.value.token){it.value=``;return}let t=`${e}/?token=${encodeURIComponent(V.value.token)}`;try{let{default:e}=await je(async()=>{let{default:e}=await import(`./browser-DPsupI9Q.js`).then(e=>Yt(e.default,1));return{default:e}},[]);it.value=await e.toDataURL(t,{margin:1,width:200})}catch{it.value=``}}async function Tt(e){try{let t=await ye(`/api/settings/network`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw await _e(t);let n=await t.json();V.value={enabled:n.enabled,token:n.token,behindProxy:n.behindProxy,urls:n.urls},n.restartRequired&&(nt.value=!0),await dt()}catch{n.notify({type:`negative`,message:p(`settings.network.updateFailed`),position:`top`}),await ct()}}function Et(e){Tt({enabled:e})}function Dt(e){Tt({behindProxy:e})}function Ot(){n.dialog({title:p(`settings.network.title`),message:p(`settings.network.regenerateConfirm`),cancel:!0,persistent:!0}).onOk(()=>{Tt({regenerate:!0})})}function Bt(){Tf(V.value.token)}let Vt=o(!0),Ht=o(typeof Notification>`u`?`unsupported`:Notification.permission),Ut=o(!0),Wt=o(!1),Gt=o(!1),Kt=o(!1),qt=o(pe),Jt=o(ve),Xt=o(ve),Zt=o(ve),Qt=o(1),$t=o(1),en=o(1),tn=o(1),nn=o({...Oe}),rn=o(``),on=o(``),cn=o(``),ln=o(``),un=o(!1),dn=o(!0),fn=o(!1),pn=o(rt),mn=o(1),hn=T(()=>Rr(Ut.value)),_n=T(()=>{switch(Ht.value){case`granted`:return{color:`positive`,label:p(`settings.browserNotificationGranted`)};case`denied`:return{color:`negative`,label:p(`settings.browserNotificationDenied`)};case`default`:return{color:`warning`,label:p(`settings.browserNotificationAsk`)};default:return{color:`kobo-3`,label:p(`settings.browserNotificationUnsupported`)}}});async function vn(){if(typeof Notification>`u`){n.notify({type:`negative`,message:p(`settings.browserNotificationUnsupported`),position:`top`});return}if(Notification.permission==="default"?Ht.value=await Notification.requestPermission():Ht.value=Notification.permission,Ht.value!==`granted`){n.notify({type:`warning`,message:p(`settings.browserNotificationPermissionNeeded`),position:`top`});return}new Notification(p(`settings.browserNotificationTestTitle`),{body:p(`settings.browserNotificationTestBody`),icon:`/favicon.ico`})}let yn=o(null),J=o({});async function bn(e){yn.value=e;try{let t=await ye(`/api/${e}/test`,{method:`POST`}),n=await t.json();J.value[e]=t.ok?n:{ok:!1,durationMs:0,detail:n.error??`HTTP ${t.status}`}}catch(t){J.value[e]={ok:!1,durationMs:0,detail:t instanceof Error?t.message:String(t)}}finally{yn.value=null}}let xn=o([]),Cn=o(!1),wn=o(``),Tn=T(()=>xn.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function En(e=!1){if(!Cn.value&&!(!e&&xn.value.length>0)){Cn.value=!0,wn.value=``;try{let e=await ye(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);xn.value=Array.isArray(t.users)?t.users:[]}catch(e){wn.value=e instanceof Error?e.message:String(e),xn.value=[]}finally{Cn.value=!1}}}let Dn=o(``),On=o(``),Y=o(null),kn=o(`bypass`),An=o(`bypass`),jn=o(``),Mn=o(``),Nn=o(``),Pn=o(``),Fn=o(!0),In=o(!0),Rn=o([]),X=o([]),zn=o(``),Bn=o(``),Vn=o(``),Hn=o(`no-tasks`),Un=o(!1),Wn=o(``),Gn=o(``),Kn=o(``),qn=o(``),Jn=o(``),Yn=o(``),Xn=o(!1);function Zn(e){Q.value.path=e}let Qn=T(()=>[{label:p(`settings.cleanupScriptMode.inherit`),value:``},{label:p(`settings.cleanupScriptMode.idle`),value:`idle`},{label:p(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),$n=o(we),er=o(null),tr=o(!0);function nr(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function rr(){let e=nr(zn.value);e&&!X.value.includes(e)&&(X.value.push(e),zn.value=``)}function ir(e){X.value.splice(e,1)}function ar(e,t){let n=nr(t);if(!n)return;let r=X.value.indexOf(n);(r===-1||r===e)&&(X.value[e]=n)}function or(e,t){let n=e+t;if(n<0||n>=X.value.length)return;let r=X.value;[r[e],r[n]]=[r[n],r[e]]}let sr=o(!1),cr=o(`standard`),lr=T(()=>{switch(cr.value){case`standard`:return`settings.skillSuite.standardHint`;case`gstack`:return`settings.skillSuite.gstackHint`;case`ecc`:return`settings.skillSuite.eccHint`;case`superpowers+gstack`:return`settings.skillSuite.superpowersGstackHint`;case`superpowers+gstack+ecc`:return`settings.skillSuite.allThreeHint`;case`custom`:return`settings.skillSuite.customHint`;default:return`settings.skillSuite.superpowersHint`}}),ur=o(``),dr=o(``),fr=o(``),pr=o(``),mr=o(``),hr=o(null),_r=T(()=>[{value:`custom`,label:p(`settings.skillSuite.agnostic`)},{value:`superpowers`,label:p(`settings.skillSuite.superpowers`)},{value:`gstack`,label:p(`settings.skillSuite.gstack`)},{value:`ecc`,label:p(`settings.skillSuite.ecc`)},{value:`superpowers+gstack`,label:p(`settings.skillSuite.superpowersGstack`)},{value:`superpowers+gstack+ecc`,label:p(`settings.skillSuite.allThree`)}]);async function vr(e,t){hr.value=e;try{let r=await ye(`/api/settings/skill-suite-prompts/${t}`);if(!r.ok)throw Error(await r.text());let i=await r.json(),a={reviewTemplate:ur,autoLoopReviewGate:dr,autoLoopGroomingIntro:fr,qaPromptTemplate:pr,brainstormingInstruction:mr};a[e].value=i[e],n.notify({type:`positive`,message:p(`settings.skillSuite.imported`),position:`top`})}catch(e){n.notify({type:`negative`,message:`${p(`settings.skillSuite.importFailed`)}: ${String(e)}`,position:`top`})}finally{hr.value=null}}let yr=o(!1),br=o(`alt`),xr=o(`auto`),Sr=o(null),Cr=o(``),Er=o(``),Dr=o(0),Or=o(``),kr=o(!1),Ar=o(!0),jr=o(null),Nr=o(!1);function Pr(){n.dialog({title:p(`settings.skillSuite.reloadDefaults`),message:p(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ur.value=vt,dr.value=bt,fr.value=gt,pr.value=_t,mr.value=St})}function Ir(e){let t=e===`global`?Jn.value:Q.value.changeSourceBranchScript,r=()=>{e===`global`?Jn.value=Yn.value:Q.value.changeSourceBranchScript=Yn.value};if(!t.trim()||t===Yn.value){r();return}n.dialog({title:p(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:p(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function Hu(e){return!e||e===`tiny`||e===`base`?.1:.2}let Uu=[e=>e.trim().length>0||p(`settings.worktreesPathRequired`)],Wu=o(!1),Gu=o(Ce()),Ku=o({notion:{configured:!1},sentry:{configured:!1}}),qu=o({notion:{command:``,args:``,environment:``},sentry:{command:``,args:``,environment:``}}),Ju=T(()=>Object.values(qu.value).some(e=>e.command!==``||e.args!==``||e.environment!==``)),Yu=o(-1),Z=o(!1),Q=o({workflowPolicy:{},path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),Xu=[`workflowPolicy`,`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`ciFixPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`sessionEndedScript`,`prMergedScript`,`autoLoopDisabledScript`,`devServer`,`e2e`,`finalization`],Zu=o(null),Qu=o(null),$u=T(()=>s.projects.map(e=>({value:e.path,label:Af(e)||e.path})));function ed(e){let t=s.projects.find(t=>t.path===e);t&&(Q.value.workflowPolicy={...t.workflowPolicy},Q.value.defaultModel=t.defaultModel??``,Q.value.forge=t.forge??`auto`,Q.value.prPromptTemplate=t.prPromptTemplate??``,Q.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Q.value.ciFixPromptTemplate=t.ciFixPromptTemplate??``,Q.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Q.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Q.value.gitConventions=t.gitConventions??``,Q.value.setupScript=t.setupScript??``,Q.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Q.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Q.value.finalization={prompt:t.finalization?.prompt??``})}function td(){let e={workflowPolicy:{},defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return Xu.every(t=>JSON.stringify(Q.value[t])===JSON.stringify(e[t]))}function nd(e){if(e===null){Zu.value=null,Qu.value=null;return}if(Qu.value===null&&td()){ed(e),Zu.value=e,Qu.value=e;return}let t=s.projects.find(t=>t.path===e),r=t&&Af(t)||e;n.dialog({title:p(`settings.copyFromConfirmTitle`),message:p(`settings.copyFromConfirm`,{project:r}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ed(e),Zu.value=e,Qu.value=e}).onCancel(()=>{Zu.value=Qu.value})}let rd=o([]),id=o([]);async function ad(){try{let e=await ye(`/api/skills`);e.ok&&(rd.value=await e.json())}catch{}}function od(e,t){t(()=>{let t=e.trim().toLowerCase();id.value=t?rd.value.filter(e=>e.toLowerCase().includes(t)):rd.value.slice()})}let sd=o([]),cd=o(!1),ld=o(!1),ud=o(!1),dd=o(!1),fd=o(null),pd=o(``),md=o(``),hd=o(``),gd=o(``),_d=o(!1),vd=o(!1),yd=T(()=>[...c.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),bd=[`{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 xd(){fd.value=null,pd.value=``,md.value=``,hd.value=``,gd.value=``,dd.value=!0}function Sd(e){fd.value=e.slug,pd.value=e.slug,md.value=e.description,hd.value=e.content,gd.value=``,dd.value=!0}async function Cd(){gd.value=``;let e=pd.value.trim(),t=md.value.trim();if(fd.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){gd.value=p(`templates.slugInvalid`);return}if(!t){gd.value=p(`templates.descriptionRequired`);return}if(!hd.value.trim()){gd.value=p(`templates.contentRequired`);return}_d.value=!0;try{fd.value===null?await c.createTemplate({slug:e,description:t,content:hd.value}):await c.updateTemplate(fd.value,{description:t,content:hd.value}),dd.value=!1}catch(e){gd.value=e instanceof Error?e.message:p(`templates.createFailed`)}finally{_d.value=!1}}function wd(){n.dialog({title:p(`templates.reloadDefaults`),message:p(`templates.reloadDefaultsConfirmMessage`),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.reloadDefaults`),color:`primary`}}).onOk(async()=>{vd.value=!0;try{let e=await c.reloadDefaults();n.notify({type:`positive`,message:p(`templates.reloadDefaultsSuccess`,{added:e.added.length,kept:e.kept.length}),position:`top`,timeout:4e3})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.reloadDefaultsFailed`),position:`top`})}finally{vd.value=!1}})}async function Td(e){n.dialog({title:p(`templates.deleteTemplate`),message:`${p(`templates.deleteConfirm`,{slug:e.slug})}\n\n${p(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await c.deleteTemplate(e.slug)}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.deleteFailed`),position:`top`})}})}function Ed(e){let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.toLocaleDateString()}function Dd(e,t){n.dialog({title:p(`workspaceTemplates.renameTitle`),dark:!0,prompt:{model:t,type:`text`,outlined:!0,dense:!0,isValid:e=>e.trim().length>0},cancel:!0,persistent:!0}).onOk(async t=>{try{await d.updateTemplate(e,{name:t})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`settings.saveError`),position:`top`})}})}function Od(e,t){n.dialog({title:p(`workspaceTemplates.title`),message:p(`workspaceTemplates.deleteConfirm`,{name:t}),dark:!0,cancel:!0,persistent:!0}).onOk(async()=>{try{await d.deleteTemplate(e),n.notify({type:`positive`,message:p(`workspaceTemplates.deleted`,{name:t}),position:`top`})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`settings.saveError`),position:`top`})}})}function kd(e){n.dialog({title:p(`templates.resetConfirmTitle`),message:p(`templates.resetConfirmMessage`,{slug:e.slug}),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.resetToDefault`),color:`primary`}}).onOk(async()=>{try{await c.resetToDefault(e.slug),n.notify({type:`positive`,message:p(`templates.resetSuccess`,{slug:e.slug}),position:`top`})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.resetFailed`),position:`top`})}})}let Ad=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function jd(e){Ne(e).catch(e=>{console.error(`[i18n] locale load failed:`,e),n.notify({type:`negative`,message:p(`settings.localeLoadFailed`),position:`top`})}),localStorage.setItem(`kobo:locale`,e)}let Md=T(()=>[...xt.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),Nd=T(()=>[...yt.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),Pd=T(()=>[{label:p(`settings.useGlobal`),value:``},...Md.value]),Fd=T(()=>[{label:p(`settings.forge.auto`),value:`auto`},{label:p(`settings.forge.github`),value:`github`},{label:p(`settings.forge.gitlab`),value:`gitlab`},{label:p(`settings.forge.bitbucketCommunity`),value:`bitbucket-community`},{label:p(`settings.forge.none`),value:`none`}]),Id=T(()=>Ct[`claude-code`].map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),Ld=T(()=>Ct.codex.map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),Rd=T(()=>[{name:`{{pr_number}}`,description:p(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:p(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:p(`settings.var.branchName`)},{name:`{{source_branch}}`,description:p(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:p(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:p(`settings.var.projectName`)},{name:`{{notion_url}}`,description:p(`settings.var.notionUrl`)},{name:`{{commits}}`,description:p(`settings.var.commits`)},{name:`{{diff_stats}}`,description:p(`settings.var.diffStats`)},{name:`{{tasks}}`,description:p(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:p(`settings.var.acceptanceCriteria`)}]),zd=T(()=>[{label:p(`settings.mcpAutoSelect`),value:``},...s.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Bd=jt(),Vd=T(()=>[...Ee.map(e=>({label:p(e.labelKey),value:e.id})),...Bd.options]),Hd=T(()=>[{label:p(`settings.soundGeneral`),value:ve},...Vd.value]),Ud=T(()=>[{label:p(`voice.noneModel`),value:null}].concat(s.voiceModels.map(e=>({label:e.installed?`${e.name}`:`${e.name} (${p(`voice.notInstalled`)})`,value:e.name})))),Wd=[{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 Gd(){Le(qt.value,Qt.value)}function Kd(){Le(Jt.value,$t.value)}function qd(){Le(Xt.value,en.value)}function Jd(){Le(Zt.value,tn.value)}let $=T(()=>Yu.value<0||Yu.value>=s.projects.length?null:s.projects[Yu.value]??null),Yd=o($d()),Xd=o({});function Zd(){return{workflowPolicy:Gu.value,claudeModel:le.value,codexModel:ue.value,prPrompt:de.value,reviewPrompt:R.value,ciFixPrompt:he.value,finalizationPrompt:be.value,gitConventions:Se.value,editorCommand:Te.value,fileManagerCommand:Me.value,terminalCommand:Fe.value,autoPurgeOnPrMerged:Re.value,autoLoopMaxRetries:Ve.value,awaitingUserReminderMinutes:We.value,activityDigestEnabled:Je.value,wsEventsRetentionDays:Ye.value,wsEventsKeepPerWorkspace:Qe.value,browserNotifications:Vt.value,audioNotifications:Ut.value,audioQuestionNotifications:Wt.value,audioWorkspaceCreatedNotifications:Gt.value,audioAgentErrorNotifications:Kt.value,audioNotificationSound:qt.value,audioQuestionSound:Jt.value,audioWorkspaceCreatedSound:Xt.value,audioAgentErrorSound:Zt.value,audioNotificationVolume:Qt.value,audioQuestionVolume:$t.value,audioWorkspaceCreatedVolume:en.value,audioAgentErrorVolume:tn.value,prNotificationSounds:nn.value,notionStatusProperty:rn.value,notionStatus:on.value,notionAssigneeProperty:cn.value,notionUserId:ln.value,notionInitialPrompt:Dn.value,sentryInitialPrompt:On.value,claudePermissionMode:kn.value,codexPermissionMode:An.value,notionMcpKey:jn.value,sentryMcpKey:Mn.value,bitbucketToken:Nn.value,bitbucketUsername:Pn.value,notionEnabled:Fn.value,sentryEnabled:In.value,showVerboseSystemMessages:un.value,showThinkingBlocks:dn.value,whipEnabled:fn.value,whipShortcut:pn.value,whipVolume:mn.value,tags:Rn.value,branchPrefixes:X.value,setupScript:Bn.value,cleanupScript:Vn.value,cleanupScriptMode:Hn.value,cleanupScriptOnlyOnChanges:Un.value,archiveScript:Wn.value,changeSourceBranchScript:Jn.value,sessionEndedScript:Gn.value,prMergedScript:Kn.value,autoLoopDisabledScript:qn.value,worktreesPath:$n.value,worktreesPrefixByProject:tr.value,flattenWorkspaceList:sr.value,memoryMode:$e.value,skillSuite:cr.value,customReviewTemplate:ur.value,customAutoLoopReviewGate:dr.value,customAutoLoopGroomingIntro:fr.value,customQaPromptTemplate:pr.value,customBrainstormingInstruction:mr.value,voiceEnabled:yr.value,voicePttKey:br.value,voiceLanguage:xr.value,voiceModel:Sr.value,voiceCommandPath:Cr.value,voiceFfmpegPath:Er.value,voiceTemperature:Dr.value,voicePrompt:Or.value,voiceTranslateToEnglish:kr.value,voiceSuppressNst:Ar.value}}function Qd(){return{...Q.value}}function $d(){return Lr(Zd())}function ef(){return Lr(Qd())}let tf=T(()=>!Fr(Zd(),Yd.value)),nf=T(()=>!Fr(Qd(),Xd.value)),rf=T(()=>s.loadError?!1:tf.value?!0:nf.value&&($.value!==null||Z.value)),af=T(()=>nf.value&&($.value!==null||Z.value)?ld.value:Wu.value);function of(){nf.value&&($.value!==null||Z.value)?Ef():_f()}function sf(){Gu.value=Ce(s.global.workflowPolicy),Nr.value=!0;let e=s.global.defaultModelByEngine??{};le.value=e[`claude-code`]??`auto`,ue.value=e.codex??`auto`,de.value=s.global.prPromptTemplate,R.value=s.global.reviewPromptTemplate??``,he.value=s.global.ciFixPromptTemplate??``,be.value=s.global.finalizationPrompt??``,Se.value=s.global.gitConventions,Te.value=s.global.editorCommand??``,Me.value=s.global.fileManagerCommand??``,Fe.value=s.global.terminalCommand??``,Re.value=s.global.autoPurgeOnPrMerged??!1,Ve.value=s.global.autoLoopMaxRetries??5,We.value=s.global.awaitingUserReminderMinutes??0,Je.value=s.global.activityDigestEnabled??!0,Ye.value=s.global.wsEventsRetentionDays??0,Qe.value=s.global.wsEventsKeepPerWorkspace??0,Vt.value=s.global.browserNotifications??!0,Ut.value=s.global.audioNotifications??!0,Wt.value=s.global.audioQuestionNotifications??!1,Gt.value=s.global.audioWorkspaceCreatedNotifications??!1,Kt.value=s.global.audioAgentErrorNotifications??!1,qt.value=Ae(s.global.audioNotificationSound),Jt.value=xe(s.global.audioQuestionSound),Xt.value=xe(s.global.audioWorkspaceCreatedSound),Zt.value=xe(s.global.audioAgentErrorSound);let t=Object.fromEntries(ge.map(e=>[e,xe(s.global[e])])),n=Object.fromEntries(ke.map(e=>{let t=s.global[e];if(e.endsWith(`Enabled`))return[e,typeof t==`boolean`&&t];let n=Number(t);return[e,Number.isFinite(n)?Math.max(0,Math.min(1,n)):1]}));nn.value={...t,...n};let r=s.global.audioNotificationVolume;Qt.value=typeof r==`number`&&Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;let i=s.global.audioQuestionVolume;$t.value=typeof i==`number`&&Number.isFinite(i)?Math.max(0,Math.min(1,i)):1;let a=s.global.audioWorkspaceCreatedVolume;en.value=typeof a==`number`&&Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;let o=s.global.audioAgentErrorVolume;tn.value=typeof o==`number`&&Number.isFinite(o)?Math.max(0,Math.min(1,o)):1,rn.value=s.global.notionStatusProperty??``,on.value=s.global.notionInProgressStatus??``,cn.value=s.global.notionAssigneeProperty??``,ln.value=s.global.notionUserId??``,Dn.value=s.global.notionInitialPromptTemplate??``,On.value=s.global.sentryInitialPromptTemplate??``;{let e=s.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,n=e[`claude-code`];kn.value=t(n)?n:`bypass`;let r=e.codex;An.value=t(r)?r:`bypass`}jn.value=s.global.notionMcpKey??``,Mn.value=s.global.sentryMcpKey??``,Nn.value=s.global.bitbucketToken??``,Pn.value=s.global.bitbucketUsername??``,Fn.value=s.global.notionEnabled??!0,In.value=s.global.sentryEnabled??!0,un.value=s.showVerboseSystemMessages,dn.value=s.global.showThinkingBlocks??!0,fn.value=s.global.whipEnabled??!1,pn.value=s.global.whipShortcut??`mod+shift+x`,mn.value=s.global.whipVolume??1,Rn.value=Array.isArray(s.global.tags)?[...s.global.tags]:[],X.value=Array.isArray(s.global.branchPrefixes)?[...s.global.branchPrefixes]:[],Bn.value=s.global.setupScript??``,Vn.value=s.global.cleanupScript??``,Hn.value=s.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,Un.value=s.global.cleanupScriptOnlyOnChanges??!1,Wn.value=s.global.archiveScript??``,Gn.value=s.global.sessionEndedScript??``,Kn.value=s.global.prMergedScript??``,qn.value=s.global.autoLoopDisabledScript??``,Jn.value=s.global.changeSourceBranchScript??``,$n.value=s.global.worktreesPath??`.worktrees`,tr.value=s.global.worktreesPrefixByProject??!1,sr.value=s.global.flattenWorkspaceList??!1,$e.value=s.global.memoryMode??`hybrid`,cr.value=s.global.skillSuite??`standard`,ur.value=s.global.customReviewTemplate??``,dr.value=s.global.customAutoLoopReviewGate??``,fr.value=s.global.customAutoLoopGroomingIntro??``,pr.value=s.global.customQaPromptTemplate??``,mr.value=s.global.customBrainstormingInstruction??``,yr.value=s.global.voiceEnabled??!1,br.value=s.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,xr.value=s.global.voiceLanguage??`auto`,Sr.value=s.global.voiceModel??null,Cr.value=s.global.voiceCommandPath??``,Er.value=s.global.voiceFfmpegPath??``,Dr.value=typeof s.global.voiceTemperature==`number`?s.global.voiceTemperature:0,Or.value=s.global.voicePrompt??``,kr.value=s.global.voiceTranslateToEnglish??!1,Ar.value=s.global.voiceSuppressNonSpeechTokens??!0,Nr.value=!1,Yd.value=$d()}u(()=>Sr.value,(e,t)=>{Nr.value||e!==t&&(Dr.value=Hu(e))});function cf(e){if(!e){Q.value={workflowPolicy:{},path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},sd.value=[],Xd.value=ef();return}Q.value={workflowPolicy:{...e.workflowPolicy},path:e.path,displayName:e.displayName,color:e.color??null,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,forge:e.forge??`auto`,prPromptTemplate:e.prPromptTemplate,reviewPromptTemplate:e.reviewPromptTemplate??``,ciFixPromptTemplate:e.ciFixPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,taskPromptTemplate:e.taskPromptTemplate??``,cleanupScript:e.cleanupScript??``,cleanupScriptMode:e.cleanupScriptMode??``,archiveScript:e.archiveScript??``,changeSourceBranchScript:e.changeSourceBranchScript??``,sessionEndedScript:e.sessionEndedScript??``,prMergedScript:e.prMergedScript??``,autoLoopDisabledScript:e.autoLoopDisabledScript??``,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??``}},Xd.value=ef(),e.path&&lf(e.path)}async function lf(e){if(!e.trim()){sd.value=[];return}cd.value=!0;try{let t=await ye(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw await _e(t);let n=await t.json();sd.value=n.local??n.branches??[]}catch{sd.value=[]}finally{cd.value=!1}}let uf=null;u(()=>Q.value.path,e=>{uf&&clearTimeout(uf),uf=setTimeout(()=>{lf(e)},500)}),u(Yu,()=>{Z.value=!1,cf($.value)});let df=o(null);async function ff(){try{let e=await ye(`/api/settings/export`);if(!e.ok)throw await _e(e);let t=await e.json(),r=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`kobo-config-${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,a.click(),URL.revokeObjectURL(i),n.notify({type:`positive`,message:p(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){n.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}function pf(){df.value?.click()}async function mf(e){let t=e.target,r=t.files?.[0];if(r)try{n.dialog({title:p(`settings.importConfirmTitle`),message:p(`settings.importConfirmMessage`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{let e=await r.text(),t=JSON.parse(e),i=await De(`/api/settings/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`HTTP ${i.status}`)}await s.fetchSettings(),sf(),n.notify({type:`positive`,message:p(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){n.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}})}finally{t.value=``}}async function hf(e){if(Y.value===null){Y.value=e;try{let t=await s.fetchGlobalDefaults(),n={prPromptTemplate:de,reviewPromptTemplate:R,ciFixPromptTemplate:he,finalizationPrompt:be,gitConventions:Se,notionInitialPromptTemplate:Dn,sentryInitialPromptTemplate:On};n[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),n.notify({type:`negative`,message:p(`settings.resetFailed`),position:`top`})}finally{Y.value=null}}}async function gf(){let e=e=>e===0?1/0:e,t=s.global.wsEventsRetentionDays??0,r=Ye.value;if(e(r)>=e(t))return!0;let i=p(`settings.retentionConfirmMessageUnknown`,{days:r});try{let e=await s.previewRetention(r,Qe.value);i=p(`settings.retentionConfirmMessage`,{days:r,count:e.deletable,total:e.total})}catch(e){console.error(`[SettingsPage] retention preview failed:`,e)}return await new Promise(e=>{n.dialog({title:p(`settings.retentionConfirmTitle`),message:i,cancel:!0,persistent:!0,dark:!0}).onOk(()=>e(!0)).onCancel(()=>e(!1)).onDismiss(()=>e(!1))})}async function _f(){if(await er.value?.validate()!==!1&&await gf()){Wu.value=!0;try{await s.updateGlobal({workflowPolicy:Ce(Gu.value),defaultModelByEngine:{"claude-code":le.value,codex:ue.value},prPromptTemplate:de.value,reviewPromptTemplate:R.value,ciFixPromptTemplate:he.value,finalizationPrompt:be.value,gitConventions:Se.value,editorCommand:Te.value,fileManagerCommand:Me.value,terminalCommand:Fe.value,autoPurgeOnPrMerged:Re.value,autoLoopMaxRetries:Ve.value,awaitingUserReminderMinutes:We.value,activityDigestEnabled:Je.value,wsEventsRetentionDays:Ye.value,wsEventsKeepPerWorkspace:Qe.value,browserNotifications:Vt.value,audioNotifications:Ut.value,audioQuestionNotifications:Wt.value,audioWorkspaceCreatedNotifications:Gt.value,audioAgentErrorNotifications:Kt.value,audioNotificationSound:qt.value,audioQuestionSound:Jt.value,audioWorkspaceCreatedSound:Xt.value,audioAgentErrorSound:Zt.value,audioNotificationVolume:Qt.value,audioQuestionVolume:$t.value,audioWorkspaceCreatedVolume:en.value,audioAgentErrorVolume:tn.value,...nn.value,notionStatusProperty:rn.value,notionInProgressStatus:on.value,notionAssigneeProperty:cn.value,notionUserId:ln.value,notionInitialPromptTemplate:Dn.value,sentryInitialPromptTemplate:On.value,defaultPermissionModeByEngine:{"claude-code":kn.value,codex:An.value},notionMcpKey:jn.value,sentryMcpKey:Mn.value,bitbucketToken:Nn.value,bitbucketUsername:Pn.value,notionEnabled:Fn.value,sentryEnabled:In.value,showThinkingBlocks:dn.value,whipEnabled:fn.value,whipShortcut:pn.value,whipVolume:mn.value,tags:Rn.value,branchPrefixes:X.value,setupScript:Bn.value,cleanupScript:Vn.value,cleanupScriptMode:Hn.value,cleanupScriptOnlyOnChanges:Un.value,archiveScript:Wn.value,changeSourceBranchScript:Jn.value,sessionEndedScript:Gn.value,prMergedScript:Kn.value,autoLoopDisabledScript:qn.value,worktreesPath:$n.value,worktreesPrefixByProject:tr.value,flattenWorkspaceList:sr.value,memoryMode:$e.value,skillSuite:cr.value,customReviewTemplate:ur.value,customAutoLoopReviewGate:dr.value,customAutoLoopGroomingIntro:fr.value,customQaPromptTemplate:pr.value,customBrainstormingInstruction:mr.value,voiceEnabled:yr.value,voicePttKey:br.value,voiceLanguage:xr.value,voiceModel:Sr.value,voiceCommandPath:Cr.value.trim(),voiceFfmpegPath:Er.value.trim(),voiceTemperature:Dr.value,voicePrompt:Or.value,voiceTranslateToEnglish:kr.value,voiceSuppressNonSpeechTokens:Ar.value}),s.setVerboseSystemMessages(un.value),Yd.value=$d(),n.notify({type:`positive`,message:p(`settings.saved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.saveError`),position:`top`})}finally{Wu.value=!1}}}async function vf(e){jr.value=e,Cf();try{await s.downloadVoiceModel(e)}catch{n.notify({type:`negative`,message:p(`voice.downloadFailed`),position:`top`})}finally{jr.value=null,wf()}}async function yf(e){jr.value=e;try{await s.deleteVoiceModel(e),Sr.value===e&&(Sr.value=null)}catch{n.notify({type:`negative`,message:p(`voice.deleteFailed`),position:`top`})}finally{jr.value=null}}async function bf(e){try{await s.cancelVoiceModelDownload(e)}catch{n.notify({type:`negative`,message:p(`voice.cancelFailed`),position:`top`})}}function xf(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 Sf=null;function Cf(){Sf||=setInterval(()=>{document.visibilityState!==`hidden`&&s.fetchVoiceModels().catch(e=>{console.error(`[settings] voice model polling failed:`,e)})},Vu)}function wf(){Sf&&=(clearInterval(Sf),null)}async function Tf(e){try{await navigator.clipboard.writeText(e),n.notify({type:`positive`,message:p(`common.copied`),position:`top`,timeout:1200})}catch{n.notify({type:`negative`,message:p(`common.copyFailed`),position:`top`})}}async function Ef(){if(!Q.value.path.trim()){n.notify({type:`negative`,message:p(`settings.projectPathRequired`),position:`top`});return}ld.value=!0;try{await s.upsertProject(Q.value.path.trim(),{workflowPolicy:{...Q.value.workflowPolicy},displayName:Q.value.displayName,color:Q.value.color,defaultSourceBranch:Q.value.defaultSourceBranch,defaultModel:Q.value.defaultModel,forge:Q.value.forge,prPromptTemplate:Q.value.prPromptTemplate,reviewPromptTemplate:Q.value.reviewPromptTemplate,ciFixPromptTemplate:Q.value.ciFixPromptTemplate,notionInitialPromptTemplate:Q.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Q.value.sentryInitialPromptTemplate,gitConventions:Q.value.gitConventions,setupScript:Q.value.setupScript,taskPromptTemplate:Q.value.taskPromptTemplate,cleanupScript:Q.value.cleanupScript,cleanupScriptMode:Q.value.cleanupScriptMode,archiveScript:Q.value.archiveScript,changeSourceBranchScript:Q.value.changeSourceBranchScript,sessionEndedScript:Q.value.sessionEndedScript,prMergedScript:Q.value.prMergedScript,autoLoopDisabledScript:Q.value.autoLoopDisabledScript,devServer:Q.value.devServer,e2e:Q.value.e2e,finalization:Q.value.finalization}),Z.value=!1;let e=s.projects.findIndex(e=>e.path===Q.value.path.trim());e>=0&&(Yu.value=e),Xd.value=ef(),n.notify({type:`positive`,message:p(`settings.projectSaved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectSaveError`),position:`top`})}finally{ld.value=!1}}function Df(){if(!$.value)return;let e=$.value.displayName||$.value.path;n.dialog({title:p(`settings.deleteProjectConfirmTitle`),message:p(`settings.deleteProjectConfirmMessage`,{name:e}),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`common.delete`),color:`red-5`}}).onOk(async()=>{if($.value){ud.value=!0;try{await s.deleteProject($.value.path),Yu.value=-1,Z.value=!1,cf(null),n.notify({type:`positive`,message:p(`settings.projectDeleted`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectDeleteError`),position:`top`})}finally{ud.value=!1}}})}function Of(){Yu.value=-1,Z.value=!0,cf(null),Zu.value=null,Qu.value=null}function kf(e){if(nf.value&&($.value!==null||Z.value)){n.dialog({title:p(`settings.unsavedChanges.title`),message:p(`settings.unsavedChanges.message`),dark:!0,persistent:!0,ok:{flat:!0,label:p(`settings.unsavedChanges.discard`),color:`negative`},cancel:{flat:!0,label:p(`settings.unsavedChanges.cancel`),color:`kobo-2`}}).onOk(()=>{Z.value=!1,Yu.value=e,Zu.value=null,Qu.value=null});return}Z.value=!1,Yu.value=e,Zu.value=null,Qu.value=null}function Af(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let jf=o([]);function Mf(e,t){t(()=>{jf.value=e?sd.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):sd.value})}async function Nf(){await s.fetchSettings(),s.loadError||sf()}return m(async()=>{await Promise.all([s.fetchSettings(),s.fetchActiveMcpServers(),ad()]);try{let e=await s.fetchGlobalDefaults();Yn.value=e.changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await s.fetchVoiceModels(),await s.fetchVoiceRuntime(),sf(),w(`settings`),ct(),d.fetchTemplates(),Xe(`settings:global`,()=>tf.value),Xe(`settings:integrations`,()=>Ju.value),Xe(`settings:project`,()=>nf.value&&($.value!==null||Z.value))}),l(()=>{uf&&clearTimeout(uf),wf(),Ze(`settings:global`),Ze(`settings:integrations`),Ze(`settings:project`)}),(t,n)=>(f(),b(Pt,{class:`settings-page`,"style-fn":e(zt)},{default:_(()=>[e(s).loadError?(f(),E(`div`,zr,[v(I,{name:`error`,size:`18px`}),O(`div`,Br,[O(`span`,Vr,i(t.$t(`settings.loadFailed`)),1),O(`span`,Hr,i(e(s).loadError),1),O(`span`,Ur,i(t.$t(`settings.loadFailedHint`)),1)]),v(q),v(L,{dense:``,flat:``,"no-caps":``,icon:`refresh`,label:t.$t(`common.retry`),onClick:Nf},null,8,[`label`])])):x(``,!0),O(`div`,Wr,[e(k)?(f(),b(At,{key:1,modelValue:F.value,"onUpdate:modelValue":n[0]||=e=>F.value=e,side:`left`,overlay:``,behavior:`mobile`,width:240},{default:_(()=>[v(H,null,{default:_(()=>[v(G,{clickable:``,onClick:ie},{default:_(()=>[v(K,{avatar:``},{default:_(()=>[v(I,{name:`arrow_back`})]),_:1}),v(K,null,{default:_(()=>[S(i(t.$t(`workspaceList.title`)),1)]),_:1})]),_:1}),v(He)]),_:1}),O(`div`,qr,[O(`div`,Jr,i(t.$t(`settings.title`)),1),v(Tr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])]),_:1},8,[`modelValue`])):(f(),E(`aside`,Gr,[O(`div`,Kr,i(t.$t(`settings.title`)),1),v(Tr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])),O(`main`,Yr,[O(`header`,Xr,[v(Ft,{"exclude-mobile":``,class:`q-mr-sm`}),e(k)?(f(),b(L,{key:0,flat:``,dense:``,round:``,icon:`menu`,"aria-label":t.$t(`settings.openNav`),class:`settings-content__nav-toggle`,onClick:n[1]||=e=>F.value=!0},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(t.$t(`settings.openNav`)),1)]),_:1})]),_:1},8,[`aria-label`])):x(``,!0),O(`h2`,Zr,i(se.value),1),v(It,{"tour-id":`settings`,class:`q-ml-sm`})]),O(`div`,Qr,i(t.$t(`settings.help.${N.value}`)),1),O(`div`,$r,[g(O(`div`,ei,[N.value===`memory`?(f(),b(gr,{key:0,"memory-mode":$e.value,"onUpdate:memoryMode":n[2]||=e=>$e.value=e},null,8,[`memory-mode`])):x(``,!0),N.value===`general`?(f(),E(`div`,ti,[O(`div`,ni,i(t.$t(`settings.language`)),1),v(W,{"model-value":e(y),options:Ad,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":jd},null,8,[`model-value`])])):x(``,!0),N.value===`general`?(f(),E(`div`,ri,[O(`div`,ii,i(t.$t(`settings.workspaceListSection`)),1),v(B,{modelValue:sr.value,"onUpdate:modelValue":n[3]||=e=>sr.value=e,label:t.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,ai,i(t.$t(`settings.flattenWorkspaceListHint`)),1)])):x(``,!0),N.value===`skills`?(f(),E(`div`,oi,[O(`div`,si,i(t.$t(`settings.skillSuite.section`)),1),v(ze,{modelValue:cr.value,"onUpdate:modelValue":n[4]||=e=>cr.value=e,options:[{label:t.$t(`settings.skillSuite.standard`),value:`standard`},{label:t.$t(`settings.skillSuite.superpowers`),value:`superpowers`},{label:t.$t(`settings.skillSuite.gstack`),value:`gstack`},{label:t.$t(`settings.skillSuite.ecc`),value:`ecc`},{label:t.$t(`settings.skillSuite.superpowersGstack`),value:`superpowers+gstack`},{label:t.$t(`settings.skillSuite.allThree`),value:`superpowers+gstack+ecc`},{label:t.$t(`settings.skillSuite.custom`),value:`custom`}],type:`radio`,color:`primary`,dense:``,dark:``,inline:``},null,8,[`modelValue`,`options`]),O(`div`,ci,i(t.$t(lr.value)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:t.$t(`settings.skillSuite.reloadDefaults`),disable:cr.value!==`custom`,class:`q-mt-sm`,onClick:Pr},null,8,[`label`,`disable`])])):x(``,!0),N.value===`skills`&&cr.value===`custom`?(f(),E(`div`,li,[O(`div`,ui,i(t.$t(`settings.skillSuite.customPrompts`)),1),O(`div`,di,i(t.$t(`settings.skillSuite.reviewTemplate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`reviewTemplate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`reviewTemplate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:ur.value,"onUpdate:modelValue":n[5]||=e=>ur.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,fi,i(t.$t(`settings.skillSuite.autoLoopReviewGate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`autoLoopReviewGate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`autoLoopReviewGate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:dr.value,"onUpdate:modelValue":n[6]||=e=>dr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,pi,i(t.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`autoLoopGroomingIntro`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`autoLoopGroomingIntro`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:fr.value,"onUpdate:modelValue":n[7]||=e=>fr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,mi,i(t.$t(`settings.skillSuite.qaTemplate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`qaPromptTemplate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`qaPromptTemplate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:pr.value,"onUpdate:modelValue":n[8]||=e=>pr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,hi,i(t.$t(`settings.skillSuite.brainstormingInstruction`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`brainstormingInstruction`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`brainstormingInstruction`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:mr.value,"onUpdate:modelValue":n[9]||=e=>mr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):x(``,!0),N.value===`agents`?(f(),E(`div`,gi,[O(`div`,_i,i(t.$t(`settings.defaultModelClaude`)),1),v(W,{modelValue:le.value,"onUpdate:modelValue":n[10]||=e=>le.value=e,options:Md.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,vi,i(t.$t(`settings.defaultModelCodex`)),1),v(W,{modelValue:ue.value,"onUpdate:modelValue":n[11]||=e=>ue.value=e,options:Nd.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,yi,i(t.$t(`settings.defaultPermissionModeClaude`)),1),O(`div`,bi,i(t.$t(`settings.defaultPermissionModeHint`)),1),v(W,{modelValue:kn.value,"onUpdate:modelValue":n[12]||=e=>kn.value=e,options:Id.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,xi,i(t.$t(`settings.defaultPermissionModeCodex`)),1),v(W,{modelValue:An.value,"onUpdate:modelValue":n[13]||=e=>An.value=e,options:Ld.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`]),v(z,{modelValue:Ve.value,"onUpdate:modelValue":n[14]||=e=>Ve.value=e,modelModifiers:{number:!0},label:t.$t(`settings.autoLoopMaxRetries`),hint:t.$t(`settings.autoLoopMaxRetriesHint`),type:`number`,min:`1`,max:`20`,dense:``,dark:``,outlined:``,class:`settings-input q-mt-md`},null,8,[`modelValue`,`label`,`hint`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Si,[O(`div`,Ci,i(t.$t(`settings.activityFeed`)),1),O(`div`,wi,[v(B,{modelValue:un.value,"onUpdate:modelValue":n[15]||=e=>un.value=e,label:t.$t(`settings.verboseMessages`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:dn.value,"onUpdate:modelValue":n[16]||=e=>dn.value=e,label:t.$t(`settings.showThinkingBlocks`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`])])])):x(``,!0),N.value===`general`?(f(),E(`div`,Ti,[O(`div`,Ei,i(t.$t(`settings.whipSettings`)),1),O(`div`,Di,i(t.$t(`settings.whipSettingsHint`)),1),v(B,{modelValue:fn.value,"onUpdate:modelValue":n[17]||=e=>fn.value=e,label:t.$t(`settings.whipEnabled`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(t.$t(`settings.whipEnabledHint`)),1)]),_:1})]),_:1},8,[`modelValue`,`label`]),fn.value?(f(),E(`div`,Oi,[v(Mr,{modelValue:pn.value,"onUpdate:modelValue":n[18]||=e=>pn.value=e},null,8,[`modelValue`]),O(`div`,ki,[O(`div`,Ai,i(t.$t(`settings.whipVolume`)),1),v(an,{modelValue:mn.value,"onUpdate:modelValue":n[19]||=e=>mn.value=e,min:0,max:1,step:.05,disable:hn.value.disabled,"aria-label":t.$t(`settings.whipVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,ji,i(Math.round(mn.value*100))+`% `,1)]),hn.value.hintKey?(f(),E(`div`,Mi,i(t.$t(hn.value.hintKey)),1)):x(``,!0)])):x(``,!0)])):x(``,!0),N.value===`notifications`?(f(),E(`div`,Ni,[O(`div`,Pi,i(t.$t(`settings.notifications`)),1),v(B,{modelValue:Je.value,"onUpdate:modelValue":n[20]||=e=>Je.value=e,label:t.$t(`absence.title`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,Fi,i(t.$t(`settings.activityDigestHint`)),1),v(z,{modelValue:We.value,"onUpdate:modelValue":n[21]||=e=>We.value=e,modelModifiers:{number:!0},label:t.$t(`settings.awaitingUserReminder`),hint:t.$t(`settings.awaitingUserReminderHint`),type:`number`,min:`0`,max:`1440`,dense:``,dark:``,outlined:``,class:`settings-input q-mt-md`},null,8,[`modelValue`,`label`,`hint`]),v(He,{dark:``,class:`q-my-md`}),v(gn),O(`div`,Ii,[O(`div`,Li,[O(`div`,Ri,i(t.$t(`settings.notificationSound`)),1),O(`div`,zi,i(t.$t(`settings.notificationSoundHint`)),1),O(`div`,Bi,[v(B,{modelValue:Vt.value,"onUpdate:modelValue":n[22]||=e=>Vt.value=e,label:t.$t(`settings.enableBrowserNotifications`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:Ut.value,"onUpdate:modelValue":n[23]||=e=>Ut.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`])]),O(`div`,Vi,[v(pt,{dense:``,square:``,color:_n.value.color,"text-color":`white`,icon:`notifications`},{default:_(()=>[S(i(_n.value.label),1)]),_:1},8,[`color`]),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`notifications_active`,label:t.$t(`settings.testBrowserNotification`),onClick:vn},null,8,[`label`])]),O(`div`,Hi,[v(W,{modelValue:qt.value,"onUpdate:modelValue":n[24]||=e=>qt.value=e,options:Vd.value,label:t.$t(`settings.notificationSound`),disable:!Ut.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Ut.value,onClick:Gd},null,8,[`label`,`disable`])]),O(`div`,Ui,[O(`div`,Wi,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:Qt.value,"onUpdate:modelValue":n[25]||=e=>Qt.value=e,min:0,max:1,step:.05,disable:!Ut.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,Gi,i(Math.round(Qt.value*100))+`% `,1)])]),O(`div`,Ki,[O(`div`,qi,i(t.$t(`settings.questionSound`)),1),O(`div`,Ji,i(t.$t(`settings.questionSoundHint`)),1),v(B,{modelValue:Wt.value,"onUpdate:modelValue":n[26]||=e=>Wt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,Yi,[v(W,{modelValue:Jt.value,"onUpdate:modelValue":n[27]||=e=>Jt.value=e,options:Hd.value,label:t.$t(`settings.questionSound`),disable:!Wt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Wt.value,onClick:Kd},null,8,[`label`,`disable`])]),O(`div`,Xi,[O(`div`,Zi,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:$t.value,"onUpdate:modelValue":n[28]||=e=>$t.value=e,min:0,max:1,step:.05,disable:!Wt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,Qi,i(Math.round($t.value*100))+`% `,1)])]),O(`div`,$i,[O(`div`,ea,i(t.$t(`settings.workspaceCreatedSound`)),1),O(`div`,ta,i(t.$t(`settings.workspaceCreatedSoundHint`)),1),v(B,{modelValue:Gt.value,"onUpdate:modelValue":n[29]||=e=>Gt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,na,[v(W,{modelValue:Xt.value,"onUpdate:modelValue":n[30]||=e=>Xt.value=e,options:Hd.value,label:t.$t(`settings.workspaceCreatedSound`),disable:!Gt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Gt.value,onClick:qd},null,8,[`label`,`disable`])]),O(`div`,ra,[O(`div`,ia,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:en.value,"onUpdate:modelValue":n[31]||=e=>en.value=e,min:0,max:1,step:.05,disable:!Gt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,aa,i(Math.round(en.value*100))+`% `,1)])]),O(`div`,oa,[O(`div`,sa,i(t.$t(`settings.agentErrorSound`)),1),O(`div`,ca,i(t.$t(`settings.agentErrorSoundHint`)),1),v(B,{modelValue:Kt.value,"onUpdate:modelValue":n[32]||=e=>Kt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,la,[v(W,{modelValue:Zt.value,"onUpdate:modelValue":n[33]||=e=>Zt.value=e,options:Hd.value,label:t.$t(`settings.agentErrorSound`),disable:!Kt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Kt.value,onClick:Jd},null,8,[`label`,`disable`])]),O(`div`,ua,[O(`div`,da,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:tn.value,"onUpdate:modelValue":n[34]||=e=>tn.value=e,min:0,max:1,step:.05,disable:!Kt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,fa,i(Math.round(tn.value*100))+`%`,1)])])]),v(wr,{modelValue:nn.value,"onUpdate:modelValue":n[35]||=e=>nn.value=e,"general-sound":qt.value},null,8,[`modelValue`,`general-sound`])])):x(``,!0),N.value===`voice`?(f(),E(`div`,pa,[O(`div`,ma,[O(`div`,ha,i(t.$t(`voice.sectionRuntime`)),1),v(q),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`kobo-2`,label:e(p)(`common.refresh`),onClick:n[36]||=t=>e(s).fetchVoiceRuntime()},null,8,[`label`])]),O(`div`,ga,[O(`div`,_a,[v(I,{name:e(s).voiceRuntime?.available?`check_circle`:`cancel`,color:e(s).voiceRuntime?.available?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),O(`span`,{class:r([`text-caption`,e(s).voiceRuntime?.available?`text-green-5`:`text-red-5`])},i(e(s).voiceRuntime?.available?e(p)(`voice.runtimeReady`,{command:e(s).voiceRuntime?.command??`whisper-cli`}):e(p)(`voice.runtimeMissing`,{command:e(s).voiceRuntime?.command??`whisper-cli`})),3)]),O(`div`,va,[v(I,{name:e(s).voiceRuntime?.ffmpegAvailable?`check_circle`:`cancel`,color:e(s).voiceRuntime?.ffmpegAvailable?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),O(`span`,{class:r([`text-caption`,e(s).voiceRuntime?.ffmpegAvailable?`text-green-5`:`text-red-5`])},i(e(s).voiceRuntime?.ffmpegAvailable?e(p)(`voice.ffmpegReady`):e(p)(`voice.ffmpegMissing`)),3)])]),v(st,{dense:``,dark:``,icon:`help_outline`,label:t.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:_(()=>[O(`div`,ya,[O(`div`,ba,i(t.$t(`voice.installGuideIntro`)),1),O(`div`,xa,[O(`a`,Sa,i(t.$t(`voice.installLink`)),1)]),O(`div`,Ca,i(t.$t(`voice.installGuideUbuntuTitle`)),1),n[136]||=O(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
|
|
1
|
+
import{M as e,S as t,g as n,lt as r,pt as i,ut as a,v as o}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as s,E as c,F as l,J as u,K as d,L as f,O as p,P as m,S as h,X as g,Y as _,_ as v,b as y,d as b,f as x,g as S,h as C,j as w,l as T,p as E,r as D,u as O,y as k,z as A}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{$ as ee,G as j,K as M,P as N,Q as P,R as F,Y as te,Z as ne,d as re,z as ie}from"./dom-BtYTvLeN.js";import{c as ae,l as I,t as L,u as oe}from"./QBtn-BUSdPaf4.js";import{n as se,t as ce}from"./use-dark-BHObfh0O.js";import{i as le,n as ue,t as de}from"./private.use-form-DY1BkePL.js";import{At as fe,B as pe,Bt as R,Ct as me,F as he,G as ge,Gt as _e,H as ve,Ht as ye,I as be,J as xe,L as Se,N as Ce,P as we,Rt as Te,U as Ee,Ut as De,V as Oe,W as ke,X as Ae,Xt as je,Y as Me,Yt as Ne,Zt as Pe,_ as Fe,_n as Ie,b as Le,bn as Re,c as ze,en as Be,et as Ve,f as He,gn as Ue,h as We,hn as Ge,i as Ke,j as qe,jt as z,l as B,nn as Je,nt as Ye,o as Xe,s as Ze,tn as Qe,tt as $e,u as et,vn as V,wt as tt,yn as nt,z as rt,zt as it}from"./index-DCpe-Tfm.js";import{t as H}from"./QList-Cx1UfaUm.js";import{i as at,r as ot,s as U,t as W}from"./QSelect-Dh4CjliE.js";import{n as G,t as K}from"./QItemSection-MdJ1_ZK7.js";import{t as st}from"./QExpansionItem-DjaUhgjt.js";import{a as ct,i as q,n as lt,r as ut}from"./use-tours-CWafZt-m.js";import{t as dt}from"./TouchPan-DwqfsAxH.js";import{t as ft}from"./QTooltip-CH45NuVs.js";import{t as pt}from"./QChip-Be16M4Ig.js";import{t as mt}from"./ClosePopup-CRV2hxHS.js";import{t as ht}from"./use-is-mobile-CDB_rzM9.js";import{a as gt,c as _t,l as vt,n as yt,o as bt,r as xt,s as St,t as Ct}from"./permissionModes-DLWiBfdb.js";import{t as wt}from"./QBtnDropdown-BnuKPevV.js";import{i as Tt,n as Et,r as Dt,t as Ot}from"./MemoryProposalList-CzpzIirK.js";import{n as kt,r as At,t as jt}from"./custom-sounds-D-T5rpgv.js";import{t as Mt}from"./QBanner-BT2ZemYu.js";import{t as Nt}from"./project-color-Dzvvmaml.js";import{t as Pt}from"./QPage-CqkGHokx.js";import{t as Ft}from"./DrawerToggleButton-LzIEeeJY.js";import{t as It}from"./TourReplayButton-OIavXdUg.js";import{n as Lt,t as Rt}from"./workspace-templates-DL_Cs7mD.js";import{t as zt}from"./workspace-page-layout-Dw9NhZsL.js";var Bt=Object.create,Vt=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,Ut=Object.getOwnPropertyNames,Wt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty,Kt=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),qt=(e,t)=>{let n={};for(var r in e)Vt(n,r,{get:e[r],enumerable:!0});return t||Vt(n,Symbol.toStringTag,{value:`Module`}),n},Jt=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Ut(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Gt.call(e,s)&&s!==n&&Vt(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Ht(t,s))||r.enumerable});return e},Yt=(e,t,n)=>(n=e==null?{}:Bt(Wt(e)),Jt(t||!e||!e.__esModule||!Gt.call(e,`default`)?Vt(n,`default`,{value:e,enumerable:!0}):n,e)),Xt=`q-slider__marker-labels`,Zt=e=>({value:e}),Qt=({marker:e})=>s(`div`,{key:e.value,style:e.style,class:e.classes},e.label),$t=[34,37,40,33,39,38,35,36],en={...se,...le,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`}},tn=[`pan`,`update:modelValue`,`change`];function nn({updateValue:e,updatePosition:t,getDragging:n,formAttrs:r}){let{props:i,emit:a,slots:c}=y(),l=re(),u=ce(i,l),d=ue(r),f=o(!1),p=o(!1),m=o(!1),h=o(!1),_=T(()=>i.vertical?`--v`:`--h`),v=T(()=>`-`+(i.switchLabelSide?`switched`:`standard`)),b=T(()=>i.vertical?i.reverse:i.reverse!==(l.lang.rtl===!0)),x=T(()=>!Number.isFinite(i.innerMin)||i.innerMin<i.min?i.min:i.innerMin),S=T(()=>!Number.isFinite(i.innerMax)||i.innerMax>i.max?i.max:i.innerMax),C=T(()=>!i.disable&&!i.readonly&&x.value<S.value),E=T(()=>{if(i.step===0)return e=>e;let e=(String(i.step).trim().split(`.`)[1]||``).length;return t=>Number.parseFloat(t.toFixed(e))}),D=T(()=>i.step===0?1:i.step),O=T(()=>C.value?i.tabindex||0:-1),k=T(()=>i.max-i.min),A=T(()=>S.value-x.value),ee=T(()=>_e(x.value)),j=T(()=>_e(S.value)),M=T(()=>i.vertical?b.value?`bottom`:`top`:b.value?`right`:`left`),P=T(()=>i.vertical?`height`:`width`),F=T(()=>i.vertical?`width`:`height`),te=T(()=>i.vertical?`vertical`:`horizontal`),ne=T(()=>`q-slider q-slider${_.value} q-slider--${f.value?``:`in`}active inline no-wrap `+(i.vertical?`row`:`column`)+(i.disable?` disabled`:` q-slider--enabled`+(C.value?` q-slider--editable`:``))+(m.value===`both`?` q-slider--focus`:``)+(i.label||i.labelAlways?` q-slider--label`:``)+(i.labelAlways?` q-slider--label-always`:``)+(u()?` q-slider--dark`:``)+(i.dense?` q-slider--dense q-slider--dense`+_.value:``));function ie(e){let t=`q-slider__`+e;return`${t} ${t}${_.value} ${t}${_.value}${v.value}`}function ae(e){let t=`q-slider__`+e;return`${t} ${t}${_.value}`}let I=T(()=>{let e=i.selectionColor||i.color;return`q-slider__selection absolute`+(e===void 0?``:` text-${e}`)}),L=T(()=>ae(`markers`)+` absolute overflow-hidden`),oe=T(()=>ae(`track-container`)),se=T(()=>ie(`pin`)),le=T(()=>ie(`label`)),de=T(()=>ie(`text-container`)),fe=T(()=>ie(`marker-labels-container`)+(i.markerLabelsClass===void 0?``:` ${i.markerLabelsClass}`)),pe=T(()=>`q-slider__track relative-position no-outline`+(i.trackColor===void 0?``:` bg-${i.trackColor}`)),R=T(()=>{let e={[F.value]:i.trackSize};return i.trackImg!==void 0&&(e.backgroundImage=`url(${i.trackImg}) !important`),e}),me=T(()=>`q-slider__inner absolute`+(i.innerTrackColor===void 0?``:` bg-${i.innerTrackColor}`)),he=T(()=>{let e=j.value-ee.value,t={[M.value]:`${100*ee.value}%`,[P.value]:e===0?`2px`:`${100*e}%`};return i.innerTrackImg!==void 0&&(t.backgroundImage=`url(${i.innerTrackImg}) !important`),t});function ge(e){let{min:t,max:n,step:r}=i,a=t+e*(n-t);if(r>0){let e=(a-x.value)%r;a+=(Math.abs(e)>=r/2?(e<0?-1:1)*r:0)-e}return a=E.value(a),at(a,x.value,S.value)}function _e(e){return k.value===0?0:(e-i.min)/k.value}function ve(e,t){let n=N(e),r=i.vertical?at((n.top-t.top)/t.height,0,1):at((n.left-t.left)/t.width,0,1);return at(b.value?1-r:r,ee.value,j.value)}let ye=T(()=>nt(i.markers)&&i.markers>0?i.markers:D.value),be=T(()=>{let e=[],t=ye.value,n=i.max,r=Math.max((String(t).trim().split(`.`)[1]||``).length,(String(i.min).trim().split(`.`)[1]||``).length),a=0,o=i.min;do{e.push(o),a++;let n=Number.parseFloat((i.min+a*t).toFixed(r));o=n>o?n:i.min+a*t}while(o<n);return e.push(n),e}),xe=T(()=>{let e=` ${Xt}${_.value}-`;return`q-slider__marker-labels${e}${i.switchMarkerLabelsSide?`switched`:`standard`}${e}${b.value?`rtl`:`ltr`}`}),Se=T(()=>i.markerLabels===!1?null:Te(i.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:xe.value+(e.classes===void 0?``:` `+e.classes),style:{...Ee(e.value),...e.style}}))),Ce=T(()=>({markerList:Se.value,markerMap:De.value,classes:xe.value,getStyle:Ee})),we=T(()=>{let e=A.value===0?`2px`:100*ye.value/A.value;return{...he.value,backgroundSize:i.vertical?`2px ${e}%`:`${e}% 2px`}});function Te(e){if(e===!1)return null;if(e===!0)return be.value.map(Zt);if(typeof e==`function`)return be.value.map(t=>{let n=e(t);return Re(n)?{...n,value:t}:{value:t,label:n}});let t=({value:e})=>e>=i.min&&e<=i.max;return Array.isArray(e)?e.map(e=>Re(e)?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return Re(n)?{...n,value:r}:{value:r,label:n}}).filter(t)}function Ee(e){return{[M.value]:`${100*(e-i.min)/k.value}%`}}let De=T(()=>{if(i.markerLabels===!1)return null;let e={};return Se.value.forEach(t=>{e[t.value]=t}),e});function Oe(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](Ce.value);let e=c[`marker-label`]||Qt;return Se.value.map(t=>e({marker:t,...Ce.value}))}let ke=T(()=>[[dt,C.value?Ae:void 0,void 0,{[te.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function Ae(r){r.isFinal?(h.value!==void 0&&(t(r.evt),r.touch&&e(!0),h.value=void 0,a(`pan`,`end`)),f.value=!1,m.value=!1):r.isFirst?(h.value=n(r.evt),t(r.evt),e(),f.value=!0,a(`pan`,`start`)):(t(r.evt),e())}function je(){m.value=!1}function Me(r){t(r,n(r)),e(),p.value=!0,f.value=!0,document.addEventListener(`mouseup`,Ne,!0)}function Ne(){p.value=!1,f.value=!1,e(!0),je(),document.removeEventListener(`mouseup`,Ne,!0)}function Pe(r){t(r,n(r)),e(!0),je()}function Fe(t){$t.includes(t.keyCode)&&e(!0)}function Ie(e){if(i.vertical)return null;let t=l.lang.rtl===i.reverse?e:1-e;return{transform:`translateX(calc(${2*t-1} * ${i.thumbSize} / 2 + ${50-100*t}%))`}}function Le(e){let t=T(()=>!p.value&&(m.value===e.focusValue||m.value===`both`)?` q-slider--focus`:``),n=T(()=>`q-slider__thumb q-slider__thumb${_.value} q-slider__thumb${_.value}-${b.value?`rtl`:`ltr`} absolute non-selectable`+t.value+(e.thumbColor.value===void 0?``:` text-${e.thumbColor.value}`)),r=T(()=>({width:i.thumbSize,height:i.thumbSize,[M.value]:`${100*e.ratio.value}%`,zIndex:m.value===e.focusValue?2:void 0})),a=T(()=>e.labelColor.value===void 0?``:` text-${e.labelColor.value}`),o=T(()=>Ie(e.ratio.value)),c=T(()=>`q-slider__text`+(e.labelTextColor.value===void 0?``:` text-${e.labelTextColor.value}`));return()=>{let t=[s(`svg`,{class:`q-slider__thumb-shape absolute-full`,viewBox:`0 0 20 20`,"aria-hidden":`true`},[s(`path`,{d:i.thumbPath})]),s(`div`,{class:`q-slider__focus-ring fit`})];return(i.label||i.labelAlways)&&t.push(s(`div`,{class:se.value+` absolute fit no-pointer-events`+a.value},[s(`div`,{class:le.value,style:{minWidth:i.thumbSize}},[s(`div`,{class:de.value,style:o.value},[s(`span`,{class:c.value},e.label.value)])])])),e.injectFormInput!==!1&&i.name!==void 0&&!i.disable&&d(t,`push`),s(`div`,{class:n.value,style:r.value,...e.getNodeData()},t)}}function ze(e,t,n,r){let a=[];i.innerTrackColor!==`transparent`&&a.push(s(`div`,{key:`inner`,class:me.value,style:he.value})),i.selectionColor!==`transparent`&&a.push(s(`div`,{key:`selection`,class:I.value,style:e.value})),i.markers!==!1&&a.push(s(`div`,{key:`marker`,class:L.value,style:we.value})),r(a);let o=[g(s(`div`,{key:`trackC`,class:oe.value,tabindex:t.value,...n.value},[s(`div`,{class:pe.value,style:R.value},a)]),ke.value)];return i.markerLabels!==!1&&o[i.switchMarkerLabelsSide?`unshift`:`push`](s(`div`,{key:`markerL`,class:fe.value},Oe())),o}return w(()=>{document.removeEventListener(`mouseup`,Ne,!0)}),{state:{active:f,focus:m,preventFocus:p,dragging:h,editable:C,classes:ne,tabindex:O,orientation:te,roundValueFn:E,keyStep:D,trackLen:k,innerMin:x,innerMinRatio:ee,innerMax:S,innerMaxRatio:j,positionProp:M,sizeProp:P,isReversed:b},methods:{onActivate:Me,onClick:Pe,onBlur:je,onKeyup:Fe,getContent:ze,getThumbRenderFn:Le,convertRatioToModel:ge,convertModelToRatio:_e,getDraggingRatio:ve}}}var rn=()=>({}),an=ie({name:`QSlider`,props:{...en,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:tn,inheritAttrs:!1,setup(e,{emit:n,attrs:r}){let i=re(),a=Te(),{state:c,methods:l}=nn({updateValue:w,updatePosition:D,getDragging:E,formAttrs:de(e)}),d=t(null),f=o(0),p=o(0),m=null,h=null;function g(){h=null,p.value=e.modelValue===null?c.innerMin.value:at(e.modelValue,c.innerMin.value,c.innerMax.value)}u(()=>`${e.modelValue}|${c.innerMin.value}|${c.innerMax.value}`,g,{immediate:!0});let _=T(()=>l.convertModelToRatio(p.value)),v=T(()=>c.active.value?f.value:_.value),y=T(()=>{let t={[c.positionProp.value]:`${100*c.innerMinRatio.value}%`,[c.sizeProp.value]:`${100*(v.value-c.innerMinRatio.value)}%`};return e.selectionImg!==void 0&&(t.backgroundImage=`url(${e.selectionImg}) !important`),t}),b=l.getThumbRenderFn({focusValue:!0,getNodeData:rn,ratio:v,label:T(()=>e.labelValue===void 0?p.value:e.labelValue),thumbColor:T(()=>e.thumbColor||e.color),labelColor:T(()=>e.labelColor),labelTextColor:T(()=>e.labelTextColor)}),x=T(()=>c.editable.value?{onClick:l.onClick,onMousedown:l.onActivate,onFocus:O,onBlur:l.onBlur,onKeydown:k,onKeyup:l.onKeyup}:{}),S=T(()=>{let t={role:`slider`,"aria-orientation":c.orientation.value,"aria-valuemin":c.innerMin.value,"aria-valuemax":c.innerMax.value,"aria-valuenow":e.modelValue===null?c.innerMin.value:e.modelValue,"data-step":e.step};return e.labelValue===void 0?e.modelValue===null&&(t[`aria-valuetext`]=i.lang.label.noValue):t[`aria-valuetext`]=e.labelValue,e.disable?t[`aria-disabled`]=`true`:e.readonly&&(t[`aria-readonly`]=`true`),t}),C=T(()=>({...S.value,...a.attributes.value,...x.value}));function w(t){p.value!==e.modelValue&&p.value!==h&&(h=p.value,n(`update:modelValue`,p.value)),t&&(m!==null&&m!==p.value&&n(`change`,p.value),m=null)}function E(){return m=p.value,d.value.getBoundingClientRect()}function D(t,n=c.dragging.value){let r=l.getDraggingRatio(t,n);p.value=l.convertRatioToModel(r),f.value=!e.snap||e.step===0?r:l.convertModelToRatio(p.value)}function O(){c.focus.value=!0}function k(t){if(!$t.includes(t.keyCode))return;if(F(t),m===null&&(m=p.value),t.keyCode===36||t.keyCode===35){p.value=t.keyCode===36?c.innerMin.value:c.innerMax.value,w();return}let n=([34,33].includes(t.keyCode)?10:1)*c.keyStep.value,r=([34,37,40].includes(t.keyCode)?-1:1)*(c.isReversed.value?-1:1)*(e.vertical?-1:1)*n;p.value=at(c.roundValueFn.value(p.value+r),c.innerMin.value,c.innerMax.value),w()}return()=>{let t=l.getContent(y,c.tabindex,C,e=>{e.push(b())});return s(`div`,{ref:d,class:[c.classes.value+(e.modelValue===null?` q-slider--no-value`:``),r.class],style:r.style,...a.listeners.value},t)}}});function on(e,t=new WeakMap){if(Object(e)!==e)return e;if(t.has(e))return t.get(e);let n=e instanceof Date?new Date(e):e instanceof RegExp?new RegExp(e.source,e.flags):e instanceof Set?new Set:e instanceof Map?new Map:typeof e.constructor==`function`?e.prototype!==void 0&&typeof e.prototype.constructor==`function`?e:new e.constructor:Object.create(null);if(typeof e.constructor==`function`&&typeof e.valueOf==`function`){let n=e.valueOf();if(Object(n)!==n){let r=new e.constructor(n);return t.set(e,r),r}}return t.set(e,n),e instanceof Set?e.forEach(e=>{n.add(on(e,t))}):e instanceof Map&&e.forEach((e,r)=>{n.set(r,on(e,t))}),Object.assign(n,...Object.keys(e).map(n=>({[n]:on(e[n],t)})))}var sn=ie({name:`QPopupEdit`,props:{modelValue:{required:!0},title:String,buttons:Boolean,labelSet:String,labelCancel:String,color:{type:String,default:`primary`},validate:{type:Function,default:()=>!0},autoSave:Boolean,cover:{type:Boolean,default:!0},disable:Boolean},emits:[`update:modelValue`,`save`,`cancel`,`beforeShow`,`show`,`beforeHide`,`hide`],setup(e,{slots:n,emit:r}){let{proxy:i}=y(),a=re(),c=t(null),l=o(``),u=o(``),d=!1,f=T(()=>j({initialValue:l.value,validate:e.validate,set:m,cancel:h,updatePosition:g},`value`,()=>u.value,e=>{u.value=e}));function m(){e.validate(u.value)&&(_()&&(r(`save`,u.value,l.value),r(`update:modelValue`,u.value)),v())}function h(){_()&&r(`cancel`,u.value,l.value),v()}function g(){p(()=>{c.value.updatePosition()})}function _(){return!V(u.value,l.value)}function v(){d=!0,c.value.hide()}function b(){d=!1,l.value=on(e.modelValue),u.value=on(e.modelValue),r(`beforeShow`)}function x(){r(`show`)}function S(){!d&&_()&&(e.autoSave&&e.validate(u.value)?(r(`save`,u.value,l.value),r(`update:modelValue`,u.value)):r(`cancel`,u.value,l.value)),r(`beforeHide`)}function C(){r(`hide`)}function w(){let t=n.default===void 0?[]:[n.default(f.value)].flat();return e.title&&t.unshift(s(`div`,{class:`q-dialog__title q-mt-sm q-mb-sm`},e.title)),e.buttons&&t.push(s(`div`,{class:`q-popup-edit__buttons row justify-center no-wrap`},[s(L,{flat:!0,color:e.color,label:e.labelCancel||a.lang.label.cancel,onClick:h}),s(L,{flat:!0,color:e.color,label:e.labelSet||a.lang.label.set,onClick:m})])),t}return Object.assign(i,{set:m,cancel:h,show(e){c.value?.show(e)},hide(e){c.value?.hide(e)},updatePosition:g}),()=>{if(!e.disable)return s(ot,{ref:c,class:`q-popup-edit`,cover:e.cover,onBeforeShow:b,onShow:x,onBeforeHide:S,onHide:C,onEscapeKey:h},w)}}}),cn={class:`custom-sounds`,"data-test":`custom-sounds`},ln={class:`text-subtitle2`},un={class:`text-kobo-3 text-caption q-mb-sm`},dn={class:`row items-center q-gutter-sm`},fn=[`accept`,`disabled`],pn={key:0,class:`text-kobo-3 text-caption`},mn={key:0,class:`text-negative text-caption q-mt-sm q-mb-none`,role:`alert`},hn={class:`row items-center no-wrap`},gn=k({__name:`CustomSoundManager`,setup(t){let{t:n}=Pe(),r=jt(),a=o(null),s=o(``),c=T(()=>r.sounds.length>=20),l=[`type`,`size`,`count`];function u(e){return n(`settings.customSoundsError.${e}`,{count:20,size:$e/1024/1024})}function d(e){return e instanceof it?e.status===413?u(`size`):l.includes(e.code)?u(e.code):n(`settings.customSoundsError.failed`):n(`settings.customSoundsError.failed`)}async function p(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){if(s.value=``,n.size>2097152){s.value=u(`size`);return}if(!Ye(n.name)){s.value=u(`type`);return}try{await r.uploadSound(n)}catch(e){s.value=d(e)}}}async function h(e){s.value=``;try{await r.removeSound(e)}catch(e){s.value=d(e)}}function g(e){Le(e,1)}return m(()=>{r.loaded||r.fetchSounds()}),(t,n)=>(f(),E(`div`,cn,[O(`div`,ln,i(t.$t(`settings.customSounds`)),1),O(`div`,un,i(t.$t(`settings.customSoundsHint`,{count:e(20),size:e($e)/1024/1024})),1),O(`div`,dn,[O(`input`,{ref_key:`fileInput`,ref:a,class:`hidden`,type:`file`,"data-test":`custom-sound-input`,accept:e(Ve),disabled:e(r).busy||c.value,onChange:p},null,40,fn),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`library_music`,label:t.$t(`settings.customSoundsImport`),loading:e(r).busy,disable:c.value,"data-test":`custom-sound-import`,onClick:n[0]||=e=>a.value?.click()},null,8,[`label`,`loading`,`disable`]),c.value?(f(),E(`span`,pn,i(t.$t(`settings.customSoundsFull`,{count:e(20)})),1)):x(``,!0)]),s.value?(f(),E(`p`,mn,i(s.value),1)):x(``,!0),e(r).sounds.length>0?(f(),b(H,{key:1,bordered:``,separator:``,class:`rounded-borders q-mt-sm`},{default:_(()=>[(f(!0),E(D,null,A(e(r).sounds,n=>(f(),b(G,{key:n.id},{default:_(()=>[v(K,null,{default:_(()=>[v(U,{class:`ellipsis`,title:n.name},{default:_(()=>[S(i(n.name),1)]),_:2},1032,[`title`]),v(U,{caption:``},{default:_(()=>[S(i(Math.max(1,Math.round(n.size/1024)))+` KB`,1)]),_:2},1024)]),_:2},1024),v(K,{side:``},{default:_(()=>[O(`div`,hn,[v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`play_arrow`,color:`primary`,"aria-label":t.$t(`settings.notificationSoundPreview`),onClick:e=>g(n.reference)},null,8,[`aria-label`,`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`kobo-3`,disable:e(r).busy,"aria-label":t.$t(`common.delete`),onClick:e=>h(n.id)},null,8,[`disable`,`aria-label`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):x(``,!0)]))}}),_n={class:`q-pa-sm q-gutter-sm`},vn={class:`text-caption`},yn={key:0},J={key:1,role:`alert`,class:`text-negative`},bn={key:2,role:`status`},xn={class:`row q-gutter-sm`},Sn=k({__name:`IntegrationConnectionSettings`,props:c({integration:{}},{modelValue:{default:()=>({command:``,args:``,environment:``})},modelModifiers:{},connectionStatus:{default:()=>n({configured:!1})},connectionStatusModifiers:{}}),emits:[`update:modelValue`,`update:connectionStatus`],setup(e){let{t}=Pe(),n=e,r=d(e,`modelValue`),a=T(()=>({command:`npx`,args:JSON.stringify([`-y`,n.integration===`notion`?`@notionhq/notion-mcp-server`:t(`integration.packageExample`)]),environment:JSON.stringify(n.integration===`notion`?{NOTION_TOKEN:t(`integration.tokenExample`)}:{[t(`integration.variableExample`)]:t(`integration.valueExample`)})})),s=d(e,`connectionStatus`),c=T(()=>s.value.configured),l=o(!1),u=o(!1),p=o(!1),h=o(!1);function g(e,t){r.value={...r.value,[e]:String(t??``)}}async function y(){u.value=!0,p.value=!1;try{s.value.configured=(await R(`/api/integrations/${n.integration}`)).configured,l.value=!0}catch{p.value=!0}finally{u.value=!1}}async function S(e){if(!l.value||u.value)return;let t=r.value;u.value=!0,p.value=!1,h.value=!1;try{let i=await R(`/api/integrations/${n.integration}`,{method:`PUT`,body:e===null?`null`:e});s.value.configured=i.configured,Object.assign(t,{command:``,args:``,environment:``}),r.value===t&&(r.value={...t}),h.value=!0}catch{p.value=!0}finally{u.value=!1}}async function C(){try{await S({command:r.value.command,args:JSON.parse(r.value.args.trim()||`[]`),env:JSON.parse(r.value.environment.trim()||`{}`)})}catch{p.value=!0,h.value=!1}}return m(y),(e,t)=>(f(),b(st,{label:e.$t(`integration.direct`),class:`q-mb-md`},{default:_(()=>[O(`div`,_n,[O(`p`,null,i(e.$t(`integration.directHint`)),1),O(`p`,vn,i(e.$t(`integration.agentScope`)),1),c.value?(f(),E(`p`,yn,i(e.$t(`integration.stored`)),1)):x(``,!0),v(z,{"model-value":r.value.command,outlined:``,dense:``,label:e.$t(`integration.command`),placeholder:e.$t(`integration.example`,{example:a.value.command}),"stack-label":``,disable:u.value,autocomplete:`off`,"onUpdate:modelValue":t[0]||=e=>g(`command`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),v(z,{"model-value":r.value.args,outlined:``,dense:``,type:`textarea`,label:e.$t(`integration.args`),placeholder:e.$t(`integration.example`,{example:a.value.args}),"stack-label":``,disable:u.value,autocomplete:`off`,spellcheck:`false`,"onUpdate:modelValue":t[1]||=e=>g(`args`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),v(z,{"model-value":r.value.environment,outlined:``,dense:``,type:`textarea`,label:e.$t(`integration.environment`),placeholder:e.$t(`integration.example`,{example:a.value.environment}),"stack-label":``,disable:u.value,autocomplete:`off`,spellcheck:`false`,"onUpdate:modelValue":t[2]||=e=>g(`environment`,e)},null,8,[`model-value`,`label`,`placeholder`,`disable`]),p.value?(f(),E(`p`,J,i(e.$t(`integration.failed`)),1)):x(``,!0),h.value?(f(),E(`p`,bn,i(e.$t(`integration.saved`)),1)):x(``,!0),O(`div`,xn,[v(L,{outline:``,"no-caps":``,label:e.$t(`integration.save`),disable:u.value||!l.value||!r.value.command.trim(),onClick:C},null,8,[`label`,`disable`]),v(L,{flat:``,"no-caps":``,label:e.$t(`integration.clear`),disable:u.value||!l.value||!c.value,onClick:t[3]||=e=>S(null)},null,8,[`label`,`disable`]),l.value?x(``,!0):(f(),b(L,{key:0,flat:``,"no-caps":``,label:e.$t(`setup.check`),loading:u.value,onClick:y},null,8,[`label`,`loading`]))])])]),_:1},8,[`label`]))}});function Cn(e){let t=document.createElement(`textarea`);t.value=e,t.contentEditable=`true`,t.style.position=`fixed`;let n=()=>{};Qe(n),document.body.append(t),t.focus(),t.select();let r=document.execCommand(`copy`);return t.remove(),Je(n),r}function wn(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let t=Cn(e);return t?Promise.resolve(!0):Promise.reject(t)}function Tn(e,t){let n=[{url:e.localUrl,kind:`local`,requiresToken:e.localRequiresToken}];if(!e.networkEnabled)return n;if(n.push(...e.lanUrls.map(e=>({url:e,kind:`remote`,requiresToken:!0}))),e.behindProxy)try{let r=new URL(t);if([`http:`,`https:`].includes(r.protocol)&&(!e.proxyHostname||r.hostname.replace(/^\[|\]$/g,``)===e.proxyHostname)){let e=`${r.origin}/api/mcp`;n.some(t=>t.url===e)||n.push({url:e,kind:`proxy`,requiresToken:!0})}}catch{}return n}function En(e,t,n,r){let i=n.trim()?Fe(n):``,a=r||`<KOBO_NETWORK_TOKEN>`;if(t===`stdio`){if(!e.stdio)throw Error(`MCP stdio entrypoint unavailable`);return JSON.stringify({mcpServers:{kobo:{...e.stdio,env:{...e.stdio.env,...i?{KOBO_MCP_CLIENT_NAME:i}:{},...e.localRequiresToken?{KOBO_NETWORK_TOKEN:a}:{}}}}},null,2)}let o={...i?{"X-Kobo-Client-Name":encodeURIComponent(i),"X-Kobo-Client-Name-Encoding":`uri`}:{},...t.requiresToken?{"X-Kobo-Token":a}:{}};return JSON.stringify({mcpServers:{kobo:{url:t.url,...Object.keys(o).length?{headers:o}:{}}}},null,2)}var Dn={"data-tour":`settings-mcp`,class:`q-mt-lg`},On={class:`text-subtitle2 q-mb-sm`},Y={class:`text-caption text-kobo-3`},kn={key:0,class:`text-caption text-kobo-3`},An={key:0,class:`row items-center q-mt-sm`},jn={class:`mcp-url col`},Mn={class:`mcp-config q-pa-sm`},Nn={class:`text-caption text-kobo-3`},Pn={class:`row q-gutter-sm`},Fn={key:1,class:`text-caption text-kobo-3 q-mt-sm`},In={key:2,class:`text-caption text-kobo-3 q-mt-sm`},Ln=ct(k({__name:`McpConnectionSettings`,props:{token:{},networkEnabled:{type:Boolean},behindProxy:{type:Boolean}},setup(t){let n=t,{t:r}=Pe(),a=re(),s=o(null),c=o(!1),l=o(``),d=o(``),p=T(()=>s.value?Tn(s.value,window.location.origin):[]),m=T(()=>[...p.value.map(e=>({label:`${r(`settings.mcp.${e.kind}`)} — ${e.url}`,value:e.url})),...s.value?.stdio?[{label:r(`settings.mcp.stdio`),value:`stdio`}]:[]]),h=T(()=>d.value===`stdio`&&s.value?.stdio?`stdio`:p.value.find(e=>e.url===d.value)),g=T(()=>s.value&&h.value?En(s.value,h.value,l.value):``),y=T(()=>h.value===`stdio`?s.value?.localRequiresToken:h.value?.requiresToken);u(()=>[n.networkEnabled,n.behindProxy],async(e,t,n)=>{let r=new AbortController;n(()=>r.abort());try{let e=await R(`/api/settings/mcp`,{signal:r.signal});if(r.signal.aborted)return;s.value=e,c.value=!1,m.value.some(e=>e.value===d.value)||(d.value=s.value.localUrl)}catch{if(r.signal.aborted)return;c.value=!0}},{immediate:!0});async function C(e){try{await wn(e),a.notify({type:`positive`,message:r(`settings.network.copied`)})}catch{a.notify({type:`negative`,message:r(`settings.mcp.copyFailed`)})}}function w(){s.value&&h.value&&n.token&&n.networkEnabled&&C(En(s.value,h.value,l.value,n.token))}return(n,a)=>(f(),E(`section`,Dn,[O(`div`,On,i(e(r)(`settings.mcp.title`)),1),O(`p`,Y,i(e(r)(`settings.mcp.hint`)),1),c.value?(f(),b(Mt,{key:0,dense:``,class:`bg-negative text-white`},{default:_(()=>[S(i(e(r)(`settings.network.loadFailed`)),1)]),_:1})):s.value?(f(),E(D,{key:1},[t.networkEnabled?x(``,!0):(f(),E(`p`,kn,i(e(r)(`settings.mcp.remoteDisabled`)),1)),v(z,{modelValue:l.value,"onUpdate:modelValue":a[0]||=e=>l.value=e,label:e(r)(`settings.mcp.clientName`),maxlength:`120`,outlined:``,dense:``,dark:``,class:`q-mb-md`},null,8,[`modelValue`,`label`]),v(W,{modelValue:d.value,"onUpdate:modelValue":a[1]||=e=>d.value=e,options:m.value,"emit-value":``,"map-options":``,label:e(r)(`settings.mcp.connection`),outlined:``,dense:``,dark:``},null,8,[`modelValue`,`options`,`label`]),h.value?(f(),E(D,{key:1},[h.value===`stdio`?x(``,!0):(f(),E(`div`,An,[O(`code`,jn,i(h.value.url),1),v(L,{flat:``,dense:``,icon:`content_copy`,title:e(r)(`settings.mcp.copyUrl`),onClick:a[2]||=e=>C(h.value.url)},null,8,[`title`])])),O(`pre`,Mn,i(g.value),1),O(`p`,Nn,i(e(r)(`settings.mcp.genericFormat`)),1),O(`div`,Pn,[v(L,{outline:``,dense:``,"no-caps":``,icon:`content_copy`,label:e(r)(`settings.mcp.copyConfig`),onClick:a[3]||=e=>C(g.value)},null,8,[`label`]),y.value?(f(),b(L,{key:0,outline:``,dense:``,"no-caps":``,disable:!t.token||!t.networkEnabled,label:e(r)(`settings.mcp.copyWithToken`),onClick:w},null,8,[`disable`,`label`])):x(``,!0)]),y.value&&!t.token?(f(),E(`p`,Fn,i(e(r)(`settings.mcp.tokenUnavailable`)),1)):x(``,!0)],64)):x(``,!0),s.value.stdio?x(``,!0):(f(),E(`p`,In,i(e(r)(`settings.mcp.stdioUnavailable`)),1))],64)):(f(),b(oe,{key:2}))]))}}),[[`__scopeId`,`data-v-2ac25d1e`]]),Rn={class:`memory-scope-select`},X=[`value`],zn={value:``},Bn=[`value`],Vn=ct(k({__name:`MemoryScopeSelect`,props:{scopes:{},modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n,{t:a}=Pe();function o(e){let t=a(`memory.scope.${e.level}`);return e.level===`project`?`${t} · ${e.projectPath??e.id}`:e.level===`workspace`?`${t} · ${e.workspaceId??e.id}`:t}return(n,s)=>(f(),E(`label`,Rn,[O(`span`,null,i(e(a)(`memory.scope.label`)),1),O(`select`,{value:t.modelValue,onChange:s[0]||=e=>r(`update:modelValue`,e.target.value)},[O(`option`,zn,i(e(a)(`memory.scope.choose`)),1),(f(!0),E(D,null,A(t.scopes,e=>(f(),E(`option`,{key:e.id,value:e.id},i(o(e)),9,Bn))),128))],40,X)]))}}),[[`__scopeId`,`data-v-013b6fd5`]]),Hn={class:`memory-settings`,"data-tour":`settings-card-memory`,"aria-labelledby":`memory-settings-title`},Un={class:`memory-settings__header`},Wn={id:`memory-settings-title`},Gn={class:`memory-settings__modes`,"data-tour":`settings-memory-modes`},Kn=[`value`,`checked`,`onChange`],qn={class:`memory-settings__note`},Jn={class:`memory-settings__note`},Yn={key:0,role:`alert`},Xn={key:1,class:`memory-settings__actions`},Zn=[`disabled`],Qn=[`disabled`],$n=[`disabled`],er={key:3,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},tr={class:`memory-settings__note`},nr={key:0,role:`alert`},rr=[`disabled`],ir=[`disabled`],ar={key:4,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},or={class:`memory-settings__note`},sr=[`disabled`],cr=[`disabled`],lr={key:5,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},ur=[`disabled`],dr={value:``},fr=[`value`],pr=[`disabled`],mr=[`disabled`],hr=[`disabled`],gr=ct(k({__name:`MemorySettingsPanel`,props:{memoryMode:{}},emits:[`update:memoryMode`],setup(t,{emit:n}){let r=t,a=n,{t:s}=Pe(),c=We(),d=o(``),p=o(!1),h=o(null),_=o(null),y=o(null),S=o(``),C=o(!1),w=o(!1),k=o(!1),ee=o(null),j=o(!1),M=o(``),N=o(null),P=0;l(()=>{P++});let F=o(``),ne=T(()=>c.scopesFor()),re=T(()=>c.hasMoreScopes()),ie=T(()=>c.loadingScopes.all??!1),ae=T(()=>d.value?c.entriesFor(d.value):[]),I=T(()=>d.value?c.proposalsFor(d.value):[]),L=T(()=>d.value?c.operationsFor(d.value):[]),oe=T(()=>d.value?c.operationsCursor(d.value):void 0);m(async()=>{try{await c.loadScopes(),d.value||=ne.value.find(e=>e.level===`global`)?.id??ne.value[0]?.id??``}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}}),u(d,async e=>{if(P++,N.value=null,F.value=``,p.value=!1,h.value=null,j.value=!1,e)try{await Promise.all([c.loadEntries(e),c.loadProposals(e),c.loadOperations(e)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}},{flush:`sync`});function se(){h.value=null,M.value=``,j.value=!1,p.value=!0}function ce(e){h.value=e,M.value=``,j.value=!1,p.value=!0}async function le(e){C.value=!0,M.value=``;try{if(h.value){let t=e.expectedRevision===void 0?h.value:{...h.value,revision:e.expectedRevision};await c.updateEntry(t,{key:e.key,title:e.title,body:e.body})}else await c.createEntry({scopeId:e.scopeId,key:e.key,title:e.title,body:e.body});p.value=!1,h.value=null,j.value=!1,await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(e){if(h.value&&ve(e)===409){await c.loadEntries(h.value.scopeId),h.value=c.entriesFor(h.value.scopeId).find(e=>e.id===h.value?.id)??null,j.value=!0,M.value=``;return}M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{C.value=!1}}function ue(e){_.value=e}async function de(){try{await c.loadMoreScopes()}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.loadFailed`)}}async function fe(){let e=_.value;if(e&&!w.value){w.value=!0;try{await c.deleteEntry(e),_.value=null,await Promise.all([c.loadEntries(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{w.value=!1}}}function pe(){_.value=null}function R(e=d.value){let t=ne.value.find(t=>t.id===e);if(!t)return``;let n=s(`memory.scope.${t.level}`);return t.level===`project`?`${n} · ${t.projectPath??t.id}`:t.level===`workspace`?`${n} · ${t.workspaceId??t.id}`:n}function me(e){y.value=e,S.value=``}async function he(){let e=y.value;if(e&&S.value&&!k.value){k.value=!0;try{await c.promoteEntry(e,S.value),y.value=null,S.value=``,await Promise.all([c.loadEntries(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{k.value=!1}}}async function ge(e,t){if(!ee.value){ee.value=e;try{await c.decideProposal(e,t),await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(e){M.value=e instanceof Error?e.message:s(`memory.settings.saveFailed`)}finally{ee.value=null}}}async function _e(){if(!d.value)return;let e=d.value,t=++P;F.value=``;try{let n=await c.previewClear(e);if(t!==P||d.value!==e)return;N.value={...n,scopeId:e}}catch(e){if(t!==P)return;F.value=e instanceof Error?e.message:s(`memory.settings.clearFailed`)}}function ve(e){return typeof e==`object`&&e&&`status`in e?Number(e.status):void 0}async function ye(){if(!d.value||!N.value||w.value)return;let e=N.value,t=P;if(d.value===e.scopeId){w.value=!0;try{if(await c.clearScope(e.scopeId,e.revision),t!==P)return;N.value=null,await Promise.all([c.loadEntries(d.value),c.loadProposals(d.value),c.loadOperations(d.value)])}catch(n){if(t!==P)return;if(F.value=ve(n)===409?s(`memory.settings.clearConflict`):n instanceof Error?n.message:s(`memory.settings.clearFailed`),ve(n)===409)try{let n=await c.previewClear(e.scopeId);t===P&&(N.value={...n,scopeId:e.scopeId})}catch{t===P&&(N.value=null)}}finally{w.value=!1}}}function be(){j.value=!1,M.value=``}function xe(){j.value=!1,M.value=``}return(t,n)=>(f(),E(`section`,Hn,[O(`header`,Un,[O(`h3`,Wn,i(e(s)(`memory.settings.title`)),1),O(`p`,null,i(e(s)(`memory.settings.intro`)),1)]),O(`fieldset`,Gn,[O(`legend`,null,i(e(s)(`memory.settings.mode`)),1),(f(),E(D,null,A([`manual`,`automatic`,`hybrid`],t=>O(`label`,{key:t},[O(`input`,{type:`radio`,name:`memory-mode`,value:t,checked:r.memoryMode===t,onChange:e=>a(`update:memoryMode`,t)},null,40,Kn),O(`span`,null,i(e(s)(`memory.settings.mode.${t}`)),1),O(`small`,null,i(e(s)(`memory.settings.modeHint.${t}`)),1)])),64)),O(`p`,qn,i(e(s)(`memory.settings.saveNote`)),1)]),n[7]||=O(`div`,{class:`memory-settings__divider`},null,-1),O(`h4`,null,i(e(s)(`memory.settings.manageTitle`)),1),O(`p`,Jn,i(e(s)(`memory.settings.independentNote`)),1),v(Vn,{scopes:ne.value,"model-value":d.value,"onUpdate:modelValue":n[0]||=e=>d.value=e},null,8,[`scopes`,`model-value`]),M.value?(f(),E(`p`,Yn,i(M.value),1)):x(``,!0),d.value?(f(),E(`div`,Xn,[O(`button`,{type:`button`,"data-testid":`memory-add-entry`,disabled:C.value||w.value||k.value,onClick:se},i(e(s)(`memory.settings.add`)),9,Zn),O(`button`,{type:`button`,"data-testid":`memory-clear-preview`,disabled:C.value||w.value||k.value,onClick:_e},i(e(s)(`memory.settings.clear`)),9,Qn)])):x(``,!0),re.value?(f(),E(`button`,{key:2,type:`button`,"data-testid":`memory-load-more-scopes`,disabled:ie.value,onClick:de},i(ie.value?e(s)(`memory.settings.loadingScopes`):e(s)(`memory.settings.loadMoreScopes`)),9,$n)):x(``,!0),N.value?(f(),E(`div`,er,[O(`h4`,null,i(e(s)(`memory.settings.clearConfirmTitle`)),1),O(`p`,null,i(e(s)(`memory.settings.clearConfirm`,{scope:e(s)(`memory.scope.${ne.value.find(e=>e.id===d.value)?.level??`global`}`),entries:N.value.entries,proposals:N.value.proposals})),1),O(`p`,tr,i(e(s)(`memory.settings.clearWarning`)),1),F.value?(f(),E(`p`,nr,i(F.value),1)):x(``,!0),O(`button`,{type:`button`,"data-testid":`memory-clear-confirm`,disabled:w.value,onClick:ye},i(e(s)(`memory.settings.confirmClear`)),9,rr),O(`button`,{type:`button`,"data-testid":`memory-clear-cancel`,disabled:w.value,onClick:n[1]||=e=>{N.value=null,F.value=``}},i(e(s)(`memory.settings.cancel`)),9,ir)])):x(``,!0),_.value?(f(),E(`div`,ar,[O(`h4`,null,i(e(s)(`memory.settings.deleteConfirmTitle`)),1),O(`p`,null,i(e(s)(`memory.settings.deleteConfirm`,{title:_.value.title,scope:R(_.value.scopeId)})),1),O(`p`,or,i(e(s)(`memory.settings.clearWarning`)),1),O(`button`,{type:`button`,"data-testid":`memory-delete-confirm`,disabled:w.value,onClick:fe},i(e(s)(`memory.settings.deleteConfirmAction`)),9,sr),O(`button`,{type:`button`,"data-testid":`memory-delete-cancel`,disabled:w.value,onClick:pe},i(e(s)(`memory.settings.cancel`)),9,cr)])):x(``,!0),y.value?(f(),E(`div`,lr,[O(`h4`,null,i(e(s)(`memory.panel.promoteTo`)),1),O(`label`,null,[O(`span`,null,i(e(s)(`memory.scope.label`)),1),g(O(`select`,{"onUpdate:modelValue":n[2]||=e=>S.value=e,disabled:k.value},[O(`option`,dr,i(e(s)(`memory.scope.choose`)),1),(f(!0),E(D,null,A(ne.value.filter(e=>e.id!==y.value?.scopeId),e=>(f(),E(`option`,{key:e.id,value:e.id},i(R(e.id)),9,fr))),128))],8,ur),[[te,S.value]])]),O(`button`,{type:`button`,"data-testid":`memory-promote-confirm`,disabled:!S.value||k.value,onClick:he},i(e(s)(`memory.entry.promote`)),9,pr),O(`button`,{type:`button`,"data-testid":`memory-promote-cancel`,disabled:k.value,onClick:n[3]||=e=>{y.value=null,S.value=``}},i(e(s)(`memory.settings.cancel`)),9,mr)])):x(``,!0),p.value&&d.value?(f(),b(Tt,{key:6,"scope-id":d.value,entry:h.value,saving:C.value,error:M.value,conflict:j.value,onSave:le,onReload:be,onRebase:xe,onCancel:n[4]||=e=>{p.value=!1,j.value=!1}},null,8,[`scope-id`,`entry`,`saving`,`error`,`conflict`])):(f(),b(Dt,{key:7,entries:ae.value,disabled:C.value||w.value||k.value,onEdit:ce,onDelete:ue,onPromote:me},null,8,[`entries`,`disabled`])),e(c).hasMoreEntries(d.value)?(f(),E(`button`,{key:8,type:`button`,disabled:e(c).loadingEntries[`${d.value}\u0000`],onClick:n[5]||=t=>e(c).loadEntries(d.value,``,!0).catch(e=>M.value=e.message)},i(e(s)(`memory.entry.loadMore`)),9,hr)):x(``,!0),v(Ot,{proposals:I.value,"busy-proposal-id":ee.value,onDecision:ge},null,8,[`proposals`,`busy-proposal-id`]),v(Et,{operations:L.value,"has-more":!!oe.value,onLoadMore:n[6]||=t=>e(c).loadOperations(d.value,!0)},null,8,[`operations`,`has-more`])]))}}),[[`__scopeId`,`data-v-962dbe3d`]]),_r={class:`notification-sounds-grid q-mt-md`},vr={class:`text-subtitle2`},yr={class:`text-kobo-3 text-caption q-mb-sm`},br={class:`row items-center q-gutter-sm`},xr={class:`row items-center q-gutter-sm q-mt-sm`},Sr={class:`text-kobo-2 text-caption volume-label`},Cr={class:`text-kobo-2 text-caption volume-value`},wr=ct(k({__name:`PrNotificationSoundSettings`,props:{modelValue:{},generalSound:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:o}=Pe(),s=T(()=>[{soundKey:`audioPrCiFailedSound`,enabledKey:`audioPrCiFailedEnabled`,volumeKey:`audioPrCiFailedVolume`,title:o(`settings.prCiFailedSound`),description:o(`settings.prCiFailedSoundHint`)},{soundKey:`audioPrCiRecoveredSound`,enabledKey:`audioPrCiRecoveredEnabled`,volumeKey:`audioPrCiRecoveredVolume`,title:o(`settings.prCiRecoveredSound`),description:o(`settings.prCiRecoveredSoundHint`)},{soundKey:`audioPrChangesRequestedSound`,enabledKey:`audioPrChangesRequestedEnabled`,volumeKey:`audioPrChangesRequestedVolume`,title:o(`settings.prChangesRequestedSound`),description:o(`settings.prChangesRequestedSoundHint`)},{soundKey:`audioPrApprovedSound`,enabledKey:`audioPrApprovedEnabled`,volumeKey:`audioPrApprovedVolume`,title:o(`settings.prApprovedSound`),description:o(`settings.prApprovedSoundHint`)},{soundKey:`audioPrMergeConflictSound`,enabledKey:`audioPrMergeConflictEnabled`,volumeKey:`audioPrMergeConflictVolume`,title:o(`settings.prMergeConflictSound`),description:o(`settings.prMergeConflictSoundHint`)},{soundKey:`audioPrReadyToMergeSound`,enabledKey:`audioPrReadyToMergeEnabled`,volumeKey:`audioPrReadyToMergeVolume`,title:o(`settings.prReadyToMergeSound`),description:o(`settings.prReadyToMergeSoundHint`)},{soundKey:`audioPrMergedSound`,enabledKey:`audioPrMergedEnabled`,volumeKey:`audioPrMergedVolume`,title:o(`settings.prMergedSound`),description:o(`settings.prMergedSoundHint`)}]),c=jt(),l=T(()=>[{label:o(`settings.soundGeneral`),value:ve},...Ee.map(e=>({label:o(e.labelKey),value:e.id})),...c.options]);function u(e,t){a(`update:modelValue`,{...r.modelValue,[e]:t})}function d(e){let t=Me(r.modelValue[e.soundKey]);t!==null&&Le(t??r.generalSound,r.modelValue[e.volumeKey])}return(n,r)=>(f(),E(`div`,_r,[(f(!0),E(D,null,A(s.value,n=>(f(),E(`div`,{key:n.soundKey,class:`notification-sound-card q-pa-md rounded-borders`},[O(`div`,vr,i(n.title),1),O(`div`,yr,i(n.description),1),v(B,{"model-value":t.modelValue[n.enabledKey],label:e(o)(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`,"onUpdate:modelValue":e=>u(n.enabledKey,!!e)},null,8,[`model-value`,`label`,`onUpdate:modelValue`]),O(`div`,br,[v(W,{"model-value":t.modelValue[n.soundKey],options:l.value,label:n.title,disable:!t.modelValue[n.enabledKey],dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`,"onUpdate:modelValue":e=>u(n.soundKey,String(e))},null,8,[`model-value`,`options`,`label`,`disable`,`onUpdate:modelValue`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:e(o)(`settings.notificationSoundPreview`),disable:!t.modelValue[n.enabledKey],onClick:e=>d(n)},null,8,[`label`,`disable`,`onClick`])]),O(`div`,xr,[O(`div`,Sr,i(e(o)(`settings.notificationVolume`)),1),v(an,{"model-value":t.modelValue[n.volumeKey],min:0,max:1,step:.05,disable:!t.modelValue[n.enabledKey],"aria-label":e(o)(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`,"onUpdate:modelValue":e=>u(n.volumeKey,Number(e))},null,8,[`model-value`,`disable`,`aria-label`,`onUpdate:modelValue`]),O(`div`,Cr,i(Math.round(t.modelValue[n.volumeKey]*100))+`% `,1)])]))),128))]))}}),[[`__scopeId`,`data-v-dbeaedac`]]),Tr=ct(k({__name:`SettingsNavList`,props:{navItems:{},activeTab:{}},emits:[`select`],setup(e,{emit:t}){let n=t;return(t,a)=>(f(),b(H,{dense:``,class:`settings-nav__list`},{default:_(()=>[(f(!0),E(D,null,A(e.navItems,t=>g((f(),b(G,{key:t.value,clickable:``,"data-tour":`settings-nav-${t.value}`,class:r([`settings-nav__item`,{"settings-nav__item--active":e.activeTab===t.value}]),onClick:e=>n(`select`,t.value)},{default:_(()=>[v(K,{avatar:``,class:`settings-nav__icon`},{default:_(()=>[v(I,{name:t.icon,size:`16px`},null,8,[`name`])]),_:2},1024),v(K,{class:`settings-nav__label`},{default:_(()=>[S(i(t.label),1)]),_:2},1024)]),_:2},1032,[`data-tour`,`class`,`onClick`])),[[ae,!1]])),128))]),_:1}))}}),[[`__scopeId`,`data-v-fac6b946`]]),Er={class:`whip-shortcut-recorder`},Dr={class:`text-caption text-kobo-2 q-mb-xs`},Or={class:`row items-center no-wrap q-gutter-xs`},kr={"data-testid":`whip-shortcut-value`},Ar={key:0,role:`status`,"aria-live":`polite`,class:`q-sr-only`},jr={key:1,role:`alert`,class:`text-negative text-caption q-mt-xs`},Mr=ct(k({__name:`WhipShortcutRecorder`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:s}=Pe(),c=be(),l=o(!1),u=o(``),d=T(()=>l.value?s(`settings.whipShortcutRecording`):Se(r.modelValue,c)),p=T(()=>l.value?s(`settings.whipShortcutRecordingLabel`):s(`settings.whipShortcutButtonLabel`,{shortcut:d.value}));function m(){l.value&&(l.value=!1,window.removeEventListener(`keydown`,h,!0))}function h(e){e.preventDefault(),e.stopPropagation();let t=he(e,c);if(t.status!==`pending`){if(t.status===`reserved`){u.value=s(`settings.whipShortcutReserved`);return}u.value=``,t.status===`accepted`&&a(`update:modelValue`,t.shortcut),m()}}function g(){l.value||(u.value=``,l.value=!0,window.addEventListener(`keydown`,h,!0))}function y(){m(),u.value=``,a(`update:modelValue`,rt)}return w(m),(t,n)=>(f(),E(`div`,Er,[O(`div`,Dr,i(e(s)(`settings.whipShortcut`)),1),O(`div`,Or,[v(L,{"data-testid":`whip-shortcut-recorder`,dense:``,"no-caps":``,outline:``,color:`primary`,"aria-label":p.value,"aria-pressed":l.value,onClick:g},{default:_(()=>[O(`span`,kr,i(d.value),1),v(ft,null,{default:_(()=>[S(i(e(s)(`settings.whipShortcutHint`)),1)]),_:1})]),_:1},8,[`aria-label`,`aria-pressed`]),v(L,{"data-testid":`whip-shortcut-reset`,dense:``,flat:``,round:``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,"aria-label":e(s)(`settings.whipShortcutReset`),onClick:y},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(e(s)(`settings.whipShortcutReset`)),1)]),_:1})]),_:1},8,[`aria-label`])]),l.value?(f(),E(`div`,Ar,i(e(s)(`settings.whipShortcutRecording`)),1)):x(``,!0),u.value?(f(),E(`div`,jr,i(u.value),1)):x(``,!0)]))}}),[[`__scopeId`,`data-v-d8618bd9`]]);function Nr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pr(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Pr(e[n],t[n]))return!1;return!0}return Nr(e)&&Nr(t)?Fr(e,t):!1}function Fr(e,t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.hasOwn(t,r)||!Pr(e[r],t[r]))return!1;return!0}function Ir(e){if(Array.isArray(e))return e.map(Ir);if(e instanceof Date)return new Date(e.getTime());if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e))t[n]=Ir(r);return t}return e}function Lr(e){return Ir(e)}function Rr(e){return e?{disabled:!1,hintKey:null}:{disabled:!0,hintKey:`settings.whipVolumeMasterAudioDisabled`}}var zr={key:0,class:`settings-load-error`},Br={class:`column`},Vr={class:`settings-load-error__title`},Hr={class:`settings-load-error__detail`},Ur={class:`settings-load-error__hint`},Wr={class:`settings-layout`},Gr={key:0,class:`settings-nav`},Kr={class:`settings-nav__title`},qr={class:`settings-nav`},Jr={class:`settings-nav__title`},Yr={class:`settings-content`},Xr={class:`settings-content__header`},Zr={class:`settings-content__title`},Qr={class:`text-caption text-kobo-3 q-mb-md`},$r={class:`settings-panels`},ei={class:`settings-global-wrap`},ti={key:1,"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ni={class:`text-subtitle2 q-mb-sm`},ri={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ii={class:`text-subtitle2 q-mb-sm`},ai={class:`text-caption text-kobo-3 q-mt-xs`},oi={key:3,"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},si={class:`text-subtitle2 q-mb-sm`},ci={class:`text-caption text-kobo-3 q-mt-xs`},li={key:4,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ui={class:`text-subtitle2 q-mb-sm`},di={class:`text-caption text-kobo-3 q-mb-xs q-mt-sm`},fi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},pi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},mi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},hi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},gi={key:5,"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},_i={class:`text-subtitle2 q-mb-sm`},vi={class:`text-subtitle2 q-mb-sm q-mt-md`},yi={class:`text-subtitle2 q-mb-sm q-mt-md`},bi={class:`text-caption text-kobo-3 q-mb-sm`},xi={class:`text-subtitle2 q-mb-sm q-mt-md`},Si={key:6,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ci={class:`text-subtitle2 q-mb-sm`},wi={class:`row items-center q-gutter-lg`},Ti={key:7,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ei={class:`text-subtitle2 q-mb-xs`},Di={class:`text-kobo-3 text-caption q-mb-md`},Oi={key:0,class:`column q-gutter-sm q-mt-md`},ki={class:`row items-center q-gutter-sm`},Ai={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},ji={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Mi={key:0,class:`text-kobo-3 text-caption`},Ni={key:8,"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pi={class:`text-subtitle2 q-mb-sm`},Fi={class:`text-kobo-3 text-caption q-mb-md`},Ii={class:`notification-sounds-grid q-mt-md`},Li={class:`notification-sound-card q-pa-md rounded-borders`},Ri={class:`text-subtitle2`},zi={class:`text-kobo-3 text-caption q-mb-sm`},Bi={class:`column q-gutter-xs q-mb-sm`},Vi={class:`row items-center q-gutter-sm q-mb-sm`},Hi={class:`row items-center q-gutter-sm`},Ui={class:`row items-center q-gutter-sm q-mt-sm`},Wi={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},Gi={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Ki={class:`notification-sound-card q-pa-md rounded-borders`},qi={class:`text-subtitle2`},Ji={class:`text-kobo-3 text-caption q-mb-sm`},Yi={class:`row items-center q-gutter-sm`},Xi={class:`row items-center q-gutter-sm q-mt-sm`},Zi={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},Qi={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},$i={class:`notification-sound-card q-pa-md rounded-borders`},ea={class:`text-subtitle2`},ta={class:`text-kobo-3 text-caption q-mb-sm`},na={class:`row items-center q-gutter-sm`},ra={class:`row items-center q-gutter-sm q-mt-sm`},ia={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},aa={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},oa={class:`notification-sound-card q-pa-md rounded-borders`},sa={class:`text-subtitle2`},ca={class:`text-kobo-3 text-caption q-mb-sm`},la={class:`row items-center q-gutter-sm`},ua={class:`row items-center q-gutter-sm q-mt-sm`},da={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},fa={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},pa={key:9,"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ma={class:`row items-center q-mb-sm`},ha={class:`text-subtitle2`},ga={class:`column q-gutter-xs`},_a={class:`row items-center q-gutter-sm`},va={class:`row items-center q-gutter-sm`},ya={class:`q-pa-sm text-caption text-kobo-2`},ba={class:`q-mb-sm`},xa={class:`q-mb-sm`},Sa={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-kobo-2`},Ca={class:`q-mb-xs text-kobo-2`},wa={class:`q-mb-sm`},Ta={class:`q-mb-xs text-kobo-2`},Ea={key:10,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Da={class:`text-subtitle2 q-mb-sm`},Oa={class:`row q-col-gutter-sm`},ka={class:`col-12 col-sm-6`},Aa={class:`col-12 col-sm-6`},ja={key:11,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ma={class:`text-subtitle2 q-mb-sm`},Na={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},Pa={class:`text-caption text-kobo-2 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},Fa={class:`column q-gutter-sm`},Ia={class:`row items-center q-gutter-sm`},La={class:`text-body2 text-kobo-1`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},Ra={class:`text-caption text-kobo-3`},za={key:0,class:`q-mt-sm`},Ba={class:`row items-center q-mt-xs`},Va={class:`text-caption text-kobo-3`},Ha={class:`text-caption text-kobo-2`},Ua={key:1,class:`text-caption text-kobo-3 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},Wa={key:12,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ga={class:`text-subtitle2 q-mb-sm`},Ka={class:`q-pa-sm column q-gutter-sm`},qa={class:`row items-center q-gutter-sm`},Ja={class:`text-caption text-kobo-2`},Ya={class:`text-caption text-kobo-2`,style:{"min-width":`40px`,"text-align":`right`}},Xa={class:`text-caption text-kobo-3`},Za={class:`text-caption text-kobo-3`},Qa={class:`text-caption text-kobo-3`},$a={class:`text-caption text-kobo-3`},eo={class:`q-pa-sm column q-gutter-sm`},to={key:13,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-tour":`settings-card-git`},no={class:`row items-center q-mb-sm q-mt-md`},ro={class:`text-subtitle2`},io={class:`text-caption text-kobo-3 q-mb-sm`},ao={key:14,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},oo={class:`text-subtitle2 q-mb-sm`},so={class:`text-caption text-kobo-3 q-mb-sm`},co={class:`row items-center no-wrap`},lo={key:1,class:`text-caption text-kobo-3 q-mb-sm`},uo={class:`row items-center q-gutter-sm`},fo={key:15,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},po={class:`row items-center q-mb-sm`},mo={class:`text-subtitle2`},ho={class:`text-caption text-kobo-3 q-mb-sm`},go={class:`q-mb-sm`},_o={class:`row items-center q-mb-sm q-mt-md`},vo={class:`text-subtitle2`},yo={class:`text-caption text-kobo-3 q-mb-sm`},bo={class:`row items-center q-mb-sm q-mt-md`},xo={class:`text-subtitle2`},So={class:`text-caption text-kobo-3 q-mb-sm`},Co={class:`row items-center q-mb-sm q-mt-md`},wo={class:`text-subtitle2`},To={class:`text-caption text-kobo-3 q-mb-sm`},Eo={key:16,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Do={class:`text-subtitle2 q-mb-sm`},Oo={class:`text-caption text-kobo-3 q-mb-sm`},ko={key:17,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ao={class:`text-subtitle2 q-mb-sm`},jo={class:`text-caption text-kobo-3 q-mb-sm`},Mo={key:18,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},No={class:`text-subtitle2 q-mb-sm`},Po={class:`text-caption text-kobo-3 q-mb-sm`},Fo={key:19,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Io={class:`text-subtitle2 q-mb-sm`},Lo={class:`text-caption text-kobo-3 q-mb-sm`},Ro={class:`q-mb-sm`},zo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Bo={key:21,"data-tour":`settings-card-sentry`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Vo={class:`text-subtitle2 q-mb-sm`},Ho={class:`text-caption text-kobo-3 q-mb-sm`},Uo={class:`q-mb-sm`},Wo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Go={key:23,"data-tour":`settings-card-forge`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ko={class:`text-subtitle2 q-mb-sm`},qo={class:`text-caption text-kobo-3 q-mb-md`},Jo={class:`text-subtitle2 q-mb-sm`},Yo={class:`text-caption text-kobo-3 q-mb-sm`},Xo={class:`q-mb-sm`},Zo={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Qo={class:`q-mb-sm`},$o={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},es={class:`row items-center q-mb-sm`},ts={class:`text-subtitle2`},ns={class:`text-caption text-kobo-3 q-mb-xs`},rs={class:`text-subtitle2 q-mb-sm`},is={class:`text-caption text-kobo-3 q-mb-sm`},as={class:`q-mb-sm`},os={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},ss={class:`q-mb-sm`},cs={class:`row items-center q-mb-xs`},ls={class:`field-label-sub text-caption text-kobo-3 col`},us=[`src`,`alt`],ds={key:1,class:`text-caption text-kobo-3 q-py-sm`},fs={key:0,class:`text-caption text-orange-5 q-mb-xs`},ps={class:`text-subtitle2 q-mb-sm`},ms={class:`row items-center q-mb-sm`},hs={class:`text-subtitle2`},gs={class:`text-caption text-kobo-3 q-mb-xs`},_s={key:27,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vs={class:`text-subtitle2 q-mb-sm`},ys={class:`text-caption text-kobo-3 q-mb-sm`},bs={key:28,"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},xs={class:`text-subtitle2 q-mb-sm`},Ss={class:`text-caption text-kobo-3 q-mb-sm`},Cs={key:29,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ws={class:`text-subtitle2 q-mb-sm`},Ts={class:`text-caption text-kobo-3 q-mb-sm`},Es={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},Ds={key:30,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Os={class:`text-subtitle2 q-mb-sm`},ks={class:`text-caption text-kobo-3 q-mb-sm`},As={key:31,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},js={class:`text-subtitle2 q-mb-sm`},Ms={class:`text-caption text-kobo-3 q-mb-sm`},Ns={key:32,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ps={class:`text-subtitle2 q-mb-sm`},Fs={class:`text-caption text-kobo-3 q-mb-sm`},Is={key:33,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ls={class:`text-subtitle2 q-mb-sm`},Rs={class:`text-caption text-kobo-3 q-mb-sm`},zs={key:34,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bs={class:`row items-center justify-between q-mb-sm`},Vs={class:`text-subtitle2`},Hs={class:`text-caption text-kobo-3 q-mb-xs`},Us={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},Ws={key:35,"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Gs={class:`text-subtitle2 q-mb-sm`},Ks={class:`text-caption text-kobo-3 q-mb-sm`},qs={class:`text-caption text-kobo-3 q-mt-xs`},Js={"data-tour":`settings-card-worktrees-purge`},Ys={class:`text-caption text-kobo-3 q-mt-xs`},Xs={"data-tour":`settings-card-worktrees-retention`},Zs={class:`text-subtitle2 q-mb-sm`},Qs={class:`text-caption text-negative q-mb-sm`},$s={class:`text-caption text-kobo-3 q-mb-sm`},ec={key:0,class:`text-caption text-kobo-3 q-mt-sm`},tc={class:`q-pa-sm text-caption text-kobo-2`,style:{"line-height":`1.55`}},nc={class:`text-weight-medium text-kobo-1 q-mb-xs`},rc={class:`q-mb-xs`},ic={class:`purge-docs-code`},ac={class:`text-kobo-3 q-mb-md`},oc={class:`text-weight-medium text-kobo-1 q-mb-xs`},sc={class:`q-mb-xs`},cc={class:`q-pl-md q-my-xs`},lc={class:`purge-docs-code`},uc={class:`text-kobo-3 q-mb-md`},dc={class:`text-weight-medium text-kobo-1 q-mb-xs`},fc={class:`q-mb-xs`},pc={class:`q-mb-xs text-kobo-3`},mc={class:`purge-docs-code`},hc={class:`q-mb-xs text-kobo-3`},gc={class:`purge-docs-code`},_c={class:`text-kobo-3`},vc={key:36,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},yc={class:`text-subtitle2 q-mb-sm`},bc={class:`text-caption text-kobo-3 q-mb-sm`},xc={key:1,class:`q-mt-md`},Sc={class:`text-caption text-kobo-3 q-mt-xs`},Cc={class:`q-mt-md`},wc={class:`text-caption text-kobo-3 q-mb-xs`},Tc={class:`q-mt-md`},Ec={class:`text-caption text-kobo-3 q-mb-xs`},Dc={key:0,class:`text-caption text-kobo-3`},Oc={key:0,class:`q-mt-md`},kc={class:`text-caption text-kobo-3 q-mb-xs`},Ac=[`src`,`alt`],jc={key:37,"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Mc={class:`text-subtitle2 q-mb-sm`},Nc={class:`text-caption text-kobo-3 q-mb-sm`},Pc={class:`row q-gutter-sm`},Fc={key:0,class:`q-pa-none`},Ic={class:`row q-gutter-md`,style:{"min-height":`500px`}},Lc={class:`project-list-col`},Rc={class:`settings-card rounded-borders`,style:{height:`100%`}},zc={class:`q-pa-sm`},Bc={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-kobo-3`,style:{"letter-spacing":`0.05em`}},Vc={key:0,class:`q-pa-md text-center text-caption text-kobo-3`},Hc={class:`q-pa-sm`},Uc={class:`project-form-col`},Wc={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Gc={class:`row items-center q-mb-md`},Kc={class:`text-subtitle1 text-weight-medium text-kobo-1`},qc={key:0,class:`q-mb-md`},Jc={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Yc={class:`text-caption text-kobo-3 q-mt-xs`},Xc={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zc={class:`text-subtitle2 q-mb-md`},Qc={class:`q-mb-md`},$c={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},el={class:`q-mb-md`},tl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},nl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},rl={class:`row items-center q-gutter-xs`},il={class:`text-caption text-kobo-3 q-mt-xs`},al={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ol={class:`text-subtitle2 q-mb-md`},sl={class:`q-mb-md`},cl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},ll={class:`q-mb-md`},ul={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},dl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},fl={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-test":`project-git-settings`},pl={class:`text-subtitle2 q-mb-md`},ml={class:`q-mb-md`},hl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},gl={class:`text-caption text-kobo-3 q-mb-xs`},_l={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vl={class:`text-subtitle2 q-mb-md`},yl={class:`q-mb-md`},bl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},xl={class:`text-caption text-kobo-3 q-mb-xs`},Sl={class:`q-mb-md`},Cl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},wl={class:`text-caption text-kobo-3 q-mb-xs`},Tl={class:`q-mb-md`},El={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Dl={class:`text-caption text-kobo-3 q-mb-xs`},Ol={key:0,class:`q-mb-md`},kl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Al={class:`text-caption text-kobo-3 q-mb-xs`},jl={key:1,class:`q-mb-md`},Ml={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Nl={class:`text-caption text-kobo-3 q-mb-xs`},Pl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Fl={class:`text-caption text-kobo-3 q-mt-xs`},Il={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ll={class:`text-subtitle2 q-mb-md`},Rl={class:`q-mb-md`},zl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Bl={class:`text-caption text-kobo-3 q-mb-xs`},Vl={class:`text-caption text-kobo-3 q-mt-xs`},Hl={class:`q-mb-md`},Ul={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Wl={class:`text-caption text-kobo-3 q-mb-xs`},Gl={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-kobo-3`},Kl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},ql={class:`text-caption text-kobo-3 q-mb-xs`},Jl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Yl={class:`text-caption text-kobo-3 q-mb-xs`},Xl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Zl={class:`text-caption text-kobo-3 q-mb-xs`},Ql={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},$l={class:`text-caption text-kobo-3 q-mb-xs`},eu={class:`row items-center justify-between q-mb-xs`},tu={class:`field-label text-body2 text-weight-medium text-kobo-3`},nu={class:`text-caption text-kobo-3 q-mb-xs`},ru={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},iu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},au={class:`text-subtitle2 q-mb-md`},ou={class:`q-mb-md`},su={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},cu={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},lu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},uu={class:`text-subtitle2 q-mb-xs`},du={class:`text-caption text-kobo-3 q-mb-sm`},fu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pu={class:`text-subtitle2 q-mb-xs`},mu={class:`text-caption text-kobo-3 q-mb-sm`},hu={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},gu={class:`text-body2 text-kobo-3`},_u={key:1,class:`q-pa-none`},vu={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},yu={class:`row items-center justify-between q-mb-md`},bu={class:`text-subtitle1 text-weight-medium text-kobo-1`},xu={class:`row q-gutter-sm items-center`},Su={key:0,class:`text-kobo-3 q-py-lg text-center`},Cu={key:1,class:`column q-gutter-sm`},wu={class:`row items-start justify-between no-wrap`},Tu={class:`col`},Eu={class:`text-body1 text-weight-medium`,style:{"font-family":`var(--kobo-font-mono)`}},Du={class:`text-caption text-kobo-2 q-mt-xs`},Ou={class:`row no-wrap q-gutter-xs`},ku={class:`text-caption text-kobo-3 q-mt-lg`,style:{"font-family":`var(--kobo-font-mono)`}},Au={key:2,class:`q-pa-none`},ju={"data-tour":`settings-card-workspaceTemplates`,class:`settings-card rounded-borders q-pa-lg`},Mu={class:`text-subtitle1 text-weight-medium text-kobo-1 q-mb-xs`},Nu={class:`text-caption text-kobo-3 q-mb-md`},Pu={key:0,class:`text-caption text-kobo-3`},Fu={class:`row no-wrap q-gutter-xs`},Iu={class:`mono-guide q-ma-none`},Lu={class:`settings-savebar__label`},Ru={class:`text-subtitle1`},zu={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`var(--kobo-font-mono)`,columns:`2`,"column-gap":`24px`}},Bu={key:0,class:`text-negative text-caption`},Vu=2500,Hu=ct(k({__name:`SettingsPage`,setup(t){let n=re(),s=qe(),c=tt(),d=Rt(),{t:p,locale:y}=Pe(),{scheduleAutoRun:w}=lt(),{isMobile:k}=ht(),j=ut(),N=o(`general`),F=o(!1);function te(e){N.value=e,k.value&&(F.value=!1)}function ie(){F.value=!1,j.toggleLeft()}let ae=T(()=>[{value:`general`,icon:`tune`,label:p(`settings.nav.general`)},{value:`agents`,icon:`smart_toy`,label:p(`settings.nav.agents`)},{value:`skills`,icon:`extension`,label:p(`settings.nav.skills`)},{value:`git`,icon:`source`,label:p(`settings.nav.git`)},{value:`prompts`,icon:`text_snippet`,label:p(`settings.nav.prompts`)},{value:`scripts`,icon:`terminal`,label:p(`settings.nav.scripts`)},{value:`notion`,icon:`integration_instructions`,label:p(`settings.nav.notion`)},{value:`sentry`,icon:`bug_report`,label:p(`settings.nav.sentry`)},{value:`forge`,icon:`account_tree`,label:p(`settings.nav.forge`)},{value:`voice`,icon:`mic`,label:p(`settings.nav.voice`)},{value:`notifications`,icon:`notifications`,label:p(`settings.nav.notifications`)},{value:`worktrees`,icon:`account_tree`,label:p(`settings.nav.worktrees`)},{value:`memory`,icon:`psychology`,label:p(`settings.nav.memory`)},{value:`projects`,icon:`folder`,label:p(`settings.projects`)},{value:`templates`,icon:`description`,label:p(`settings.nav.promptTemplates`)},{value:`workspaceTemplates`,icon:`bookmarks`,label:p(`settings.nav.workspaceTemplates`)},{value:`export`,icon:`import_export`,label:p(`settings.nav.export`)}]),oe=Ke();u(()=>oe.query.tab,e=>{typeof e==`string`&&ae.value.some(t=>t.value===e)&&te(e)},{immediate:!0});let se=T(()=>ae.value.find(e=>e.value===N.value)?.label??``),ce=T(()=>[`general`,`agents`,`skills`,`prompts`,`git`,`scripts`,`notion`,`sentry`,`forge`,`voice`,`notifications`,`worktrees`,`memory`,`export`].includes(N.value)),le=o(`auto`),ue=o(`auto`),de=o(``),R=o(``),he=o(``),be=o(``),Se=o(``),Te=o(``),Me=o(``),Fe=o(``),Re=o(!1),Ve=o(5),We=o(0),Je=o(!0),Ye=o(0),Qe=o(0),$e=o(`hybrid`),V=o({enabled:!1,token:``,behindProxy:!1,urls:[]}),nt=o(!1),it=o(``);function at(e){try{let t=new URL(e),n=window.location.port?`:${window.location.port}`:``;return`${window.location.protocol}//${t.hostname}${n}`}catch{return e}}let ot=T(()=>V.value.urls.map(at));async function ct(){try{let e=await ye(`/api/settings/network`);if(!e.ok)throw await _e(e);V.value=await e.json(),await dt()}catch{n.notify({type:`negative`,message:p(`settings.network.loadFailed`),position:`top`})}}async function dt(){let e=ot.value[0];if(!e||!V.value.token){it.value=``;return}let t=`${e}/?token=${encodeURIComponent(V.value.token)}`;try{let{default:e}=await je(async()=>{let{default:e}=await import(`./browser-Cl0d1gbu.js`).then(e=>Yt(e.default,1));return{default:e}},[]);it.value=await e.toDataURL(t,{margin:1,width:200})}catch{it.value=``}}async function Tt(e){try{let t=await ye(`/api/settings/network`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw await _e(t);let n=await t.json();V.value={enabled:n.enabled,token:n.token,behindProxy:n.behindProxy,urls:n.urls},n.restartRequired&&(nt.value=!0),await dt()}catch{n.notify({type:`negative`,message:p(`settings.network.updateFailed`),position:`top`}),await ct()}}function Et(e){Tt({enabled:e})}function Dt(e){Tt({behindProxy:e})}function Ot(){n.dialog({title:p(`settings.network.title`),message:p(`settings.network.regenerateConfirm`),cancel:!0,persistent:!0}).onOk(()=>{Tt({regenerate:!0})})}function Bt(){Tf(V.value.token)}let Vt=o(!0),Ht=o(typeof Notification>`u`?`unsupported`:Notification.permission),Ut=o(!0),Wt=o(!1),Gt=o(!1),Kt=o(!1),qt=o(pe),Jt=o(ve),Xt=o(ve),Zt=o(ve),Qt=o(1),$t=o(1),en=o(1),tn=o(1),nn=o({...Oe}),rn=o(``),on=o(``),cn=o(``),ln=o(``),un=o(!1),dn=o(!0),fn=o(!1),pn=o(rt),mn=o(1),hn=T(()=>Rr(Ut.value)),_n=T(()=>{switch(Ht.value){case`granted`:return{color:`positive`,label:p(`settings.browserNotificationGranted`)};case`denied`:return{color:`negative`,label:p(`settings.browserNotificationDenied`)};case`default`:return{color:`warning`,label:p(`settings.browserNotificationAsk`)};default:return{color:`kobo-3`,label:p(`settings.browserNotificationUnsupported`)}}});async function vn(){if(typeof Notification>`u`){n.notify({type:`negative`,message:p(`settings.browserNotificationUnsupported`),position:`top`});return}if(Notification.permission==="default"?Ht.value=await Notification.requestPermission():Ht.value=Notification.permission,Ht.value!==`granted`){n.notify({type:`warning`,message:p(`settings.browserNotificationPermissionNeeded`),position:`top`});return}new Notification(p(`settings.browserNotificationTestTitle`),{body:p(`settings.browserNotificationTestBody`),icon:`/favicon.ico`})}let yn=o(null),J=o({});async function bn(e){yn.value=e;try{let t=await ye(`/api/${e}/test`,{method:`POST`}),n=await t.json();J.value[e]=t.ok?n:{ok:!1,durationMs:0,detail:n.error??`HTTP ${t.status}`}}catch(t){J.value[e]={ok:!1,durationMs:0,detail:t instanceof Error?t.message:String(t)}}finally{yn.value=null}}let xn=o([]),Cn=o(!1),wn=o(``),Tn=T(()=>xn.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function En(e=!1){if(!Cn.value&&!(!e&&xn.value.length>0)){Cn.value=!0,wn.value=``;try{let e=await ye(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);xn.value=Array.isArray(t.users)?t.users:[]}catch(e){wn.value=e instanceof Error?e.message:String(e),xn.value=[]}finally{Cn.value=!1}}}let Dn=o(``),On=o(``),Y=o(null),kn=o(`bypass`),An=o(`bypass`),jn=o(``),Mn=o(``),Nn=o(``),Pn=o(``),Fn=o(!0),In=o(!0),Rn=o([]),X=o([]),zn=o(``),Bn=o(``),Vn=o(``),Hn=o(`no-tasks`),Un=o(!1),Wn=o(``),Gn=o(``),Kn=o(``),qn=o(``),Jn=o(``),Yn=o(``),Xn=o(!1);function Zn(e){Q.value.path=e}let Qn=T(()=>[{label:p(`settings.cleanupScriptMode.inherit`),value:``},{label:p(`settings.cleanupScriptMode.idle`),value:`idle`},{label:p(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),$n=o(we),er=o(null),tr=o(!0);function nr(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function rr(){let e=nr(zn.value);e&&!X.value.includes(e)&&(X.value.push(e),zn.value=``)}function ir(e){X.value.splice(e,1)}function ar(e,t){let n=nr(t);if(!n)return;let r=X.value.indexOf(n);(r===-1||r===e)&&(X.value[e]=n)}function or(e,t){let n=e+t;if(n<0||n>=X.value.length)return;let r=X.value;[r[e],r[n]]=[r[n],r[e]]}let sr=o(!1),cr=o(`standard`),lr=T(()=>{switch(cr.value){case`standard`:return`settings.skillSuite.standardHint`;case`gstack`:return`settings.skillSuite.gstackHint`;case`ecc`:return`settings.skillSuite.eccHint`;case`superpowers+gstack`:return`settings.skillSuite.superpowersGstackHint`;case`superpowers+gstack+ecc`:return`settings.skillSuite.allThreeHint`;case`custom`:return`settings.skillSuite.customHint`;default:return`settings.skillSuite.superpowersHint`}}),ur=o(``),dr=o(``),fr=o(``),pr=o(``),mr=o(``),hr=o(null),_r=T(()=>[{value:`custom`,label:p(`settings.skillSuite.agnostic`)},{value:`superpowers`,label:p(`settings.skillSuite.superpowers`)},{value:`gstack`,label:p(`settings.skillSuite.gstack`)},{value:`ecc`,label:p(`settings.skillSuite.ecc`)},{value:`superpowers+gstack`,label:p(`settings.skillSuite.superpowersGstack`)},{value:`superpowers+gstack+ecc`,label:p(`settings.skillSuite.allThree`)}]);async function vr(e,t){hr.value=e;try{let r=await ye(`/api/settings/skill-suite-prompts/${t}`);if(!r.ok)throw Error(await r.text());let i=await r.json(),a={reviewTemplate:ur,autoLoopReviewGate:dr,autoLoopGroomingIntro:fr,qaPromptTemplate:pr,brainstormingInstruction:mr};a[e].value=i[e],n.notify({type:`positive`,message:p(`settings.skillSuite.imported`),position:`top`})}catch(e){n.notify({type:`negative`,message:`${p(`settings.skillSuite.importFailed`)}: ${String(e)}`,position:`top`})}finally{hr.value=null}}let yr=o(!1),br=o(`alt`),xr=o(`auto`),Sr=o(null),Cr=o(``),Er=o(``),Dr=o(0),Or=o(``),kr=o(!1),Ar=o(!0),jr=o(null),Nr=o(!1);function Pr(){n.dialog({title:p(`settings.skillSuite.reloadDefaults`),message:p(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ur.value=vt,dr.value=bt,fr.value=gt,pr.value=_t,mr.value=St})}function Ir(e){let t=e===`global`?Jn.value:Q.value.changeSourceBranchScript,r=()=>{e===`global`?Jn.value=Yn.value:Q.value.changeSourceBranchScript=Yn.value};if(!t.trim()||t===Yn.value){r();return}n.dialog({title:p(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:p(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function Hu(e){return!e||e===`tiny`||e===`base`?.1:.2}let Uu=[e=>e.trim().length>0||p(`settings.worktreesPathRequired`)],Wu=o(!1),Gu=o(Ce()),Ku=o({notion:{configured:!1},sentry:{configured:!1}}),qu=o({notion:{command:``,args:``,environment:``},sentry:{command:``,args:``,environment:``}}),Ju=T(()=>Object.values(qu.value).some(e=>e.command!==``||e.args!==``||e.environment!==``)),Yu=o(-1),Z=o(!1),Q=o({workflowPolicy:{},path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),Xu=[`workflowPolicy`,`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`ciFixPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`sessionEndedScript`,`prMergedScript`,`autoLoopDisabledScript`,`devServer`,`e2e`,`finalization`],Zu=o(null),Qu=o(null),$u=T(()=>s.projects.map(e=>({value:e.path,label:Af(e)||e.path})));function ed(e){let t=s.projects.find(t=>t.path===e);t&&(Q.value.workflowPolicy={...t.workflowPolicy},Q.value.defaultModel=t.defaultModel??``,Q.value.forge=t.forge??`auto`,Q.value.prPromptTemplate=t.prPromptTemplate??``,Q.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Q.value.ciFixPromptTemplate=t.ciFixPromptTemplate??``,Q.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Q.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Q.value.gitConventions=t.gitConventions??``,Q.value.setupScript=t.setupScript??``,Q.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Q.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Q.value.finalization={prompt:t.finalization?.prompt??``})}function td(){let e={workflowPolicy:{},defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return Xu.every(t=>JSON.stringify(Q.value[t])===JSON.stringify(e[t]))}function nd(e){if(e===null){Zu.value=null,Qu.value=null;return}if(Qu.value===null&&td()){ed(e),Zu.value=e,Qu.value=e;return}let t=s.projects.find(t=>t.path===e),r=t&&Af(t)||e;n.dialog({title:p(`settings.copyFromConfirmTitle`),message:p(`settings.copyFromConfirm`,{project:r}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{ed(e),Zu.value=e,Qu.value=e}).onCancel(()=>{Zu.value=Qu.value})}let rd=o([]),id=o([]);async function ad(){try{let e=await ye(`/api/skills`);e.ok&&(rd.value=await e.json())}catch{}}function od(e,t){t(()=>{let t=e.trim().toLowerCase();id.value=t?rd.value.filter(e=>e.toLowerCase().includes(t)):rd.value.slice()})}let sd=o([]),cd=o(!1),ld=o(!1),ud=o(!1),dd=o(!1),fd=o(null),pd=o(``),md=o(``),hd=o(``),gd=o(``),_d=o(!1),vd=o(!1),yd=T(()=>[...c.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),bd=[`{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 xd(){fd.value=null,pd.value=``,md.value=``,hd.value=``,gd.value=``,dd.value=!0}function Sd(e){fd.value=e.slug,pd.value=e.slug,md.value=e.description,hd.value=e.content,gd.value=``,dd.value=!0}async function Cd(){gd.value=``;let e=pd.value.trim(),t=md.value.trim();if(fd.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){gd.value=p(`templates.slugInvalid`);return}if(!t){gd.value=p(`templates.descriptionRequired`);return}if(!hd.value.trim()){gd.value=p(`templates.contentRequired`);return}_d.value=!0;try{fd.value===null?await c.createTemplate({slug:e,description:t,content:hd.value}):await c.updateTemplate(fd.value,{description:t,content:hd.value}),dd.value=!1}catch(e){gd.value=e instanceof Error?e.message:p(`templates.createFailed`)}finally{_d.value=!1}}function wd(){n.dialog({title:p(`templates.reloadDefaults`),message:p(`templates.reloadDefaultsConfirmMessage`),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.reloadDefaults`),color:`primary`}}).onOk(async()=>{vd.value=!0;try{let e=await c.reloadDefaults();n.notify({type:`positive`,message:p(`templates.reloadDefaultsSuccess`,{added:e.added.length,kept:e.kept.length}),position:`top`,timeout:4e3})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.reloadDefaultsFailed`),position:`top`})}finally{vd.value=!1}})}async function Td(e){n.dialog({title:p(`templates.deleteTemplate`),message:`${p(`templates.deleteConfirm`,{slug:e.slug})}\n\n${p(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await c.deleteTemplate(e.slug)}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.deleteFailed`),position:`top`})}})}function Ed(e){let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.toLocaleDateString()}function Dd(e,t){n.dialog({title:p(`workspaceTemplates.renameTitle`),dark:!0,prompt:{model:t,type:`text`,outlined:!0,dense:!0,isValid:e=>e.trim().length>0},cancel:!0,persistent:!0}).onOk(async t=>{try{await d.updateTemplate(e,{name:t})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`settings.saveError`),position:`top`})}})}function Od(e,t){n.dialog({title:p(`workspaceTemplates.title`),message:p(`workspaceTemplates.deleteConfirm`,{name:t}),dark:!0,cancel:!0,persistent:!0}).onOk(async()=>{try{await d.deleteTemplate(e),n.notify({type:`positive`,message:p(`workspaceTemplates.deleted`,{name:t}),position:`top`})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`settings.saveError`),position:`top`})}})}function kd(e){n.dialog({title:p(`templates.resetConfirmTitle`),message:p(`templates.resetConfirmMessage`,{slug:e.slug}),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`templates.resetToDefault`),color:`primary`}}).onOk(async()=>{try{await c.resetToDefault(e.slug),n.notify({type:`positive`,message:p(`templates.resetSuccess`,{slug:e.slug}),position:`top`})}catch(e){n.notify({type:`negative`,message:e instanceof Error?e.message:p(`templates.resetFailed`),position:`top`})}})}let Ad=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function jd(e){Ne(e).catch(e=>{console.error(`[i18n] locale load failed:`,e),n.notify({type:`negative`,message:p(`settings.localeLoadFailed`),position:`top`})}),localStorage.setItem(`kobo:locale`,e)}let Md=T(()=>[...xt.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),Nd=T(()=>[...yt.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),Pd=T(()=>[{label:p(`settings.useGlobal`),value:``},...Md.value]),Fd=T(()=>[{label:p(`settings.forge.auto`),value:`auto`},{label:p(`settings.forge.github`),value:`github`},{label:p(`settings.forge.gitlab`),value:`gitlab`},{label:p(`settings.forge.bitbucketCommunity`),value:`bitbucket-community`},{label:p(`settings.forge.none`),value:`none`}]),Id=T(()=>Ct[`claude-code`].map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),Ld=T(()=>Ct.codex.map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),Rd=T(()=>[{name:`{{pr_number}}`,description:p(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:p(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:p(`settings.var.branchName`)},{name:`{{source_branch}}`,description:p(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:p(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:p(`settings.var.projectName`)},{name:`{{notion_url}}`,description:p(`settings.var.notionUrl`)},{name:`{{commits}}`,description:p(`settings.var.commits`)},{name:`{{diff_stats}}`,description:p(`settings.var.diffStats`)},{name:`{{tasks}}`,description:p(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:p(`settings.var.acceptanceCriteria`)}]),zd=T(()=>[{label:p(`settings.mcpAutoSelect`),value:``},...s.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Bd=jt(),Vd=T(()=>[...Ee.map(e=>({label:p(e.labelKey),value:e.id})),...Bd.options]),Hd=T(()=>[{label:p(`settings.soundGeneral`),value:ve},...Vd.value]),Ud=T(()=>[{label:p(`voice.noneModel`),value:null}].concat(s.voiceModels.map(e=>({label:e.installed?`${e.name}`:`${e.name} (${p(`voice.notInstalled`)})`,value:e.name})))),Wd=[{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 Gd(){Le(qt.value,Qt.value)}function Kd(){Le(Jt.value,$t.value)}function qd(){Le(Xt.value,en.value)}function Jd(){Le(Zt.value,tn.value)}let $=T(()=>Yu.value<0||Yu.value>=s.projects.length?null:s.projects[Yu.value]??null),Yd=o($d()),Xd=o({});function Zd(){return{workflowPolicy:Gu.value,claudeModel:le.value,codexModel:ue.value,prPrompt:de.value,reviewPrompt:R.value,ciFixPrompt:he.value,finalizationPrompt:be.value,gitConventions:Se.value,editorCommand:Te.value,fileManagerCommand:Me.value,terminalCommand:Fe.value,autoPurgeOnPrMerged:Re.value,autoLoopMaxRetries:Ve.value,awaitingUserReminderMinutes:We.value,activityDigestEnabled:Je.value,wsEventsRetentionDays:Ye.value,wsEventsKeepPerWorkspace:Qe.value,browserNotifications:Vt.value,audioNotifications:Ut.value,audioQuestionNotifications:Wt.value,audioWorkspaceCreatedNotifications:Gt.value,audioAgentErrorNotifications:Kt.value,audioNotificationSound:qt.value,audioQuestionSound:Jt.value,audioWorkspaceCreatedSound:Xt.value,audioAgentErrorSound:Zt.value,audioNotificationVolume:Qt.value,audioQuestionVolume:$t.value,audioWorkspaceCreatedVolume:en.value,audioAgentErrorVolume:tn.value,prNotificationSounds:nn.value,notionStatusProperty:rn.value,notionStatus:on.value,notionAssigneeProperty:cn.value,notionUserId:ln.value,notionInitialPrompt:Dn.value,sentryInitialPrompt:On.value,claudePermissionMode:kn.value,codexPermissionMode:An.value,notionMcpKey:jn.value,sentryMcpKey:Mn.value,bitbucketToken:Nn.value,bitbucketUsername:Pn.value,notionEnabled:Fn.value,sentryEnabled:In.value,showVerboseSystemMessages:un.value,showThinkingBlocks:dn.value,whipEnabled:fn.value,whipShortcut:pn.value,whipVolume:mn.value,tags:Rn.value,branchPrefixes:X.value,setupScript:Bn.value,cleanupScript:Vn.value,cleanupScriptMode:Hn.value,cleanupScriptOnlyOnChanges:Un.value,archiveScript:Wn.value,changeSourceBranchScript:Jn.value,sessionEndedScript:Gn.value,prMergedScript:Kn.value,autoLoopDisabledScript:qn.value,worktreesPath:$n.value,worktreesPrefixByProject:tr.value,flattenWorkspaceList:sr.value,memoryMode:$e.value,skillSuite:cr.value,customReviewTemplate:ur.value,customAutoLoopReviewGate:dr.value,customAutoLoopGroomingIntro:fr.value,customQaPromptTemplate:pr.value,customBrainstormingInstruction:mr.value,voiceEnabled:yr.value,voicePttKey:br.value,voiceLanguage:xr.value,voiceModel:Sr.value,voiceCommandPath:Cr.value,voiceFfmpegPath:Er.value,voiceTemperature:Dr.value,voicePrompt:Or.value,voiceTranslateToEnglish:kr.value,voiceSuppressNst:Ar.value}}function Qd(){return{...Q.value}}function $d(){return Lr(Zd())}function ef(){return Lr(Qd())}let tf=T(()=>!Fr(Zd(),Yd.value)),nf=T(()=>!Fr(Qd(),Xd.value)),rf=T(()=>s.loadError?!1:tf.value?!0:nf.value&&($.value!==null||Z.value)),af=T(()=>nf.value&&($.value!==null||Z.value)?ld.value:Wu.value);function of(){nf.value&&($.value!==null||Z.value)?Ef():_f()}function sf(){Gu.value=Ce(s.global.workflowPolicy),Nr.value=!0;let e=s.global.defaultModelByEngine??{};le.value=e[`claude-code`]??`auto`,ue.value=e.codex??`auto`,de.value=s.global.prPromptTemplate,R.value=s.global.reviewPromptTemplate??``,he.value=s.global.ciFixPromptTemplate??``,be.value=s.global.finalizationPrompt??``,Se.value=s.global.gitConventions,Te.value=s.global.editorCommand??``,Me.value=s.global.fileManagerCommand??``,Fe.value=s.global.terminalCommand??``,Re.value=s.global.autoPurgeOnPrMerged??!1,Ve.value=s.global.autoLoopMaxRetries??5,We.value=s.global.awaitingUserReminderMinutes??0,Je.value=s.global.activityDigestEnabled??!0,Ye.value=s.global.wsEventsRetentionDays??0,Qe.value=s.global.wsEventsKeepPerWorkspace??0,Vt.value=s.global.browserNotifications??!0,Ut.value=s.global.audioNotifications??!0,Wt.value=s.global.audioQuestionNotifications??!1,Gt.value=s.global.audioWorkspaceCreatedNotifications??!1,Kt.value=s.global.audioAgentErrorNotifications??!1,qt.value=Ae(s.global.audioNotificationSound),Jt.value=xe(s.global.audioQuestionSound),Xt.value=xe(s.global.audioWorkspaceCreatedSound),Zt.value=xe(s.global.audioAgentErrorSound);let t=Object.fromEntries(ge.map(e=>[e,xe(s.global[e])])),n=Object.fromEntries(ke.map(e=>{let t=s.global[e];if(e.endsWith(`Enabled`))return[e,typeof t==`boolean`&&t];let n=Number(t);return[e,Number.isFinite(n)?Math.max(0,Math.min(1,n)):1]}));nn.value={...t,...n};let r=s.global.audioNotificationVolume;Qt.value=typeof r==`number`&&Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;let i=s.global.audioQuestionVolume;$t.value=typeof i==`number`&&Number.isFinite(i)?Math.max(0,Math.min(1,i)):1;let a=s.global.audioWorkspaceCreatedVolume;en.value=typeof a==`number`&&Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;let o=s.global.audioAgentErrorVolume;tn.value=typeof o==`number`&&Number.isFinite(o)?Math.max(0,Math.min(1,o)):1,rn.value=s.global.notionStatusProperty??``,on.value=s.global.notionInProgressStatus??``,cn.value=s.global.notionAssigneeProperty??``,ln.value=s.global.notionUserId??``,Dn.value=s.global.notionInitialPromptTemplate??``,On.value=s.global.sentryInitialPromptTemplate??``;{let e=s.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,n=e[`claude-code`];kn.value=t(n)?n:`bypass`;let r=e.codex;An.value=t(r)?r:`bypass`}jn.value=s.global.notionMcpKey??``,Mn.value=s.global.sentryMcpKey??``,Nn.value=s.global.bitbucketToken??``,Pn.value=s.global.bitbucketUsername??``,Fn.value=s.global.notionEnabled??!0,In.value=s.global.sentryEnabled??!0,un.value=s.showVerboseSystemMessages,dn.value=s.global.showThinkingBlocks??!0,fn.value=s.global.whipEnabled??!1,pn.value=s.global.whipShortcut??`mod+shift+x`,mn.value=s.global.whipVolume??1,Rn.value=Array.isArray(s.global.tags)?[...s.global.tags]:[],X.value=Array.isArray(s.global.branchPrefixes)?[...s.global.branchPrefixes]:[],Bn.value=s.global.setupScript??``,Vn.value=s.global.cleanupScript??``,Hn.value=s.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,Un.value=s.global.cleanupScriptOnlyOnChanges??!1,Wn.value=s.global.archiveScript??``,Gn.value=s.global.sessionEndedScript??``,Kn.value=s.global.prMergedScript??``,qn.value=s.global.autoLoopDisabledScript??``,Jn.value=s.global.changeSourceBranchScript??``,$n.value=s.global.worktreesPath??`.worktrees`,tr.value=s.global.worktreesPrefixByProject??!1,sr.value=s.global.flattenWorkspaceList??!1,$e.value=s.global.memoryMode??`hybrid`,cr.value=s.global.skillSuite??`standard`,ur.value=s.global.customReviewTemplate??``,dr.value=s.global.customAutoLoopReviewGate??``,fr.value=s.global.customAutoLoopGroomingIntro??``,pr.value=s.global.customQaPromptTemplate??``,mr.value=s.global.customBrainstormingInstruction??``,yr.value=s.global.voiceEnabled??!1,br.value=s.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,xr.value=s.global.voiceLanguage??`auto`,Sr.value=s.global.voiceModel??null,Cr.value=s.global.voiceCommandPath??``,Er.value=s.global.voiceFfmpegPath??``,Dr.value=typeof s.global.voiceTemperature==`number`?s.global.voiceTemperature:0,Or.value=s.global.voicePrompt??``,kr.value=s.global.voiceTranslateToEnglish??!1,Ar.value=s.global.voiceSuppressNonSpeechTokens??!0,Nr.value=!1,Yd.value=$d()}u(()=>Sr.value,(e,t)=>{Nr.value||e!==t&&(Dr.value=Hu(e))});function cf(e){if(!e){Q.value={workflowPolicy:{},path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},sd.value=[],Xd.value=ef();return}Q.value={workflowPolicy:{...e.workflowPolicy},path:e.path,displayName:e.displayName,color:e.color??null,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,forge:e.forge??`auto`,prPromptTemplate:e.prPromptTemplate,reviewPromptTemplate:e.reviewPromptTemplate??``,ciFixPromptTemplate:e.ciFixPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,taskPromptTemplate:e.taskPromptTemplate??``,cleanupScript:e.cleanupScript??``,cleanupScriptMode:e.cleanupScriptMode??``,archiveScript:e.archiveScript??``,changeSourceBranchScript:e.changeSourceBranchScript??``,sessionEndedScript:e.sessionEndedScript??``,prMergedScript:e.prMergedScript??``,autoLoopDisabledScript:e.autoLoopDisabledScript??``,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??``}},Xd.value=ef(),e.path&&lf(e.path)}async function lf(e){if(!e.trim()){sd.value=[];return}cd.value=!0;try{let t=await ye(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw await _e(t);let n=await t.json();sd.value=n.local??n.branches??[]}catch{sd.value=[]}finally{cd.value=!1}}let uf=null;u(()=>Q.value.path,e=>{uf&&clearTimeout(uf),uf=setTimeout(()=>{lf(e)},500)}),u(Yu,()=>{Z.value=!1,cf($.value)});let df=o(null);async function ff(){try{let e=await ye(`/api/settings/export`);if(!e.ok)throw await _e(e);let t=await e.json(),r=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`kobo-config-${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,a.click(),URL.revokeObjectURL(i),n.notify({type:`positive`,message:p(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){n.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}}function pf(){df.value?.click()}async function mf(e){let t=e.target,r=t.files?.[0];if(r)try{n.dialog({title:p(`settings.importConfirmTitle`),message:p(`settings.importConfirmMessage`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{let e=await r.text(),t=JSON.parse(e),i=await De(`/api/settings/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`HTTP ${i.status}`)}await s.fetchSettings(),sf(),n.notify({type:`positive`,message:p(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){n.notify({type:`negative`,message:String(e),position:`top`,timeout:0})}})}finally{t.value=``}}async function hf(e){if(Y.value===null){Y.value=e;try{let t=await s.fetchGlobalDefaults(),n={prPromptTemplate:de,reviewPromptTemplate:R,ciFixPromptTemplate:he,finalizationPrompt:be,gitConventions:Se,notionInitialPromptTemplate:Dn,sentryInitialPromptTemplate:On};n[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),n.notify({type:`negative`,message:p(`settings.resetFailed`),position:`top`})}finally{Y.value=null}}}async function gf(){let e=e=>e===0?1/0:e,t=s.global.wsEventsRetentionDays??0,r=Ye.value;if(e(r)>=e(t))return!0;let i=p(`settings.retentionConfirmMessageUnknown`,{days:r});try{let e=await s.previewRetention(r,Qe.value);i=p(`settings.retentionConfirmMessage`,{days:r,count:e.deletable,total:e.total})}catch(e){console.error(`[SettingsPage] retention preview failed:`,e)}return await new Promise(e=>{n.dialog({title:p(`settings.retentionConfirmTitle`),message:i,cancel:!0,persistent:!0,dark:!0}).onOk(()=>e(!0)).onCancel(()=>e(!1)).onDismiss(()=>e(!1))})}async function _f(){if(await er.value?.validate()!==!1&&await gf()){Wu.value=!0;try{await s.updateGlobal({workflowPolicy:Ce(Gu.value),defaultModelByEngine:{"claude-code":le.value,codex:ue.value},prPromptTemplate:de.value,reviewPromptTemplate:R.value,ciFixPromptTemplate:he.value,finalizationPrompt:be.value,gitConventions:Se.value,editorCommand:Te.value,fileManagerCommand:Me.value,terminalCommand:Fe.value,autoPurgeOnPrMerged:Re.value,autoLoopMaxRetries:Ve.value,awaitingUserReminderMinutes:We.value,activityDigestEnabled:Je.value,wsEventsRetentionDays:Ye.value,wsEventsKeepPerWorkspace:Qe.value,browserNotifications:Vt.value,audioNotifications:Ut.value,audioQuestionNotifications:Wt.value,audioWorkspaceCreatedNotifications:Gt.value,audioAgentErrorNotifications:Kt.value,audioNotificationSound:qt.value,audioQuestionSound:Jt.value,audioWorkspaceCreatedSound:Xt.value,audioAgentErrorSound:Zt.value,audioNotificationVolume:Qt.value,audioQuestionVolume:$t.value,audioWorkspaceCreatedVolume:en.value,audioAgentErrorVolume:tn.value,...nn.value,notionStatusProperty:rn.value,notionInProgressStatus:on.value,notionAssigneeProperty:cn.value,notionUserId:ln.value,notionInitialPromptTemplate:Dn.value,sentryInitialPromptTemplate:On.value,defaultPermissionModeByEngine:{"claude-code":kn.value,codex:An.value},notionMcpKey:jn.value,sentryMcpKey:Mn.value,bitbucketToken:Nn.value,bitbucketUsername:Pn.value,notionEnabled:Fn.value,sentryEnabled:In.value,showThinkingBlocks:dn.value,whipEnabled:fn.value,whipShortcut:pn.value,whipVolume:mn.value,tags:Rn.value,branchPrefixes:X.value,setupScript:Bn.value,cleanupScript:Vn.value,cleanupScriptMode:Hn.value,cleanupScriptOnlyOnChanges:Un.value,archiveScript:Wn.value,changeSourceBranchScript:Jn.value,sessionEndedScript:Gn.value,prMergedScript:Kn.value,autoLoopDisabledScript:qn.value,worktreesPath:$n.value,worktreesPrefixByProject:tr.value,flattenWorkspaceList:sr.value,memoryMode:$e.value,skillSuite:cr.value,customReviewTemplate:ur.value,customAutoLoopReviewGate:dr.value,customAutoLoopGroomingIntro:fr.value,customQaPromptTemplate:pr.value,customBrainstormingInstruction:mr.value,voiceEnabled:yr.value,voicePttKey:br.value,voiceLanguage:xr.value,voiceModel:Sr.value,voiceCommandPath:Cr.value.trim(),voiceFfmpegPath:Er.value.trim(),voiceTemperature:Dr.value,voicePrompt:Or.value,voiceTranslateToEnglish:kr.value,voiceSuppressNonSpeechTokens:Ar.value}),s.setVerboseSystemMessages(un.value),Yd.value=$d(),n.notify({type:`positive`,message:p(`settings.saved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.saveError`),position:`top`})}finally{Wu.value=!1}}}async function vf(e){jr.value=e,Cf();try{await s.downloadVoiceModel(e)}catch{n.notify({type:`negative`,message:p(`voice.downloadFailed`),position:`top`})}finally{jr.value=null,wf()}}async function yf(e){jr.value=e;try{await s.deleteVoiceModel(e),Sr.value===e&&(Sr.value=null)}catch{n.notify({type:`negative`,message:p(`voice.deleteFailed`),position:`top`})}finally{jr.value=null}}async function bf(e){try{await s.cancelVoiceModelDownload(e)}catch{n.notify({type:`negative`,message:p(`voice.cancelFailed`),position:`top`})}}function xf(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 Sf=null;function Cf(){Sf||=setInterval(()=>{document.visibilityState!==`hidden`&&s.fetchVoiceModels().catch(e=>{console.error(`[settings] voice model polling failed:`,e)})},Vu)}function wf(){Sf&&=(clearInterval(Sf),null)}async function Tf(e){try{await navigator.clipboard.writeText(e),n.notify({type:`positive`,message:p(`common.copied`),position:`top`,timeout:1200})}catch{n.notify({type:`negative`,message:p(`common.copyFailed`),position:`top`})}}async function Ef(){if(!Q.value.path.trim()){n.notify({type:`negative`,message:p(`settings.projectPathRequired`),position:`top`});return}ld.value=!0;try{await s.upsertProject(Q.value.path.trim(),{workflowPolicy:{...Q.value.workflowPolicy},displayName:Q.value.displayName,color:Q.value.color,defaultSourceBranch:Q.value.defaultSourceBranch,defaultModel:Q.value.defaultModel,forge:Q.value.forge,prPromptTemplate:Q.value.prPromptTemplate,reviewPromptTemplate:Q.value.reviewPromptTemplate,ciFixPromptTemplate:Q.value.ciFixPromptTemplate,notionInitialPromptTemplate:Q.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Q.value.sentryInitialPromptTemplate,gitConventions:Q.value.gitConventions,setupScript:Q.value.setupScript,taskPromptTemplate:Q.value.taskPromptTemplate,cleanupScript:Q.value.cleanupScript,cleanupScriptMode:Q.value.cleanupScriptMode,archiveScript:Q.value.archiveScript,changeSourceBranchScript:Q.value.changeSourceBranchScript,sessionEndedScript:Q.value.sessionEndedScript,prMergedScript:Q.value.prMergedScript,autoLoopDisabledScript:Q.value.autoLoopDisabledScript,devServer:Q.value.devServer,e2e:Q.value.e2e,finalization:Q.value.finalization}),Z.value=!1;let e=s.projects.findIndex(e=>e.path===Q.value.path.trim());e>=0&&(Yu.value=e),Xd.value=ef(),n.notify({type:`positive`,message:p(`settings.projectSaved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectSaveError`),position:`top`})}finally{ld.value=!1}}function Df(){if(!$.value)return;let e=$.value.displayName||$.value.path;n.dialog({title:p(`settings.deleteProjectConfirmTitle`),message:p(`settings.deleteProjectConfirmMessage`,{name:e}),dark:!0,cancel:{flat:!0,label:p(`common.cancel`),color:`kobo-2`},ok:{flat:!0,label:p(`common.delete`),color:`red-5`}}).onOk(async()=>{if($.value){ud.value=!0;try{await s.deleteProject($.value.path),Yu.value=-1,Z.value=!1,cf(null),n.notify({type:`positive`,message:p(`settings.projectDeleted`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectDeleteError`),position:`top`})}finally{ud.value=!1}}})}function Of(){Yu.value=-1,Z.value=!0,cf(null),Zu.value=null,Qu.value=null}function kf(e){if(nf.value&&($.value!==null||Z.value)){n.dialog({title:p(`settings.unsavedChanges.title`),message:p(`settings.unsavedChanges.message`),dark:!0,persistent:!0,ok:{flat:!0,label:p(`settings.unsavedChanges.discard`),color:`negative`},cancel:{flat:!0,label:p(`settings.unsavedChanges.cancel`),color:`kobo-2`}}).onOk(()=>{Z.value=!1,Yu.value=e,Zu.value=null,Qu.value=null});return}Z.value=!1,Yu.value=e,Zu.value=null,Qu.value=null}function Af(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let jf=o([]);function Mf(e,t){t(()=>{jf.value=e?sd.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):sd.value})}async function Nf(){await s.fetchSettings(),s.loadError||sf()}return m(async()=>{await Promise.all([s.fetchSettings(),s.fetchActiveMcpServers(),ad()]);try{let e=await s.fetchGlobalDefaults();Yn.value=e.changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await s.fetchVoiceModels(),await s.fetchVoiceRuntime(),sf(),w(`settings`),ct(),d.fetchTemplates(),Xe(`settings:global`,()=>tf.value),Xe(`settings:integrations`,()=>Ju.value),Xe(`settings:project`,()=>nf.value&&($.value!==null||Z.value))}),l(()=>{uf&&clearTimeout(uf),wf(),Ze(`settings:global`),Ze(`settings:integrations`),Ze(`settings:project`)}),(t,n)=>(f(),b(Pt,{class:`settings-page`,"style-fn":e(zt)},{default:_(()=>[e(s).loadError?(f(),E(`div`,zr,[v(I,{name:`error`,size:`18px`}),O(`div`,Br,[O(`span`,Vr,i(t.$t(`settings.loadFailed`)),1),O(`span`,Hr,i(e(s).loadError),1),O(`span`,Ur,i(t.$t(`settings.loadFailedHint`)),1)]),v(q),v(L,{dense:``,flat:``,"no-caps":``,icon:`refresh`,label:t.$t(`common.retry`),onClick:Nf},null,8,[`label`])])):x(``,!0),O(`div`,Wr,[e(k)?(f(),b(At,{key:1,modelValue:F.value,"onUpdate:modelValue":n[0]||=e=>F.value=e,side:`left`,overlay:``,behavior:`mobile`,width:240},{default:_(()=>[v(H,null,{default:_(()=>[v(G,{clickable:``,onClick:ie},{default:_(()=>[v(K,{avatar:``},{default:_(()=>[v(I,{name:`arrow_back`})]),_:1}),v(K,null,{default:_(()=>[S(i(t.$t(`workspaceList.title`)),1)]),_:1})]),_:1}),v(He)]),_:1}),O(`div`,qr,[O(`div`,Jr,i(t.$t(`settings.title`)),1),v(Tr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])]),_:1},8,[`modelValue`])):(f(),E(`aside`,Gr,[O(`div`,Kr,i(t.$t(`settings.title`)),1),v(Tr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])),O(`main`,Yr,[O(`header`,Xr,[v(Ft,{"exclude-mobile":``,class:`q-mr-sm`}),e(k)?(f(),b(L,{key:0,flat:``,dense:``,round:``,icon:`menu`,"aria-label":t.$t(`settings.openNav`),class:`settings-content__nav-toggle`,onClick:n[1]||=e=>F.value=!0},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(t.$t(`settings.openNav`)),1)]),_:1})]),_:1},8,[`aria-label`])):x(``,!0),O(`h2`,Zr,i(se.value),1),v(It,{"tour-id":`settings`,class:`q-ml-sm`})]),O(`div`,Qr,i(t.$t(`settings.help.${N.value}`)),1),O(`div`,$r,[g(O(`div`,ei,[N.value===`memory`?(f(),b(gr,{key:0,"memory-mode":$e.value,"onUpdate:memoryMode":n[2]||=e=>$e.value=e},null,8,[`memory-mode`])):x(``,!0),N.value===`general`?(f(),E(`div`,ti,[O(`div`,ni,i(t.$t(`settings.language`)),1),v(W,{"model-value":e(y),options:Ad,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":jd},null,8,[`model-value`])])):x(``,!0),N.value===`general`?(f(),E(`div`,ri,[O(`div`,ii,i(t.$t(`settings.workspaceListSection`)),1),v(B,{modelValue:sr.value,"onUpdate:modelValue":n[3]||=e=>sr.value=e,label:t.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,ai,i(t.$t(`settings.flattenWorkspaceListHint`)),1)])):x(``,!0),N.value===`skills`?(f(),E(`div`,oi,[O(`div`,si,i(t.$t(`settings.skillSuite.section`)),1),v(ze,{modelValue:cr.value,"onUpdate:modelValue":n[4]||=e=>cr.value=e,options:[{label:t.$t(`settings.skillSuite.standard`),value:`standard`},{label:t.$t(`settings.skillSuite.superpowers`),value:`superpowers`},{label:t.$t(`settings.skillSuite.gstack`),value:`gstack`},{label:t.$t(`settings.skillSuite.ecc`),value:`ecc`},{label:t.$t(`settings.skillSuite.superpowersGstack`),value:`superpowers+gstack`},{label:t.$t(`settings.skillSuite.allThree`),value:`superpowers+gstack+ecc`},{label:t.$t(`settings.skillSuite.custom`),value:`custom`}],type:`radio`,color:`primary`,dense:``,dark:``,inline:``},null,8,[`modelValue`,`options`]),O(`div`,ci,i(t.$t(lr.value)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:t.$t(`settings.skillSuite.reloadDefaults`),disable:cr.value!==`custom`,class:`q-mt-sm`,onClick:Pr},null,8,[`label`,`disable`])])):x(``,!0),N.value===`skills`&&cr.value===`custom`?(f(),E(`div`,li,[O(`div`,ui,i(t.$t(`settings.skillSuite.customPrompts`)),1),O(`div`,di,i(t.$t(`settings.skillSuite.reviewTemplate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`reviewTemplate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`reviewTemplate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:ur.value,"onUpdate:modelValue":n[5]||=e=>ur.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,fi,i(t.$t(`settings.skillSuite.autoLoopReviewGate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`autoLoopReviewGate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`autoLoopReviewGate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:dr.value,"onUpdate:modelValue":n[6]||=e=>dr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,pi,i(t.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`autoLoopGroomingIntro`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`autoLoopGroomingIntro`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:fr.value,"onUpdate:modelValue":n[7]||=e=>fr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,mi,i(t.$t(`settings.skillSuite.qaTemplate`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`qaPromptTemplate`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`qaPromptTemplate`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:pr.value,"onUpdate:modelValue":n[8]||=e=>pr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,hi,i(t.$t(`settings.skillSuite.brainstormingInstruction`)),1),v(wt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:hr.value===`brainstormingInstruction`,class:`q-mb-sm`},{default:_(()=>[v(H,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(_r.value,e=>g((f(),b(G,{key:e.value,clickable:``,onClick:t=>vr(`brainstormingInstruction`,e.value)},{default:_(()=>[v(K,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[mt]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(z,{modelValue:mr.value,"onUpdate:modelValue":n[9]||=e=>mr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):x(``,!0),N.value===`agents`?(f(),E(`div`,gi,[O(`div`,_i,i(t.$t(`settings.defaultModelClaude`)),1),v(W,{modelValue:le.value,"onUpdate:modelValue":n[10]||=e=>le.value=e,options:Md.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,vi,i(t.$t(`settings.defaultModelCodex`)),1),v(W,{modelValue:ue.value,"onUpdate:modelValue":n[11]||=e=>ue.value=e,options:Nd.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,yi,i(t.$t(`settings.defaultPermissionModeClaude`)),1),O(`div`,bi,i(t.$t(`settings.defaultPermissionModeHint`)),1),v(W,{modelValue:kn.value,"onUpdate:modelValue":n[12]||=e=>kn.value=e,options:Id.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,xi,i(t.$t(`settings.defaultPermissionModeCodex`)),1),v(W,{modelValue:An.value,"onUpdate:modelValue":n[13]||=e=>An.value=e,options:Ld.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`]),v(z,{modelValue:Ve.value,"onUpdate:modelValue":n[14]||=e=>Ve.value=e,modelModifiers:{number:!0},label:t.$t(`settings.autoLoopMaxRetries`),hint:t.$t(`settings.autoLoopMaxRetriesHint`),type:`number`,min:`1`,max:`20`,dense:``,dark:``,outlined:``,class:`settings-input q-mt-md`},null,8,[`modelValue`,`label`,`hint`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Si,[O(`div`,Ci,i(t.$t(`settings.activityFeed`)),1),O(`div`,wi,[v(B,{modelValue:un.value,"onUpdate:modelValue":n[15]||=e=>un.value=e,label:t.$t(`settings.verboseMessages`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:dn.value,"onUpdate:modelValue":n[16]||=e=>dn.value=e,label:t.$t(`settings.showThinkingBlocks`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`])])])):x(``,!0),N.value===`general`?(f(),E(`div`,Ti,[O(`div`,Ei,i(t.$t(`settings.whipSettings`)),1),O(`div`,Di,i(t.$t(`settings.whipSettingsHint`)),1),v(B,{modelValue:fn.value,"onUpdate:modelValue":n[17]||=e=>fn.value=e,label:t.$t(`settings.whipEnabled`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},{default:_(()=>[v(ft,null,{default:_(()=>[S(i(t.$t(`settings.whipEnabledHint`)),1)]),_:1})]),_:1},8,[`modelValue`,`label`]),fn.value?(f(),E(`div`,Oi,[v(Mr,{modelValue:pn.value,"onUpdate:modelValue":n[18]||=e=>pn.value=e},null,8,[`modelValue`]),O(`div`,ki,[O(`div`,Ai,i(t.$t(`settings.whipVolume`)),1),v(an,{modelValue:mn.value,"onUpdate:modelValue":n[19]||=e=>mn.value=e,min:0,max:1,step:.05,disable:hn.value.disabled,"aria-label":t.$t(`settings.whipVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,ji,i(Math.round(mn.value*100))+`% `,1)]),hn.value.hintKey?(f(),E(`div`,Mi,i(t.$t(hn.value.hintKey)),1)):x(``,!0)])):x(``,!0)])):x(``,!0),N.value===`notifications`?(f(),E(`div`,Ni,[O(`div`,Pi,i(t.$t(`settings.notifications`)),1),v(B,{modelValue:Je.value,"onUpdate:modelValue":n[20]||=e=>Je.value=e,label:t.$t(`absence.title`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,Fi,i(t.$t(`settings.activityDigestHint`)),1),v(z,{modelValue:We.value,"onUpdate:modelValue":n[21]||=e=>We.value=e,modelModifiers:{number:!0},label:t.$t(`settings.awaitingUserReminder`),hint:t.$t(`settings.awaitingUserReminderHint`),type:`number`,min:`0`,max:`1440`,dense:``,dark:``,outlined:``,class:`settings-input q-mt-md`},null,8,[`modelValue`,`label`,`hint`]),v(He,{dark:``,class:`q-my-md`}),v(gn),O(`div`,Ii,[O(`div`,Li,[O(`div`,Ri,i(t.$t(`settings.notificationSound`)),1),O(`div`,zi,i(t.$t(`settings.notificationSoundHint`)),1),O(`div`,Bi,[v(B,{modelValue:Vt.value,"onUpdate:modelValue":n[22]||=e=>Vt.value=e,label:t.$t(`settings.enableBrowserNotifications`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:Ut.value,"onUpdate:modelValue":n[23]||=e=>Ut.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`])]),O(`div`,Vi,[v(pt,{dense:``,square:``,color:_n.value.color,"text-color":`white`,icon:`notifications`},{default:_(()=>[S(i(_n.value.label),1)]),_:1},8,[`color`]),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`notifications_active`,label:t.$t(`settings.testBrowserNotification`),onClick:vn},null,8,[`label`])]),O(`div`,Hi,[v(W,{modelValue:qt.value,"onUpdate:modelValue":n[24]||=e=>qt.value=e,options:Vd.value,label:t.$t(`settings.notificationSound`),disable:!Ut.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Ut.value,onClick:Gd},null,8,[`label`,`disable`])]),O(`div`,Ui,[O(`div`,Wi,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:Qt.value,"onUpdate:modelValue":n[25]||=e=>Qt.value=e,min:0,max:1,step:.05,disable:!Ut.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,Gi,i(Math.round(Qt.value*100))+`% `,1)])]),O(`div`,Ki,[O(`div`,qi,i(t.$t(`settings.questionSound`)),1),O(`div`,Ji,i(t.$t(`settings.questionSoundHint`)),1),v(B,{modelValue:Wt.value,"onUpdate:modelValue":n[26]||=e=>Wt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,Yi,[v(W,{modelValue:Jt.value,"onUpdate:modelValue":n[27]||=e=>Jt.value=e,options:Hd.value,label:t.$t(`settings.questionSound`),disable:!Wt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Wt.value,onClick:Kd},null,8,[`label`,`disable`])]),O(`div`,Xi,[O(`div`,Zi,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:$t.value,"onUpdate:modelValue":n[28]||=e=>$t.value=e,min:0,max:1,step:.05,disable:!Wt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,Qi,i(Math.round($t.value*100))+`% `,1)])]),O(`div`,$i,[O(`div`,ea,i(t.$t(`settings.workspaceCreatedSound`)),1),O(`div`,ta,i(t.$t(`settings.workspaceCreatedSoundHint`)),1),v(B,{modelValue:Gt.value,"onUpdate:modelValue":n[29]||=e=>Gt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,na,[v(W,{modelValue:Xt.value,"onUpdate:modelValue":n[30]||=e=>Xt.value=e,options:Hd.value,label:t.$t(`settings.workspaceCreatedSound`),disable:!Gt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Gt.value,onClick:qd},null,8,[`label`,`disable`])]),O(`div`,ra,[O(`div`,ia,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:en.value,"onUpdate:modelValue":n[31]||=e=>en.value=e,min:0,max:1,step:.05,disable:!Gt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,aa,i(Math.round(en.value*100))+`% `,1)])]),O(`div`,oa,[O(`div`,sa,i(t.$t(`settings.agentErrorSound`)),1),O(`div`,ca,i(t.$t(`settings.agentErrorSoundHint`)),1),v(B,{modelValue:Kt.value,"onUpdate:modelValue":n[32]||=e=>Kt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,la,[v(W,{modelValue:Zt.value,"onUpdate:modelValue":n[33]||=e=>Zt.value=e,options:Hd.value,label:t.$t(`settings.agentErrorSound`),disable:!Kt.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`primary`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),v(L,{flat:``,dense:``,color:`primary`,icon:`play_arrow`,label:t.$t(`settings.notificationSoundPreview`),disable:!Kt.value,onClick:Jd},null,8,[`label`,`disable`])]),O(`div`,ua,[O(`div`,da,i(t.$t(`settings.notificationVolume`)),1),v(an,{modelValue:tn.value,"onUpdate:modelValue":n[34]||=e=>tn.value=e,min:0,max:1,step:.05,disable:!Kt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,fa,i(Math.round(tn.value*100))+`%`,1)])])]),v(wr,{modelValue:nn.value,"onUpdate:modelValue":n[35]||=e=>nn.value=e,"general-sound":qt.value},null,8,[`modelValue`,`general-sound`])])):x(``,!0),N.value===`voice`?(f(),E(`div`,pa,[O(`div`,ma,[O(`div`,ha,i(t.$t(`voice.sectionRuntime`)),1),v(q),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`kobo-2`,label:e(p)(`common.refresh`),onClick:n[36]||=t=>e(s).fetchVoiceRuntime()},null,8,[`label`])]),O(`div`,ga,[O(`div`,_a,[v(I,{name:e(s).voiceRuntime?.available?`check_circle`:`cancel`,color:e(s).voiceRuntime?.available?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),O(`span`,{class:r([`text-caption`,e(s).voiceRuntime?.available?`text-green-5`:`text-red-5`])},i(e(s).voiceRuntime?.available?e(p)(`voice.runtimeReady`,{command:e(s).voiceRuntime?.command??`whisper-cli`}):e(p)(`voice.runtimeMissing`,{command:e(s).voiceRuntime?.command??`whisper-cli`})),3)]),O(`div`,va,[v(I,{name:e(s).voiceRuntime?.ffmpegAvailable?`check_circle`:`cancel`,color:e(s).voiceRuntime?.ffmpegAvailable?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),O(`span`,{class:r([`text-caption`,e(s).voiceRuntime?.ffmpegAvailable?`text-green-5`:`text-red-5`])},i(e(s).voiceRuntime?.ffmpegAvailable?e(p)(`voice.ffmpegReady`):e(p)(`voice.ffmpegMissing`)),3)])]),v(st,{dense:``,dark:``,icon:`help_outline`,label:t.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:_(()=>[O(`div`,ya,[O(`div`,ba,i(t.$t(`voice.installGuideIntro`)),1),O(`div`,xa,[O(`a`,Sa,i(t.$t(`voice.installLink`)),1)]),O(`div`,Ca,i(t.$t(`voice.installGuideUbuntuTitle`)),1),n[136]||=O(`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
|