@loicngr/kobo 1.7.17 → 1.7.19

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 (85) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/server/db/migrations.js +19 -0
  3. package/dist/server/db/schema.js +1 -0
  4. package/dist/server/routes/settings.js +2 -1
  5. package/dist/server/routes/workspaces.js +227 -55
  6. package/dist/server/services/agent/orchestrator.js +1 -0
  7. package/dist/server/services/ci-fix-template-service.js +34 -0
  8. package/dist/server/services/pr-watcher-service.js +25 -4
  9. package/dist/server/services/settings-service.js +37 -0
  10. package/dist/server/services/workspace-service.js +18 -0
  11. package/dist/server/utils/branch-resolver.js +48 -0
  12. package/package.json +1 -1
  13. package/src/client/dist/spa/assets/{ActivityFeed-CDhLuhI3.js → ActivityFeed-4FmMcUzT.js} +1 -1
  14. package/src/client/dist/spa/assets/ChangelogPage-BTIcoTHM.js +1 -0
  15. package/src/client/dist/spa/assets/ChangelogPage-CQ33An2f.css +1 -0
  16. package/src/client/dist/spa/assets/{ClosePopup-A-tSm4aa.js → ClosePopup-cTUqStmn.js} +1 -1
  17. package/src/client/dist/spa/assets/CreatePage-DNaNhVRI.js +2 -0
  18. package/src/client/dist/spa/assets/CreatePage-DcqSlkD5.css +1 -0
  19. package/src/client/dist/spa/assets/{DiffViewer-CcgF65Mo.js → DiffViewer-CyQ3xZ9y.js} +3 -3
  20. package/src/client/dist/spa/assets/{HealthPage-Bw-9__wY.js → HealthPage-DeVdQ57j.js} +1 -1
  21. package/src/client/dist/spa/assets/{MainLayout-KEr19FOv.css → MainLayout-Cq4nlTx3.css} +1 -1
  22. package/src/client/dist/spa/assets/{MainLayout-C2ULeep-.js → MainLayout-Dbh8sZj9.js} +4 -4
  23. package/src/client/dist/spa/assets/QChip-D2TVel5I.js +1 -0
  24. package/src/client/dist/spa/assets/{QExpansionItem-CgJQdznK.js → QExpansionItem-DEwaFJ-l.js} +1 -1
  25. package/src/client/dist/spa/assets/{QMenu-NVDU7D3u.js → QMenu-DqPMRjtc.js} +1 -1
  26. package/src/client/dist/spa/assets/QScrollArea-BRZX618r.js +1 -0
  27. package/src/client/dist/spa/assets/QScrollObserver-B-U-JUNE.js +1 -0
  28. package/src/client/dist/spa/assets/{QTooltip-BC7PnZJ1.js → QTooltip-CayfN3AV.js} +1 -1
  29. package/src/client/dist/spa/assets/{SearchPage-D2x2X7K7.js → SearchPage-CoStu9JM.js} +1 -1
  30. package/src/client/dist/spa/assets/SettingsPage-BGHYXEmO.js +9 -0
  31. package/src/client/dist/spa/assets/{SettingsPage-BTGPZaqC.css → SettingsPage-DV10Se1K.css} +1 -1
  32. package/src/client/dist/spa/assets/{TouchPan-D0fJnlOC.js → TouchPan-CPNDMpOw.js} +1 -1
  33. package/src/client/dist/spa/assets/WorkspacePage-BWMcLN6l.js +4 -0
  34. package/src/client/dist/spa/assets/WorkspacePage-iHGFGSo5.css +1 -0
  35. package/src/client/dist/spa/assets/{build-path-tree-CyqReJkk.js → build-path-tree-C-c8LVcf.js} +1 -1
  36. package/src/client/dist/spa/assets/{cssMode-BsT_HBz-.js → cssMode-iA5eJq1h.js} +1 -1
  37. package/src/client/dist/spa/assets/{editor.api-CIxiApSC.js → editor.api-B85Aec2m.js} +1 -1
  38. package/src/client/dist/spa/assets/{editor.main-D-1-e3_n.js → editor.main-D55xuhHL.js} +3 -3
  39. package/src/client/dist/spa/assets/{engineFeatures-baMvMT98.js → engineFeatures-BIgXMO3j.js} +1 -1
  40. package/src/client/dist/spa/assets/{expand-template-CF0lBr4L.js → expand-template-B3Mua3eb.js} +1 -1
  41. package/src/client/dist/spa/assets/{freemarker2-q2PyKiM2.js → freemarker2-D_SY8XAy.js} +1 -1
  42. package/src/client/dist/spa/assets/{handlebars-DoaZIK6r.js → handlebars-DYHJKLiX.js} +1 -1
  43. package/src/client/dist/spa/assets/{html-DHcse-fd.js → html-CBV84hsj.js} +1 -1
  44. package/src/client/dist/spa/assets/{htmlMode-DPZCU7DB.js → htmlMode-oAFa-pC8.js} +1 -1
  45. package/src/client/dist/spa/assets/i18n-BSaDh2Jk.js +1 -0
  46. package/src/client/dist/spa/assets/index-Dxua-s9Z.js +52 -0
  47. package/src/client/dist/spa/assets/{javascript-Ddw7c3eO.js → javascript-Dtki-9M1.js} +1 -1
  48. package/src/client/dist/spa/assets/{jsonMode-vmAmvg_N.js → jsonMode-Dxgt3z_U.js} +1 -1
  49. package/src/client/dist/spa/assets/kobo-commands-ItyV88dT.js +9 -0
  50. package/src/client/dist/spa/assets/{liquid-Bwz3vr4k.js → liquid-AqH0N0cI.js} +1 -1
  51. package/src/client/dist/spa/assets/{mdx-B2uBtVef.js → mdx-B2rkMIhO.js} +1 -1
  52. package/src/client/dist/spa/assets/{monaco.contribution-B3cRHiXp.js → monaco.contribution-fnrc8bv7.js} +2 -2
  53. package/src/client/dist/spa/assets/{notifications-Hq-6rEYv.js → notifications-BmNlCl7A.js} +1 -1
  54. package/src/client/dist/spa/assets/permissionModes-B2nlp6IT.js +1 -0
  55. package/src/client/dist/spa/assets/{python-D5ykDuc8.js → python-DoQszzJj.js} +1 -1
  56. package/src/client/dist/spa/assets/{razor-CStvtec5.js → razor-CLSwglaW.js} +1 -1
  57. package/src/client/dist/spa/assets/render-chat-markdown-B3NEX5ju.js +60 -0
  58. package/src/client/dist/spa/assets/skill-suite-prompts-8f_JW79j.js +36 -0
  59. package/src/client/dist/spa/assets/{tsMode-WEgYYKFt.js → tsMode-CshiJr76.js} +1 -1
  60. package/src/client/dist/spa/assets/{typescript-BzFHuirT.js → typescript-CCaWpP5V.js} +1 -1
  61. package/src/client/dist/spa/assets/{use-onboarding-C98jCHZu.js → use-onboarding-DxlBVNno.js} +1 -1
  62. package/src/client/dist/spa/assets/{xml-NuCdCQMI.js → xml-WKm1dO8L.js} +1 -1
  63. package/src/client/dist/spa/assets/{yaml-CkTTgcUh.js → yaml-CSs38mRE.js} +1 -1
  64. package/src/client/dist/spa/index.html +2 -2
  65. package/src/client/dist/spa/assets/CreatePage-DgHjL4cZ.css +0 -1
  66. package/src/client/dist/spa/assets/CreatePage-xIjxPliD.js +0 -2
  67. package/src/client/dist/spa/assets/QChip-DnJyQVs2.js +0 -36
  68. package/src/client/dist/spa/assets/QScrollArea-_Ji1cgqL.js +0 -1
  69. package/src/client/dist/spa/assets/SettingsPage-BLb9B9iY.js +0 -9
  70. package/src/client/dist/spa/assets/WorkspacePage-BlAVs03z.js +0 -4
  71. package/src/client/dist/spa/assets/WorkspacePage-DTV0oWHS.css +0 -1
  72. package/src/client/dist/spa/assets/i18n-DwzfgKc3.js +0 -1
  73. package/src/client/dist/spa/assets/index-DMUFfCIq.js +0 -52
  74. package/src/client/dist/spa/assets/kobo-commands-B2AhWe1S.js +0 -9
  75. package/src/client/dist/spa/assets/permissionModes-DuwIe4ty.js +0 -1
  76. package/src/client/dist/spa/assets/render-chat-markdown-BywKNkXe.js +0 -60
  77. /package/src/client/dist/spa/assets/{QBadge-NEwszYs7.js → QBadge-DNQSqPg-.js} +0 -0
  78. /package/src/client/dist/spa/assets/{QBanner-Jsq4uJZs.js → QBanner-C_TvxtXi.js} +0 -0
  79. /package/src/client/dist/spa/assets/{QList-B3TuWSqL.js → QList-CRYZxnPD.js} +0 -0
  80. /package/src/client/dist/spa/assets/{QPage-DO_bQyV_.js → QPage-3-ah4oor.js} +0 -0
  81. /package/src/client/dist/spa/assets/{QSpace-DONPiIes.js → QSpace-Crcx82On.js} +0 -0
  82. /package/src/client/dist/spa/assets/{_plugin-vue_export-helper-Cj6tcsj6.js → _plugin-vue_export-helper-r4mAJOHR.js} +0 -0
  83. /package/src/client/dist/spa/assets/{documents-B3nitIYF.js → documents-CX2-4fhr.js} +0 -0
  84. /package/src/client/dist/spa/assets/{formatters-9dcj2tyJ.js → formatters-BKR66G3t.js} +0 -0
  85. /package/src/client/dist/spa/assets/{use-quasar-k24tGxE-.js → use-quasar-q6dh7QVJ.js} +0 -0
@@ -1,36 +0,0 @@
1
- import{C as e,b as t,l as n}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{N as r,P as i,f as a,i as o,n as s,o as c,p as l,r as u,t as d}from"./QIcon-BmEX2rXO.js";import{c as f}from"./QBtn-CoU-UC_j.js";var p=!1;{let e=document.createElement(`div`);e.setAttribute(`dir`,`rtl`),Object.assign(e.style,{width:`1px`,height:`1px`,overflow:`auto`});let t=document.createElement(`div`);Object.assign(t.style,{width:`1000px`,height:`1px`}),document.body.appendChild(e),e.appendChild(t),e.scrollLeft=-1e3,p=e.scrollLeft>=0,e.remove()}var m=`You are reviewing code changes on workspace "{{workspace_name}}" in project {{project_name}}.
2
-
3
- Branch: {{branch_name}} (base: {{source_branch}})
4
- Base commit: {{base_commit}}
5
-
6
- If a code-review skill is available in this environment, invoke it to drive this audit. Otherwise follow the manual checklist below.
7
-
8
- ## Scope
9
-
10
- Review ALL changes — both committed and uncommitted in the working tree:
11
- - \`git diff {{base_commit}}..HEAD\` — committed changes on this branch
12
- - \`git status\` and \`git diff\` — uncommitted changes (staged + unstaged)
13
-
14
- ## Diff summary
15
- {{diff_stats}}
16
-
17
- ## Commits
18
- {{commits}}
19
-
20
- ## Additional instructions
21
- {{additional_instructions}}
22
-
23
- ## Output
24
-
25
- If no review skill is available, structure your reply as:
26
- 1. Summary — what changed and why
27
- 2. Issues — bugs, regressions, security or perf concerns (with file:line)
28
- 3. Suggestions — refactor / improvement opportunities
29
- 4. Tests — coverage gaps
30
- 5. Verdict — ship / fix-then-ship / blocked
31
- `,h="Code review gate — BEFORE marking the task done, run whichever code-review skill is configured in this environment. Brief it with: what you just implemented, the task title, and the commit SHA (via `git rev-parse HEAD`). Ask specifically whether the change matches the task scope, whether edge cases are handled, and whether the commit is clean. If no review skill is available, do a manual self-review against the same criteria.",g=`You are preparing this workspace for Kōbō auto-loop mode. This is a GROOMING session only — DO NOT implement anything, DO NOT write or edit code, DO NOT run tests or builds, DO NOT invoke any implementation, planning, or release skill (your environment may have several). Your ONLY job is to curate the Kōbō task list via MCP tools.`,_=`QA pass for workspace "{{workspace_name}}" in project {{project_name}}.
32
-
33
- Branch: {{branch_name}}
34
- Staging URL: {{staging_url}}
35
-
36
- If a QA skill is configured in this environment, invoke it on {{staging_url}}. Otherwise, manually exercise the staging URL against the workspace's acceptance criteria and report findings.`,v=`Brainstorm the implementation approach. Explore the codebase to understand the existing structure. Ask clarifying questions if needed. When you have a clear, user-approved plan, save it as a plan file in the project.`,y="You are preparing this workspace for Kōbō auto-loop mode. This is a GROOMING session only — DO NOT implement anything, DO NOT write or edit code, DO NOT run tests or builds, DO NOT invoke `superpowers:executing-plans` or any implementation skill. Your ONLY job is to curate the Kōbō task list via MCP tools.",b="You are preparing this workspace for Kōbō auto-loop mode. This is a GROOMING session only — DO NOT implement anything, DO NOT write or edit code, DO NOT run tests or builds, DO NOT invoke `/ship`, `/autoplan`, `/land-and-deploy`, or any implementation skill. Your ONLY job is to curate the Kōbō task list via MCP tools.",x="You are preparing this workspace for Kōbō auto-loop mode. This is a GROOMING session only — DO NOT implement anything, DO NOT write or edit code, DO NOT run tests or builds, DO NOT invoke `superpowers:executing-plans`, `/ship`, `/autoplan`, `/land-and-deploy`, or any other implementation, planning, or release skill. Your ONLY job is to curate the Kōbō task list via MCP tools.";function S(e,t){return e===`custom`?(t??``).trim()||`You are preparing this workspace for Kōbō auto-loop mode. This is a GROOMING session only — DO NOT implement anything, DO NOT write or edit code, DO NOT run tests or builds, DO NOT invoke any implementation, planning, or release skill (your environment may have several). Your ONLY job is to curate the Kōbō task list via MCP tools.`:e===`superpowers+gstack`?x:e===`gstack`?b:y}var C={xs:8,sm:10,md:14,lg:20,xl:24},w=i({name:`QChip`,props:{...u,...l,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`update:selected`,`remove`,`click`],setup(i,{slots:l,emit:u}){let{proxy:{$q:p}}=t(),m=s(i,p),h=a(i,C),g=n(()=>i.selected===!0||i.icon!==void 0),_=n(()=>i.selected===!0?i.iconSelected||p.iconSet.chip.selected:i.icon),v=n(()=>i.iconRemove||p.iconSet.chip.remove),y=n(()=>i.disable===!1&&(i.clickable===!0||i.selected!==null)),b=n(()=>{let e=i.outline===!0&&i.color||i.textColor;return`q-chip row inline no-wrap items-center`+(i.outline===!1&&i.color!==void 0?` bg-${i.color}`:``)+(e?` text-${e} q-chip--colored`:``)+(i.disable===!0?` disabled`:``)+(i.dense===!0?` q-chip--dense`:``)+(i.outline===!0?` q-chip--outline`:``)+(i.selected===!0?` q-chip--selected`:``)+(y.value===!0?` q-chip--clickable cursor-pointer non-selectable q-hoverable`:``)+(i.square===!0?` q-chip--square`:``)+(m.value===!0?` q-chip--dark q-dark`:``)}),x=n(()=>{let e=i.disable===!0?{tabindex:-1,"aria-disabled":`true`}:{tabindex:i.tabindex||0};return{chip:e,remove:{...e,role:`button`,"aria-hidden":`false`,"aria-label":i.removeAriaLabel||p.lang.label.remove}}});function S(e){e.keyCode===13&&w(e)}function w(e){i.disable||(u(`update:selected`,!i.selected),u(`click`,e))}function T(e){(e.keyCode===void 0||e.keyCode===13)&&(r(e),i.disable===!1&&(u(`update:modelValue`,!1),u(`remove`)))}function E(){let t=[];y.value===!0&&t.push(e(`div`,{class:`q-focus-helper`})),g.value===!0&&t.push(e(d,{class:`q-chip__icon q-chip__icon--left`,name:_.value}));let n=i.label===void 0?void 0:[e(`div`,{class:`ellipsis`},[i.label])];return t.push(e(`div`,{class:`q-chip__content col row no-wrap items-center q-anchor--skip`},c(l.default,n))),i.iconRight&&t.push(e(d,{class:`q-chip__icon q-chip__icon--right`,name:i.iconRight})),i.removable===!0&&t.push(e(d,{class:`q-chip__icon q-chip__icon--remove cursor-pointer`,name:v.value,...x.value.remove,onClick:T,onKeyup:T})),t}return()=>{if(i.modelValue===!1)return;let e={class:b.value,style:h.value};return y.value===!0&&Object.assign(e,x.value.chip,{onClick:w,onKeyup:S}),o(`div`,e,E(),`ripple`,i.ripple!==!1&&i.disable!==!0,()=>[[f,i.ripple]])}}});export{_ as a,p as c,v as i,g as n,m as o,h as r,S as s,w as t};
@@ -1 +0,0 @@
1
- import{A as e,C as t,K as n,M as r,O as i,W as a,b as o,et as s,l as c}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{P as l,a as u,n as d,r as f}from"./QIcon-BmEX2rXO.js";import{u as p}from"./use-id-BCnfiBjU.js";import{b as m,x as h}from"./notifications-Hq-6rEYv.js";import{d as g}from"./QTooltip-BC7PnZJ1.js";import{a as _,o as v}from"./render-chat-markdown-BywKNkXe.js";import{t as y}from"./TouchPan-D0fJnlOC.js";var b=l({props:[`store`,`barStyle`,`verticalBarStyle`,`horizontalBarStyle`],setup(e){return()=>[t(`div`,{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onVerticalMousedown}),t(`div`,{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onHorizontalMousedown}),n(t(`div`,{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":`true`}),e.store.thumbVertDir),n(t(`div`,{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":`true`}),e.store.thumbHorizDir)]}}),x=[`vertical`,`horizontal`],S={vertical:{offset:`offsetY`,scroll:`scrollTop`,dir:`down`,dist:`y`},horizontal:{offset:`offsetX`,scroll:`scrollLeft`,dir:`right`,dist:`x`}},C={prevent:!0,mouse:!0,mouseAllDir:!0},w=e=>e>=250?50:Math.ceil(e/5),T=l({name:`QScrollArea`,props:{...f,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(n,{slots:l,emit:f}){let T=s(!1),E=s(!1),D=s(!1),O={vertical:s(0),horizontal:s(0)},k={vertical:{ref:s(null),position:s(0),size:s(0)},horizontal:{ref:s(null),position:s(0),size:s(0)}},{proxy:A}=o(),j=d(n,A.$q),M=null,N,P=s(null),F=c(()=>`q-scrollarea`+(j.value===!0?` q-scrollarea--dark`:``));Object.assign(O,{verticalInner:c(()=>O.vertical.value-n.verticalOffset[0]-n.verticalOffset[1]),horizontalInner:c(()=>O.horizontal.value-n.horizontalOffset[0]-n.horizontalOffset[1])}),k.vertical.percentage=c(()=>{let e=k.vertical.size.value-O.vertical.value;if(e<=0)return 0;let t=g(k.vertical.position.value/e,0,1);return Math.round(t*1e4)/1e4}),k.vertical.thumbHidden=c(()=>(n.visible===null?D.value:n.visible)!==!0&&T.value===!1&&E.value===!1||k.vertical.size.value<=O.vertical.value+1),k.vertical.thumbStart=c(()=>n.verticalOffset[0]+k.vertical.percentage.value*(O.verticalInner.value-k.vertical.thumbSize.value)),k.vertical.thumbSize=c(()=>Math.round(g(O.verticalInner.value*O.verticalInner.value/k.vertical.size.value,w(O.verticalInner.value),O.verticalInner.value))),k.vertical.style=c(()=>({...n.thumbStyle,...n.verticalThumbStyle,top:`${k.vertical.thumbStart.value}px`,height:`${k.vertical.thumbSize.value}px`,right:`${n.horizontalOffset[1]}px`})),k.vertical.thumbClass=c(()=>`q-scrollarea__thumb q-scrollarea__thumb--v absolute-right`+(k.vertical.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),k.vertical.barClass=c(()=>`q-scrollarea__bar q-scrollarea__bar--v absolute-right`+(k.vertical.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``)),k.horizontal.percentage=c(()=>{let e=k.horizontal.size.value-O.horizontal.value;if(e<=0)return 0;let t=g(Math.abs(k.horizontal.position.value)/e,0,1);return Math.round(t*1e4)/1e4}),k.horizontal.thumbHidden=c(()=>(n.visible===null?D.value:n.visible)!==!0&&T.value===!1&&E.value===!1||k.horizontal.size.value<=O.horizontal.value+1),k.horizontal.thumbStart=c(()=>n.horizontalOffset[0]+k.horizontal.percentage.value*(O.horizontalInner.value-k.horizontal.thumbSize.value)),k.horizontal.thumbSize=c(()=>Math.round(g(O.horizontalInner.value*O.horizontalInner.value/k.horizontal.size.value,w(O.horizontalInner.value),O.horizontalInner.value))),k.horizontal.style=c(()=>({...n.thumbStyle,...n.horizontalThumbStyle,[A.$q.lang.rtl===!0?`right`:`left`]:`${k.horizontal.thumbStart.value}px`,width:`${k.horizontal.thumbSize.value}px`,bottom:`${n.verticalOffset[1]}px`})),k.horizontal.thumbClass=c(()=>`q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom`+(k.horizontal.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),k.horizontal.barClass=c(()=>`q-scrollarea__bar q-scrollarea__bar--h absolute-bottom`+(k.horizontal.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``));let I=c(()=>k.vertical.thumbHidden.value===!0&&k.horizontal.thumbHidden.value===!0?n.contentStyle:n.contentActiveStyle);function L(){let e={};return x.forEach(t=>{let n=k[t];Object.assign(e,{[t+`Position`]:n.position.value,[t+`Percentage`]:n.percentage.value,[t+`Size`]:n.size.value,[t+`ContainerSize`]:O[t].value,[t+`ContainerInnerSize`]:O[t+`Inner`].value})}),e}let R=p(()=>{let e=L();e.ref=A,f(`scroll`,e)},0);function z(e,t,n){if(x.includes(e)===!1){console.error(`[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)`);return}(e===`vertical`?h:m)(P.value,t,n)}function B({height:e,width:t}){let n=!1;O.vertical.value!==e&&(O.vertical.value=e,n=!0),O.horizontal.value!==t&&(O.horizontal.value=t,n=!0),n===!0&&G()}function V({position:e}){let t=!1;k.vertical.position.value!==e.top&&(k.vertical.position.value=e.top,t=!0),k.horizontal.position.value!==e.left&&(k.horizontal.position.value=e.left,t=!0),t===!0&&G()}function H({height:e,width:t}){k.horizontal.size.value!==t&&(k.horizontal.size.value=t,G()),k.vertical.size.value!==e&&(k.vertical.size.value=e,G())}function U(e,t){let n=k[t];if(e.isFirst===!0){if(n.thumbHidden.value===!0)return;N=n.position.value,E.value=!0}else if(E.value!==!0)return;e.isFinal===!0&&(E.value=!1);let r=S[t],i=(n.size.value-O[t].value)/(O[t+`Inner`].value-n.thumbSize.value),a=e.distance[r.dist];K(N+(e.direction===r.dir?1:-1)*a*i,t)}function W(e,t){let r=k[t];if(r.thumbHidden.value!==!0){let i=t===`vertical`?n.verticalOffset[0]:n.horizontalOffset[0],a=e[S[t].offset]-i,o=r.thumbStart.value-i;(a<o||a>o+r.thumbSize.value)&&K(g((a-r.thumbSize.value/2)/(O[t+`Inner`].value-r.thumbSize.value),0,1)*Math.max(0,r.size.value-O[t].value),t),r.ref.value!==null&&r.ref.value.dispatchEvent(new MouseEvent(e.type,e))}}function G(){T.value=!0,M!==null&&clearTimeout(M),M=setTimeout(()=>{M=null,T.value=!1},n.delay),n.onScroll!==void 0&&R()}function K(e,t){P.value[S[t].scroll]=e}let q=null;function J(){q!==null&&clearTimeout(q),q=setTimeout(()=>{q=null,D.value=!0},A.$q.platform.is.ios?50:0)}function Y(){q!==null&&(clearTimeout(q),q=null),D.value=!1}let X=null;a(()=>A.$q.lang.rtl,e=>{P.value!==null&&m(P.value,Math.abs(k.horizontal.position.value)*(e===!0?-1:1))}),r(()=>{X={top:k.vertical.position.value,left:k.horizontal.position.value}}),i(()=>{if(X===null)return;let e=P.value;e!==null&&(m(e,X.left),h(e,X.top))}),e(R.cancel),Object.assign(A,{getScrollTarget:()=>P.value,getScroll:L,getScrollPosition:()=>({top:k.vertical.position.value,left:k.horizontal.position.value}),getScrollPercentage:()=>({top:k.vertical.percentage.value,left:k.horizontal.percentage.value}),setScrollPosition:z,setScrollPercentage(e,t,n){z(e,t*(k[e].size.value-O[e].value)*(e===`horizontal`&&A.$q.lang.rtl===!0?-1:1),n)}});let Z={scroll:k,thumbVertDir:[[y,e=>{U(e,`vertical`)},void 0,{vertical:!0,...C}]],thumbHorizDir:[[y,e=>{U(e,`horizontal`)},void 0,{horizontal:!0,...C}]],onVerticalMousedown(e){W(e,`vertical`)},onHorizontalMousedown(e){W(e,`horizontal`)}};return()=>t(`div`,{class:F.value,onMouseenter:J,onMouseleave:Y},[t(`div`,{ref:P,class:`q-scrollarea__container scroll relative-position fit hide-scrollbar`,tabindex:n.tabindex===void 0?void 0:n.tabindex},[t(`div`,{class:`q-scrollarea__content absolute`,style:I.value},u(l.default,[t(v,{debounce:0,onResize:H})])),t(_,{axis:`both`,onScroll:V})]),t(v,{debounce:0,onResize:B}),t(b,{store:Z,barStyle:n.barStyle,verticalBarStyle:n.verticalBarStyle,horizontalBarStyle:n.horizontalBarStyle})])}});export{T as t};
@@ -1,9 +0,0 @@
1
- import{A as e,C as t,D as n,G as r,I as i,K as a,N as o,P as s,R as c,S as l,St as u,W as ee,_ as d,at as f,b as p,bt as m,d as h,et as g,f as _,g as v,h as y,l as b,p as x,r as S,u as C,y as w,yt as T}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{H as te,L as ne,N as re,P as E,R as ie,V as D,i as ae,k as oe,l as se,n as ce,r as le,t as O}from"./QIcon-BmEX2rXO.js";import{r as ue}from"./use-id-BCnfiBjU.js";import{I as k,L as de,R as A,a as fe,c as pe,i as me,l as he,n as ge,o as _e,s as ve}from"./notifications-Hq-6rEYv.js";import{n as ye,r as be}from"./QRadio-M9mC5jZy.js";import{c as xe,t as j}from"./QBtn-CoU-UC_j.js";import{n as Se}from"./vue-i18n-Cq-KgjJC.js";import{i as Ce,o as M,r as N,t as P}from"./QInput-D0t39uK_.js";import{t as we}from"./QCheckbox-Cq2STfHp.js";import{t as F}from"./QToggle-DBzTAIbK.js";import{_ as Te,b as Ee,g as De,t as Oe,x as ke}from"./index-DMUFfCIq.js";import{n as I,t as L}from"./QItemSection-DRg-QuAD.js";import{t as R}from"./QItemLabel-Btqw0P7M.js";import{d as z,t as Ae}from"./QTooltip-BC7PnZJ1.js";import{t as je}from"./QExpansionItem-CgJQdznK.js";import{t as B}from"./TouchPan-D0fJnlOC.js";import{t as Me}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as V}from"./QSpace-DONPiIes.js";import{t as Ne}from"./QList-B3TuWSqL.js";import{t as H}from"./QMenu-NVDU7D3u.js";import{t as Pe}from"./ClosePopup-A-tSm4aa.js";import{t as Fe}from"./use-quasar-k24tGxE-.js";import{a as Ie,i as Le,n as Re,o as ze,r as Be,t as Ve}from"./QChip-DnJyQVs2.js";import{n as He,t as Ue}from"./use-onboarding-C98jCHZu.js";import{a as U,n as We,r as Ge,t as Ke}from"./permissionModes-DuwIe4ty.js";import{t as qe}from"./QPage-DO_bQyV_.js";import{t as Je}from"./QBanner-Jsq4uJZs.js";var W=`q-slider__marker-labels`,Ye=e=>({value:e}),Xe=({marker:e})=>t(`div`,{key:e.value,style:e.style,class:e.classes},e.label),Ze=[34,37,40,33,39,38],Qe={...le,...M,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`}},$e=[`pan`,`update:modelValue`,`change`];function et({updateValue:n,updatePosition:r,getDragging:i,formAttrs:a}){let{props:o,emit:s,slots:c,proxy:{$q:l}}=p(),u=ce(o,l),ee=Ce(a),d=g(!1),f=g(!1),m=g(!1),h=g(!1),_=b(()=>o.vertical===!0?`--v`:`--h`),v=b(()=>`-`+(o.switchLabelSide===!0?`switched`:`standard`)),y=b(()=>o.vertical===!0?o.reverse===!0:o.reverse!==(l.lang.rtl===!0)),x=b(()=>isNaN(o.innerMin)===!0||o.innerMin<o.min?o.min:o.innerMin),S=b(()=>isNaN(o.innerMax)===!0||o.innerMax>o.max?o.max:o.innerMax),C=b(()=>o.disable!==!0&&o.readonly!==!0&&x.value<S.value),w=b(()=>{if(o.step===0)return e=>e;let e=(String(o.step).trim().split(`.`)[1]||``).length;return t=>parseFloat(t.toFixed(e))}),T=b(()=>o.step===0?1:o.step),te=b(()=>C.value===!0?o.tabindex||0:-1),ne=b(()=>o.max-o.min),re=b(()=>S.value-x.value),E=b(()=>P(x.value)),ie=b(()=>P(S.value)),D=b(()=>o.vertical===!0?y.value===!0?`bottom`:`top`:y.value===!0?`right`:`left`),se=b(()=>o.vertical===!0?`height`:`width`),le=b(()=>o.vertical===!0?`width`:`height`),O=b(()=>o.vertical===!0?`vertical`:`horizontal`),ue=b(()=>{let e={role:`slider`,"aria-valuemin":x.value,"aria-valuemax":S.value,"aria-orientation":O.value,"data-step":o.step};return o.disable===!0?e[`aria-disabled`]=`true`:o.readonly===!0&&(e[`aria-readonly`]=`true`),e}),k=b(()=>`q-slider q-slider${_.value} q-slider--${d.value===!0?``:`in`}active inline no-wrap `+(o.vertical===!0?`row`:`column`)+(o.disable===!0?` disabled`:` q-slider--enabled`+(C.value===!0?` q-slider--editable`:``))+(m.value===`both`?` q-slider--focus`:``)+(o.label||o.labelAlways===!0?` q-slider--label`:``)+(o.labelAlways===!0?` q-slider--label-always`:``)+(u.value===!0?` q-slider--dark`:``)+(o.dense===!0?` q-slider--dense q-slider--dense`+_.value:``));function fe(e){let t=`q-slider__`+e;return`${t} ${t}${_.value} ${t}${_.value}${v.value}`}function pe(e){let t=`q-slider__`+e;return`${t} ${t}${_.value}`}let me=b(()=>{let e=o.selectionColor||o.color;return`q-slider__selection absolute`+(e===void 0?``:` text-${e}`)}),he=b(()=>pe(`markers`)+` absolute overflow-hidden`),ge=b(()=>pe(`track-container`)),_e=b(()=>fe(`pin`)),ve=b(()=>fe(`label`)),ye=b(()=>fe(`text-container`)),be=b(()=>fe(`marker-labels-container`)+(o.markerLabelsClass===void 0?``:` ${o.markerLabelsClass}`)),xe=b(()=>`q-slider__track relative-position no-outline`+(o.trackColor===void 0?``:` bg-${o.trackColor}`)),j=b(()=>{let e={[le.value]:o.trackSize};return o.trackImg!==void 0&&(e.backgroundImage=`url(${o.trackImg}) !important`),e}),Se=b(()=>`q-slider__inner absolute`+(o.innerTrackColor===void 0?``:` bg-${o.innerTrackColor}`)),M=b(()=>{let e=ie.value-E.value,t={[D.value]:`${100*E.value}%`,[se.value]:e===0?`2px`:`${100*e}%`};return o.innerTrackImg!==void 0&&(t.backgroundImage=`url(${o.innerTrackImg}) !important`),t});function N(e){let{min:t,max:n,step:r}=o,i=t+e*(n-t);if(r>0){let e=(i-x.value)%r;i+=(Math.abs(e)>=r/2?(e<0?-1:1)*r:0)-e}return i=w.value(i),z(i,x.value,S.value)}function P(e){return ne.value===0?0:(e-o.min)/ne.value}function we(e,t){let n=oe(e),r=o.vertical===!0?z((n.top-t.top)/t.height,0,1):z((n.left-t.left)/t.width,0,1);return z(y.value===!0?1-r:r,E.value,ie.value)}let F=b(()=>de(o.markers)===!0?o.markers:T.value),Te=b(()=>{let e=[],t=F.value,n=o.max,r=o.min;do e.push(r),r+=t;while(r<n);return e.push(n),e}),Ee=b(()=>{let e=` ${W}${_.value}-`;return`q-slider__marker-labels${e}${o.switchMarkerLabelsSide===!0?`switched`:`standard`}${e}${y.value===!0?`rtl`:`ltr`}`}),De=b(()=>o.markerLabels===!1?null:I(o.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:Ee.value+(e.classes===void 0?``:` `+e.classes),style:{...L(e.value),...e.style||{}}}))),Oe=b(()=>({markerList:De.value,markerMap:R.value,classes:Ee.value,getStyle:L})),ke=b(()=>{let e=re.value===0?`2px`:100*F.value/re.value;return{...M.value,backgroundSize:o.vertical===!0?`2px ${e}%`:`${e}% 2px`}});function I(e){if(e===!1)return null;if(e===!0)return Te.value.map(Ye);if(typeof e==`function`)return Te.value.map(t=>{let n=e(t);return A(n)===!0?{...n,value:t}:{value:t,label:n}});let t=({value:e})=>e>=o.min&&e<=o.max;return Array.isArray(e)===!0?e.map(e=>A(e)===!0?e:{value:e}).filter(t):Object.keys(e).map(t=>{let n=e[t],r=Number(t);return A(n)===!0?{...n,value:r}:{value:r,label:n}}).filter(t)}function L(e){return{[D.value]:`${100*(e-o.min)/ne.value}%`}}let R=b(()=>{if(o.markerLabels===!1)return null;let e={};return De.value.forEach(t=>{e[t.value]=t}),e});function Ae(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](Oe.value);let e=c[`marker-label`]||Xe;return De.value.map(t=>e({marker:t,...Oe.value}))}let je=b(()=>[[B,Me,void 0,{[O.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function Me(e){e.isFinal===!0?(h.value!==void 0&&(r(e.evt),e.touch===!0&&n(!0),h.value=void 0,s(`pan`,`end`)),d.value=!1,m.value=!1):e.isFirst===!0?(h.value=i(e.evt),r(e.evt),n(),d.value=!0,s(`pan`,`start`)):(r(e.evt),n())}function V(){m.value=!1}function Ne(e){r(e,i(e)),n(),f.value=!0,d.value=!0,document.addEventListener(`mouseup`,H,!0)}function H(){f.value=!1,d.value=!1,n(!0),V(),document.removeEventListener(`mouseup`,H,!0)}function Pe(e){r(e,i(e)),n(!0)}function Fe(e){Ze.includes(e.keyCode)&&n(!0)}function Ie(e){if(o.vertical===!0)return null;let t=l.lang.rtl===o.reverse?e:1-e;return{transform:`translateX(calc(${2*t-1} * ${o.thumbSize} / 2 + ${50-100*t}%))`}}function Le(e){let n=b(()=>f.value===!1&&(m.value===e.focusValue||m.value===`both`)?` q-slider--focus`:``),r=b(()=>`q-slider__thumb q-slider__thumb${_.value} q-slider__thumb${_.value}-${y.value===!0?`rtl`:`ltr`} absolute non-selectable`+n.value+(e.thumbColor.value===void 0?``:` text-${e.thumbColor.value}`)),i=b(()=>({width:o.thumbSize,height:o.thumbSize,[D.value]:`${100*e.ratio.value}%`,zIndex:m.value===e.focusValue?2:void 0})),a=b(()=>e.labelColor.value===void 0?``:` text-${e.labelColor.value}`),s=b(()=>Ie(e.ratio.value)),c=b(()=>`q-slider__text`+(e.labelTextColor.value===void 0?``:` text-${e.labelTextColor.value}`));return()=>{let n=[t(`svg`,{class:`q-slider__thumb-shape absolute-full`,viewBox:`0 0 20 20`,"aria-hidden":`true`},[t(`path`,{d:o.thumbPath})]),t(`div`,{class:`q-slider__focus-ring fit`})];return(o.label===!0||o.labelAlways===!0)&&(n.push(t(`div`,{class:_e.value+` absolute fit no-pointer-events`+a.value},[t(`div`,{class:ve.value,style:{minWidth:o.thumbSize}},[t(`div`,{class:ye.value,style:s.value},[t(`span`,{class:c.value},e.label.value)])])])),o.name!==void 0&&o.disable!==!0&&ee(n,`push`)),t(`div`,{class:r.value,style:i.value,...e.getNodeData()},n)}}function Re(e,n,r,i){let a=[];o.innerTrackColor!==`transparent`&&a.push(t(`div`,{key:`inner`,class:Se.value,style:M.value})),o.selectionColor!==`transparent`&&a.push(t(`div`,{key:`selection`,class:me.value,style:e.value})),o.markers!==!1&&a.push(t(`div`,{key:`marker`,class:he.value,style:ke.value})),i(a);let s=[ae(`div`,{key:`trackC`,class:ge.value,tabindex:n.value,...r.value},[t(`div`,{class:xe.value,style:j.value},a)],`slide`,C.value,()=>je.value)];return o.markerLabels!==!1&&s[o.switchMarkerLabelsSide===!0?`unshift`:`push`](t(`div`,{key:`markerL`,class:be.value},Ae())),s}return e(()=>{document.removeEventListener(`mouseup`,H,!0)}),{state:{active:d,focus:m,preventFocus:f,dragging:h,editable:C,classes:k,tabindex:te,attributes:ue,roundValueFn:w,keyStep:T,trackLen:ne,innerMin:x,innerMinRatio:E,innerMax:S,innerMaxRatio:ie,positionProp:D,sizeProp:se,isReversed:y},methods:{onActivate:Ne,onMobileClick:Pe,onBlur:V,onKeyup:Fe,getContent:Re,getThumbRenderFn:Le,convertRatioToModel:N,convertModelToRatio:P,getDraggingRatio:we}}}var tt=()=>({}),nt=E({name:`QSlider`,props:{...Qe,modelValue:{required:!0,default:null,validator:e=>typeof e==`number`||e===null},labelValue:[String,Number]},emits:$e,setup(e,{emit:n}){let{proxy:{$q:r}}=p(),{state:i,methods:a}=et({updateValue:_,updatePosition:y,getDragging:v,formAttrs:N(e)}),o=g(null),s=g(0),c=g(0);function l(){c.value=e.modelValue===null?i.innerMin.value:z(e.modelValue,i.innerMin.value,i.innerMax.value)}ee(()=>`${e.modelValue}|${i.innerMin.value}|${i.innerMax.value}`,l),l();let u=b(()=>a.convertModelToRatio(c.value)),d=b(()=>i.active.value===!0?s.value:u.value),f=b(()=>{let t={[i.positionProp.value]:`${100*i.innerMinRatio.value}%`,[i.sizeProp.value]:`${100*(d.value-i.innerMinRatio.value)}%`};return e.selectionImg!==void 0&&(t.backgroundImage=`url(${e.selectionImg}) !important`),t}),m=a.getThumbRenderFn({focusValue:!0,getNodeData:tt,ratio:d,label:b(()=>e.labelValue===void 0?c.value:e.labelValue),thumbColor:b(()=>e.thumbColor||e.color),labelColor:b(()=>e.labelColor),labelTextColor:b(()=>e.labelTextColor)}),h=b(()=>i.editable.value===!0?r.platform.is.mobile===!0?{onClick:a.onMobileClick}:{onMousedown:a.onActivate,onFocus:x,onBlur:a.onBlur,onKeydown:S,onKeyup:a.onKeyup}:{});function _(t){c.value!==e.modelValue&&n(`update:modelValue`,c.value),t===!0&&n(`change`,c.value)}function v(){return o.value.getBoundingClientRect()}function y(t,n=i.dragging.value){let r=a.getDraggingRatio(t,n);c.value=a.convertRatioToModel(r),s.value=e.snap!==!0||e.step===0?r:a.convertModelToRatio(c.value)}function x(){i.focus.value=!0}function S(t){if(Ze.includes(t.keyCode)===!1)return;re(t);let n=([34,33].includes(t.keyCode)?10:1)*i.keyStep.value,r=([34,37,40].includes(t.keyCode)?-1:1)*(i.isReversed.value===!0?-1:1)*(e.vertical===!0?-1:1)*n;c.value=z(i.roundValueFn.value(c.value+r),i.innerMin.value,i.innerMax.value),_()}return()=>{let n=a.getContent(f,i.tabindex,h,e=>{e.push(m())});return t(`div`,{ref:o,class:i.classes.value+(e.modelValue===null?` q-slider--no-value`:``),...i.attributes.value,"aria-valuenow":e.modelValue},n)}}});function G(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(G(e,t))}):e instanceof Map&&e.forEach((e,r)=>{n.set(r,G(e,t))}),Object.assign(n,...Object.keys(e).map(n=>({[n]:G(e[n],t)})))}var rt=E({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:r,emit:i}){let{proxy:a}=p(),{$q:o}=a,s=g(null),c=g(``),l=g(``),u=!1,ee=b(()=>ne({initialValue:c.value,validate:e.validate,set:d,cancel:f,updatePosition:m},`value`,()=>l.value,e=>{l.value=e}));function d(){e.validate(l.value)!==!1&&(h()===!0&&(i(`save`,l.value,c.value),i(`update:modelValue`,l.value)),_())}function f(){h()===!0&&i(`cancel`,l.value,c.value),_()}function m(){n(()=>{s.value.updatePosition()})}function h(){return k(l.value,c.value)===!1}function _(){u=!0,s.value.hide()}function v(){u=!1,c.value=G(e.modelValue),l.value=G(e.modelValue),i(`beforeShow`)}function y(){i(`show`)}function x(){u===!1&&h()===!0&&(e.autoSave===!0&&e.validate(l.value)===!0?(i(`save`,l.value,c.value),i(`update:modelValue`,l.value)):i(`cancel`,l.value,c.value)),i(`beforeHide`)}function S(){i(`hide`)}function C(){let n=r.default===void 0?[]:[].concat(r.default(ee.value));return e.title&&n.unshift(t(`div`,{class:`q-dialog__title q-mt-sm q-mb-sm`},e.title)),e.buttons===!0&&n.push(t(`div`,{class:`q-popup-edit__buttons row justify-center no-wrap`},[t(j,{flat:!0,color:e.color,label:e.labelCancel||o.lang.label.cancel,onClick:f}),t(j,{flat:!0,color:e.color,label:e.labelSet||o.lang.label.set,onClick:d})])),n}return Object.assign(a,{set:d,cancel:f,show(e){s.value?.show(e)},hide(e){s.value?.hide(e)},updatePosition:m}),()=>{if(e.disable!==!0)return t(H,{ref:s,class:`q-popup-edit`,cover:e.cover,onBeforeShow:v,onShow:y,onBeforeHide:x,onHide:S,onEscapeKey:f},C)}}}),it={class:`text-h6`},at=[`title`],ot={key:1,class:`row justify-center q-mt-sm`},st=w({__name:`FolderPickerDialog`,props:{modelValue:{type:Boolean},initialPath:{}},emits:[`update:modelValue`,`select`],setup(e,{emit:t}){let n=e,o=t,s=g(``),l=g(null),f=g([]),p=g(!1),m=g(``);async function y(e){p.value=!0,m.value=``;try{let t=e?`?path=${encodeURIComponent(e)}`:``,n=await fetch(`/api/fs/list-dirs${t}`),r=await n.json();if(!n.ok){m.value=r?.error??`HTTP ${n.status}`;return}s.value=r.path??``,l.value=r.parent??null,f.value=Array.isArray(r.entries)?r.entries:[]}catch(e){m.value=e instanceof Error?e.message:String(e)}finally{p.value=!1}}function b(){s.value&&(o(`select`,s.value),o(`update:modelValue`,!1))}return ee(()=>n.modelValue,e=>{e&&y(n.initialPath||void 0)}),(t,n)=>(i(),h(Te,{"model-value":e.modelValue,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:r(()=>[d(Ee,{class:`text-grey-3`,style:{"min-width":`480px`,"max-width":`90vw`,background:`#1e1e3a`}},{default:r(()=>[d(ke,{class:`row items-center q-pb-none`},{default:r(()=>[C(`div`,it,u(t.$t(`folderPicker.title`)),1),d(V),a(d(j,{flat:``,dense:``,round:``,icon:`close`,color:`grey-5`},null,512),[[Pe]])]),_:1}),d(ke,null,{default:r(()=>[C(`div`,{class:`text-caption text-grey-6 ellipsis q-mb-sm`,style:{"font-family":`monospace`},title:s.value},u(s.value||`…`),9,at),m.value?(i(),h(Je,{key:0,dense:``,class:`bg-red-9 text-white q-mb-sm rounded-borders`},{default:r(()=>[v(u(m.value),1)]),_:1})):_(``,!0),d(Ne,{bordered:``,separator:``,class:`rounded-borders`,style:{"max-height":`320px`,"overflow-y":`auto`}},{default:r(()=>[l.value?a((i(),h(I,{key:0,clickable:``,onClick:n[0]||=e=>y(l.value)},{default:r(()=>[d(L,{avatar:``},{default:r(()=>[d(O,{name:`arrow_upward`,color:`grey-5`})]),_:1}),d(L,null,{default:r(()=>[v(u(t.$t(`folderPicker.parent`)),1)]),_:1})]),_:1})),[[xe]]):_(``,!0),(i(!0),x(S,null,c(f.value,e=>a((i(),h(I,{key:e.path,clickable:``,onClick:t=>y(e.path)},{default:r(()=>[d(L,{avatar:``},{default:r(()=>[d(O,{name:`folder`,color:`amber-6`})]),_:1}),d(L,null,{default:r(()=>[v(u(e.name),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[xe]])),128)),!p.value&&f.value.length===0?(i(),h(I,{key:1},{default:r(()=>[d(L,{class:`text-grey-7`},{default:r(()=>[v(u(t.$t(`folderPicker.empty`)),1)]),_:1})]),_:1})):_(``,!0)]),_:1}),p.value?(i(),x(`div`,ot,[d(se,{size:`20px`,color:`grey-5`})])):_(``,!0)]),_:1}),d(ye,{align:`right`},{default:r(()=>[a(d(j,{flat:``,label:t.$t(`common.cancel`),color:`grey-5`},null,8,[`label`]),[[Pe]]),d(j,{flat:``,label:t.$t(`folderPicker.select`),color:`primary`,disable:!s.value||p.value,onClick:b},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),ct={class:`settings-layout`},lt={class:`settings-nav`},ut={class:`settings-nav__title`},dt={class:`settings-content`},ft={class:`settings-content__header`},pt={class:`settings-content__title`},mt={class:`settings-panels`},ht={class:`settings-global-wrap`},gt={"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},_t={class:`text-subtitle2 q-mb-sm`},vt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},yt={class:`text-subtitle2 q-mb-sm`},bt={class:`text-caption text-grey-7 q-mt-xs`},xt={"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},St={class:`text-subtitle2 q-mb-sm`},Ct={class:`text-caption text-grey-6 q-mt-xs`},wt={key:0,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Tt={class:`text-subtitle2 q-mb-sm`},Et={class:`text-caption text-grey-6 q-mb-xs q-mt-sm`},Dt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},Ot={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},kt={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},At={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},jt={"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Mt={class:`text-subtitle2 q-mb-sm`},Nt={class:`text-subtitle2 q-mb-sm q-mt-md`},Pt={class:`text-subtitle2 q-mb-sm q-mt-md`},Ft={class:`text-caption text-grey-7 q-mb-sm`},It={class:`text-subtitle2 q-mb-sm q-mt-md`},Lt={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Rt={class:`text-subtitle2 q-mb-sm`},zt={"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bt={class:`text-subtitle2 q-mb-sm`},Vt={class:`column q-gutter-xs`},Ht={class:`row items-center q-gutter-sm q-mt-sm`},Ut={class:`row items-center q-gutter-sm q-mt-sm`},Wt={class:`text-grey-5 text-caption`,style:{"min-width":`80px`}},Gt={class:`text-grey-5 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Kt={"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},qt={class:`row items-center q-mb-sm`},Jt={class:`text-subtitle2`},Yt={class:`column q-gutter-xs`},Xt={class:`row items-center q-gutter-sm`},Zt={class:`row items-center q-gutter-sm`},Qt={class:`q-pa-sm text-caption text-grey-5`},$t={class:`q-mb-sm`},en={class:`q-mb-sm`},tn={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-indigo-4`},nn={class:`q-mb-xs text-grey-4`},rn={class:`q-mb-sm`},an={class:`q-mb-xs text-grey-4`},on={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},sn={class:`text-subtitle2 q-mb-sm`},cn={class:`row q-col-gutter-sm`},ln={class:`col-12 col-sm-6`},un={class:`col-12 col-sm-6`},dn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},fn={class:`text-subtitle2 q-mb-sm`},pn={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},mn={class:`text-caption text-grey-5 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},hn={class:`column q-gutter-sm`},gn={class:`row items-center q-gutter-sm`},_n={class:`text-body2 text-grey-3`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},vn={class:`text-caption text-grey-6`},yn={key:0,class:`q-mt-sm`},bn={class:`row items-center q-mt-xs`},xn={class:`text-caption text-grey-6`},Sn={class:`text-caption text-indigo-4`},Cn={key:1,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},wn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Tn={class:`text-subtitle2 q-mb-sm`},En={class:`q-pa-sm column q-gutter-sm`},Dn={class:`row items-center q-gutter-sm`},On={class:`text-caption text-grey-5`},kn={class:`text-caption text-grey-5`,style:{"min-width":`40px`,"text-align":`right`}},An={class:`text-caption text-grey-7`},jn={class:`text-caption text-grey-7`},Mn={class:`text-caption text-grey-7`},Nn={class:`text-caption text-grey-7`},Pn={class:`q-pa-sm column q-gutter-sm`},Fn={key:1,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},In={class:`row items-center q-mb-sm`},Ln={class:`text-subtitle2`},Rn={class:`text-caption text-grey-7 q-mb-sm`},zn={class:`q-mb-sm`},Bn={class:`row items-center q-mb-sm q-mt-md`},Vn={class:`text-subtitle2`},Hn={class:`text-caption text-grey-7 q-mb-sm`},Un={class:`row items-center q-mb-sm q-mt-md`},Wn={class:`text-subtitle2`},Gn={class:`text-caption text-grey-7 q-mb-sm`},Kn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},qn={class:`text-subtitle2 q-mb-sm`},Jn={class:`text-caption text-grey-7 q-mb-sm`},Yn={"data-tour":`settings-card-notion`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Xn={class:`text-subtitle2 q-mb-sm`},Zn={class:`text-caption text-grey-7 q-mb-sm`},Qn={class:`q-mb-sm`},$n={class:`field-label-sub text-caption q-mb-xs text-grey-7`},er={class:`q-mb-sm`},tr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},nr={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},rr={class:`text-subtitle2 q-mb-sm`},ir={class:`text-caption text-grey-7 q-mb-sm`},ar={class:`q-mb-sm`},or={class:`field-label-sub text-caption q-mb-xs text-grey-7`},sr={class:`q-mb-sm`},cr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},lr={class:`row items-center q-mb-sm`},ur={class:`text-subtitle2`},dr={class:`text-caption text-grey-7 q-mb-xs`},fr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},pr={class:`text-subtitle2 q-mb-sm`},mr={class:`text-caption text-grey-7 q-mb-sm`},hr={class:`q-mb-sm`},gr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},_r={class:`q-mb-sm`},vr={class:`row items-center q-mb-xs`},yr={class:`field-label-sub text-caption text-grey-7 col`},br=[`src`,`alt`],xr={key:1,class:`text-caption text-grey-7 q-py-sm`},Sr={key:0,class:`text-caption text-orange-5 q-mb-xs`},Cr={key:3,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wr={class:`text-subtitle2 q-mb-sm`},Tr={class:`row items-center q-mb-sm`},Er={class:`text-subtitle2`},Dr={class:`text-caption text-grey-7 q-mb-xs`},Or={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},kr={class:`text-subtitle2 q-mb-sm`},Ar={class:`text-caption text-grey-7 q-mb-sm`},jr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Mr={class:`text-subtitle2 q-mb-sm`},Nr={class:`text-caption text-grey-7 q-mb-sm`},Pr={class:`row items-center no-wrap`},Fr={key:1,class:`text-caption text-grey-7 q-mb-sm`},Ir={class:`row items-center q-gutter-sm`},Lr={"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Rr={class:`text-subtitle2 q-mb-sm`},zr={class:`text-caption text-grey-7 q-mb-sm`},Br={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Vr={class:`text-subtitle2 q-mb-sm`},Hr={class:`text-caption text-grey-7 q-mb-sm`},Ur={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Wr={class:`text-subtitle2 q-mb-sm`},Gr={class:`text-caption text-grey-7 q-mb-sm`},Kr={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},qr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Jr={class:`text-subtitle2 q-mb-sm`},Yr={class:`text-caption text-grey-7 q-mb-sm`},Xr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Zr={class:`row items-center justify-between q-mb-sm`},Qr={class:`text-subtitle2`},$r={class:`text-caption text-grey-7 q-mb-xs`},ei={class:`text-caption text-grey-6 mono-guide q-mb-sm`},ti={"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ni={class:`text-subtitle2 q-mb-sm`},ri={class:`text-caption text-grey-7 q-mb-sm`},ii={class:`text-caption text-grey-7 q-mt-xs`},ai={"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},oi={class:`text-subtitle2 q-mb-sm`},si={class:`text-caption text-grey-7 q-mb-sm`},ci={class:`row q-gutter-sm`},li={class:`row justify-end settings-sticky-actions`},ui={class:`q-pa-none`},di={class:`row q-gutter-md`,style:{"min-height":`500px`}},fi={class:`project-list-col`},pi={class:`settings-card rounded-borders`,style:{height:`100%`}},mi={class:`q-pa-sm`},hi={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},gi={key:0,class:`q-pa-md text-center text-caption text-grey-8`},_i={class:`q-pa-sm`},vi={class:`project-form-col`},yi={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},bi={class:`row items-center q-mb-md`},xi={class:`text-subtitle1 text-weight-medium text-grey-3`},Si={key:0,class:`q-mb-md`},Ci={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},wi={class:`text-caption text-grey-7 q-mt-xs`},Ti={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ei={class:`text-subtitle2 q-mb-md`},Di={class:`q-mb-md`},Oi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ki={class:`q-mb-md`},Ai={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ji={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Mi={class:`row items-center q-gutter-xs`},Ni={class:`text-caption text-grey-6 q-mt-xs`},Pi={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Fi={class:`text-subtitle2 q-mb-md`},Ii={class:`q-mb-md`},Li={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ri={class:`q-mb-md`},zi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Bi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Vi={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Hi={class:`text-subtitle2 q-mb-md`},Ui={class:`q-mb-md`},Wi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Gi={class:`text-caption text-grey-7 q-mb-xs`},Ki={class:`q-mb-md`},qi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ji={class:`text-caption text-grey-7 q-mb-xs`},Yi={class:`q-mb-md`},Xi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Zi={class:`text-caption text-grey-7 q-mb-xs`},Qi={class:`q-mb-md`},$i={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ea={class:`text-caption text-grey-7 q-mb-xs`},ta={class:`q-mb-md`},na={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ra={class:`text-caption text-grey-7 q-mb-xs`},ia={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},aa={class:`text-caption text-grey-7 q-mt-xs`},oa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},sa={class:`text-subtitle2 q-mb-md`},ca={class:`q-mb-md`},la={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ua={class:`text-caption text-grey-7 q-mb-xs`},da={class:`text-caption text-grey-7 q-mt-xs`},fa={class:`q-mb-md`},pa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ma={class:`text-caption text-grey-7 q-mb-xs`},ha={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-grey-7`},ga={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},_a={class:`text-caption text-grey-7 q-mb-xs`},va={class:`row items-center justify-between q-mb-xs`},ya={class:`field-label text-body2 text-weight-medium text-grey-6`},ba={class:`text-caption text-grey-7 q-mb-xs`},xa={class:`text-caption text-grey-6 mono-guide q-mb-sm`},Sa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ca={class:`text-subtitle2 q-mb-md`},wa={class:`q-mb-md`},Ta={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Ea={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Da={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Oa={class:`text-subtitle2 q-mb-xs`},ka={class:`text-caption text-grey-7 q-mb-sm`},Aa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ja={class:`text-subtitle2 q-mb-xs`},Ma={class:`text-caption text-grey-7 q-mb-sm`},Na={class:`row items-center q-gutter-sm settings-sticky-actions`},Pa={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Fa={class:`text-body2 text-grey-8`},Ia={class:`q-pa-none`},La={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},Ra={class:`row items-center justify-between q-mb-md`},za={class:`text-subtitle1 text-weight-medium text-grey-3`},Ba={class:`row q-gutter-sm items-center`},Va={key:0,class:`text-grey-6 q-py-lg text-center`},Ha={key:1,class:`column q-gutter-sm`},Ua={class:`row items-start justify-between no-wrap`},Wa={class:`col`},Ga={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},Ka={class:`text-caption text-grey-5 q-mt-xs`},qa={class:`row no-wrap q-gutter-xs`},Ja={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},Ya={key:0,class:`settings-savebar`},Xa={class:`settings-savebar__label`},Za={class:`text-subtitle1`},Qa={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},$a={key:0,class:`text-negative text-caption`},eo=Me(w({__name:`SettingsPage`,setup(e){let t=Fe(),n=ve(),p=De(),{t:w,locale:ne}=Se(),{startTour:re}=Ue(),E=g(`general`),ae=b(()=>[{value:`general`,icon:`tune`,label:w(`settings.nav.general`)},{value:`agents`,icon:`smart_toy`,label:w(`settings.nav.agents`)},{value:`skills`,icon:`extension`,label:w(`settings.nav.skills`)},{value:`prompts`,icon:`text_snippet`,label:w(`settings.nav.prompts`)},{value:`scripts`,icon:`terminal`,label:w(`settings.nav.scripts`)},{value:`notion`,icon:`integration_instructions`,label:w(`settings.nav.notion`)},{value:`sentry`,icon:`bug_report`,label:w(`settings.nav.sentry`)},{value:`voice`,icon:`mic`,label:w(`settings.nav.voice`)},{value:`notifications`,icon:`notifications`,label:w(`settings.nav.notifications`)},{value:`worktrees`,icon:`account_tree`,label:w(`settings.nav.worktrees`)},{value:`projects`,icon:`folder`,label:w(`settings.projects`)},{value:`templates`,icon:`description`,label:w(`templates.title`)},{value:`export`,icon:`import_export`,label:w(`settings.nav.export`)}]),oe=b(()=>ae.value.find(e=>e.value===E.value)?.label??``),se=b(()=>[`general`,`agents`,`skills`,`prompts`,`scripts`,`notion`,`sentry`,`voice`,`notifications`,`worktrees`,`export`].includes(E.value)),ce=g(`auto`),le=g(`auto`),k=g(``),de=g(``),A=g(``),Ce=g(``),M=g(!0),N=g(!0),z=g(me),B=g(1),Me=g(``),H=g(``),Je=g(``),W=g(``),Ye=g([]),Xe=g(!1),Ze=g(``),Qe=b(()=>Ye.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function $e(e=!1){if(!Xe.value&&!(!e&&Ye.value.length>0)){Xe.value=!0,Ze.value=``;try{let e=await fetch(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Ye.value=Array.isArray(t.users)?t.users:[]}catch(e){Ze.value=e instanceof Error?e.message:String(e),Ye.value=[]}finally{Xe.value=!1}}}let et=g(``),tt=g(``),G=g(null),it=g(`bypass`),at=g(`bypass`),ot=g(``),eo=g(``),to=g([]),K=g([]),no=g(``),ro=g(``),io=g(``),ao=g(`no-tasks`),oo=g(!1),so=g(``),co=g(``),lo=g(``),uo=g(!1);function fo(e){Z.value.path=e}let po=b(()=>[{label:w(`settings.cleanupScriptMode.inherit`),value:``},{label:w(`settings.cleanupScriptMode.idle`),value:`idle`},{label:w(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),mo=g(pe),ho=g(null),go=g(!0);function _o(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function vo(){let e=_o(no.value);!e||K.value.includes(e)||(K.value.push(e),no.value=``)}function yo(e){K.value.splice(e,1)}function bo(e,t){let n=_o(t);if(!n)return;let r=K.value.indexOf(n);r!==-1&&r!==e||(K.value[e]=n)}function xo(e,t){let n=e+t;if(n<0||n>=K.value.length)return;let r=K.value;[r[e],r[n]]=[r[n],r[e]]}let So=g(!1),q=g(`superpowers`),Co=b(()=>{switch(q.value){case`gstack`:return`settings.skillSuite.gstackHint`;case`superpowers+gstack`:return`settings.skillSuite.superpowersGstackHint`;case`custom`:return`settings.skillSuite.customHint`;default:return`settings.skillSuite.superpowersHint`}}),wo=g(``),To=g(``),Eo=g(``),Do=g(``),Oo=g(``),ko=g(!1),Ao=g(`alt`),jo=g(`auto`),J=g(null),Mo=g(``),No=g(``),Po=g(0),Fo=g(``),Io=g(!1),Lo=g(!0),Ro=g(null),zo=g(!1);function Bo(){t.dialog({title:w(`settings.skillSuite.reloadDefaults`),message:w(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{wo.value=ze,To.value=Be,Eo.value=Re,Do.value=Ie,Oo.value=Le})}function Vo(e){let n=e===`global`?co.value:Z.value.changeSourceBranchScript,r=()=>{e===`global`?co.value=lo.value:Z.value.changeSourceBranchScript=lo.value};if(!n.trim()||n===lo.value){r();return}t.dialog({title:w(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:w(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function Ho(e){return!e||e===`tiny`||e===`base`?.1:.2}let Uo=[e=>e.trim().length>0||w(`settings.worktreesPathRequired`)],Wo=g(!1),Y=g(-1),X=g(!1),Z=g({path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),Go=[`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`devServer`,`e2e`,`finalization`],Ko=g(null),qo=g(null),Jo=b(()=>n.projects.map(e=>({value:e.path,label:dc(e)||e.path})));function Yo(e){let t=n.projects.find(t=>t.path===e);t&&(Z.value.defaultModel=t.defaultModel??``,Z.value.forge=t.forge??`auto`,Z.value.prPromptTemplate=t.prPromptTemplate??``,Z.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Z.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Z.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Z.value.gitConventions=t.gitConventions??``,Z.value.setupScript=t.setupScript??``,Z.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Z.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Z.value.finalization={prompt:t.finalization?.prompt??``})}function Xo(){let e={defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}};return Go.every(t=>JSON.stringify(Z.value[t])===JSON.stringify(e[t]))}function Zo(e){if(e===null){Ko.value=null,qo.value=null;return}if(qo.value===null&&Xo()){Yo(e),Ko.value=e,qo.value=e;return}let r=n.projects.find(t=>t.path===e),i=r&&dc(r)||e;t.dialog({title:w(`settings.copyFromConfirmTitle`),message:w(`settings.copyFromConfirm`,{project:i}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{Yo(e),Ko.value=e,qo.value=e}).onCancel(()=>{Ko.value=qo.value})}let Qo=g([]),$o=g([]);async function es(){try{let e=await fetch(`/api/skills`);e.ok&&(Qo.value=await e.json())}catch{}}function ts(e,t){t(()=>{let t=e.trim().toLowerCase();$o.value=t?Qo.value.filter(e=>e.toLowerCase().includes(t)):Qo.value.slice()})}let ns=g([]),rs=g(!1),is=g(!1),as=g(!1),os=g(!1),Q=g(null),ss=g(``),cs=g(``),ls=g(``),$=g(``),us=g(!1),ds=g(!1),fs=b(()=>[...p.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),ps=[`{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 ms(){Q.value=null,ss.value=``,cs.value=``,ls.value=``,$.value=``,os.value=!0}function hs(e){Q.value=e.slug,ss.value=e.slug,cs.value=e.description,ls.value=e.content,$.value=``,os.value=!0}async function gs(){$.value=``;let e=ss.value.trim(),t=cs.value.trim();if(Q.value===null&&!/^[a-z0-9][a-z0-9-]{0,63}$/.test(e)){$.value=w(`templates.slugInvalid`);return}if(!t){$.value=w(`templates.descriptionRequired`);return}if(!ls.value.trim()){$.value=w(`templates.contentRequired`);return}us.value=!0;try{Q.value===null?await p.createTemplate({slug:e,description:t,content:ls.value}):await p.updateTemplate(Q.value,{description:t,content:ls.value}),os.value=!1}catch(e){$.value=e instanceof Error?e.message:w(`templates.createFailed`)}finally{us.value=!1}}function _s(){t.dialog({title:w(`templates.reloadDefaults`),message:w(`templates.reloadDefaultsConfirmMessage`),dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.reloadDefaults`),color:`primary`}}).onOk(async()=>{ds.value=!0;try{let e=await p.reloadDefaults();t.notify({type:`positive`,message:w(`templates.reloadDefaultsSuccess`,{added:e.added.length,kept:e.kept.length}),position:`top`,timeout:4e3})}catch(e){t.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.reloadDefaultsFailed`),position:`top`})}finally{ds.value=!1}})}async function vs(e){t.dialog({title:w(`templates.deleteTemplate`),message:`${w(`templates.deleteConfirm`,{slug:e.slug})}\n\n${w(`templates.deleteConfirmMessage`)}`,dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`templates.deleteTemplate`),color:`red-5`}}).onOk(async()=>{try{await p.deleteTemplate(e.slug)}catch(e){t.notify({type:`negative`,message:e instanceof Error?e.message:w(`templates.deleteFailed`),position:`top`})}})}let ys=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function bs(e){ne.value=e,localStorage.setItem(`kobo:locale`,e)}let xs=b(()=>[...Ge.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Ss=b(()=>[...We.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Cs=b(()=>[{label:w(`settings.useGlobal`),value:``},...xs.value]),ws=b(()=>[{label:w(`settings.forge.auto`),value:`auto`},{label:w(`settings.forge.github`),value:`github`},{label:w(`settings.forge.gitlab`),value:`gitlab`},{label:w(`settings.forge.none`),value:`none`}]),Ts=b(()=>Ke[`claude-code`].map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Es=b(()=>Ke.codex.map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Ds=b(()=>[{name:`{{pr_number}}`,description:w(`settings.var.prNumber`)},{name:`{{pr_url}}`,description:w(`settings.var.prUrl`)},{name:`{{branch_name}}`,description:w(`settings.var.branchName`)},{name:`{{source_branch}}`,description:w(`settings.var.sourceBranch`)},{name:`{{workspace_name}}`,description:w(`settings.var.workspaceName`)},{name:`{{project_name}}`,description:w(`settings.var.projectName`)},{name:`{{notion_url}}`,description:w(`settings.var.notionUrl`)},{name:`{{commits}}`,description:w(`settings.var.commits`)},{name:`{{diff_stats}}`,description:w(`settings.var.diffStats`)},{name:`{{tasks}}`,description:w(`settings.var.tasks`)},{name:`{{acceptance_criteria}}`,description:w(`settings.var.acceptanceCriteria`)}]),Os=b(()=>[{label:w(`settings.mcpAutoSelect`),value:``},...n.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),ks=b(()=>fe.map(e=>({label:w(e.labelKey),value:e.id}))),As=b(()=>[{label:w(`voice.noneModel`),value:null}].concat(n.voiceModels.map(e=>({label:e.installed?`${e.name}`:`${e.name} (${w(`voice.notInstalled`)})`,value:e.name})))),js=[{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 Ms(){ge(z.value,B.value)}let Ns=b(()=>Y.value<0||Y.value>=n.projects.length?null:n.projects[Y.value]??null),Ps=g(``),Fs=g(``);function Is(){return JSON.stringify({claudeModel:ce.value,codexModel:le.value,prPrompt:k.value,reviewPrompt:de.value,gitConventions:A.value,editorCommand:Ce.value,browserNotifications:M.value,audioNotifications:N.value,audioNotificationSound:z.value,audioNotificationVolume:B.value,notionStatusProperty:Me.value,notionStatus:H.value,notionAssigneeProperty:Je.value,notionUserId:W.value,notionInitialPrompt:et.value,sentryInitialPrompt:tt.value,claudePermissionMode:it.value,codexPermissionMode:at.value,notionMcpKey:ot.value,sentryMcpKey:eo.value,tags:to.value,branchPrefixes:K.value,setupScript:ro.value,cleanupScript:io.value,cleanupScriptMode:ao.value,cleanupScriptOnlyOnChanges:oo.value,archiveScript:so.value,changeSourceBranchScript:co.value,worktreesPath:mo.value,worktreesPrefixByProject:go.value,flattenWorkspaceList:So.value,skillSuite:q.value,customReviewTemplate:wo.value,customAutoLoopReviewGate:To.value,customAutoLoopGroomingIntro:Eo.value,customQaPromptTemplate:Do.value,customBrainstormingInstruction:Oo.value,voiceEnabled:ko.value,voicePttKey:Ao.value,voiceLanguage:jo.value,voiceModel:J.value,voiceCommandPath:Mo.value,voiceFfmpegPath:No.value,voiceTemperature:Po.value,voicePrompt:Fo.value,voiceTranslateToEnglish:Io.value,voiceSuppressNst:Lo.value})}function Ls(){return JSON.stringify(Z.value)}let Rs=b(()=>Is()!==Ps.value),zs=b(()=>Ls()!==Fs.value),Bs=b(()=>E.value===`projects`?zs.value&&(Ns.value!==null||X.value):E.value===`templates`?!1:Rs.value),Vs=b(()=>E.value===`projects`?is.value:us.value);function Hs(){E.value===`projects`?sc():Qs()}function Us(){zo.value=!0;let e=n.global.defaultModelByEngine??{};ce.value=e[`claude-code`]??`auto`,le.value=e.codex??`auto`,k.value=n.global.prPromptTemplate,de.value=n.global.reviewPromptTemplate??``,A.value=n.global.gitConventions,Ce.value=n.global.editorCommand??``,M.value=n.global.browserNotifications??!0,N.value=n.global.audioNotifications??!0,z.value=_e(n.global.audioNotificationSound);let t=n.global.audioNotificationVolume;B.value=typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):1,Me.value=n.global.notionStatusProperty??``,H.value=n.global.notionInProgressStatus??``,Je.value=n.global.notionAssigneeProperty??``,W.value=n.global.notionUserId??``,et.value=n.global.notionInitialPromptTemplate??``,tt.value=n.global.sentryInitialPromptTemplate??``;{let e=n.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,r=e[`claude-code`];it.value=t(r)?r:`bypass`;let i=e.codex;at.value=t(i)?i:`bypass`}ot.value=n.global.notionMcpKey??``,eo.value=n.global.sentryMcpKey??``,to.value=Array.isArray(n.global.tags)?[...n.global.tags]:[],K.value=Array.isArray(n.global.branchPrefixes)?[...n.global.branchPrefixes]:[],ro.value=n.global.setupScript??``,io.value=n.global.cleanupScript??``,ao.value=n.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,oo.value=n.global.cleanupScriptOnlyOnChanges??!1,so.value=n.global.archiveScript??``,co.value=n.global.changeSourceBranchScript??``,mo.value=n.global.worktreesPath??`.worktrees`,go.value=n.global.worktreesPrefixByProject??!1,So.value=n.global.flattenWorkspaceList??!1,q.value=n.global.skillSuite??`superpowers`,wo.value=n.global.customReviewTemplate??``,To.value=n.global.customAutoLoopReviewGate??``,Eo.value=n.global.customAutoLoopGroomingIntro??``,Do.value=n.global.customQaPromptTemplate??``,Oo.value=n.global.customBrainstormingInstruction??``,ko.value=n.global.voiceEnabled??!1,Ao.value=n.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,jo.value=n.global.voiceLanguage??`auto`,J.value=n.global.voiceModel??null,Mo.value=n.global.voiceCommandPath??``,No.value=n.global.voiceFfmpegPath??``,Po.value=typeof n.global.voiceTemperature==`number`?n.global.voiceTemperature:0,Fo.value=n.global.voicePrompt??``,Io.value=n.global.voiceTranslateToEnglish??!1,Lo.value=n.global.voiceSuppressNonSpeechTokens??!0,zo.value=!1,Ps.value=Is()}ee(()=>J.value,(e,t)=>{zo.value||e!==t&&(Po.value=Ho(e))});function Ws(e){if(!e){Z.value={path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},ns.value=[],Fs.value=Ls();return}Z.value={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??``,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??``,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??``}},Fs.value=Ls(),e.path&&Gs(e.path)}async function Gs(e){if(!e.trim()){ns.value=[];return}rs.value=!0;try{let t=await fetch(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();ns.value=n.local??n.branches??[]}catch{ns.value=[]}finally{rs.value=!1}}let Ks=null;ee(()=>Z.value.path,e=>{Ks&&clearTimeout(Ks),Ks=setTimeout(()=>{Gs(e)},500)}),ee(Y,()=>{X.value=!1,Ws(Ns.value)});let qs=g(null);async function Js(){try{let e=await fetch(`/api/settings/export`);if(!e.ok)throw Error(`HTTP ${e.status}`);let n=await e.json(),r=new Blob([JSON.stringify(n,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),t.notify({type:`positive`,message:w(`settings.exportSuccess`),position:`top`,timeout:3e3})}catch(e){t.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function Ys(){qs.value?.click()}async function Xs(e){let r=e.target,i=r.files?.[0];if(i)try{t.dialog({title:w(`settings.importConfirmTitle`),message:w(`settings.importConfirmMessage`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{let e=await i.text(),r=JSON.parse(e),a=await fetch(`/api/settings/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`HTTP ${a.status}`)}await n.fetchSettings(),Us(),t.notify({type:`positive`,message:w(`settings.importSuccess`),position:`top`,timeout:3e3})}catch(e){t.notify({type:`negative`,message:String(e),position:`top`,timeout:5e3})}})}finally{r.value=``}}async function Zs(e){if(G.value===null){G.value=e;try{let t=await n.fetchGlobalDefaults(),r={prPromptTemplate:k,reviewPromptTemplate:de,gitConventions:A,notionInitialPromptTemplate:et,sentryInitialPromptTemplate:tt};r[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),t.notify({type:`negative`,message:w(`settings.resetFailed`),position:`top`})}finally{G.value=null}}}async function Qs(){if(await ho.value?.validate()!==!1){Wo.value=!0;try{await n.updateGlobal({defaultModelByEngine:{"claude-code":ce.value,codex:le.value},prPromptTemplate:k.value,reviewPromptTemplate:de.value,gitConventions:A.value,editorCommand:Ce.value,browserNotifications:M.value,audioNotifications:N.value,audioNotificationSound:z.value,audioNotificationVolume:B.value,notionStatusProperty:Me.value,notionInProgressStatus:H.value,notionAssigneeProperty:Je.value,notionUserId:W.value,notionInitialPromptTemplate:et.value,sentryInitialPromptTemplate:tt.value,defaultPermissionModeByEngine:{"claude-code":it.value,codex:at.value},notionMcpKey:ot.value,sentryMcpKey:eo.value,tags:to.value,branchPrefixes:K.value,setupScript:ro.value,cleanupScript:io.value,cleanupScriptMode:ao.value,cleanupScriptOnlyOnChanges:oo.value,archiveScript:so.value,changeSourceBranchScript:co.value,worktreesPath:mo.value,worktreesPrefixByProject:go.value,flattenWorkspaceList:So.value,skillSuite:q.value,customReviewTemplate:wo.value,customAutoLoopReviewGate:To.value,customAutoLoopGroomingIntro:Eo.value,customQaPromptTemplate:Do.value,customBrainstormingInstruction:Oo.value,voiceEnabled:ko.value,voicePttKey:Ao.value,voiceLanguage:jo.value,voiceModel:J.value,voiceCommandPath:Mo.value.trim(),voiceFfmpegPath:No.value.trim(),voiceTemperature:Po.value,voicePrompt:Fo.value,voiceTranslateToEnglish:Io.value,voiceSuppressNonSpeechTokens:Lo.value}),Ps.value=Is(),t.notify({type:`positive`,message:w(`settings.saved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.saveError`),position:`top`})}finally{Wo.value=!1}}}async function $s(e){Ro.value=e,ic();try{await n.downloadVoiceModel(e)}catch{t.notify({type:`negative`,message:w(`voice.downloadFailed`),position:`top`})}finally{Ro.value=null,ac()}}async function ec(e){Ro.value=e;try{await n.deleteVoiceModel(e),J.value===e&&(J.value=null)}catch{t.notify({type:`negative`,message:w(`voice.deleteFailed`),position:`top`})}finally{Ro.value=null}}async function tc(e){try{await n.cancelVoiceModelDownload(e)}catch{t.notify({type:`negative`,message:w(`voice.cancelFailed`),position:`top`})}}function nc(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 rc=null;function ic(){rc||=setInterval(()=>{n.fetchVoiceModels().catch(()=>{})},800)}function ac(){rc&&=(clearInterval(rc),null)}async function oc(e){try{await navigator.clipboard.writeText(e),t.notify({type:`positive`,message:w(`common.copied`),position:`top`,timeout:1200})}catch{t.notify({type:`negative`,message:w(`common.copyFailed`),position:`top`})}}async function sc(){if(!Z.value.path.trim()){t.notify({type:`negative`,message:w(`settings.projectPathRequired`),position:`top`});return}is.value=!0;try{await n.upsertProject(Z.value.path.trim(),{displayName:Z.value.displayName,color:Z.value.color,defaultSourceBranch:Z.value.defaultSourceBranch,defaultModel:Z.value.defaultModel,forge:Z.value.forge,prPromptTemplate:Z.value.prPromptTemplate,reviewPromptTemplate:Z.value.reviewPromptTemplate,notionInitialPromptTemplate:Z.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Z.value.sentryInitialPromptTemplate,gitConventions:Z.value.gitConventions,setupScript:Z.value.setupScript,taskPromptTemplate:Z.value.taskPromptTemplate,cleanupScript:Z.value.cleanupScript,cleanupScriptMode:Z.value.cleanupScriptMode,archiveScript:Z.value.archiveScript,changeSourceBranchScript:Z.value.changeSourceBranchScript,devServer:Z.value.devServer,e2e:Z.value.e2e,finalization:Z.value.finalization}),X.value=!1;let e=n.projects.findIndex(e=>e.path===Z.value.path.trim());e>=0&&(Y.value=e),Fs.value=Ls(),t.notify({type:`positive`,message:w(`settings.projectSaved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectSaveError`),position:`top`})}finally{is.value=!1}}function cc(){if(!Ns.value)return;let e=Ns.value.displayName||Ns.value.path;t.dialog({title:w(`settings.deleteProjectConfirmTitle`),message:w(`settings.deleteProjectConfirmMessage`,{name:e}),dark:!0,cancel:{flat:!0,label:w(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:w(`common.delete`),color:`red-5`}}).onOk(async()=>{if(Ns.value){as.value=!0;try{await n.deleteProject(Ns.value.path),Y.value=-1,X.value=!1,Ws(null),t.notify({type:`positive`,message:w(`settings.projectDeleted`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectDeleteError`),position:`top`})}finally{as.value=!1}}})}function lc(){Y.value=-1,X.value=!0,Ws(null),Ko.value=null,qo.value=null}function uc(e){X.value=!1,Y.value=e,Ko.value=null,qo.value=null}function dc(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let fc=g([]);function pc(e,t){t(()=>{fc.value=e?ns.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):ns.value})}return o(async()=>{await Promise.all([n.fetchSettings(),n.fetchActiveMcpServers(),es()]);try{lo.value=(await n.fetchGlobalDefaults()).changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await n.fetchVoiceModels(),await n.fetchVoiceRuntime(),Us(),$e().catch(()=>{})}),s(()=>{Ks&&clearTimeout(Ks),ac()}),(e,t)=>(i(),h(qe,{class:`settings-page`},{default:r(()=>[C(`div`,ct,[C(`aside`,lt,[C(`div`,ut,u(e.$t(`settings.title`)),1),d(Ne,{dense:``,class:`settings-nav__list`},{default:r(()=>[(i(!0),x(S,null,c(ae.value,e=>a((i(),h(I,{key:e.value,clickable:``,"data-tour":`settings-nav-${e.value}`,class:T([`settings-nav__item`,{"settings-nav__item--active":E.value===e.value}]),onClick:t=>E.value=e.value},{default:r(()=>[d(L,{avatar:``,class:`settings-nav__icon`},{default:r(()=>[d(O,{name:e.icon,size:`16px`},null,8,[`name`])]),_:2},1024),d(L,{class:`settings-nav__label`},{default:r(()=>[v(u(e.label),1)]),_:2},1024)]),_:2},1032,[`data-tour`,`class`,`onClick`])),[[xe,!1]])),128))]),_:1})]),C(`main`,dt,[C(`header`,ft,[C(`h2`,pt,u(oe.value),1)]),C(`div`,mt,[a(C(`div`,ht,[a(C(`div`,gt,[C(`div`,_t,u(e.$t(`settings.language`)),1),d(U,{"model-value":f(ne),options:ys,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":bs},null,8,[`model-value`])],512),[[D,E.value===`general`]]),a(C(`div`,vt,[C(`div`,yt,u(e.$t(`settings.workspaceListSection`)),1),d(F,{modelValue:So.value,"onUpdate:modelValue":t[0]||=e=>So.value=e,label:e.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),C(`div`,bt,u(e.$t(`settings.flattenWorkspaceListHint`)),1)],512),[[D,E.value===`general`]]),a(C(`div`,xt,[C(`div`,St,u(e.$t(`settings.skillSuite.section`)),1),d(Oe,{modelValue:q.value,"onUpdate:modelValue":t[1]||=e=>q.value=e,options:[{label:e.$t(`settings.skillSuite.superpowers`),value:`superpowers`},{label:e.$t(`settings.skillSuite.gstack`),value:`gstack`},{label:e.$t(`settings.skillSuite.superpowersGstack`),value:`superpowers+gstack`},{label:e.$t(`settings.skillSuite.custom`),value:`custom`}],type:`radio`,color:`indigo-4`,dense:``,dark:``,inline:``},null,8,[`modelValue`,`options`]),C(`div`,Ct,u(e.$t(Co.value)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:e.$t(`settings.skillSuite.reloadDefaults`),disable:q.value!==`custom`,class:`q-mt-sm`,onClick:Bo},null,8,[`label`,`disable`])],512),[[D,E.value===`skills`]]),E.value===`skills`&&q.value===`custom`?(i(),x(`div`,wt,[C(`div`,Tt,u(e.$t(`settings.skillSuite.customPrompts`)),1),C(`div`,Et,u(e.$t(`settings.skillSuite.reviewTemplate`)),1),d(P,{modelValue:wo.value,"onUpdate:modelValue":t[2]||=e=>wo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Dt,u(e.$t(`settings.skillSuite.autoLoopReviewGate`)),1),d(P,{modelValue:To.value,"onUpdate:modelValue":t[3]||=e=>To.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Ot,u(e.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),d(P,{modelValue:Eo.value,"onUpdate:modelValue":t[4]||=e=>Eo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,kt,u(e.$t(`settings.skillSuite.qaTemplate`)),1),d(P,{modelValue:Do.value,"onUpdate:modelValue":t[5]||=e=>Do.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,At,u(e.$t(`settings.skillSuite.brainstormingInstruction`)),1),d(P,{modelValue:Oo.value,"onUpdate:modelValue":t[6]||=e=>Oo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):_(``,!0),a(C(`div`,jt,[C(`div`,Mt,u(e.$t(`settings.defaultModelClaude`)),1),d(U,{modelValue:ce.value,"onUpdate:modelValue":t[7]||=e=>ce.value=e,options:xs.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),C(`div`,Nt,u(e.$t(`settings.defaultModelCodex`)),1),d(U,{modelValue:le.value,"onUpdate:modelValue":t[8]||=e=>le.value=e,options:Ss.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),C(`div`,Pt,u(e.$t(`settings.defaultPermissionModeClaude`)),1),C(`div`,Ft,u(e.$t(`settings.defaultPermissionModeHint`)),1),d(U,{modelValue:it.value,"onUpdate:modelValue":t[9]||=e=>it.value=e,options:Ts.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),C(`div`,It,u(e.$t(`settings.defaultPermissionModeCodex`)),1),d(U,{modelValue:at.value,"onUpdate:modelValue":t[10]||=e=>at.value=e,options:Es.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])],512),[[D,E.value===`agents`]]),a(C(`div`,Lt,[C(`div`,Rt,u(e.$t(`settings.activityFeed`)),1),d(F,{"model-value":f(n).showVerboseSystemMessages,label:e.$t(`settings.verboseMessages`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":t[11]||=e=>f(n).toggleVerboseSystemMessages()},null,8,[`model-value`,`label`])],512),[[D,E.value===`general`]]),a(C(`div`,zt,[C(`div`,Bt,u(e.$t(`settings.notifications`)),1),C(`div`,Vt,[d(F,{modelValue:M.value,"onUpdate:modelValue":t[12]||=e=>M.value=e,label:e.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),d(F,{modelValue:N.value,"onUpdate:modelValue":t[13]||=e=>N.value=e,label:e.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),C(`div`,Ht,[d(U,{modelValue:z.value,"onUpdate:modelValue":t[14]||=e=>z.value=e,options:ks.value,label:e.$t(`settings.notificationSound`),disable:!N.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),d(j,{flat:``,dense:``,color:`indigo-4`,icon:`play_arrow`,label:e.$t(`settings.notificationSoundPreview`),disable:!N.value,onClick:Ms},null,8,[`label`,`disable`])]),C(`div`,Ut,[C(`div`,Wt,u(e.$t(`settings.notificationVolume`)),1),d(nt,{modelValue:B.value,"onUpdate:modelValue":t[15]||=e=>B.value=e,min:0,max:1,step:.05,disable:!N.value,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`disable`]),C(`div`,Gt,u(Math.round(B.value*100))+`% `,1)])],512),[[D,E.value===`notifications`]]),a(C(`div`,Kt,[C(`div`,qt,[C(`div`,Jt,u(e.$t(`voice.sectionRuntime`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`grey-5`,label:f(w)(`common.refresh`),onClick:t[16]||=e=>f(n).fetchVoiceRuntime()},null,8,[`label`])]),C(`div`,Yt,[C(`div`,Xt,[d(O,{name:f(n).voiceRuntime?.available?`check_circle`:`cancel`,color:f(n).voiceRuntime?.available?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),C(`span`,{class:T([`text-caption`,f(n).voiceRuntime?.available?`text-green-5`:`text-red-5`])},u(f(n).voiceRuntime?.available?f(w)(`voice.runtimeReady`,{command:f(n).voiceRuntime?.command??`whisper-cli`}):f(w)(`voice.runtimeMissing`,{command:f(n).voiceRuntime?.command??`whisper-cli`})),3)]),C(`div`,Zt,[d(O,{name:f(n).voiceRuntime?.ffmpegAvailable?`check_circle`:`cancel`,color:f(n).voiceRuntime?.ffmpegAvailable?`green-5`:`red-5`,size:`xs`},null,8,[`name`,`color`]),C(`span`,{class:T([`text-caption`,f(n).voiceRuntime?.ffmpegAvailable?`text-green-5`:`text-red-5`])},u(f(n).voiceRuntime?.ffmpegAvailable?f(w)(`voice.ffmpegReady`):f(w)(`voice.ffmpegMissing`)),3)])]),d(je,{dense:``,dark:``,icon:`help_outline`,label:e.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:r(()=>[C(`div`,Qt,[C(`div`,$t,u(e.$t(`voice.installGuideIntro`)),1),C(`div`,en,[C(`a`,tn,u(e.$t(`voice.installLink`)),1)]),C(`div`,nn,u(e.$t(`voice.installGuideUbuntuTitle`)),1),t[88]||=C(`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),C(`div`,rn,u(e.$t(`voice.installGuideBinaryPathHint`)),1),C(`div`,an,u(e.$t(`voice.installGuideWindowsTitle`)),1),t[89]||=C(`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),C(`div`,null,u(e.$t(`voice.installGuideSettingsHint`)),1)])]),_:1},8,[`label`])],512),[[D,E.value===`voice`]]),a(C(`div`,on,[C(`div`,sn,u(e.$t(`voice.sectionActivation`)),1),d(F,{modelValue:ko.value,"onUpdate:modelValue":t[17]||=e=>ko.value=e,label:e.$t(`voice.enabled`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption q-mb-sm`},null,8,[`modelValue`,`label`]),C(`div`,cn,[C(`div`,ln,[d(U,{modelValue:Ao.value,"onUpdate:modelValue":t[18]||=e=>Ao.value=e,label:e.$t(`voice.pttKey`),options:[{label:e.$t(`voice.pttAlt`),value:`alt`},{label:e.$t(`voice.pttCtrlSpace`),value:`ctrl+space`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`,`options`])]),C(`div`,un,[d(U,{modelValue:jo.value,"onUpdate:modelValue":t[19]||=e=>jo.value=e,label:e.$t(`voice.language`),options:js,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`])])])],512),[[D,E.value===`voice`]]),a(C(`div`,dn,[C(`div`,fn,u(e.$t(`voice.sectionModels`)),1),d(U,{modelValue:J.value,"onUpdate:modelValue":t[20]||=e=>J.value=e,label:e.$t(`voice.model`),options:As.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`label`,`options`]),f(n).voiceModelsDir?(i(),x(`div`,pn,[d(O,{name:`folder`,color:`grey-5`,size:`xs`}),C(`span`,mn,u(f(n).voiceModelsDir),1),d(j,{flat:``,dense:``,round:``,size:`xs`,icon:`content_copy`,color:`grey-5`,title:f(w)(`common.copy`),onClick:t[21]||=e=>oc(f(n).voiceModelsDir)},null,8,[`title`])])):_(``,!0),C(`div`,hn,[(i(!0),x(S,null,c(f(n).voiceModels,t=>(i(),x(`div`,{key:t.name,class:T([`voice-model-row q-pa-sm rounded-borders`,{"voice-model-row--active":t.download}])},[C(`div`,gn,[d(O,{name:t.download?`downloading`:t.installed?`check_circle`:`circle`,color:t.download?`indigo-4`:t.installed?`green-5`:`grey-7`,size:`xs`},null,8,[`name`,`color`]),C(`span`,_n,u(t.name),1),C(`span`,vn,u(nc(t.installedSizeBytes??t.sizeBytes)),1),d(V),t.download?(i(),h(j,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`close`,label:e.$t(`common.cancel`),onClick:e=>tc(t.name)},null,8,[`label`,`onClick`])):(i(),h(j,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,color:t.installed?`red-5`:`indigo-4`,icon:t.installed?`delete_outline`:`download`,label:t.installed?e.$t(`voice.delete`):e.$t(`voice.download`),loading:Ro.value===t.name,onClick:e=>t.installed?ec(t.name):$s(t.name)},null,8,[`color`,`icon`,`label`,`loading`,`onClick`]))]),t.download?(i(),x(`div`,yn,[d(be,{value:t.download.total>0?Math.min(1,t.download.downloaded/t.download.total):0,indeterminate:!t.download.total,color:`indigo-4`,"track-color":`grey-9`,size:`6px`,rounded:``},null,8,[`value`,`indeterminate`]),C(`div`,bn,[C(`span`,xn,u(nc(t.download.downloaded))+` / `+u(nc(t.download.total)),1),d(V),C(`span`,Sn,u(t.download.total>0?`${Math.floor(t.download.downloaded/t.download.total*100)}%`:`—`),1)])])):t.installed?(i(),x(`div`,Cn,u(t.fileName),1)):_(``,!0)],2))),128))])],512),[[D,E.value===`voice`]]),a(C(`div`,wn,[C(`div`,Tn,u(e.$t(`voice.sectionAdvanced`)),1),d(je,{dense:``,dark:``,icon:`tune`,label:e.$t(`voice.sectionBehavior`),class:`variables-panel rounded-borders q-mb-sm`},{default:r(()=>[C(`div`,En,[C(`div`,Dn,[C(`div`,On,u(e.$t(`voice.temperature`)),1),d(nt,{modelValue:Po.value,"onUpdate:modelValue":t[22]||=e=>Po.value=e,min:0,max:1,step:.05,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`]),C(`div`,kn,u(Po.value.toFixed(2)),1)]),C(`div`,An,u(e.$t(`voice.temperatureHint`)),1),d(P,{modelValue:Fo.value,"onUpdate:modelValue":t[23]||=e=>Fo.value=e,label:e.$t(`voice.initialPrompt`),type:`textarea`,dense:``,dark:``,outlined:``,rows:2,class:`settings-input`},null,8,[`modelValue`,`label`]),C(`div`,jn,u(e.$t(`voice.initialPromptHint`)),1),d(F,{modelValue:Io.value,"onUpdate:modelValue":t[24]||=e=>Io.value=e,label:e.$t(`voice.translateToEnglish`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),C(`div`,Mn,u(e.$t(`voice.translateToEnglishHint`)),1),d(F,{modelValue:Lo.value,"onUpdate:modelValue":t[25]||=e=>Lo.value=e,label:e.$t(`voice.suppressNst`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),C(`div`,Nn,u(e.$t(`voice.suppressNstHint`)),1)])]),_:1},8,[`label`]),d(je,{dense:``,dark:``,icon:`terminal`,label:e.$t(`voice.sectionBinaries`),class:`variables-panel rounded-borders`},{default:r(()=>[C(`div`,Pn,[d(P,{modelValue:Mo.value,"onUpdate:modelValue":t[26]||=e=>Mo.value=e,label:e.$t(`voice.commandPath`),dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`]),d(P,{modelValue:No.value,"onUpdate:modelValue":t[27]||=e=>No.value=e,label:e.$t(`voice.ffmpegPath`),dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`label`])])]),_:1},8,[`label`])],512),[[D,E.value===`voice`]]),E.value===`prompts`?(i(),x(`div`,Fn,[C(`div`,In,[C(`div`,Ln,u(e.$t(`settings.prPromptTemplate`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:f(w)(`settings.resetToDefault`),loading:G.value===`prPromptTemplate`,disable:G.value!==null&&G.value!==`prPromptTemplate`,onClick:t[28]||=e=>Zs(`prPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),C(`div`,Rn,u(e.$t(`settings.prPromptHint`)),1),d(P,{modelValue:k.value,"onUpdate:modelValue":t[29]||=e=>k.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:e.$t(`settings.prPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`]),C(`div`,zn,[d(je,{dense:``,dark:``,icon:`code`,label:e.$t(`settings.availableVariables`),class:`variables-panel rounded-borders`},{default:r(()=>[d(Ne,{dense:``,dark:``,class:`q-pa-sm`},{default:r(()=>[(i(!0),x(S,null,c(Ds.value,e=>(i(),h(I,{key:e.name,dense:``},{default:r(()=>[d(L,null,{default:r(()=>[d(R,{class:`text-caption`,style:{"font-family":`monospace`}},{default:r(()=>[v(u(e.name),1)]),_:2},1024),d(R,{caption:``,class:`text-grey-7`},{default:r(()=>[v(u(e.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1},8,[`label`])]),C(`div`,Bn,[C(`div`,Vn,u(e.$t(`settings.reviewPromptTemplate`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:f(w)(`settings.resetToDefault`),loading:G.value===`reviewPromptTemplate`,disable:G.value!==null&&G.value!==`reviewPromptTemplate`,onClick:t[30]||=e=>Zs(`reviewPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),C(`div`,Hn,u(e.$t(`settings.prPromptHint`)),1),d(P,{modelValue:de.value,"onUpdate:modelValue":t[31]||=e=>de.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:e.$t(`settings.reviewPromptPlaceholder`),class:`settings-input mono-textarea q-mb-md`},null,8,[`modelValue`,`placeholder`]),C(`div`,Un,[C(`div`,Wn,u(e.$t(`settings.gitConventions`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:f(w)(`settings.resetToDefault`),loading:G.value===`gitConventions`,disable:G.value!==null&&G.value!==`gitConventions`,onClick:t[32]||=e=>Zs(`gitConventions`)},null,8,[`label`,`loading`,`disable`])]),C(`div`,Gn,u(e.$t(`settings.gitConventionsHint`)),1),d(P,{modelValue:A.value,"onUpdate:modelValue":t[33]||=e=>A.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,placeholder:e.$t(`settings.gitConventionsPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])):_(``,!0),a(C(`div`,Kn,[C(`div`,qn,u(e.$t(`settings.editorCommand`)),1),C(`div`,Jn,u(e.$t(`settings.editorCommandHint`)),1),d(P,{modelValue:Ce.value,"onUpdate:modelValue":t[34]||=e=>Ce.value=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.editorCommandPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])],512),[[D,E.value===`general`]]),a(C(`div`,Yn,[C(`div`,Xn,u(e.$t(`settings.mcpSelection`)),1),C(`div`,Zn,u(e.$t(`settings.mcpSelectionHint`)),1),C(`div`,Qn,[C(`div`,$n,u(e.$t(`settings.notionMcp`)),1),d(U,{modelValue:ot.value,"onUpdate:modelValue":t[35]||=e=>ot.value=e,options:Os.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),C(`div`,er,[C(`div`,tr,u(e.$t(`settings.sentryMcp`)),1),d(U,{modelValue:eo.value,"onUpdate:modelValue":t[36]||=e=>eo.value=e,options:Os.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])])],512),[[D,E.value===`notion`||E.value===`sentry`]]),E.value===`notion`?(i(),x(`div`,nr,[C(`div`,rr,u(e.$t(`settings.notionStatus`)),1),C(`div`,ir,u(e.$t(`settings.notionStatusHint`)),1),C(`div`,ar,[C(`div`,or,u(e.$t(`settings.notionStatusProperty`)),1),d(P,{modelValue:Me.value,"onUpdate:modelValue":t[37]||=e=>Me.value=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.notionStatusPropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),C(`div`,sr,[C(`div`,cr,u(e.$t(`settings.notionInProgressStatus`)),1),d(P,{modelValue:H.value,"onUpdate:modelValue":t[38]||=e=>H.value=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.notionInProgressStatusPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),C(`div`,lr,[C(`div`,ur,u(f(w)(`settings.notionInitialPrompt`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:f(w)(`settings.resetToDefault`),loading:G.value===`notionInitialPromptTemplate`,disable:G.value!==null&&G.value!==`notionInitialPromptTemplate`,onClick:t[39]||=e=>Zs(`notionInitialPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),C(`div`,dr,u(f(w)(`settings.notionInitialPrompt.help`,{variables:`{ticket_id}, {notion_url}, {notion_file_path}`})),1),d(P,{modelValue:et.value,"onUpdate:modelValue":t[40]||=e=>et.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):_(``,!0),a(C(`div`,fr,[C(`div`,pr,u(e.$t(`settings.notionAssignee`)),1),C(`div`,mr,u(e.$t(`settings.notionAssigneeHint`)),1),C(`div`,hr,[C(`div`,gr,u(e.$t(`settings.notionAssigneeProperty`)),1),d(P,{modelValue:Je.value,"onUpdate:modelValue":t[41]||=e=>Je.value=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.notionAssigneePropertyPlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),C(`div`,_r,[C(`div`,vr,[C(`div`,yr,u(e.$t(`settings.notionUserId`)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,color:`grey-5`,loading:Xe.value,label:e.$t(`settings.notionUsersRefresh`),onClick:t[42]||=e=>$e(!0)},null,8,[`loading`,`label`])]),Ye.value.length>0?(i(),h(U,{key:0,modelValue:W.value,"onUpdate:modelValue":t[43]||=e=>W.value=e,options:Qe.value,"emit-value":``,"map-options":``,clearable:``,dense:``,dark:``,outlined:``,hint:e.$t(`settings.notionUserIdHint`),class:`settings-input`},{option:r(e=>[d(I,m(l(e.itemProps)),{default:r(()=>[d(L,{avatar:``},{default:r(()=>[d(he,{size:`24px`},{default:r(()=>[e.opt.avatarUrl?(i(),x(`img`,{key:0,src:e.opt.avatarUrl,alt:e.opt.label},null,8,br)):(i(),h(O,{key:1,name:`person`,size:`20px`}))]),_:2},1024)]),_:2},1024),d(L,null,{default:r(()=>[d(R,null,{default:r(()=>[v(u(e.opt.name),1)]),_:2},1024),d(R,{caption:``},{default:r(()=>[v(u(e.opt.email),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`hint`])):Xe.value?(i(),x(`div`,xr,u(e.$t(`settings.notionUsersLoading`)),1)):(i(),x(S,{key:2},[Ze.value?(i(),x(`div`,Sr,u(e.$t(`settings.notionUsersLoadFailed`,{error:Ze.value})),1)):_(``,!0),d(P,{modelValue:W.value,"onUpdate:modelValue":t[44]||=e=>W.value=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.notionUserIdPlaceholder`),hint:Ze.value?e.$t(`settings.notionUsersManualFallback`):e.$t(`settings.notionUserIdHint`),class:`settings-input`},null,8,[`modelValue`,`placeholder`,`hint`])],64))])],512),[[D,E.value===`notion`]]),E.value===`sentry`?(i(),x(`div`,Cr,[C(`div`,wr,u(f(w)(`settings.sentryIntegration`)),1),C(`div`,Tr,[C(`div`,Er,u(f(w)(`settings.sentryInitialPrompt`)),1),d(V),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:f(w)(`settings.resetToDefault`),loading:G.value===`sentryInitialPromptTemplate`,disable:G.value!==null&&G.value!==`sentryInitialPromptTemplate`,onClick:t[45]||=e=>Zs(`sentryInitialPromptTemplate`)},null,8,[`label`,`loading`,`disable`])]),C(`div`,Dr,u(f(w)(`settings.sentryInitialPrompt.help`,{variables:`{issue_id}, {sentry_url}, {sentry_file_path}`})),1),d(P,{modelValue:tt.value,"onUpdate:modelValue":t[46]||=e=>tt.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):_(``,!0),a(C(`div`,Or,[C(`div`,kr,u(e.$t(`settings.tagsTitle`)),1),C(`div`,Ar,u(e.$t(`settings.tagsHint`)),1),d(U,{modelValue:to.value,"onUpdate:modelValue":t[47]||=e=>to.value=e,label:e.$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`])],512),[[D,E.value===`general`]]),a(C(`div`,jr,[C(`div`,Mr,u(e.$t(`settings.branchPrefixesTitle`)),1),C(`div`,Nr,u(e.$t(`settings.branchPrefixesHint`)),1),K.value.length>0?(i(),h(Ne,{key:0,bordered:``,separator:``,class:`rounded-borders q-mb-sm`},{default:r(()=>[(i(!0),x(S,null,c(K.value,(t,n)=>(i(),h(I,{key:t},{default:r(()=>[d(L,null,{default:r(()=>[d(R,{class:`cursor-pointer`},{default:r(()=>[v(u(t)+`/ `,1),d(rt,{"model-value":t,"auto-save":``,onSave:e=>bo(n,e)},{default:r(e=>[d(P,{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,dense:``,dark:``,autofocus:``,onKeyup:te(e.set,[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeyup`])]),_:1},8,[`model-value`,`onSave`]),d(Ae,null,{default:r(()=>[v(u(e.$t(`settings.branchPrefixesEditHint`)),1)]),_:1})]),_:2},1024)]),_:2},1024),d(L,{side:``},{default:r(()=>[C(`div`,Pr,[d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`keyboard_arrow_up`,color:`grey-6`,disable:n===0,title:e.$t(`settings.branchPrefixesMoveUp`),onClick:e=>xo(n,-1)},null,8,[`disable`,`title`,`onClick`]),d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`keyboard_arrow_down`,color:`grey-6`,disable:n===K.value.length-1,title:e.$t(`settings.branchPrefixesMoveDown`),onClick:e=>xo(n,1)},null,8,[`disable`,`title`,`onClick`]),d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`grey-6`,title:e.$t(`common.delete`),onClick:e=>yo(n)},null,8,[`title`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(i(),x(`div`,Fr,u(e.$t(`settings.branchPrefixesEmpty`)),1)),C(`div`,Ir,[d(P,{modelValue:no.value,"onUpdate:modelValue":t[48]||=e=>no.value=e,label:e.$t(`settings.branchPrefixesAddLabel`),dense:``,dark:``,outlined:``,class:`col`,onKeyup:te(vo,[`enter`])},null,8,[`modelValue`,`label`]),d(j,{flat:``,label:e.$t(`common.add`),icon:`add`,color:`primary`,disable:_o(no.value).length===0,onClick:vo},null,8,[`label`,`disable`])])],512),[[D,E.value===`general`]]),a(C(`div`,Lr,[C(`div`,Rr,u(e.$t(`settings.setupScript`)),1),C(`div`,zr,u(e.$t(`settings.setupScriptHint`)),1),d(P,{modelValue:ro.value,"onUpdate:modelValue":t[49]||=e=>ro.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])],512),[[D,E.value===`scripts`]]),a(C(`div`,Br,[C(`div`,Vr,u(e.$t(`settings.onboardingTitle`)),1),C(`div`,Hr,u(e.$t(`settings.onboardingHint`)),1),d(j,{flat:``,"no-caps":``,icon:`play_circle`,color:`indigo-4`,label:e.$t(`settings.onboardingReplay`),onClick:f(re)},null,8,[`label`,`onClick`])],512),[[D,E.value===`general`]]),a(C(`div`,Ur,[C(`div`,Wr,u(e.$t(`settings.cleanupScript`)),1),C(`div`,Gr,u(e.$t(`settings.cleanupScriptHint`)),1),d(P,{modelValue:io.value,"onUpdate:modelValue":t[50]||=e=>io.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.cleanupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),C(`div`,Kr,u(e.$t(`settings.cleanupScriptMode`)),1),d(Oe,{modelValue:ao.value,"onUpdate:modelValue":t[51]||=e=>ao.value=e,options:[{label:e.$t(`settings.cleanupScriptMode.idle`),value:`idle`},{label:e.$t(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}],type:`radio`,color:`indigo-4`,dense:``},null,8,[`modelValue`,`options`]),d(we,{modelValue:oo.value,"onUpdate:modelValue":t[52]||=e=>oo.value=e,label:e.$t(`settings.cleanupScriptOnlyOnChanges`),dark:``,dense:``,color:`indigo-4`,class:`q-mt-sm`},null,8,[`modelValue`,`label`])],512),[[D,E.value===`scripts`]]),a(C(`div`,qr,[C(`div`,Jr,u(e.$t(`settings.archiveScript`)),1),C(`div`,Yr,u(e.$t(`settings.archiveScriptHint`)),1),d(P,{modelValue:so.value,"onUpdate:modelValue":t[53]||=e=>so.value=e,type:`textarea`,dark:``,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.archiveScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])],512),[[D,E.value===`scripts`]]),a(C(`div`,Xr,[C(`div`,Zr,[C(`div`,Qr,u(e.$t(`settings.changeSourceBranchScript`)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`primary`,icon:`restart_alt`,label:e.$t(`settings.changeSourceBranchScript.resetDefault`),onClick:t[54]||=e=>Vo(`global`)},null,8,[`label`])]),C(`div`,$r,u(e.$t(`settings.changeSourceBranchScript.help`)),1),C(`pre`,ei,u(e.$t(`settings.changeSourceBranchScript.envHelp`)),1),d(P,{modelValue:co.value,"onUpdate:modelValue":t[55]||=e=>co.value=e,type:`textarea`,dark:``,outlined:``,"input-style":{minHeight:`400px`,maxHeight:`600px`},placeholder:e.$t(`settings.changeSourceBranchScript.placeholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])],512),[[D,E.value===`scripts`]]),a(C(`div`,ti,[C(`div`,ni,u(e.$t(`settings.worktreesTitle`)),1),C(`div`,ri,u(e.$t(`settings.worktreesHint`)),1),d(P,{ref_key:`globalWorktreesPathInput`,ref:ho,modelValue:mo.value,"onUpdate:modelValue":t[56]||=e=>mo.value=e,label:e.$t(`settings.worktreesPathLabel`),dense:``,dark:``,outlined:``,placeholder:f(pe),rules:Uo,"lazy-rules":``,class:`settings-input`},null,8,[`modelValue`,`label`,`placeholder`]),d(F,{modelValue:go.value,"onUpdate:modelValue":t[57]||=e=>go.value=e,label:e.$t(`settings.worktreesPrefixByProject`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption q-mt-sm`},null,8,[`modelValue`,`label`]),C(`div`,ii,u(e.$t(`settings.worktreesPrefixByProjectHint`)),1)],512),[[D,E.value===`worktrees`]]),a(C(`div`,ai,[C(`div`,oi,u(e.$t(`settings.shareTitle`)),1),C(`div`,si,u(e.$t(`settings.shareHint`)),1),C(`div`,ci,[d(j,{label:e.$t(`settings.exportConfig`),icon:`download`,"no-caps":``,outline:``,color:`grey-4`,onClick:Js},null,8,[`label`]),d(j,{label:e.$t(`settings.importConfig`),icon:`upload`,"no-caps":``,outline:``,color:`grey-4`,onClick:Ys},null,8,[`label`]),C(`input`,{ref_key:`importFileInput`,ref:qs,type:`file`,accept:`application/json,.json`,style:{display:`none`},onChange:Xs},null,544)])],512),[[D,E.value===`export`]]),C(`div`,li,[d(j,{label:e.$t(`common.save`),"no-caps":``,unelevated:``,size:`sm`,color:`primary`,loading:Wo.value,class:T({"save-btn--dirty":Rs.value}),onClick:Qs},null,8,[`label`,`loading`,`class`])])],512),[[D,se.value]]),a(C(`div`,ui,[C(`div`,di,[C(`div`,fi,[C(`div`,pi,[C(`div`,mi,[C(`div`,hi,u(e.$t(`settings.configuredProjects`)),1)]),d(ue,{dark:``}),d(Ne,{dark:``,dense:``,class:`q-py-xs`},{default:r(()=>[(i(!0),x(S,null,c(f(n).projects,(e,t)=>(i(),h(I,{key:e.path,clickable:``,active:Y.value===t&&!X.value,"active-class":`project-item--active`,class:`project-item q-mx-xs rounded-borders`,style:{"min-height":`40px`},onClick:e=>uc(t)},{default:r(()=>[d(L,null,{default:r(()=>[d(R,{class:`text-body2 text-grey-3`},{default:r(()=>[v(u(dc(e)),1)]),_:2},1024),d(R,{caption:``,class:`text-grey-7 ellipsis`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:r(()=>[v(u(e.path),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1}),f(n).projects.length===0&&!f(n).loading?(i(),x(`div`,gi,u(e.$t(`settings.noProjects`)),1)):_(``,!0),d(ue,{dark:``}),C(`div`,_i,[d(j,{"data-tour":`settings-card-projects`,label:e.$t(`settings.addProject`),icon:`add`,"no-caps":``,flat:``,dense:``,class:`full-width`,color:`indigo-4`,onClick:lc},null,8,[`label`])])])]),C(`div`,vi,[C(`div`,yi,[Ns.value||X.value?(i(),x(S,{key:0},[C(`div`,bi,[C(`div`,xi,u(X.value?e.$t(`settings.newProject`):e.$t(`settings.editProject`)),1),d(V),X.value?_(``,!0):(i(),h(j,{key:0,label:e.$t(`common.delete`),icon:`delete_outline`,"no-caps":``,flat:``,dense:``,size:`sm`,color:`red-5`,loading:as.value,onClick:cc},null,8,[`label`,`loading`]))]),d(ue,{dark:``,class:`q-mb-md`}),X.value&&f(n).projects.length>0?(i(),x(`div`,Si,[C(`div`,Ci,u(e.$t(`settings.copyFrom`)),1),d(U,{"model-value":Ko.value,options:Jo.value,"option-value":`value`,"option-label":`label`,"emit-value":``,"map-options":``,clearable:``,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.copyFromPlaceholder`),class:`settings-input`,"onUpdate:modelValue":Zo},null,8,[`model-value`,`options`,`placeholder`]),C(`div`,wi,u(e.$t(`settings.copyFromHint`)),1)])):_(``,!0),C(`div`,Ti,[C(`div`,Ei,u(e.$t(`settings.projectGroup.identity`)),1),C(`div`,Di,[C(`div`,Oi,u(e.$t(`settings.projectPath`)),1),d(P,{modelValue:Z.value.path,"onUpdate:modelValue":t[59]||=e=>Z.value.path=e,dense:``,dark:``,outlined:``,readonly:!X.value,placeholder:e.$t(`settings.projectPathPlaceholder`),class:T([`settings-input`,{"readonly-input":!X.value}])},y({_:2},[X.value?{name:`append`,fn:r(()=>[d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`folder_open`,color:`grey-5`,onClick:t[58]||=e=>uo.value=!0},{default:r(()=>[d(Ae,null,{default:r(()=>[v(u(e.$t(`folderPicker.title`)),1)]),_:1})]),_:1})]),key:`0`}:void 0]),1032,[`modelValue`,`readonly`,`placeholder`,`class`])]),C(`div`,ki,[C(`div`,Ai,u(e.$t(`settings.displayName`)),1),d(P,{modelValue:Z.value.displayName,"onUpdate:modelValue":t[60]||=e=>Z.value.displayName=e,dense:``,dark:``,outlined:``,placeholder:e.$t(`settings.displayNamePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`])]),C(`div`,null,[C(`div`,ji,u(e.$t(`settings.projectColor`)),1),C(`div`,Mi,[(i(!0),x(S,null,c(f(He),e=>(i(),h(Ve,{key:e,dense:``,clickable:``,color:e,icon:Z.value.color===e?`check`:void 0,"text-color":`white`,onClick:t=>Z.value.color=e},null,8,[`color`,`icon`,`onClick`]))),128)),d(j,{flat:``,dense:``,"no-caps":``,size:`xs`,label:e.$t(`settings.projectColorClear`),color:`grey-5`,disable:!Z.value.color,onClick:t[61]||=e=>Z.value.color=null},null,8,[`label`,`disable`])]),C(`div`,Ni,u(Z.value.color??e.$t(`settings.projectColorDefault`)),1)])]),C(`div`,Pi,[C(`div`,Fi,u(e.$t(`settings.projectGroup.defaults`)),1),C(`div`,Ii,[C(`div`,Li,u(e.$t(`settings.defaultSourceBranch`)),1),d(U,{modelValue:Z.value.defaultSourceBranch,"onUpdate:modelValue":t[62]||=e=>Z.value.defaultSourceBranch=e,options:fc.value,dense:``,dark:``,outlined:``,"use-input":``,"emit-value":``,loading:rs.value,class:`settings-input`,placeholder:`main`,onFilter:pc},{"no-option":r(()=>[d(I,null,{default:r(()=>[d(L,{class:`text-grey-6 text-caption`},{default:r(()=>[v(u(Z.value.path.trim()?e.$t(`createPage.noBranches`):e.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`])]),C(`div`,Ri,[C(`div`,zi,u(e.$t(`settings.defaultModel.project`)),1),d(U,{modelValue:Z.value.defaultModel,"onUpdate:modelValue":t[63]||=e=>Z.value.defaultModel=e,options:Cs.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),C(`div`,null,[C(`div`,Bi,u(e.$t(`settings.forge`)),1),d(U,{modelValue:Z.value.forge,"onUpdate:modelValue":t[64]||=e=>Z.value.forge=e,options:ws.value,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])])]),C(`div`,Vi,[C(`div`,Hi,u(e.$t(`settings.projectGroup.prompts`)),1),C(`div`,Ui,[C(`div`,Wi,u(e.$t(`settings.prPromptTemplate.project`)),1),C(`div`,Gi,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.prPromptTemplate,"onUpdate:modelValue":t[65]||=e=>Z.value.prPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.prPromptPlaceholder.project`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),C(`div`,Ki,[C(`div`,qi,u(e.$t(`settings.reviewPromptTemplate.project`)),1),C(`div`,Ji,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.reviewPromptTemplate,"onUpdate:modelValue":t[66]||=e=>Z.value.reviewPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.reviewPromptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),C(`div`,Yi,[C(`div`,Xi,u(f(w)(`settings.notionInitialPrompt.project`)),1),C(`div`,Zi,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.notionInitialPromptTemplate,"onUpdate:modelValue":t[67]||=e=>Z.value.notionInitialPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])]),C(`div`,Qi,[C(`div`,$i,u(f(w)(`settings.sentryInitialPrompt.project`)),1),C(`div`,ea,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.sentryInitialPromptTemplate,"onUpdate:modelValue":t[68]||=e=>Z.value.sentryInitialPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])]),C(`div`,ta,[C(`div`,na,u(e.$t(`settings.gitConventions.project`)),1),C(`div`,ra,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.gitConventions,"onUpdate:modelValue":t[69]||=e=>Z.value.gitConventions=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`140px`},placeholder:e.$t(`settings.gitConventionsEmpty`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),C(`div`,null,[C(`div`,ia,u(e.$t(`settings.taskPromptTemplate`)),1),d(P,{modelValue:Z.value.taskPromptTemplate,"onUpdate:modelValue":t[70]||=e=>Z.value.taskPromptTemplate=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.taskPromptTemplatePlaceholder`),class:`settings-input`},null,8,[`modelValue`,`placeholder`]),C(`div`,aa,u(e.$t(`settings.taskPromptTemplateHint`)),1)])]),C(`div`,oa,[C(`div`,sa,u(e.$t(`settings.projectGroup.scripts`)),1),C(`div`,ca,[C(`div`,la,u(e.$t(`settings.setupScript`)),1),C(`div`,ua,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.setupScript,"onUpdate:modelValue":t[71]||=e=>Z.value.setupScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.setupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),C(`div`,da,u(e.$t(`settings.setupScriptHint`)),1)]),C(`div`,fa,[C(`div`,pa,u(e.$t(`settings.cleanupScript`)),1),C(`div`,ma,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.cleanupScript,"onUpdate:modelValue":t[72]||=e=>Z.value.cleanupScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.cleanupScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`]),C(`div`,ha,u(e.$t(`settings.cleanupScriptMode`)),1),d(U,{modelValue:Z.value.cleanupScriptMode,"onUpdate:modelValue":t[73]||=e=>Z.value.cleanupScriptMode=e,options:po.value,"emit-value":``,"map-options":``,dense:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])]),C(`div`,null,[C(`div`,ga,u(e.$t(`settings.archiveScript`)),1),C(`div`,_a,u(f(w)(`settings.initialPrompt.inheritHint`)),1),d(P,{modelValue:Z.value.archiveScript,"onUpdate:modelValue":t[74]||=e=>Z.value.archiveScript=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`100px`},placeholder:e.$t(`settings.archiveScriptPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),C(`div`,null,[C(`div`,va,[C(`div`,ya,u(e.$t(`settings.changeSourceBranchScript`)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`primary`,icon:`restart_alt`,label:e.$t(`settings.changeSourceBranchScript.resetDefault`),onClick:t[75]||=e=>Vo(`project`)},null,8,[`label`])]),C(`div`,ba,u(e.$t(`settings.changeSourceBranchScript.help`)),1),C(`pre`,xa,u(e.$t(`settings.changeSourceBranchScript.envHelp`)),1),d(P,{modelValue:Z.value.changeSourceBranchScript,"onUpdate:modelValue":t[76]||=e=>Z.value.changeSourceBranchScript=e,type:`textarea`,outlined:``,"input-style":{minHeight:`400px`,maxHeight:`600px`},placeholder:e.$t(`settings.changeSourceBranchScript.placeholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),C(`div`,Sa,[C(`div`,Ca,u(e.$t(`settings.devServer`)),1),C(`div`,wa,[C(`div`,Ta,u(e.$t(`settings.devServerStart`)),1),d(P,{modelValue:Z.value.devServer.startCommand,"onUpdate:modelValue":t[77]||=e=>Z.value.devServer.startCommand=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`60px`},placeholder:e.$t(`settings.devServerStartPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])]),C(`div`,null,[C(`div`,Ea,u(e.$t(`settings.devServerStop`)),1),d(P,{modelValue:Z.value.devServer.stopCommand,"onUpdate:modelValue":t[78]||=e=>Z.value.devServer.stopCommand=e,type:`textarea`,outlined:``,autogrow:``,"input-style":{minHeight:`60px`},placeholder:e.$t(`settings.devServerStopPlaceholder`),class:`settings-input mono-textarea`},null,8,[`modelValue`,`placeholder`])])]),C(`div`,Da,[C(`div`,Oa,u(e.$t(`settings.e2e.title`)),1),C(`div`,ka,u(e.$t(`settings.e2e.helpText`)),1),d(U,{modelValue:Z.value.e2e.framework,"onUpdate:modelValue":t[79]||=e=>Z.value.e2e.framework=e,options:[{label:e.$t(`settings.e2e.frameworkNone`),value:``},{label:`Cypress`,value:`cypress`},{label:`Playwright`,value:`playwright`},{label:`Jest`,value:`jest`},{label:`Vitest`,value:`vitest`},{label:e.$t(`settings.e2e.frameworkOther`),value:`other`}],"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-sm`,label:e.$t(`settings.e2e.framework`)},null,8,[`modelValue`,`options`,`label`]),Z.value.e2e.framework?(i(),x(S,{key:0},[d(U,{modelValue:Z.value.e2e.skill,"onUpdate:modelValue":t[80]||=e=>Z.value.e2e.skill=e,options:$o.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:e.$t(`settings.e2e.skill`),placeholder:e.$t(`settings.e2e.skillPlaceholder`),onFilter:ts},null,8,[`modelValue`,`options`,`label`,`placeholder`]),d(P,{modelValue:Z.value.e2e.prompt,"onUpdate:modelValue":t[81]||=e=>Z.value.e2e.prompt=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,class:`settings-input mono-textarea`,label:e.$t(`settings.e2e.prompt`),placeholder:e.$t(`settings.e2e.promptPlaceholder`)},null,8,[`modelValue`,`label`,`placeholder`])],64)):_(``,!0)]),C(`div`,Aa,[C(`div`,ja,u(e.$t(`settings.finalization.title`)),1),C(`div`,Ma,u(e.$t(`settings.finalization.helpText`)),1),d(P,{modelValue:Z.value.finalization.prompt,"onUpdate:modelValue":t[82]||=e=>Z.value.finalization.prompt=e,type:`textarea`,autogrow:``,rows:`4`,dense:``,dark:``,outlined:``,class:`settings-input mono-textarea q-mb-sm`,label:e.$t(`settings.finalization.prompt`),placeholder:e.$t(`settings.finalization.promptPlaceholder`)},null,8,[`modelValue`,`label`,`placeholder`])]),C(`div`,Na,[d(V),d(j,{label:e.$t(`common.save`),"no-caps":``,unelevated:``,size:`sm`,color:`primary`,loading:is.value,class:T({"save-btn--dirty":zs.value}),onClick:sc},null,8,[`label`,`loading`,`class`])])],64)):(i(),x(`div`,Pa,[d(O,{name:`folder_open`,size:`48px`,color:`grey-7`,class:`q-mb-md`}),C(`div`,Fa,u(e.$t(`settings.selectProject`)),1)]))])])])],512),[[D,E.value===`projects`]]),a(C(`div`,Ia,[C(`div`,La,[C(`div`,Ra,[C(`div`,za,u(e.$t(`templates.title`)),1),C(`div`,Ba,[d(j,{flat:``,color:`grey-4`,icon:`restart_alt`,label:e.$t(`templates.reloadDefaults`),dense:``,"no-caps":``,loading:ds.value,onClick:_s},{default:r(()=>[d(Ae,null,{default:r(()=>[v(u(e.$t(`templates.reloadDefaultsHint`)),1)]),_:1})]),_:1},8,[`label`,`loading`]),d(j,{color:`primary`,icon:`add`,label:e.$t(`templates.newTemplate`),dense:``,"no-caps":``,onClick:ms},null,8,[`label`])])]),d(ue,{dark:``,class:`q-mb-md`}),fs.value.length===0?(i(),x(`div`,Va,u(e.$t(`templates.empty`)),1)):(i(),x(`div`,Ha,[(i(!0),x(S,null,c(fs.value,t=>(i(),h(Ee,{key:t.slug,dark:``,flat:``,bordered:``,class:`q-pa-md template-card`},{default:r(()=>[C(`div`,Ua,[C(`div`,Wa,[C(`div`,Ga,` /`+u(t.slug),1),C(`div`,Ka,u(t.description),1)]),C(`div`,qa,[d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`edit`,color:`grey-5`,onClick:e=>hs(t)},{default:r(()=>[d(Ae,null,{default:r(()=>[v(u(e.$t(`templates.editTemplate`)),1)]),_:1})]),_:1},8,[`onClick`]),d(j,{flat:``,dense:``,round:``,size:`sm`,icon:`delete`,color:`red-4`,onClick:e=>vs(t)},{default:r(()=>[d(Ae,null,{default:r(()=>[v(u(e.$t(`templates.deleteTemplate`)),1)]),_:1})]),_:1},8,[`onClick`])])])]),_:2},1024))),128))])),C(`div`,Ja,u(e.$t(`templates.filePath`,{path:`~/.config/kobo/templates.json`})),1)])],512),[[D,E.value===`templates`]])])]),d(ie,{name:`save-bar`},{default:r(()=>[Bs.value?(i(),x(`div`,Ya,[C(`span`,Xa,u(e.$t(`settings.unsavedChanges`)),1),d(j,{dense:``,"no-caps":``,unelevated:``,class:`settings-savebar__action`,loading:Vs.value,label:e.$t(`common.save`),onClick:Hs},null,8,[`loading`,`label`])])):_(``,!0)]),_:1})]),d(Te,{modelValue:os.value,"onUpdate:modelValue":t[86]||=e=>os.value=e,persistent:``},{default:r(()=>[d(Ee,{dark:``,style:{"min-width":`560px`,"max-width":`800px`,width:`80vw`}},{default:r(()=>[d(ke,null,{default:r(()=>[C(`div`,Za,u(Q.value===null?e.$t(`templates.newTemplate`):e.$t(`templates.editTemplate`)),1)]),_:1}),d(ke,{class:`q-gutter-md`},{default:r(()=>[d(P,{modelValue:ss.value,"onUpdate:modelValue":t[83]||=e=>ss.value=e,label:e.$t(`templates.slug`),hint:e.$t(`templates.slugHint`),dark:``,dense:``,prefix:`/`,disable:Q.value!==null,rules:[t=>/^[a-z0-9][a-z0-9-]{0,63}$/.test(t)||e.$t(`templates.slugInvalid`)],"lazy-rules":``},null,8,[`modelValue`,`label`,`hint`,`disable`,`rules`]),d(P,{modelValue:cs.value,"onUpdate:modelValue":t[84]||=e=>cs.value=e,label:e.$t(`templates.description`),hint:e.$t(`templates.descriptionHint`),dark:``,dense:``,counter:``,maxlength:`120`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),d(P,{modelValue:ls.value,"onUpdate:modelValue":t[85]||=e=>ls.value=e,label:e.$t(`templates.content`),hint:e.$t(`templates.contentHint`),dark:``,dense:``,type:`textarea`,autogrow:``,counter:``,maxlength:`4096`,rules:[e=>e&&e.trim().length>0||``]},null,8,[`modelValue`,`label`,`hint`,`rules`]),d(je,{dense:``,"dense-toggle":``,label:e.$t(`templates.availableVars`),"header-class":`text-grey-6 text-caption q-pa-none`,style:{"font-size":`11px`}},{default:r(()=>[C(`div`,Qa,[(i(),x(S,null,c(ps,e=>C(`div`,{key:e,class:`text-grey-5 q-mb-xs`},u(e),1)),64))])]),_:1},8,[`label`]),$.value?(i(),x(`div`,$a,u($.value),1)):_(``,!0)]),_:1}),d(ye,{align:`right`},{default:r(()=>[a(d(j,{flat:``,label:e.$t(`common.cancel`)},null,8,[`label`]),[[Pe]]),d(j,{flat:``,color:`primary`,label:Q.value===null?e.$t(`templates.create`):e.$t(`templates.save`),loading:us.value,onClick:gs},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),d(st,{modelValue:uo.value,"onUpdate:modelValue":t[87]||=e=>uo.value=e,"initial-path":Z.value.path,onSelect:fo},null,8,[`modelValue`,`initial-path`])]),_:1}))}}),[[`__scopeId`,`data-v-c8a92aa1`]]);export{eo as default};
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-CDhLuhI3.js","assets/index-DMUFfCIq.js","assets/vue-i18n-Cq-KgjJC.js","assets/runtime-core.esm-bundler-D_RRiKBh.js","assets/QIcon-BmEX2rXO.js","assets/use-id-BCnfiBjU.js","assets/notifications-Hq-6rEYv.js","assets/QBtn-CoU-UC_j.js","assets/QRadio-M9mC5jZy.js","assets/use-checkbox-DnSuDqo2.js","assets/QInput-D0t39uK_.js","assets/QCheckbox-Cq2STfHp.js","assets/QToggle-DBzTAIbK.js","assets/index-ClabzOPc.css","assets/_plugin-vue_export-helper-Cj6tcsj6.js","assets/render-chat-markdown-BywKNkXe.js","assets/QExpansionItem-CgJQdznK.js","assets/QItemSection-DRg-QuAD.js","assets/QItemLabel-Btqw0P7M.js","assets/QTooltip-BC7PnZJ1.js","assets/QScrollArea-_Ji1cgqL.js","assets/TouchPan-D0fJnlOC.js","assets/touch-2Qa-HSDZ.js","assets/QSpinnerDots-DspFKwCZ.js","assets/documents-B3nitIYF.js","assets/ActivityFeed-yUMQhnW4.css"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,G as i,I as a,K as o,L as s,N as c,P as l,R as u,St as d,T as f,W as p,_ as m,a as h,at as g,b as _,d as v,et as y,f as b,g as x,i as S,l as C,p as w,r as T,u as E,v as D,y as O,yt as k}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{H as ee,P as A,U as j,a as M,i as te,m as N,n as ne,r as re,s as P,t as F,v as ie}from"./QIcon-BmEX2rXO.js";import{r as ae}from"./use-id-BCnfiBjU.js";import{s as oe}from"./notifications-Hq-6rEYv.js";import{n as se,r as I,t as ce}from"./QRadio-M9mC5jZy.js";import{c as le,t as L}from"./QBtn-CoU-UC_j.js";import{n as R}from"./vue-i18n-Cq-KgjJC.js";import{t as ue}from"./QInput-D0t39uK_.js";import{t as de}from"./QCheckbox-Cq2STfHp.js";import{_ as fe,b as pe,c as z,g as me,i as he,m as B,n as ge,o as _e,r as ve,u as ye,x as be}from"./index-DMUFfCIq.js";import{t as xe}from"./QSpinnerDots-DspFKwCZ.js";import{n as Se,t as Ce}from"./QItemSection-DRg-QuAD.js";import{t as we}from"./QItemLabel-Btqw0P7M.js";import{m as Te,t as V}from"./QTooltip-BC7PnZJ1.js";import{t as H}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as Ee}from"./QBadge-NEwszYs7.js";import{t as U}from"./QSpace-DONPiIes.js";import{t as W}from"./QList-B3TuWSqL.js";import{t as G}from"./QMenu-NVDU7D3u.js";import{t as K}from"./ClosePopup-A-tSm4aa.js";import{t as De}from"./use-quasar-k24tGxE-.js";import{a as q,c as Oe,i as J,o as Y,r as ke,s as X,t as Ae}from"./engineFeatures-baMvMT98.js";import{t as je}from"./kobo-commands-B2AhWe1S.js";import{t as Me}from"./formatters-9dcj2tyJ.js";import{a as Ne,i as Pe,r as Fe,t as Ie}from"./permissionModes-DuwIe4ty.js";import{t as Le}from"./QPage-DO_bQyV_.js";import{a as Re,i as ze,n as Be,r as Ve,t as He}from"./expand-template-CF0lBr4L.js";import{t as Ue}from"./QBanner-Jsq4uJZs.js";var We={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},Ge={key:0,class:`q-ml-xs`},Ke=O({__name:`AgentBusyBanner`,setup(e){let{t}=R(),n=z(),r=f(`openDrawerTab`),i=C(()=>n.currentSubagents.filter(e=>e.status===`running`).length),o=C(()=>{let e=n.selectedWorkspace;return e?ye(e.status):!1});function s(){r?.(`subagents`)}return(e,n)=>o.value?(a(),w(`div`,We,[m(xe,{size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),E(`span`,null,d(g(t)(`agentBusy.banner`)),1),i.value>0?(a(),w(`span`,Ge,` — `+d(g(t)(`agentBusy.subagentsRunning`,{n:i.value},i.value)),1)):b(``,!0),i.value>0?(a(),w(T,{key:1},[m(U),E(`span`,{class:`text-indigo-4 cursor-pointer`,style:{"text-decoration":`underline`},onClick:s},d(g(t)(`agentBusy.viewSubagents`)),1)],64)):b(``,!0)])):b(``,!0)}}),qe={class:`text-subtitle2`},Je={class:`text-caption`},Ye=O({__name:`AgentErrorBanner`,props:{workspaceId:{}},setup(e){let t=e,{t:n}=R(),r=B();async function o(){let e=l.value;if(e){r.removeByEventId(t.workspaceId,e);try{await fetch(`/api/workspaces/${t.workspaceId}/events/${e}`,{method:`DELETE`})}catch(e){console.warn(`[agent-error-banner] failed to persist dismiss:`,e)}}}function s(e){let t=e.replace(/\u001b\[\d+m/g,``).trim();return/^warning:/i.test(t)}let c=C(()=>{let e=r.eventsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.kind!==`error`||n.category===`quota`)&&!(n.category===`other`&&s(n.message)))return n}return null}),l=C(()=>{let e=r.eventsFor(t.workspaceId),n=r.eventIdsFor(t.workspaceId);for(let t=e.length-1;t>=0;t--){let r=e[t];if(!(r.kind!==`error`||r.category===`quota`)&&!(r.category===`other`&&s(r.message)))return n[t]??null}return null}),u=c;return(e,t)=>g(u)?(a(),v(Ue,{key:0,class:`bg-negative text-white q-ma-sm`},{avatar:i(()=>[m(F,{name:`error_outline`})]),action:i(()=>[m(L,{flat:``,dense:``,round:``,icon:`close`,"aria-label":g(n)(`common.close`),onClick:o},{default:i(()=>[m(V,null,{default:i(()=>[x(d(g(n)(`common.close`)),1)]),_:1})]),_:1},8,[`aria-label`])]),default:i(()=>[E(`div`,qe,d(g(n)(`agent.error.${g(u).category}`)),1),E(`div`,Je,d(g(u).message),1)]),_:1})):b(``,!0)}}),Xe=A({name:`StepHeader`,props:{stepper:{},step:{},goToPanel:Function},setup(e,{attrs:n}){let{proxy:{$q:r}}=_(),i=y(null),a=C(()=>e.stepper.modelValue===e.step.name),s=C(()=>{let t=e.step.disable;return t===!0||t===``}),c=C(()=>{let t=e.step.error;return t===!0||t===``}),l=C(()=>{let t=e.step.done;return s.value===!1&&(t===!0||t===``)}),u=C(()=>{let t=e.step.headerNav,n=t===!0||t===``||t===void 0;return s.value===!1&&e.stepper.headerNav&&n}),d=C(()=>e.step.prefix&&(a.value===!1||e.stepper.activeIcon===`none`)&&(c.value===!1||e.stepper.errorIcon===`none`)&&(l.value===!1||e.stepper.doneIcon===`none`)),f=C(()=>{let t=e.step.icon||e.stepper.inactiveIcon;if(a.value===!0){let n=e.step.activeIcon||e.stepper.activeIcon;return n===`none`?t:n||r.iconSet.stepper.active}if(c.value===!0){let n=e.step.errorIcon||e.stepper.errorIcon;return n===`none`?t:n||r.iconSet.stepper.error}if(s.value===!1&&l.value===!0){let n=e.step.doneIcon||e.stepper.doneIcon;return n===`none`?t:n||r.iconSet.stepper.done}return t}),p=C(()=>{let t=c.value===!0?e.step.errorColor||e.stepper.errorColor:void 0;if(a.value===!0){let n=e.step.activeColor||e.stepper.activeColor||e.step.color;return n===void 0?t:n}return t===void 0?s.value===!1&&l.value===!0?e.step.doneColor||e.stepper.doneColor||e.step.color||e.stepper.inactiveColor:e.step.color||e.stepper.inactiveColor:t}),m=C(()=>`q-stepper__tab col-grow flex items-center no-wrap relative-position`+(p.value===void 0?``:` text-${p.value}`)+(c.value===!0?` q-stepper__tab--error q-stepper__tab--error-with-`+(d.value===!0?`prefix`:`icon`):``)+(a.value===!0?` q-stepper__tab--active`:``)+(l.value===!0?` q-stepper__tab--done`:``)+(u.value===!0?` q-stepper__tab--navigation q-focusable q-hoverable`:``)+(s.value===!0?` q-stepper__tab--disabled`:``)),h=C(()=>e.stepper.headerNav===!0?u.value:!1);function g(){i.value?.focus(),a.value===!1&&e.goToPanel(e.step.name)}function v(t){t.keyCode===13&&a.value===!1&&e.goToPanel(e.step.name)}return()=>{let r={class:m.value};u.value===!0&&(r.onClick=g,r.onKeyup=v,Object.assign(r,s.value===!0?{tabindex:-1,"aria-disabled":`true`}:{tabindex:n.tabindex||0}));let a=[t(`div`,{class:`q-focus-helper`,tabindex:-1,ref:i}),t(`div`,{class:`q-stepper__dot row flex-center q-stepper__line relative-position`},[t(`span`,{class:`row flex-center`},[d.value===!0?e.step.prefix:t(F,{name:f.value})])])];if(e.step.title!==void 0&&e.step.title!==null){let n=[t(`div`,{class:`q-stepper__title`},e.step.title)];e.step.caption!==void 0&&e.step.caption!==null&&n.push(t(`div`,{class:`q-stepper__caption`},e.step.caption)),a.push(t(`div`,{class:`q-stepper__label q-stepper__line relative-position`},n))}return o(t(`div`,r,a),[[le,h.value]])}}});function Ze(e){return t(`div`,{class:`q-stepper__step-content`},[t(`div`,{class:`q-stepper__step-inner`},P(e.default))])}var Qe={setup(e,{slots:t}){return()=>Ze(t)}},$e=A({name:`QStep`,props:{...q,icon:String,color:String,title:{type:String,required:!0},caption:String,prefix:[String,Number],doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String,headerNav:{type:Boolean,default:!0},done:Boolean,error:Boolean,onScroll:[Function,Array]},setup(e,{slots:n,emit:r}){let{proxy:{$q:i}}=_(),a=f(ie,N);if(a===N)return console.error(`QStep needs to be a child of QStepper`),N;let{getCache:o}=Oe(),s=y(null),c=C(()=>a.value.modelValue===e.name),l=C(()=>i.platform.is.ios!==!0&&i.platform.is.chrome===!0||c.value!==!0||a.value.vertical!==!0?{}:{onScroll(t){let{target:n}=t;n.scrollTop>0&&(n.scrollTop=0),e.onScroll!==void 0&&r(`scroll`,t)}}),u=C(()=>typeof e.name==`string`||typeof e.name==`number`?e.name:String(e.name));function d(){let e=a.value.vertical;return e===!0&&a.value.keepAlive===!0?t(S,a.value.keepAliveProps.value,c.value===!0?[t(a.value.needsUniqueKeepAliveWrapper.value===!0?o(u.value,()=>({...Qe,name:u.value})):Qe,{key:u.value},n.default)]:void 0):e!==!0||c.value===!0?Ze(n):void 0}return()=>t(`div`,{ref:s,class:`q-stepper__step`,role:`tabpanel`,...l.value},a.value.vertical===!0?[t(Xe,{stepper:a.value,step:e,goToPanel:a.value.goToPanel}),a.value.animated===!0?t(Te,d):d()]:[d()])}}),et=A({name:`QStepperNavigation`,setup(e,{slots:n}){return()=>t(`div`,{class:`q-stepper__nav`},P(n.default))}}),tt=/(-\w)/g;function nt(e){let t={};for(let n in e){let r=n.replace(tt,e=>e[1].toUpperCase());t[r]=e[n]}return t}var Z=A({name:`QStepper`,props:{...re,...X,flat:Boolean,bordered:Boolean,alternativeLabels:Boolean,headerNav:Boolean,contracted:Boolean,headerClass:String,inactiveColor:String,inactiveIcon:String,doneIcon:String,doneColor:String,activeIcon:String,activeColor:String,errorIcon:String,errorColor:String},emits:Y,setup(e,{slots:n}){let r=ne(e,_().proxy.$q),{updatePanelsList:i,isValidPanelName:a,updatePanelIndex:o,getPanelContent:c,getPanels:l,panelDirectives:u,goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p}=J();s(ie,C(()=>({goToPanel:d,keepAliveProps:f,needsUniqueKeepAliveWrapper:p,...e})));let m=C(()=>`q-stepper q-stepper--${e.vertical===!0?`vertical`:`horizontal`}`+(e.flat===!0?` q-stepper--flat`:``)+(e.bordered===!0?` q-stepper--bordered`:``)+(r.value===!0?` q-stepper--dark q-dark`:``)),h=C(()=>`q-stepper__header row items-stretch justify-between q-stepper__header--${e.alternativeLabels===!0?`alternative`:`standard`}-labels`+(e.flat===!1||e.bordered===!0?` q-stepper__header--border`:``)+(e.contracted===!0?` q-stepper__header--contracted`:``)+(e.headerClass===void 0?``:` ${e.headerClass}`));function g(){let r=P(n.message,[]);if(e.vertical===!0){a(e.modelValue)&&o();let i=t(`div`,{class:`q-stepper__content`},P(n.default));return r===void 0?[i]:r.concat(i)}return[t(`div`,{class:h.value},l().map(n=>{let r=nt(n.props);return t(Xe,{key:r.name,stepper:e,step:r,goToPanel:d})})),r,te(`div`,{class:`q-stepper__content q-panel-parent`},c(),`cont`,e.swipeable,()=>u.value)]}return()=>(i(n),t(`div`,{class:m.value},M(n.navigation,g())))}}),Q=`__KOBO_OTHER__`,rt=`Other — the user will provide a free-form clarification in their next message. Please wait for their input before proceeding.`;function it(e,t){if(t)return(Array.isArray(e)?e:[]).map(e=>e===`__KOBO_OTHER__`?rt:e).join(`, `);let n=Array.isArray(e)?e[0]??``:e;return n===`__KOBO_OTHER__`?rt:n}var at={class:`text-grey-3`},ot={key:0,class:`text-grey-6 q-ml-xs`},st={key:1,class:`text-grey-6 q-ml-xs`},ct=O({__name:`AukqOptionLabel`,props:{label:{},description:{}},setup(e){let t=e,{t:n}=R(),r=C(()=>t.label===Q);return(t,i)=>(a(),w(T,null,[E(`span`,at,d(r.value?g(n)(`askUserQuestion.otherOption`):e.label),1),r.value?(a(),w(`span`,ot,`— `+d(g(n)(`askUserQuestion.otherOptionHint`)),1)):e.description?(a(),w(`span`,st,`— `+d(e.description),1)):b(``,!0)],64))}}),$={key:0,class:`ask-user-question-panel q-pa-sm bg-dark text-grey-3`},lt={class:`row items-center q-mb-xs`},ut={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},dt={key:0,class:`text-caption text-grey-6`},ft={class:`text-body2 text-grey-2 q-mb-sm`},pt={key:0,class:`text-caption text-grey-6 q-mb-xs`},mt={class:`aukq-options column q-gutter-xs`},ht={class:`row items-center q-gutter-sm`},gt={key:3,class:`text-negative text-caption`},_t=H(O({__name:`AskUserQuestionPanel`,props:{workspaceId:{}},setup(e){let t=e,{t:n}=R(),r=z(),o=C(()=>{let e=r.peekPending(t.workspaceId);if(!(!e||e.kind!==`question`))return e}),s=C(()=>o.value?(o.value.input?.questions??[]).map(e=>({...e,options:[...e.options,{label:Q}]})):[]),c=C(()=>s.value[S.value]),l=y({}),f=y({}),h=y(!1),_=y(null),S=y(0);p(s,e=>{l.value=Object.fromEntries(e.map(e=>[e.question,[]])),f.value=Object.fromEntries(e.map(e=>[e.question,``])),_.value=null,S.value=0,h.value=!1},{immediate:!0});function D(e,t){return e.header?e.header:`Q${t+1}`}function O(e){return ee(e)?`check`:`help_outline`}function k(e){let t=s.value[e];return t?t.multiSelect?(l.value[t.question]??[]).length>0:!!f.value[t.question]:!1}function ee(e){return k(e)&&e<S.value}let A=C(()=>S.value===s.value.length-1),j=C(()=>s.value.every((e,t)=>k(t)));function M(){S.value<s.value.length-1&&(S.value+=1)}function te(){S.value>0&&--S.value}async function N(){if(!h.value){h.value=!0,_.value=null;try{let e={};for(let t of s.value)t.multiSelect?e[t.question]=it(l.value[t.question]??[],!0):e[t.question]=it(f.value[t.question]??``,!1);await r.submitDeferredAnswer(t.workspaceId,e,o.value?.toolCallId)}catch(e){_.value=e instanceof Error?e.message:String(e)}finally{h.value=!1}}}async function ne(){if(!h.value){h.value=!0,_.value=null;try{await r.cancelDeferredAnswer(t.workspaceId,`User cancelled the question via the UI`,o.value?.toolCallId)}catch(e){_.value=e instanceof Error?e.message:String(e)}finally{h.value=!1}}}return(e,t)=>o.value?(a(),w(`div`,$,[E(`div`,lt,[m(F,{name:`question_answer`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),E(`div`,ut,d(g(n)(`askUserQuestion.title`)),1),m(U),s.value.length>1?(a(),w(`span`,dt,d(S.value+1)+` / `+d(s.value.length),1)):b(``,!0)]),c.value?(a(),v(Z,{key:0,ref:`stepperRef`,modelValue:S.value,"onUpdate:modelValue":t[0]||=e=>S.value=e,flat:``,dark:``,animated:``,"header-nav":``,class:`aukq-stepper bg-transparent`,color:`amber-5`,"active-color":`amber-4`,"done-color":`amber-5`},{navigation:i(()=>[m(et,null,{default:i(()=>[E(`div`,ht,[S.value>0?(a(),v(L,{key:0,flat:``,dense:``,color:`grey-4`,label:g(n)(`askUserQuestion.previous`),disable:h.value,onClick:te},null,8,[`label`,`disable`])):b(``,!0),A.value?(a(),v(L,{key:2,label:g(n)(`askUserQuestion.submit`),color:`indigo-5`,dense:``,unelevated:``,loading:h.value,disable:!j.value||h.value,onClick:N},null,8,[`label`,`loading`,`disable`])):(a(),v(L,{key:1,label:g(n)(`askUserQuestion.next`),color:`indigo-5`,dense:``,unelevated:``,disable:!k(S.value)||h.value,onClick:M},null,8,[`label`,`disable`])),m(L,{label:g(n)(`askUserQuestion.cancel`),flat:``,dense:``,color:`grey-4`,disable:h.value,onClick:ne},{default:i(()=>[m(V,null,{default:i(()=>[x(d(g(n)(`askUserQuestion.cancelTooltip`)),1)]),_:1})]),_:1},8,[`label`,`disable`]),m(U),_.value?(a(),w(`span`,gt,d(_.value),1)):b(``,!0)])]),_:1})]),default:i(()=>[(a(!0),w(T,null,u(s.value,(e,t)=>(a(),v($e,{key:t,name:t,title:D(e,t),icon:O(t),"active-icon":`edit`,done:ee(t),"header-nav":ee(t)||t===S.value},{default:i(()=>[E(`div`,ft,d(e.question),1),e.multiSelect?(a(),w(`div`,pt,d(g(n)(`askUserQuestion.multiSelectHint`)),1)):b(``,!0),E(`div`,mt,[e.multiSelect?(a(!0),w(T,{key:0},u(e.options,t=>(a(),v(de,{key:t.label,modelValue:l.value[e.question],"onUpdate:modelValue":t=>l.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:h.value},{default:i(()=>[m(ct,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128)):(a(!0),w(T,{key:1},u(e.options,t=>(a(),v(ce,{key:t.label,modelValue:f.value[e.question],"onUpdate:modelValue":t=>f.value[e.question]=t,val:t.label,dark:``,dense:``,color:`indigo-4`,disable:h.value},{default:i(()=>[m(ct,{label:t.label,description:t.description},null,8,[`label`,`description`])]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`val`,`disable`]))),128))])]),_:2},1032,[`name`,`title`,`icon`,`done`,`header-nav`]))),128))]),_:1},8,[`modelValue`])):b(``,!0)])):b(``,!0)}}),[[`__scopeId`,`data-v-ab068179`]]);function vt(e,t){return e===`five_hour`?t(`rateLimitType.fiveHour`):e===`seven_day`?t(`rateLimitType.sevenDay`):e}function yt(e,t){try{let n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleTimeString(t?.locale,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:t?.timeZone})}catch{return e}}function bt(e,t,n){return e.id===`text-detected`&&e.resetAt?n(`stats.resetsAt`,{value:yt(e.resetAt)}):!e.label||e.label.trim().length===0?n(`stats.usageBucket`,{n:t+1}):vt(e.label,n)}function xt(e){return e<50?`positive`:e<75?`warning`:e<90?`orange`:`negative`}var St={class:`quota-footer`},Ct={key:0,class:`text-grey-7`},wt={class:`text-negative text-weight-medium`},Tt={class:`text-weight-medium q-mb-sm`},Et={class:`text-caption q-mb-sm`},Dt={class:`text-orange text-weight-medium`},Ot={class:`text-weight-medium q-mb-sm`},kt={class:`text-caption text-orange q-mb-sm`},At={class:`text-grey-8`},jt={class:`text-weight-medium q-mb-sm`},Mt={class:`row items-center justify-between q-mb-xs`},Nt={key:0,class:`text-caption q-mt-xs`},Pt={class:`text-caption q-mt-sm`},Ft={class:`row q-gutter-sm q-mt-sm`},It=H(O({__name:`QuotaFooter`,setup(e){let t=z(),{t:n}=R(),r=C(()=>t.currentProviderUsage),o=y(!1),s=C(()=>{let e=r.value;if(!e)return``;try{return new Date(e.fetchedAt).toLocaleTimeString()}catch{return e.fetchedAt}});function c(e,t){let i=r.value?.buckets[t];return i?bt({id:i.id,label:e,usedPct:i.usedPct,resetAt:i.resetsAt},t,n):n(`stats.usageBucket`,{n:t+1})}async function l(){if(!o.value){o.value=!0;try{await t.requestUsageRefresh(`claude-code`)}finally{o.value=!1}}}return(e,t)=>(a(),w(`span`,St,[r.value?r.value.status===`unauthenticated`?(a(),w(T,{key:1},[m(F,{name:`warning`,color:`negative`,size:`14px`,class:`q-mr-xs`}),E(`span`,wt,d(e.$t(`quotaFooter.popover.unauthenticated`)),1),m(G,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:i(()=>[E(`div`,Tt,d(e.$t(`quotaFooter.popover.title`)),1),E(`div`,Et,d(e.$t(`quotaFooter.popover.unauthenticatedHint`)),1),m(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:o.value,disable:o.value,onClick:l},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):r.value.status===`error`?(a(),w(T,{key:2},[m(F,{name:`error_outline`,color:`orange`,size:`14px`,class:`q-mr-xs`}),E(`span`,Dt,d(e.$t(`quotaFooter.popover.error`)),1),m(G,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:i(()=>[E(`div`,Ot,d(e.$t(`quotaFooter.popover.title`)),1),E(`div`,kt,d(r.value.errorMessage),1),m(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:o.value,disable:o.value,onClick:l},null,8,[`label`,`loading`,`disable`])]),_:1})],64)):(a(),w(T,{key:3},[(a(!0),w(T,null,u(r.value.buckets,(e,t)=>(a(),w(`span`,{key:e.id,class:`quota-bucket-compact`},[E(`span`,At,d(c(e.label,t)),1),m(I,{value:Math.max(0,Math.min(1,e.usedPct/100)),color:g(xt)(e.usedPct),"track-color":`grey-9`,class:`quota-bar`},null,8,[`value`,`color`]),E(`span`,{class:k([`bucket-pct`,`text-${g(xt)(e.usedPct)}`])},d(e.usedPct.toFixed(0))+`%`,3)]))),128)),m(G,{anchor:`top right`,self:`bottom right`,class:`q-pa-md quota-menu`},{default:i(()=>[E(`div`,jt,d(e.$t(`quotaFooter.popover.title`)),1),(a(!0),w(T,null,u(r.value.buckets,(t,n)=>(a(),w(`div`,{key:t.id,class:`q-mb-sm`},[E(`div`,Mt,[E(`span`,null,d(c(t.label,n)),1),E(`span`,{class:k(`text-${g(xt)(t.usedPct)}`)},d(t.usedPct.toFixed(0))+`%`,3)]),m(I,{value:Math.max(0,Math.min(1,t.usedPct/100)),color:g(xt)(t.usedPct),"track-color":`grey-9`,class:`full-bar`},null,8,[`value`,`color`]),t.resetsAt?(a(),w(`div`,Nt,d(e.$t(`quotaFooter.popover.resetsIn`,{value:g(yt)(t.resetsAt)})),1)):b(``,!0)]))),128)),E(`div`,Pt,d(e.$t(`quotaFooter.lastUpdated`,{time:s.value})),1),E(`div`,Ft,[m(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`refresh`,label:e.$t(`quotaFooter.popover.refreshNow`),loading:o.value,disable:o.value,onClick:l},null,8,[`label`,`loading`,`disable`])])]),_:1})],64)):(a(),w(`span`,Ct,d(e.$t(`quotaFooter.empty`)),1))]))}}),[[`__scopeId`,`data-v-2edf9322`]]);function Lt(e,t){if(e===``)return 0;let n=e.toLowerCase(),r=t.toLowerCase(),i=0,a=0,o=-2;for(let e of n){let t=-1;for(let n=a;n<r.length;n++)if(r[n]===e){t=n;break}if(t===-1)return null;i+=t===o+1?5:1;let n=t>0?r[t-1]:``;(t===0||n===`/`||n===`-`||n===`_`||n===`.`)&&(i+=2),o=t,a=t+1}return i-t.length*.01}function Rt(e,t){return t.map(t=>({item:t,score:Lt(e,t)})).filter(e=>e.score!==null).sort((e,t)=>t.score-e.score).map(e=>e.item)}function zt(e,t,n){let r=y([]),i=y(!1),a=y(``),o=y(0),s=``,c=0;async function l(){let e=n();if(!e)return;let t=Date.now();if(!(e===s&&t-c<5e3&&r.value.length>0)){s=e,c=t;try{let t=await fetch(`/api/git/files?path=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();r.value=Array.isArray(e.files)?e.files:[]}}catch{}}}function u(){let n=t();if(!n)return null;let r=n.selectionStart??e.value.length,i=e.value.slice(0,r).match(/(?:^|\s)@([\w./-]*)$/);return i?i[1]:null}async function d(){let e=u();e===null?i.value=!1:(await l(),a.value=e,i.value=!0,o.value=0)}function f(){i.value=!1}function m(n){let r=t();if(!r)return;let i=r.selectionStart??e.value.length,a=e.value.slice(0,i),o=e.value.slice(i),s=a.match(/(?:^|\s)@[\w./-]*$/);if(!s)return;let c=s[0].startsWith(`@`)?``:s[0][0],l=(s.index??i)+c.length;e.value=`${e.value.slice(0,l)}${n} ${o}`,f()}let h=C(()=>Rt(a.value,r.value).slice(0,50));return p(()=>h.value.length,e=>{if(e===0){o.value=0;return}o.value>=e&&(o.value=e-1)}),{showFiles:i,fileMatches:h,selectedFileIndex:o,detectMentionFragment:d,replaceFragmentWith:m,closeDropdown:f}}var Bt={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},Vt={class:`text-caption image-tag-label`},Ht={key:2,class:`chat-slash-popup chat-file-popup`},Ut={key:3,class:`queue-banner row items-center q-pa-xs q-px-sm text-caption text-amber-6`},Wt={key:4,class:`autoloop-banner row items-center no-wrap q-pa-xs q-px-sm text-caption text-indigo-3`},Gt={class:`col`},Kt={key:5,class:`awaiting-user-banner row items-center q-pa-xs q-px-sm text-caption text-amber-5`},qt={class:`row items-center q-gutter-sm`},Jt={class:`chat-hint row items-center text-caption text-grey-8`},Yt={key:0,class:`row items-center text-caption text-amber-6 q-mr-sm`},Xt=6e4,Zt=200,Qt=H(O({__name:`ChatInput`,props:{workspaceId:{}},setup(e){let t=e,{t:r}=R(),s=De(),f=z(),h=oe(),_=_e(),S=me(),D=y(``),O=y(!1),ee=C(()=>ye(f.selectedWorkspace?.status)),A=C(()=>Ae(f.selectedWorkspace?.engine));async function M(){if(t.workspaceId){O.value=!0;try{await f.interruptAgent(t.workspaceId),s.notify({type:`info`,message:r(`workspacePage.interrupted`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:r(`workspacePage.interruptFailed`);s.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{O.value=!1}}}let te=C(()=>ye(f.selectedWorkspace?.status)),N=C(()=>!!f.queuedMessages[t.workspaceId]),ne=y(null);function re(){let e=ne.value;return e?e.getNativeElement?.()??null:null}let{showSkills:P,skillFilter:ie,selectedSkillIndex:ae,groupedDropdown:se,flatDropdown:I,fetchSkills:ce,detectSlashFragment:de,replaceFragmentWith:fe,closeDropdown:pe}=ze(D,()=>re()),{showFiles:he,fileMatches:B,selectedFileIndex:ge,detectMentionFragment:ve,replaceFragmentWith:be,closeDropdown:we}=zt(D,()=>re(),()=>f.workspaces.find(e=>e.id===t.workspaceId)?.worktreePath??null);function Te(e){e&&(be(e),n(()=>re()?.focus()))}let H=y([]),Ee=y(null),G=y(!1),K=y(!1),q=y(!1),Oe=y(null),J=y(null),Y=y([]),ke=y(null),X=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function Me(e){let t=re(),r=t?.selectionStart??D.value.length,i=D.value.slice(0,r),a=D.value.slice(r);D.value=i+e+a,n(()=>{if(t){let n=r+e.length;t.focus(),t.setSelectionRange(n,n)}})}function Ne(){let e=`[image: ${r(`chatInput.uploading`)}]`,t=new Set(H.value.map(e=>e.placeholder));if(!t.has(e))return e;let n=2;for(;t.has(`[image: ${r(`chatInput.uploading`)} ${n}]`);)n++;return`[image: ${r(`chatInput.uploading`)} ${n}]`}async function Pe(e){if(!X.includes(e.type))return;let n=crypto.randomUUID(),r=e.name||`pasted-image.png`,i=Ne(),a={tempId:n,originalName:r,placeholder:i,status:`uploading`};H.value.push(a),Me(i);try{let r=new FormData;r.append(`image`,e);let i=await fetch(`/api/workspaces/${t.workspaceId}/images`,{method:`POST`,body:r});if(!i.ok){let e=await i.json();throw Error(e.error||`Upload failed`)}let a=await i.json(),o=H.value.find(e=>e.tempId===n);if(o){o.uid=a.uid,o.path=a.path,o.status=`ready`;let e=`[image: ${a.path}]`;e!==o.placeholder&&(D.value=D.value.split(o.placeholder).join(e),o.placeholder=e)}}catch{let e=H.value.find(e=>e.tempId===n);e&&(e.status=`error`)}}function Fe(e,t){fetch(`/api/workspaces/${e}/images/${t}`,{method:`DELETE`}).catch(()=>{})}function Ie(e){let n=H.value.find(t=>t.tempId===e);if(n){H.value=H.value.filter(t=>t.tempId!==e);{let e=n.placeholder.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);D.value=D.value.replace(RegExp(`${e}\\s?`,`g`),``)}n.uid&&Fe(t.workspaceId,n.uid)}}function Le(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&Pe(e)}}}function Ve(e){if(e.preventDefault(),G.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))X.includes(t.type)&&Pe(t)}function Ue(e){e.preventDefault(),G.value=!0}function We(){G.value=!1}function Ge(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))Pe(e);t.value=``}}let Ke=C(()=>H.value.some(e=>e.status===`uploading`)),qe=C(()=>f.sessions.find(e=>e.id===f.selectedSessionId)??null);ce(),p(()=>f.chatDraft,e=>{e&&(D.value=D.value?`${D.value}\n${e}`:e,f.chatDraft=``)});let Je=!1;function Ye(){Je=!0,f.cancelQueuedMessage(t.workspaceId)}p(N,(e,t)=>{t&&!e&&!Je&&(D.value=``),Je=!1}),p(()=>t.workspaceId,e=>{let t=f.queuedMessages[e];D.value=t?t.content:``,K.value&&$()}),p(D,async()=>{await n(),await de(),await ve();let e=[];for(let t of H.value)D.value.includes(t.placeholder)||e.push(t.tempId);for(let t of e)Ie(t)}),window.addEventListener(`keydown`,ut),window.addEventListener(`keyup`,dt),window.addEventListener(`blur`,ft),document.addEventListener(`visibilitychange`,pt),l(()=>{window.removeEventListener(`keydown`,ut),window.removeEventListener(`keyup`,dt),window.removeEventListener(`blur`,ft),document.removeEventListener(`visibilitychange`,pt),ke.value&&=(clearTimeout(ke.value),null),K.value&&$()});function Xe(e){if(!e)return;if(e.type===`template`){let n=S.templates.find(t=>t.slug===e.name);if(!n)return;let i=f.workspaces.find(e=>e.id===t.workspaceId)??null,a=f.gitStatsCache[t.workspaceId]??null,o=f.sessions.find(e=>e.id===f.selectedSessionId)??null,s=null;if(o)if(o.name)s=o.name;else{let e=f.sessions.findIndex(e=>e.id===o.id);s=r(`workspacePage.session`,{n:f.sessions.length-e})}let c;if(a?.prUrl){let e=a.prUrl.match(/\/pull\/(\d+)/);e&&(c=parseInt(e[1],10))}let l=He({workspace:i?{name:i.name,workingBranch:i.workingBranch,sourceBranch:i.sourceBranch,projectPath:i.projectPath}:null,gitStats:a?{commitCount:a.commitCount,unpushedCount:a.unpushedCount,filesChanged:a.filesChanged,insertions:a.insertions,deletions:a.deletions,prNumber:c,prUrl:a.prUrl,prState:a.prState}:null,sessionName:s});fe(Be(n.content,l)),pe();return}let n=`/${e.name}`;if(e.type===`kobo`&&je[n]){D.value=n,pe(),st();return}fe(`${n} `),pe()}let Ze=C(()=>{let e=t.workspaceId;if(!e)return!1;let n=f.autoLoopStates[e];return n?.auto_loop===!0&&n?.auto_loop_ready===!0}),Qe=C(()=>f.selectedWorkspace?.status===`awaiting-user`),$e=C(()=>!t.workspaceId||Ze.value||Qe.value),et=C(()=>h.global.voiceEnabled&&!$e.value),tt=y(!1);async function nt(){if(!(!t.workspaceId||tt.value)){tt.value=!0;try{await f.disableAutoLoop(t.workspaceId)}finally{tt.value=!1}}}let Z=y([]),Q=y(-1),rt=y(``);async function it(){let e=t.workspaceId;try{let n=await fetch(`/api/workspaces/${e}/chat-history`);if(!n.ok)throw Error(`HTTP ${n.status}`);let{history:r}=await n.json();if(e!==t.workspaceId)return;Z.value=Array.isArray(r)?r:[]}catch(n){if(e!==t.workspaceId)return;console.error(`[ChatInput] loadHistory failed:`,n),Z.value=[]}e===t.workspaceId&&(Q.value=-1)}async function at(e){if(!e||Z.value[0]===e)return;let n=t.workspaceId;Z.value.unshift(e),Z.value.length>Zt&&Z.value.pop();try{let t=await fetch(`/api/workspaces/${n}/chat-history`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e})});if(!t.ok&&t.status!==204)throw Error(`HTTP ${t.status}`)}catch(e){console.error(`[ChatInput] pushToHistory failed:`,e)}}function ot(){Q.value=-1,rt.value=``}localStorage.removeItem(`kobo:chatHistory`),c(it),p(()=>t.workspaceId,it);async function st(){let e=D.value.trim();if(!e&&H.value.length===0||$e.value||Ke.value)return;let n=qe.value,i=je[e];if(i){_.sendChatMessage(t.workspaceId,i.prompt,f.selectedSessionId??void 0),f.markRead(t.workspaceId),f.addActivityItem(t.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:i.prompt,timestamp:new Date().toISOString(),sessionId:f.selectedSessionId??void 0,meta:{sender:`user`,pending:!0}}),at(e),ot(),D.value=``;return}if(te.value){f.queueMessage(t.workspaceId,e,f.selectedSessionId??void 0);return}f.cancelQueuedMessage(t.workspaceId);let a=e,o=H.value.filter(e=>e.status===`ready`&&e.path&&!a.includes(`[image: ${e.path}]`)).map(e=>`[image: ${e.path}]`).join(` `);o&&(a=`${a} ${o}`.trim());let c=f.selectedSessionId??void 0;if((n?.status===`completed`||n?.status===`error`)&&!n.engineSessionId){s.notify({type:`warning`,message:r(`workspacePage.sessionEndedNotice`),position:`top`,timeout:5e3});return}let l=`user-${Date.now()}`;f.markRead(t.workspaceId),f.addActivityItem(t.workspaceId,{id:l,type:`text`,content:a,timestamp:new Date().toISOString(),sessionId:c,meta:{sender:`user`,pending:!0}});let u=e;at(e),ot(),D.value=``,H.value=[];let d=(e,n)=>{console.error(`[ChatInput] ${n} failed:`,e),f.removeActivityItem(t.workspaceId,l),D.value=u;let i=e instanceof Error?e.message:null;s.notify({type:`negative`,message:i??r(`workspacePage.startFailed`),position:`top`,timeout:6e3})};if(n?.status===`idle`)try{await f.startWorkspace(t.workspaceId,a,n.id),await f.fetchSessions(t.workspaceId)}catch(e){d(e,`startWorkspace`)}else if(n?.status===`completed`||n?.status===`error`)try{await f.startWorkspace(t.workspaceId,a,n.id,!0),await f.fetchSessions(t.workspaceId)}catch(e){d(e,`resume session`)}else _.sendChatMessage(t.workspaceId,a,f.selectedSessionId??void 0)}async function ct(){if(!(!et.value||K.value||q.value)){if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`){s.notify({type:`warning`,message:r(`voice.notSupported`),position:`top`,timeout:4e3});return}try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});J.value=e,Y.value=[];let t=MediaRecorder.isTypeSupported(`audio/webm`)?`audio/webm`:``,n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e);n.ondataavailable=e=>{e.data&&e.data.size>0&&Y.value.push(e.data)},n.start(),Oe.value=n,K.value=!0,ke.value=setTimeout(()=>{$(),s.notify({type:`info`,message:r(`voice.maxDurationReached`),position:`top`,timeout:3500})},Xt)}catch{s.notify({type:`negative`,message:r(`voice.errorMicPermission`),position:`top`,timeout:5e3})}}}async function $(){if(!K.value)return;let e=Oe.value;if(!e)return;K.value=!1,q.value=!0,ke.value&&=(clearTimeout(ke.value),null);let n=await new Promise(t=>{e.onstop=()=>t(new Blob(Y.value,{type:`audio/webm`})),e.stop()});try{if(n.size===0)throw Error(`MIC_AUDIO_INVALID`);let e=new FormData;e.append(`audio`,n,`voice.webm`),e.append(`language`,h.global.voiceLanguage||`auto`);let r=await fetch(`/api/voice/workspaces/${encodeURIComponent(t.workspaceId)}/transcribe`,{method:`POST`,body:e});if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(String(e.code??e.error??`HTTP_${r.status}`))}let i=await r.json();i.text?.trim()&&(D.value=D.value?`${D.value.trimEnd()} ${i.text.trim()}`:i.text.trim())}catch(e){let t=e instanceof Error?e.message:`TRANSCRIPTION_FAILED`;s.notify({type:`negative`,message:r({VOICE_DISABLED:`voice.errorDisabled`,MODEL_NOT_CONFIGURED:`voice.errorModelMissing`,MODEL_NOT_INSTALLED:`voice.errorModelNotInstalled`,VOICE_RUNTIME_MISSING:`voice.errorRuntimeMissing`,MIC_AUDIO_INVALID:`voice.errorAudioInvalid`,LANGUAGE_INVALID:`voice.errorLanguageInvalid`,TRANSCRIPTION_TIMEOUT:`voice.errorTranscription`}[t]??`voice.errorTranscription`),position:`top`,timeout:5e3})}finally{Oe.value=null,Y.value=[],J.value?.getTracks().forEach(e=>{e.stop()}),J.value=null,q.value=!1}}function lt(e){return et.value?h.global.voicePttKey===`ctrl+space`?e.ctrlKey&&e.code===`Space`:e.key===`Alt`:!1}function ut(e){!lt(e)||e.repeat||(e.preventDefault(),ct())}function dt(e){lt(e)&&(e.preventDefault(),$())}function ft(){K.value&&$()}function pt(){document.visibilityState!==`visible`&&K.value&&$()}function mt(e){if(he.value&&B.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),ge.value=Math.min(ge.value+1,B.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),ge.value=Math.max(ge.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Te(B.value[ge.value]);return}if(e.key===`Escape`){e.preventDefault(),we();return}}if(P.value&&I.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),ae.value=Math.min(ae.value+1,I.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),ae.value=Math.max(ae.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Xe(I.value[ae.value]);return}if(e.key===`Escape`){e.preventDefault(),pe();return}}if(e.key===`ArrowUp`&&Z.value.length>0){let t=e.target;if(!(!t||t.selectionStart<=(D.value.indexOf(`
3
- `)===-1?D.value.length:D.value.indexOf(`
4
- `)))&&Q.value===-1)return;e.preventDefault(),Q.value===-1&&(rt.value=D.value),Q.value<Z.value.length-1&&(Q.value++,D.value=Z.value[Q.value]);return}if(e.key===`ArrowDown`&&Q.value>=0){e.preventDefault(),Q.value--,D.value=Q.value>=0?Z.value[Q.value]:rt.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),st())}return(e,t)=>(a(),w(`div`,{class:k([`chat-input-container column q-pa-sm`,{"chat-input-dragging":G.value}]),onDragover:Ue,onDragleave:We,onDrop:Ve},[H.value.length>0?(a(),w(`div`,Bt,[(a(!0),w(T,null,u(H.value,t=>(a(),w(`div`,{key:t.tempId,class:k([`image-tag row items-center q-px-sm q-py-xs rounded-borders`,{"image-tag--uploading":t.status===`uploading`,"image-tag--ready":t.status===`ready`,"image-tag--error":t.status===`error`}])},[t.status===`uploading`?(a(),v(xe,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):t.status===`ready`?(a(),v(F,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(a(),v(F,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),E(`span`,Vt,d(t.status===`uploading`?e.$t(`chatInput.uploading`):t.path||t.originalName),1),m(L,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:e=>Ie(t.tempId)},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`tooltip.removeImage`)),1)]),_:1})]),_:1},8,[`onClick`])],2))),128))])):b(``,!0),g(P)&&g(I).length>0?(a(),v(Re,{key:1,class:`chat-slash-popup`,"grouped-dropdown":g(se),"flat-dropdown":g(I),"selected-index":g(ae),onSelect:Xe},null,8,[`grouped-dropdown`,`flat-dropdown`,`selected-index`])):b(``,!0),g(he)&&g(B).length>0?(a(),w(`div`,Ht,[m(W,{dark:``,dense:``},{default:i(()=>[(a(!0),w(T,null,u(g(B),(e,t)=>o((a(),v(Se,{key:e,clickable:``,active:t===g(ge),"active-class":`chat-file-item--active`,onClick:t=>Te(e)},{default:i(()=>[m(Ce,{avatar:``},{default:i(()=>[m(F,{name:`insert_drive_file`,size:`xs`,color:`grey-6`})]),_:1}),m(Ce,{class:`chat-file-path`},{default:i(()=>[x(d(e),1)]),_:2},1024)]),_:2},1032,[`active`,`onClick`])),[[le]])),128))]),_:1})])):b(``,!0),N.value?(a(),w(`div`,Ut,[m(F,{name:`schedule`,size:`14px`,color:`amber-6`,class:`q-mr-sm`}),E(`span`,null,d(e.$t(`chatInput.queueBanner`)),1)])):b(``,!0),Ze.value?(a(),w(`div`,Wt,[m(F,{name:`all_inclusive`,size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),E(`span`,Gt,d(e.$t(`chatInput.autoLoopBanner`)),1),m(L,{flat:``,dense:``,"no-caps":``,size:`sm`,icon:`stop_circle`,color:`orange-4`,label:e.$t(`chatInput.autoLoopStop`),loading:tt.value,disable:tt.value,onClick:nt},null,8,[`label`,`loading`,`disable`])])):b(``,!0),Qe.value&&!Ze.value?(a(),w(`div`,Kt,[m(F,{name:`question_answer`,size:`14px`,color:`amber-5`,class:`q-mr-sm`}),E(`span`,null,d(e.$t(`chatInput.awaitingUserBanner`)),1)])):b(``,!0),E(`div`,qt,[m(ue,{ref_key:`chatInputRef`,ref:ne,modelValue:D.value,"onUpdate:modelValue":t[0]||=e=>D.value=e,dense:``,dark:``,borderless:``,autogrow:``,readonly:N.value,placeholder:e.$t(`chatInput.placeholder`),"input-style":{maxHeight:`200px`,overflowY:`auto`},class:`chat-input col rounded-borders`,disable:$e.value,onKeydown:mt,onPaste:Le},null,8,[`modelValue`,`readonly`,`placeholder`,`disable`]),E(`input`,{ref_key:`fileInputRef`,ref:Ee,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:Ge},null,544),m(L,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:$e.value,onClick:t[1]||=e=>Ee.value?.click()},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`chatInput.attachImage`)),1)]),_:1})]),_:1},8,[`disable`]),m(L,{flat:``,dense:``,icon:q.value?`hourglass_top`:K.value?`mic`:`mic_none`,color:K.value?`red-5`:q.value?`amber-6`:`grey-6`,disable:!et.value||q.value,class:k({"voice-btn--recording":K.value}),onMousedown:j(ct,[`prevent`]),onMouseup:j($,[`prevent`]),onMouseleave:j($,[`prevent`]),onTouchstart:j(ct,[`prevent`]),onTouchend:j($,[`prevent`])},{default:i(()=>[m(V,null,{default:i(()=>[x(d(q.value?e.$t(`voice.transcribing`):K.value?e.$t(`voice.recording`):e.$t(`voice.holdToTalk`)),1)]),_:1})]),_:1},8,[`icon`,`color`,`disable`,`class`]),N.value?(a(),v(L,{key:0,flat:``,dense:``,icon:`cancel`,color:`orange`,onClick:Ye},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`chatInput.cancelQueue`)),1)]),_:1})]),_:1})):(a(),v(L,{key:1,flat:``,dense:``,icon:`send`,color:`primary`,disable:$e.value||!D.value.trim()&&H.value.length===0||Ke.value,onClick:st},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`tooltip.sendMessage`)),1)]),_:1})]),_:1},8,[`disable`]))]),E(`div`,Jt,[E(`div`,null,[t[2]||=E(`kbd`,null,`Enter`,-1),x(` `+d(e.$t(`common.send`))+` `,1),t[3]||=E(`span`,{class:`q-mx-xs`},`·`,-1),t[4]||=x(),t[5]||=E(`kbd`,null,`Shift+Enter`,-1),x(` `+d(e.$t(`common.newLine`))+` `,1),t[6]||=E(`span`,{class:`q-mx-xs`},`·`,-1),t[7]||=x(),t[8]||=E(`kbd`,null,`↑↓`,-1),x(` `+d(e.$t(`common.history`))+` `,1),t[9]||=E(`span`,{class:`q-mx-xs`},`·`,-1),t[10]||=x(),t[11]||=E(`kbd`,null,`@`,-1),x(` `+d(e.$t(`chatInput.fileSearchHint`)),1)]),m(U),q.value?(a(),w(`div`,Yt,[m(xe,{size:`14px`,color:`amber-6`,class:`q-mr-xs`}),E(`span`,null,d(e.$t(`voice.transcribing`)),1)])):b(``,!0),A.value?(a(),v(It,{key:1,class:`q-mr-md`})):b(``,!0),ee.value?(a(),v(L,{key:2,flat:``,dense:``,"no-caps":``,size:`sm`,color:`orange-4`,icon:`pause`,label:e.$t(`workspacePage.interrupt`),loading:O.value,disable:O.value,onClick:M},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`workspacePage.interruptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):b(``,!0)])],34))}}),[[`__scopeId`,`data-v-3b5f775d`]]),$t={key:0,class:`permission-request-panel q-pa-sm bg-dark text-grey-3`},en={class:`row items-center q-mb-sm`},tn={class:`text-caption text-uppercase text-weight-bold text-amber-4`,style:{"letter-spacing":`0.05em`}},nn={class:`text-body2 text-grey-2 q-mb-xs`},rn={class:`text-weight-medium`},an={class:`q-ml-xs`},on={class:`text-caption text-grey-6 q-mb-xs`},sn={class:`permission-input-pre`},cn={class:`row items-center q-gutter-sm q-mt-sm`},ln={key:0,class:`text-negative text-caption`},un=H(O({__name:`PermissionRequestPanel`,props:{workspaceId:{}},setup(e){let t=e,{t:n}=R(),r=z(),i=C(()=>{let e=r.peekPending(t.workspaceId);if(!(!e||e.kind!==`permission`))return e}),o=C(()=>{if(!i.value)return``;try{return JSON.stringify(i.value.toolInput,null,2)}catch{return String(i.value.toolInput)}}),s=y(!1),c=y(null);p(()=>i.value?.toolCallId??null,()=>{s.value=!1,c.value=null});async function l(e){if(i.value&&!s.value){s.value=!0,c.value=null;try{await r.submitDeferredPermission(t.workspaceId,i.value.toolCallId,e,e===`deny`?n(`permissionRequest.denied`):void 0)}catch(e){c.value=e instanceof Error?e.message:String(e)}finally{s.value=!1}}}return(e,t)=>i.value?(a(),w(`div`,$t,[E(`div`,en,[m(F,{name:`security`,size:`16px`,color:`amber-4`,class:`q-mr-sm`}),E(`div`,tn,d(g(n)(`permissionRequest.title`)),1)]),E(`div`,nn,[E(`span`,rn,d(g(n)(`permissionRequest.tool`))+`:`,1),E(`code`,an,d(i.value.toolName),1)]),E(`div`,on,d(g(n)(`permissionRequest.input`)),1),E(`pre`,sn,d(o.value),1),E(`div`,cn,[m(L,{label:g(n)(`permissionRequest.allow`),color:`indigo-5`,dense:``,unelevated:``,loading:s.value,disable:s.value,onClick:t[0]||=e=>l(`allow`)},null,8,[`label`,`loading`,`disable`]),m(L,{label:g(n)(`permissionRequest.deny`),flat:``,dense:``,color:`grey-4`,disable:s.value,onClick:t[1]||=e=>l(`deny`)},null,8,[`label`,`disable`]),m(U),c.value?(a(),w(`span`,ln,d(c.value),1)):b(``,!0)])])):b(``,!0)}}),[[`__scopeId`,`data-v-12227c33`]]),dn={key:0,class:`quota-backoff-banner row items-center q-px-md q-py-sm`,style:{"background-color":`#b87333`,color:`#f0f0f0`}},fn={class:`text-body2`},pn=O({__name:`QuotaBackoffBanner`,props:{workspaceId:{}},setup(e){let t=e,{t:n}=R(),r=De(),o=z(),s=y(!1),c=C(()=>o.pendingQuotaBackoffs[t.workspaceId]),l=C(()=>o.workspaces.find(e=>e.id===t.workspaceId)),u=C(()=>o.autoLoopStates[t.workspaceId]),f=C(()=>l.value?.status===`quota`&&u.value?.auto_loop===!0&&c.value!==void 0),p=C(()=>{let e=c.value?.targetAt;return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):``}),h=C(()=>{let e=c.value?.resetsAt;return e?new Date(e).toLocaleString():``});async function _(){if(!s.value){s.value=!0;try{await o.cancelQuotaBackoff(t.workspaceId),r.notify({type:`info`,message:n(`quotaBackoff.cancelled`),position:`top`,timeout:4e3})}catch(e){r.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}finally{s.value=!1}}}return(e,t)=>f.value?(a(),w(`div`,dn,[m(F,{name:`hourglass_top`,size:`18px`,class:`q-mr-sm`}),E(`span`,fn,d(g(n)(`quotaBackoff.banner.title`,{time:p.value})),1),c.value?.resetsAt?(a(),v(V,{key:0},{default:i(()=>[x(d(g(n)(`quotaBackoff.banner.tooltip`,{resets_at:h.value})),1)]),_:1})):b(``,!0),m(U),m(L,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-3`,label:g(n)(`quotaBackoff.banner.cancel`),loading:s.value,onClick:_},null,8,[`label`,`loading`])])):b(``,!0)}}),mn={class:`text-subtitle2`},hn={class:`text-caption`},gn=O({__name:`StaleSessionBanner`,props:{workspaceId:{}},setup(e){let t=e,n=z(),r=C(()=>{if(!n.selectedSessionId||n.sessions.length<2)return!1;let e=n.sessions[0];if(!e||e.id===n.selectedSessionId)return!1;let r=n.workspaces.find(e=>e.id===t.workspaceId);return!r||!ye(r.status)?!1:n.autoLoopStates[t.workspaceId]?.auto_loop===!0});function o(){let e=n.sessions[0];e&&n.selectSession(e.id)}return(e,t)=>r.value?(a(),v(Ue,{key:0,class:`bg-indigo-9 text-white q-ma-sm`,rounded:``},{avatar:i(()=>[m(F,{name:`loop`})]),action:i(()=>[m(L,{flat:``,dense:``,"no-caps":``,label:e.$t(`staleSessionBanner.switchToCurrent`),onClick:o},null,8,[`label`])]),default:i(()=>[E(`div`,mn,d(e.$t(`staleSessionBanner.title`)),1),E(`div`,hn,d(e.$t(`staleSessionBanner.message`)),1)]),_:1})):b(``,!0)}}),_n={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},vn=O({__name:`WakeupBanner`,setup(t){let{t:n}=R(),r=z(),o=y(Date.now()),s=null;c(()=>{s=setInterval(()=>{o.value=Date.now()},1e3)}),e(()=>{s&&clearInterval(s)});let l=C(()=>{let e=r.selectedWorkspace;return e?r.pendingWakeups[e.id]??null:null}),u=C(()=>r.selectedWorkspace?!!l.value:!1),f=C(()=>{if(!l.value)return 0;let e=Math.ceil((new Date(l.value.targetAt).getTime()-o.value)/1e3);return Math.max(0,e)}),p=C(()=>f.value===0?n(`wakeup.firing`):n(`wakeup.scheduledIn`,{n:f.value}));function h(){let e=r.selectedWorkspace;e&&r.cancelPendingWakeup(e.id)}return(e,t)=>u.value?(a(),w(`div`,_n,[m(F,{name:`schedule`,size:`14px`,color:`amber-4`,class:`q-mr-sm`}),E(`span`,null,[x(d(p.value)+` `,1),l.value?.reason?(a(),v(V,{key:0,anchor:`top middle`,self:`bottom middle`,offset:[0,6]},{default:i(()=>[x(d(g(n)(`wakeup.reason`,{reason:l.value.reason})),1)]),_:1})):b(``,!0)]),m(U),m(L,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-5`,"aria-label":g(n)(`wakeup.cancel`),onClick:h},{default:i(()=>[m(V,null,{default:i(()=>[x(d(g(n)(`wakeup.cancel`)),1)]),_:1})]),_:1},8,[`aria-label`])])):b(``,!0)}}),yn={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},bn={class:`text-body1 text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`480px`}},xn={class:`row items-center no-wrap text-caption text-grey-5`},Sn={class:`row items-center no-wrap text-caption text-grey-5`},Cn={class:`row items-center no-wrap text-caption text-grey-5`},wn={key:1,class:`text-body2 text-grey-8`},Tn={key:0,class:`wp-subheader column q-px-md q-pb-sm`},En=[`title`],Dn={class:`col column items-center justify-center`},On={class:`text-grey-6 text-caption q-mt-sm`},kn={class:`text-subtitle1`},An=H(O({__name:`WorkspacePage`,setup(e){let t=D(()=>Promise.all([ge(()=>import(`./ActivityFeed-CDhLuhI3.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),n=De(),s=z(),{t:l}=R(),{timeAgo:u}=Me();function f(e){return e===`awaiting-user`?l(`workspaceStatus.awaitingUser`):e}y(!1);let _=y(!1),S=new Set,O=y(``);p(()=>s.selectedWorkspace?.description??``,e=>{O.value=e},{immediate:!0});async function A(){if(!s.selectedWorkspace)return;let e=O.value.trim();if(e!==(s.selectedWorkspace.description??``)){if(e.length>200){n.notify({type:`negative`,message:l(`workspace.descriptionTooLong`),position:`top`});return}try{await s.updateWorkspaceDescription(s.selectedWorkspace.id,e.length>0?e:null)}catch(e){let t=e instanceof Error?e.message:l(`workspace.descriptionSaveFailed`);n.notify({type:`negative`,message:t,position:`top`})}}}let M=y(new Set),te=C(()=>ye(s.selectedWorkspace?.status));p(te,e=>{e||(M.value=new Set)}),p(()=>s.selectedWorkspaceId,e=>{M.value=new Set,e&&s.fetchPendingWakeup(e)},{immediate:!0});function N(e){if(!te.value)return;let t=new Set(M.value);t.add(e),M.value=t}function ne(e){S.add(e),e.finally(()=>{S.delete(e)})}y(!1);async function re(){if(s.selectedWorkspaceId){_.value=!0;try{await s.stopWorkspace(s.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:l(`workspacePage.stopFailed`);n.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{_.value=!1}}}let P=C(()=>s.selectedWorkspace?.engine??`claude-code`),ie=C(()=>(Pe[P.value]??Fe).map(e=>({label:l(e.i18nLabelKey),value:e.value}))),oe=C(()=>(Ve[P.value]??Ve[`claude-code`]).map(e=>({label:de(l(e.i18nLabelKey)),value:e.value}))),I=C(()=>{let e=s.selectedWorkspace,t=e?s.autoLoopStates[e.id]?.auto_loop??e.autoLoop:!1;return(Ie[P.value]??Ie[`claude-code`]).map(e=>({label:l(`agentPermissionMode.${e}`),value:e,disable:e===`plan`&&t}))}),ce=C({get:()=>s.selectedWorkspace?.model??`auto`,set:e=>{s.selectedWorkspaceId&&(N(`model`),ne(s.updateModel(s.selectedWorkspaceId,e)))}}),le=C({get:()=>s.selectedWorkspace?.reasoningEffort??`auto`,set:e=>{s.selectedWorkspaceId&&(N(`reasoningEffort`),ne(s.updateReasoningEffort(s.selectedWorkspaceId,e)))}});function de(e){let t=e.indexOf(`:`);return t>=0?e.slice(t+1).trim():e}function me(e){return oe.value.find(t=>t.value===e)?.label??e}let B=C({get:()=>s.selectedWorkspace?.agentPermissionMode??`bypass`,set:e=>{s.selectedWorkspaceId&&(N(`agentPermissionMode`),ne(s.updateAgentPermissionMode(s.selectedWorkspaceId,e)))}}),_e=ve(),Te=he(),H=C(()=>s.selectedWorkspaceId),W=C(()=>s.selectedWorkspace),G=C(()=>s.sessions),q=C({get:()=>s.selectedSessionId,set:e=>{if(e===`__new__`){ze();return}if(!e)return;s.selectSession(e);let t={..._e.query};t.session=e,Te.replace({query:t})}}),Oe=C(()=>[...s.sessions.map((e,t)=>({label:e.name??l(`workspacePage.session`,{n:s.sessions.length-t}),value:e.id,caption:u(e.startedAt),isSession:!0})),{label:l(`workspacePage.newSession`),value:`__new__`,caption:``,isSession:!1}]),J=y(!1),Y=y(null),X=y(``),Ae=y(!1);function je(e,t){let n=s.sessions.find(t=>t.id===e);n&&(Y.value={id:e},X.value=n.name??t,J.value=!0)}async function Re(){if(!(!Y.value||!s.selectedWorkspaceId))try{await s.renameSession(s.selectedWorkspaceId,Y.value.id,X.value.trim())}catch(e){console.error(`[WorkspacePage] renameSession failed:`,e),n.notify({type:`negative`,message:l(`workspacePage.renameFailed`),position:`top`})}finally{J.value=!1}}async function ze(){if(s.selectedWorkspaceId){Ae.value=!0;try{await s.createSession(s.selectedWorkspaceId)}catch(e){console.error(`[WorkspacePage] createSession failed:`,e);let t=e instanceof Error?e.message:null;n.notify({type:`negative`,message:t??l(`workspacePage.createSessionFailed`),position:`top`,timeout:6e3})}finally{Ae.value=!1}}}return c(()=>{let e=_e.params.id;e&&(s.selectWorkspace(e),s.fetchPendingWakeup(e));let t=_e.query.session;t&&s.selectSession(t)}),p(()=>_e.params.id,e=>{e&&e!==s.selectedWorkspaceId&&s.selectWorkspace(e)}),p(()=>s.selectedWorkspaceId,e=>{e===null&&_e.params.id&&Te.push({name:`workspace`})}),(e,n)=>(a(),v(Le,{class:`column no-wrap`,style:{height:`100vh`}},{default:i(()=>[E(`div`,yn,[W.value?(a(),w(T,{key:0},[E(`span`,bn,[x(d(W.value.name)+` `,1),m(V,null,{default:i(()=>[x(d(W.value.name),1)]),_:1})]),m(Ee,{label:f(W.value.status),color:[`error`,`quota`].includes(W.value.status)?`red-9`:W.value.status===`awaiting-user`?`amber-9`:g(ye)(W.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),m(ke),G.value.length>0?(a(),v(Ne,{key:0,modelValue:q.value,"onUpdate:modelValue":n[0]||=e=>q.value=e,options:Oe.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,loading:Ae.value,disable:Ae.value,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},{option:i(e=>[e.opt.isSession?b(``,!0):(a(),v(ae,{key:0,spaced:``})),m(Se,r(e.itemProps,{clickable:``,dense:``,class:`row items-center no-wrap`}),{default:i(()=>[m(Ce,null,{default:i(()=>[m(we,{class:k(e.opt.isSession?``:`text-grey-5`)},{default:i(()=>[x(d(e.opt.label),1)]),_:2},1032,[`class`]),e.opt.caption?(a(),v(we,{key:0,caption:``},{default:i(()=>[x(d(e.opt.caption),1)]),_:2},1024)):b(``,!0)]),_:2},1024),e.opt.isSession?(a(),v(Ce,{key:0,side:``},{default:i(()=>[m(L,{icon:`more_vert`,flat:``,dense:``,round:``,size:`xs`,color:`grey-6`,onClick:j(t=>je(e.opt.value,e.opt.label),[`stop`])},null,8,[`onClick`])]),_:2},1024)):b(``,!0)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`loading`,`disable`])):b(``,!0),m(U),m(Ne,{modelValue:B.value,"onUpdate:modelValue":n[1]||=e=>B.value=e,options:I.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-xs`,style:{"min-width":`80px`,"max-width":`140px`,"font-size":`11px`}},{selected:i(()=>[E(`span`,xn,[m(F,{name:B.value===`plan`?`visibility`:B.value===`strict`?`lock`:B.value===`interactive`?`security`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),x(` `+d(I.value.find(e=>e.value===B.value)?.label??B.value)+` `,1),M.value.has(`agentPermissionMode`)?(a(),v(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):b(``,!0)])]),_:1},8,[`modelValue`,`options`]),m(Ne,{modelValue:ce.value,"onUpdate:modelValue":n[2]||=e=>ce.value=e,options:ie.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm model-select`,style:{"min-width":`100px`,"max-width":`160px`,"font-size":`11px`}},{selected:i(()=>[E(`span`,Sn,[m(F,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),x(` `+d(ie.value.find(e=>e.value===ce.value)?.label??ce.value)+` `,1),M.value.has(`model`)?(a(),v(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):b(``,!0)])]),_:1},8,[`modelValue`,`options`]),m(Ne,{modelValue:le.value,"onUpdate:modelValue":n[3]||=e=>le.value=e,options:oe.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm`,style:{"min-width":`90px`,"max-width":`140px`,"font-size":`11px`}},{selected:i(()=>[E(`span`,Cn,[m(F,{name:`psychology`,size:`12px`,color:`amber-6`,class:`q-mr-xs`}),x(` `+d(me(le.value))+` `,1),M.value.has(`reasoningEffort`)?(a(),v(F,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:i(()=>[m(V,null,{default:i(()=>[x(d(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):b(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(ye)(W.value.status)?(a(),v(L,{key:1,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:e.$t(`common.stop`),class:`q-mr-xs`,loading:_.value,disable:_.value,onClick:re},null,8,[`label`,`loading`,`disable`])):b(``,!0)],64)):(a(),w(`span`,wn,d(e.$t(`workspacePage.selectWorkspace`)),1))]),W.value?(a(),w(`div`,Tn,[m(ue,{modelValue:O.value,"onUpdate:modelValue":n[4]||=e=>O.value=e,dense:``,dark:``,borderless:``,placeholder:g(l)(`workspace.descriptionPlaceholder`),maxlength:200,"input-class":`text-caption text-grey-5`,class:`workspace-description-input`,style:{width:`100%`,"max-width":`960px`},onBlur:A,onKeydown:ee(j(A,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),W.value?.agentDescription?(a(),w(`div`,{key:0,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-style":`italic`,"max-width":`960px`},title:g(l)(`workspace.agentDescriptionTooltip`)},d(W.value.agentDescription),9,En)):b(``,!0)])):b(``,!0),m(ae,{dark:``}),H.value?(a(),v(Ye,{key:1,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),H.value?(a(),v(gn,{key:2,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),H.value?(a(),v(pn,{key:3,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),H.value?(a(),v(h,{key:4},{fallback:i(()=>[E(`div`,Dn,[m(xe,{size:`40px`,color:`indigo-4`}),E(`div`,On,d(e.$t(`common.loading`)),1)])]),default:i(()=>[m(g(t),{class:`col`,style:{"min-height":`0`},"workspace-id":H.value},null,8,[`workspace-id`])]),_:1})):b(``,!0),m(Ke),m(vn),H.value?(a(),v(_t,{key:5,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),H.value?(a(),v(un,{key:6,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),H.value?(a(),v(Qt,{key:7,"workspace-id":H.value},null,8,[`workspace-id`])):b(``,!0),m(fe,{modelValue:J.value,"onUpdate:modelValue":n[6]||=e=>J.value=e,persistent:``},{default:i(()=>[m(pe,{dark:``,style:{"min-width":`320px`}},{default:i(()=>[m(be,null,{default:i(()=>[E(`div`,kn,d(g(l)(`workspacePage.renameSessionTitle`)),1)]),_:1}),m(be,null,{default:i(()=>[m(ue,{modelValue:X.value,"onUpdate:modelValue":n[5]||=e=>X.value=e,label:g(l)(`workspacePage.sessionNameLabel`),dark:``,dense:``,autofocus:``,onKeyup:ee(Re,[`enter`])},null,8,[`modelValue`,`label`])]),_:1}),m(se,{align:`right`},{default:i(()=>[o(m(L,{flat:``,label:g(l)(`common.cancel`)},null,8,[`label`]),[[K]]),m(L,{flat:``,color:`primary`,label:g(l)(`workspacePage.renameSession`),disable:!X.value.trim(),onClick:Re},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-953138be`]]);export{An as default};
@@ -1 +0,0 @@
1
- .ask-user-question-panel[data-v-ab068179]{border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14;max-height:38vh;overflow-y:auto}.aukq-stepper[data-v-ab068179] .q-stepper__header{min-height:56px}.aukq-stepper[data-v-ab068179] .q-stepper__tab{padding:8px 12px}.aukq-stepper[data-v-ab068179] .q-stepper__title{white-space:nowrap;font-size:12px}.aukq-stepper[data-v-ab068179] .q-stepper__caption{display:none}.aukq-stepper[data-v-ab068179] .q-stepper__step-inner{padding:12px}.aukq-stepper[data-v-ab068179] .q-stepper__nav{padding-top:8px}.aukq-options[data-v-ab068179]{margin-bottom:4px}.quota-footer[data-v-2edf9322]{white-space:nowrap;cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.quota-bucket-compact[data-v-2edf9322]{align-items:center;gap:.3rem;display:inline-flex}.bucket-pct[data-v-2edf9322]{font-variant-numeric:tabular-nums}.quota-bar[data-v-2edf9322]{border-radius:3px;width:32px;height:5px}.full-bar[data-v-2edf9322]{border-radius:3px;height:6px}.quota-menu[data-v-2edf9322]{min-width:240px}.chat-input-container[data-v-3b5f775d]{background-color:#16162a;border-top:1px solid #2a2a4a;min-height:48px;position:relative}.chat-input-container.chat-input-dragging[data-v-3b5f775d]{outline-offset:-2px;outline:2px dashed #6c63ff}.chat-input[data-v-3b5f775d]{background-color:#224;padding:4px 12px}.chat-input[data-v-3b5f775d] .q-field__control{min-height:32px}.chat-input[data-v-3b5f775d] textarea,.chat-input[data-v-3b5f775d] input{color:#ccc;font-size:13px}.chat-slash-popup[data-v-3b5f775d]{z-index:9999;position:absolute;bottom:calc(100% + 4px);left:8px;right:48px}.chat-file-popup[data-v-3b5f775d]{background-color:#1e1e3a;border:1px solid #ffffff1a;border-radius:6px;max-height:300px;overflow-y:auto}.chat-file-popup .chat-file-path[data-v-3b5f775d]{word-break:break-all;font-family:Roboto Mono,monospace;font-size:12px}.chat-file-popup .chat-file-item--active[data-v-3b5f775d]{background-color:#6c63ff26}.image-tag[data-v-3b5f775d]{font-family:Roboto Mono,monospace;font-size:12px;line-height:1}.image-tag--uploading[data-v-3b5f775d]{color:#88a;background-color:#2a2a4a;border:1px solid #3a3a5a}.image-tag--ready[data-v-3b5f775d]{color:#6aaa6a;background-color:#1a2a1a;border:1px solid #2a4a2a}.image-tag--error[data-v-3b5f775d]{color:#aa6a6a;background-color:#2a1a1a;border:1px solid #4a2a2a}.image-tag-label[data-v-3b5f775d]{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.chat-hint[data-v-3b5f775d]{text-align:left;padding:2px 4px 0;font-size:10px}.chat-hint kbd[data-v-3b5f775d]{background-color:#2a2a4a;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px}.queue-banner[data-v-3b5f775d]{background-color:#2a2a1a;border-bottom:1px solid #4a4a2a}.autoloop-banner[data-v-3b5f775d]{background-color:#1e1e36;border-top:1px solid #6c63ff66;border-bottom:1px solid #6c63ff66}.voice-btn--recording[data-v-3b5f775d]{animation:1.1s ease-in-out infinite voice-pulse-3b5f775d}@keyframes voice-pulse-3b5f775d{0%{opacity:1;transform:scale(1)}50%{opacity:.86;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.image-tag-close[data-v-3b5f775d]{color:#a44;opacity:.7}.image-tag-close[data-v-3b5f775d]:hover{opacity:1}.permission-request-panel[data-v-12227c33]{border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14}.permission-input-pre[data-v-12227c33]{white-space:pre-wrap;word-break:break-word;background:#00000059;border-radius:4px;max-height:30vh;margin:0;padding:.5em .75em;font-size:12px;overflow-y:auto}.wp-header[data-v-953138be]{background-color:#16162a;border-bottom:1px solid #2a2a4a;min-height:48px}
@@ -1 +0,0 @@
1
- import{a as e,h as t}from"./index-DMUFfCIq.js";var n=e(({app:e})=>{e.use(t)});export{n as default};