@loicngr/kobo 1.7.20 → 1.7.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/server/db/migrations.js +20 -0
- package/dist/server/db/schema.js +2 -0
- package/dist/server/index.js +9 -10
- package/dist/server/routes/workspaces.js +36 -3
- package/dist/server/services/pr-watcher-service.js +55 -34
- package/dist/server/services/workspace-service.js +12 -0
- package/package.json +1 -1
- package/src/client/dist/spa/assets/{ActivityFeed-2fNiIJ00.js → ActivityFeed-Ls7gPKuZ.js} +1 -1
- package/src/client/dist/spa/assets/{ChangelogPage-CBipQODd.js → ChangelogPage-CSRgAStv.js} +1 -1
- package/src/client/dist/spa/assets/{CreatePage-9Du6-wrL.js → CreatePage-BBXfUL4a.js} +1 -1
- package/src/client/dist/spa/assets/{DiffViewer-CQFYhg4u.js → DiffViewer-DRxZ_K8m.js} +3 -3
- package/src/client/dist/spa/assets/{HealthPage-pTssR1SZ.js → HealthPage-96pm0R5c.js} +1 -1
- package/src/client/dist/spa/assets/MainLayout-BfQZxnxp.js +37 -0
- package/src/client/dist/spa/assets/{MainLayout-BH3YLFSe.css → MainLayout-BxbC5qfx.css} +1 -1
- package/src/client/dist/spa/assets/{SearchPage-CTYjC3F5.js → SearchPage-DRZZXBej.js} +1 -1
- package/src/client/dist/spa/assets/{SettingsPage-B1Z9D-DF.js → SettingsPage-7GcC2IYi.js} +1 -1
- package/src/client/dist/spa/assets/{WorkspacePage-CfQD07QE.js → WorkspacePage-Bclc0zJ-.js} +3 -3
- package/src/client/dist/spa/assets/{cssMode-kOTC9MFo.js → cssMode-Bnh_9uhY.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api-BcgiiQ9C.js → editor.api-DgWWfCkJ.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-BFZ38KvF.js → editor.main-BKfeDnR3.js} +3 -3
- package/src/client/dist/spa/assets/{engineFeatures-Dii-xGWO.js → engineFeatures-DyLw36-5.js} +1 -1
- package/src/client/dist/spa/assets/{expand-template-BUo-3DMQ.js → expand-template-ct-WAfuX.js} +1 -1
- package/src/client/dist/spa/assets/{freemarker2-DjVwQRWb.js → freemarker2-9RGddRAW.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-B5Hx3OPu.js → handlebars-DT7lkiQM.js} +1 -1
- package/src/client/dist/spa/assets/{html-CkkmRiZL.js → html-Bz175T2Z.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-DAICaPvh.js → htmlMode-DbtESN9R.js} +1 -1
- package/src/client/dist/spa/assets/i18n-wamOif7U.js +1 -0
- package/src/client/dist/spa/assets/index-CSvMoCLw.js +52 -0
- package/src/client/dist/spa/assets/{javascript-BUAh0rA9.js → javascript-BN2stm7K.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-BzFW3XJw.js → jsonMode-BYnYwZjI.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-BG_TM7nb.js → liquid-BE5VjF4C.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-BVJ5LooG.js → mdx-DlXCpLNd.js} +1 -1
- package/src/client/dist/spa/assets/{monaco.contribution-CV1L1iRV.js → monaco.contribution-sw1lpzQF.js} +2 -2
- package/src/client/dist/spa/assets/{permissionModes-CPX8QVUC.js → permissionModes-CpgAOu0t.js} +1 -1
- package/src/client/dist/spa/assets/{python-C3SJZIg0.js → python-Cg5ykpp-.js} +1 -1
- package/src/client/dist/spa/assets/{razor-C8uuzbkG.js → razor-B_Mvy9yr.js} +1 -1
- package/src/client/dist/spa/assets/{render-chat-markdown-PK20KhUR.js → render-chat-markdown-Cj_76hJe.js} +1 -1
- package/src/client/dist/spa/assets/{tsMode-LxtLhKTE.js → tsMode-DR8dS8qY.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-CbbP8Z4i.js → typescript-T68E_JG-.js} +1 -1
- package/src/client/dist/spa/assets/{use-onboarding-D0-bmujn.js → use-onboarding-Dz9n2QJO.js} +1 -1
- package/src/client/dist/spa/assets/{xml-BbS08dIc.js → xml-DTS60gpD.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-CMXyuCk-.js → yaml-BhwqvEe2.js} +1 -1
- package/src/client/dist/spa/index.html +1 -1
- package/src/client/dist/spa/assets/MainLayout-3-_F6UxS.js +0 -37
- package/src/client/dist/spa/assets/i18n-BeaM3mIm.js +0 -1
- package/src/client/dist/spa/assets/index-BbWwonO6.js +0 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
.acceptance-item[data-v-20a94a3d]{padding:2px 0}.acceptance-item[data-v-20a94a3d]:hover{background-color:#ffffff08}.acceptance-item:hover .criterion-delete-btn[data-v-20a94a3d]{opacity:1}.criterion-delete-btn[data-v-20a94a3d]{opacity:0;transition:opacity .15s}.acceptance-title[data-v-20a94a3d]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-20a94a3d]{opacity:.7;text-decoration:line-through}.criterion-input[data-v-20a94a3d] .q-field__control{height:22px;min-height:22px;padding:0}.criterion-input[data-v-20a94a3d] input{color:#e0e0e0;font-size:12px}.criterion-input[data-v-20a94a3d] input::placeholder{color:#555}.criterion-add-row[data-v-20a94a3d],.todo-item[data-v-6a3613f7]{padding:2px 0}.todo-title[data-v-6a3613f7]{word-break:break-word;line-height:1.4}.text-strike[data-v-6a3613f7]{opacity:.7;text-decoration:line-through}.documents-tree[data-v-89e5de13] .q-tree__node--selected>.q-tree__node-header{background:#7986cb26}.documents-tree[data-v-89e5de13] .q-tree__node-header{padding:2px 4px}.document-content[data-v-89e5de13]{color:#d0d0d0;overflow-wrap:break-word;font-size:12px;line-height:1.6}.document-content[data-v-89e5de13] h1{color:#e0e0e0;margin:16px 0 8px;font-size:16px}.document-content[data-v-89e5de13] h2{color:#e0e0e0;margin:14px 0 6px;font-size:14px}.document-content[data-v-89e5de13] h3{color:#e0e0e0;margin:12px 0 4px;font-size:13px}.document-content[data-v-89e5de13] code{background:#1a1a2e;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.document-content[data-v-89e5de13] pre{background:#1a1a2e;border-radius:6px;padding:8px 12px;font-size:11px;overflow-x:auto}.document-content[data-v-89e5de13] pre code{background:0 0;padding:0}.document-content[data-v-89e5de13] ul,.document-content[data-v-89e5de13] ol{padding-left:20px}.document-content[data-v-89e5de13] li{margin-bottom:2px}.document-content[data-v-89e5de13] input[type=checkbox]{pointer-events:none;margin-right:6px}.document-content[data-v-89e5de13] table{border-collapse:collapse;width:100%;margin:8px 0;font-size:11px}.document-content[data-v-89e5de13] th,.document-content[data-v-89e5de13] td{text-align:left;border:1px solid #2a2a4a;padding:4px 8px}.document-content[data-v-89e5de13] th{color:#e0e0e0;background:#1a1a2e}.document-content[data-v-89e5de13] blockquote{color:#a0a0b0;border-left:3px solid #4a4a6a;margin:8px 0;padding:4px 12px}.document-content[data-v-89e5de13] a{color:#818cf8}.document-content[data-v-89e5de13] hr{border:none;border-top:1px solid #2a2a4a;margin:12px 0}.commit-item[data-v-fd1cc184]:hover{background:#ffffff0a}.commit-sha[data-v-fd1cc184]{font-family:Roboto Mono,monospace;font-size:11px}.commit-subject[data-v-fd1cc184]{max-width:480px;font-size:12px}.pr-panel__header[data-v-b8060f4f]{border-bottom:1px solid #2a2a4a;padding-bottom:8px}.pr-panel__number[data-v-b8060f4f]{color:#a5b4fc;font-size:12px;font-weight:600;text-decoration:none}.pr-panel__title[data-v-b8060f4f]{color:#ddd;font-size:12px}.pr-panel__state[data-v-b8060f4f],.pr-panel__badge[data-v-b8060f4f],.pr-panel__label-chip[data-v-b8060f4f]{font-size:10px;font-weight:600}.pr-panel__grid[data-v-b8060f4f]{grid-template-columns:90px 1fr;gap:6px 12px;padding:8px 0;font-size:11px;display:grid}.pr-panel__label[data-v-b8060f4f]{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;align-self:center;font-size:10px}.pr-panel__value[data-v-b8060f4f]{color:#ddd}.pr-panel__reviewers[data-v-b8060f4f]{flex-wrap:wrap;gap:4px 8px;display:flex}.pr-panel__reviewer[data-v-b8060f4f]{align-items:center;gap:4px;display:inline-flex}.pr-panel__dot[data-v-b8060f4f]{border-radius:50%;width:7px;height:7px;display:inline-block}.pr-panel__ci[data-v-b8060f4f]{color:#ddd;border-top:1px solid #2a2a4a;padding-top:8px;font-size:11px}.pr-panel__ci-summary[data-v-b8060f4f],.pr-panel__ci-counts[data-v-b8060f4f]{flex-wrap:wrap}.pr-panel__ci-count[data-v-b8060f4f]{background-color:#ffffff0a;border-radius:3px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.pr-panel__ci-count--failed[data-v-b8060f4f]{color:#fca5a5}.pr-panel__ci-count--pending[data-v-b8060f4f]{color:#fcd34d}.pr-panel__ci-count--passed[data-v-b8060f4f]{color:#86efac}.pr-panel__ci-count--skipped[data-v-b8060f4f]{color:#9ca3af}.pr-panel__ci-list[data-v-b8060f4f]{flex-direction:column;gap:2px;display:flex}.pr-panel__ci-item[data-v-b8060f4f]{border-radius:3px;align-items:center;gap:6px;min-width:0;padding:2px 6px;font-size:11px;text-decoration:none;display:flex}a.pr-panel__ci-item[data-v-b8060f4f]:hover{background-color:#ffffff0d;text-decoration:underline}.pr-panel__ci-item--failed[data-v-b8060f4f]{color:#fca5a5}.pr-panel__ci-item--pending[data-v-b8060f4f]{color:#fcd34d}.pr-panel__ci-item--passed[data-v-b8060f4f]{color:#86efac}.pr-panel__ci-item--skipped[data-v-b8060f4f]{color:#9ca3af}.pr-panel__ci-toggle[data-v-b8060f4f]{color:#9ca3af;font-size:10px}.git-btn[data-v-7fcf0a7c]{font-size:11px}.commit-toggle[data-v-7fcf0a7c]:hover{background-color:#ffffff08;border-radius:3px}.commit-list[data-v-7fcf0a7c]{border-left:2px solid #ffffff0a;max-height:260px;margin-left:7px;padding-left:6px;overflow-y:auto}.commit-item[data-v-7fcf0a7c]{border-radius:3px;padding:3px 4px;font-size:11px;line-height:1.3;transition:background-color .1s}.commit-item[data-v-7fcf0a7c]:hover{background-color:#818cf814}.commit-item-icon[data-v-7fcf0a7c]{flex-shrink:0}.commit-sha[data-v-7fcf0a7c]{flex-shrink:0;font-family:Roboto Mono,monospace;font-size:10.5px}.commit-subject[data-v-7fcf0a7c]{min-width:0;font-size:11px}.arrow-clickable[data-v-7fcf0a7c]{transition:opacity .15s}.arrow-clickable[data-v-7fcf0a7c]:hover{opacity:.75;text-decoration:underline}.git-subcard[data-v-7fcf0a7c]{background:#1f2538;border-radius:4px;margin-bottom:8px;padding:8px 10px}.git-subcard-title[data-v-7fcf0a7c]{color:#6b7280;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:9px;font-weight:600}.git-branch-code{color:#c7d2fe;overflow-wrap:anywhere;background-color:#818cf824;border-radius:3px;padding:1px 5px;font-family:Roboto Mono,monospace;font-size:11px}.prompt-preview[data-v-891bf3cf]{white-space:pre-wrap;word-break:break-word;margin:0}.subagents-panel[data-v-dd805632]{overflow-y:auto}.subagent-item[data-v-dd805632]{background:#1e1e3a;border:1px solid #2a2a4a}.task-item[data-v-4bc9713a]{padding:2px 0}.task-item[data-v-4bc9713a]:hover{background-color:#ffffff08}.task-item:hover .task-delete-btn[data-v-4bc9713a]{opacity:1}.task-delete-btn[data-v-4bc9713a]{opacity:0;transition:opacity .15s}.task-title[data-v-4bc9713a]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-4bc9713a]{opacity:.7;text-decoration:line-through}.task-input[data-v-4bc9713a] .q-field__control{height:22px;min-height:22px;padding:0}.task-input[data-v-4bc9713a] input{color:#e0e0e0;font-size:12px}.task-input[data-v-4bc9713a] input::placeholder{color:#555}.task-add-row[data-v-4bc9713a]{padding:2px 0}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:-moz-fit-content;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.log-content[data-v-d988f9ab]{max-height:60vh;overflow-y:auto}.log-text[data-v-d988f9ab]{color:#ccc;white-space:pre-wrap;word-break:break-all;background:#0d0d1a;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.dd-panel[data-v-8d4cdfb4],.tools-panel[data-v-246c1768]{min-height:48px}.whats-new-notes[data-v-434e72f8]{color:#cfcfe0;font-size:13px;line-height:1.55}.whats-new-notes[data-v-434e72f8] ul{margin:0;padding-left:1.2em}.whats-new-notes[data-v-434e72f8] li{margin:.2em 0}.whats-new-notes[data-v-434e72f8] code{background:#00000040;border-radius:3px;padding:.1em .3em}.auto-loop-spin[data-v-29b434eb]{animation:2s linear infinite auto-loop-spin-29b434eb}@keyframes auto-loop-spin-29b434eb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dd-dot[data-v-29b434eb]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dd-dot--running[data-v-29b434eb]{background-color:#22c55e;box-shadow:0 0 4px #22c55e80}.workspace-list[data-v-d4d504d8]{background-color:#16162a;overflow-x:hidden}.wl-search[data-v-d4d504d8]{background-color:#224;padding:0 8px}.wl-search[data-v-d4d504d8] .q-field__control{height:32px}.wl-search[data-v-d4d504d8] input{color:#ccc;font-size:12px}.wl-group-header[data-v-d4d504d8]:hover{background-color:#ffffff08}.wl-project-group+.wl-project-group[data-v-d4d504d8]{margin-top:6px}.wl-project-label[data-v-d4d504d8]{align-items:center;padding-bottom:2px;font-size:11px;display:flex}.wl-item[data-v-d4d504d8]{background-color:#224;margin-bottom:4px;transition:background-color .15s,box-shadow .15s;position:relative}.wl-item[data-v-d4d504d8]:last-child{margin-bottom:0}.wl-item[data-v-d4d504d8]:hover{background-color:#2a2a4a}.wl-item--selected[data-v-d4d504d8]{background-color:#393969;outline:1.5px solid #6c63fff2;box-shadow:0 0 0 1px #6c63ff4d,0 2px 8px #6c63ff40}.wl-item--selected[data-v-d4d504d8]:hover{background-color:#41417a}.wl-item--selected .wl-item-name[data-v-d4d504d8]{color:#fff!important;opacity:1!important}.wl-item-action[data-v-d4d504d8]{position:absolute;top:4px;right:4px}.wl-item--archived .wl-item-action[data-v-d4d504d8]{opacity:0;transition:opacity .15s}.wl-item--archived:hover .wl-item-action[data-v-d4d504d8]{opacity:1}.wl-item-unarchive[data-v-d4d504d8]{right:28px}.wl-item-delete[data-v-d4d504d8]{right:4px}.wl-item--archived[data-v-d4d504d8]{opacity:.6;background-color:#1a1a30}.wl-item--archived[data-v-d4d504d8]:hover{opacity:.85}.wl-item--archived.wl-item--selected[data-v-d4d504d8]{opacity:1}.bg-dark[data-v-75f58b49]{background-color:#16162a!important;border-color:#2a2a4a!important}.resize-handle[data-v-75f58b49]{cursor:col-resize;z-index:10;width:4px;height:100%;transition:background-color .15s;position:absolute;top:0;right:-2px}.resize-handle[data-v-75f58b49]:hover,.resize-handle[data-v-75f58b49]:active{background-color:#6c63ff80}.resize-handle--right[data-v-75f58b49]{left:-2px;right:auto}.vertical-resize-handle[data-v-75f58b49]{cursor:row-resize;background-color:#2a2a4a;height:4px;transition:background-color .15s}.vertical-resize-handle[data-v-75f58b49]:hover,.vertical-resize-handle[data-v-75f58b49]:active{background-color:#6c63ff80}
|
|
1
|
+
.acceptance-item[data-v-20a94a3d]{padding:2px 0}.acceptance-item[data-v-20a94a3d]:hover{background-color:#ffffff08}.acceptance-item:hover .criterion-delete-btn[data-v-20a94a3d]{opacity:1}.criterion-delete-btn[data-v-20a94a3d]{opacity:0;transition:opacity .15s}.acceptance-title[data-v-20a94a3d]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-20a94a3d]{opacity:.7;text-decoration:line-through}.criterion-input[data-v-20a94a3d] .q-field__control{height:22px;min-height:22px;padding:0}.criterion-input[data-v-20a94a3d] input{color:#e0e0e0;font-size:12px}.criterion-input[data-v-20a94a3d] input::placeholder{color:#555}.criterion-add-row[data-v-20a94a3d],.todo-item[data-v-6a3613f7]{padding:2px 0}.todo-title[data-v-6a3613f7]{word-break:break-word;line-height:1.4}.text-strike[data-v-6a3613f7]{opacity:.7;text-decoration:line-through}.documents-tree[data-v-89e5de13] .q-tree__node--selected>.q-tree__node-header{background:#7986cb26}.documents-tree[data-v-89e5de13] .q-tree__node-header{padding:2px 4px}.document-content[data-v-89e5de13]{color:#d0d0d0;overflow-wrap:break-word;font-size:12px;line-height:1.6}.document-content[data-v-89e5de13] h1{color:#e0e0e0;margin:16px 0 8px;font-size:16px}.document-content[data-v-89e5de13] h2{color:#e0e0e0;margin:14px 0 6px;font-size:14px}.document-content[data-v-89e5de13] h3{color:#e0e0e0;margin:12px 0 4px;font-size:13px}.document-content[data-v-89e5de13] code{background:#1a1a2e;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.document-content[data-v-89e5de13] pre{background:#1a1a2e;border-radius:6px;padding:8px 12px;font-size:11px;overflow-x:auto}.document-content[data-v-89e5de13] pre code{background:0 0;padding:0}.document-content[data-v-89e5de13] ul,.document-content[data-v-89e5de13] ol{padding-left:20px}.document-content[data-v-89e5de13] li{margin-bottom:2px}.document-content[data-v-89e5de13] input[type=checkbox]{pointer-events:none;margin-right:6px}.document-content[data-v-89e5de13] table{border-collapse:collapse;width:100%;margin:8px 0;font-size:11px}.document-content[data-v-89e5de13] th,.document-content[data-v-89e5de13] td{text-align:left;border:1px solid #2a2a4a;padding:4px 8px}.document-content[data-v-89e5de13] th{color:#e0e0e0;background:#1a1a2e}.document-content[data-v-89e5de13] blockquote{color:#a0a0b0;border-left:3px solid #4a4a6a;margin:8px 0;padding:4px 12px}.document-content[data-v-89e5de13] a{color:#818cf8}.document-content[data-v-89e5de13] hr{border:none;border-top:1px solid #2a2a4a;margin:12px 0}.commit-item[data-v-fd1cc184]:hover{background:#ffffff0a}.commit-sha[data-v-fd1cc184]{font-family:Roboto Mono,monospace;font-size:11px}.commit-subject[data-v-fd1cc184]{max-width:480px;font-size:12px}.pr-panel__header[data-v-b8060f4f]{border-bottom:1px solid #2a2a4a;padding-bottom:8px}.pr-panel__number[data-v-b8060f4f]{color:#a5b4fc;font-size:12px;font-weight:600;text-decoration:none}.pr-panel__title[data-v-b8060f4f]{color:#ddd;font-size:12px}.pr-panel__state[data-v-b8060f4f],.pr-panel__badge[data-v-b8060f4f],.pr-panel__label-chip[data-v-b8060f4f]{font-size:10px;font-weight:600}.pr-panel__grid[data-v-b8060f4f]{grid-template-columns:90px 1fr;gap:6px 12px;padding:8px 0;font-size:11px;display:grid}.pr-panel__label[data-v-b8060f4f]{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;align-self:center;font-size:10px}.pr-panel__value[data-v-b8060f4f]{color:#ddd}.pr-panel__reviewers[data-v-b8060f4f]{flex-wrap:wrap;gap:4px 8px;display:flex}.pr-panel__reviewer[data-v-b8060f4f]{align-items:center;gap:4px;display:inline-flex}.pr-panel__dot[data-v-b8060f4f]{border-radius:50%;width:7px;height:7px;display:inline-block}.pr-panel__ci[data-v-b8060f4f]{color:#ddd;border-top:1px solid #2a2a4a;padding-top:8px;font-size:11px}.pr-panel__ci-summary[data-v-b8060f4f],.pr-panel__ci-counts[data-v-b8060f4f]{flex-wrap:wrap}.pr-panel__ci-count[data-v-b8060f4f]{background-color:#ffffff0a;border-radius:3px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.pr-panel__ci-count--failed[data-v-b8060f4f]{color:#fca5a5}.pr-panel__ci-count--pending[data-v-b8060f4f]{color:#fcd34d}.pr-panel__ci-count--passed[data-v-b8060f4f]{color:#86efac}.pr-panel__ci-count--skipped[data-v-b8060f4f]{color:#9ca3af}.pr-panel__ci-list[data-v-b8060f4f]{flex-direction:column;gap:2px;display:flex}.pr-panel__ci-item[data-v-b8060f4f]{border-radius:3px;align-items:center;gap:6px;min-width:0;padding:2px 6px;font-size:11px;text-decoration:none;display:flex}a.pr-panel__ci-item[data-v-b8060f4f]:hover{background-color:#ffffff0d;text-decoration:underline}.pr-panel__ci-item--failed[data-v-b8060f4f]{color:#fca5a5}.pr-panel__ci-item--pending[data-v-b8060f4f]{color:#fcd34d}.pr-panel__ci-item--passed[data-v-b8060f4f]{color:#86efac}.pr-panel__ci-item--skipped[data-v-b8060f4f]{color:#9ca3af}.pr-panel__ci-toggle[data-v-b8060f4f]{color:#9ca3af;font-size:10px}.git-btn[data-v-c99da00e]{font-size:11px}.commit-toggle[data-v-c99da00e]:hover{background-color:#ffffff08;border-radius:3px}.commit-list[data-v-c99da00e]{border-left:2px solid #ffffff0a;max-height:260px;margin-left:7px;padding-left:6px;overflow-y:auto}.commit-item[data-v-c99da00e]{border-radius:3px;padding:3px 4px;font-size:11px;line-height:1.3;transition:background-color .1s}.commit-item[data-v-c99da00e]:hover{background-color:#818cf814}.commit-item-icon[data-v-c99da00e]{flex-shrink:0}.commit-sha[data-v-c99da00e]{flex-shrink:0;font-family:Roboto Mono,monospace;font-size:10.5px}.commit-subject[data-v-c99da00e]{min-width:0;font-size:11px}.arrow-clickable[data-v-c99da00e]{transition:opacity .15s}.arrow-clickable[data-v-c99da00e]:hover{opacity:.75;text-decoration:underline}.git-subcard[data-v-c99da00e]{background:#1f2538;border-radius:4px;margin-bottom:8px;padding:8px 10px}.git-subcard-title[data-v-c99da00e]{color:#6b7280;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:9px;font-weight:600}.git-branch-code{color:#c7d2fe;overflow-wrap:anywhere;background-color:#818cf824;border-radius:3px;padding:1px 5px;font-family:Roboto Mono,monospace;font-size:11px}.prompt-preview[data-v-891bf3cf]{white-space:pre-wrap;word-break:break-word;margin:0}.subagents-panel[data-v-dd805632]{overflow-y:auto}.subagent-item[data-v-dd805632]{background:#1e1e3a;border:1px solid #2a2a4a}.task-item[data-v-4bc9713a]{padding:2px 0}.task-item[data-v-4bc9713a]:hover{background-color:#ffffff08}.task-item:hover .task-delete-btn[data-v-4bc9713a]{opacity:1}.task-delete-btn[data-v-4bc9713a]{opacity:0;transition:opacity .15s}.task-title[data-v-4bc9713a]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-4bc9713a]{opacity:.7;text-decoration:line-through}.task-input[data-v-4bc9713a] .q-field__control{height:22px;min-height:22px;padding:0}.task-input[data-v-4bc9713a] input{color:#e0e0e0;font-size:12px}.task-input[data-v-4bc9713a] input::placeholder{color:#555}.task-add-row[data-v-4bc9713a]{padding:2px 0}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:-moz-fit-content;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.log-content[data-v-d988f9ab]{max-height:60vh;overflow-y:auto}.log-text[data-v-d988f9ab]{color:#ccc;white-space:pre-wrap;word-break:break-all;background:#0d0d1a;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.dd-panel[data-v-8d4cdfb4],.tools-panel[data-v-246c1768]{min-height:48px}.whats-new-notes[data-v-434e72f8]{color:#cfcfe0;font-size:13px;line-height:1.55}.whats-new-notes[data-v-434e72f8] ul{margin:0;padding-left:1.2em}.whats-new-notes[data-v-434e72f8] li{margin:.2em 0}.whats-new-notes[data-v-434e72f8] code{background:#00000040;border-radius:3px;padding:.1em .3em}.auto-loop-spin[data-v-29b434eb]{animation:2s linear infinite auto-loop-spin-29b434eb}@keyframes auto-loop-spin-29b434eb{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dd-dot[data-v-29b434eb]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dd-dot--running[data-v-29b434eb]{background-color:#22c55e;box-shadow:0 0 4px #22c55e80}.workspace-list[data-v-70007e9c]{background-color:#16162a;overflow-x:hidden}.wl-search[data-v-70007e9c]{background-color:#224;padding:0 8px}.wl-search[data-v-70007e9c] .q-field__control{height:32px}.wl-search[data-v-70007e9c] input{color:#ccc;font-size:12px}.wl-group-header[data-v-70007e9c]:hover{background-color:#ffffff08}.wl-project-group+.wl-project-group[data-v-70007e9c]{margin-top:6px}.wl-project-label[data-v-70007e9c]{align-items:center;padding-bottom:2px;font-size:11px;display:flex}.wl-item[data-v-70007e9c]{background-color:#224;margin-bottom:4px;transition:background-color .15s,box-shadow .15s;position:relative}.wl-item[data-v-70007e9c]:last-child{margin-bottom:0}.wl-item[data-v-70007e9c]:hover{background-color:#2a2a4a}.wl-item--selected[data-v-70007e9c]{background-color:#393969;outline:1.5px solid #6c63fff2;box-shadow:0 0 0 1px #6c63ff4d,0 2px 8px #6c63ff40}.wl-item--selected[data-v-70007e9c]:hover{background-color:#41417a}.wl-item--selected .wl-item-name[data-v-70007e9c]{color:#fff!important;opacity:1!important}.wl-item-action[data-v-70007e9c]{position:absolute;top:4px;right:4px}.wl-item--archived .wl-item-action[data-v-70007e9c]{opacity:0;transition:opacity .15s}.wl-item--archived:hover .wl-item-action[data-v-70007e9c]{opacity:1}.wl-item-unarchive[data-v-70007e9c]{right:28px}.wl-item-delete[data-v-70007e9c]{right:4px}.wl-item--archived[data-v-70007e9c]{opacity:.6;background-color:#1a1a30}.wl-item--archived[data-v-70007e9c]:hover{opacity:.85}.wl-item--archived.wl-item--selected[data-v-70007e9c]{opacity:1}.bg-dark[data-v-75f58b49]{background-color:#16162a!important;border-color:#2a2a4a!important}.resize-handle[data-v-75f58b49]{cursor:col-resize;z-index:10;width:4px;height:100%;transition:background-color .15s;position:absolute;top:0;right:-2px}.resize-handle[data-v-75f58b49]:hover,.resize-handle[data-v-75f58b49]:active{background-color:#6c63ff80}.resize-handle--right[data-v-75f58b49]{left:-2px;right:auto}.vertical-resize-handle[data-v-75f58b49]{cursor:row-resize;background-color:#2a2a4a;height:4px;transition:background-color .15s}.vertical-resize-handle[data-v-75f58b49]:hover,.vertical-resize-handle[data-v-75f58b49]:active{background-color:#6c63ff80}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as e,I as t,R as n,St as r,W as i,_ as a,at as o,d as s,et as c,f as l,p as u,r as d,u as f,y as p}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{t as m}from"./QIcon-BmEX2rXO.js";import{a as h,r as g}from"./use-id-BCnfiBjU.js";import{n as _}from"./vue-i18n-Cq-KgjJC.js";import{t as v}from"./QInput-D0t39uK_.js";import{t as y}from"./QToggle-DBzTAIbK.js";import{i as b}from"./index-
|
|
1
|
+
import{G as e,I as t,R as n,St as r,W as i,_ as a,at as o,d as s,et as c,f as l,p as u,r as d,u as f,y as p}from"./runtime-core.esm-bundler-D_RRiKBh.js";import{t as m}from"./QIcon-BmEX2rXO.js";import{a as h,r as g}from"./use-id-BCnfiBjU.js";import{n as _}from"./vue-i18n-Cq-KgjJC.js";import{t as v}from"./QInput-D0t39uK_.js";import{t as y}from"./QToggle-DBzTAIbK.js";import{i as b}from"./index-CSvMoCLw.js";import{t as x}from"./_plugin-vue_export-helper-r4mAJOHR.js";import{t as S}from"./QBadge-DNQSqPg-.js";import{t as C}from"./QSpace-Crcx82On.js";import{t as w}from"./formatters-BKR66G3t.js";import{t as T}from"./QPage-3-ah4oor.js";var E=h(`search`,{state:()=>({query:``,includeArchived:!1,results:[],loading:!1,error:``}),actions:{async search(){let e=this.query.trim();if(!e){this.results=[],this.error=``;return}this.loading=!0,this.error=``;try{let t=new URLSearchParams({q:e});this.includeArchived&&t.set(`includeArchived`,`true`);let n=await fetch(`/api/search?${t.toString()}`);if(!n.ok){let e=`HTTP ${n.status}`;try{let t=await n.json();t?.error&&(e=t.error)}catch{}throw Error(e)}this.results=await n.json()}catch(e){this.error=e instanceof Error?e.message:String(e),this.results=[]}finally{this.loading=!1}},clear(){this.query=``,this.results=[],this.error=``}}}),D={class:`search-header`},O={class:`text-h5 q-mb-md`},k={class:`row items-center q-mt-sm q-gutter-sm`},A={key:0,class:`text-caption text-grey-6`},j={key:0,class:`text-grey-6 text-caption`},M={key:1,class:`text-negative text-caption`},N={key:2,class:`text-grey-6 text-caption`},P={key:3,class:`search-results`},F=[`onClick`],I={class:`row items-center q-mb-xs text-caption`},L={class:`text-grey-5 text-weight-medium`},R={class:`text-grey-6`},z={class:`search-snippet text-body2 text-grey-4`},B=x(p({__name:`SearchPage`,setup(p){let h=E(),x=b(),{t:B}=_(),{timeAgo:V}=w(),H=c(null),U=null;function W(){U&&clearTimeout(U),U=setTimeout(()=>{h.search()},250)}i(()=>h.includeArchived,()=>{h.query.trim().length>0&&h.search()});function G(e){x.push({name:`workspace`,params:{id:e}})}function K(e){return e===`user:message`?B(`search.eventType.userMessage`):e===`agent:output`?B(`search.eventType.agentOutput`):e}return(i,c)=>(t(),s(T,{class:`q-pa-md search-page`},{default:e(()=>[f(`div`,D,[f(`h2`,O,r(i.$t(`search.title`)),1),a(v,{ref_key:`inputEl`,ref:H,modelValue:o(h).query,"onUpdate:modelValue":[c[0]||=e=>o(h).query=e,W],dense:``,dark:``,outlined:``,clearable:``,autofocus:``,placeholder:i.$t(`search.placeholder`),onClear:c[1]||=e=>o(h).clear()},{prepend:e(()=>[a(m,{name:`search`})]),_:1},8,[`modelValue`,`placeholder`]),f(`div`,k,[a(y,{modelValue:o(h).includeArchived,"onUpdate:modelValue":c[2]||=e=>o(h).includeArchived=e,label:i.$t(`search.includeArchived`),dense:``,dark:``,color:`indigo-4`,size:`sm`},null,8,[`modelValue`,`label`]),a(C),o(h).results.length>0?(t(),u(`span`,A,r(i.$t(`search.resultCount`,{n:o(h).results.length})),1)):l(``,!0)])]),a(g,{dark:``,class:`q-my-md`}),o(h).loading?(t(),u(`div`,j,r(i.$t(`search.loading`)),1)):o(h).error?(t(),u(`div`,M,r(i.$t(`search.error`,{message:o(h).error})),1)):o(h).query.trim().length>0&&o(h).results.length===0?(t(),u(`div`,N,r(i.$t(`search.noResults`)),1)):o(h).results.length>0?(t(),u(`div`,P,[(t(!0),u(d,null,n(o(h).results,(e,n)=>(t(),u(`div`,{key:`${e.workspaceId}-${e.timestamp}-${n}`,class:`search-result q-pa-sm q-mb-sm cursor-pointer`,onClick:t=>G(e.workspaceId)},[f(`div`,I,[f(`span`,L,r(e.workspaceName),1),e.archived?(t(),s(S,{key:0,color:`grey-7`,class:`q-ml-xs`,label:i.$t(`common.archive`)},null,8,[`label`])):l(``,!0),a(C),a(S,{color:e.type===`user:message`?`blue-grey-7`:`indigo-7`,class:`q-mr-sm`,label:K(e.type)},null,8,[`color`,`label`]),f(`span`,R,r(o(V)(e.timestamp)),1)]),f(`div`,z,r(e.snippet),1)],8,F))),128))])):l(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-6f728e16`]]);export{B as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
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-Dq_CVZlr.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 we,t as N}from"./QInput-D0t39uK_.js";import{t as Te}from"./QCheckbox-Cq2STfHp.js";import{t as P}from"./QToggle-DBzTAIbK.js";import{_ as Ee,b as De,g as Oe,t as ke,x as Ae}from"./index-BbWwonO6.js";import{n as F,t as I}from"./QItemSection-DRg-QuAD.js";import{t as L}from"./QItemLabel-Btqw0P7M.js";import{d as R,t as je}from"./QTooltip-CxkTFl9W.js";import{t as Me}from"./QExpansionItem-C3koMJhv.js";import{t as z}from"./TouchPan-DWCVQZB9.js";import{t as B}from"./_plugin-vue_export-helper-r4mAJOHR.js";import{t as V}from"./QSpace-Crcx82On.js";import{t as Ne}from"./QList-CRYZxnPD.js";import{t as H}from"./QMenu-tPOTRRE_.js";import{t as Pe}from"./ClosePopup-BG4U_b73.js";import{t as Fe}from"./use-quasar-q6dh7QVJ.js";import{a as Ie,i as Le,n as Re,r as ze,t as Be}from"./skill-suite-prompts-8f_JW79j.js";import{t as Ve}from"./QChip-D2TVel5I.js";import{n as He,t as Ue}from"./use-onboarding-D0-bmujn.js";import{t as We}from"./QPage-3-ah4oor.js";import{a as U,n as Ge,r as Ke,t as qe}from"./permissionModes-CPX8QVUC.js";import{t as Je}from"./QBanner-C_TvxtXi.js";var Ye=`q-slider__marker-labels`,Xe=e=>({value:e}),W=({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(()=>N(x.value)),ie=b(()=>N(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 we(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),R(i,x.value,S.value)}function N(e){return ne.value===0?0:(e-o.min)/ne.value}function Te(e,t){let n=oe(e),r=o.vertical===!0?R((n.top-t.top)/t.height,0,1):R((n.left-t.left)/t.width,0,1);return R(y.value===!0?1-r:r,E.value,ie.value)}let P=b(()=>de(o.markers)===!0?o.markers:T.value),Ee=b(()=>{let e=[],t=P.value,n=o.max,r=o.min;do e.push(r),r+=t;while(r<n);return e.push(n),e}),De=b(()=>{let e=` ${Ye}${_.value}-`;return`q-slider__marker-labels${e}${o.switchMarkerLabelsSide===!0?`switched`:`standard`}${e}${y.value===!0?`rtl`:`ltr`}`}),Oe=b(()=>o.markerLabels===!1?null:F(o.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:De.value+(e.classes===void 0?``:` `+e.classes),style:{...I(e.value),...e.style||{}}}))),ke=b(()=>({markerList:Oe.value,markerMap:L.value,classes:De.value,getStyle:I})),Ae=b(()=>{let e=re.value===0?`2px`:100*P.value/re.value;return{...M.value,backgroundSize:o.vertical===!0?`2px ${e}%`:`${e}% 2px`}});function F(e){if(e===!1)return null;if(e===!0)return Ee.value.map(Xe);if(typeof e==`function`)return Ee.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 I(e){return{[D.value]:`${100*(e-o.min)/ne.value}%`}}let L=b(()=>{if(o.markerLabels===!1)return null;let e={};return Oe.value.forEach(t=>{e[t.value]=t}),e});function je(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](ke.value);let e=c[`marker-label`]||W;return Oe.value.map(t=>e({marker:t,...ke.value}))}let Me=b(()=>[[z,B,void 0,{[O.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function B(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:Ae.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,()=>Me.value)];return o.markerLabels!==!1&&s[o.switchMarkerLabelsSide===!0?`unshift`:`push`](t(`div`,{key:`markerL`,class:be.value},je())),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:we,convertModelToRatio:N,getDraggingRatio:Te}}}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:we(e)}),o=g(null),s=g(0),c=g(0);function l(){c.value=e.modelValue===null?i.innerMin.value:R(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=R(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`},K=[`title`],at={key:1,class:`row justify-center q-mt-sm`},ot=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(Ee,{"model-value":e.modelValue,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:r(()=>[d(De,{class:`text-grey-3`,style:{"min-width":`480px`,"max-width":`90vw`,background:`#1e1e3a`}},{default:r(()=>[d(Ae,{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(Ae,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,K),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(F,{key:0,clickable:``,onClick:n[0]||=e=>y(l.value)},{default:r(()=>[d(I,{avatar:``},{default:r(()=>[d(O,{name:`arrow_upward`,color:`grey-5`})]),_:1}),d(I,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(F,{key:e.path,clickable:``,onClick:t=>y(e.path)},{default:r(()=>[d(I,{avatar:``},{default:r(()=>[d(O,{name:`folder`,color:`amber-6`})]),_:1}),d(I,null,{default:r(()=>[v(u(e.name),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[xe]])),128)),!p.value&&f.value.length===0?(i(),h(F,{key:1},{default:r(()=>[d(I,{class:`text-grey-7`},{default:r(()=>[v(u(t.$t(`folderPicker.empty`)),1)]),_:1})]),_:1})):_(``,!0)]),_:1}),p.value?(i(),x(`div`,at,[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`]))}}),st={class:`settings-layout`},ct={class:`settings-nav`},lt={class:`settings-nav__title`},ut={class:`settings-content`},dt={class:`settings-content__header`},ft={class:`settings-content__title`},pt={class:`settings-panels`},mt={class:`settings-global-wrap`},ht={"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gt={class:`text-subtitle2 q-mb-sm`},_t={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vt={class:`text-subtitle2 q-mb-sm`},yt={class:`text-caption text-grey-7 q-mt-xs`},bt={"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},xt={class:`text-subtitle2 q-mb-sm`},St={class:`text-caption text-grey-6 q-mt-xs`},Ct={key:0,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wt={class:`text-subtitle2 q-mb-sm`},Tt={class:`text-caption text-grey-6 q-mb-xs q-mt-sm`},Et={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},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={"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jt={class:`text-subtitle2 q-mb-sm`},Mt={class:`text-subtitle2 q-mb-sm q-mt-md`},Nt={class:`text-subtitle2 q-mb-sm q-mt-md`},Pt={class:`text-caption text-grey-7 q-mb-sm`},Ft={class:`text-subtitle2 q-mb-sm q-mt-md`},It={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Lt={class:`text-subtitle2 q-mb-sm`},Rt={"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},zt={class:`text-subtitle2 q-mb-sm`},Bt={class:`column q-gutter-xs`},Vt={class:`row items-center q-gutter-sm q-mt-sm`},Ht={class:`row items-center q-gutter-sm q-mt-sm`},Ut={class:`text-grey-5 text-caption`,style:{"min-width":`80px`}},Wt={class:`text-grey-5 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Gt={"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Kt={class:`row items-center q-mb-sm`},qt={class:`text-subtitle2`},Jt={class:`column q-gutter-xs`},Yt={class:`row items-center q-gutter-sm`},Xt={class:`row items-center q-gutter-sm`},Zt={class:`q-pa-sm text-caption text-grey-5`},Qt={class:`q-mb-sm`},$t={class:`q-mb-sm`},en={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-indigo-4`},tn={class:`q-mb-xs text-grey-4`},nn={class:`q-mb-sm`},rn={class:`q-mb-xs text-grey-4`},an={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},on={class:`text-subtitle2 q-mb-sm`},sn={class:`row q-col-gutter-sm`},cn={class:`col-12 col-sm-6`},ln={class:`col-12 col-sm-6`},un={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},dn={class:`text-subtitle2 q-mb-sm`},fn={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},pn={class:`text-caption text-grey-5 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},mn={class:`column q-gutter-sm`},hn={class:`row items-center q-gutter-sm`},gn={class:`text-body2 text-grey-3`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},_n={class:`text-caption text-grey-6`},vn={key:0,class:`q-mt-sm`},yn={class:`row items-center q-mt-xs`},bn={class:`text-caption text-grey-6`},xn={class:`text-caption text-indigo-4`},Sn={key:1,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},Cn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wn={class:`text-subtitle2 q-mb-sm`},Tn={class:`q-pa-sm column q-gutter-sm`},En={class:`row items-center q-gutter-sm`},Dn={class:`text-caption text-grey-5`},On={class:`text-caption text-grey-5`,style:{"min-width":`40px`,"text-align":`right`}},kn={class:`text-caption text-grey-7`},An={class:`text-caption text-grey-7`},jn={class:`text-caption text-grey-7`},Mn={class:`text-caption text-grey-7`},Nn={class:`q-pa-sm column q-gutter-sm`},Pn={key:1,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Fn={class:`row items-center q-mb-sm`},In={class:`text-subtitle2`},Ln={class:`text-caption text-grey-7 q-mb-sm`},Rn={class:`q-mb-sm`},zn={class:`row items-center q-mb-sm q-mt-md`},Bn={class:`text-subtitle2`},Vn={class:`text-caption text-grey-7 q-mb-sm`},Hn={class:`row items-center q-mb-sm q-mt-md`},Un={class:`text-subtitle2`},Wn={class:`text-caption text-grey-7 q-mb-sm`},Gn={class:`row items-center q-mb-sm q-mt-md`},Kn={class:`text-subtitle2`},qn={class:`text-caption text-grey-7 q-mb-sm`},Jn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yn={class:`text-subtitle2 q-mb-sm`},Xn={class:`text-caption text-grey-7 q-mb-sm`},Zn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Qn={class:`text-subtitle2 q-mb-sm`},$n={class:`text-caption text-grey-7 q-mb-sm`},er={"data-tour":`settings-card-notion`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},tr={class:`text-subtitle2 q-mb-sm`},nr={class:`text-caption text-grey-7 q-mb-sm`},rr={class:`q-mb-sm`},ir={class:`field-label-sub text-caption q-mb-xs text-grey-7`},ar={class:`q-mb-sm`},or={class:`field-label-sub text-caption q-mb-xs text-grey-7`},sr={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},cr={class:`text-subtitle2 q-mb-sm`},lr={class:`text-caption text-grey-7 q-mb-sm`},ur={class:`q-mb-sm`},dr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},fr={class:`q-mb-sm`},pr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},mr={class:`row items-center q-mb-sm`},hr={class:`text-subtitle2`},gr={class:`text-caption text-grey-7 q-mb-xs`},_r={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vr={class:`text-subtitle2 q-mb-sm`},yr={class:`text-caption text-grey-7 q-mb-sm`},br={class:`q-mb-sm`},xr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Sr={class:`q-mb-sm`},Cr={class:`row items-center q-mb-xs`},wr={class:`field-label-sub text-caption text-grey-7 col`},Tr=[`src`,`alt`],Er={key:1,class:`text-caption text-grey-7 q-py-sm`},Dr={key:0,class:`text-caption text-orange-5 q-mb-xs`},Or={key:3,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},kr={class:`text-subtitle2 q-mb-sm`},Ar={class:`row items-center q-mb-sm`},jr={class:`text-subtitle2`},Mr={class:`text-caption text-grey-7 q-mb-xs`},Nr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pr={class:`text-subtitle2 q-mb-sm`},Fr={class:`text-caption text-grey-7 q-mb-sm`},Ir={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Lr={class:`text-subtitle2 q-mb-sm`},Rr={class:`text-caption text-grey-7 q-mb-sm`},zr={class:`row items-center no-wrap`},Br={key:1,class:`text-caption text-grey-7 q-mb-sm`},Vr={class:`row items-center q-gutter-sm`},Hr={"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ur={class:`text-subtitle2 q-mb-sm`},Wr={class:`text-caption text-grey-7 q-mb-sm`},Gr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Kr={class:`text-subtitle2 q-mb-sm`},qr={class:`text-caption text-grey-7 q-mb-sm`},Jr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yr={class:`text-subtitle2 q-mb-sm`},Xr={class:`text-caption text-grey-7 q-mb-sm`},Zr={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`},$r={class:`text-subtitle2 q-mb-sm`},ei={class:`text-caption text-grey-7 q-mb-sm`},ti={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ni={class:`row items-center justify-between q-mb-sm`},ri={class:`text-subtitle2`},ii={class:`text-caption text-grey-7 q-mb-xs`},ai={class:`text-caption text-grey-6 mono-guide q-mb-sm`},oi={"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},si={class:`text-subtitle2 q-mb-sm`},ci={class:`text-caption text-grey-7 q-mb-sm`},li={class:`text-caption text-grey-7 q-mt-xs`},ui={"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},di={class:`text-subtitle2 q-mb-sm`},fi={class:`text-caption text-grey-7 q-mb-sm`},pi={class:`row q-gutter-sm`},mi={class:`row justify-end settings-sticky-actions`},hi={class:`q-pa-none`},gi={class:`row q-gutter-md`,style:{"min-height":`500px`}},_i={class:`project-list-col`},vi={class:`settings-card rounded-borders`,style:{height:`100%`}},yi={class:`q-pa-sm`},bi={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},xi={key:0,class:`q-pa-md text-center text-caption text-grey-8`},Si={class:`q-pa-sm`},Ci={class:`project-form-col`},wi={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Ti={class:`row items-center q-mb-md`},Ei={class:`text-subtitle1 text-weight-medium text-grey-3`},Di={key:0,class:`q-mb-md`},Oi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ki={class:`text-caption text-grey-7 q-mt-xs`},Ai={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ji={class:`text-subtitle2 q-mb-md`},Mi={class:`q-mb-md`},Ni={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pi={class:`q-mb-md`},Fi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ii={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Li={class:`row items-center q-gutter-xs`},Ri={class:`text-caption text-grey-6 q-mt-xs`},zi={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bi={class:`text-subtitle2 q-mb-md`},Vi={class:`q-mb-md`},Hi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ui={class:`q-mb-md`},Wi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Gi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ki={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},qi={class:`text-subtitle2 q-mb-md`},Ji={class:`q-mb-md`},Yi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xi={class:`text-caption text-grey-7 q-mb-xs`},Zi={class:`q-mb-md`},Qi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},$i={class:`text-caption text-grey-7 q-mb-xs`},ea={class:`q-mb-md`},ta={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},na={class:`text-caption text-grey-7 q-mb-xs`},ra={class:`q-mb-md`},ia={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},aa={class:`text-caption text-grey-7 q-mb-xs`},oa={class:`q-mb-md`},sa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ca={class:`text-caption text-grey-7 q-mb-xs`},la={class:`q-mb-md`},ua={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},da={class:`text-caption text-grey-7 q-mb-xs`},fa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},pa={class:`text-caption text-grey-7 q-mt-xs`},ma={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ha={class:`text-subtitle2 q-mb-md`},ga={class:`q-mb-md`},_a={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},va={class:`text-caption text-grey-7 q-mb-xs`},ya={class:`text-caption text-grey-7 q-mt-xs`},ba={class:`q-mb-md`},xa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Sa={class:`text-caption text-grey-7 q-mb-xs`},Ca={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-grey-7`},wa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ta={class:`text-caption text-grey-7 q-mb-xs`},Ea={class:`row items-center justify-between q-mb-xs`},Da={class:`field-label text-body2 text-weight-medium text-grey-6`},Oa={class:`text-caption text-grey-7 q-mb-xs`},ka={class:`text-caption text-grey-6 mono-guide q-mb-sm`},Aa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ja={class:`text-subtitle2 q-mb-md`},Ma={class:`q-mb-md`},Na={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Pa={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Fa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ia={class:`text-subtitle2 q-mb-xs`},La={class:`text-caption text-grey-7 q-mb-sm`},Ra={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},za={class:`text-subtitle2 q-mb-xs`},Ba={class:`text-caption text-grey-7 q-mb-sm`},Va={class:`row items-center q-gutter-sm settings-sticky-actions`},Ha={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Ua={class:`text-body2 text-grey-8`},Wa={class:`q-pa-none`},Ga={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},Ka={class:`row items-center justify-between q-mb-md`},qa={class:`text-subtitle1 text-weight-medium text-grey-3`},Ja={class:`row q-gutter-sm items-center`},Ya={key:0,class:`text-grey-6 q-py-lg text-center`},Xa={key:1,class:`column q-gutter-sm`},Za={class:`row items-start justify-between no-wrap`},Qa={class:`col`},$a={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},eo={class:`text-caption text-grey-5 q-mt-xs`},to={class:`row no-wrap q-gutter-xs`},no={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},ro={key:0,class:`settings-savebar`},io={class:`settings-savebar__label`},ao={class:`text-subtitle1`},oo={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},so={key:0,class:`text-negative text-caption`},co=B(w({__name:`SettingsPage`,setup(e){let t=Fe(),n=ve(),p=Oe(),{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(``),we=g(``),R=g(!0),z=g(!0),B=g(me),H=g(1),Je=g(``),Ye=g(``),Xe=g(``),W=g(``),Ze=g([]),Qe=g(!1),$e=g(``),et=b(()=>Ze.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function tt(e=!1){if(!Qe.value&&!(!e&&Ze.value.length>0)){Qe.value=!0,$e.value=``;try{let e=await fetch(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Ze.value=Array.isArray(t.users)?t.users:[]}catch(e){$e.value=e instanceof Error?e.message:String(e),Ze.value=[]}finally{Qe.value=!1}}}let G=g(``),it=g(``),K=g(null),at=g(`bypass`),co=g(`bypass`),lo=g(``),uo=g(``),fo=g([]),q=g([]),po=g(``),mo=g(``),ho=g(``),go=g(`no-tasks`),_o=g(!1),vo=g(``),yo=g(``),bo=g(``),xo=g(!1);function So(e){Q.value.path=e}let Co=b(()=>[{label:w(`settings.cleanupScriptMode.inherit`),value:``},{label:w(`settings.cleanupScriptMode.idle`),value:`idle`},{label:w(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),wo=g(pe),To=g(null),Eo=g(!0);function Do(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function Oo(){let e=Do(po.value);!e||q.value.includes(e)||(q.value.push(e),po.value=``)}function ko(e){q.value.splice(e,1)}function Ao(e,t){let n=Do(t);if(!n)return;let r=q.value.indexOf(n);r!==-1&&r!==e||(q.value[e]=n)}function jo(e,t){let n=e+t;if(n<0||n>=q.value.length)return;let r=q.value;[r[e],r[n]]=[r[n],r[e]]}let Mo=g(!1),J=g(`superpowers`),No=b(()=>{switch(J.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`}}),Po=g(``),Fo=g(``),Io=g(``),Lo=g(``),Ro=g(``),zo=g(!1),Bo=g(`alt`),Vo=g(`auto`),Y=g(null),Ho=g(``),Uo=g(``),Wo=g(0),Go=g(``),Ko=g(!1),qo=g(!0),Jo=g(null),Yo=g(!1);function Xo(){t.dialog({title:w(`settings.skillSuite.reloadDefaults`),message:w(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{Po.value=Ie,Fo.value=Re,Io.value=Be,Lo.value=Le,Ro.value=ze})}function Zo(e){let n=e===`global`?yo.value:Q.value.changeSourceBranchScript,r=()=>{e===`global`?yo.value=bo.value:Q.value.changeSourceBranchScript=bo.value};if(!n.trim()||n===bo.value){r();return}t.dialog({title:w(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:w(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function Qo(e){return!e||e===`tiny`||e===`base`?.1:.2}let $o=[e=>e.trim().length>0||w(`settings.worktreesPathRequired`)],es=g(!1),X=g(-1),Z=g(!1),Q=g({path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),ts=[`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`ciFixPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`devServer`,`e2e`,`finalization`],ns=g(null),rs=g(null),is=b(()=>n.projects.map(e=>({value:e.path,label:Sc(e)||e.path})));function as(e){let t=n.projects.find(t=>t.path===e);t&&(Q.value.defaultModel=t.defaultModel??``,Q.value.forge=t.forge??`auto`,Q.value.prPromptTemplate=t.prPromptTemplate??``,Q.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Q.value.ciFixPromptTemplate=t.ciFixPromptTemplate??``,Q.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Q.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Q.value.gitConventions=t.gitConventions??``,Q.value.setupScript=t.setupScript??``,Q.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Q.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Q.value.finalization={prompt:t.finalization?.prompt??``})}function os(){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 ts.every(t=>JSON.stringify(Q.value[t])===JSON.stringify(e[t]))}function ss(e){if(e===null){ns.value=null,rs.value=null;return}if(rs.value===null&&os()){as(e),ns.value=e,rs.value=e;return}let r=n.projects.find(t=>t.path===e),i=r&&Sc(r)||e;t.dialog({title:w(`settings.copyFromConfirmTitle`),message:w(`settings.copyFromConfirm`,{project:i}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{as(e),ns.value=e,rs.value=e}).onCancel(()=>{ns.value=rs.value})}let cs=g([]),ls=g([]);async function us(){try{let e=await fetch(`/api/skills`);e.ok&&(cs.value=await e.json())}catch{}}function ds(e,t){t(()=>{let t=e.trim().toLowerCase();ls.value=t?cs.value.filter(e=>e.toLowerCase().includes(t)):cs.value.slice()})}let fs=g([]),ps=g(!1),ms=g(!1),hs=g(!1),gs=g(!1),_s=g(null),vs=g(``),ys=g(``),bs=g(``),$=g(``),xs=g(!1),Ss=g(!1),Cs=b(()=>[...p.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),ws=[`{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 Ts(){_s.value=null,vs.value=``,ys.value=``,bs.value=``,$.value=``,gs.value=!0}function Es(e){_s.value=e.slug,vs.value=e.slug,ys.value=e.description,bs.value=e.content,$.value=``,gs.value=!0}async function Ds(){$.value=``;let e=vs.value.trim(),t=ys.value.trim();if(_s.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(!bs.value.trim()){$.value=w(`templates.contentRequired`);return}xs.value=!0;try{_s.value===null?await p.createTemplate({slug:e,description:t,content:bs.value}):await p.updateTemplate(_s.value,{description:t,content:bs.value}),gs.value=!1}catch(e){$.value=e instanceof Error?e.message:w(`templates.createFailed`)}finally{xs.value=!1}}function Os(){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()=>{Ss.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{Ss.value=!1}})}async function ks(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 As=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function js(e){ne.value=e,localStorage.setItem(`kobo:locale`,e)}let Ms=b(()=>[...Ke.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Ns=b(()=>[...Ge.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Ps=b(()=>[{label:w(`settings.useGlobal`),value:``},...Ms.value]),Fs=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`}]),Is=b(()=>qe[`claude-code`].map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Ls=b(()=>qe.codex.map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Rs=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`)}]),zs=b(()=>[{label:w(`settings.mcpAutoSelect`),value:``},...n.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Bs=b(()=>fe.map(e=>({label:w(e.labelKey),value:e.id}))),Vs=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})))),Hs=[{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 Us(){ge(B.value,H.value)}let Ws=b(()=>X.value<0||X.value>=n.projects.length?null:n.projects[X.value]??null),Gs=g(``),Ks=g(``);function qs(){return JSON.stringify({claudeModel:ce.value,codexModel:le.value,prPrompt:k.value,reviewPrompt:de.value,ciFixPrompt:A.value,gitConventions:Ce.value,editorCommand:M.value,fileManagerCommand:we.value,browserNotifications:R.value,audioNotifications:z.value,audioNotificationSound:B.value,audioNotificationVolume:H.value,notionStatusProperty:Je.value,notionStatus:Ye.value,notionAssigneeProperty:Xe.value,notionUserId:W.value,notionInitialPrompt:G.value,sentryInitialPrompt:it.value,claudePermissionMode:at.value,codexPermissionMode:co.value,notionMcpKey:lo.value,sentryMcpKey:uo.value,tags:fo.value,branchPrefixes:q.value,setupScript:mo.value,cleanupScript:ho.value,cleanupScriptMode:go.value,cleanupScriptOnlyOnChanges:_o.value,archiveScript:vo.value,changeSourceBranchScript:yo.value,worktreesPath:wo.value,worktreesPrefixByProject:Eo.value,flattenWorkspaceList:Mo.value,skillSuite:J.value,customReviewTemplate:Po.value,customAutoLoopReviewGate:Fo.value,customAutoLoopGroomingIntro:Io.value,customQaPromptTemplate:Lo.value,customBrainstormingInstruction:Ro.value,voiceEnabled:zo.value,voicePttKey:Bo.value,voiceLanguage:Vo.value,voiceModel:Y.value,voiceCommandPath:Ho.value,voiceFfmpegPath:Uo.value,voiceTemperature:Wo.value,voicePrompt:Go.value,voiceTranslateToEnglish:Ko.value,voiceSuppressNst:qo.value})}function Js(){return JSON.stringify(Q.value)}let Ys=b(()=>qs()!==Gs.value),Xs=b(()=>Js()!==Ks.value),Zs=b(()=>E.value===`projects`?Xs.value&&(Ws.value!==null||Z.value):E.value===`templates`?!1:Ys.value),Qs=b(()=>E.value===`projects`?ms.value:xs.value);function $s(){E.value===`projects`?vc():lc()}function ec(){Yo.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.ciFixPromptTemplate??``,Ce.value=n.global.gitConventions,M.value=n.global.editorCommand??``,we.value=n.global.fileManagerCommand??``,R.value=n.global.browserNotifications??!0,z.value=n.global.audioNotifications??!0,B.value=_e(n.global.audioNotificationSound);let t=n.global.audioNotificationVolume;H.value=typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):1,Je.value=n.global.notionStatusProperty??``,Ye.value=n.global.notionInProgressStatus??``,Xe.value=n.global.notionAssigneeProperty??``,W.value=n.global.notionUserId??``,G.value=n.global.notionInitialPromptTemplate??``,it.value=n.global.sentryInitialPromptTemplate??``;{let e=n.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,r=e[`claude-code`];at.value=t(r)?r:`bypass`;let i=e.codex;co.value=t(i)?i:`bypass`}lo.value=n.global.notionMcpKey??``,uo.value=n.global.sentryMcpKey??``,fo.value=Array.isArray(n.global.tags)?[...n.global.tags]:[],q.value=Array.isArray(n.global.branchPrefixes)?[...n.global.branchPrefixes]:[],mo.value=n.global.setupScript??``,ho.value=n.global.cleanupScript??``,go.value=n.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,_o.value=n.global.cleanupScriptOnlyOnChanges??!1,vo.value=n.global.archiveScript??``,yo.value=n.global.changeSourceBranchScript??``,wo.value=n.global.worktreesPath??`.worktrees`,Eo.value=n.global.worktreesPrefixByProject??!1,Mo.value=n.global.flattenWorkspaceList??!1,J.value=n.global.skillSuite??`superpowers`,Po.value=n.global.customReviewTemplate??``,Fo.value=n.global.customAutoLoopReviewGate??``,Io.value=n.global.customAutoLoopGroomingIntro??``,Lo.value=n.global.customQaPromptTemplate??``,Ro.value=n.global.customBrainstormingInstruction??``,zo.value=n.global.voiceEnabled??!1,Bo.value=n.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,Vo.value=n.global.voiceLanguage??`auto`,Y.value=n.global.voiceModel??null,Ho.value=n.global.voiceCommandPath??``,Uo.value=n.global.voiceFfmpegPath??``,Wo.value=typeof n.global.voiceTemperature==`number`?n.global.voiceTemperature:0,Go.value=n.global.voicePrompt??``,Ko.value=n.global.voiceTranslateToEnglish??!1,qo.value=n.global.voiceSuppressNonSpeechTokens??!0,Yo.value=!1,Gs.value=qs()}ee(()=>Y.value,(e,t)=>{Yo.value||e!==t&&(Wo.value=Qo(e))});function tc(e){if(!e){Q.value={path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},fs.value=[],Ks.value=Js();return}Q.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??``,ciFixPromptTemplate:e.ciFixPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,taskPromptTemplate:e.taskPromptTemplate??``,cleanupScript:e.cleanupScript??``,cleanupScriptMode:e.cleanupScriptMode??``,archiveScript:e.archiveScript??``,changeSourceBranchScript:e.changeSourceBranchScript??``,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??``}},Ks.value=Js(),e.path&&nc(e.path)}async function nc(e){if(!e.trim()){fs.value=[];return}ps.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();fs.value=n.local??n.branches??[]}catch{fs.value=[]}finally{ps.value=!1}}let rc=null;ee(()=>Q.value.path,e=>{rc&&clearTimeout(rc),rc=setTimeout(()=>{nc(e)},500)}),ee(X,()=>{Z.value=!1,tc(Ws.value)});let ic=g(null);async function ac(){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 oc(){ic.value?.click()}async function sc(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(),ec(),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 cc(e){if(K.value===null){K.value=e;try{let t=await n.fetchGlobalDefaults(),r={prPromptTemplate:k,reviewPromptTemplate:de,ciFixPromptTemplate:A,gitConventions:Ce,notionInitialPromptTemplate:G,sentryInitialPromptTemplate:it};r[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),t.notify({type:`negative`,message:w(`settings.resetFailed`),position:`top`})}finally{K.value=null}}}async function lc(){if(await To.value?.validate()!==!1){es.value=!0;try{await n.updateGlobal({defaultModelByEngine:{"claude-code":ce.value,codex:le.value},prPromptTemplate:k.value,reviewPromptTemplate:de.value,ciFixPromptTemplate:A.value,gitConventions:Ce.value,editorCommand:M.value,fileManagerCommand:we.value,browserNotifications:R.value,audioNotifications:z.value,audioNotificationSound:B.value,audioNotificationVolume:H.value,notionStatusProperty:Je.value,notionInProgressStatus:Ye.value,notionAssigneeProperty:Xe.value,notionUserId:W.value,notionInitialPromptTemplate:G.value,sentryInitialPromptTemplate:it.value,defaultPermissionModeByEngine:{"claude-code":at.value,codex:co.value},notionMcpKey:lo.value,sentryMcpKey:uo.value,tags:fo.value,branchPrefixes:q.value,setupScript:mo.value,cleanupScript:ho.value,cleanupScriptMode:go.value,cleanupScriptOnlyOnChanges:_o.value,archiveScript:vo.value,changeSourceBranchScript:yo.value,worktreesPath:wo.value,worktreesPrefixByProject:Eo.value,flattenWorkspaceList:Mo.value,skillSuite:J.value,customReviewTemplate:Po.value,customAutoLoopReviewGate:Fo.value,customAutoLoopGroomingIntro:Io.value,customQaPromptTemplate:Lo.value,customBrainstormingInstruction:Ro.value,voiceEnabled:zo.value,voicePttKey:Bo.value,voiceLanguage:Vo.value,voiceModel:Y.value,voiceCommandPath:Ho.value.trim(),voiceFfmpegPath:Uo.value.trim(),voiceTemperature:Wo.value,voicePrompt:Go.value,voiceTranslateToEnglish:Ko.value,voiceSuppressNonSpeechTokens:qo.value}),Gs.value=qs(),t.notify({type:`positive`,message:w(`settings.saved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.saveError`),position:`top`})}finally{es.value=!1}}}async function uc(e){Jo.value=e,hc();try{await n.downloadVoiceModel(e)}catch{t.notify({type:`negative`,message:w(`voice.downloadFailed`),position:`top`})}finally{Jo.value=null,gc()}}async function dc(e){Jo.value=e;try{await n.deleteVoiceModel(e),Y.value===e&&(Y.value=null)}catch{t.notify({type:`negative`,message:w(`voice.deleteFailed`),position:`top`})}finally{Jo.value=null}}async function fc(e){try{await n.cancelVoiceModelDownload(e)}catch{t.notify({type:`negative`,message:w(`voice.cancelFailed`),position:`top`})}}function pc(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 mc=null;function hc(){mc||=setInterval(()=>{n.fetchVoiceModels().catch(()=>{})},800)}function gc(){mc&&=(clearInterval(mc),null)}async function _c(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 vc(){if(!Q.value.path.trim()){t.notify({type:`negative`,message:w(`settings.projectPathRequired`),position:`top`});return}ms.value=!0;try{await n.upsertProject(Q.value.path.trim(),{displayName:Q.value.displayName,color:Q.value.color,defaultSourceBranch:Q.value.defaultSourceBranch,defaultModel:Q.value.defaultModel,forge:Q.value.forge,prPromptTemplate:Q.value.prPromptTemplate,reviewPromptTemplate:Q.value.reviewPromptTemplate,ciFixPromptTemplate:Q.value.ciFixPromptTemplate,notionInitialPromptTemplate:Q.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Q.value.sentryInitialPromptTemplate,gitConventions:Q.value.gitConventions,setupScript:Q.value.setupScript,taskPromptTemplate:Q.value.taskPromptTemplate,cleanupScript:Q.value.cleanupScript,cleanupScriptMode:Q.value.cleanupScriptMode,archiveScript:Q.value.archiveScript,changeSourceBranchScript:Q.value.changeSourceBranchScript,devServer:Q.value.devServer,e2e:Q.value.e2e,finalization:Q.value.finalization}),Z.value=!1;let e=n.projects.findIndex(e=>e.path===Q.value.path.trim());e>=0&&(X.value=e),Ks.value=Js(),t.notify({type:`positive`,message:w(`settings.projectSaved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectSaveError`),position:`top`})}finally{ms.value=!1}}function yc(){if(!Ws.value)return;let e=Ws.value.displayName||Ws.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(Ws.value){hs.value=!0;try{await n.deleteProject(Ws.value.path),X.value=-1,Z.value=!1,tc(null),t.notify({type:`positive`,message:w(`settings.projectDeleted`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectDeleteError`),position:`top`})}finally{hs.value=!1}}})}function bc(){X.value=-1,Z.value=!0,tc(null),ns.value=null,rs.value=null}function xc(e){Z.value=!1,X.value=e,ns.value=null,rs.value=null}function Sc(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Cc=g([]);function wc(e,t){t(()=>{Cc.value=e?fs.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):fs.value})}return o(async()=>{await Promise.all([n.fetchSettings(),n.fetchActiveMcpServers(),us()]);try{bo.value=(await n.fetchGlobalDefaults()).changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await n.fetchVoiceModels(),await n.fetchVoiceRuntime(),ec(),tt().catch(()=>{})}),s(()=>{rc&&clearTimeout(rc),gc()}),(e,t)=>(i(),h(We,{class:`settings-page`},{default:r(()=>[C(`div`,st,[C(`aside`,ct,[C(`div`,lt,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(F,{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(I,{avatar:``,class:`settings-nav__icon`},{default:r(()=>[d(O,{name:e.icon,size:`16px`},null,8,[`name`])]),_:2},1024),d(I,{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`,ut,[C(`header`,dt,[C(`h2`,ft,u(oe.value),1)]),C(`div`,pt,[a(C(`div`,mt,[a(C(`div`,ht,[C(`div`,gt,u(e.$t(`settings.language`)),1),d(U,{"model-value":f(ne),options:As,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":js},null,8,[`model-value`])],512),[[D,E.value===`general`]]),a(C(`div`,_t,[C(`div`,vt,u(e.$t(`settings.workspaceListSection`)),1),d(P,{modelValue:Mo.value,"onUpdate:modelValue":t[0]||=e=>Mo.value=e,label:e.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),C(`div`,yt,u(e.$t(`settings.flattenWorkspaceListHint`)),1)],512),[[D,E.value===`general`]]),a(C(`div`,bt,[C(`div`,xt,u(e.$t(`settings.skillSuite.section`)),1),d(ke,{modelValue:J.value,"onUpdate:modelValue":t[1]||=e=>J.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`,St,u(e.$t(No.value)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:e.$t(`settings.skillSuite.reloadDefaults`),disable:J.value!==`custom`,class:`q-mt-sm`,onClick:Xo},null,8,[`label`,`disable`])],512),[[D,E.value===`skills`]]),E.value===`skills`&&J.value===`custom`?(i(),x(`div`,Ct,[C(`div`,wt,u(e.$t(`settings.skillSuite.customPrompts`)),1),C(`div`,Tt,u(e.$t(`settings.skillSuite.reviewTemplate`)),1),d(N,{modelValue:Po.value,"onUpdate:modelValue":t[2]||=e=>Po.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Et,u(e.$t(`settings.skillSuite.autoLoopReviewGate`)),1),d(N,{modelValue:Fo.value,"onUpdate:modelValue":t[3]||=e=>Fo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Dt,u(e.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),d(N,{modelValue:Io.value,"onUpdate:modelValue":t[4]||=e=>Io.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Ot,u(e.$t(`settings.skillSuite.qaTemplate`)),1),d(N,{modelValue:Lo.value,"onUpdate:modelValue":t[5]||=e=>Lo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,kt,u(e.$t(`settings.skillSuite.brainstormingInstruction`)),1),d(N,{modelValue:Ro.value,"onUpdate:modelValue":t[6]||=e=>Ro.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):_(``,!0),a(C(`div`,At,[C(`div`,jt,u(e.$t(`settings.defaultModelClaude`)),1),d(U,{modelValue:ce.value,"onUpdate:modelValue":t[7]||=e=>ce.value=e,options:Ms.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`,Mt,u(e.$t(`settings.defaultModelCodex`)),1),d(U,{modelValue:le.value,"onUpdate:modelValue":t[8]||=e=>le.value=e,options:Ns.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.defaultPermissionModeClaude`)),1),C(`div`,Pt,u(e.$t(`settings.defaultPermissionModeHint`)),1),d(U,{modelValue:at.value,"onUpdate:modelValue":t[9]||=e=>at.value=e,options:Is.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),C(`div`,Ft,u(e.$t(`settings.defaultPermissionModeCodex`)),1),d(U,{modelValue:co.value,"onUpdate:modelValue":t[10]||=e=>co.value=e,options:Ls.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])],512),[[D,E.value===`agents`]]),a(C(`div`,It,[C(`div`,Lt,u(e.$t(`settings.activityFeed`)),1),d(P,{"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`,Rt,[C(`div`,zt,u(e.$t(`settings.notifications`)),1),C(`div`,Bt,[d(P,{modelValue:R.value,"onUpdate:modelValue":t[12]||=e=>R.value=e,label:e.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),d(P,{modelValue:z.value,"onUpdate:modelValue":t[13]||=e=>z.value=e,label:e.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),C(`div`,Vt,[d(U,{modelValue:B.value,"onUpdate:modelValue":t[14]||=e=>B.value=e,options:Bs.value,label:e.$t(`settings.notificationSound`),disable:!z.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),d(j,{flat:``,dense:``,color:`indigo-4`,icon:`play_arrow`,label:e.$t(`settings.notificationSoundPreview`),disable:!z.value,onClick:Us},null,8,[`label`,`disable`])]),C(`div`,Ht,[C(`div`,Ut,u(e.$t(`settings.notificationVolume`)),1),d(nt,{modelValue:H.value,"onUpdate:modelValue":t[15]||=e=>H.value=e,min:0,max:1,step:.05,disable:!z.value,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`disable`]),C(`div`,Wt,u(Math.round(H.value*100))+`% `,1)])],512),[[D,E.value===`notifications`]]),a(C(`div`,Gt,[C(`div`,Kt,[C(`div`,qt,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`,Jt,[C(`div`,Yt,[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`,Xt,[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(Me,{dense:``,dark:``,icon:`help_outline`,label:e.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:r(()=>[C(`div`,Zt,[C(`div`,Qt,u(e.$t(`voice.installGuideIntro`)),1),C(`div`,$t,[C(`a`,en,u(e.$t(`voice.installLink`)),1)]),C(`div`,tn,u(e.$t(`voice.installGuideUbuntuTitle`)),1),t[92]||=C(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
|
|
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-Dq_CVZlr.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 we,t as N}from"./QInput-D0t39uK_.js";import{t as Te}from"./QCheckbox-Cq2STfHp.js";import{t as P}from"./QToggle-DBzTAIbK.js";import{_ as Ee,b as De,g as Oe,t as ke,x as Ae}from"./index-CSvMoCLw.js";import{n as F,t as I}from"./QItemSection-DRg-QuAD.js";import{t as L}from"./QItemLabel-Btqw0P7M.js";import{d as R,t as je}from"./QTooltip-CxkTFl9W.js";import{t as Me}from"./QExpansionItem-C3koMJhv.js";import{t as z}from"./TouchPan-DWCVQZB9.js";import{t as B}from"./_plugin-vue_export-helper-r4mAJOHR.js";import{t as V}from"./QSpace-Crcx82On.js";import{t as Ne}from"./QList-CRYZxnPD.js";import{t as H}from"./QMenu-tPOTRRE_.js";import{t as Pe}from"./ClosePopup-BG4U_b73.js";import{t as Fe}from"./use-quasar-q6dh7QVJ.js";import{a as Ie,i as Le,n as Re,r as ze,t as Be}from"./skill-suite-prompts-8f_JW79j.js";import{t as Ve}from"./QChip-D2TVel5I.js";import{n as He,t as Ue}from"./use-onboarding-Dz9n2QJO.js";import{t as We}from"./QPage-3-ah4oor.js";import{a as U,n as Ge,r as Ke,t as qe}from"./permissionModes-CpgAOu0t.js";import{t as Je}from"./QBanner-C_TvxtXi.js";var Ye=`q-slider__marker-labels`,Xe=e=>({value:e}),W=({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(()=>N(x.value)),ie=b(()=>N(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 we(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),R(i,x.value,S.value)}function N(e){return ne.value===0?0:(e-o.min)/ne.value}function Te(e,t){let n=oe(e),r=o.vertical===!0?R((n.top-t.top)/t.height,0,1):R((n.left-t.left)/t.width,0,1);return R(y.value===!0?1-r:r,E.value,ie.value)}let P=b(()=>de(o.markers)===!0?o.markers:T.value),Ee=b(()=>{let e=[],t=P.value,n=o.max,r=o.min;do e.push(r),r+=t;while(r<n);return e.push(n),e}),De=b(()=>{let e=` ${Ye}${_.value}-`;return`q-slider__marker-labels${e}${o.switchMarkerLabelsSide===!0?`switched`:`standard`}${e}${y.value===!0?`rtl`:`ltr`}`}),Oe=b(()=>o.markerLabels===!1?null:F(o.markerLabels).map((e,t)=>({index:t,value:e.value,label:e.label||e.value,classes:De.value+(e.classes===void 0?``:` `+e.classes),style:{...I(e.value),...e.style||{}}}))),ke=b(()=>({markerList:Oe.value,markerMap:L.value,classes:De.value,getStyle:I})),Ae=b(()=>{let e=re.value===0?`2px`:100*P.value/re.value;return{...M.value,backgroundSize:o.vertical===!0?`2px ${e}%`:`${e}% 2px`}});function F(e){if(e===!1)return null;if(e===!0)return Ee.value.map(Xe);if(typeof e==`function`)return Ee.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 I(e){return{[D.value]:`${100*(e-o.min)/ne.value}%`}}let L=b(()=>{if(o.markerLabels===!1)return null;let e={};return Oe.value.forEach(t=>{e[t.value]=t}),e});function je(){if(c[`marker-label-group`]!==void 0)return c[`marker-label-group`](ke.value);let e=c[`marker-label`]||W;return Oe.value.map(t=>e({marker:t,...ke.value}))}let Me=b(()=>[[z,B,void 0,{[O.value]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]);function B(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:Ae.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,()=>Me.value)];return o.markerLabels!==!1&&s[o.switchMarkerLabelsSide===!0?`unshift`:`push`](t(`div`,{key:`markerL`,class:be.value},je())),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:we,convertModelToRatio:N,getDraggingRatio:Te}}}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:we(e)}),o=g(null),s=g(0),c=g(0);function l(){c.value=e.modelValue===null?i.innerMin.value:R(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=R(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`},K=[`title`],at={key:1,class:`row justify-center q-mt-sm`},ot=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(Ee,{"model-value":e.modelValue,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:r(()=>[d(De,{class:`text-grey-3`,style:{"min-width":`480px`,"max-width":`90vw`,background:`#1e1e3a`}},{default:r(()=>[d(Ae,{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(Ae,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,K),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(F,{key:0,clickable:``,onClick:n[0]||=e=>y(l.value)},{default:r(()=>[d(I,{avatar:``},{default:r(()=>[d(O,{name:`arrow_upward`,color:`grey-5`})]),_:1}),d(I,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(F,{key:e.path,clickable:``,onClick:t=>y(e.path)},{default:r(()=>[d(I,{avatar:``},{default:r(()=>[d(O,{name:`folder`,color:`amber-6`})]),_:1}),d(I,null,{default:r(()=>[v(u(e.name),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[xe]])),128)),!p.value&&f.value.length===0?(i(),h(F,{key:1},{default:r(()=>[d(I,{class:`text-grey-7`},{default:r(()=>[v(u(t.$t(`folderPicker.empty`)),1)]),_:1})]),_:1})):_(``,!0)]),_:1}),p.value?(i(),x(`div`,at,[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`]))}}),st={class:`settings-layout`},ct={class:`settings-nav`},lt={class:`settings-nav__title`},ut={class:`settings-content`},dt={class:`settings-content__header`},ft={class:`settings-content__title`},pt={class:`settings-panels`},mt={class:`settings-global-wrap`},ht={"data-tour":`settings-card-general`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},gt={class:`text-subtitle2 q-mb-sm`},_t={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vt={class:`text-subtitle2 q-mb-sm`},yt={class:`text-caption text-grey-7 q-mt-xs`},bt={"data-tour":`settings-card-skills`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},xt={class:`text-subtitle2 q-mb-sm`},St={class:`text-caption text-grey-6 q-mt-xs`},Ct={key:0,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wt={class:`text-subtitle2 q-mb-sm`},Tt={class:`text-caption text-grey-6 q-mb-xs q-mt-sm`},Et={class:`text-caption text-grey-6 q-mt-md q-mb-xs`},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={"data-tour":`settings-card-agents`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},jt={class:`text-subtitle2 q-mb-sm`},Mt={class:`text-subtitle2 q-mb-sm q-mt-md`},Nt={class:`text-subtitle2 q-mb-sm q-mt-md`},Pt={class:`text-caption text-grey-7 q-mb-sm`},Ft={class:`text-subtitle2 q-mb-sm q-mt-md`},It={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Lt={class:`text-subtitle2 q-mb-sm`},Rt={"data-tour":`settings-card-notifications`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},zt={class:`text-subtitle2 q-mb-sm`},Bt={class:`column q-gutter-xs`},Vt={class:`row items-center q-gutter-sm q-mt-sm`},Ht={class:`row items-center q-gutter-sm q-mt-sm`},Ut={class:`text-grey-5 text-caption`,style:{"min-width":`80px`}},Wt={class:`text-grey-5 text-caption`,style:{"min-width":`40px`,"text-align":`right`}},Gt={"data-tour":`settings-card-voice`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Kt={class:`row items-center q-mb-sm`},qt={class:`text-subtitle2`},Jt={class:`column q-gutter-xs`},Yt={class:`row items-center q-gutter-sm`},Xt={class:`row items-center q-gutter-sm`},Zt={class:`q-pa-sm text-caption text-grey-5`},Qt={class:`q-mb-sm`},$t={class:`q-mb-sm`},en={href:`https://github.com/ggml-org/whisper.cpp`,target:`_blank`,rel:`noopener noreferrer`,class:`text-indigo-4`},tn={class:`q-mb-xs text-grey-4`},nn={class:`q-mb-sm`},rn={class:`q-mb-xs text-grey-4`},an={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},on={class:`text-subtitle2 q-mb-sm`},sn={class:`row q-col-gutter-sm`},cn={class:`col-12 col-sm-6`},ln={class:`col-12 col-sm-6`},un={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},dn={class:`text-subtitle2 q-mb-sm`},fn={key:0,class:`voice-models-dir row items-center q-gutter-sm q-mb-md`},pn={class:`text-caption text-grey-5 ellipsis-2-lines`,style:{flex:`1`,"min-width":`0`,"word-break":`break-all`}},mn={class:`column q-gutter-sm`},hn={class:`row items-center q-gutter-sm`},gn={class:`text-body2 text-grey-3`,style:{"font-family":`var(--kobo-font-mono, monospace)`}},_n={class:`text-caption text-grey-6`},vn={key:0,class:`q-mt-sm`},yn={class:`row items-center q-mt-xs`},bn={class:`text-caption text-grey-6`},xn={class:`text-caption text-indigo-4`},Sn={key:1,class:`text-caption text-grey-7 q-mt-xs ellipsis`,style:{"font-family":`var(--kobo-font-mono, monospace)`,"word-break":`break-all`}},Cn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},wn={class:`text-subtitle2 q-mb-sm`},Tn={class:`q-pa-sm column q-gutter-sm`},En={class:`row items-center q-gutter-sm`},Dn={class:`text-caption text-grey-5`},On={class:`text-caption text-grey-5`,style:{"min-width":`40px`,"text-align":`right`}},kn={class:`text-caption text-grey-7`},An={class:`text-caption text-grey-7`},jn={class:`text-caption text-grey-7`},Mn={class:`text-caption text-grey-7`},Nn={class:`q-pa-sm column q-gutter-sm`},Pn={key:1,"data-tour":`settings-card-prompts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Fn={class:`row items-center q-mb-sm`},In={class:`text-subtitle2`},Ln={class:`text-caption text-grey-7 q-mb-sm`},Rn={class:`q-mb-sm`},zn={class:`row items-center q-mb-sm q-mt-md`},Bn={class:`text-subtitle2`},Vn={class:`text-caption text-grey-7 q-mb-sm`},Hn={class:`row items-center q-mb-sm q-mt-md`},Un={class:`text-subtitle2`},Wn={class:`text-caption text-grey-7 q-mb-sm`},Gn={class:`row items-center q-mb-sm q-mt-md`},Kn={class:`text-subtitle2`},qn={class:`text-caption text-grey-7 q-mb-sm`},Jn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yn={class:`text-subtitle2 q-mb-sm`},Xn={class:`text-caption text-grey-7 q-mb-sm`},Zn={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Qn={class:`text-subtitle2 q-mb-sm`},$n={class:`text-caption text-grey-7 q-mb-sm`},er={"data-tour":`settings-card-notion`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},tr={class:`text-subtitle2 q-mb-sm`},nr={class:`text-caption text-grey-7 q-mb-sm`},rr={class:`q-mb-sm`},ir={class:`field-label-sub text-caption q-mb-xs text-grey-7`},ar={class:`q-mb-sm`},or={class:`field-label-sub text-caption q-mb-xs text-grey-7`},sr={key:2,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},cr={class:`text-subtitle2 q-mb-sm`},lr={class:`text-caption text-grey-7 q-mb-sm`},ur={class:`q-mb-sm`},dr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},fr={class:`q-mb-sm`},pr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},mr={class:`row items-center q-mb-sm`},hr={class:`text-subtitle2`},gr={class:`text-caption text-grey-7 q-mb-xs`},_r={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},vr={class:`text-subtitle2 q-mb-sm`},yr={class:`text-caption text-grey-7 q-mb-sm`},br={class:`q-mb-sm`},xr={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Sr={class:`q-mb-sm`},Cr={class:`row items-center q-mb-xs`},wr={class:`field-label-sub text-caption text-grey-7 col`},Tr=[`src`,`alt`],Er={key:1,class:`text-caption text-grey-7 q-py-sm`},Dr={key:0,class:`text-caption text-orange-5 q-mb-xs`},Or={key:3,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},kr={class:`text-subtitle2 q-mb-sm`},Ar={class:`row items-center q-mb-sm`},jr={class:`text-subtitle2`},Mr={class:`text-caption text-grey-7 q-mb-xs`},Nr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Pr={class:`text-subtitle2 q-mb-sm`},Fr={class:`text-caption text-grey-7 q-mb-sm`},Ir={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Lr={class:`text-subtitle2 q-mb-sm`},Rr={class:`text-caption text-grey-7 q-mb-sm`},zr={class:`row items-center no-wrap`},Br={key:1,class:`text-caption text-grey-7 q-mb-sm`},Vr={class:`row items-center q-gutter-sm`},Hr={"data-tour":`settings-card-scripts`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ur={class:`text-subtitle2 q-mb-sm`},Wr={class:`text-caption text-grey-7 q-mb-sm`},Gr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Kr={class:`text-subtitle2 q-mb-sm`},qr={class:`text-caption text-grey-7 q-mb-sm`},Jr={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Yr={class:`text-subtitle2 q-mb-sm`},Xr={class:`text-caption text-grey-7 q-mb-sm`},Zr={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`},$r={class:`text-subtitle2 q-mb-sm`},ei={class:`text-caption text-grey-7 q-mb-sm`},ti={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ni={class:`row items-center justify-between q-mb-sm`},ri={class:`text-subtitle2`},ii={class:`text-caption text-grey-7 q-mb-xs`},ai={class:`text-caption text-grey-6 mono-guide q-mb-sm`},oi={"data-tour":`settings-card-worktrees`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},si={class:`text-subtitle2 q-mb-sm`},ci={class:`text-caption text-grey-7 q-mb-sm`},li={class:`text-caption text-grey-7 q-mt-xs`},ui={"data-tour":`settings-card-export`,class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},di={class:`text-subtitle2 q-mb-sm`},fi={class:`text-caption text-grey-7 q-mb-sm`},pi={class:`row q-gutter-sm`},mi={class:`row justify-end settings-sticky-actions`},hi={class:`q-pa-none`},gi={class:`row q-gutter-md`,style:{"min-height":`500px`}},_i={class:`project-list-col`},vi={class:`settings-card rounded-borders`,style:{height:`100%`}},yi={class:`q-pa-sm`},bi={class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},xi={key:0,class:`q-pa-md text-center text-caption text-grey-8`},Si={class:`q-pa-sm`},Ci={class:`project-form-col`},wi={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},Ti={class:`row items-center q-mb-md`},Ei={class:`text-subtitle1 text-weight-medium text-grey-3`},Di={key:0,class:`q-mb-md`},Oi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ki={class:`text-caption text-grey-7 q-mt-xs`},Ai={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ji={class:`text-subtitle2 q-mb-md`},Mi={class:`q-mb-md`},Ni={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Pi={class:`q-mb-md`},Fi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ii={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Li={class:`row items-center q-gutter-xs`},Ri={class:`text-caption text-grey-6 q-mt-xs`},zi={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Bi={class:`text-subtitle2 q-mb-md`},Vi={class:`q-mb-md`},Hi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ui={class:`q-mb-md`},Wi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Gi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ki={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},qi={class:`text-subtitle2 q-mb-md`},Ji={class:`q-mb-md`},Yi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Xi={class:`text-caption text-grey-7 q-mb-xs`},Zi={class:`q-mb-md`},Qi={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},$i={class:`text-caption text-grey-7 q-mb-xs`},ea={class:`q-mb-md`},ta={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},na={class:`text-caption text-grey-7 q-mb-xs`},ra={class:`q-mb-md`},ia={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},aa={class:`text-caption text-grey-7 q-mb-xs`},oa={class:`q-mb-md`},sa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},ca={class:`text-caption text-grey-7 q-mb-xs`},la={class:`q-mb-md`},ua={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},da={class:`text-caption text-grey-7 q-mb-xs`},fa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},pa={class:`text-caption text-grey-7 q-mt-xs`},ma={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ha={class:`text-subtitle2 q-mb-md`},ga={class:`q-mb-md`},_a={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},va={class:`text-caption text-grey-7 q-mb-xs`},ya={class:`text-caption text-grey-7 q-mt-xs`},ba={class:`q-mb-md`},xa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Sa={class:`text-caption text-grey-7 q-mb-xs`},Ca={class:`field-label-sub text-caption q-mt-sm q-mb-xs text-grey-7`},wa={class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},Ta={class:`text-caption text-grey-7 q-mb-xs`},Ea={class:`row items-center justify-between q-mb-xs`},Da={class:`field-label text-body2 text-weight-medium text-grey-6`},Oa={class:`text-caption text-grey-7 q-mb-xs`},ka={class:`text-caption text-grey-6 mono-guide q-mb-sm`},Aa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},ja={class:`text-subtitle2 q-mb-md`},Ma={class:`q-mb-md`},Na={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Pa={class:`field-label-sub text-caption q-mb-xs text-grey-7`},Fa={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},Ia={class:`text-subtitle2 q-mb-xs`},La={class:`text-caption text-grey-7 q-mb-sm`},Ra={class:`settings-subcard q-pa-md rounded-borders q-pb-sm q-mb-md`},za={class:`text-subtitle2 q-mb-xs`},Ba={class:`text-caption text-grey-7 q-mb-sm`},Va={class:`row items-center q-gutter-sm settings-sticky-actions`},Ha={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},Ua={class:`text-body2 text-grey-8`},Wa={class:`q-pa-none`},Ga={"data-tour":`settings-card-templates`,class:`settings-card rounded-borders q-pa-lg`},Ka={class:`row items-center justify-between q-mb-md`},qa={class:`text-subtitle1 text-weight-medium text-grey-3`},Ja={class:`row q-gutter-sm items-center`},Ya={key:0,class:`text-grey-6 q-py-lg text-center`},Xa={key:1,class:`column q-gutter-sm`},Za={class:`row items-start justify-between no-wrap`},Qa={class:`col`},$a={class:`text-body1 text-weight-medium`,style:{"font-family":`'Roboto Mono', monospace`}},eo={class:`text-caption text-grey-5 q-mt-xs`},to={class:`row no-wrap q-gutter-xs`},no={class:`text-caption text-grey-7 q-mt-lg`,style:{"font-family":`'Roboto Mono', monospace`}},ro={key:0,class:`settings-savebar`},io={class:`settings-savebar__label`},ao={class:`text-subtitle1`},oo={class:`q-pl-md q-pt-xs`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,columns:`2`,"column-gap":`24px`}},so={key:0,class:`text-negative text-caption`},co=B(w({__name:`SettingsPage`,setup(e){let t=Fe(),n=ve(),p=Oe(),{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(``),we=g(``),R=g(!0),z=g(!0),B=g(me),H=g(1),Je=g(``),Ye=g(``),Xe=g(``),W=g(``),Ze=g([]),Qe=g(!1),$e=g(``),et=b(()=>Ze.value.map(e=>({label:`${e.name} — ${e.email}`,value:e.id,name:e.name,email:e.email,avatarUrl:e.avatarUrl})));async function tt(e=!1){if(!Qe.value&&!(!e&&Ze.value.length>0)){Qe.value=!0,$e.value=``;try{let e=await fetch(`/api/notion/users`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Ze.value=Array.isArray(t.users)?t.users:[]}catch(e){$e.value=e instanceof Error?e.message:String(e),Ze.value=[]}finally{Qe.value=!1}}}let G=g(``),it=g(``),K=g(null),at=g(`bypass`),co=g(`bypass`),lo=g(``),uo=g(``),fo=g([]),q=g([]),po=g(``),mo=g(``),ho=g(``),go=g(`no-tasks`),_o=g(!1),vo=g(``),yo=g(``),bo=g(``),xo=g(!1);function So(e){Q.value.path=e}let Co=b(()=>[{label:w(`settings.cleanupScriptMode.inherit`),value:``},{label:w(`settings.cleanupScriptMode.idle`),value:`idle`},{label:w(`settings.cleanupScriptMode.noTasks`),value:`no-tasks`}]),wo=g(pe),To=g(null),Eo=g(!0);function Do(e){let t=e.trim().replace(/^\/+|\/+$/g,``);return t.length===0||t.length>50||!/^[A-Za-z0-9._/-]+$/.test(t)||t.includes(`..`)?``:t}function Oo(){let e=Do(po.value);!e||q.value.includes(e)||(q.value.push(e),po.value=``)}function ko(e){q.value.splice(e,1)}function Ao(e,t){let n=Do(t);if(!n)return;let r=q.value.indexOf(n);r!==-1&&r!==e||(q.value[e]=n)}function jo(e,t){let n=e+t;if(n<0||n>=q.value.length)return;let r=q.value;[r[e],r[n]]=[r[n],r[e]]}let Mo=g(!1),J=g(`superpowers`),No=b(()=>{switch(J.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`}}),Po=g(``),Fo=g(``),Io=g(``),Lo=g(``),Ro=g(``),zo=g(!1),Bo=g(`alt`),Vo=g(`auto`),Y=g(null),Ho=g(``),Uo=g(``),Wo=g(0),Go=g(``),Ko=g(!1),qo=g(!0),Jo=g(null),Yo=g(!1);function Xo(){t.dialog({title:w(`settings.skillSuite.reloadDefaults`),message:w(`settings.skillSuite.reloadDefaultsConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{Po.value=Ie,Fo.value=Re,Io.value=Be,Lo.value=Le,Ro.value=ze})}function Zo(e){let n=e===`global`?yo.value:Q.value.changeSourceBranchScript,r=()=>{e===`global`?yo.value=bo.value:Q.value.changeSourceBranchScript=bo.value};if(!n.trim()||n===bo.value){r();return}t.dialog({title:w(`settings.changeSourceBranchScript.replaceConfirmTitle`),message:w(`settings.changeSourceBranchScript.replaceConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(r)}function Qo(e){return!e||e===`tiny`||e===`base`?.1:.2}let $o=[e=>e.trim().length>0||w(`settings.worktreesPathRequired`)],es=g(!1),X=g(-1),Z=g(!1),Q=g({path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}}),ts=[`defaultModel`,`forge`,`prPromptTemplate`,`reviewPromptTemplate`,`ciFixPromptTemplate`,`notionInitialPromptTemplate`,`sentryInitialPromptTemplate`,`gitConventions`,`setupScript`,`taskPromptTemplate`,`cleanupScript`,`cleanupScriptMode`,`archiveScript`,`changeSourceBranchScript`,`devServer`,`e2e`,`finalization`],ns=g(null),rs=g(null),is=b(()=>n.projects.map(e=>({value:e.path,label:Sc(e)||e.path})));function as(e){let t=n.projects.find(t=>t.path===e);t&&(Q.value.defaultModel=t.defaultModel??``,Q.value.forge=t.forge??`auto`,Q.value.prPromptTemplate=t.prPromptTemplate??``,Q.value.reviewPromptTemplate=t.reviewPromptTemplate??``,Q.value.ciFixPromptTemplate=t.ciFixPromptTemplate??``,Q.value.notionInitialPromptTemplate=t.notionInitialPromptTemplate??``,Q.value.sentryInitialPromptTemplate=t.sentryInitialPromptTemplate??``,Q.value.gitConventions=t.gitConventions??``,Q.value.setupScript=t.setupScript??``,Q.value.devServer={startCommand:t.devServer?.startCommand??``,stopCommand:t.devServer?.stopCommand??``},Q.value.e2e={framework:t.e2e?.framework??``,skill:t.e2e?.skill??``,prompt:t.e2e?.prompt??``},Q.value.finalization={prompt:t.finalization?.prompt??``})}function os(){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 ts.every(t=>JSON.stringify(Q.value[t])===JSON.stringify(e[t]))}function ss(e){if(e===null){ns.value=null,rs.value=null;return}if(rs.value===null&&os()){as(e),ns.value=e,rs.value=e;return}let r=n.projects.find(t=>t.path===e),i=r&&Sc(r)||e;t.dialog({title:w(`settings.copyFromConfirmTitle`),message:w(`settings.copyFromConfirm`,{project:i}),cancel:!0,persistent:!0,dark:!0}).onOk(()=>{as(e),ns.value=e,rs.value=e}).onCancel(()=>{ns.value=rs.value})}let cs=g([]),ls=g([]);async function us(){try{let e=await fetch(`/api/skills`);e.ok&&(cs.value=await e.json())}catch{}}function ds(e,t){t(()=>{let t=e.trim().toLowerCase();ls.value=t?cs.value.filter(e=>e.toLowerCase().includes(t)):cs.value.slice()})}let fs=g([]),ps=g(!1),ms=g(!1),hs=g(!1),gs=g(!1),_s=g(null),vs=g(``),ys=g(``),bs=g(``),$=g(``),xs=g(!1),Ss=g(!1),Cs=b(()=>[...p.templates].sort((e,t)=>e.slug.localeCompare(t.slug))),ws=[`{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 Ts(){_s.value=null,vs.value=``,ys.value=``,bs.value=``,$.value=``,gs.value=!0}function Es(e){_s.value=e.slug,vs.value=e.slug,ys.value=e.description,bs.value=e.content,$.value=``,gs.value=!0}async function Ds(){$.value=``;let e=vs.value.trim(),t=ys.value.trim();if(_s.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(!bs.value.trim()){$.value=w(`templates.contentRequired`);return}xs.value=!0;try{_s.value===null?await p.createTemplate({slug:e,description:t,content:bs.value}):await p.updateTemplate(_s.value,{description:t,content:bs.value}),gs.value=!1}catch(e){$.value=e instanceof Error?e.message:w(`templates.createFailed`)}finally{xs.value=!1}}function Os(){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()=>{Ss.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{Ss.value=!1}})}async function ks(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 As=[{label:`English`,value:`en`},{label:`Français`,value:`fr`},{label:`Deutsch`,value:`de`},{label:`Español`,value:`es`},{label:`Italiano`,value:`it`}];function js(e){ne.value=e,localStorage.setItem(`kobo:locale`,e)}let Ms=b(()=>[...Ke.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Ns=b(()=>[...Ge.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),Ps=b(()=>[{label:w(`settings.useGlobal`),value:``},...Ms.value]),Fs=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`}]),Is=b(()=>qe[`claude-code`].map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Ls=b(()=>qe.codex.map(e=>({label:w(`agentPermissionMode.${e}`),value:e}))),Rs=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`)}]),zs=b(()=>[{label:w(`settings.mcpAutoSelect`),value:``},...n.activeMcpServers.map(e=>({label:e.key,value:e.key}))]),Bs=b(()=>fe.map(e=>({label:w(e.labelKey),value:e.id}))),Vs=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})))),Hs=[{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 Us(){ge(B.value,H.value)}let Ws=b(()=>X.value<0||X.value>=n.projects.length?null:n.projects[X.value]??null),Gs=g(``),Ks=g(``);function qs(){return JSON.stringify({claudeModel:ce.value,codexModel:le.value,prPrompt:k.value,reviewPrompt:de.value,ciFixPrompt:A.value,gitConventions:Ce.value,editorCommand:M.value,fileManagerCommand:we.value,browserNotifications:R.value,audioNotifications:z.value,audioNotificationSound:B.value,audioNotificationVolume:H.value,notionStatusProperty:Je.value,notionStatus:Ye.value,notionAssigneeProperty:Xe.value,notionUserId:W.value,notionInitialPrompt:G.value,sentryInitialPrompt:it.value,claudePermissionMode:at.value,codexPermissionMode:co.value,notionMcpKey:lo.value,sentryMcpKey:uo.value,tags:fo.value,branchPrefixes:q.value,setupScript:mo.value,cleanupScript:ho.value,cleanupScriptMode:go.value,cleanupScriptOnlyOnChanges:_o.value,archiveScript:vo.value,changeSourceBranchScript:yo.value,worktreesPath:wo.value,worktreesPrefixByProject:Eo.value,flattenWorkspaceList:Mo.value,skillSuite:J.value,customReviewTemplate:Po.value,customAutoLoopReviewGate:Fo.value,customAutoLoopGroomingIntro:Io.value,customQaPromptTemplate:Lo.value,customBrainstormingInstruction:Ro.value,voiceEnabled:zo.value,voicePttKey:Bo.value,voiceLanguage:Vo.value,voiceModel:Y.value,voiceCommandPath:Ho.value,voiceFfmpegPath:Uo.value,voiceTemperature:Wo.value,voicePrompt:Go.value,voiceTranslateToEnglish:Ko.value,voiceSuppressNst:qo.value})}function Js(){return JSON.stringify(Q.value)}let Ys=b(()=>qs()!==Gs.value),Xs=b(()=>Js()!==Ks.value),Zs=b(()=>E.value===`projects`?Xs.value&&(Ws.value!==null||Z.value):E.value===`templates`?!1:Ys.value),Qs=b(()=>E.value===`projects`?ms.value:xs.value);function $s(){E.value===`projects`?vc():lc()}function ec(){Yo.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.ciFixPromptTemplate??``,Ce.value=n.global.gitConventions,M.value=n.global.editorCommand??``,we.value=n.global.fileManagerCommand??``,R.value=n.global.browserNotifications??!0,z.value=n.global.audioNotifications??!0,B.value=_e(n.global.audioNotificationSound);let t=n.global.audioNotificationVolume;H.value=typeof t==`number`&&Number.isFinite(t)?Math.max(0,Math.min(1,t)):1,Je.value=n.global.notionStatusProperty??``,Ye.value=n.global.notionInProgressStatus??``,Xe.value=n.global.notionAssigneeProperty??``,W.value=n.global.notionUserId??``,G.value=n.global.notionInitialPromptTemplate??``,it.value=n.global.sentryInitialPromptTemplate??``;{let e=n.global.defaultPermissionModeByEngine??{},t=e=>e===`plan`||e===`bypass`||e===`strict`||e===`interactive`,r=e[`claude-code`];at.value=t(r)?r:`bypass`;let i=e.codex;co.value=t(i)?i:`bypass`}lo.value=n.global.notionMcpKey??``,uo.value=n.global.sentryMcpKey??``,fo.value=Array.isArray(n.global.tags)?[...n.global.tags]:[],q.value=Array.isArray(n.global.branchPrefixes)?[...n.global.branchPrefixes]:[],mo.value=n.global.setupScript??``,ho.value=n.global.cleanupScript??``,go.value=n.global.cleanupScriptMode===`idle`?`idle`:`no-tasks`,_o.value=n.global.cleanupScriptOnlyOnChanges??!1,vo.value=n.global.archiveScript??``,yo.value=n.global.changeSourceBranchScript??``,wo.value=n.global.worktreesPath??`.worktrees`,Eo.value=n.global.worktreesPrefixByProject??!1,Mo.value=n.global.flattenWorkspaceList??!1,J.value=n.global.skillSuite??`superpowers`,Po.value=n.global.customReviewTemplate??``,Fo.value=n.global.customAutoLoopReviewGate??``,Io.value=n.global.customAutoLoopGroomingIntro??``,Lo.value=n.global.customQaPromptTemplate??``,Ro.value=n.global.customBrainstormingInstruction??``,zo.value=n.global.voiceEnabled??!1,Bo.value=n.global.voicePttKey===`ctrl+space`?`ctrl+space`:`alt`,Vo.value=n.global.voiceLanguage??`auto`,Y.value=n.global.voiceModel??null,Ho.value=n.global.voiceCommandPath??``,Uo.value=n.global.voiceFfmpegPath??``,Wo.value=typeof n.global.voiceTemperature==`number`?n.global.voiceTemperature:0,Go.value=n.global.voicePrompt??``,Ko.value=n.global.voiceTranslateToEnglish??!1,qo.value=n.global.voiceSuppressNonSpeechTokens??!0,Yo.value=!1,Gs.value=qs()}ee(()=>Y.value,(e,t)=>{Yo.value||e!==t&&(Wo.value=Qo(e))});function tc(e){if(!e){Q.value={path:``,displayName:``,color:null,defaultSourceBranch:``,defaultModel:``,forge:`auto`,prPromptTemplate:``,reviewPromptTemplate:``,ciFixPromptTemplate:``,notionInitialPromptTemplate:``,sentryInitialPromptTemplate:``,gitConventions:``,setupScript:``,taskPromptTemplate:``,cleanupScript:``,cleanupScriptMode:``,archiveScript:``,changeSourceBranchScript:``,devServer:{startCommand:``,stopCommand:``},e2e:{framework:``,skill:``,prompt:``},finalization:{prompt:``}},fs.value=[],Ks.value=Js();return}Q.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??``,ciFixPromptTemplate:e.ciFixPromptTemplate??``,notionInitialPromptTemplate:e.notionInitialPromptTemplate??``,sentryInitialPromptTemplate:e.sentryInitialPromptTemplate??``,gitConventions:e.gitConventions??``,setupScript:e.setupScript??``,taskPromptTemplate:e.taskPromptTemplate??``,cleanupScript:e.cleanupScript??``,cleanupScriptMode:e.cleanupScriptMode??``,archiveScript:e.archiveScript??``,changeSourceBranchScript:e.changeSourceBranchScript??``,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??``}},Ks.value=Js(),e.path&&nc(e.path)}async function nc(e){if(!e.trim()){fs.value=[];return}ps.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();fs.value=n.local??n.branches??[]}catch{fs.value=[]}finally{ps.value=!1}}let rc=null;ee(()=>Q.value.path,e=>{rc&&clearTimeout(rc),rc=setTimeout(()=>{nc(e)},500)}),ee(X,()=>{Z.value=!1,tc(Ws.value)});let ic=g(null);async function ac(){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 oc(){ic.value?.click()}async function sc(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(),ec(),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 cc(e){if(K.value===null){K.value=e;try{let t=await n.fetchGlobalDefaults(),r={prPromptTemplate:k,reviewPromptTemplate:de,ciFixPromptTemplate:A,gitConventions:Ce,notionInitialPromptTemplate:G,sentryInitialPromptTemplate:it};r[e].value=t[e]}catch(e){console.error(`[SettingsPage] resetFieldToDefault failed:`,e),t.notify({type:`negative`,message:w(`settings.resetFailed`),position:`top`})}finally{K.value=null}}}async function lc(){if(await To.value?.validate()!==!1){es.value=!0;try{await n.updateGlobal({defaultModelByEngine:{"claude-code":ce.value,codex:le.value},prPromptTemplate:k.value,reviewPromptTemplate:de.value,ciFixPromptTemplate:A.value,gitConventions:Ce.value,editorCommand:M.value,fileManagerCommand:we.value,browserNotifications:R.value,audioNotifications:z.value,audioNotificationSound:B.value,audioNotificationVolume:H.value,notionStatusProperty:Je.value,notionInProgressStatus:Ye.value,notionAssigneeProperty:Xe.value,notionUserId:W.value,notionInitialPromptTemplate:G.value,sentryInitialPromptTemplate:it.value,defaultPermissionModeByEngine:{"claude-code":at.value,codex:co.value},notionMcpKey:lo.value,sentryMcpKey:uo.value,tags:fo.value,branchPrefixes:q.value,setupScript:mo.value,cleanupScript:ho.value,cleanupScriptMode:go.value,cleanupScriptOnlyOnChanges:_o.value,archiveScript:vo.value,changeSourceBranchScript:yo.value,worktreesPath:wo.value,worktreesPrefixByProject:Eo.value,flattenWorkspaceList:Mo.value,skillSuite:J.value,customReviewTemplate:Po.value,customAutoLoopReviewGate:Fo.value,customAutoLoopGroomingIntro:Io.value,customQaPromptTemplate:Lo.value,customBrainstormingInstruction:Ro.value,voiceEnabled:zo.value,voicePttKey:Bo.value,voiceLanguage:Vo.value,voiceModel:Y.value,voiceCommandPath:Ho.value.trim(),voiceFfmpegPath:Uo.value.trim(),voiceTemperature:Wo.value,voicePrompt:Go.value,voiceTranslateToEnglish:Ko.value,voiceSuppressNonSpeechTokens:qo.value}),Gs.value=qs(),t.notify({type:`positive`,message:w(`settings.saved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.saveError`),position:`top`})}finally{es.value=!1}}}async function uc(e){Jo.value=e,hc();try{await n.downloadVoiceModel(e)}catch{t.notify({type:`negative`,message:w(`voice.downloadFailed`),position:`top`})}finally{Jo.value=null,gc()}}async function dc(e){Jo.value=e;try{await n.deleteVoiceModel(e),Y.value===e&&(Y.value=null)}catch{t.notify({type:`negative`,message:w(`voice.deleteFailed`),position:`top`})}finally{Jo.value=null}}async function fc(e){try{await n.cancelVoiceModelDownload(e)}catch{t.notify({type:`negative`,message:w(`voice.cancelFailed`),position:`top`})}}function pc(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 mc=null;function hc(){mc||=setInterval(()=>{n.fetchVoiceModels().catch(()=>{})},800)}function gc(){mc&&=(clearInterval(mc),null)}async function _c(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 vc(){if(!Q.value.path.trim()){t.notify({type:`negative`,message:w(`settings.projectPathRequired`),position:`top`});return}ms.value=!0;try{await n.upsertProject(Q.value.path.trim(),{displayName:Q.value.displayName,color:Q.value.color,defaultSourceBranch:Q.value.defaultSourceBranch,defaultModel:Q.value.defaultModel,forge:Q.value.forge,prPromptTemplate:Q.value.prPromptTemplate,reviewPromptTemplate:Q.value.reviewPromptTemplate,ciFixPromptTemplate:Q.value.ciFixPromptTemplate,notionInitialPromptTemplate:Q.value.notionInitialPromptTemplate,sentryInitialPromptTemplate:Q.value.sentryInitialPromptTemplate,gitConventions:Q.value.gitConventions,setupScript:Q.value.setupScript,taskPromptTemplate:Q.value.taskPromptTemplate,cleanupScript:Q.value.cleanupScript,cleanupScriptMode:Q.value.cleanupScriptMode,archiveScript:Q.value.archiveScript,changeSourceBranchScript:Q.value.changeSourceBranchScript,devServer:Q.value.devServer,e2e:Q.value.e2e,finalization:Q.value.finalization}),Z.value=!1;let e=n.projects.findIndex(e=>e.path===Q.value.path.trim());e>=0&&(X.value=e),Ks.value=Js(),t.notify({type:`positive`,message:w(`settings.projectSaved`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectSaveError`),position:`top`})}finally{ms.value=!1}}function yc(){if(!Ws.value)return;let e=Ws.value.displayName||Ws.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(Ws.value){hs.value=!0;try{await n.deleteProject(Ws.value.path),X.value=-1,Z.value=!1,tc(null),t.notify({type:`positive`,message:w(`settings.projectDeleted`),position:`top`})}catch{t.notify({type:`negative`,message:w(`settings.projectDeleteError`),position:`top`})}finally{hs.value=!1}}})}function bc(){X.value=-1,Z.value=!0,tc(null),ns.value=null,rs.value=null}function xc(e){Z.value=!1,X.value=e,ns.value=null,rs.value=null}function Sc(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let Cc=g([]);function wc(e,t){t(()=>{Cc.value=e?fs.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):fs.value})}return o(async()=>{await Promise.all([n.fetchSettings(),n.fetchActiveMcpServers(),us()]);try{bo.value=(await n.fetchGlobalDefaults()).changeSourceBranchScript??``}catch(e){console.error(`[SettingsPage] fetchGlobalDefaults failed:`,e)}await n.fetchVoiceModels(),await n.fetchVoiceRuntime(),ec(),tt().catch(()=>{})}),s(()=>{rc&&clearTimeout(rc),gc()}),(e,t)=>(i(),h(We,{class:`settings-page`},{default:r(()=>[C(`div`,st,[C(`aside`,ct,[C(`div`,lt,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(F,{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(I,{avatar:``,class:`settings-nav__icon`},{default:r(()=>[d(O,{name:e.icon,size:`16px`},null,8,[`name`])]),_:2},1024),d(I,{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`,ut,[C(`header`,dt,[C(`h2`,ft,u(oe.value),1)]),C(`div`,pt,[a(C(`div`,mt,[a(C(`div`,ht,[C(`div`,gt,u(e.$t(`settings.language`)),1),d(U,{"model-value":f(ne),options:As,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`,"onUpdate:modelValue":js},null,8,[`model-value`])],512),[[D,E.value===`general`]]),a(C(`div`,_t,[C(`div`,vt,u(e.$t(`settings.workspaceListSection`)),1),d(P,{modelValue:Mo.value,"onUpdate:modelValue":t[0]||=e=>Mo.value=e,label:e.$t(`settings.flattenWorkspaceList`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),C(`div`,yt,u(e.$t(`settings.flattenWorkspaceListHint`)),1)],512),[[D,E.value===`general`]]),a(C(`div`,bt,[C(`div`,xt,u(e.$t(`settings.skillSuite.section`)),1),d(ke,{modelValue:J.value,"onUpdate:modelValue":t[1]||=e=>J.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`,St,u(e.$t(No.value)),1),d(j,{flat:``,dense:``,"no-caps":``,size:`sm`,color:`grey-5`,icon:`restart_alt`,label:e.$t(`settings.skillSuite.reloadDefaults`),disable:J.value!==`custom`,class:`q-mt-sm`,onClick:Xo},null,8,[`label`,`disable`])],512),[[D,E.value===`skills`]]),E.value===`skills`&&J.value===`custom`?(i(),x(`div`,Ct,[C(`div`,wt,u(e.$t(`settings.skillSuite.customPrompts`)),1),C(`div`,Tt,u(e.$t(`settings.skillSuite.reviewTemplate`)),1),d(N,{modelValue:Po.value,"onUpdate:modelValue":t[2]||=e=>Po.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Et,u(e.$t(`settings.skillSuite.autoLoopReviewGate`)),1),d(N,{modelValue:Fo.value,"onUpdate:modelValue":t[3]||=e=>Fo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Dt,u(e.$t(`settings.skillSuite.autoLoopGroomingIntro`)),1),d(N,{modelValue:Io.value,"onUpdate:modelValue":t[4]||=e=>Io.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,Ot,u(e.$t(`settings.skillSuite.qaTemplate`)),1),d(N,{modelValue:Lo.value,"onUpdate:modelValue":t[5]||=e=>Lo.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`]),C(`div`,kt,u(e.$t(`settings.skillSuite.brainstormingInstruction`)),1),d(N,{modelValue:Ro.value,"onUpdate:modelValue":t[6]||=e=>Ro.value=e,type:`textarea`,outlined:``,autogrow:``,class:`settings-input mono-textarea`},null,8,[`modelValue`])])):_(``,!0),a(C(`div`,At,[C(`div`,jt,u(e.$t(`settings.defaultModelClaude`)),1),d(U,{modelValue:ce.value,"onUpdate:modelValue":t[7]||=e=>ce.value=e,options:Ms.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`,Mt,u(e.$t(`settings.defaultModelCodex`)),1),d(U,{modelValue:le.value,"onUpdate:modelValue":t[8]||=e=>le.value=e,options:Ns.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.defaultPermissionModeClaude`)),1),C(`div`,Pt,u(e.$t(`settings.defaultPermissionModeHint`)),1),d(U,{modelValue:at.value,"onUpdate:modelValue":t[9]||=e=>at.value=e,options:Is.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input q-mb-md`},null,8,[`modelValue`,`options`]),C(`div`,Ft,u(e.$t(`settings.defaultPermissionModeCodex`)),1),d(U,{modelValue:co.value,"onUpdate:modelValue":t[10]||=e=>co.value=e,options:Ls.value,"emit-value":``,"map-options":``,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`,`options`])],512),[[D,E.value===`agents`]]),a(C(`div`,It,[C(`div`,Lt,u(e.$t(`settings.activityFeed`)),1),d(P,{"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`,Rt,[C(`div`,zt,u(e.$t(`settings.notifications`)),1),C(`div`,Bt,[d(P,{modelValue:R.value,"onUpdate:modelValue":t[12]||=e=>R.value=e,label:e.$t(`settings.browserNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`]),d(P,{modelValue:z.value,"onUpdate:modelValue":t[13]||=e=>z.value=e,label:e.$t(`settings.audioNotifications`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`},null,8,[`modelValue`,`label`])]),C(`div`,Vt,[d(U,{modelValue:B.value,"onUpdate:modelValue":t[14]||=e=>B.value=e,options:Bs.value,label:e.$t(`settings.notificationSound`),disable:!z.value,dark:``,dense:``,outlined:``,"emit-value":``,"map-options":``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`options`,`label`,`disable`]),d(j,{flat:``,dense:``,color:`indigo-4`,icon:`play_arrow`,label:e.$t(`settings.notificationSoundPreview`),disable:!z.value,onClick:Us},null,8,[`label`,`disable`])]),C(`div`,Ht,[C(`div`,Ut,u(e.$t(`settings.notificationVolume`)),1),d(nt,{modelValue:H.value,"onUpdate:modelValue":t[15]||=e=>H.value=e,min:0,max:1,step:.05,disable:!z.value,dark:``,dense:``,color:`indigo-4`,class:`col`},null,8,[`modelValue`,`disable`]),C(`div`,Wt,u(Math.round(H.value*100))+`% `,1)])],512),[[D,E.value===`notifications`]]),a(C(`div`,Gt,[C(`div`,Kt,[C(`div`,qt,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`,Jt,[C(`div`,Yt,[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`,Xt,[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(Me,{dense:``,dark:``,icon:`help_outline`,label:e.$t(`voice.installGuideTitle`),class:`variables-panel rounded-borders q-mt-sm`},{default:r(()=>[C(`div`,Zt,[C(`div`,Qt,u(e.$t(`voice.installGuideIntro`)),1),C(`div`,$t,[C(`a`,en,u(e.$t(`voice.installLink`)),1)]),C(`div`,tn,u(e.$t(`voice.installGuideUbuntuTitle`)),1),t[92]||=C(`pre`,{class:`mono-guide q-mb-sm`},`sudo apt update
|
|
2
2
|
sudo apt install -y cmake build-essential ffmpeg
|
|
3
3
|
git clone https://github.com/ggml-org/whisper.cpp.git
|
|
4
4
|
cd whisper.cpp
|