@loicngr/kobo 2.1.25 → 2.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/AGENTS.md +30 -3
  2. package/CHANGELOG.md +15 -0
  3. package/CONFIGURATION.md +156 -49
  4. package/README.md +2 -1
  5. package/SECURITY.md +33 -6
  6. package/dist/mcp-server/kobo-tasks-server.js +36 -1021
  7. package/dist/mcp-server/managed-mcp-dispatcher.js +960 -0
  8. package/dist/mcp-server/workspace-dialogue-client.js +26 -1
  9. package/dist/server/index.js +52 -19
  10. package/dist/server/middleware/host-check-middleware.js +8 -5
  11. package/dist/server/middleware/network-auth-middleware.js +51 -29
  12. package/dist/server/middleware/security-headers-middleware.js +19 -0
  13. package/dist/server/middleware/traffic-limits-middleware.js +74 -0
  14. package/dist/server/routes/auth.js +73 -0
  15. package/dist/server/routes/internal-mcp.js +137 -0
  16. package/dist/server/routes/mcp-credentials.js +30 -0
  17. package/dist/server/routes/mcp.js +156 -76
  18. package/dist/server/routes/usage.js +24 -0
  19. package/dist/server/routes/workspaces.js +19 -3
  20. package/dist/server/services/agent/orchestrator.js +27 -17
  21. package/dist/server/services/external-mcp-credentials-service.js +110 -0
  22. package/dist/server/services/forge/github/provider.js +15 -3
  23. package/dist/server/services/forge/types.js +8 -0
  24. package/dist/server/services/internal-mcp-capability-service.js +98 -0
  25. package/dist/server/services/mcp-connection-info-service.js +1 -1
  26. package/dist/server/services/memory-mcp-service.js +9 -7
  27. package/dist/server/services/memory-service.js +15 -0
  28. package/dist/server/services/network-access-service.js +43 -73
  29. package/dist/server/services/network-session-service.js +182 -0
  30. package/dist/server/services/provider-accounts-service.js +202 -0
  31. package/dist/server/services/settings-service.js +29 -7
  32. package/dist/server/services/terminal-websocket-service.js +5 -0
  33. package/dist/server/services/usage/poller.js +44 -3
  34. package/dist/server/services/websocket-service.js +5 -0
  35. package/dist/server/utils/paths.js +2 -1
  36. package/dist/server/utils/startup-display.js +1 -2
  37. package/dist/shared/models.js +6 -0
  38. package/dist/shared/provider-accounts.js +1 -0
  39. package/docker-compose.vps.yml +6 -0
  40. package/docs/deployment-vps.md +24 -12
  41. package/package.json +1 -1
  42. package/src/client/dist/pwa/assets/ActivityFeed-D58VS9o2.js +2 -0
  43. package/src/client/dist/pwa/assets/{AutoLoopFinalReviewSettings-Dafi7Tue.js → AutoLoopFinalReviewSettings-CK3r_fVB.js} +1 -1
  44. package/src/client/dist/pwa/assets/{ChangelogPage-DH-zUtlf.js → ChangelogPage-CAAUEn5X.js} +1 -1
  45. package/src/client/dist/pwa/assets/ComparisonPanel-BCb7vB5E.js +2 -0
  46. package/src/client/dist/pwa/assets/CreatePage-DasH1Uk4.js +2 -0
  47. package/src/client/dist/pwa/assets/{DashboardPage-B8gTooRi.js → DashboardPage-XE52EABP.js} +1 -1
  48. package/src/client/dist/pwa/assets/DiffViewer-CncKlXne.js +8 -0
  49. package/src/client/dist/pwa/assets/{DocumentsPanel-DXjjhGUg.js → DocumentsPanel-L4pbQfz1.js} +1 -1
  50. package/src/client/dist/pwa/assets/{DrawerToggleButton-CiVNMTbq.js → DrawerToggleButton-DiOJm5he.js} +1 -1
  51. package/src/client/dist/pwa/assets/GitPanel-WJlzy2VJ.js +3 -0
  52. package/src/client/dist/pwa/assets/{GitPanel-CRaLJzjc.css → GitPanel-yHvU38dp.css} +1 -1
  53. package/src/client/dist/pwa/assets/{HealthPage-lc2Cuuks.js → HealthPage-hJY5MurK.js} +1 -1
  54. package/src/client/dist/pwa/assets/MainLayout-DgWElK7w.js +2 -0
  55. package/src/client/dist/pwa/assets/{MemoryPanel-SrR94UVW.js → MemoryPanel-DtEvh_b7.js} +1 -1
  56. package/src/client/dist/pwa/assets/{MemoryProposalList-B5uVf3KU.js → MemoryProposalList-kgFCm9zz.js} +1 -1
  57. package/src/client/dist/pwa/assets/{QBtnDropdown-Cxr3lBPB.js → QBtnDropdown-CWPIugs8.js} +1 -1
  58. package/src/client/dist/pwa/assets/{QExpansionItem-xIXDevKz.js → QExpansionItem-D-EGL2b3.js} +1 -1
  59. package/src/client/dist/pwa/assets/{QScrollArea-DeczMHVs.js → QScrollArea-BMrqK-xd.js} +1 -1
  60. package/src/client/dist/pwa/assets/QSelect-DFWyDWCE.js +1 -0
  61. package/src/client/dist/pwa/assets/{QTooltip-be9mqhmB.js → QTooltip-Bk8dLUtU.js} +1 -1
  62. package/src/client/dist/pwa/assets/{SchedulePanel-R6H-D-m5.js → SchedulePanel-CuxmxCKi.js} +1 -1
  63. package/src/client/dist/pwa/assets/{SearchPage-CaeYoIDw.js → SearchPage-DKnQPUqY.js} +1 -1
  64. package/src/client/dist/pwa/assets/{SettingsPage-Dcq1Jeoo.css → SettingsPage-B4rmd2WX.css} +1 -1
  65. package/src/client/dist/pwa/assets/SettingsPage-CO3vIpPd.js +9 -0
  66. package/src/client/dist/pwa/assets/{SplitWorkspacePage-Dw1qUIFU.js → SplitWorkspacePage-WhQyX8fn.js} +1 -1
  67. package/src/client/dist/pwa/assets/{TerminalPanel-Dqw88QqH.js → TerminalPanel-BY0lPq6k.js} +10 -10
  68. package/src/client/dist/pwa/assets/{TerminalPanel-Dz9EE-Ph.css → TerminalPanel-BcbwuFVR.css} +1 -1
  69. package/src/client/dist/pwa/assets/{ToolCallItem-BMn7eela.js → ToolCallItem-DYubi-J0.js} +3 -3
  70. package/src/client/dist/pwa/assets/{TouchPan-BwCpe_Oh.js → TouchPan-DDotyYLN.js} +1 -1
  71. package/src/client/dist/pwa/assets/{TourReplayButton-yeGYf6xT.js → TourReplayButton-kAnEMcy2.js} +1 -1
  72. package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-BJPw65vU.js → WorkspaceAttentionLabels-DiYt3rP3.js} +1 -1
  73. package/src/client/dist/pwa/assets/WorkspacePage-BEBwwr81.css +1 -0
  74. package/src/client/dist/pwa/assets/WorkspacePage-K-1ce50d.js +4 -0
  75. package/src/client/dist/pwa/assets/{browser-C9U-mSDm.js → browser-DVYLH8vl.js} +1 -1
  76. package/src/client/dist/pwa/assets/{build-path-tree-DYdRW2T4.js → build-path-tree-DEuOdIIk.js} +1 -1
  77. package/src/client/dist/pwa/assets/custom-sounds-Ggw6V9iF.js +1 -0
  78. package/src/client/dist/pwa/assets/de-Bk3zQrin.js +17 -0
  79. package/src/client/dist/pwa/assets/{editor.api-iu5YkEl3.js → editor.api-BC38eXAS.js} +1 -1
  80. package/src/client/dist/pwa/assets/{efforts-ja6uJadn.js → efforts-TGacUPcJ.js} +1 -1
  81. package/src/client/dist/pwa/assets/es-f3xuAWA9.js +17 -0
  82. package/src/client/dist/pwa/assets/{expand-template-BbgnJ8YH.js → expand-template-DM8gq3Mo.js} +1 -1
  83. package/src/client/dist/pwa/assets/{format-CLXLy6Ov.js → format-OwxXBnDJ.js} +1 -1
  84. package/src/client/dist/pwa/assets/{formatters-DeKgxYJe.js → formatters-YgaCZcwJ.js} +1 -1
  85. package/src/client/dist/pwa/assets/fr-B6c21SG3.js +17 -0
  86. package/src/client/dist/pwa/assets/{freemarker2-2IrnDDvu.js → freemarker2-l7R42fI2.js} +1 -1
  87. package/src/client/dist/pwa/assets/{handlebars-CeLN7FCP.js → handlebars-DFmPrgjH.js} +1 -1
  88. package/src/client/dist/pwa/assets/{html-Bn3rhcp3.js → html-CERIAlPM.js} +1 -1
  89. package/src/client/dist/pwa/assets/i18n-WaE4cZK9.js +1 -0
  90. package/src/client/dist/pwa/assets/index-CpWBGKdM.js +20 -0
  91. package/src/client/dist/pwa/assets/it-DUstDpC2.js +17 -0
  92. package/src/client/dist/pwa/assets/{javascript-BMvON8oT.js → javascript-BBYncplF.js} +1 -1
  93. package/src/client/dist/pwa/assets/{liquid-D_AQLvQl.js → liquid-C1HqYyYU.js} +1 -1
  94. package/src/client/dist/pwa/assets/{mdx-DDJzMB8Q.js → mdx-E74dsP22.js} +1 -1
  95. package/src/client/dist/pwa/assets/{monaco-contributions-DFKwR-_X.js → monaco-contributions-DHvm-kp5.js} +1 -1
  96. package/src/client/dist/pwa/assets/{monaco.contribution-4AwFLnjV.js → monaco.contribution-DYdn9CwR.js} +2 -2
  97. package/src/client/dist/pwa/assets/network-auth-DTZUKbny.js +1 -0
  98. package/src/client/dist/pwa/assets/{notify-theme-CMzdjL91.js → notify-theme-FuTL7HuS.js} +1 -1
  99. package/src/client/dist/pwa/assets/{permissionModes-DLWiBfdb.js → permissionModes-D-Nexnoo.js} +1 -1
  100. package/src/client/dist/pwa/assets/{project-color-C5mEKdlH.js → project-color-_snXWYUp.js} +1 -1
  101. package/src/client/dist/pwa/assets/{python-BOqcp9xc.js → python-DNAAGBcX.js} +1 -1
  102. package/src/client/dist/pwa/assets/{razor-BrGwBzd7.js → razor-CB3g5p_T.js} +1 -1
  103. package/src/client/dist/pwa/assets/{typescript-mOGf86uY.js → typescript-0kpz8bqP.js} +1 -1
  104. package/src/client/dist/pwa/assets/{use-search-index-status-P7O7EaV_.js → use-search-index-status-D38yFOD_.js} +1 -1
  105. package/src/client/dist/pwa/assets/{use-tours-CMFPIW6f.js → use-tours-BWkHp34X.js} +2 -2
  106. package/src/client/dist/pwa/assets/{use-worktree-restore-DF6P7h8g.js → use-worktree-restore-DUjZr44N.js} +1 -1
  107. package/src/client/dist/pwa/assets/{workspace-templates-C_bgIQvs.js → workspace-templates-D-lPJQ4G.js} +1 -1
  108. package/src/client/dist/pwa/assets/{xml-YcMBzYAm.js → xml-BbOuqdUe.js} +1 -1
  109. package/src/client/dist/pwa/assets/{yaml-BP_67Sds.js → yaml-gasFQtfk.js} +1 -1
  110. package/src/client/dist/pwa/index.html +1 -1
  111. package/src/client/dist/pwa/sw.js +1 -1
  112. package/src/mcp-server/README.md +13 -19
  113. package/src/mcp-server/kobo-tasks-server.ts +42 -1146
  114. package/src/mcp-server/managed-mcp-dispatcher.ts +1071 -0
  115. package/src/mcp-server/workspace-dialogue-client.ts +26 -1
  116. package/src/client/dist/pwa/assets/ActivityFeed-xJMPnXKA.js +0 -2
  117. package/src/client/dist/pwa/assets/ComparisonPanel-DwaQyEgb.js +0 -2
  118. package/src/client/dist/pwa/assets/CreatePage-DyF_efbs.js +0 -2
  119. package/src/client/dist/pwa/assets/DiffViewer-BivWNITj.js +0 -8
  120. package/src/client/dist/pwa/assets/GitPanel-DQjgGtoN.js +0 -3
  121. package/src/client/dist/pwa/assets/MainLayout-D3pGcTx8.js +0 -2
  122. package/src/client/dist/pwa/assets/QSelect-GQAsf7pB.js +0 -1
  123. package/src/client/dist/pwa/assets/SettingsPage-BCWdQHS5.js +0 -9
  124. package/src/client/dist/pwa/assets/WorkspacePage-BHO1Q8PG.js +0 -4
  125. package/src/client/dist/pwa/assets/WorkspacePage-BnklZAYZ.css +0 -1
  126. package/src/client/dist/pwa/assets/custom-sounds-DPsfYErA.js +0 -1
  127. package/src/client/dist/pwa/assets/de-Bqil7RJE.js +0 -17
  128. package/src/client/dist/pwa/assets/es-CNcMm1Zz.js +0 -17
  129. package/src/client/dist/pwa/assets/fr-BObHEohg.js +0 -17
  130. package/src/client/dist/pwa/assets/i18n-Df_y96N2.js +0 -1
  131. package/src/client/dist/pwa/assets/index-CH4JpI2a.js +0 -20
  132. package/src/client/dist/pwa/assets/it-DDMC7Emk.js +0 -17
  133. package/src/client/dist/pwa/assets/network-auth-CMERg4Qk.js +0 -1
@@ -1,9 +0,0 @@
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{B as fe,Bt as pe,F as me,G as he,H as ge,I as _e,J as ve,Kt as ye,L as be,Mt as R,N as xe,P as Se,Qt as z,Tt as Ce,U as we,Ut as Te,V as Ee,Vt as De,W as Oe,Wt as ke,X as Ae,Xt as je,Y as Me,Zt as Ne,_ as Pe,_n as Fe,b as Ie,bn as Le,c as Re,et as ze,f as Be,gn as Ve,h as He,i as Ue,j as We,jt as Ge,l as B,nn as Ke,nt as qe,o as Je,rn as Ye,s as Xe,tn as Ze,tt as Qe,u as $e,vn as et,wt as tt,xn as nt,yn as rt,z as it,zt as at}from"./index-CH4JpI2a.js";import{t as V}from"./QList-Cx1UfaUm.js";import{i as ot,r as H,s as st,t as U}from"./QSelect-GQAsf7pB.js";import{n as W,t as G}from"./QItemSection-MdJ1_ZK7.js";import{t as ct}from"./QExpansionItem-xIXDevKz.js";import{a as lt,i as K,n as ut,r as dt}from"./use-tours-CMFPIW6f.js";import{t as ft}from"./TouchPan-BwCpe_Oh.js";import{t as pt}from"./QTooltip-be9mqhmB.js";import{t as mt}from"./QChip-Be16M4Ig.js";import{t as ht}from"./ClosePopup-CRV2hxHS.js";import{t as gt}from"./use-is-mobile-CDB_rzM9.js";import{a as _t,c as vt,l as yt,n as bt,o as xt,r as St,s as Ct,t as wt}from"./permissionModes-DLWiBfdb.js";import{t as Tt}from"./QBtnDropdown-Cxr3lBPB.js";import{i as Et,n as Dt,r as Ot,t as kt}from"./MemoryProposalList-B5uVf3KU.js";import{n as At,r as jt,t as Mt}from"./custom-sounds-DPsfYErA.js";import{t as Nt}from"./QBanner-BT2ZemYu.js";import{t as Pt}from"./project-color-C5mEKdlH.js";import{t as Ft}from"./QPage-CqkGHokx.js";import{t as It}from"./DrawerToggleButton-CiVNMTbq.js";import{t as Lt}from"./TourReplayButton-yeGYf6xT.js";import{n as Rt,t as zt}from"./workspace-templates-C_bgIQvs.js";import{t as Bt}from"./workspace-page-layout-Dw9NhZsL.js";var Vt=Object.create,Ht=Object.defineProperty,Ut=Object.getOwnPropertyDescriptor,Wt=Object.getOwnPropertyNames,Gt=Object.getPrototypeOf,Kt=Object.prototype.hasOwnProperty,qt=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Jt=(e,t)=>{let n={};for(var r in e)Ht(n,r,{get:e[r],enumerable:!0});return t||Ht(n,Symbol.toStringTag,{value:`Module`}),n},Yt=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Wt(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Kt.call(e,s)&&s!==n&&Ht(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Ut(t,s))||r.enumerable});return e},Xt=(e,t,n)=>(n=e==null?{}:Vt(Gt(e)),Yt(t||!e||!e.__esModule||!Kt.call(e,`default`)?Ht(n,`default`,{value:e,enumerable:!0}):n,e)),Zt=`q-slider__marker-labels`,Qt=e=>({value:e}),$t=({marker:e})=>s(`div`,{key:e.value,style:e.style,class:e.classes},e.label),en=[34,37,40,33,39,38,35,36],tn={...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`}},nn=[`pan`,`update:modelValue`,`change`];function rn({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(()=>ve(x.value)),j=T(()=>ve(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}`)),me=T(()=>{let e={[F.value]:i.trackSize};return i.trackImg!==void 0&&(e.backgroundImage=`url(${i.trackImg}) !important`),e}),he=T(()=>`q-slider__inner absolute`+(i.innerTrackColor===void 0?``:` bg-${i.innerTrackColor}`)),ge=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 _e(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),ot(a,x.value,S.value)}function ve(e){return k.value===0?0:(e-i.min)/k.value}function ye(e,t){let n=N(e),r=i.vertical?ot((n.top-t.top)/t.height,0,1):ot((n.left-t.left)/t.width,0,1);return ot(b.value?1-r:r,ee.value,j.value)}let be=T(()=>Le(i.markers)&&i.markers>0?i.markers:D.value),R=T(()=>{let e=[],t=be.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=` ${Zt}${_.value}-`;return`q-slider__marker-labels${e}${i.switchMarkerLabelsSide?`switched`:`standard`}${e}${b.value?`rtl`:`ltr`}`}),Se=T(()=>i.markerLabels===!1?null:we(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:{...Te(e.value),...e.style}}))),z=T(()=>({markerList:Se.value,markerMap:Ee.value,classes:xe.value,getStyle:Te})),Ce=T(()=>{let e=A.value===0?`2px`:100*be.value/A.value;return{...ge.value,backgroundSize:i.vertical?`2px ${e}%`:`${e}% 2px`}});function we(e){if(e===!1)return null;if(e===!0)return R.value.map(Qt);if(typeof e==`function`)return R.value.map(t=>{let n=e(t);return nt(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=>nt(e)?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return nt(n)?{...n,value:r}:{value:r,label:n}}).filter(t)}function Te(e){return{[M.value]:`${100*(e-i.min)/k.value}%`}}let Ee=T(()=>{if(i.markerLabels===!1)return null;let e={};return Se.value.forEach(t=>{e[t.value]=t}),e});function De(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](z.value);let e=c[`marker-label`]||$t;return Se.value.map(t=>e({marker:t,...z.value}))}let Oe=T(()=>[[ft,C.value?ke:void 0,void 0,{[te.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function ke(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 Ae(){m.value=!1}function je(r){t(r,n(r)),e(),p.value=!0,f.value=!0,document.addEventListener(`mouseup`,Me,!0)}function Me(){p.value=!1,f.value=!1,e(!0),Ae(),document.removeEventListener(`mouseup`,Me,!0)}function Ne(r){t(r,n(r)),e(!0),Ae()}function Pe(t){en.includes(t.keyCode)&&e(!0)}function Fe(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 Ie(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(()=>Fe(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 Re(e,t,n,r){let a=[];i.innerTrackColor!==`transparent`&&a.push(s(`div`,{key:`inner`,class:he.value,style:ge.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:Ce.value})),r(a);let o=[g(s(`div`,{key:`trackC`,class:oe.value,tabindex:t.value,...n.value},[s(`div`,{class:pe.value,style:me.value},a)]),Oe.value)];return i.markerLabels!==!1&&o[i.switchMarkerLabelsSide?`unshift`:`push`](s(`div`,{key:`markerL`,class:fe.value},De())),o}return w(()=>{document.removeEventListener(`mouseup`,Me,!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:je,onClick:Ne,onBlur:Ae,onKeyup:Pe,getContent:Re,getThumbRenderFn:Ie,convertRatioToModel:_e,convertModelToRatio:ve,getDraggingRatio:ye}}}var an=()=>({}),on=ie({name:`QSlider`,props:{...tn,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:nn,inheritAttrs:!1,setup(e,{emit:n,attrs:r}){let i=re(),a=at(),{state:c,methods:l}=rn({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:ot(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:an,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(!en.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=ot(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 q(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(q(e,t))}):e instanceof Map&&e.forEach((e,r)=>{n.set(r,q(e,t))}),Object.assign(n,...Object.keys(e).map(n=>({[n]:q(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!rt(u.value,l.value)}function v(){d=!0,c.value.hide()}function b(){d=!1,l.value=q(e.modelValue),u.value=q(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(H,{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}=z(),r=Mt(),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:Qe/1024/1024})}function d(e){return e instanceof pe?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(!qe(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){Ie(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(Qe)/1024/1024})),1),O(`div`,dn,[O(`input`,{ref_key:`fileInput`,ref:a,class:`hidden`,type:`file`,"data-test":`custom-sound-input`,accept:e(ze),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(V,{key:1,bordered:``,separator:``,class:`rounded-borders q-mt-sm`},{default:_(()=>[(f(!0),E(D,null,A(e(r).sounds,n=>(f(),b(W,{key:n.id},{default:_(()=>[v(G,null,{default:_(()=>[v(st,{class:`ellipsis`,title:n.name},{default:_(()=>[S(i(n.name),1)]),_:2},1032,[`title`]),v(st,{caption:``},{default:_(()=>[S(i(Math.max(1,Math.round(n.size/1024)))+` KB`,1)]),_:2},1024)]),_:2},1024),v(G,{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},bn={key:1,role:`alert`,class:`text-negative`},xn={key:2,role:`status`},Sn={class:`row q-gutter-sm`},Cn=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}=z(),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 De(`/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 De(`/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(ct,{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(R,{"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(R,{"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(R,{"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`,bn,i(e.$t(`integration.failed`)),1)):x(``,!0),h.value?(f(),E(`p`,xn,i(e.$t(`integration.saved`)),1)):x(``,!0),O(`div`,Sn,[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 wn(e){let t=document.createElement(`textarea`);t.value=e,t.contentEditable=`true`,t.style.position=`fixed`;let n=()=>{};Ke(n),document.body.append(t),t.focus(),t.select();let r=document.execCommand(`copy`);return t.remove(),Ye(n),r}function Tn(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let t=wn(e);return t?Promise.resolve(!0):Promise.reject(t)}function En(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 Dn(e,t,n,r){let i=n.trim()?Pe(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 On={"data-tour":`settings-mcp`,class:`q-mt-lg`},kn={class:`text-subtitle2 q-mb-sm`},An={class:`text-caption text-kobo-3`},jn={key:0,class:`text-caption text-kobo-3`},Mn={key:0,class:`row items-center q-mt-sm`},Nn={class:`mcp-url col`},J={class:`mcp-config q-pa-sm`},Pn={class:`text-caption text-kobo-3`},Fn={class:`row q-gutter-sm`},In={key:1,class:`text-caption text-kobo-3 q-mt-sm`},Ln={key:2,class:`text-caption text-kobo-3 q-mt-sm`},Rn=lt(k({__name:`McpConnectionSettings`,props:{token:{},networkEnabled:{type:Boolean},behindProxy:{type:Boolean}},setup(t){let n=t,{t:r}=z(),a=re(),s=o(null),c=o(!1),l=o(``),d=o(``),p=T(()=>s.value?En(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?Dn(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 De(`/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 Tn(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(Dn(s.value,h.value,l.value,n.token))}return(n,a)=>(f(),E(`section`,On,[O(`div`,kn,i(e(r)(`settings.mcp.title`)),1),O(`p`,An,i(e(r)(`settings.mcp.hint`)),1),c.value?(f(),b(Nt,{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`,jn,i(e(r)(`settings.mcp.remoteDisabled`)),1)),v(R,{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(U,{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`,Mn,[O(`code`,Nn,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`,J,i(g.value),1),O(`p`,Pn,i(e(r)(`settings.mcp.genericFormat`)),1),O(`div`,Fn,[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`,In,i(e(r)(`settings.mcp.tokenUnavailable`)),1)):x(``,!0)],64)):x(``,!0),s.value.stdio?x(``,!0):(f(),E(`p`,Ln,i(e(r)(`settings.mcp.stdioUnavailable`)),1))],64)):(f(),b(oe,{key:2}))]))}}),[[`__scopeId`,`data-v-2ac25d1e`]]),zn={class:`memory-scope-select`},Bn=[`value`],Vn={value:``},Hn=[`value`],Un=lt(k({__name:`MemoryScopeSelect`,props:{scopes:{},modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n,{t:a}=z();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`,zn,[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`,Vn,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,Hn))),128))],40,Bn)]))}}),[[`__scopeId`,`data-v-013b6fd5`]]),Y={class:`memory-settings`,"data-tour":`settings-card-memory`,"aria-labelledby":`memory-settings-title`},Wn={class:`memory-settings__header`},Gn={id:`memory-settings-title`},Kn={class:`memory-settings__modes`,"data-tour":`settings-memory-modes`},qn=[`value`,`checked`,`onChange`],Jn={class:`memory-settings__note`},Yn={class:`memory-settings__note`},Xn={key:0,role:`alert`},Zn={key:1,class:`memory-settings__actions`},Qn=[`disabled`],$n=[`disabled`],er=[`disabled`],tr={key:3,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},nr={class:`memory-settings__note`},rr={key:0,role:`alert`},ir=[`disabled`],ar=[`disabled`],or={key:4,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},sr={class:`memory-settings__note`},cr=[`disabled`],lr=[`disabled`],ur={key:5,class:`memory-clear-confirm`,role:`dialog`,"aria-modal":`true`},dr=[`disabled`],fr={value:``},pr=[`value`],mr=[`disabled`],hr=[`disabled`],gr=[`disabled`],_r=lt(k({__name:`MemorySettingsPanel`,props:{memoryMode:{}},emits:[`update:memoryMode`],setup(t,{emit:n}){let r=t,a=n,{t:s}=z(),c=He(),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&&ye(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 me(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 he(e){y.value=e,S.value=``}async function ge(){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 _e(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 ve(){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 ye(e){return typeof e==`object`&&e&&`status`in e?Number(e.status):void 0}async function be(){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=ye(n)===409?s(`memory.settings.clearConflict`):n instanceof Error?n.message:s(`memory.settings.clearFailed`),ye(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 R(){j.value=!1,M.value=``}function xe(){j.value=!1,M.value=``}return(t,n)=>(f(),E(`section`,Y,[O(`header`,Wn,[O(`h3`,Gn,i(e(s)(`memory.settings.title`)),1),O(`p`,null,i(e(s)(`memory.settings.intro`)),1)]),O(`fieldset`,Kn,[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,qn),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`,Jn,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`,Yn,i(e(s)(`memory.settings.independentNote`)),1),v(Un,{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`,Xn,i(M.value),1)):x(``,!0),d.value?(f(),E(`div`,Zn,[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,Qn),O(`button`,{type:`button`,"data-testid":`memory-clear-preview`,disabled:C.value||w.value||k.value,onClick:ve},i(e(s)(`memory.settings.clear`)),9,$n)])):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,er)):x(``,!0),N.value?(f(),E(`div`,tr,[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`,nr,i(e(s)(`memory.settings.clearWarning`)),1),F.value?(f(),E(`p`,rr,i(F.value),1)):x(``,!0),O(`button`,{type:`button`,"data-testid":`memory-clear-confirm`,disabled:w.value,onClick:be},i(e(s)(`memory.settings.confirmClear`)),9,ir),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,ar)])):x(``,!0),_.value?(f(),E(`div`,or,[O(`h4`,null,i(e(s)(`memory.settings.deleteConfirmTitle`)),1),O(`p`,null,i(e(s)(`memory.settings.deleteConfirm`,{title:_.value.title,scope:me(_.value.scopeId)})),1),O(`p`,sr,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,cr),O(`button`,{type:`button`,"data-testid":`memory-delete-cancel`,disabled:w.value,onClick:pe},i(e(s)(`memory.settings.cancel`)),9,lr)])):x(``,!0),y.value?(f(),E(`div`,ur,[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`,fr,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(me(e.id)),9,pr))),128))],8,dr),[[te,S.value]])]),O(`button`,{type:`button`,"data-testid":`memory-promote-confirm`,disabled:!S.value||k.value,onClick:ge},i(e(s)(`memory.entry.promote`)),9,mr),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,hr)])):x(``,!0),p.value&&d.value?(f(),b(Et,{key:6,"scope-id":d.value,entry:h.value,saving:C.value,error:M.value,conflict:j.value,onSave:le,onReload:R,onRebase:xe,onCancel:n[4]||=e=>{p.value=!1,j.value=!1}},null,8,[`scope-id`,`entry`,`saving`,`error`,`conflict`])):(f(),b(Ot,{key:7,entries:ae.value,disabled:C.value||w.value||k.value,onEdit:ce,onDelete:ue,onPromote:he},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,gr)):x(``,!0),v(kt,{proposals:I.value,"busy-proposal-id":ee.value,onDecision:_e},null,8,[`proposals`,`busy-proposal-id`]),v(Dt,{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`]]),vr={class:`notification-sounds-grid q-mt-md`},yr={class:`text-subtitle2`},br={class:`text-kobo-3 text-caption q-mb-sm`},xr={class:`row items-center q-gutter-sm`},Sr={class:`row items-center q-gutter-sm q-mt-sm`},Cr={class:`text-kobo-2 text-caption volume-label`},wr={class:`text-kobo-2 text-caption volume-value`},Tr=lt(k({__name:`PrNotificationSoundSettings`,props:{modelValue:{},generalSound:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:o}=z(),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=Mt(),l=T(()=>[{label:o(`settings.soundGeneral`),value:ge},...we.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&&Ie(t??r.generalSound,r.modelValue[e.volumeKey])}return(n,r)=>(f(),E(`div`,vr,[(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`,yr,i(n.title),1),O(`div`,br,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`,xr,[v(U,{"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`,Sr,[O(`div`,Cr,i(e(o)(`settings.notificationVolume`)),1),v(on,{"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`,wr,i(Math.round(t.modelValue[n.volumeKey]*100))+`% `,1)])]))),128))]))}}),[[`__scopeId`,`data-v-dbeaedac`]]),Er={class:`script-variables text-caption q-mt-sm q-mb-sm`},Dr={class:`text-kobo-3`},Or={class:`q-mt-sm q-mb-xs`},kr={class:`q-mb-xs`},Ar='docker compose -p "${PROJECT_NAME:?Missing Docker project}" down --remove-orphans',X=lt(k({__name:`ScriptVariablesHelp`,props:{event:{}},setup(t){let{t:n}=z(),r=[[`WORKSPACE_ID`,`workspaceId`],[`WORKSPACE_NAME`,`workspaceName`],[`BRANCH_NAME`,`branchName`],[`SOURCE_BRANCH`,`sourceBranch`],[`PROJECT_PATH`,`projectPath`],[`INSTANCE`,`instance`],[`PROJECT_NAME`,`projectName`]],a={"session-ended":[`KOBO_SESSION_ID`,`KOBO_SESSION_END_REASON`,`KOBO_SESSION_EXIT_CODE`,`KOBO_SESSION_STOP_CAUSE`,`KOBO_AUTOLOOP_ACTIVE`],"pr-merged":[`KOBO_PR_NUMBER`,`KOBO_PR_URL`],"autoloop-disabled":[`KOBO_AUTOLOOP_REASON`,`KOBO_TASKS_PENDING`],"kobo-shutdown":[`KOBO_SHUTDOWN_SIGNAL`]};return(o,s)=>(f(),E(`details`,Er,[O(`summary`,Dr,i(e(n)(`settings.scriptVariables.title`)),1),O(`p`,Or,i(e(n)(`settings.scriptVariables.cwd`)),1),O(`dl`,null,[(f(),E(D,null,A(r,([t,r])=>(f(),E(D,{key:t},[O(`dt`,null,[O(`code`,null,i(t),1)]),O(`dd`,null,i(e(n)(`settings.scriptVariables.${r}`)),1)],64))),64)),t.event?(f(),E(D,{key:0},[s[0]||=O(`dt`,null,[O(`code`,null,`KOBO_HOOK_EVENT`)],-1),O(`dd`,null,[O(`code`,null,i(t.event),1)]),O(`dt`,null,[O(`code`,null,i(a[t.event].join(`, `)),1)]),O(`dd`,null,i(e(n)(`settings.scriptVariables.${t.event}`)),1)],64)):x(``,!0)]),O(`p`,kr,i(e(n)(`settings.scriptVariables.guard`)),1),O(`code`,null,i(Ar))]))}}),[[`__scopeId`,`data-v-9a6e6f9d`]]),jr=lt(k({__name:`SettingsNavList`,props:{navItems:{},activeTab:{}},emits:[`select`],setup(e,{emit:t}){let n=t;return(t,a)=>(f(),b(V,{dense:``,class:`settings-nav__list`},{default:_(()=>[(f(!0),E(D,null,A(e.navItems,t=>g((f(),b(W,{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(G,{avatar:``,class:`settings-nav__icon`},{default:_(()=>[v(I,{name:t.icon,size:`16px`},null,8,[`name`])]),_:2},1024),v(G,{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`]]),Mr={class:`whip-shortcut-recorder`},Nr={class:`text-caption text-kobo-2 q-mb-xs`},Pr={class:`row items-center no-wrap q-gutter-xs`},Fr={"data-testid":`whip-shortcut-value`},Ir={key:0,role:`status`,"aria-live":`polite`,class:`q-sr-only`},Lr={key:1,role:`alert`,class:`text-negative text-caption q-mt-xs`},Rr=lt(k({__name:`WhipShortcutRecorder`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,{t:s}=z(),c=_e(),l=o(!1),u=o(``),d=T(()=>l.value?s(`settings.whipShortcutRecording`):be(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=me(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`,it)}return w(m),(t,n)=>(f(),E(`div`,Mr,[O(`div`,Nr,i(e(s)(`settings.whipShortcut`)),1),O(`div`,Pr,[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`,Fr,i(d.value),1),v(pt,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(pt,null,{default:_(()=>[S(i(e(s)(`settings.whipShortcutReset`)),1)]),_:1})]),_:1},8,[`aria-label`])]),l.value?(f(),E(`div`,Ir,i(e(s)(`settings.whipShortcutRecording`)),1)):x(``,!0),u.value?(f(),E(`div`,Lr,i(u.value),1)):x(``,!0)]))}}),[[`__scopeId`,`data-v-d8618bd9`]]);function zr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Br(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(!Br(e[n],t[n]))return!1;return!0}return zr(e)&&zr(t)?Vr(e,t):!1}function Vr(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)||!Br(e[r],t[r]))return!1;return!0}function Hr(e){if(Array.isArray(e))return e.map(Hr);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]=Hr(r);return t}return e}function Ur(e){return Hr(e)}function Wr(e){return e?{disabled:!1,hintKey:null}:{disabled:!0,hintKey:`settings.whipVolumeMasterAudioDisabled`}}var Gr={key:0,class:`settings-load-error`},Kr={class:`column`},qr={class:`settings-load-error__title`},Jr={class:`settings-load-error__detail`},Yr={class:`settings-load-error__hint`},Xr={class:`settings-layout`},Zr={key:0,class:`settings-nav`},Qr={class:`settings-nav__title`},$r={class:`settings-nav`},ei={class:`settings-nav__title`},ti={class:`settings-content`},ni={class:`settings-content__header`},ri={class:`settings-content__title`},ii={class:`text-caption text-kobo-3 q-mb-md`},ai={class:`settings-panels`},oi={class:`settings-global-wrap`},si={key:1,"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ci={class:`text-subtitle2 q-mb-sm`},li={key:2,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-mt-xs`},fi={key:3,"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pi={class:`text-subtitle2 q-mb-sm`},mi={class:`text-caption text-kobo-3 q-mt-xs`},hi={key:4,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gi={class:`text-subtitle2 q-mb-sm`},_i={class:`text-caption text-kobo-3 q-mb-xs q-mt-sm`},vi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},yi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},bi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},xi={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},Si={key:5,"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ci={class:`q-mb-md`,"data-tour":`settings-agent-watchdog`},wi={class:`text-caption text-kobo-3 q-mt-xs`},Ti={class:`q-mb-md`,"data-tour":`settings-immediate-messages`},Ei={class:`text-caption text-kobo-3 q-mt-xs`},Di={class:`q-mb-md`,"data-tour":`settings-progress-bars`},Oi={class:`text-caption text-kobo-3 q-mt-xs`},ki={class:`text-subtitle2 q-mb-sm`},Ai={class:`text-subtitle2 q-mb-sm q-mt-md`},ji={class:`text-subtitle2 q-mb-sm q-mt-md`},Mi={class:`text-caption text-kobo-3 q-mb-sm`},Ni={class:`text-subtitle2 q-mb-sm q-mt-md`},Pi={key:6,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Fi={class:`text-subtitle2 q-mb-sm`},Ii={class:`row items-center q-gutter-lg`},Li={key:7,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ri={class:`text-subtitle2 q-mb-xs`},zi={class:`text-kobo-3 text-caption q-mb-md`},Bi={key:0,class:`column q-gutter-sm q-mt-md`},Vi={class:`row items-center q-gutter-sm`},Hi={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},Ui={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Wi={key:0,class:`text-kobo-3 text-caption`},Gi={key:8,"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ki={class:`text-subtitle2 q-mb-sm`},qi={class:`text-kobo-3 text-caption q-mb-md`},Ji={class:`notification-sounds-grid q-mt-md`},Yi={class:`notification-sound-card q-pa-md rounded-borders`},Xi={class:`text-subtitle2`},Zi={class:`text-kobo-3 text-caption q-mb-sm`},Qi={class:`column q-gutter-xs q-mb-sm`},$i={class:`row items-center q-gutter-sm q-mb-sm`},ea={class:`row items-center q-gutter-sm`},ta={class:`row items-center q-gutter-sm q-mt-sm`},na={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},ra={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},ia={class:`notification-sound-card q-pa-md rounded-borders`},aa={class:`text-subtitle2`},oa={class:`text-kobo-3 text-caption q-mb-sm`},sa={class:`row items-center q-gutter-sm`},ca={class:`row items-center q-gutter-sm q-mt-sm`},la={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},ua={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},da={class:`notification-sound-card q-pa-md rounded-borders`},fa={class:`text-subtitle2`},pa={class:`text-kobo-3 text-caption q-mb-sm`},ma={class:`row items-center q-gutter-sm`},ha={class:`row items-center q-gutter-sm q-mt-sm`},ga={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},_a={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},va={class:`notification-sound-card q-pa-md rounded-borders`},ya={class:`text-subtitle2`},ba={class:`text-kobo-3 text-caption q-mb-sm`},xa={class:`row items-center q-gutter-sm`},Sa={class:`row items-center q-gutter-sm q-mt-sm`},Ca={class:`text-kobo-2 text-caption`,style:{"min-width":`58px`}},wa={class:`text-kobo-2 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Ta={key:9,"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ea={class:`row items-center q-mb-sm`},Da={class:`text-subtitle2`},Oa={class:`column q-gutter-xs`},ka={class:`row items-center q-gutter-sm`},Aa={class:`row items-center q-gutter-sm`},ja={class:`q-pa-sm text-caption text-kobo-2`},Ma={class:`q-mb-sm`},Na={class:`q-mb-sm`},Pa={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-kobo-2`},Fa={class:`q-mb-xs text-kobo-2`},Ia={class:`q-mb-sm`},La={class:`q-mb-xs text-kobo-2`},Ra={key:10,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},za={class:`text-subtitle2 q-mb-sm`},Ba={class:`row q-col-gutter-sm`},Va={class:`col-12 col-sm-6`},Ha={class:`col-12 col-sm-6`},Ua={key:11,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Wa={class:`text-subtitle2 q-mb-sm`},Ga={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},Ka={class:`text-caption text-kobo-2 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},qa={class:`column q-gutter-sm`},Ja={class:`row items-center q-gutter-sm`},Ya={class:`text-body2 text-kobo-1`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},Xa={class:`text-caption text-kobo-3`},Za={key:0,class:`q-mt-sm`},Qa={class:`row items-center q-mt-xs`},$a={class:`text-caption text-kobo-3`},eo={class:`text-caption text-kobo-2`},to={key:1,class:`text-caption text-kobo-3 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},no={key:12,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ro={class:`text-subtitle2 q-mb-sm`},io={class:`q-pa-sm column q-gutter-sm`},ao={class:`row items-center q-gutter-sm`},oo={class:`text-caption text-kobo-2`},so={class:`text-caption text-kobo-2`,style:{"min-width":`40px`,"text-align":`right`}},co={class:`text-caption text-kobo-3`},lo={class:`text-caption text-kobo-3`},uo={class:`text-caption text-kobo-3`},fo={class:`text-caption text-kobo-3`},po={class:`q-pa-sm column q-gutter-sm`},mo={key:13,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-tour":`settings-card-git`},ho={class:`row items-center q-mb-sm q-mt-md`},go={class:`text-subtitle2`},_o={class:`text-caption text-kobo-3 q-mb-sm`},vo={key:14,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},yo={class:`text-subtitle2 q-mb-sm`},bo={class:`text-caption text-kobo-3 q-mb-sm`},xo={class:`row items-center no-wrap`},So={key:1,class:`text-caption text-kobo-3 q-mb-sm`},Co={class:`row items-center q-gutter-sm`},wo={key:15,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},To={class:`row items-center q-mb-sm`},Eo={class:`text-subtitle2`},Do={class:`text-caption text-kobo-3 q-mb-sm`},Oo={class:`q-mb-sm`},ko={class:`row items-center q-mb-sm q-mt-md`},Ao={class:`text-subtitle2`},jo={class:`text-caption text-kobo-3 q-mb-sm`},Mo={class:`row items-center q-mb-sm q-mt-md`},No={class:`text-subtitle2`},Po={class:`text-caption text-kobo-3 q-mb-sm`},Fo={class:`row items-center q-mb-sm q-mt-md`},Io={class:`text-subtitle2`},Lo={class:`text-caption text-kobo-3 q-mb-sm`},Ro={key:16,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},zo={class:`text-subtitle2 q-mb-sm`},Bo={class:`text-caption text-kobo-3 q-mb-sm`},Vo={key:17,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ho={class:`text-subtitle2 q-mb-sm`},Uo={class:`text-caption text-kobo-3 q-mb-sm`},Wo={key:18,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Go={class:`text-subtitle2 q-mb-sm`},Ko={class:`text-caption text-kobo-3 q-mb-sm`},qo={key:19,class:`settings-subcard q-pa-md rounded-borders q-pb-sm 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={key:21,"data-tour":`settings-card-sentry`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},$o={class:`text-subtitle2 q-mb-sm`},es={class:`text-caption text-kobo-3 q-mb-sm`},ts={class:`q-mb-sm`},ns={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},rs={key:23,"data-tour":`settings-card-forge`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},is={class:`text-subtitle2 q-mb-sm`},as={class:`text-caption text-kobo-3 q-mb-md`},os={class:`text-subtitle2 q-mb-sm`},ss={class:`text-caption text-kobo-3 q-mb-sm`},cs={class:`q-mb-sm`},ls={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},us={class:`q-mb-sm`},ds={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},fs={class:`row items-center q-mb-sm`},ps={class:`text-subtitle2`},ms={class:`text-caption text-kobo-3 q-mb-xs`},hs={class:`text-subtitle2 q-mb-sm`},gs={class:`text-caption text-kobo-3 q-mb-sm`},_s={class:`q-mb-sm`},vs={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},ys={class:`q-mb-sm`},bs={class:`row items-center q-mb-xs`},xs={class:`field-label-sub text-caption text-kobo-3 col`},Ss=[`src`,`alt`],Cs={key:1,class:`text-caption text-kobo-3 q-py-sm`},ws={key:0,class:`text-caption text-orange-5 q-mb-xs`},Ts={class:`text-subtitle2 q-mb-sm`},Es={class:`row items-center q-mb-sm`},Ds={class:`text-subtitle2`},Os={class:`text-caption text-kobo-3 q-mb-xs`},ks={key:27,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},As={class:`text-subtitle2 q-mb-sm`},js={class:`text-caption text-kobo-3 q-mb-sm`},Ms={key:28,"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ns={class:`text-subtitle2 q-mb-sm`},Ps={class:`text-caption text-kobo-3 q-mb-sm`},Fs={key:29,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Is={class:`text-subtitle2 q-mb-sm`},Ls={class:`text-caption text-kobo-3 q-mb-sm`},Rs={class:`text-caption text-kobo-3 q-mt-md q-mb-xs`},zs={key:30,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bs={class:`text-subtitle2 q-mb-sm`},Vs={class:`text-caption text-kobo-3 q-mb-sm`},Hs={key:31,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-tour":`settings-shutdown`},Us={class:`q-mb-md`},Ws={class:`text-caption text-kobo-3 q-mt-xs`},Gs={class:`text-subtitle2 q-mb-sm`},Ks={class:`text-caption text-kobo-3 q-mb-sm`},qs={key:32,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Js={class:`text-subtitle2 q-mb-sm`},Ys={class:`text-caption text-kobo-3 q-mb-sm`},Xs={key:33,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zs={class:`text-subtitle2 q-mb-sm`},Qs={class:`text-caption text-kobo-3 q-mb-sm`},$s={key:34,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ec={class:`text-subtitle2 q-mb-sm`},tc={class:`text-caption text-kobo-3 q-mb-sm`},nc={key:35,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},rc={class:`row items-center justify-between q-mb-sm`},ic={class:`text-subtitle2`},ac={class:`text-caption text-kobo-3 q-mb-xs`},oc={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},sc={key:36,"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},cc={class:`text-subtitle2 q-mb-sm`},lc={class:`text-caption text-kobo-3 q-mb-sm`},uc={class:`text-caption text-kobo-3 q-mt-xs`},dc={"data-tour":`settings-card-worktrees-purge`},fc={class:`text-caption text-kobo-3 q-mt-xs`},pc={"data-tour":`settings-card-worktrees-retention`},mc={class:`text-subtitle2 q-mb-sm`},hc={class:`text-caption text-negative q-mb-sm`},gc={class:`text-caption text-kobo-3 q-mb-sm`},_c={key:0,class:`text-caption text-kobo-3 q-mt-sm`},vc={class:`q-pa-sm text-caption text-kobo-2`,style:{"line-height":`1.55`}},yc={class:`text-weight-medium text-kobo-1 q-mb-xs`},bc={class:`q-mb-xs`},xc={class:`purge-docs-code`},Sc={class:`text-kobo-3 q-mb-md`},Cc={class:`text-weight-medium text-kobo-1 q-mb-xs`},wc={class:`q-mb-xs`},Tc={class:`q-pl-md q-my-xs`},Ec={class:`purge-docs-code`},Dc={class:`text-kobo-3 q-mb-md`},Oc={class:`text-weight-medium text-kobo-1 q-mb-xs`},kc={class:`q-mb-xs`},Ac={class:`q-mb-xs text-kobo-3`},jc={class:`purge-docs-code`},Mc={class:`q-mb-xs text-kobo-3`},Nc={class:`purge-docs-code`},Pc={class:`text-kobo-3`},Fc={key:37,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ic={class:`text-subtitle2 q-mb-sm`},Lc={class:`text-caption text-kobo-3 q-mb-sm`},Rc={key:1,class:`q-mt-md`},zc={class:`text-caption text-kobo-3 q-mt-xs`},Bc={class:`q-mt-md`},Vc={class:`text-caption text-kobo-3 q-mb-xs`},Hc={class:`q-mt-md`},Uc={class:`text-caption text-kobo-3 q-mb-xs`},Wc={key:0,class:`text-caption text-kobo-3`},Gc={key:0,class:`q-mt-md`},Kc={class:`text-caption text-kobo-3 q-mb-xs`},qc=[`src`,`alt`],Jc={key:38,"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yc={class:`text-subtitle2 q-mb-sm`},Xc={class:`text-caption text-kobo-3 q-mb-sm`},Zc={class:`row q-gutter-sm`},Qc={key:0,class:`q-pa-none`},$c={class:`row q-gutter-md`,style:{"min-height":`500px`}},el={class:`project-list-col`},tl={class:`settings-card rounded-borders`,style:{height:`100%`}},nl={class:`q-pa-sm`},rl={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-kobo-3`,style:{"letter-spacing":`0.05em`}},il={key:0,class:`q-pa-md text-center text-caption text-kobo-3`},al={class:`q-pa-sm`},ol={class:`project-form-col`},sl={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},cl={class:`row items-center q-mb-md`},ll={class:`text-subtitle1 text-weight-medium text-kobo-1`},ul={key:0,class:`q-mb-md`},dl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},fl={class:`text-caption text-kobo-3 q-mt-xs`},pl={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ml={class:`text-subtitle2 q-mb-md`},hl={class:`q-mb-md`},gl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},_l={class:`q-mb-md`},vl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},yl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},bl={class:`row items-center q-gutter-xs`},xl={class:`text-caption text-kobo-3 q-mt-xs`},Sl={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Cl={class:`text-subtitle2 q-mb-md`},wl={class:`q-mb-md`},Tl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},El={class:`q-mb-md`},Dl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Ol={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},kl={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,"data-test":`project-git-settings`},Al={class:`text-subtitle2 q-mb-md`},jl={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:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Fl={class:`text-subtitle2 q-mb-md`},Il={class:`q-mb-md`},Ll={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Rl={class:`text-caption text-kobo-3 q-mb-xs`},zl={class:`q-mb-md`},Bl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Vl={class:`text-caption text-kobo-3 q-mb-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={key:0,class:`q-mb-md`},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={key:1,class:`q-mb-md`},Yl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Xl={class:`text-caption text-kobo-3 q-mb-xs`},Zl={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},Ql={class:`text-caption text-kobo-3 q-mt-xs`},$l={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},eu={class:`text-subtitle2 q-mb-md`},tu={class:`q-mb-md`},nu={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},ru={class:`text-caption text-kobo-3 q-mb-xs`},iu={class:`text-caption text-kobo-3 q-mt-xs`},au={class:`q-mb-md`},ou={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},su={class:`text-caption text-kobo-3 q-mb-xs`},cu={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-kobo-3`},lu={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},uu={class:`text-caption text-kobo-3 q-mb-xs`},du={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},fu={class:`text-caption text-kobo-3 q-mb-xs`},pu={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},mu={class:`text-caption text-kobo-3 q-mb-xs`},hu={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},gu={class:`text-caption text-kobo-3 q-mb-xs`},_u={class:`field-label text-body2 text-weight-medium q-mb-xs text-kobo-3`},vu={class:`text-caption text-kobo-3 q-mb-xs`},yu={class:`row items-center justify-between q-mb-xs`},bu={class:`field-label text-body2 text-weight-medium text-kobo-3`},xu={class:`text-caption text-kobo-3 q-mb-xs`},Su={class:`text-caption text-kobo-3 mono-guide q-mb-sm`},Cu={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wu={class:`text-subtitle2 q-mb-md`},Tu={class:`q-mb-md`},Eu={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Du={class:`field-label-sub text-caption q-mb-xs text-kobo-3`},Ou={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ku={class:`text-subtitle2 q-mb-xs`},Au={class:`text-caption text-kobo-3 q-mb-sm`},ju={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Mu={class:`text-subtitle2 q-mb-xs`},Nu={class:`text-caption text-kobo-3 q-mb-sm`},Pu={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Fu={class:`text-body2 text-kobo-3`},Iu={key:1,class:`q-pa-none`},Lu={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},Ru={class:`row items-center justify-between q-mb-md`},zu={class:`text-subtitle1 text-weight-medium text-kobo-1`},Bu={class:`row q-gutter-sm items-center`},Vu={key:0,class:`text-kobo-3 q-py-lg text-center`},Hu={key:1,class:`column q-gutter-sm`},Uu={class:`row items-start justify-between no-wrap`},Wu={class:`col`},Gu={class:`text-body1 text-weight-medium`,style:{"font-family":`var(--kobo-font-mono)`}},Ku={class:`text-caption text-kobo-2 q-mt-xs`},qu={class:`row no-wrap q-gutter-xs`},Ju={class:`text-caption text-kobo-3 q-mt-lg`,style:{"font-family":`var(--kobo-font-mono)`}},Yu={key:2,class:`q-pa-none`},Xu={"data-tour":`settings-card-workspaceTemplates`,class:`settings-card rounded-borders q-pa-lg`},Zu={class:`text-subtitle1 text-weight-medium text-kobo-1 q-mb-xs`},Qu={class:`text-caption text-kobo-3 q-mb-md`},$u={key:0,class:`text-caption text-kobo-3`},ed={class:`row no-wrap q-gutter-xs`},td={class:`mono-guide q-ma-none`},nd={class:`settings-savebar__label`},rd={class:`text-subtitle1`},id={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`var(--kobo-font-mono)`,columns:`2`,"column-gap":`24px`}},ad={key:0,class:`text-negative text-caption`},od=2500,sd=lt(k({__name:`SettingsPage`,setup(t){let n=re(),s=We(),c=Ce(),d=zt(),{t:p,locale:y}=z(),{scheduleAutoRun:w}=ut(),{isMobile:k}=gt(),j=dt(),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=Ue();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(``),pe=o(``),me=o(``),_e=o(``),be=o(``),De=o(``),Me=o(``),Pe=o(``),Le=o(!1),ze=o(5),He=o(!1),Ke=o(!1),qe=o(!0),Ye=o(!0),Qe=o(0),nt=o(!0),rt=o(0),at=o(0),ot=o(`hybrid`),H=o({enabled:!1,token:``,behindProxy:!1,urls:[]}),lt=o(!1),ft=o(``);function Et(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 Dt=T(()=>H.value.urls.map(Et));async function Ot(){try{let e=await Te(`/api/settings/network`);if(!e.ok)throw await ye(e);H.value=await e.json(),await kt()}catch{n.notify({type:`negative`,message:p(`settings.network.loadFailed`),position:`top`})}}async function kt(){let e=Dt.value[0];if(!e||!H.value.token){ft.value=``;return}let t=`${e}/?token=${encodeURIComponent(H.value.token)}`;try{let{default:e}=await Ne(async()=>{let{default:e}=await import(`./browser-C9U-mSDm.js`).then(e=>Xt(e.default,1));return{default:e}},[]);ft.value=await e.toDataURL(t,{margin:1,width:200})}catch{ft.value=``}}async function Vt(e){try{let t=await Te(`/api/settings/network`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw await ye(t);let n=await t.json();H.value={enabled:n.enabled,token:n.token,behindProxy:n.behindProxy,urls:n.urls},n.restartRequired&&(lt.value=!0),await kt()}catch{n.notify({type:`negative`,message:p(`settings.network.updateFailed`),position:`top`}),await Ot()}}function Ht(e){Vt({enabled:e})}function Ut(e){Vt({behindProxy:e})}function Wt(){n.dialog({title:p(`settings.network.title`),message:p(`settings.network.regenerateConfirm`),cancel:!0,persistent:!0}).onOk(()=>{Vt({regenerate:!0})})}function Gt(){Wf(H.value.token)}let Kt=o(!0),qt=o(typeof Notification>`u`?`unsupported`:Notification.permission),Jt=o(!0),Yt=o(!1),Zt=o(!1),Qt=o(!1),$t=o(fe),en=o(ge),tn=o(ge),nn=o(ge),rn=o(1),an=o(1),q=o(1),cn=o(1),ln=o({...Ee}),un=o(``),dn=o(``),fn=o(``),pn=o(``),mn=o(!1),hn=o(!0),_n=o(!1),vn=o(it),yn=o(1),bn=T(()=>Wr(Jt.value)),xn=T(()=>{switch(qt.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 Sn(){if(typeof Notification>`u`){n.notify({type:`negative`,message:p(`settings.browserNotificationUnsupported`),position:`top`});return}if(Notification.permission==="default"?qt.value=await Notification.requestPermission():qt.value=Notification.permission,qt.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 wn=o(null),Tn=o({});async function En(e){wn.value=e;try{let t=await Te(`/api/${e}/test`,{method:`POST`}),n=await t.json();Tn.value[e]=t.ok?n:{ok:!1,durationMs:0,detail:n.error??`HTTP ${t.status}`}}catch(t){Tn.value[e]={ok:!1,durationMs:0,detail:t instanceof Error?t.message:String(t)}}finally{wn.value=null}}let Dn=o([]),On=o(!1),kn=o(``),An=T(()=>Dn.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function jn(e=!1){if(!On.value&&!(!e&&Dn.value.length>0)){On.value=!0,kn.value=``;try{let e=await Te(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Dn.value=Array.isArray(t.users)?t.users:[]}catch(e){kn.value=e instanceof Error?e.message:String(e),Dn.value=[]}finally{On.value=!1}}}let Mn=o(``),Nn=o(``),J=o(null),Pn=o(`bypass`),Fn=o(`bypass`),In=o(``),Ln=o(``),zn=o(``),Bn=o(``),Vn=o(!0),Hn=o(!0),Un=o([]),Y=o([]),Wn=o(``),Gn=o(``),Kn=o(``),qn=o(`no-tasks`),Jn=o(!1),Yn=o(``),Xn=o(``),Zn=o(``),Qn=o(``),$n=o(``),er=o(``),tr=o(``),nr=o(!1);function rr(e){Q.value.path=e}let ir=T(()=>[{label:p(`settings.cleanupScriptMode.inherit`),value:``},{label:p(`settings.cleanupScriptMode.idle`),value:`idle`},{label:p(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),ar=o(Se),or=o(null),sr=o(!0);function cr(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function lr(){let e=cr(Wn.value);e&&!Y.value.includes(e)&&(Y.value.push(e),Wn.value=``)}function ur(e){Y.value.splice(e,1)}function dr(e,t){let n=cr(t);if(!n)return;let r=Y.value.indexOf(n);(r===-1||r===e)&&(Y.value[e]=n)}function fr(e,t){let n=e+t;if(n<0||n>=Y.value.length)return;let r=Y.value;[r[e],r[n]]=[r[n],r[e]]}let pr=o(!1),mr=o(`standard`),hr=T(()=>{switch(mr.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`}}),gr=o(``),vr=o(``),yr=o(``),br=o(``),xr=o(``),Sr=o(null),Cr=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 wr(e,t){Sr.value=e;try{let r=await Te(`/api/settings/skill-suite-prompts/${t}`);if(!r.ok)throw Error(await r.text());let i=await r.json(),a={reviewTemplate:gr,autoLoopReviewGate:vr,autoLoopGroomingIntro:yr,qaPromptTemplate:br,brainstormingInstruction:xr};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{Sr.value=null}}let Er=o(!1),Dr=o(`alt`),Or=o(`auto`),kr=o(null),Ar=o(``),Mr=o(``),Nr=o(0),Pr=o(``),Fr=o(!1),Ir=o(!0),Lr=o(null),zr=o(!1);function Br(){n.dialog({title:p(`settings.skillSuite.reloadDefaults`),message:p(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{gr.value=yt,vr.value=xt,yr.value=_t,br.value=vt,xr.value=Ct})}function Hr(e){let t=e===`global`?er.value:Q.value.changeSourceBranchScript,r=()=>{e===`global`?er.value=tr.value:Q.value.changeSourceBranchScript=tr.value};if(!t.trim()||t===tr.value){r();return}n.dialog({title:p(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:p(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function sd(e){return!e||e===`tiny`||e===`base`?.1:.2}let cd=[e=>e.trim().length>0||p(`settings.worktreesPathRequired`)],ld=o(!1),ud=o(xe()),dd=o({notion:{configured:!1},sentry:{configured:!1}}),fd=o({notion:{command:``,args:``,environment:``},sentry:{command:``,args:``,environment:``}}),pd=T(()=>Object.values(fd.value).some(e=>e.command!==``||e.args!==``||e.environment!==``)),md=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:``,shutdownScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),hd=[`workflowPolicy`,`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`ciFixPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`sessionEndedScript`,`shutdownScript`,`prMergedScript`,`autoLoopDisabledScript`,`devServer`,`e2e`,`finalization`],gd=o(null),_d=o(null),vd=T(()=>s.projects.map(e=>({value:e.path,label:Yf(e)||e.path})));function yd(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 bd(){let e={workflowPolicy:{},defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,sessionEndedScript:``,shutdownScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return hd.every(t=>JSON.stringify(Q.value[t])===JSON.stringify(e[t]))}function xd(e){if(e===null){gd.value=null,_d.value=null;return}if(_d.value===null&&bd()){yd(e),gd.value=e,_d.value=e;return}let t=s.projects.find(t=>t.path===e),r=t&&Yf(t)||e;n.dialog({title:p(`settings.copyFromConfirmTitle`),message:p(`settings.copyFromConfirm`,{project:r}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{yd(e),gd.value=e,_d.value=e}).onCancel(()=>{gd.value=_d.value})}let Sd=o([]),Cd=o([]);async function wd(){try{let e=await Te(`/api/skills`);e.ok&&(Sd.value=await e.json())}catch{}}function Td(e,t){t(()=>{let t=e.trim().toLowerCase();Cd.value=t?Sd.value.filter(e=>e.toLowerCase().includes(t)):Sd.value.slice()})}let Ed=o([]),Dd=o(!1),Od=o(!1),kd=o(!1),Ad=o(!1),jd=o(null),Md=o(``),Nd=o(``),Pd=o(``),Fd=o(``),Id=o(!1),Ld=o(!1),Rd=T(()=>[...c.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),zd=[`{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 Bd(){jd.value=null,Md.value=``,Nd.value=``,Pd.value=``,Fd.value=``,Ad.value=!0}function Vd(e){jd.value=e.slug,Md.value=e.slug,Nd.value=e.description,Pd.value=e.content,Fd.value=``,Ad.value=!0}async function Hd(){Fd.value=``;let e=Md.value.trim(),t=Nd.value.trim();if(jd.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){Fd.value=p(`templates.slugInvalid`);return}if(!t){Fd.value=p(`templates.descriptionRequired`);return}if(!Pd.value.trim()){Fd.value=p(`templates.contentRequired`);return}Id.value=!0;try{jd.value===null?await c.createTemplate({slug:e,description:t,content:Pd.value}):await c.updateTemplate(jd.value,{description:t,content:Pd.value}),Ad.value=!1}catch(e){Fd.value=e instanceof Error?e.message:p(`templates.createFailed`)}finally{Id.value=!1}}function Ud(){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()=>{Ld.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{Ld.value=!1}})}async function Wd(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 Gd(e){let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.toLocaleDateString()}function Kd(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 qd(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 Jd(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 Yd=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function Xd(e){je(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 Zd=T(()=>[...St.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),Qd=T(()=>[...bt.map(e=>({label:p(e.i18nLabelKey),value:e.value}))]),$d=T(()=>[{label:p(`settings.useGlobal`),value:``},...Zd.value]),ef=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`}]),tf=T(()=>wt[`claude-code`].map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),nf=T(()=>wt.codex.map(e=>({label:p(`agentPermissionMode.${e}`),value:e}))),rf=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`)}]),af=T(()=>[{label:p(`settings.mcpAutoSelect`),value:``},...s.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),of=Mt(),sf=T(()=>[...we.map(e=>({label:p(e.labelKey),value:e.id})),...of.options]),cf=T(()=>[{label:p(`settings.soundGeneral`),value:ge},...sf.value]),lf=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})))),uf=[{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 df(){Ie($t.value,rn.value)}function ff(){Ie(en.value,an.value)}function pf(){Ie(tn.value,q.value)}function mf(){Ie(nn.value,cn.value)}let $=T(()=>md.value<0||md.value>=s.projects.length?null:s.projects[md.value]??null),hf=o(yf()),gf=o({});function _f(){return{workflowPolicy:ud.value,claudeModel:le.value,codexModel:ue.value,prPrompt:de.value,reviewPrompt:pe.value,ciFixPrompt:me.value,finalizationPrompt:_e.value,gitConventions:be.value,editorCommand:De.value,fileManagerCommand:Me.value,terminalCommand:Pe.value,autoPurgeOnPrMerged:Le.value,autoLoopMaxRetries:ze.value,agentWatchdogEnabled:He.value,forceImmediateMessages:Ke.value,showProgressBars:qe.value,stopDevServersOnShutdown:Ye.value,awaitingUserReminderMinutes:Qe.value,activityDigestEnabled:nt.value,wsEventsRetentionDays:rt.value,wsEventsKeepPerWorkspace:at.value,browserNotifications:Kt.value,audioNotifications:Jt.value,audioQuestionNotifications:Yt.value,audioWorkspaceCreatedNotifications:Zt.value,audioAgentErrorNotifications:Qt.value,audioNotificationSound:$t.value,audioQuestionSound:en.value,audioWorkspaceCreatedSound:tn.value,audioAgentErrorSound:nn.value,audioNotificationVolume:rn.value,audioQuestionVolume:an.value,audioWorkspaceCreatedVolume:q.value,audioAgentErrorVolume:cn.value,prNotificationSounds:ln.value,notionStatusProperty:un.value,notionStatus:dn.value,notionAssigneeProperty:fn.value,notionUserId:pn.value,notionInitialPrompt:Mn.value,sentryInitialPrompt:Nn.value,claudePermissionMode:Pn.value,codexPermissionMode:Fn.value,notionMcpKey:In.value,sentryMcpKey:Ln.value,bitbucketToken:zn.value,bitbucketUsername:Bn.value,notionEnabled:Vn.value,sentryEnabled:Hn.value,showVerboseSystemMessages:mn.value,showThinkingBlocks:hn.value,whipEnabled:_n.value,whipShortcut:vn.value,whipVolume:yn.value,tags:Un.value,branchPrefixes:Y.value,setupScript:Gn.value,cleanupScript:Kn.value,cleanupScriptMode:qn.value,cleanupScriptOnlyOnChanges:Jn.value,archiveScript:Yn.value,changeSourceBranchScript:er.value,sessionEndedScript:Xn.value,shutdownScript:Zn.value,prMergedScript:Qn.value,autoLoopDisabledScript:$n.value,worktreesPath:ar.value,worktreesPrefixByProject:sr.value,flattenWorkspaceList:pr.value,memoryMode:ot.value,skillSuite:mr.value,customReviewTemplate:gr.value,customAutoLoopReviewGate:vr.value,customAutoLoopGroomingIntro:yr.value,customQaPromptTemplate:br.value,customBrainstormingInstruction:xr.value,voiceEnabled:Er.value,voicePttKey:Dr.value,voiceLanguage:Or.value,voiceModel:kr.value,voiceCommandPath:Ar.value,voiceFfmpegPath:Mr.value,voiceTemperature:Nr.value,voicePrompt:Pr.value,voiceTranslateToEnglish:Fr.value,voiceSuppressNst:Ir.value}}function vf(){return{...Q.value}}function yf(){return Ur(_f())}function bf(){return Ur(vf())}let xf=T(()=>!Vr(_f(),hf.value)),Sf=T(()=>!Vr(vf(),gf.value)),Cf=T(()=>s.loadError?!1:xf.value?!0:Sf.value&&($.value!==null||Z.value)),wf=T(()=>Sf.value&&($.value!==null||Z.value)?Od.value:ld.value);function Tf(){Sf.value&&($.value!==null||Z.value)?Gf():If()}function Ef(){ud.value=xe(s.global.workflowPolicy),zr.value=!0;let e=s.global.defaultModelByEngine??{};le.value=e[`claude-code`]??`auto`,ue.value=e.codex??`auto`,de.value=s.global.prPromptTemplate,pe.value=s.global.reviewPromptTemplate??``,me.value=s.global.ciFixPromptTemplate??``,_e.value=s.global.finalizationPrompt??``,be.value=s.global.gitConventions,De.value=s.global.editorCommand??``,Me.value=s.global.fileManagerCommand??``,Pe.value=s.global.terminalCommand??``,Le.value=s.global.autoPurgeOnPrMerged??!1,ze.value=s.global.autoLoopMaxRetries??5,He.value=s.global.agentWatchdogEnabled===!0,Ke.value=s.global.forceImmediateMessages===!0,qe.value=s.global.showProgressBars!==!1,Ye.value=s.global.stopDevServersOnShutdown!==!1,Qe.value=s.global.awaitingUserReminderMinutes??0,nt.value=s.global.activityDigestEnabled??!0,rt.value=s.global.wsEventsRetentionDays??0,at.value=s.global.wsEventsKeepPerWorkspace??0,Kt.value=s.global.browserNotifications??!0,Jt.value=s.global.audioNotifications??!0,Yt.value=s.global.audioQuestionNotifications??!1,Zt.value=s.global.audioWorkspaceCreatedNotifications??!1,Qt.value=s.global.audioAgentErrorNotifications??!1,$t.value=Ae(s.global.audioNotificationSound),en.value=ve(s.global.audioQuestionSound),tn.value=ve(s.global.audioWorkspaceCreatedSound),nn.value=ve(s.global.audioAgentErrorSound);let t=Object.fromEntries(he.map(e=>[e,ve(s.global[e])])),n=Object.fromEntries(Oe.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]}));ln.value={...t,...n};let r=s.global.audioNotificationVolume;rn.value=typeof r==`number`&&Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;let i=s.global.audioQuestionVolume;an.value=typeof i==`number`&&Number.isFinite(i)?Math.max(0,Math.min(1,i)):1;let a=s.global.audioWorkspaceCreatedVolume;q.value=typeof a==`number`&&Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;let o=s.global.audioAgentErrorVolume;cn.value=typeof o==`number`&&Number.isFinite(o)?Math.max(0,Math.min(1,o)):1,un.value=s.global.notionStatusProperty??``,dn.value=s.global.notionInProgressStatus??``,fn.value=s.global.notionAssigneeProperty??``,pn.value=s.global.notionUserId??``,Mn.value=s.global.notionInitialPromptTemplate??``,Nn.value=s.global.sentryInitialPromptTemplate??``;{let e=s.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,n=e[`claude-code`];Pn.value=t(n)?n:`bypass`;let r=e.codex;Fn.value=t(r)?r:`bypass`}In.value=s.global.notionMcpKey??``,Ln.value=s.global.sentryMcpKey??``,zn.value=s.global.bitbucketToken??``,Bn.value=s.global.bitbucketUsername??``,Vn.value=s.global.notionEnabled??!0,Hn.value=s.global.sentryEnabled??!0,mn.value=s.showVerboseSystemMessages,hn.value=s.global.showThinkingBlocks??!0,_n.value=s.global.whipEnabled??!1,vn.value=s.global.whipShortcut??`mod+shift+x`,yn.value=s.global.whipVolume??1,Un.value=Array.isArray(s.global.tags)?[...s.global.tags]:[],Y.value=Array.isArray(s.global.branchPrefixes)?[...s.global.branchPrefixes]:[],Gn.value=s.global.setupScript??``,Kn.value=s.global.cleanupScript??``,qn.value=s.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,Jn.value=s.global.cleanupScriptOnlyOnChanges??!1,Yn.value=s.global.archiveScript??``,Xn.value=s.global.sessionEndedScript??``,Zn.value=s.global.shutdownScript??``,Qn.value=s.global.prMergedScript??``,$n.value=s.global.autoLoopDisabledScript??``,er.value=s.global.changeSourceBranchScript??``,ar.value=s.global.worktreesPath??`.worktrees`,sr.value=s.global.worktreesPrefixByProject??!1,pr.value=s.global.flattenWorkspaceList??!1,ot.value=s.global.memoryMode??`hybrid`,mr.value=s.global.skillSuite??`standard`,gr.value=s.global.customReviewTemplate??``,vr.value=s.global.customAutoLoopReviewGate??``,yr.value=s.global.customAutoLoopGroomingIntro??``,br.value=s.global.customQaPromptTemplate??``,xr.value=s.global.customBrainstormingInstruction??``,Er.value=s.global.voiceEnabled??!1,Dr.value=s.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,Or.value=s.global.voiceLanguage??`auto`,kr.value=s.global.voiceModel??null,Ar.value=s.global.voiceCommandPath??``,Mr.value=s.global.voiceFfmpegPath??``,Nr.value=typeof s.global.voiceTemperature==`number`?s.global.voiceTemperature:0,Pr.value=s.global.voicePrompt??``,Fr.value=s.global.voiceTranslateToEnglish??!1,Ir.value=s.global.voiceSuppressNonSpeechTokens??!0,zr.value=!1,hf.value=yf()}u(()=>kr.value,(e,t)=>{zr.value||e!==t&&(Nr.value=sd(e))});function Df(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:``,shutdownScript:``,prMergedScript:``,autoLoopDisabledScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},Ed.value=[],gf.value=bf();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??``,shutdownScript:e.shutdownScript??``,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??``}},gf.value=bf(),e.path&&Of(e.path)}async function Of(e){if(!e.trim()){Ed.value=[];return}Dd.value=!0;try{let t=await Te(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw await ye(t);let n=await t.json();Ed.value=n.local??n.branches??[]}catch{Ed.value=[]}finally{Dd.value=!1}}let kf=null;u(()=>Q.value.path,e=>{kf&&clearTimeout(kf),kf=setTimeout(()=>{Of(e)},500)}),u(md,()=>{Z.value=!1,Df($.value)});let Af=o(null);async function jf(){try{let e=await Te(`/api/settings/export`);if(!e.ok)throw await ye(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 Mf(){Af.value?.click()}async function Nf(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 ke(`/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(),Ef(),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 Pf(e){if(J.value===null){J.value=e;try{let t=await s.fetchGlobalDefaults(),n={prPromptTemplate:de,reviewPromptTemplate:pe,ciFixPromptTemplate:me,finalizationPrompt:_e,gitConventions:be,notionInitialPromptTemplate:Mn,sentryInitialPromptTemplate:Nn};n[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),n.notify({type:`negative`,message:p(`settings.resetFailed`),position:`top`})}finally{J.value=null}}}async function Ff(){let e=e=>e===0?1/0:e,t=s.global.wsEventsRetentionDays??0,r=rt.value;if(e(r)>=e(t))return!0;let i=p(`settings.retentionConfirmMessageUnknown`,{days:r});try{let e=await s.previewRetention(r,at.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 If(){if(await or.value?.validate()!==!1&&await Ff()){ld.value=!0;try{await s.updateGlobal({workflowPolicy:xe(ud.value),defaultModelByEngine:{"claude-code":le.value,codex:ue.value},prPromptTemplate:de.value,reviewPromptTemplate:pe.value,ciFixPromptTemplate:me.value,finalizationPrompt:_e.value,gitConventions:be.value,editorCommand:De.value,fileManagerCommand:Me.value,terminalCommand:Pe.value,autoPurgeOnPrMerged:Le.value,autoLoopMaxRetries:ze.value,agentWatchdogEnabled:He.value,forceImmediateMessages:Ke.value,showProgressBars:qe.value,stopDevServersOnShutdown:Ye.value,awaitingUserReminderMinutes:Qe.value,activityDigestEnabled:nt.value,wsEventsRetentionDays:rt.value,wsEventsKeepPerWorkspace:at.value,browserNotifications:Kt.value,audioNotifications:Jt.value,audioQuestionNotifications:Yt.value,audioWorkspaceCreatedNotifications:Zt.value,audioAgentErrorNotifications:Qt.value,audioNotificationSound:$t.value,audioQuestionSound:en.value,audioWorkspaceCreatedSound:tn.value,audioAgentErrorSound:nn.value,audioNotificationVolume:rn.value,audioQuestionVolume:an.value,audioWorkspaceCreatedVolume:q.value,audioAgentErrorVolume:cn.value,...ln.value,notionStatusProperty:un.value,notionInProgressStatus:dn.value,notionAssigneeProperty:fn.value,notionUserId:pn.value,notionInitialPromptTemplate:Mn.value,sentryInitialPromptTemplate:Nn.value,defaultPermissionModeByEngine:{"claude-code":Pn.value,codex:Fn.value},notionMcpKey:In.value,sentryMcpKey:Ln.value,bitbucketToken:zn.value,bitbucketUsername:Bn.value,notionEnabled:Vn.value,sentryEnabled:Hn.value,showThinkingBlocks:hn.value,whipEnabled:_n.value,whipShortcut:vn.value,whipVolume:yn.value,tags:Un.value,branchPrefixes:Y.value,setupScript:Gn.value,cleanupScript:Kn.value,cleanupScriptMode:qn.value,cleanupScriptOnlyOnChanges:Jn.value,archiveScript:Yn.value,changeSourceBranchScript:er.value,sessionEndedScript:Xn.value,shutdownScript:Zn.value,prMergedScript:Qn.value,autoLoopDisabledScript:$n.value,worktreesPath:ar.value,worktreesPrefixByProject:sr.value,flattenWorkspaceList:pr.value,memoryMode:ot.value,skillSuite:mr.value,customReviewTemplate:gr.value,customAutoLoopReviewGate:vr.value,customAutoLoopGroomingIntro:yr.value,customQaPromptTemplate:br.value,customBrainstormingInstruction:xr.value,voiceEnabled:Er.value,voicePttKey:Dr.value,voiceLanguage:Or.value,voiceModel:kr.value,voiceCommandPath:Ar.value.trim(),voiceFfmpegPath:Mr.value.trim(),voiceTemperature:Nr.value,voicePrompt:Pr.value,voiceTranslateToEnglish:Fr.value,voiceSuppressNonSpeechTokens:Ir.value}),s.setVerboseSystemMessages(mn.value),hf.value=yf(),n.notify({type:`positive`,message:p(`settings.saved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.saveError`),position:`top`})}finally{ld.value=!1}}}async function Lf(e){Lr.value=e,Hf();try{await s.downloadVoiceModel(e)}catch{n.notify({type:`negative`,message:p(`voice.downloadFailed`),position:`top`})}finally{Lr.value=null,Uf()}}async function Rf(e){Lr.value=e;try{await s.deleteVoiceModel(e),kr.value===e&&(kr.value=null)}catch{n.notify({type:`negative`,message:p(`voice.deleteFailed`),position:`top`})}finally{Lr.value=null}}async function zf(e){try{await s.cancelVoiceModelDownload(e)}catch{n.notify({type:`negative`,message:p(`voice.cancelFailed`),position:`top`})}}function Bf(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 Vf=null;function Hf(){Vf||=setInterval(()=>{document.visibilityState!==`hidden`&&s.fetchVoiceModels().catch(e=>{console.error(`[settings] voice model polling failed:`,e)})},od)}function Uf(){Vf&&=(clearInterval(Vf),null)}async function Wf(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 Gf(){if(!Q.value.path.trim()){n.notify({type:`negative`,message:p(`settings.projectPathRequired`),position:`top`});return}Od.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,shutdownScript:Q.value.shutdownScript,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&&(md.value=e),gf.value=bf(),n.notify({type:`positive`,message:p(`settings.projectSaved`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectSaveError`),position:`top`})}finally{Od.value=!1}}function Kf(){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){kd.value=!0;try{await s.deleteProject($.value.path),md.value=-1,Z.value=!1,Df(null),n.notify({type:`positive`,message:p(`settings.projectDeleted`),position:`top`})}catch{n.notify({type:`negative`,message:p(`settings.projectDeleteError`),position:`top`})}finally{kd.value=!1}}})}function qf(){md.value=-1,Z.value=!0,Df(null),gd.value=null,_d.value=null}function Jf(e){if(Sf.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,md.value=e,gd.value=null,_d.value=null});return}Z.value=!1,md.value=e,gd.value=null,_d.value=null}function Yf(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Xf=o([]);function Zf(e,t){t(()=>{Xf.value=e?Ed.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):Ed.value})}async function Qf(){await s.fetchSettings(),s.loadError||Ef()}return m(async()=>{await Promise.all([s.fetchSettings(),s.fetchActiveMcpServers(),wd()]);try{let e=await s.fetchGlobalDefaults();tr.value=e.changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await s.fetchVoiceModels(),await s.fetchVoiceRuntime(),Ef(),w(`settings`),Ot(),d.fetchTemplates(),Je(`settings:global`,()=>xf.value),Je(`settings:integrations`,()=>pd.value),Je(`settings:project`,()=>Sf.value&&($.value!==null||Z.value))}),l(()=>{kf&&clearTimeout(kf),Uf(),Xe(`settings:global`),Xe(`settings:integrations`),Xe(`settings:project`)}),(t,n)=>(f(),b(Ft,{class:`settings-page`,"style-fn":e(Bt)},{default:_(()=>[e(s).loadError?(f(),E(`div`,Gr,[v(I,{name:`error`,size:`18px`}),O(`div`,Kr,[O(`span`,qr,i(t.$t(`settings.loadFailed`)),1),O(`span`,Jr,i(e(s).loadError),1),O(`span`,Yr,i(t.$t(`settings.loadFailedHint`)),1)]),v(K),v(L,{dense:``,flat:``,"no-caps":``,icon:`refresh`,label:t.$t(`common.retry`),onClick:Qf},null,8,[`label`])])):x(``,!0),O(`div`,Xr,[e(k)?(f(),b(jt,{key:1,modelValue:F.value,"onUpdate:modelValue":n[0]||=e=>F.value=e,side:`left`,overlay:``,behavior:`mobile`,width:240},{default:_(()=>[v(V,null,{default:_(()=>[v(W,{clickable:``,onClick:ie},{default:_(()=>[v(G,{avatar:``},{default:_(()=>[v(I,{name:`arrow_back`})]),_:1}),v(G,null,{default:_(()=>[S(i(t.$t(`workspaceList.title`)),1)]),_:1})]),_:1}),v(Be)]),_:1}),O(`div`,$r,[O(`div`,ei,i(t.$t(`settings.title`)),1),v(jr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])]),_:1},8,[`modelValue`])):(f(),E(`aside`,Zr,[O(`div`,Qr,i(t.$t(`settings.title`)),1),v(jr,{"nav-items":ae.value,"active-tab":N.value,onSelect:te},null,8,[`nav-items`,`active-tab`])])),O(`main`,ti,[O(`header`,ni,[v(It,{"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(pt,null,{default:_(()=>[S(i(t.$t(`settings.openNav`)),1)]),_:1})]),_:1},8,[`aria-label`])):x(``,!0),O(`h2`,ri,i(se.value),1),v(Lt,{"tour-id":`settings`,class:`q-ml-sm`})]),O(`div`,ii,i(t.$t(`settings.help.${N.value}`)),1),O(`div`,ai,[g(O(`div`,oi,[N.value===`memory`?(f(),b(_r,{key:0,"memory-mode":ot.value,"onUpdate:memoryMode":n[2]||=e=>ot.value=e},null,8,[`memory-mode`])):x(``,!0),N.value===`general`?(f(),E(`div`,si,[O(`div`,ci,i(t.$t(`settings.language`)),1),v(U,{"model-value":e(y),options:Yd,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":Xd},null,8,[`model-value`])])):x(``,!0),N.value===`general`?(f(),E(`div`,li,[O(`div`,ui,i(t.$t(`settings.workspaceListSection`)),1),v(B,{modelValue:pr.value,"onUpdate:modelValue":n[3]||=e=>pr.value=e,label:t.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,di,i(t.$t(`settings.flattenWorkspaceListHint`)),1)])):x(``,!0),N.value===`skills`?(f(),E(`div`,fi,[O(`div`,pi,i(t.$t(`settings.skillSuite.section`)),1),v(Re,{modelValue:mr.value,"onUpdate:modelValue":n[4]||=e=>mr.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`,mi,i(t.$t(hr.value)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:t.$t(`settings.skillSuite.reloadDefaults`),disable:mr.value!==`custom`,class:`q-mt-sm`,onClick:Br},null,8,[`label`,`disable`])])):x(``,!0),N.value===`skills`&&mr.value===`custom`?(f(),E(`div`,hi,[O(`div`,gi,i(t.$t(`settings.skillSuite.customPrompts`)),1),O(`div`,_i,i(t.$t(`settings.skillSuite.reviewTemplate`)),1),v(Tt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:Sr.value===`reviewTemplate`,class:`q-mb-sm`},{default:_(()=>[v(V,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(Cr.value,e=>g((f(),b(W,{key:e.value,clickable:``,onClick:t=>wr(`reviewTemplate`,e.value)},{default:_(()=>[v(G,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[ht]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(R,{modelValue:gr.value,"onUpdate:modelValue":n[5]||=e=>gr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,vi,i(t.$t(`settings.skillSuite.autoLoopReviewGate`)),1),v(Tt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:Sr.value===`autoLoopReviewGate`,class:`q-mb-sm`},{default:_(()=>[v(V,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(Cr.value,e=>g((f(),b(W,{key:e.value,clickable:``,onClick:t=>wr(`autoLoopReviewGate`,e.value)},{default:_(()=>[v(G,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[ht]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(R,{modelValue:vr.value,"onUpdate:modelValue":n[6]||=e=>vr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,yi,i(t.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),v(Tt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:Sr.value===`autoLoopGroomingIntro`,class:`q-mb-sm`},{default:_(()=>[v(V,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(Cr.value,e=>g((f(),b(W,{key:e.value,clickable:``,onClick:t=>wr(`autoLoopGroomingIntro`,e.value)},{default:_(()=>[v(G,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[ht]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(R,{modelValue:yr.value,"onUpdate:modelValue":n[7]||=e=>yr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,bi,i(t.$t(`settings.skillSuite.qaTemplate`)),1),v(Tt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:Sr.value===`qaPromptTemplate`,class:`q-mb-sm`},{default:_(()=>[v(V,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(Cr.value,e=>g((f(),b(W,{key:e.value,clickable:``,onClick:t=>wr(`qaPromptTemplate`,e.value)},{default:_(()=>[v(G,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[ht]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(R,{modelValue:br.value,"onUpdate:modelValue":n[8]||=e=>br.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),O(`div`,xi,i(t.$t(`settings.skillSuite.brainstormingInstruction`)),1),v(Tt,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`download`,label:t.$t(`settings.skillSuite.importPrompt`),loading:Sr.value===`brainstormingInstruction`,class:`q-mb-sm`},{default:_(()=>[v(V,{dense:``},{default:_(()=>[(f(!0),E(D,null,A(Cr.value,e=>g((f(),b(W,{key:e.value,clickable:``,onClick:t=>wr(`brainstormingInstruction`,e.value)},{default:_(()=>[v(G,null,{default:_(()=>[S(i(e.label),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[ht]])),128))]),_:1})]),_:1},8,[`label`,`loading`]),v(R,{modelValue:xr.value,"onUpdate:modelValue":n[9]||=e=>xr.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):x(``,!0),N.value===`agents`?(f(),E(`div`,Si,[O(`div`,Ci,[v(B,{modelValue:He.value,"onUpdate:modelValue":n[10]||=e=>He.value=e,label:t.$t(`settings.agentWatchdogEnabled`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,wi,i(t.$t(`settings.agentWatchdogHint`)),1)]),O(`div`,Ti,[v(B,{modelValue:Ke.value,"onUpdate:modelValue":n[11]||=e=>Ke.value=e,label:t.$t(`settings.forceImmediateMessages`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,Ei,i(t.$t(`settings.forceImmediateMessagesHint`)),1)]),O(`div`,Di,[v(B,{modelValue:qe.value,"onUpdate:modelValue":n[12]||=e=>qe.value=e,label:t.$t(`settings.showProgressBars`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,Oi,i(t.$t(`settings.showProgressBarsHint`)),1)]),O(`div`,ki,i(t.$t(`settings.defaultModelClaude`)),1),v(U,{modelValue:le.value,"onUpdate:modelValue":n[13]||=e=>le.value=e,options:Zd.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`,Ai,i(t.$t(`settings.defaultModelCodex`)),1),v(U,{modelValue:ue.value,"onUpdate:modelValue":n[14]||=e=>ue.value=e,options:Qd.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`,ji,i(t.$t(`settings.defaultPermissionModeClaude`)),1),O(`div`,Mi,i(t.$t(`settings.defaultPermissionModeHint`)),1),v(U,{modelValue:Pn.value,"onUpdate:modelValue":n[15]||=e=>Pn.value=e,options:tf.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),O(`div`,Ni,i(t.$t(`settings.defaultPermissionModeCodex`)),1),v(U,{modelValue:Fn.value,"onUpdate:modelValue":n[16]||=e=>Fn.value=e,options:nf.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`]),v(R,{modelValue:ze.value,"onUpdate:modelValue":n[17]||=e=>ze.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`,Pi,[O(`div`,Fi,i(t.$t(`settings.activityFeed`)),1),O(`div`,Ii,[v(B,{modelValue:mn.value,"onUpdate:modelValue":n[18]||=e=>mn.value=e,label:t.$t(`settings.verboseMessages`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:hn.value,"onUpdate:modelValue":n[19]||=e=>hn.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`,Li,[O(`div`,Ri,i(t.$t(`settings.whipSettings`)),1),O(`div`,zi,i(t.$t(`settings.whipSettingsHint`)),1),v(B,{modelValue:_n.value,"onUpdate:modelValue":n[20]||=e=>_n.value=e,label:t.$t(`settings.whipEnabled`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`settings.whipEnabledHint`)),1)]),_:1})]),_:1},8,[`modelValue`,`label`]),_n.value?(f(),E(`div`,Bi,[v(Rr,{modelValue:vn.value,"onUpdate:modelValue":n[21]||=e=>vn.value=e},null,8,[`modelValue`]),O(`div`,Vi,[O(`div`,Hi,i(t.$t(`settings.whipVolume`)),1),v(on,{modelValue:yn.value,"onUpdate:modelValue":n[22]||=e=>yn.value=e,min:0,max:1,step:.05,disable:bn.value.disabled,"aria-label":t.$t(`settings.whipVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,Ui,i(Math.round(yn.value*100))+`% `,1)]),bn.value.hintKey?(f(),E(`div`,Wi,i(t.$t(bn.value.hintKey)),1)):x(``,!0)])):x(``,!0)])):x(``,!0),N.value===`notifications`?(f(),E(`div`,Gi,[O(`div`,Ki,i(t.$t(`settings.notifications`)),1),v(B,{modelValue:nt.value,"onUpdate:modelValue":n[23]||=e=>nt.value=e,label:t.$t(`absence.title`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,qi,i(t.$t(`settings.activityDigestHint`)),1),v(R,{modelValue:Qe.value,"onUpdate:modelValue":n[24]||=e=>Qe.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(Be,{dark:``,class:`q-my-md`}),v(gn),O(`div`,Ji,[O(`div`,Yi,[O(`div`,Xi,i(t.$t(`settings.notificationSound`)),1),O(`div`,Zi,i(t.$t(`settings.notificationSoundHint`)),1),O(`div`,Qi,[v(B,{modelValue:Kt.value,"onUpdate:modelValue":n[25]||=e=>Kt.value=e,label:t.$t(`settings.enableBrowserNotifications`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),v(B,{modelValue:Jt.value,"onUpdate:modelValue":n[26]||=e=>Jt.value=e,label:t.$t(`settings.enableAudio`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`])]),O(`div`,$i,[v(mt,{dense:``,square:``,color:xn.value.color,"text-color":`white`,icon:`notifications`},{default:_(()=>[S(i(xn.value.label),1)]),_:1},8,[`color`]),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`notifications_active`,label:t.$t(`settings.testBrowserNotification`),onClick:Sn},null,8,[`label`])]),O(`div`,ea,[v(U,{modelValue:$t.value,"onUpdate:modelValue":n[27]||=e=>$t.value=e,options:sf.value,label:t.$t(`settings.notificationSound`),disable:!Jt.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:!Jt.value,onClick:df},null,8,[`label`,`disable`])]),O(`div`,ta,[O(`div`,na,i(t.$t(`settings.notificationVolume`)),1),v(on,{modelValue:rn.value,"onUpdate:modelValue":n[28]||=e=>rn.value=e,min:0,max:1,step:.05,disable:!Jt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,ra,i(Math.round(rn.value*100))+`% `,1)])]),O(`div`,ia,[O(`div`,aa,i(t.$t(`settings.questionSound`)),1),O(`div`,oa,i(t.$t(`settings.questionSoundHint`)),1),v(B,{modelValue:Yt.value,"onUpdate:modelValue":n[29]||=e=>Yt.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`,sa,[v(U,{modelValue:en.value,"onUpdate:modelValue":n[30]||=e=>en.value=e,options:cf.value,label:t.$t(`settings.questionSound`),disable:!Yt.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:!Yt.value,onClick:ff},null,8,[`label`,`disable`])]),O(`div`,ca,[O(`div`,la,i(t.$t(`settings.notificationVolume`)),1),v(on,{modelValue:an.value,"onUpdate:modelValue":n[31]||=e=>an.value=e,min:0,max:1,step:.05,disable:!Yt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,ua,i(Math.round(an.value*100))+`% `,1)])]),O(`div`,da,[O(`div`,fa,i(t.$t(`settings.workspaceCreatedSound`)),1),O(`div`,pa,i(t.$t(`settings.workspaceCreatedSoundHint`)),1),v(B,{modelValue:Zt.value,"onUpdate:modelValue":n[32]||=e=>Zt.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`,ma,[v(U,{modelValue:tn.value,"onUpdate:modelValue":n[33]||=e=>tn.value=e,options:cf.value,label:t.$t(`settings.workspaceCreatedSound`),disable:!Zt.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:!Zt.value,onClick:pf},null,8,[`label`,`disable`])]),O(`div`,ha,[O(`div`,ga,i(t.$t(`settings.notificationVolume`)),1),v(on,{modelValue:q.value,"onUpdate:modelValue":n[34]||=e=>q.value=e,min:0,max:1,step:.05,disable:!Zt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,_a,i(Math.round(q.value*100))+`% `,1)])]),O(`div`,va,[O(`div`,ya,i(t.$t(`settings.agentErrorSound`)),1),O(`div`,ba,i(t.$t(`settings.agentErrorSoundHint`)),1),v(B,{modelValue:Qt.value,"onUpdate:modelValue":n[35]||=e=>Qt.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`,xa,[v(U,{modelValue:nn.value,"onUpdate:modelValue":n[36]||=e=>nn.value=e,options:cf.value,label:t.$t(`settings.agentErrorSound`),disable:!Qt.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:!Qt.value,onClick:mf},null,8,[`label`,`disable`])]),O(`div`,Sa,[O(`div`,Ca,i(t.$t(`settings.notificationVolume`)),1),v(on,{modelValue:cn.value,"onUpdate:modelValue":n[37]||=e=>cn.value=e,min:0,max:1,step:.05,disable:!Qt.value,"aria-label":t.$t(`settings.notificationVolume`),dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`,`disable`,`aria-label`]),O(`div`,wa,i(Math.round(cn.value*100))+`%`,1)])])]),v(Tr,{modelValue:ln.value,"onUpdate:modelValue":n[38]||=e=>ln.value=e,"general-sound":$t.value},null,8,[`modelValue`,`general-sound`])])):x(``,!0),N.value===`voice`?(f(),E(`div`,Ta,[O(`div`,Ea,[O(`div`,Da,i(t.$t(`voice.sectionRuntime`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`kobo-2`,label:e(p)(`common.refresh`),onClick:n[39]||=t=>e(s).fetchVoiceRuntime()},null,8,[`label`])]),O(`div`,Oa,[O(`div`,ka,[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`,Aa,[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(ct,{dense:``,dark:``,icon:`help_outline`,label:t.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:_(()=>[O(`div`,ja,[O(`div`,Ma,i(t.$t(`voice.installGuideIntro`)),1),O(`div`,Na,[O(`a`,Pa,i(t.$t(`voice.installLink`)),1)]),O(`div`,Fa,i(t.$t(`voice.installGuideUbuntuTitle`)),1),n[142]||=O(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
2
- sudo apt install -y cmake build-essential ffmpeg
3
- git clone https://github.com/ggml-org/whisper.cpp.git
4
- cd whisper.cpp
5
- cmake -B build
6
- cmake --build build -j`,-1),O(`div`,Ia,i(t.$t(`voice.installGuideBinaryPathHint`)),1),O(`div`,La,i(t.$t(`voice.installGuideWindowsTitle`)),1),n[143]||=O(`pre`,{class:`mono-guide q-mb-sm`},`# Install CMake + Visual Studio Build Tools (C/C++)
7
- # Install ffmpeg (choco/scoop)
8
- where whisper-cli
9
- where ffmpeg`,-1),O(`div`,null,i(t.$t(`voice.installGuideSettingsHint`)),1)])]),_:1},8,[`label`])])):x(``,!0),N.value===`voice`?(f(),E(`div`,Ra,[O(`div`,za,i(t.$t(`voice.sectionActivation`)),1),v(B,{modelValue:Er.value,"onUpdate:modelValue":n[40]||=e=>Er.value=e,label:t.$t(`voice.enabled`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),O(`div`,Ba,[O(`div`,Va,[v(U,{modelValue:Dr.value,"onUpdate:modelValue":n[41]||=e=>Dr.value=e,label:t.$t(`voice.pttKey`),options:[{label:t.$t(`voice.pttAlt`),value:`alt`},{label:t.$t(`voice.pttCtrlSpace`),value:`ctrl+space`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`,`options`])]),O(`div`,Ha,[v(U,{modelValue:Or.value,"onUpdate:modelValue":n[42]||=e=>Or.value=e,label:t.$t(`voice.language`),options:uf,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`])])])])):x(``,!0),N.value===`voice`?(f(),E(`div`,Ua,[O(`div`,Wa,i(t.$t(`voice.sectionModels`)),1),v(U,{modelValue:kr.value,"onUpdate:modelValue":n[43]||=e=>kr.value=e,label:t.$t(`voice.model`),options:lf.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`label`,`options`]),e(s).voiceModelsDir?(f(),E(`div`,Ga,[v(I,{name:`folder`,color:`kobo-2`,size:`xs`}),O(`span`,Ka,i(e(s).voiceModelsDir),1),v(L,{flat:``,dense:``,round:``,size:`xs`,icon:`content_copy`,color:`kobo-2`,title:e(p)(`common.copy`),onClick:n[44]||=t=>Wf(e(s).voiceModelsDir)},null,8,[`title`])])):x(``,!0),O(`div`,qa,[(f(!0),E(D,null,A(e(s).voiceModels,e=>(f(),E(`div`,{key:e.name,class:r([`voice-model-row q-pa-sm rounded-borders`,{"voice-model-row--active":e.download}])},[O(`div`,Ja,[v(I,{name:e.download?`downloading`:e.installed?`check_circle`:`circle`,color:e.download?`primary`:e.installed?`green-5`:`kobo-3`,size:`xs`},null,8,[`name`,`color`]),O(`span`,Ya,i(e.name),1),O(`span`,Xa,i(Bf(e.installedSizeBytes??e.sizeBytes)),1),v(K),e.download?(f(),b(L,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`close`,label:t.$t(`common.cancel`),onClick:t=>zf(e.name)},null,8,[`label`,`onClick`])):(f(),b(L,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,color:e.installed?`red-5`:`primary`,icon:e.installed?`delete_outline`:`download`,label:e.installed?t.$t(`voice.delete`):t.$t(`voice.download`),loading:Lr.value===e.name,onClick:t=>e.installed?Rf(e.name):Lf(e.name)},null,8,[`color`,`icon`,`label`,`loading`,`onClick`]))]),e.download?(f(),E(`div`,Za,[v(Fe,{value:e.download.total>0?Math.min(1,e.download.downloaded/e.download.total):0,indeterminate:!e.download.total,color:`primary`,"track-color":`kobo-surface-2`,size:`6px`,rounded:``},null,8,[`value`,`indeterminate`]),O(`div`,Qa,[O(`span`,$a,i(Bf(e.download.downloaded))+` / `+i(Bf(e.download.total)),1),v(K),O(`span`,eo,i(e.download.total>0?`${Math.floor(e.download.downloaded/e.download.total*100)}%`:`—`),1)])])):e.installed?(f(),E(`div`,to,i(e.fileName),1)):x(``,!0)],2))),128))])])):x(``,!0),N.value===`voice`?(f(),E(`div`,no,[O(`div`,ro,i(t.$t(`voice.sectionAdvanced`)),1),v(ct,{dense:``,dark:``,icon:`tune`,label:t.$t(`voice.sectionBehavior`),class:`variables-panel rounded-borders q-mb-sm`},{default:_(()=>[O(`div`,io,[O(`div`,ao,[O(`div`,oo,i(t.$t(`voice.temperature`)),1),v(on,{modelValue:Nr.value,"onUpdate:modelValue":n[45]||=e=>Nr.value=e,min:0,max:1,step:.05,dark:``,dense:``,color:`primary`,class:`col`},null,8,[`modelValue`]),O(`div`,so,i(Nr.value.toFixed(2)),1)]),O(`div`,co,i(t.$t(`voice.temperatureHint`)),1),v(R,{modelValue:Pr.value,"onUpdate:modelValue":n[46]||=e=>Pr.value=e,label:t.$t(`voice.initialPrompt`),type:`textarea`,dense:``,dark:``,outlined:``,rows:2,class:`settings-input`},null,8,[`modelValue`,`label`]),O(`div`,lo,i(t.$t(`voice.initialPromptHint`)),1),v(B,{modelValue:Fr.value,"onUpdate:modelValue":n[47]||=e=>Fr.value=e,label:t.$t(`voice.translateToEnglish`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,uo,i(t.$t(`voice.translateToEnglishHint`)),1),v(B,{modelValue:Ir.value,"onUpdate:modelValue":n[48]||=e=>Ir.value=e,label:t.$t(`voice.suppressNst`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,fo,i(t.$t(`voice.suppressNstHint`)),1)])]),_:1},8,[`label`]),v(ct,{dense:``,dark:``,icon:`terminal`,label:t.$t(`voice.sectionBinaries`),class:`variables-panel rounded-borders`},{default:_(()=>[O(`div`,po,[v(R,{modelValue:Ar.value,"onUpdate:modelValue":n[49]||=e=>Ar.value=e,label:t.$t(`voice.commandPath`),dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`]),v(R,{modelValue:Mr.value,"onUpdate:modelValue":n[50]||=e=>Mr.value=e,label:t.$t(`voice.ffmpegPath`),dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`])])]),_:1},8,[`label`])])):x(``,!0),N.value===`git`?(f(),E(`div`,mo,[v(Rt,{modelValue:ud.value,"onUpdate:modelValue":n[51]||=e=>ud.value=e,class:`q-my-md`},null,8,[`modelValue`]),O(`div`,ho,[O(`div`,go,i(t.$t(`settings.gitConventions`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`gitConventions`,disable:J.value!==null&&J.value!==`gitConventions`,onClick:n[52]||=e=>Pf(`gitConventions`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,_o,i(t.$t(`settings.gitConventionsHint`)),1),v(R,{modelValue:be.value,"onUpdate:modelValue":n[53]||=e=>be.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.gitConventionsPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`git`?(f(),E(`div`,vo,[O(`div`,yo,i(t.$t(`settings.branchPrefixesTitle`)),1),O(`div`,bo,i(t.$t(`settings.branchPrefixesHint`)),1),Y.value.length>0?(f(),b(V,{key:0,bordered:``,separator:``,class:`rounded-borders q-mb-sm`},{default:_(()=>[(f(!0),E(D,null,A(Y.value,(e,n)=>(f(),b(W,{key:e},{default:_(()=>[v(G,null,{default:_(()=>[v(st,{class:`cursor-pointer`},{default:_(()=>[S(i(e)+`/ `,1),v(sn,{"model-value":e,"auto-save":``,onSave:e=>dr(n,e)},{default:_(e=>[v(R,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,dense:``,dark:``,autofocus:``,onKeyup:P(e.set,[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeyup`])]),_:1},8,[`model-value`,`onSave`]),v(pt,null,{default:_(()=>[S(i(t.$t(`settings.branchPrefixesEditHint`)),1)]),_:1})]),_:2},1024)]),_:2},1024),v(G,{side:``},{default:_(()=>[O(`div`,xo,[v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`keyboard_arrow_up`,color:`kobo-3`,disable:n===0,title:t.$t(`settings.branchPrefixesMoveUp`),onClick:e=>fr(n,-1)},null,8,[`disable`,`title`,`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`keyboard_arrow_down`,color:`kobo-3`,disable:n===Y.value.length-1,title:t.$t(`settings.branchPrefixesMoveDown`),onClick:e=>fr(n,1)},null,8,[`disable`,`title`,`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`kobo-3`,title:t.$t(`common.delete`),onClick:e=>ur(n)},null,8,[`title`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(f(),E(`div`,So,i(t.$t(`settings.branchPrefixesEmpty`)),1)),O(`div`,Co,[v(R,{modelValue:Wn.value,"onUpdate:modelValue":n[54]||=e=>Wn.value=e,label:t.$t(`settings.branchPrefixesAddLabel`),dense:``,dark:``,outlined:``,class:`col`,onKeyup:P(lr,[`enter`])},null,8,[`modelValue`,`label`]),v(L,{flat:``,label:t.$t(`common.add`),icon:`add`,color:`primary`,disable:cr(Wn.value).length===0,onClick:lr},null,8,[`label`,`disable`])])])):x(``,!0),N.value===`prompts`?(f(),E(`div`,wo,[O(`div`,To,[O(`div`,Eo,i(t.$t(`settings.prPromptTemplate`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`prPromptTemplate`,disable:J.value!==null&&J.value!==`prPromptTemplate`,onClick:n[55]||=e=>Pf(`prPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,Do,i(t.$t(`settings.prPromptHint`)),1),v(R,{modelValue:de.value,"onUpdate:modelValue":n[56]||=e=>de.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.prPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`]),O(`div`,Oo,[v(ct,{dense:``,dark:``,icon:`code`,label:t.$t(`settings.availableVariables`),class:`variables-panel rounded-borders`},{default:_(()=>[v(V,{dense:``,dark:``,class:`q-pa-sm`},{default:_(()=>[(f(!0),E(D,null,A(rf.value,e=>(f(),b(W,{key:e.name,dense:``},{default:_(()=>[v(G,null,{default:_(()=>[v(st,{class:`text-caption`,style:{"font-family":`monospace`}},{default:_(()=>[S(i(e.name),1)]),_:2},1024),v(st,{caption:``,class:`text-kobo-3`},{default:_(()=>[S(i(e.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1},8,[`label`])]),O(`div`,ko,[O(`div`,Ao,i(t.$t(`settings.reviewPromptTemplate`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`reviewPromptTemplate`,disable:J.value!==null&&J.value!==`reviewPromptTemplate`,onClick:n[57]||=e=>Pf(`reviewPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,jo,i(t.$t(`settings.reviewPromptHint`)),1),v(R,{modelValue:pe.value,"onUpdate:modelValue":n[58]||=e=>pe.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.reviewPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`]),O(`div`,Mo,[O(`div`,No,i(t.$t(`settings.ciFixPromptTemplate`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`ciFixPromptTemplate`,disable:J.value!==null&&J.value!==`ciFixPromptTemplate`,onClick:n[59]||=e=>Pf(`ciFixPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,Po,i(t.$t(`settings.ciFixPromptHint`)),1),v(R,{modelValue:me.value,"onUpdate:modelValue":n[60]||=e=>me.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.ciFixPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`]),O(`div`,Fo,[O(`div`,Io,i(t.$t(`settings.finalizationPromptTemplate`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`finalizationPrompt`,disable:J.value!==null&&J.value!==`finalizationPrompt`,onClick:n[61]||=e=>Pf(`finalizationPrompt`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,Lo,i(t.$t(`settings.finalizationPromptHint`)),1),v(R,{modelValue:_e.value,"onUpdate:modelValue":n[62]||=e=>_e.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:t.$t(`settings.finalizationPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Ro,[O(`div`,zo,i(t.$t(`settings.editorCommand`)),1),O(`div`,Bo,i(t.$t(`settings.editorCommandHint`)),1),v(R,{modelValue:De.value,"onUpdate:modelValue":n[63]||=e=>De.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.editorCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Vo,[O(`div`,Ho,i(t.$t(`settings.fileManagerCommand`)),1),O(`div`,Uo,i(t.$t(`settings.fileManagerCommandHint`)),1),v(R,{modelValue:Me.value,"onUpdate:modelValue":n[64]||=e=>Me.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.fileManagerCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Wo,[O(`div`,Go,i(t.$t(`settings.terminalCommand`)),1),O(`div`,Ko,i(t.$t(`settings.terminalCommandHint`)),1),v(R,{modelValue:Pe.value,"onUpdate:modelValue":n[65]||=e=>Pe.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.terminalCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`notion`?(f(),E(`div`,qo,[v(B,{modelValue:Vn.value,"onUpdate:modelValue":n[66]||=e=>Vn.value=e,label:t.$t(`settings.integrationEnabled`),dark:``,dense:``,color:`primary`},null,8,[`modelValue`,`label`])])):x(``,!0),N.value===`notion`?(f(),E(`div`,{key:20,"data-tour":`settings-card-notion`,class:r([`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,{"opacity-50":!Vn.value}])},[v(Cn,{modelValue:fd.value.notion,"onUpdate:modelValue":n[67]||=e=>fd.value.notion=e,"connection-status":dd.value.notion,"onUpdate:connectionStatus":n[68]||=e=>dd.value.notion=e,integration:`notion`},null,8,[`modelValue`,`connection-status`]),O(`div`,Jo,i(t.$t(`settings.mcpSelection`)),1),O(`div`,Yo,i(t.$t(dd.value.notion.configured?`integration.directOverrides`:`settings.mcpSelectionHint`)),1),O(`div`,Xo,[O(`div`,Zo,i(t.$t(`settings.notionMcp`)),1),v(U,{modelValue:In.value,"onUpdate:modelValue":n[69]||=e=>In.value=e,"data-test":`notion-mcp-key`,disable:dd.value.notion.configured,options:af.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`disable`,`options`])]),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`health_and_safety`,label:t.$t(`settings.testIntegration`),loading:wn.value===`notion`,disable:!Vn.value||wn.value!==null,onClick:n[70]||=e=>En(`notion`)},null,8,[`label`,`loading`,`disable`]),Tn.value.notion?(f(),E(`div`,{key:0,class:r([`text-caption q-mt-sm`,Tn.value.notion.ok?`text-positive`:`text-negative`])},i(Tn.value.notion.detail)+` (`+i(Tn.value.notion.durationMs)+` ms) `,3)):x(``,!0)],2)):x(``,!0),N.value===`sentry`?(f(),E(`div`,Qo,[v(B,{modelValue:Hn.value,"onUpdate:modelValue":n[71]||=e=>Hn.value=e,label:t.$t(`settings.integrationEnabled`),dark:``,dense:``,color:`primary`},null,8,[`modelValue`,`label`])])):x(``,!0),N.value===`sentry`?(f(),E(`div`,{key:22,class:r([`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,{"opacity-50":!Hn.value}])},[v(Cn,{modelValue:fd.value.sentry,"onUpdate:modelValue":n[72]||=e=>fd.value.sentry=e,"connection-status":dd.value.sentry,"onUpdate:connectionStatus":n[73]||=e=>dd.value.sentry=e,integration:`sentry`},null,8,[`modelValue`,`connection-status`]),O(`div`,$o,i(t.$t(`settings.mcpSelection`)),1),O(`div`,es,i(t.$t(dd.value.sentry.configured?`integration.directOverrides`:`settings.mcpSelectionHint`)),1),O(`div`,ts,[O(`div`,ns,i(t.$t(`settings.sentryMcp`)),1),v(U,{modelValue:Ln.value,"onUpdate:modelValue":n[74]||=e=>Ln.value=e,"data-test":`sentry-mcp-key`,disable:dd.value.sentry.configured,options:af.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`disable`,`options`])]),v(L,{flat:``,dense:``,"no-caps":``,color:`primary`,icon:`health_and_safety`,label:t.$t(`settings.testIntegration`),loading:wn.value===`sentry`,disable:!Hn.value||wn.value!==null,class:`q-mt-sm`,onClick:n[75]||=e=>En(`sentry`)},null,8,[`label`,`loading`,`disable`]),Tn.value.sentry?(f(),E(`div`,{key:0,class:r([`text-caption q-mt-sm`,Tn.value.sentry.ok?`text-positive`:`text-negative`])},i(Tn.value.sentry.detail)+` (`+i(Tn.value.sentry.durationMs)+` ms) `,3)):x(``,!0)],2)):x(``,!0),N.value===`forge`?(f(),E(`div`,rs,[O(`div`,is,i(t.$t(`settings.bitbucketCommunity`)),1),O(`div`,as,i(t.$t(`settings.bitbucketCommunityHint`)),1),v(R,{modelValue:Bn.value,"onUpdate:modelValue":n[76]||=e=>Bn.value=e,label:t.$t(`settings.bitbucketUsername`),autocomplete:`username`,dark:``,dense:``,outlined:``,class:`q-mb-sm`},null,8,[`modelValue`,`label`]),v(R,{modelValue:zn.value,"onUpdate:modelValue":n[77]||=e=>zn.value=e,label:t.$t(`settings.bitbucketToken`),type:`password`,autocomplete:`off`,dark:``,dense:``,outlined:``},null,8,[`modelValue`,`label`])])):x(``,!0),N.value===`notion`?(f(),E(`div`,{key:24,class:r([`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,{"opacity-50":!Vn.value}])},[O(`div`,os,i(t.$t(`settings.notionStatus`)),1),O(`div`,ss,i(t.$t(`settings.notionStatusHint`)),1),O(`div`,cs,[O(`div`,ls,i(t.$t(`settings.notionStatusProperty`)),1),v(R,{modelValue:un.value,"onUpdate:modelValue":n[78]||=e=>un.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionStatusPropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),O(`div`,us,[O(`div`,ds,i(t.$t(`settings.notionInProgressStatus`)),1),v(R,{modelValue:dn.value,"onUpdate:modelValue":n[79]||=e=>dn.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionInProgressStatusPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),O(`div`,fs,[O(`div`,ps,i(e(p)(`settings.notionInitialPrompt`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`notionInitialPromptTemplate`,disable:J.value!==null&&J.value!==`notionInitialPromptTemplate`,onClick:n[80]||=e=>Pf(`notionInitialPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,ms,i(e(p)(`settings.notionInitialPrompt.help`,{variables:`{ticket_id}, {notion_url}, {notion_file_path}`})),1),v(R,{modelValue:Mn.value,"onUpdate:modelValue":n[81]||=e=>Mn.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])],2)):x(``,!0),N.value===`notion`?(f(),E(`div`,{key:25,class:r([`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,{"opacity-50":!Vn.value}])},[O(`div`,hs,i(t.$t(`settings.notionAssignee`)),1),O(`div`,gs,i(t.$t(`settings.notionAssigneeHint`)),1),O(`div`,_s,[O(`div`,vs,i(t.$t(`settings.notionAssigneeProperty`)),1),v(R,{modelValue:fn.value,"onUpdate:modelValue":n[82]||=e=>fn.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionAssigneePropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),O(`div`,ys,[O(`div`,bs,[O(`div`,xs,i(t.$t(`settings.notionUserId`)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`kobo-2`,loading:On.value,label:t.$t(`settings.notionUsersRefresh`),onClick:n[83]||=e=>jn(!0)},null,8,[`loading`,`label`])]),Dn.value.length>0?(f(),b(U,{key:0,modelValue:pn.value,"onUpdate:modelValue":n[84]||=e=>pn.value=e,options:An.value,"emit-value":``,"map-options":``,clearable:``,dense:``,dark:``,outlined:``,hint:t.$t(`settings.notionUserIdHint`),class:`settings-input`},{option:_(e=>[v(W,a(h(e.itemProps)),{default:_(()=>[v(G,{avatar:``},{default:_(()=>[v(tt,{size:`24px`},{default:_(()=>[e.opt.avatarUrl?(f(),E(`img`,{key:0,src:e.opt.avatarUrl,alt:e.opt.label},null,8,Ss)):(f(),b(I,{key:1,name:`person`,size:`20px`}))]),_:2},1024)]),_:2},1024),v(G,null,{default:_(()=>[v(st,null,{default:_(()=>[S(i(e.opt.name),1)]),_:2},1024),v(st,{caption:``},{default:_(()=>[S(i(e.opt.email),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`hint`])):On.value?(f(),E(`div`,Cs,i(t.$t(`settings.notionUsersLoading`)),1)):(f(),E(D,{key:2},[kn.value?(f(),E(`div`,ws,i(t.$t(`settings.notionUsersLoadFailed`,{error:kn.value})),1)):x(``,!0),v(R,{modelValue:pn.value,"onUpdate:modelValue":n[85]||=e=>pn.value=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.notionUserIdPlaceholder`),hint:kn.value?t.$t(`settings.notionUsersManualFallback`):t.$t(`settings.notionUserIdHint`),class:`settings-input`},null,8,[`modelValue`,`placeholder`,`hint`])],64))])],2)):x(``,!0),N.value===`sentry`?(f(),E(`div`,{key:26,class:r([`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`,{"opacity-50":!Hn.value}])},[O(`div`,Ts,i(e(p)(`settings.sentryIntegration`)),1),O(`div`,Es,[O(`div`,Ds,i(e(p)(`settings.sentryInitialPrompt`)),1),v(K),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`kobo-2`,icon:`restart_alt`,label:e(p)(`settings.resetToDefault`),loading:J.value===`sentryInitialPromptTemplate`,disable:J.value!==null&&J.value!==`sentryInitialPromptTemplate`,onClick:n[86]||=e=>Pf(`sentryInitialPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),O(`div`,Os,i(e(p)(`settings.sentryInitialPrompt.help`,{variables:`{issue_id}, {sentry_url}, {sentry_file_path}`})),1),v(R,{modelValue:Nn.value,"onUpdate:modelValue":n[87]||=e=>Nn.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])],2)):x(``,!0),N.value===`general`?(f(),E(`div`,ks,[O(`div`,As,i(t.$t(`settings.tagsTitle`)),1),O(`div`,js,i(t.$t(`settings.tagsHint`)),1),v(U,{modelValue:Un.value,"onUpdate:modelValue":n[88]||=e=>Un.value=e,label:t.$t(`settings.tagsLabel`),dark:``,outlined:``,multiple:``,"use-input":``,"use-chips":``,"new-value-mode":`add-unique`,"hide-dropdown-icon":``,"input-debounce":`0`,class:`settings-input`},null,8,[`modelValue`,`label`])])):x(``,!0),N.value===`scripts`?(f(),E(`div`,Ms,[O(`div`,Ns,i(t.$t(`settings.setupScript`)),1),O(`div`,Ps,i(t.$t(`settings.setupScriptHint`)),1),v(R,{modelValue:Gn.value,"onUpdate:modelValue":n[89]||=e=>Gn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X)])):x(``,!0),N.value===`scripts`?(f(),E(`div`,Fs,[O(`div`,Is,i(t.$t(`settings.cleanupScript`)),1),O(`div`,Ls,i(t.$t(`settings.cleanupScriptHint`)),1),v(R,{modelValue:Kn.value,"onUpdate:modelValue":n[90]||=e=>Kn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.cleanupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X),O(`div`,Rs,i(t.$t(`settings.cleanupScriptMode`)),1),v(Re,{modelValue:qn.value,"onUpdate:modelValue":n[91]||=e=>qn.value=e,options:[{label:t.$t(`settings.cleanupScriptMode.idle`),value:`idle`},{label:t.$t(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}],type:`radio`,color:`primary`,dense:``},null,8,[`modelValue`,`options`]),v($e,{modelValue:Jn.value,"onUpdate:modelValue":n[92]||=e=>Jn.value=e,label:t.$t(`settings.cleanupScriptOnlyOnChanges`),dark:``,dense:``,color:`primary`,class:`q-mt-sm`},null,8,[`modelValue`,`label`])])):x(``,!0),N.value===`scripts`?(f(),E(`div`,zs,[O(`div`,Bs,i(t.$t(`settings.archiveScript`)),1),O(`div`,Vs,i(t.$t(`settings.archiveScriptHint`)),1),v(R,{modelValue:Yn.value,"onUpdate:modelValue":n[93]||=e=>Yn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.archiveScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X)])):x(``,!0),N.value===`scripts`?(f(),E(`div`,Hs,[O(`div`,Us,[v(B,{modelValue:Ye.value,"onUpdate:modelValue":n[94]||=e=>Ye.value=e,label:t.$t(`settings.stopDevServersOnShutdown`),color:`primary`},null,8,[`modelValue`,`label`]),O(`div`,Ws,i(t.$t(`settings.stopDevServersOnShutdownHint`)),1)]),O(`div`,Gs,i(t.$t(`settings.hook.shutdownTitle`)),1),O(`div`,Ks,i(t.$t(`settings.hook.shutdownHint`)),1),v(R,{modelValue:Zn.value,"onUpdate:modelValue":n[95]||=e=>Zn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.shutdownPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`kobo-shutdown`})])):x(``,!0),N.value===`scripts`?(f(),E(`div`,qs,[O(`div`,Js,i(t.$t(`settings.hook.sessionEndedTitle`)),1),O(`div`,Ys,i(t.$t(`settings.hook.sessionEndedHint`)),1),v(R,{modelValue:Xn.value,"onUpdate:modelValue":n[96]||=e=>Xn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.sessionEndedPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`session-ended`})])):x(``,!0),N.value===`scripts`?(f(),E(`div`,Xs,[O(`div`,Zs,i(t.$t(`settings.hook.prMergedTitle`)),1),O(`div`,Qs,i(t.$t(`settings.hook.prMergedHint`)),1),v(R,{modelValue:Qn.value,"onUpdate:modelValue":n[97]||=e=>Qn.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.prMergedPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`pr-merged`})])):x(``,!0),N.value===`scripts`?(f(),E(`div`,$s,[O(`div`,ec,i(t.$t(`settings.hook.autoLoopDisabledTitle`)),1),O(`div`,tc,i(t.$t(`settings.hook.autoLoopDisabledHint`)),1),v(R,{modelValue:$n.value,"onUpdate:modelValue":n[98]||=e=>$n.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.autoLoopDisabledPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`autoloop-disabled`})])):x(``,!0),N.value===`scripts`?(f(),E(`div`,nc,[O(`div`,rc,[O(`div`,ic,i(t.$t(`settings.changeSourceBranchScript`)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`primary`,icon:`restart_alt`,label:t.$t(`settings.changeSourceBranchScript.resetDefault`),onClick:n[99]||=e=>Hr(`global`)},null,8,[`label`])]),O(`div`,ac,i(t.$t(`settings.changeSourceBranchScript.help`)),1),O(`pre`,oc,i(t.$t(`settings.changeSourceBranchScript.envHelp`)),1),v(R,{modelValue:er.value,"onUpdate:modelValue":n[100]||=e=>er.value=e,type:`textarea`,dark:``,outlined:``,"input-style":{minHeight:`400px`,maxHeight:`600px`},placeholder:t.$t(`settings.changeSourceBranchScript.placeholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])):x(``,!0),N.value===`worktrees`?(f(),E(`div`,sc,[O(`div`,cc,i(t.$t(`settings.worktreesTitle`)),1),O(`div`,lc,i(t.$t(`settings.worktreesHint`)),1),v(R,{ref_key:`globalWorktreesPathInput`,ref:or,modelValue:ar.value,"onUpdate:modelValue":n[101]||=e=>ar.value=e,label:t.$t(`settings.worktreesPathLabel`),dense:``,dark:``,outlined:``,placeholder:e(Se),rules:cd,"lazy-rules":``,class:`settings-input`},null,8,[`modelValue`,`label`,`placeholder`]),v(B,{modelValue:sr.value,"onUpdate:modelValue":n[102]||=e=>sr.value=e,label:t.$t(`settings.worktreesPrefixByProject`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption q-mt-sm`},null,8,[`modelValue`,`label`]),O(`div`,uc,i(t.$t(`settings.worktreesPrefixByProjectHint`)),1),v(Be,{dark:``,class:`q-my-md`}),O(`div`,dc,[v(B,{modelValue:Le.value,"onUpdate:modelValue":n[103]||=e=>Le.value=e,label:t.$t(`settings.autoPurgeOnPrMerged`),dark:``,dense:``,color:`primary`,class:`text-kobo-2 text-caption`},null,8,[`modelValue`,`label`]),O(`div`,fc,i(t.$t(`settings.autoPurgeOnPrMergedHint`)),1)]),v(Be,{dark:``,class:`q-my-md`}),O(`div`,pc,[O(`div`,mc,i(t.$t(`settings.retentionTitle`)),1),O(`div`,hc,i(t.$t(`settings.retentionWarning`)),1),O(`div`,gc,i(t.$t(`settings.retentionHint`)),1),v(R,{modelValue:rt.value,"onUpdate:modelValue":n[104]||=e=>rt.value=e,modelModifiers:{number:!0},label:t.$t(`settings.retentionDaysLabel`),hint:t.$t(`settings.retentionDaysHint`),type:`number`,min:`0`,max:`3650`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`,`hint`]),v(R,{modelValue:at.value,"onUpdate:modelValue":n[105]||=e=>at.value=e,modelModifiers:{number:!0},label:t.$t(`settings.retentionKeepLabel`),hint:t.$t(`settings.retentionKeepHint`),type:`number`,min:`0`,max:`1000000`,dense:``,dark:``,outlined:``,class:`settings-input q-mt-md`},null,8,[`modelValue`,`label`,`hint`]),rt.value===0?(f(),E(`div`,_c,i(t.$t(`settings.retentionDisabledHint`)),1)):x(``,!0)]),v(ct,{dense:``,dark:``,icon:`help_outline`,label:t.$t(`settings.purgeDocsTitle`),class:`purge-docs q-mt-md rounded-borders`},{default:_(()=>[O(`div`,vc,[O(`div`,yc,i(t.$t(`settings.purgeDocsRestoreTitle`)),1),O(`div`,bc,i(t.$t(`settings.purgeDocsRestoreIntro`)),1),O(`pre`,xc,i(t.$t(`settings.purgeDocsRestoreCommands`)),1),O(`div`,Sc,i(t.$t(`settings.purgeDocsRestoreFootnote`)),1),O(`div`,Cc,i(t.$t(`settings.purgeDocsPermissionsTitle`)),1),O(`div`,wc,i(t.$t(`settings.purgeDocsPermissionsIntro`)),1),O(`ul`,Tc,[O(`li`,null,i(t.$t(`settings.purgeDocsPermissionsDocker`)),1),O(`li`,null,i(t.$t(`settings.purgeDocsPermissionsAcl`)),1)]),O(`pre`,Ec,i(t.$t(`settings.purgeDocsPermissionsAclCommand`)),1),O(`div`,Dc,i(t.$t(`settings.purgeDocsPermissionsFootnote`)),1),O(`div`,Oc,i(t.$t(`settings.purgeDocsPermissionsRecoverTitle`)),1),O(`div`,kc,i(t.$t(`settings.purgeDocsPermissionsRecoverIntro`)),1),O(`div`,Ac,i(t.$t(`settings.purgeDocsPermissionsRecoverAclIntro`)),1),O(`pre`,jc,i(t.$t(`settings.purgeDocsPermissionsRecoverAclCommand`)),1),O(`div`,Mc,i(t.$t(`settings.purgeDocsPermissionsRecoverChownIntro`)),1),O(`pre`,Nc,i(t.$t(`settings.purgeDocsPermissionsRecoverChownCommand`)),1),O(`div`,Pc,i(t.$t(`settings.purgeDocsPermissionsRecoverFootnote`)),1)])]),_:1},8,[`label`])])):x(``,!0),N.value===`general`?(f(),E(`div`,Fc,[O(`div`,Ic,i(t.$t(`settings.network.title`)),1),O(`div`,Lc,i(t.$t(`settings.network.hint`)),1),v(B,{"model-value":H.value.enabled,label:t.$t(`settings.network.enable`),dark:``,color:`primary`,"onUpdate:modelValue":Ht},null,8,[`model-value`,`label`]),lt.value?(f(),b(Nt,{key:0,class:`bg-amber-1 text-amber-9 q-mt-sm`,dense:``,rounded:``},{default:_(()=>[S(i(t.$t(`settings.network.restartRequired`)),1)]),_:1})):x(``,!0),H.value.enabled?(f(),E(`div`,Rc,[v(B,{"model-value":H.value.behindProxy,label:t.$t(`settings.network.behindProxy`),dark:``,color:`primary`,"onUpdate:modelValue":Ut},null,8,[`model-value`,`label`]),O(`div`,zc,i(t.$t(`settings.network.behindProxyHint`)),1)])):x(``,!0),H.value.enabled&&H.value.token?(f(),E(D,{key:2},[O(`div`,Bc,[O(`div`,Vc,i(t.$t(`settings.network.token`)),1),v(R,{"model-value":H.value.token,readonly:``,dense:``,dark:``,outlined:``},{append:_(()=>[v(L,{flat:``,dense:``,icon:`content_copy`,title:t.$t(`settings.network.copy`),onClick:Gt},null,8,[`title`])]),_:1},8,[`model-value`]),v(L,{class:`q-mt-sm`,label:t.$t(`settings.network.regenerate`),color:`primary`,outline:``,dense:``,onClick:Wt},null,8,[`label`])]),O(`div`,Hc,[O(`div`,Uc,i(t.$t(`settings.network.urls`)),1),Dt.value.length===0?(f(),E(`div`,Wc,i(t.$t(`settings.network.noUrls`)),1)):x(``,!0),(f(!0),E(D,null,A(Dt.value,e=>(f(),E(`div`,{key:e,class:`text-body2`},i(e),1))),128))]),ft.value?(f(),E(`div`,Gc,[O(`div`,Kc,i(t.$t(`settings.network.scan`)),1),O(`img`,{src:ft.value,alt:t.$t(`settings.network.scan`),width:`200`,height:`200`},null,8,qc)])):x(``,!0)],64)):x(``,!0),v(Rn,{token:H.value.token,"network-enabled":H.value.enabled,"behind-proxy":H.value.behindProxy},null,8,[`token`,`network-enabled`,`behind-proxy`])])):x(``,!0),N.value===`export`?(f(),E(`div`,Jc,[O(`div`,Yc,i(t.$t(`settings.shareTitle`)),1),O(`div`,Xc,i(t.$t(`settings.shareHint`)),1),O(`div`,Zc,[v(L,{label:t.$t(`settings.exportConfig`),icon:`download`,"no-caps":``,outline:``,color:`kobo-2`,onClick:jf},null,8,[`label`]),v(L,{label:t.$t(`settings.importConfig`),icon:`upload`,"no-caps":``,outline:``,color:`kobo-2`,onClick:Mf},null,8,[`label`]),O(`input`,{ref_key:`importFileInput`,ref:Af,type:`file`,accept:`application/json,.json`,style:{display:`none`},onChange:Nf},null,544)])])):x(``,!0)],512),[[ne,ce.value]]),N.value===`projects`?(f(),E(`div`,Qc,[O(`div`,$c,[O(`div`,el,[O(`div`,tl,[O(`div`,nl,[O(`div`,rl,i(t.$t(`settings.configuredProjects`)),1)]),v(Be,{dark:``}),v(V,{dark:``,dense:``,class:`q-py-xs`},{default:_(()=>[(f(!0),E(D,null,A(e(s).projects,(e,t)=>(f(),b(W,{key:e.path,clickable:``,active:md.value===t&&!Z.value,"active-class":`project-item--active`,class:`project-item q-mx-xs rounded-borders`,style:{"min-height":`40px`},onClick:e=>Jf(t)},{default:_(()=>[v(G,null,{default:_(()=>[v(st,{class:`text-body2 text-kobo-1`},{default:_(()=>[S(i(Yf(e)),1)]),_:2},1024),v(st,{caption:``,class:`text-kobo-3 ellipsis`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:_(()=>[S(i(e.path),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1}),e(s).projects.length===0&&!e(s).loading?(f(),E(`div`,il,i(t.$t(`settings.noProjects`)),1)):x(``,!0),v(Be,{dark:``}),O(`div`,al,[v(L,{"data-tour":`settings-card-projects`,label:t.$t(`settings.addProject`),icon:`add`,"no-caps":``,flat:``,dense:``,class:`full-width`,color:`primary`,onClick:qf},null,8,[`label`])])])]),O(`div`,ol,[O(`div`,sl,[$.value||Z.value?(f(),E(D,{key:0},[O(`div`,cl,[O(`div`,ll,i(Z.value?t.$t(`settings.newProject`):t.$t(`settings.editProject`)),1),v(K),Z.value?x(``,!0):(f(),b(L,{key:0,label:t.$t(`common.delete`),icon:`delete_outline`,"no-caps":``,flat:``,dense:``,size:`sm`,color:`red-5`,loading:kd.value,onClick:Kf},null,8,[`label`,`loading`]))]),v(Be,{dark:``,class:`q-mb-md`}),Z.value&&e(s).projects.length>0?(f(),E(`div`,ul,[O(`div`,dl,i(t.$t(`settings.copyFrom`)),1),v(U,{"model-value":gd.value,options:vd.value,"option-value":`value`,"option-label":`label`,"emit-value":``,"map-options":``,clearable:``,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.copyFromPlaceholder`),class:`settings-input`,"onUpdate:modelValue":xd},null,8,[`model-value`,`options`,`placeholder`]),O(`div`,fl,i(t.$t(`settings.copyFromHint`)),1)])):x(``,!0),O(`div`,pl,[O(`div`,ml,i(t.$t(`settings.projectGroup.identity`)),1),O(`div`,hl,[O(`div`,gl,i(t.$t(`settings.projectPath`)),1),v(R,{modelValue:Q.value.path,"onUpdate:modelValue":n[107]||=e=>Q.value.path=e,dense:``,dark:``,outlined:``,readonly:!Z.value,placeholder:t.$t(`settings.projectPathPlaceholder`),class:r([`settings-input`,{"readonly-input":!Z.value}])},C({_:2},[Z.value?{name:`append`,fn:_(()=>[v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`folder_open`,color:`kobo-2`,onClick:n[106]||=e=>nr.value=!0},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`folderPicker.title`)),1)]),_:1})]),_:1})]),key:`0`}:void 0]),1032,[`modelValue`,`readonly`,`placeholder`,`class`])]),O(`div`,_l,[O(`div`,vl,i(t.$t(`settings.displayName`)),1),v(R,{modelValue:Q.value.displayName,"onUpdate:modelValue":n[108]||=e=>Q.value.displayName=e,dense:``,dark:``,outlined:``,placeholder:t.$t(`settings.displayNamePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),O(`div`,null,[O(`div`,yl,i(t.$t(`settings.projectColor`)),1),O(`div`,bl,[(f(!0),E(D,null,A(e(Pt),e=>(f(),b(mt,{key:e,dense:``,clickable:``,color:e,icon:Q.value.color===e?`check`:void 0,"text-color":`white`,onClick:t=>Q.value.color=e},null,8,[`color`,`icon`,`onClick`]))),128)),v(L,{flat:``,dense:``,"no-caps":``,size:`xs`,label:t.$t(`settings.projectColorClear`),color:`kobo-2`,disable:!Q.value.color,onClick:n[109]||=e=>Q.value.color=null},null,8,[`label`,`disable`])]),O(`div`,xl,i(Q.value.color??t.$t(`settings.projectColorDefault`)),1)])]),O(`div`,Sl,[O(`div`,Cl,i(t.$t(`settings.projectGroup.defaults`)),1),O(`div`,wl,[O(`div`,Tl,i(t.$t(`settings.defaultSourceBranch`)),1),v(U,{modelValue:Q.value.defaultSourceBranch,"onUpdate:modelValue":n[110]||=e=>Q.value.defaultSourceBranch=e,options:Xf.value,dense:``,dark:``,outlined:``,"use-input":``,"emit-value":``,loading:Dd.value,class:`settings-input`,placeholder:`main`,onFilter:Zf},{"no-option":_(()=>[v(W,null,{default:_(()=>[v(G,{class:`text-kobo-3 text-caption`},{default:_(()=>[S(i(Q.value.path.trim()?t.$t(`createPage.noBranches`):t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`])]),O(`div`,El,[O(`div`,Dl,i(t.$t(`settings.defaultModel.project`)),1),v(U,{modelValue:Q.value.defaultModel,"onUpdate:modelValue":n[111]||=e=>Q.value.defaultModel=e,options:$d.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),O(`div`,null,[O(`div`,Ol,i(t.$t(`settings.forge`)),1),v(U,{modelValue:Q.value.forge,"onUpdate:modelValue":n[112]||=e=>Q.value.forge=e,options:ef.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])])]),O(`div`,kl,[O(`div`,Al,i(t.$t(`settings.nav.git`)),1),v(Rt,{modelValue:Q.value.workflowPolicy,"onUpdate:modelValue":n[113]||=e=>Q.value.workflowPolicy=e,inherit:``,class:`q-my-md`},null,8,[`modelValue`]),O(`div`,jl,[O(`div`,Ml,i(t.$t(`settings.gitConventions.project`)),1),O(`div`,Nl,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.gitConventions,"onUpdate:modelValue":n[114]||=e=>Q.value.gitConventions=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`140px`},placeholder:t.$t(`settings.gitConventionsEmpty`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),O(`div`,Pl,[O(`div`,Fl,i(t.$t(`settings.projectGroup.prompts`)),1),O(`div`,Il,[O(`div`,Ll,i(t.$t(`settings.prPromptTemplate.project`)),1),O(`div`,Rl,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.prPromptTemplate,"onUpdate:modelValue":n[115]||=e=>Q.value.prPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.prPromptPlaceholder.project`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),O(`div`,zl,[O(`div`,Bl,i(t.$t(`settings.reviewPromptTemplate.project`)),1),O(`div`,Vl,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.reviewPromptTemplate,"onUpdate:modelValue":n[116]||=e=>Q.value.reviewPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.reviewPromptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),O(`div`,Hl,[O(`div`,Ul,i(t.$t(`settings.ciFixPromptTemplate.project`)),1),O(`div`,Wl,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.ciFixPromptTemplate,"onUpdate:modelValue":n[117]||=e=>Q.value.ciFixPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.ciFixPromptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),Vn.value?(f(),E(`div`,Gl,[O(`div`,Kl,i(e(p)(`settings.notionInitialPrompt.project`)),1),O(`div`,ql,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.notionInitialPromptTemplate,"onUpdate:modelValue":n[118]||=e=>Q.value.notionInitialPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):x(``,!0),Hn.value?(f(),E(`div`,Jl,[O(`div`,Yl,i(e(p)(`settings.sentryInitialPrompt.project`)),1),O(`div`,Xl,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.sentryInitialPromptTemplate,"onUpdate:modelValue":n[119]||=e=>Q.value.sentryInitialPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):x(``,!0),O(`div`,null,[O(`div`,Zl,i(t.$t(`settings.taskPromptTemplate`)),1),v(R,{modelValue:Q.value.taskPromptTemplate,"onUpdate:modelValue":n[120]||=e=>Q.value.taskPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.taskPromptTemplatePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`]),O(`div`,Ql,i(t.$t(`settings.taskPromptTemplateHint`)),1)])]),O(`div`,$l,[O(`div`,eu,i(t.$t(`settings.projectGroup.scripts`)),1),O(`div`,tu,[O(`div`,nu,i(t.$t(`settings.setupScript`)),1),O(`div`,ru,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.setupScript,"onUpdate:modelValue":n[121]||=e=>Q.value.setupScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X),O(`div`,iu,i(t.$t(`settings.setupScriptHint`)),1)]),O(`div`,au,[O(`div`,ou,i(t.$t(`settings.cleanupScript`)),1),O(`div`,su,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.cleanupScript,"onUpdate:modelValue":n[122]||=e=>Q.value.cleanupScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.cleanupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X),O(`div`,cu,i(t.$t(`settings.cleanupScriptMode`)),1),v(U,{modelValue:Q.value.cleanupScriptMode,"onUpdate:modelValue":n[123]||=e=>Q.value.cleanupScriptMode=e,options:ir.value,"emit-value":``,"map-options":``,dense:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),O(`div`,null,[O(`div`,lu,i(t.$t(`settings.archiveScript`)),1),O(`div`,uu,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.archiveScript,"onUpdate:modelValue":n[124]||=e=>Q.value.archiveScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.archiveScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X)]),O(`div`,null,[O(`div`,du,i(t.$t(`settings.hook.shutdownTitle`)),1),O(`div`,fu,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.shutdownScript,"onUpdate:modelValue":n[125]||=e=>Q.value.shutdownScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.shutdownPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`kobo-shutdown`})]),O(`div`,null,[O(`div`,pu,i(t.$t(`settings.hook.sessionEndedTitle`)),1),O(`div`,mu,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.sessionEndedScript,"onUpdate:modelValue":n[126]||=e=>Q.value.sessionEndedScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.sessionEndedPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`session-ended`})]),O(`div`,null,[O(`div`,hu,i(t.$t(`settings.hook.prMergedTitle`)),1),O(`div`,gu,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.prMergedScript,"onUpdate:modelValue":n[127]||=e=>Q.value.prMergedScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.prMergedPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`pr-merged`})]),O(`div`,null,[O(`div`,_u,i(t.$t(`settings.hook.autoLoopDisabledTitle`)),1),O(`div`,vu,i(e(p)(`settings.initialPrompt.inheritHint`)),1),v(R,{modelValue:Q.value.autoLoopDisabledScript,"onUpdate:modelValue":n[128]||=e=>Q.value.autoLoopDisabledScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:t.$t(`settings.hook.autoLoopDisabledPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),v(X,{event:`autoloop-disabled`})]),O(`div`,null,[O(`div`,yu,[O(`div`,bu,i(t.$t(`settings.changeSourceBranchScript`)),1),v(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`primary`,icon:`restart_alt`,label:t.$t(`settings.changeSourceBranchScript.resetDefault`),onClick:n[129]||=e=>Hr(`project`)},null,8,[`label`])]),O(`div`,xu,i(t.$t(`settings.changeSourceBranchScript.help`)),1),O(`pre`,Su,i(t.$t(`settings.changeSourceBranchScript.envHelp`)),1),v(R,{modelValue:Q.value.changeSourceBranchScript,"onUpdate:modelValue":n[130]||=e=>Q.value.changeSourceBranchScript=e,type:`textarea`,outlined:``,"input-style":{minHeight:`400px`,maxHeight:`600px`},placeholder:t.$t(`settings.changeSourceBranchScript.placeholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),O(`div`,Cu,[O(`div`,wu,i(t.$t(`settings.devServer`)),1),O(`div`,Tu,[O(`div`,Eu,i(t.$t(`settings.devServerStart`)),1),v(R,{modelValue:Q.value.devServer.startCommand,"onUpdate:modelValue":n[131]||=e=>Q.value.devServer.startCommand=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`60px`},placeholder:t.$t(`settings.devServerStartPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),O(`div`,null,[O(`div`,Du,i(t.$t(`settings.devServerStop`)),1),v(R,{modelValue:Q.value.devServer.stopCommand,"onUpdate:modelValue":n[132]||=e=>Q.value.devServer.stopCommand=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`60px`},placeholder:t.$t(`settings.devServerStopPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),O(`div`,Ou,[O(`div`,ku,i(t.$t(`settings.e2e.title`)),1),O(`div`,Au,i(t.$t(`settings.e2e.helpText`)),1),v(U,{modelValue:Q.value.e2e.framework,"onUpdate:modelValue":n[133]||=e=>Q.value.e2e.framework=e,options:[{label:t.$t(`settings.e2e.frameworkNone`),value:``},{label:`Cypress`,value:`cypress`},{label:`Playwright`,value:`playwright`},{label:`Jest`,value:`jest`},{label:`Vitest`,value:`vitest`},{label:t.$t(`settings.e2e.frameworkOther`),value:`other`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-sm`,label:t.$t(`settings.e2e.framework`)},null,8,[`modelValue`,`options`,`label`]),Q.value.e2e.framework?(f(),E(D,{key:0},[v(U,{modelValue:Q.value.e2e.skill,"onUpdate:modelValue":n[134]||=e=>Q.value.e2e.skill=e,options:Cd.value,"use-input":``,"fill-input":``,"hide-selected":``,"hide-dropdown-icon":``,"input-debounce":`200`,"new-value-mode":`add-unique`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-sm`,label:t.$t(`settings.e2e.skill`),placeholder:t.$t(`settings.e2e.skillPlaceholder`),onFilter:Td},null,8,[`modelValue`,`options`,`label`,`placeholder`]),v(R,{modelValue:Q.value.e2e.prompt,"onUpdate:modelValue":n[135]||=e=>Q.value.e2e.prompt=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,class:`settings-input mono-textarea`,label:t.$t(`settings.e2e.prompt`),placeholder:t.$t(`settings.e2e.promptPlaceholder`)},null,8,[`modelValue`,`label`,`placeholder`])],64)):x(``,!0)]),O(`div`,ju,[O(`div`,Mu,i(t.$t(`settings.finalization.title`)),1),O(`div`,Nu,i(t.$t(`settings.finalization.helpText`)),1),v(R,{modelValue:Q.value.finalization.prompt,"onUpdate:modelValue":n[136]||=e=>Q.value.finalization.prompt=e,type:`textarea`,autogrow:``,rows:`4`,dense:``,dark:``,outlined:``,class:`settings-input mono-textarea q-mb-sm`,label:t.$t(`settings.finalization.prompt`),placeholder:t.$t(`settings.finalization.promptPlaceholder`)},null,8,[`modelValue`,`label`,`placeholder`])])],64)):(f(),E(`div`,Pu,[v(I,{name:`folder_open`,size:`48px`,color:`kobo-3`,class:`q-mb-md`}),O(`div`,Fu,i(t.$t(`settings.selectProject`)),1)]))])])])])):x(``,!0),N.value===`templates`?(f(),E(`div`,Iu,[O(`div`,Lu,[O(`div`,Ru,[O(`div`,zu,i(t.$t(`templates.title`)),1),O(`div`,Bu,[v(L,{flat:``,color:`kobo-2`,icon:`restart_alt`,label:t.$t(`templates.reloadDefaults`),dense:``,"no-caps":``,loading:Ld.value,onClick:Ud},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`templates.reloadDefaultsHint`)),1)]),_:1})]),_:1},8,[`label`,`loading`]),v(L,{color:`primary`,icon:`add`,label:t.$t(`templates.newTemplate`),dense:``,"no-caps":``,onClick:Bd},null,8,[`label`])])]),v(Be,{dark:``,class:`q-mb-md`}),Rd.value.length===0?(f(),E(`div`,Vu,i(t.$t(`templates.empty`)),1)):(f(),E(`div`,Hu,[(f(!0),E(D,null,A(Rd.value,n=>(f(),b(Ve,{key:n.slug,dark:``,flat:``,bordered:``,class:`q-pa-md template-card`},{default:_(()=>[O(`div`,Uu,[O(`div`,Wu,[O(`div`,Gu,` /`+i(n.slug),1),O(`div`,Ku,i(n.description),1)]),O(`div`,qu,[e(c).isDefault(n.slug)?(f(),b(L,{key:0,flat:``,dense:``,round:``,size:`sm`,icon:`settings_backup_restore`,color:`kobo-2`,onClick:e=>Jd(n)},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`templates.resetToDefault`)),1)]),_:1})]),_:1},8,[`onClick`])):x(``,!0),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`edit`,color:`kobo-2`,onClick:e=>Vd(n)},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`templates.editTemplate`)),1)]),_:1})]),_:1},8,[`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`red-4`,onClick:e=>Wd(n)},{default:_(()=>[v(pt,null,{default:_(()=>[S(i(t.$t(`templates.deleteTemplate`)),1)]),_:1})]),_:1},8,[`onClick`])])])]),_:2},1024))),128))])),O(`div`,Ju,i(t.$t(`templates.filePath`,{path:`~/.config/kobo/templates.json`})),1)])])):x(``,!0),N.value===`workspaceTemplates`?(f(),E(`div`,Yu,[O(`div`,Xu,[O(`div`,Zu,i(t.$t(`workspaceTemplates.title`)),1),O(`div`,Qu,i(t.$t(`workspaceTemplates.hint`)),1),e(d).templates.length===0?(f(),E(`div`,$u,i(t.$t(`workspaceTemplates.empty`)),1)):(f(),b(V,{key:1,dark:``,separator:``},{default:_(()=>[(f(!0),E(D,null,A(e(d).templates,e=>(f(),b(ct,{key:e.id,dense:``,"header-class":`text-kobo-1`},{header:_(()=>[v(G,null,{default:_(()=>[v(st,null,{default:_(()=>[S(i(e.name),1)]),_:2},1024),v(st,{caption:``,class:`text-kobo-3`},{default:_(()=>[S(i(e.preset.projectPath||t.$t(`workspaceTemplates.anyProject`))+` · `+i(e.preset.engine??`-`)+` · `+i(e.preset.model??`-`)+` · `+i(Gd(e.updatedAt)),1)]),_:2},1024)]),_:2},1024),v(G,{side:``},{default:_(()=>[O(`div`,ed,[v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`edit`,title:t.$t(`workspaceTemplates.rename`),onClick:ee(t=>Kd(e.id,e.name),[`stop`])},null,8,[`title`,`onClick`]),v(L,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`kobo-danger`,title:t.$t(`common.delete`),onClick:ee(t=>qd(e.id,e.name),[`stop`])},null,8,[`title`,`onClick`])])]),_:2},1024)]),default:_(()=>[v(Ve,{dark:``,flat:``,class:`settings-subcard q-pa-md`},{default:_(()=>[O(`pre`,td,i(JSON.stringify(e.preset,null,2)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}))])])):x(``,!0)])]),v(M,{name:`save-bar`},{default:_(()=>[Cf.value?(f(),E(`div`,{key:0,class:r([`settings-savebar`,{"settings-savebar--full":e(k)}])},[O(`span`,nd,i(t.$t(`settings.unsavedChanges`)),1),v(L,{dense:``,"no-caps":``,unelevated:``,class:`settings-savebar__action`,loading:wf.value,label:t.$t(`common.save`),onClick:Tf},null,8,[`loading`,`label`])],2)):x(``,!0)]),_:1})]),v(Ze,{modelValue:Ad.value,"onUpdate:modelValue":n[140]||=e=>Ad.value=e,persistent:``},{default:_(()=>[v(Ve,{dark:``,style:{"min-width":`560px`,"max-width":`800px`,width:`80vw`}},{default:_(()=>[v(et,null,{default:_(()=>[O(`div`,rd,i(jd.value===null?t.$t(`templates.newTemplate`):t.$t(`templates.editTemplate`)),1)]),_:1}),v(et,{class:`q-gutter-md`},{default:_(()=>[v(R,{modelValue:Md.value,"onUpdate:modelValue":n[137]||=e=>Md.value=e,label:t.$t(`templates.slug`),hint:t.$t(`templates.slugHint`),dark:``,dense:``,prefix:`/`,disable:jd.value!==null,rules:[e=>/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)||t.$t(`templates.slugInvalid`)],"lazy-rules":``},null,8,[`modelValue`,`label`,`hint`,`disable`,`rules`]),v(R,{modelValue:Nd.value,"onUpdate:modelValue":n[138]||=e=>Nd.value=e,label:t.$t(`templates.description`),hint:t.$t(`templates.descriptionHint`),dark:``,dense:``,counter:``,maxlength:`120`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),v(R,{modelValue:Pd.value,"onUpdate:modelValue":n[139]||=e=>Pd.value=e,label:t.$t(`templates.content`),hint:t.$t(`templates.contentHint`),dark:``,dense:``,type:`textarea`,autogrow:``,counter:``,maxlength:`4096`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),v(ct,{dense:``,"dense-toggle":``,label:t.$t(`templates.availableVars`),"header-class":`text-kobo-3 text-caption q-pa-none`,style:{"font-size":`11px`}},{default:_(()=>[O(`div`,id,[(f(),E(D,null,A(zd,e=>O(`div`,{key:e,class:`text-kobo-2 q-mb-xs`},i(e),1)),64))])]),_:1},8,[`label`]),Fd.value?(f(),E(`div`,ad,i(Fd.value),1)):x(``,!0)]),_:1}),v(Ge,{align:`right`},{default:_(()=>[g(v(L,{flat:``,label:t.$t(`common.cancel`)},null,8,[`label`]),[[ht]]),v(L,{flat:``,color:`primary`,label:jd.value===null?t.$t(`templates.create`):t.$t(`templates.save`),loading:Id.value,onClick:Hd},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(At,{modelValue:nr.value,"onUpdate:modelValue":n[141]||=e=>nr.value=e,"initial-path":Q.value.path,onSelect:rr},null,8,[`modelValue`,`initial-path`])]),_:1},8,[`style-fn`]))}}),[[`__scopeId`,`data-v-c50cb97f`]]);export{sd as default,Jt as n,qt as t};