@loicngr/kobo 1.4.12 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/package.json +1 -1
  2. package/src/client/dist/spa/assets/ActivityFeed-Yd0-Ju7J.css +1 -0
  3. package/src/client/dist/spa/assets/{ActivityFeed-CgZWB0-0.js → ActivityFeed-rdF4cIZ9.js} +4 -4
  4. package/src/client/dist/spa/assets/{CreatePage-PV9pH1-i.js → CreatePage-BP6sMiVb.js} +1 -1
  5. package/src/client/dist/spa/assets/{DiffViewer-eROI3K7I.js → DiffViewer-CrQVq67p.js} +2 -2
  6. package/src/client/dist/spa/assets/{MainLayout-w7f2vykG.js → MainLayout-BExro222.js} +2 -2
  7. package/src/client/dist/spa/assets/{QExpansionItem-KaA2BBuV.js → QExpansionItem-C6t9K8IO.js} +1 -1
  8. package/src/client/dist/spa/assets/{QList-lLY9TMz0.js → QList-C4S3UmX3.js} +1 -1
  9. package/src/client/dist/spa/assets/{QMenu-IaCFq9U1.js → QMenu-Dkt9vjxB.js} +1 -1
  10. package/src/client/dist/spa/assets/{QPage-D5bnOxz0.js → QPage-xaZO0kEH.js} +1 -1
  11. package/src/client/dist/spa/assets/{SettingsPage-tK2WhdGt.js → SettingsPage-FAu_q-LZ.js} +1 -1
  12. package/src/client/dist/spa/assets/WorkspacePage-B1x-XHhU.css +1 -0
  13. package/src/client/dist/spa/assets/WorkspacePage-Dz7tAbAL.js +4 -0
  14. package/src/client/dist/spa/assets/{cssMode-DxID_rwU.js → cssMode-BoL2DSEQ.js} +1 -1
  15. package/src/client/dist/spa/assets/{editor.api-6HHa4uDw.js → editor.api-kStfTpOq.js} +1 -1
  16. package/src/client/dist/spa/assets/{editor.main-BY_NEoTM.js → editor.main-CmYQZpFg.js} +3 -3
  17. package/src/client/dist/spa/assets/{freemarker2-ChUzpgbV.js → freemarker2-CQnHoBD8.js} +1 -1
  18. package/src/client/dist/spa/assets/{handlebars-BEqiXFje.js → handlebars-DVihQ8aX.js} +1 -1
  19. package/src/client/dist/spa/assets/{html-BMS_L0RV.js → html-CJQfJK_3.js} +1 -1
  20. package/src/client/dist/spa/assets/{htmlMode-C68CMSi2.js → htmlMode-wWkV8Pbo.js} +1 -1
  21. package/src/client/dist/spa/assets/i18n-D6X27OMA.js +1 -0
  22. package/src/client/dist/spa/assets/{index-DSx45TKH.js → index-5WBiUIJL.js} +2 -2
  23. package/src/client/dist/spa/assets/{javascript-BKkV2qqm.js → javascript-De7QtEex.js} +1 -1
  24. package/src/client/dist/spa/assets/{jsonMode-Bk1XwYG8.js → jsonMode-oJXrwwWj.js} +1 -1
  25. package/src/client/dist/spa/assets/{liquid-QLO1u8by.js → liquid-Czt9J8rr.js} +1 -1
  26. package/src/client/dist/spa/assets/{marked.esm-CtWESN18.js → marked.esm-BzjtracY.js} +1 -1
  27. package/src/client/dist/spa/assets/{mdx-Cgznl219.js → mdx-D2ajl03y.js} +1 -1
  28. package/src/client/dist/spa/assets/{monaco.contribution-CDhgtrdW.js → monaco.contribution-C3hSsaL2.js} +2 -2
  29. package/src/client/dist/spa/assets/{python-DCFlVqvF.js → python-BIEASzNV.js} +1 -1
  30. package/src/client/dist/spa/assets/{razor-BHddvwQ2.js → razor-VzJVSsCG.js} +1 -1
  31. package/src/client/dist/spa/assets/{tsMode-BZkc6l5_.js → tsMode-DNvz3hBc.js} +1 -1
  32. package/src/client/dist/spa/assets/{typescript-B0g45tCE.js → typescript-WG3q8O9u.js} +1 -1
  33. package/src/client/dist/spa/assets/{xml-CfmQqdO8.js → xml-CBF3hYml.js} +1 -1
  34. package/src/client/dist/spa/assets/{yaml-B1F9_T4A.js → yaml-S37nROCG.js} +1 -1
  35. package/src/client/dist/spa/index.html +1 -1
  36. package/src/client/dist/spa/assets/ActivityFeed-ko_rO-2M.css +0 -1
  37. package/src/client/dist/spa/assets/WorkspacePage-B7LByhzW.js +0 -4
  38. package/src/client/dist/spa/assets/WorkspacePage-XUHKUmuQ.css +0 -1
  39. package/src/client/dist/spa/assets/i18n-C9sStiuf.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loicngr/kobo",
3
- "version": "1.4.12",
3
+ "version": "1.5.0",
4
4
  "description": "Kōbō — multi-workspace agent manager for Claude Code. Orchestrates isolated git worktrees with dev servers, Notion integration, and MCP tools.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-or-later",
@@ -0,0 +1 @@
1
+ .activity-feed[data-v-40c2b707]{flex-direction:column;gap:4px;display:flex;position:relative;overflow:hidden auto}.af-item[data-v-40c2b707]{word-break:break-word;overflow-wrap:break-word;flex-shrink:0;padding:6px 10px;overflow-x:hidden}.af-time[data-v-40c2b707]{color:#555;flex-shrink:0;font-size:10px}.af-tool-label[data-v-40c2b707]{font-family:Roboto Mono,monospace;font-size:11px}.af-tool-desc[data-v-40c2b707]{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.af-ask-option-item[data-v-40c2b707]{padding:2px 0}.af-tool-args[data-v-40c2b707]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-args-pre[data-v-40c2b707]{color:#888;white-space:pre-wrap;word-break:break-word;margin:0;font-family:Roboto Mono,monospace;font-size:10px}.af-file-change[data-v-40c2b707]{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;padding:6px 8px}.af-file-header[data-v-40c2b707]{font-family:Roboto Mono,monospace;font-size:11px}.af-lang-badge[data-v-40c2b707]{text-align:center;background:#ffffff0f;border-radius:3px;min-width:20px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px;font-weight:700}.af-file-path[data-v-40c2b707]{max-width:70%;font-size:11px}.af-diff-stats[data-v-40c2b707]{white-space:nowrap;font-family:Roboto Mono,monospace;font-size:10px}.af-diff-body[data-v-40c2b707]{background:#0003;border-radius:4px;max-height:300px;padding:4px 0;overflow:auto}.af-diff-line[data-v-40c2b707]{white-space:pre;min-width:-moz-fit-content;min-width:fit-content;padding:0 8px;font-family:Roboto Mono,monospace;font-size:10px;line-height:1.5}.af-diff-sign[data-v-40c2b707]{-webkit-user-select:none;user-select:none;width:12px;display:inline-block}.af-diff-del[data-v-40c2b707]{color:#f85149;background:#f851491a}.af-diff-add[data-v-40c2b707]{color:#3fb950;background:#3fb9501a}.af-item--text[data-v-40c2b707]{background-color:#1a2a3a;border-left:3px solid #3b82f6}.af-item--user[data-v-40c2b707]{background-color:#1a2a1a;border-left:3px solid #22c55e}.af-item--prompt[data-v-40c2b707]{background-color:#1a1a2e;border-left:3px solid #6c63ff}.af-text-content[data-v-40c2b707]{color:#d0d0d0;word-break:break-word;line-height:1.5}.af-markdown[data-v-40c2b707] p{margin:0 0 8px}.af-markdown[data-v-40c2b707] p:last-child{margin-bottom:0}.af-markdown[data-v-40c2b707] h1,.af-markdown[data-v-40c2b707] h2,.af-markdown[data-v-40c2b707] h3{color:#e0e0e0;margin:12px 0 6px}.af-markdown[data-v-40c2b707] h1{font-size:16px}.af-markdown[data-v-40c2b707] h2{font-size:14px}.af-markdown[data-v-40c2b707] h3{font-size:13px}.af-markdown[data-v-40c2b707] ul,.af-markdown[data-v-40c2b707] ol{margin:4px 0;padding-left:20px}.af-markdown[data-v-40c2b707] li{margin:2px 0}.af-markdown[data-v-40c2b707] code{background-color:#ffffff14;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.af-markdown[data-v-40c2b707] pre{background-color:#0000004d;border-radius:4px;margin:6px 0;padding:8px;overflow-x:auto}.af-markdown[data-v-40c2b707] pre code{background:0 0;padding:0}.af-markdown[data-v-40c2b707] strong{color:#fff}.af-markdown[data-v-40c2b707] a{color:#6c63ff}.af-markdown[data-v-40c2b707] blockquote{color:#aaa;border-left:3px solid #6c63ff;margin:6px 0;padding:4px 12px}.af-markdown[data-v-40c2b707] table{border-collapse:collapse;margin:6px 0;font-size:11px}.af-markdown[data-v-40c2b707] table th,.af-markdown[data-v-40c2b707] table td{border:1px solid #2a2a4a;padding:4px 8px}.af-markdown[data-v-40c2b707] table th{background-color:#ffffff0d}.af-item--system[data-v-40c2b707]{background-color:#2a2a1a;border-left:3px solid #f59e0b}.af-system-details[data-v-40c2b707]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-system-content[data-v-40c2b707]{white-space:pre-wrap}.af-item--error[data-v-40c2b707]{background-color:#2a1a1a;border-left:3px solid #ef4444}.af-item--raw[data-v-40c2b707]{white-space:pre-wrap;font-family:Roboto Mono,monospace}.scroll-buttons[data-v-40c2b707]{align-self:flex-end;gap:6px;margin-right:8px;display:flex;position:sticky;bottom:8px}.scroll-btn[data-v-40c2b707]{opacity:.7;transition:opacity .15s}.scroll-btn[data-v-40c2b707]:hover{opacity:1}
@@ -1,10 +1,10 @@
1
- import{E as e,F as t,H as n,L as r,M as i,N as a,Q as o,U as s,_ as c,_t as l,a as u,d,f,g as p,m,n as ee,p as h,rt as te,u as g,y as ne,yt as _}from"./vue-i18n-nv59vAyH.js";import{L as v,T as y,bt as re}from"./scroll-CWjBCoBR.js";import{E as ie,O as ae}from"./index-DSx45TKH.js";import{t as b}from"./QSpinnerDots-FJCnAvfw.js";import{n as x,p as S,t as C}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{n as oe,t as se}from"./marked.esm-CtWESN18.js";var ce={key:0,class:`af-empty column items-center justify-center text-center q-pa-xl`},le={class:`text-grey-6 q-mt-md text-body2`},ue={class:`text-grey-8 text-caption q-mt-xs`},de={key:1,class:`row justify-center q-my-sm`},fe=[`data-item-id`],pe={class:`af-tool row items-center q-gutter-xs`},me={class:`af-tool-label text-indigo-4`},he={class:`af-time`},ge={key:0,class:`text-grey-4 q-mb-xs`},_e={class:`af-ask-options-list q-mb-sm`},ve={class:`text-weight-bold text-grey-3`},ye={key:0},be={key:1,class:`af-ask-buttons q-gutter-xs`},xe={key:0,class:`q-mt-sm row justify-end`},Se=[`onClick`],Ce={class:`af-file-header row items-center no-wrap q-gutter-xs`},we={class:`af-file-path text-grey-4 ellipsis`},Te={class:`af-diff-stats`},Ee={key:0,class:`text-green-5`},De={key:1,class:`text-red-5 q-ml-xs`},Oe={class:`af-time`},ke={key:1,class:`af-diff-line af-diff-del`},w={key:0,class:`af-diff-line text-grey-7 text-italic`},Ae=[`onClick`],je={class:`af-tool-label text-grey-7`},Me={key:0,class:`af-tool-desc text-grey-8`},Ne={class:`af-time`},Pe={key:0,class:`af-tool-args q-mt-xs rounded-borders`},Fe={class:`af-args-pre`},Ie={class:`af-text-header row items-center q-mb-xs`},Le={class:`af-time`},Re=[`innerHTML`],ze={key:0,class:`text-grey-7 text-caption q-mt-xs`},Be=[`onClick`],Ve={class:`af-system-content text-caption text-amber-6`},He={class:`af-time`},Ue={key:0,class:`af-system-details q-mt-xs rounded-borders`},We={class:`af-args-pre`},Ge={key:5,class:`row items-center`},Ke={class:`af-error-content text-red-5`},qe={class:`af-time`},Je={key:6,class:`row items-center`},Ye={class:`af-raw-content text-grey-7`},Xe={class:`af-time`},Ze={class:`scroll-buttons`},T=50,Qe=50,E=C(ne({__name:`ActivityFeed`,setup(ne){function C(e){let t=se.parse(e,{async:!1,breaks:!0,gfm:!0});return oe.sanitize(t)}let{t:E}=ee(),D=ae(),$e=ie(),O=o(null),k=o(!1),A=o(new Set),j=new Map;function M(e,t){return j.has(e)||j.set(e,pt(t)),j.get(e)}let N=new Map;function et(e,t){return N.has(e)||N.set(e,C(t)),N.get(e)}let P=g(()=>{let e=D.activityFeed;for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.meta?.sender===`user`)return null;if(n.type===`tool_use`&&n.content===`AskUserQuestion`)return n.id}return null}),F=o(new Map);function tt(e,t,n){F.value.has(e)||F.value.set(e,new Map);let r=F.value.get(e);r.get(t)===n?r.delete(t):r.set(t,n)}function I(e,t,n){return F.value.get(e)?.get(t)===n}function nt(e){let t=F.value.get(e);return!!t&&t.size>0}function rt(e,t){let n=D.selectedWorkspaceId;if(!n)return;let r=F.value.get(e);if(!r||r.size===0)return;let i=[];for(let[e,n]of r.entries()){let r=t[e];if(!r)continue;let a=r.options[n];a&&i.push(`${r.question}: ${a.label}`)}i.length>0&&$e.sendChatMessage(n,i.join(`
2
- `))}let L=o(-1);function it(){let t=D.activityFeed,n=t.map((e,t)=>({item:e,idx:t})).filter(({item:e})=>e.meta?.sender===`user`);if(n.length===0)return;L.value<=0?L.value=n.length-1:L.value--;let r=n[L.value].idx,i=n[L.value].item.id,a=t.length-r;a>R.value&&(R.value=Math.min(a+10,t.length)),e(()=>{let e=O.value?.querySelector(`[data-item-id="${i}"]`);e&&e.scrollIntoView({behavior:`smooth`,block:`center`})})}n(()=>D.selectedWorkspaceId,()=>{L.value=-1,j.clear(),F.value.clear(),N.clear(),V=0,k.value=!1});let R=o(T),z=g(()=>{let e=D.activityFeed;return e.length<=R.value?e:e.slice(-R.value)});n(()=>D.selectedWorkspaceId,()=>{R.value=T}),n(z,e=>{let t=new Set(e.map(e=>e.id));for(let e of j.keys())t.has(e)||j.delete(e);for(let e of F.value.keys())t.has(e)||F.value.delete(e);for(let e of N.keys())t.has(e)||N.delete(e)},{flush:`post`});let B=o(!1),V=0;function H(){let t=O.value;if(t&&(t.scrollHeight-t.scrollTop-t.clientHeight<50?B.value=!1:t.scrollTop<V&&(B.value=!0),V=t.scrollTop,t.scrollTop<200&&!k.value)){let n=D.activityFeed.length;if(R.value<n){k.value=!0;let r=t.scrollHeight;R.value=Math.min(R.value+Qe,n),e(()=>{O.value&&(O.value.scrollTop+=O.value.scrollHeight-r),k.value=!1})}else if(D.selectedWorkspaceId&&D.hasMoreEvents[D.selectedWorkspaceId]!==!1){k.value=!0;let n=t.scrollHeight;D.fetchOlderEvents(D.selectedWorkspaceId).then(t=>{t?(R.value=D.activityFeed.length,e(()=>{O.value&&(O.value.scrollTop+=O.value.scrollHeight-n),k.value=!1})):k.value=!1})}}}function U(){if(B.value)return;let e=O.value;e&&(e.scrollTop=e.scrollHeight)}function at(){B.value=!1,R.value=T,e(()=>{let e=O.value;e&&(e.scrollTop=e.scrollHeight)})}n(()=>D.activityFeed.length,()=>{e(U)}),i(()=>{O.value?.addEventListener(`scroll`,H),e(U)}),a(()=>{O.value?.removeEventListener(`scroll`,H)});function W(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function G(e){if(e.type!==`tool_use`)return null;let t=e.meta?.input;if(e.content===`Edit`){if(!t?.file_path)return null;let e=t.file_path,n=t.old_string??``,r=t.new_string??``,i=n.split(`
1
+ import{E as e,F as t,H as n,L as r,M as i,N as a,Q as o,U as s,_ as c,_t as l,a as u,d,f,g as p,m,n as ee,p as h,rt as te,u as g,y as ne,yt as _}from"./vue-i18n-nv59vAyH.js";import{L as v,T as y,bt as re}from"./scroll-CWjBCoBR.js";import{E as ie,O as ae}from"./index-5WBiUIJL.js";import{t as b}from"./QSpinnerDots-FJCnAvfw.js";import{n as x,p as S,t as C}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{n as oe,t as se}from"./marked.esm-BzjtracY.js";var ce={key:0,class:`af-empty column items-center justify-center text-center q-pa-xl`},le={class:`text-grey-6 q-mt-md text-body2`},ue={class:`text-grey-8 text-caption q-mt-xs`},de={key:1,class:`row justify-center q-my-sm`},fe=[`data-item-id`],pe={class:`af-tool row items-center q-gutter-xs`},me={class:`af-tool-label text-indigo-4`},he={class:`af-time`},ge={key:0,class:`text-grey-4 q-mb-xs`},_e={class:`af-ask-options-list q-mb-sm`},ve={class:`text-weight-bold text-grey-3`},ye={key:0},be={key:1,class:`af-ask-buttons q-gutter-xs`},xe={key:0,class:`q-mt-sm row justify-end`},Se=[`onClick`],Ce={class:`af-file-header row items-center no-wrap q-gutter-xs`},we={class:`af-file-path text-grey-4 ellipsis`},Te={class:`af-diff-stats`},Ee={key:0,class:`text-green-5`},De={key:1,class:`text-red-5 q-ml-xs`},Oe={class:`af-time`},ke={key:1,class:`af-diff-line af-diff-del`},w={key:0,class:`af-diff-line text-grey-7 text-italic`},Ae=[`onClick`],je={class:`af-tool-label text-grey-7`},Me={key:0,class:`af-tool-desc text-grey-8`},Ne={class:`af-time`},Pe={key:0,class:`af-tool-args q-mt-xs rounded-borders`},Fe={class:`af-args-pre`},Ie={class:`af-text-header row items-center q-mb-xs`},Le={class:`af-time`},Re=[`innerHTML`],ze=[`onClick`],Be={class:`af-system-content text-caption text-amber-6`},Ve={class:`af-time`},He={key:0,class:`af-system-details q-mt-xs rounded-borders`},Ue={class:`af-args-pre`},We={key:5,class:`row items-center`},Ge={class:`af-error-content text-red-5`},Ke={class:`af-time`},qe={key:6,class:`row items-center`},Je={class:`af-raw-content text-grey-7`},Ye={class:`af-time`},Xe={class:`scroll-buttons`},T=50,Ze=50,E=C(ne({__name:`ActivityFeed`,setup(ne){function C(e){let t=se.parse(e,{async:!1,breaks:!0,gfm:!0});return oe.sanitize(t)}let{t:E}=ee(),D=ae(),Qe=ie(),O=o(null),k=o(!1),A=o(new Set),j=new Map;function M(e,t){return j.has(e)||j.set(e,ft(t)),j.get(e)}let N=new Map;function $e(e,t){return N.has(e)||N.set(e,C(t)),N.get(e)}let P=g(()=>{let e=D.activityFeed;for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.meta?.sender===`user`)return null;if(n.type===`tool_use`&&n.content===`AskUserQuestion`)return n.id}return null}),F=o(new Map);function et(e,t,n){F.value.has(e)||F.value.set(e,new Map);let r=F.value.get(e);r.get(t)===n?r.delete(t):r.set(t,n)}function I(e,t,n){return F.value.get(e)?.get(t)===n}function tt(e){let t=F.value.get(e);return!!t&&t.size>0}function nt(e,t){let n=D.selectedWorkspaceId;if(!n)return;let r=F.value.get(e);if(!r||r.size===0)return;let i=[];for(let[e,n]of r.entries()){let r=t[e];if(!r)continue;let a=r.options[n];a&&i.push(`${r.question}: ${a.label}`)}i.length>0&&Qe.sendChatMessage(n,i.join(`
2
+ `))}let L=o(-1);function rt(){let t=D.activityFeed,n=t.map((e,t)=>({item:e,idx:t})).filter(({item:e})=>e.meta?.sender===`user`);if(n.length===0)return;L.value<=0?L.value=n.length-1:L.value--;let r=n[L.value].idx,i=n[L.value].item.id,a=t.length-r;a>R.value&&(R.value=Math.min(a+10,t.length)),e(()=>{let e=O.value?.querySelector(`[data-item-id="${i}"]`);e&&e.scrollIntoView({behavior:`smooth`,block:`center`})})}n(()=>D.selectedWorkspaceId,()=>{L.value=-1,j.clear(),F.value.clear(),N.clear(),V=0,k.value=!1});let R=o(T),z=g(()=>{let e=D.activityFeed;return e.length<=R.value?e:e.slice(-R.value)});n(()=>D.selectedWorkspaceId,()=>{R.value=T}),n(z,e=>{let t=new Set(e.map(e=>e.id));for(let e of j.keys())t.has(e)||j.delete(e);for(let e of F.value.keys())t.has(e)||F.value.delete(e);for(let e of N.keys())t.has(e)||N.delete(e)},{flush:`post`});let B=o(!1),V=0;function H(){let t=O.value;if(t&&(t.scrollHeight-t.scrollTop-t.clientHeight<50?B.value=!1:t.scrollTop<V&&(B.value=!0),V=t.scrollTop,t.scrollTop<200&&!k.value)){let n=D.activityFeed.length;if(R.value<n){k.value=!0;let r=t.scrollHeight;R.value=Math.min(R.value+Ze,n),e(()=>{O.value&&(O.value.scrollTop+=O.value.scrollHeight-r),k.value=!1})}else if(D.selectedWorkspaceId&&D.hasMoreEvents[D.selectedWorkspaceId]!==!1){k.value=!0;let n=t.scrollHeight;D.fetchOlderEvents(D.selectedWorkspaceId).then(t=>{t?(R.value=D.activityFeed.length,e(()=>{O.value&&(O.value.scrollTop+=O.value.scrollHeight-n),k.value=!1})):k.value=!1})}}}function U(){if(B.value)return;let e=O.value;e&&(e.scrollTop=e.scrollHeight)}function it(){B.value=!1,R.value=T,e(()=>{let e=O.value;e&&(e.scrollTop=e.scrollHeight)})}n(()=>D.activityFeed.length,()=>{e(U)}),i(()=>{O.value?.addEventListener(`scroll`,H),e(U)}),a(()=>{O.value?.removeEventListener(`scroll`,H)});function W(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function G(e){if(e.type!==`tool_use`)return null;let t=e.meta?.input;if(e.content===`Edit`){if(!t?.file_path)return null;let e=t.file_path,n=t.old_string??``,r=t.new_string??``,i=n.split(`
3
3
  `),a=r.split(`
4
4
  `);return{toolName:`Edit`,filePath:e,oldString:n,newString:r,replaceAll:t.replace_all??!1,additions:a.length,deletions:i.length}}if(e.content===`Write`){if(!t?.file_path)return null;let e=t.file_path,n=t.content??``;return{toolName:`Write`,filePath:e,content:n,additions:n.split(`
5
- `).length,deletions:0}}if(e.content===`Bash`){let e=(t?.command??``).match(/^\s*rm\s+(?:-[a-zA-Z]*\s+)*(.+)/);if(e)return{toolName:`Bash:rm`,filePath:e[1].trim().replace(/["']/g,``),additions:0,deletions:1}}return null}function K(e){let t=D.selectedWorkspace;if(t){let n=`${t.projectPath}/.worktrees/${t.workingBranch}/`;if(e.startsWith(n))return e.slice(n.length);if(e.startsWith(`${t.projectPath}/`))return e.slice(t.projectPath.length+1)}return e.startsWith(`/`)&&e.split(`/`).length>4?`…/${e.split(`/`).slice(-3).join(`/`)}`:e}function ot(e){return e.split(`/`).pop()??e}function q(e){let t=ot(e),n=t.lastIndexOf(`.`);return n>=0?t.substring(n+1):``}function st(e){return{ts:`JS`,tsx:`TS`,js:`JS`,jsx:`JS`,vue:`VU`,py:`PY`,rs:`RS`,go:`GO`,java:`JA`,php:`PH`,css:`CS`,scss:`SC`,html:`HT`,md:`MD`,json:`JS`,sql:`SQ`,sh:`SH`,yaml:`YA`,yml:`YA`,toml:`TM`}[e.toLowerCase()]??e.substring(0,2).toUpperCase()}function ct(e){return{ts:`blue-5`,tsx:`blue-5`,js:`yellow-8`,jsx:`yellow-8`,vue:`green-5`,py:`blue-4`,rs:`orange-5`,go:`cyan-5`,java:`red-5`,php:`indigo-4`,css:`purple-4`,scss:`pink-4`,html:`orange-4`,md:`grey-5`,json:`yellow-6`}[e.toLowerCase()]??`grey-5`}function lt(e){let t=e.toLowerCase();return t.includes(`read`)||t.includes(`grep`)||t.includes(`glob`)?`search`:t.includes(`write`)||t.includes(`edit`)?`edit`:t.includes(`bash`)||t.includes(`terminal`)?`terminal`:t.includes(`agent`)||t.includes(`task`)?`smart_toy`:`build`}function J(e){switch(e.type){case`text`:return e.meta?.sender===`system-prompt`?`af-item--prompt`:e.meta?.sender===`user`?`af-item--user`:`af-item--text`;case`system`:return`af-item--system`;case`error`:return`af-item--error`;case`tool_use`:return`af-item--tool`;case`raw`:return`af-item--raw`;default:return``}}function ut(e){switch(e.meta?.sender){case`system-prompt`:return E(`activityFeed.initialPrompt`);case`user`:return E(`activityFeed.you`);default:return E(`activityFeed.agent`)}}function dt(e){switch(e.meta?.sender){case`system-prompt`:return`text-indigo-4`;case`user`:return`text-green-4`;default:return`text-blue-4`}}function ft(e){if(e.content===`Skill`&&e.meta){let t=e.meta.input;if(t&&typeof t.skill==`string`)return`Skill — ${t.skill}`}return e.content}function Y(e){if(!e.meta)return``;let t=e.meta.input;if(!t)return``;if(typeof t.description==`string`)return t.description;if(typeof t.file_path==`string`)return K(t.file_path);if(typeof t.pattern==`string`)return`${typeof t.path==`string`?`${K(t.path)}/`:``}${t.pattern}`;if(typeof t.path==`string`)return K(t.path);if(typeof t.command==`string`){let e=t.command;return e.length>80?`${e.slice(0,80)}…`:e}return``}function pt(e){if(e.type!==`tool_use`||e.content!==`AskUserQuestion`)return null;let t=e.meta?.input;return!t?.questions||!Array.isArray(t.questions)?null:t.questions.filter(e=>Array.isArray(e.options)&&e.options.length>0).map(e=>({question:e.question??``,options:e.options.map(e=>({label:e.label??``,description:e.description??``}))}))}function X(e){if(!e.meta)return!1;let t=e.meta;return t.input!==void 0&&t.input!==null}function Z(e){A.value.has(e)?A.value.delete(e):A.value.add(e)}function Q(e){return A.value.has(e)}function mt(e){if(!e.meta)return``;let t=e.meta;if(!t.input)return``;try{return JSON.stringify(t.input,null,2)}catch{return String(t.input)}}let ht=g(()=>D.activityFeed.some(e=>e.meta?.sender===`user`));function $(e){return e.type!==`system`||!e.meta?!1:Object.keys(e.meta).length>0}function gt(e){if(!e.meta)return``;try{return JSON.stringify(e.meta,null,2)}catch{return``}}return(e,n)=>(t(),m(`div`,{ref_key:`feedContainer`,ref:O,class:`activity-feed q-pa-sm`},[te(D).activityFeed.length===0?(t(),m(`div`,ce,[c(v,{name:`forum`,size:`48px`,color:`grey-8`}),d(`div`,le,_(e.$t(`activityFeed.empty`)),1),d(`div`,ue,_(e.$t(`activityFeed.emptyHint`)),1)])):h(``,!0),k.value?(t(),m(`div`,de,[c(b,{size:`24px`,color:`grey-6`})])):h(``,!0),(t(!0),m(u,null,r(z.value,i=>(t(),m(`div`,{key:i.id,"data-item-id":i.id,class:l([`af-item text-caption rounded-borders`,J(i)])},[i.type===`tool_use`&&M(i.id,i)?(t(),m(u,{key:0},[d(`div`,pe,[c(v,{name:`help_outline`,size:`14px`,color:`indigo-4`}),d(`span`,me,_(e.$t(`activityFeed.question`)),1),c(S),d(`span`,he,_(W(i.timestamp)),1)]),(t(!0),m(u,null,r(M(i.id,i),(e,n)=>(t(),m(`div`,{key:n,class:`q-mt-sm`},[e.question?(t(),m(`div`,ge,_(e.question),1)):h(``,!0),d(`div`,_e,[(t(!0),m(u,null,r(e.options,(e,n)=>(t(),m(`div`,{key:n,class:`af-ask-option-item text-caption text-grey-5`},[d(`span`,ve,_(n+1)+`. `+_(e.label),1),e.description?(t(),m(`span`,ye,` — `+_(e.description),1)):h(``,!0)]))),128))]),i.id===P.value?(t(),m(`div`,be,[(t(!0),m(u,null,r(e.options,(e,r)=>(t(),f(y,{key:e.label,"no-caps":``,dense:``,outline:!I(i.id,n,r),unelevated:I(i.id,n,r),color:I(i.id,n,r)?`indigo-6`:`indigo-4`,"text-color":I(i.id,n,r)?`white`:void 0,class:`af-option-btn`,onClick:e=>tt(i.id,n,r)},{default:s(()=>[p(_(e.label),1)]),_:2},1032,[`outline`,`unelevated`,`color`,`text-color`,`onClick`]))),128))])):h(``,!0)]))),128)),i.id===P.value?(t(),m(`div`,xe,[c(y,{"no-caps":``,unelevated:``,dense:``,color:`indigo-6`,label:e.$t(`activityFeed.sendAnswers`),icon:`send`,disable:!nt(i.id),onClick:e=>rt(i.id,M(i.id,i))},null,8,[`label`,`disable`,`onClick`])])):h(``,!0)],64)):i.type===`tool_use`&&G(i)?(t(),m(`div`,{key:1,class:`af-file-change cursor-pointer`,onClick:e=>Z(i.id)},[d(`div`,Ce,[d(`span`,{class:l([`af-lang-badge`,`text-${ct(q(G(i).filePath))}`])},_(st(q(G(i).filePath))),3),d(`span`,we,_(K(G(i).filePath)),1),d(`span`,Te,[G(i).additions?(t(),m(`span`,Ee,`+`+_(G(i).additions),1)):h(``,!0),G(i).deletions?(t(),m(`span`,De,`-`+_(G(i).deletions),1)):h(``,!0)]),c(v,{name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),c(S),d(`span`,Oe,_(W(i.timestamp)),1)]),Q(i.id)?(t(),m(`div`,{key:0,class:`af-diff-body q-mt-xs`,onClick:n[0]||=re(()=>{},[`stop`])},[G(i).toolName===`Edit`?(t(),m(u,{key:0},[(t(!0),m(u,null,r((G(i).oldString??``).split(`
5
+ `).length,deletions:0}}if(e.content===`Bash`){let e=(t?.command??``).match(/^\s*rm\s+(?:-[a-zA-Z]*\s+)*(.+)/);if(e)return{toolName:`Bash:rm`,filePath:e[1].trim().replace(/["']/g,``),additions:0,deletions:1}}return null}function K(e){let t=D.selectedWorkspace;if(t){let n=`${t.projectPath}/.worktrees/${t.workingBranch}/`;if(e.startsWith(n))return e.slice(n.length);if(e.startsWith(`${t.projectPath}/`))return e.slice(t.projectPath.length+1)}return e.startsWith(`/`)&&e.split(`/`).length>4?`…/${e.split(`/`).slice(-3).join(`/`)}`:e}function at(e){return e.split(`/`).pop()??e}function q(e){let t=at(e),n=t.lastIndexOf(`.`);return n>=0?t.substring(n+1):``}function ot(e){return{ts:`JS`,tsx:`TS`,js:`JS`,jsx:`JS`,vue:`VU`,py:`PY`,rs:`RS`,go:`GO`,java:`JA`,php:`PH`,css:`CS`,scss:`SC`,html:`HT`,md:`MD`,json:`JS`,sql:`SQ`,sh:`SH`,yaml:`YA`,yml:`YA`,toml:`TM`}[e.toLowerCase()]??e.substring(0,2).toUpperCase()}function st(e){return{ts:`blue-5`,tsx:`blue-5`,js:`yellow-8`,jsx:`yellow-8`,vue:`green-5`,py:`blue-4`,rs:`orange-5`,go:`cyan-5`,java:`red-5`,php:`indigo-4`,css:`purple-4`,scss:`pink-4`,html:`orange-4`,md:`grey-5`,json:`yellow-6`}[e.toLowerCase()]??`grey-5`}function ct(e){let t=e.toLowerCase();return t.includes(`read`)||t.includes(`grep`)||t.includes(`glob`)?`search`:t.includes(`write`)||t.includes(`edit`)?`edit`:t.includes(`bash`)||t.includes(`terminal`)?`terminal`:t.includes(`agent`)||t.includes(`task`)?`smart_toy`:`build`}function lt(e){switch(e.type){case`text`:return e.meta?.sender===`system-prompt`?`af-item--prompt`:e.meta?.sender===`user`?`af-item--user`:`af-item--text`;case`system`:return`af-item--system`;case`error`:return`af-item--error`;case`tool_use`:return`af-item--tool`;case`raw`:return`af-item--raw`;default:return``}}function J(e){switch(e.meta?.sender){case`system-prompt`:return E(`activityFeed.initialPrompt`);case`user`:return E(`activityFeed.you`);default:return E(`activityFeed.agent`)}}function ut(e){switch(e.meta?.sender){case`system-prompt`:return`text-indigo-4`;case`user`:return`text-green-4`;default:return`text-blue-4`}}function dt(e){if(e.content===`Skill`&&e.meta){let t=e.meta.input;if(t&&typeof t.skill==`string`)return`Skill — ${t.skill}`}return e.content}function Y(e){if(!e.meta)return``;let t=e.meta.input;if(!t)return``;if(typeof t.description==`string`)return t.description;if(typeof t.file_path==`string`)return K(t.file_path);if(typeof t.pattern==`string`)return`${typeof t.path==`string`?`${K(t.path)}/`:``}${t.pattern}`;if(typeof t.path==`string`)return K(t.path);if(typeof t.command==`string`){let e=t.command;return e.length>80?`${e.slice(0,80)}…`:e}return``}function ft(e){if(e.type!==`tool_use`||e.content!==`AskUserQuestion`)return null;let t=e.meta?.input;return!t?.questions||!Array.isArray(t.questions)?null:t.questions.filter(e=>Array.isArray(e.options)&&e.options.length>0).map(e=>({question:e.question??``,options:e.options.map(e=>({label:e.label??``,description:e.description??``}))}))}function X(e){if(!e.meta)return!1;let t=e.meta;return t.input!==void 0&&t.input!==null}function Z(e){A.value.has(e)?A.value.delete(e):A.value.add(e)}function Q(e){return A.value.has(e)}function pt(e){if(!e.meta)return``;let t=e.meta;if(!t.input)return``;try{return JSON.stringify(t.input,null,2)}catch{return String(t.input)}}let mt=g(()=>D.activityFeed.some(e=>e.meta?.sender===`user`));function $(e){return e.type!==`system`||!e.meta?!1:Object.keys(e.meta).length>0}function ht(e){if(!e.meta)return``;try{return JSON.stringify(e.meta,null,2)}catch{return``}}return(e,n)=>(t(),m(`div`,{ref_key:`feedContainer`,ref:O,class:`activity-feed q-pa-sm`},[te(D).activityFeed.length===0?(t(),m(`div`,ce,[c(v,{name:`forum`,size:`48px`,color:`grey-8`}),d(`div`,le,_(e.$t(`activityFeed.empty`)),1),d(`div`,ue,_(e.$t(`activityFeed.emptyHint`)),1)])):h(``,!0),k.value?(t(),m(`div`,de,[c(b,{size:`24px`,color:`grey-6`})])):h(``,!0),(t(!0),m(u,null,r(z.value,i=>(t(),m(`div`,{key:i.id,"data-item-id":i.id,class:l([`af-item text-caption rounded-borders`,lt(i)])},[i.type===`tool_use`&&M(i.id,i)?(t(),m(u,{key:0},[d(`div`,pe,[c(v,{name:`help_outline`,size:`14px`,color:`indigo-4`}),d(`span`,me,_(e.$t(`activityFeed.question`)),1),c(S),d(`span`,he,_(W(i.timestamp)),1)]),(t(!0),m(u,null,r(M(i.id,i),(e,n)=>(t(),m(`div`,{key:n,class:`q-mt-sm`},[e.question?(t(),m(`div`,ge,_(e.question),1)):h(``,!0),d(`div`,_e,[(t(!0),m(u,null,r(e.options,(e,n)=>(t(),m(`div`,{key:n,class:`af-ask-option-item text-caption text-grey-5`},[d(`span`,ve,_(n+1)+`. `+_(e.label),1),e.description?(t(),m(`span`,ye,` — `+_(e.description),1)):h(``,!0)]))),128))]),i.id===P.value?(t(),m(`div`,be,[(t(!0),m(u,null,r(e.options,(e,r)=>(t(),f(y,{key:e.label,"no-caps":``,dense:``,outline:!I(i.id,n,r),unelevated:I(i.id,n,r),color:I(i.id,n,r)?`indigo-6`:`indigo-4`,"text-color":I(i.id,n,r)?`white`:void 0,class:`af-option-btn`,onClick:e=>et(i.id,n,r)},{default:s(()=>[p(_(e.label),1)]),_:2},1032,[`outline`,`unelevated`,`color`,`text-color`,`onClick`]))),128))])):h(``,!0)]))),128)),i.id===P.value?(t(),m(`div`,xe,[c(y,{"no-caps":``,unelevated:``,dense:``,color:`indigo-6`,label:e.$t(`activityFeed.sendAnswers`),icon:`send`,disable:!tt(i.id),onClick:e=>nt(i.id,M(i.id,i))},null,8,[`label`,`disable`,`onClick`])])):h(``,!0)],64)):i.type===`tool_use`&&G(i)?(t(),m(`div`,{key:1,class:`af-file-change cursor-pointer`,onClick:e=>Z(i.id)},[d(`div`,Ce,[d(`span`,{class:l([`af-lang-badge`,`text-${st(q(G(i).filePath))}`])},_(ot(q(G(i).filePath))),3),d(`span`,we,_(K(G(i).filePath)),1),d(`span`,Te,[G(i).additions?(t(),m(`span`,Ee,`+`+_(G(i).additions),1)):h(``,!0),G(i).deletions?(t(),m(`span`,De,`-`+_(G(i).deletions),1)):h(``,!0)]),c(v,{name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),c(S),d(`span`,Oe,_(W(i.timestamp)),1)]),Q(i.id)?(t(),m(`div`,{key:0,class:`af-diff-body q-mt-xs`,onClick:n[0]||=re(()=>{},[`stop`])},[G(i).toolName===`Edit`?(t(),m(u,{key:0},[(t(!0),m(u,null,r((G(i).oldString??``).split(`
6
6
  `),(e,r)=>(t(),m(`div`,{key:`del-${r}`,class:`af-diff-line af-diff-del`},[n[1]||=d(`span`,{class:`af-diff-sign`},`-`,-1),p(_(e),1)]))),128)),(t(!0),m(u,null,r((G(i).newString??``).split(`
7
7
  `),(e,r)=>(t(),m(`div`,{key:`add-${r}`,class:`af-diff-line af-diff-add`},[n[2]||=d(`span`,{class:`af-diff-sign`},`+`,-1),p(_(e),1)]))),128))],64)):G(i).toolName===`Bash:rm`?(t(),m(`div`,ke,[...n[3]||=[d(`span`,{class:`af-diff-sign`},`-`,-1),p(`File deleted`,-1)]])):(t(),m(u,{key:2},[(t(!0),m(u,null,r((G(i).content??``).split(`
8
8
  `).slice(0,30),(e,r)=>(t(),m(`div`,{key:`w-${r}`,class:`af-diff-line af-diff-add`},[n[4]||=d(`span`,{class:`af-diff-sign`},`+`,-1),p(_(e),1)]))),128)),(G(i).content??``).split(`
9
9
  `).length>30?(t(),m(`div`,w,`… `+_((G(i).content??``).split(`
10
- `).length-30)+` more lines`,1)):h(``,!0)],64))])):h(``,!0)],8,Se)):i.type===`tool_use`?(t(),m(u,{key:2},[d(`div`,{class:l([`af-tool row items-center q-gutter-xs`,{"cursor-pointer":X(i)}]),onClick:e=>X(i)&&Z(i.id)},[c(v,{name:lt(i.content),size:`14px`,color:`grey-6`},null,8,[`name`]),d(`span`,je,_(ft(i)),1),Y(i)?(t(),m(`span`,Me,`— `+_(Y(i)),1)):h(``,!0),X(i)?(t(),f(v,{key:1,name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-7`},null,8,[`name`])):h(``,!0),c(S),d(`span`,Ne,_(W(i.timestamp)),1)],10,Ae),Q(i.id)?(t(),m(`div`,Pe,[d(`pre`,Fe,_(mt(i)),1)])):h(``,!0)],64)):i.type===`text`?(t(),m(u,{key:3},[d(`div`,Ie,[d(`span`,{class:l([`text-caption text-weight-bold`,dt(i)])},_(ut(i)),3),i.meta?.pending?(t(),f(b,{key:0,size:`14px`,color:`grey-5`,class:`q-ml-sm`})):h(``,!0),c(S),d(`span`,Le,_(W(i.timestamp)),1)]),d(`div`,{class:`af-text-content af-markdown`,innerHTML:et(i.id,i.content)},null,8,Re),i.meta?.pending?(t(),m(`div`,ze,_(e.$t(`agentBusy.pendingMessage`)),1)):h(``,!0)],64)):i.type===`system`?(t(),m(u,{key:4},[d(`div`,{class:l([`row items-center`,{"cursor-pointer":$(i)}]),onClick:e=>$(i)&&Z(i.id)},[c(v,{name:`info`,size:`14px`,color:`amber-6`,class:`q-mr-xs`}),d(`span`,Ve,_(i.content),1),$(i)?(t(),f(v,{key:0,name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`amber-8`,class:`q-ml-xs`},null,8,[`name`])):h(``,!0),c(S),d(`span`,He,_(W(i.timestamp)),1)],10,Be),Q(i.id)&&$(i)?(t(),m(`div`,Ue,[d(`pre`,We,_(gt(i)),1)])):h(``,!0)],64)):i.type===`error`?(t(),m(`div`,Ge,[c(v,{name:`error`,size:`14px`,color:`red-5`,class:`q-mr-xs`}),d(`span`,Ke,_(i.content),1),c(S),d(`span`,qe,_(W(i.timestamp)),1)])):(t(),m(`div`,Je,[d(`span`,Ye,_(i.content),1),c(S),d(`span`,Xe,_(W(i.timestamp)),1)]))],10,fe))),128)),d(`div`,Ze,[ht.value?(t(),f(y,{key:0,round:``,dense:``,size:`sm`,icon:`person_search`,color:`indigo-8`,class:`scroll-btn`,onClick:it},{default:s(()=>[c(x,null,{default:s(()=>[p(_(e.$t(`activityFeed.goToPrevious`)),1)]),_:1})]),_:1})):h(``,!0),B.value?(t(),f(y,{key:1,round:``,dense:``,size:`sm`,icon:`keyboard_double_arrow_down`,color:`indigo-8`,class:`scroll-btn`,onClick:at},{default:s(()=>[c(x,null,{default:s(()=>[p(_(e.$t(`activityFeed.scrollToBottom`)),1)]),_:1})]),_:1})):h(``,!0)])],512))}}),[[`__scopeId`,`data-v-bbcd11cc`]]);export{E as default};
10
+ `).length-30)+` more lines`,1)):h(``,!0)],64))])):h(``,!0)],8,Se)):i.type===`tool_use`?(t(),m(u,{key:2},[d(`div`,{class:l([`af-tool row items-center q-gutter-xs`,{"cursor-pointer":X(i)}]),onClick:e=>X(i)&&Z(i.id)},[c(v,{name:ct(i.content),size:`14px`,color:`grey-6`},null,8,[`name`]),d(`span`,je,_(dt(i)),1),Y(i)?(t(),m(`span`,Me,`— `+_(Y(i)),1)):h(``,!0),X(i)?(t(),f(v,{key:1,name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-7`},null,8,[`name`])):h(``,!0),c(S),d(`span`,Ne,_(W(i.timestamp)),1)],10,Ae),Q(i.id)?(t(),m(`div`,Pe,[d(`pre`,Fe,_(pt(i)),1)])):h(``,!0)],64)):i.type===`text`?(t(),m(u,{key:3},[d(`div`,Ie,[d(`span`,{class:l([`text-caption text-weight-bold`,ut(i)])},_(J(i)),3),i.meta?.pending?(t(),f(b,{key:0,size:`14px`,color:`grey-5`,class:`q-ml-sm`})):h(``,!0),c(S),d(`span`,Le,_(W(i.timestamp)),1)]),d(`div`,{class:`af-text-content af-markdown`,innerHTML:$e(i.id,i.content)},null,8,Re)],64)):i.type===`system`?(t(),m(u,{key:4},[d(`div`,{class:l([`row items-center`,{"cursor-pointer":$(i)}]),onClick:e=>$(i)&&Z(i.id)},[c(v,{name:`info`,size:`14px`,color:`amber-6`,class:`q-mr-xs`}),d(`span`,Be,_(i.content),1),$(i)?(t(),f(v,{key:0,name:Q(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`amber-8`,class:`q-ml-xs`},null,8,[`name`])):h(``,!0),c(S),d(`span`,Ve,_(W(i.timestamp)),1)],10,ze),Q(i.id)&&$(i)?(t(),m(`div`,He,[d(`pre`,Ue,_(ht(i)),1)])):h(``,!0)],64)):i.type===`error`?(t(),m(`div`,We,[c(v,{name:`error`,size:`14px`,color:`red-5`,class:`q-mr-xs`}),d(`span`,Ge,_(i.content),1),c(S),d(`span`,Ke,_(W(i.timestamp)),1)])):(t(),m(`div`,qe,[d(`span`,Je,_(i.content),1),c(S),d(`span`,Ye,_(W(i.timestamp)),1)]))],10,fe))),128)),d(`div`,Xe,[mt.value?(t(),f(y,{key:0,round:``,dense:``,size:`sm`,icon:`person_search`,color:`indigo-8`,class:`scroll-btn`,onClick:rt},{default:s(()=>[c(x,null,{default:s(()=>[p(_(e.$t(`activityFeed.goToPrevious`)),1)]),_:1})]),_:1})):h(``,!0),B.value?(t(),f(y,{key:1,round:``,dense:``,size:`sm`,icon:`keyboard_double_arrow_down`,color:`indigo-8`,class:`scroll-btn`,onClick:it},{default:s(()=>[c(x,null,{default:s(()=>[p(_(e.$t(`activityFeed.scrollToBottom`)),1)]),_:1})]),_:1})):h(``,!0)])],512))}}),[[`__scopeId`,`data-v-40c2b707`]]);export{E as default};
@@ -1,2 +1,2 @@
1
- import{F as e,H as t,L as n,M as r,N as i,Q as a,T as ee,U as o,_ as s,a as c,d as l,f as u,g as d,m as f,n as te,p,rt as ne,u as m,y as re,yt as h}from"./vue-i18n-nv59vAyH.js";import{L as g,T as _,bt as v,ht as ie,yt as y}from"./scroll-CWjBCoBR.js";import{i as b}from"./private.use-form-1cZLVjGN.js";import{t as ae}from"./settings-CuK-S6HH.js";import{E as oe,O as se,r as x,w as ce}from"./index-DSx45TKH.js";import{n as S,p as C,t as w}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{a as le,i as T,n as E,r as ue}from"./QMenu-IaCFq9U1.js";import{t as de}from"./QExpansionItem-KaA2BBuV.js";import{n as D,t as fe}from"./QPage-D5bnOxz0.js";var pe={class:`create-inner`},me={class:`create-title text-center text-weight-bold q-mb-lg text-grey-3`},he={class:`create-card rounded-borders`},ge={class:`card-top-bar row items-center q-px-md q-py-xs`},_e={class:`model-badge cursor-default row items-center q-gutter-xs`},ve={class:`text-indigo-3 text-weight-medium text-caption`},ye={key:0,class:`notion-url-wrap`},be={key:0,class:`notion-error text-caption q-px-md q-pb-xs text-red-5`},xe={key:1,class:`notion-valid text-caption q-px-md q-pb-xs text-green-4`},Se={class:`card-name-wrap`},Ce={class:`card-textarea-wrap`},we={class:`manual-hint q-px-md q-py-sm text-caption text-grey-6`},Te={class:`q-pa-sm manual-section-body`},Ee={class:`row items-center q-gutter-sm q-mb-sm`},De={class:`col text-caption text-grey-4`},Oe={class:`q-pa-sm manual-section-body`},ke={class:`row items-center q-gutter-sm q-mb-sm`},Ae={class:`col text-caption text-grey-4`},je={class:`card-bottom-bar row items-center wrap q-px-sm q-py-xs q-gutter-xs`},Me={class:`bottom-select-label row items-center no-wrap`},Ne={class:`bottom-select-label row items-center no-wrap`},Pe={class:`bottom-select-label row items-center no-wrap`},Fe={class:`bottom-select-label row items-center no-wrap`},Ie={class:`create-hint text-center text-body2 q-mt-md text-grey-8`},O=w(re({__name:`CreatePage`,setup(re){let w=ce(),O=le(),k=se(),A=ae(),{t:j}=te(),M=a([]),N=a(``),P=a(``),F=a(``),I=a(!1),L=a(`auto`),R=a(``),z=a(null),B=a(!1),V=a(A.global.defaultPermissionMode||`plan`),H=a([]),U=a(!1),W=a(!1),Le=m(()=>[{label:j(`model.auto`),value:`auto`,description:`Claude picks the optimal model`},{label:j(`model.opus`),value:`claude-opus-4-6`,description:`Most powerful`},{label:j(`model.sonnet`),value:`claude-sonnet-4-6`,description:`Balanced`},{label:j(`model.haiku`),value:`claude-haiku-4-5-20251001`,description:`Fastest`}]),G=m(()=>F.value.trim().startsWith(`https://www.notion.so/`)),K=a([]),q=a([]),J=a(``),Y=a(``),X=m(()=>!I.value||!G.value);function Re(){let e=J.value.trim();e&&(K.value.push(e),J.value=``)}function ze(e){K.value.splice(e,1)}function Be(){let e=Y.value.trim();e&&(q.value.push(e),Y.value=``)}function Ve(e){q.value.splice(e,1)}function He(){I.value=!I.value,I.value||(F.value=``)}async function Ue(e){if(!e.trim()){H.value=[],z.value=null;return}U.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();H.value=n.local??n.branches??[],H.value.length>0&&!z.value&&(z.value=H.value[0]??null)}catch{H.value=[],z.value=null}finally{U.value=!1}}function We(e){let t=A.getProjectByPath(e);t&&(t.defaultSourceBranch&&(z.value=t.defaultSourceBranch),t.defaultModel?L.value=t.defaultModel:A.global.defaultModel&&(L.value=A.global.defaultModel))}let Z=null;t(R,e=>{Z&&clearTimeout(Z),Z=setTimeout(()=>{z.value=null,Ue(e),We(e)},500)});function Ge(e,t){t(()=>{M.value=A.projectPaths.filter(t=>t.toLowerCase().includes(e.toLowerCase()))})}r(()=>{A.fetchSettings()}),i(()=>{Z&&clearTimeout(Z)});function Ke(e){return e.toLowerCase().replace(/[^a-z0-9\s-]/g,``).trim().replace(/\s+/g,`-`).replace(/-+/g,`-`).substring(0,50)}function Q(){return N.value.trim()?N.value.trim().substring(0,80):!I.value&&P.value.trim()&&(P.value.trim().split(`
1
+ import{F as e,H as t,L as n,M as r,N as i,Q as a,T as ee,U as o,_ as s,a as c,d as l,f as u,g as d,m as f,n as te,p,rt as ne,u as m,y as re,yt as h}from"./vue-i18n-nv59vAyH.js";import{L as g,T as _,bt as v,ht as ie,yt as y}from"./scroll-CWjBCoBR.js";import{i as b}from"./private.use-form-1cZLVjGN.js";import{t as ae}from"./settings-CuK-S6HH.js";import{E as oe,O as se,r as x,w as ce}from"./index-5WBiUIJL.js";import{n as S,p as C,t as w}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{a as le,i as T,n as E,r as ue}from"./QMenu-Dkt9vjxB.js";import{t as de}from"./QExpansionItem-C6t9K8IO.js";import{n as D,t as fe}from"./QPage-xaZO0kEH.js";var pe={class:`create-inner`},me={class:`create-title text-center text-weight-bold q-mb-lg text-grey-3`},he={class:`create-card rounded-borders`},ge={class:`card-top-bar row items-center q-px-md q-py-xs`},_e={class:`model-badge cursor-default row items-center q-gutter-xs`},ve={class:`text-indigo-3 text-weight-medium text-caption`},ye={key:0,class:`notion-url-wrap`},be={key:0,class:`notion-error text-caption q-px-md q-pb-xs text-red-5`},xe={key:1,class:`notion-valid text-caption q-px-md q-pb-xs text-green-4`},Se={class:`card-name-wrap`},Ce={class:`card-textarea-wrap`},we={class:`manual-hint q-px-md q-py-sm text-caption text-grey-6`},Te={class:`q-pa-sm manual-section-body`},Ee={class:`row items-center q-gutter-sm q-mb-sm`},De={class:`col text-caption text-grey-4`},Oe={class:`q-pa-sm manual-section-body`},ke={class:`row items-center q-gutter-sm q-mb-sm`},Ae={class:`col text-caption text-grey-4`},je={class:`card-bottom-bar row items-center wrap q-px-sm q-py-xs q-gutter-xs`},Me={class:`bottom-select-label row items-center no-wrap`},Ne={class:`bottom-select-label row items-center no-wrap`},Pe={class:`bottom-select-label row items-center no-wrap`},Fe={class:`bottom-select-label row items-center no-wrap`},Ie={class:`create-hint text-center text-body2 q-mt-md text-grey-8`},O=w(re({__name:`CreatePage`,setup(re){let w=ce(),O=le(),k=se(),A=ae(),{t:j}=te(),M=a([]),N=a(``),P=a(``),F=a(``),I=a(!1),L=a(`auto`),R=a(``),z=a(null),B=a(!1),V=a(A.global.defaultPermissionMode||`plan`),H=a([]),U=a(!1),W=a(!1),Le=m(()=>[{label:j(`model.auto`),value:`auto`,description:`Claude picks the optimal model`},{label:j(`model.opus`),value:`claude-opus-4-6`,description:`Most powerful`},{label:j(`model.sonnet`),value:`claude-sonnet-4-6`,description:`Balanced`},{label:j(`model.haiku`),value:`claude-haiku-4-5-20251001`,description:`Fastest`}]),G=m(()=>F.value.trim().startsWith(`https://www.notion.so/`)),K=a([]),q=a([]),J=a(``),Y=a(``),X=m(()=>!I.value||!G.value);function Re(){let e=J.value.trim();e&&(K.value.push(e),J.value=``)}function ze(e){K.value.splice(e,1)}function Be(){let e=Y.value.trim();e&&(q.value.push(e),Y.value=``)}function Ve(e){q.value.splice(e,1)}function He(){I.value=!I.value,I.value||(F.value=``)}async function Ue(e){if(!e.trim()){H.value=[],z.value=null;return}U.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();H.value=n.local??n.branches??[],H.value.length>0&&!z.value&&(z.value=H.value[0]??null)}catch{H.value=[],z.value=null}finally{U.value=!1}}function We(e){let t=A.getProjectByPath(e);t&&(t.defaultSourceBranch&&(z.value=t.defaultSourceBranch),t.defaultModel?L.value=t.defaultModel:A.global.defaultModel&&(L.value=A.global.defaultModel))}let Z=null;t(R,e=>{Z&&clearTimeout(Z),Z=setTimeout(()=>{z.value=null,Ue(e),We(e)},500)});function Ge(e,t){t(()=>{M.value=A.projectPaths.filter(t=>t.toLowerCase().includes(e.toLowerCase()))})}r(()=>{A.fetchSettings()}),i(()=>{Z&&clearTimeout(Z)});function Ke(e){return e.toLowerCase().replace(/[^a-z0-9\s-]/g,``).trim().replace(/\s+/g,`-`).replace(/-+/g,`-`).substring(0,50)}function Q(){return N.value.trim()?N.value.trim().substring(0,80):!I.value&&P.value.trim()&&(P.value.trim().split(`
2
2
  `)[0]??``).substring(0,80)||`workspace`}function qe(e){let t=(e.split(`/`).pop()??``).split(`-`);return t.length>1&&/^[0-9a-f]{12,}$/i.test(t[t.length-1])&&t.pop(),t.join(`-`).toLowerCase().substring(0,50)||`task-${Date.now()}`}function Je(){return I.value&&!G.value?j(`createPage.validationNotionUrl`):!I.value&&!P.value.trim()?j(`createPage.validationDescription`):!I.value&&(!Q()||Q()===`workspace`)&&!N.value.trim()&&!P.value.trim()?j(`createPage.validationName`):R.value.trim()?z.value?null:j(`createPage.validationBranch`):j(`createPage.validationPath`)}async function $(){let e=Je();if(e){O.notify({type:`negative`,message:e,position:`top`});return}W.value=!0;try{let e=Q(),t;t=e===`workspace`?I.value&&G.value?qe(F.value.trim()):`task-${Date.now()}`:Ke(e);let n=`feature/${t}`,r={name:e,projectPath:R.value.trim(),sourceBranch:z.value,workingBranch:n,model:L.value,...I.value&&G.value?{notionUrl:F.value.trim()}:{},...X.value&&K.value.length>0?{tasks:K.value}:{},...X.value&&q.value.length>0?{acceptanceCriteria:q.value}:{},...B.value?{skipSetupScript:!0}:{},...P.value.trim()?{description:P.value.trim()}:{},permissionMode:V.value},i=await k.createWorkspace(r);oe().subscribe(i.id),k.selectWorkspace(i.id),w.push({name:`workspace`,params:{id:i.id}})}catch{O.notify({type:`negative`,message:j(`createPage.errorCreating`),position:`top`})}finally{W.value=!1}}return(t,r)=>(e(),u(fe,{class:`create-page flex flex-center column`},{default:o(()=>[l(`div`,pe,[l(`div`,me,h(t.$t(`createPage.title`)),1),l(`div`,he,[l(`div`,ge,[l(`span`,_e,[s(g,{name:`auto_awesome`,size:`14px`,color:`indigo-4`}),l(`span`,ve,h(t.$t(`createPage.claudeCode`)),1)]),s(C),s(_,{flat:``,dense:``,"no-caps":``,size:`sm`,color:I.value?`green-4`:`grey-5`,class:`notion-toggle-btn text-caption rounded-borders`,onClick:He},{default:o(()=>[s(g,{name:`description`,size:`14px`,class:`q-mr-xs`}),d(` `+h(I.value?t.$t(`createPage.notionEnabled`):t.$t(`createPage.importNotion`)),1)]),_:1},8,[`color`])]),s(b,{color:`grey-9`}),s(ie,{name:`slide`},{default:o(()=>[I.value?(e(),f(`div`,ye,[s(x,{modelValue:F.value,"onUpdate:modelValue":r[0]||=e=>F.value=e,borderless:``,dense:``,placeholder:t.$t(`createPage.notionPlaceholder`),class:`notion-url-input`,"input-class":`notion-url-input-inner`},{prepend:o(()=>[s(g,{name:`link`,size:`16px`,color:G.value?`green-4`:`grey-6`},null,8,[`color`])]),_:1},8,[`modelValue`,`placeholder`]),F.value.trim()&&!G.value?(e(),f(`div`,be,h(t.$t(`createPage.notionValidation`)),1)):p(``,!0),G.value?(e(),f(`div`,xe,h(t.$t(`createPage.notionAutoExtract`)),1)):p(``,!0)])):p(``,!0)]),_:1}),I.value?(e(),u(b,{key:0,color:`grey-9`})):p(``,!0),l(`div`,Se,[s(x,{modelValue:N.value,"onUpdate:modelValue":r[1]||=e=>N.value=e,borderless:``,dense:``,placeholder:I.value&&G.value?t.$t(`createPage.workspaceName`):t.$t(`createPage.workspaceNamePlaceholder`),class:`name-input`,"input-class":`name-input-inner`},null,8,[`modelValue`,`placeholder`])]),s(b,{color:`grey-9`}),l(`div`,Ce,[s(x,{modelValue:P.value,"onUpdate:modelValue":r[2]||=e=>P.value=e,type:`textarea`,borderless:``,autogrow:``,rows:3,placeholder:I.value?t.$t(`createPage.instructions`):t.$t(`createPage.instructionsPlaceholder`),class:`create-textarea`,"input-class":`create-textarea-input`,onKeydown:[y(v($,[`ctrl`]),[`enter`]),y(v($,[`meta`]),[`enter`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),s(b,{color:`grey-9`}),X.value?(e(),f(c,{key:1},[l(`div`,we,h(t.$t(`createPage.manualHint`)),1),s(de,{dark:``,dense:``,label:t.$t(`createPage.tasks`,{count:K.value.length}),"header-class":`text-grey-4 manual-expansion-header`,class:`manual-expansion q-mx-sm`},{default:o(()=>[l(`div`,Te,[l(`div`,Ee,[s(x,{modelValue:J.value,"onUpdate:modelValue":r[3]||=e=>J.value=e,dark:``,dense:``,borderless:``,placeholder:t.$t(`createPage.addTask`),class:`col manual-input`,"input-class":`manual-input-inner`,onKeydown:y(v(Re,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),s(_,{flat:``,dense:``,round:``,icon:`add`,color:`indigo-4`,disable:!J.value.trim(),onClick:Re},{default:o(()=>[s(S,null,{default:o(()=>[d(h(t.$t(`tooltip.addTask`)),1)]),_:1})]),_:1},8,[`disable`])]),(e(!0),f(c,null,n(K.value,(n,r)=>(e(),f(`div`,{key:`task-${r}`,class:`row items-center q-py-xs manual-item`},[l(`span`,De,h(n),1),s(_,{flat:``,dense:``,round:``,icon:`close`,size:`xs`,color:`grey-6`,onClick:e=>ze(r)},{default:o(()=>[s(S,null,{default:o(()=>[d(h(t.$t(`tooltip.removeTask`)),1)]),_:1})]),_:1},8,[`onClick`])]))),128))])]),_:1},8,[`label`]),s(de,{dark:``,dense:``,label:t.$t(`createPage.acceptanceCriteria`,{count:q.value.length}),"header-class":`text-grey-4 manual-expansion-header`,class:`manual-expansion q-mx-sm q-mb-sm`},{default:o(()=>[l(`div`,Oe,[l(`div`,ke,[s(x,{modelValue:Y.value,"onUpdate:modelValue":r[4]||=e=>Y.value=e,dark:``,dense:``,borderless:``,placeholder:t.$t(`createPage.addCriterion`),class:`col manual-input`,"input-class":`manual-input-inner`,onKeydown:y(v(Be,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),s(_,{flat:``,dense:``,round:``,icon:`add`,color:`indigo-4`,disable:!Y.value.trim(),onClick:Be},{default:o(()=>[s(S,null,{default:o(()=>[d(h(t.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1},8,[`disable`])]),(e(!0),f(c,null,n(q.value,(n,r)=>(e(),f(`div`,{key:`crit-${r}`,class:`row items-center q-py-xs manual-item`},[l(`span`,Ae,h(n),1),s(_,{flat:``,dense:``,round:``,icon:`close`,size:`xs`,color:`grey-6`,onClick:e=>Ve(r)},{default:o(()=>[s(S,null,{default:o(()=>[d(h(t.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])]))),128))])]),_:1},8,[`label`]),s(b,{color:`grey-9`})],64)):p(``,!0),l(`div`,je,[s(D,{modelValue:L.value,"onUpdate:modelValue":r[5]||=e=>L.value=e,options:Le.value,dense:``,borderless:``,class:`bottom-select rounded-borders model-select`,"hide-dropdown-icon":``,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`},{selected:o(()=>[l(`span`,Me,[d(h(Le.value.find(e=>e.value===L.value)?.label??L.value)+` `,1),s(g,{name:`expand_more`,size:`12px`,color:`grey-5`})])]),option:o(({opt:e,itemProps:t})=>[s(E,ee(t,{class:`model-option`}),{default:o(()=>[s(T,null,{default:o(()=>[s(ue,{class:`text-white`},{default:o(()=>[d(h(e.label),1)]),_:2},1024),s(ue,{caption:``,class:`text-grey-5`},{default:o(()=>[d(h(e.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:1},8,[`modelValue`,`options`]),s(D,{modelValue:V.value,"onUpdate:modelValue":r[6]||=e=>V.value=e,options:[{label:t.$t(`permissionMode.plan`),value:`plan`},{label:t.$t(`permissionMode.autoAccept`),value:`auto-accept`}],dense:``,borderless:``,class:`bottom-select rounded-borders`,"hide-dropdown-icon":``,"emit-value":``,"map-options":``},{selected:o(()=>[l(`span`,Ne,[s(g,{name:V.value===`plan`?`visibility`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),d(` `+h(V.value===`plan`?t.$t(`permissionMode.plan`):t.$t(`permissionMode.autoAccept`))+` `,1),s(g,{name:`expand_more`,size:`12px`,color:`grey-5`})])]),_:1},8,[`modelValue`,`options`]),s(_,{flat:``,round:``,dense:``,size:`sm`,icon:B.value?`play_disabled`:`play_circle`,color:B.value?`orange-4`:`grey-6`,onClick:r[7]||=e=>B.value=!B.value},{default:o(()=>[s(S,null,{default:o(()=>[d(h(t.$t(`createPage.skipSetupScript`)),1)]),_:1})]),_:1},8,[`icon`,`color`]),s(C),s(D,{modelValue:R.value,"onUpdate:modelValue":r[8]||=e=>R.value=e,options:M.value,dense:``,borderless:``,"use-input":``,"hide-selected":``,"fill-input":``,"input-debounce":`0`,"new-value-mode":`add`,class:`bottom-select rounded-borders repo-select`,"hide-dropdown-icon":``,behavior:ne(A).projectPaths.length>0?`menu`:`dialog`,onFilter:Ge,onInputValue:r[9]||=e=>{R.value=e}},{prepend:o(()=>[s(g,{name:`attach_file`,size:`12px`,color:`grey-5`})]),selected:o(()=>[l(`span`,Pe,h(R.value||t.$t(`createPage.projectPath`)),1)]),"no-option":o(()=>[s(E,null,{default:o(()=>[s(T,{class:`text-grey-6 text-caption`},{default:o(()=>[d(h(t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`behavior`]),s(D,{modelValue:z.value,"onUpdate:modelValue":r[10]||=e=>z.value=e,options:H.value,dense:``,borderless:``,class:`bottom-select rounded-borders branch-select`,"hide-dropdown-icon":``,loading:U.value,disable:!R.value.trim()||U.value},{selected:o(()=>[l(`span`,Fe,[s(g,{name:`call_split`,size:`12px`,color:`grey-5`,class:`q-mr-xs`}),d(` `+h(z.value??t.$t(`createPage.branch`))+` `,1),s(g,{name:`expand_more`,size:`12px`,color:`grey-5`})])]),"no-option":o(()=>[s(E,null,{default:o(()=>[s(T,{class:`text-grey-6 text-caption`},{default:o(()=>[d(h(R.value.trim()?t.$t(`createPage.noBranches`):t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`,`disable`]),s(_,{label:t.$t(`createPage.create`),"no-caps":``,unelevated:``,class:`create-btn text-weight-bold rounded-borders`,loading:W.value,onClick:$},null,8,[`label`,`loading`])])]),l(`div`,Ie,h(I.value?t.$t(`createPage.notionExtractHint`):t.$t(`createPage.notionImportHint`)),1)])]),_:1}))}}),[[`__scopeId`,`data-v-9b31762d`]]);export{O as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-BY_NEoTM.js","assets/index-DSx45TKH.js","assets/vue-i18n-nv59vAyH.js","assets/scroll-CWjBCoBR.js","assets/settings-CuK-S6HH.js","assets/use-checkbox-DwkIkUAc.js","assets/private.use-form-1cZLVjGN.js","assets/i18n-DAQcMG9d.js","assets/index-eX_lKHSg.css","assets/editor.api-6HHa4uDw.js","assets/editor-COGk2gAX.css","assets/monaco.contribution-CDhgtrdW.js","assets/editor-CS3NEPi9.css"])))=>i.map(i=>d[i]);
2
- import{D as e,F as t,H as n,L as r,M as i,N as a,Q as o,S as s,U as c,W as l,_ as u,_t as d,a as f,b as p,d as m,f as h,g,j as ee,k as _,m as v,n as y,p as b,u as x,vt as S,y as C,yt as w}from"./vue-i18n-nv59vAyH.js";import{E as T,L as E,T as D,V as O,c as k,ct as A,s as j,z as M}from"./scroll-CWjBCoBR.js";import{a as N,i as P,o as F,r as I,s as L,t as R}from"./private.use-form-1cZLVjGN.js";import{S as z}from"./index-DSx45TKH.js";import{t as B}from"./QSpinnerDots-FJCnAvfw.js";import{n as V,p as te,t as H}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{t as U}from"./QBadge-xNMZEqT-.js";import{r as W}from"./touch-Bojc73iM.js";import{n as G,t as K}from"./TouchPan-DuISf80E.js";import{t as q}from"./format-Ex4UmWdz.js";var J=A({name:`QBtnGroup`,props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){let n=x(()=>{let t=[`unelevated`,`outline`,`flat`,`rounded`,`square`,`push`,`stretch`,`glossy`].filter(t=>e[t]===!0).map(e=>`q-btn-group--${e}`).join(` `);return`q-btn-group row no-wrap${t.length===0?``:` `+t}`+(e.spread===!0?` q-btn-group--spread`:` inline`)});return()=>s(`div`,{class:n.value},O(t.default))}}),ne=A({name:`QBtnToggle`,props:{...I,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(e,{slots:t,emit:n}){let r=x(()=>e.options.find(t=>t.value===e.modelValue)!==void 0),i=R(x(()=>({type:`hidden`,name:e.name,value:e.modelValue}))),a=x(()=>T(e)),o=x(()=>({rounded:e.rounded,dense:e.dense,...a.value})),c=x(()=>e.options.map((t,n)=>{let{attrs:r,value:i,slot:a,...s}=t;return{slot:a,props:{key:n,"aria-pressed":i===e.modelValue?`true`:`false`,...r,...s,...o.value,disable:e.disable===!0||s.disable===!0,color:i===e.modelValue?u(s,`toggleColor`):u(s,`color`),textColor:i===e.modelValue?u(s,`toggleTextColor`):u(s,`textColor`),noCaps:u(s,`noCaps`)===!0,noWrap:u(s,`noWrap`)===!0,size:u(s,`size`),padding:u(s,`padding`),ripple:u(s,`ripple`),stack:u(s,`stack`)===!0,stretch:u(s,`stretch`)===!0,onClick(e){l(i,t,e)}}}}));function l(t,r,i){e.readonly!==!0&&(e.modelValue===t?e.clearable===!0&&(n(`update:modelValue`,null,null),n(`clear`)):n(`update:modelValue`,t,r),n(`click`,i))}function u(t,n){return t[n]===void 0?e[n]:t[n]}function d(){let n=c.value.map(e=>s(D,e.props,e.slot===void 0?void 0:t[e.slot]));return e.name!==void 0&&e.disable!==!0&&r.value===!0&&i(n,`push`),M(t.default,n)}return()=>s(J,{class:`q-btn-toggle`,...a.value,rounded:e.rounded,stretch:e.stretch,glossy:e.glossy,spread:e.spread},d)}}),Y=A({props:[`store`,`barStyle`,`verticalBarStyle`,`horizontalBarStyle`],setup(e){return()=>[s(`div`,{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onVerticalMousedown}),s(`div`,{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onHorizontalMousedown}),l(s(`div`,{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":`true`}),e.store.thumbVertDir),l(s(`div`,{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":`true`}),e.store.thumbHorizDir)]}}),X=[`vertical`,`horizontal`],Z={vertical:{offset:`offsetY`,scroll:`scrollTop`,dir:`down`,dist:`y`},horizontal:{offset:`offsetX`,scroll:`scrollLeft`,dir:`right`,dist:`x`}},Q={prevent:!0,mouse:!0,mouseAllDir:!0},$=e=>e>=250?50:Math.ceil(e/5),re=A({name:`QScrollArea`,props:{...F,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(t,{slots:r,emit:i}){let a=o(!1),c=o(!1),l=o(!1),u={vertical:o(0),horizontal:o(0)},d={vertical:{ref:o(null),position:o(0),size:o(0)},horizontal:{ref:o(null),position:o(0),size:o(0)}},{proxy:f}=p(),m=N(t,f.$q),h=null,g,v=o(null),y=x(()=>`q-scrollarea`+(m.value===!0?` q-scrollarea--dark`:``));Object.assign(u,{verticalInner:x(()=>u.vertical.value-t.verticalOffset[0]-t.verticalOffset[1]),horizontalInner:x(()=>u.horizontal.value-t.horizontalOffset[0]-t.horizontalOffset[1])}),d.vertical.percentage=x(()=>{let e=d.vertical.size.value-u.vertical.value;if(e<=0)return 0;let t=q(d.vertical.position.value/e,0,1);return Math.round(t*1e4)/1e4}),d.vertical.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.vertical.size.value<=u.vertical.value+1),d.vertical.thumbStart=x(()=>t.verticalOffset[0]+d.vertical.percentage.value*(u.verticalInner.value-d.vertical.thumbSize.value)),d.vertical.thumbSize=x(()=>Math.round(q(u.verticalInner.value*u.verticalInner.value/d.vertical.size.value,$(u.verticalInner.value),u.verticalInner.value))),d.vertical.style=x(()=>({...t.thumbStyle,...t.verticalThumbStyle,top:`${d.vertical.thumbStart.value}px`,height:`${d.vertical.thumbSize.value}px`,right:`${t.horizontalOffset[1]}px`})),d.vertical.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.vertical.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``)),d.horizontal.percentage=x(()=>{let e=d.horizontal.size.value-u.horizontal.value;if(e<=0)return 0;let t=q(Math.abs(d.horizontal.position.value)/e,0,1);return Math.round(t*1e4)/1e4}),d.horizontal.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.horizontal.size.value<=u.horizontal.value+1),d.horizontal.thumbStart=x(()=>t.horizontalOffset[0]+d.horizontal.percentage.value*(u.horizontalInner.value-d.horizontal.thumbSize.value)),d.horizontal.thumbSize=x(()=>Math.round(q(u.horizontalInner.value*u.horizontalInner.value/d.horizontal.size.value,$(u.horizontalInner.value),u.horizontalInner.value))),d.horizontal.style=x(()=>({...t.thumbStyle,...t.horizontalThumbStyle,[f.$q.lang.rtl===!0?`right`:`left`]:`${d.horizontal.thumbStart.value}px`,width:`${d.horizontal.thumbSize.value}px`,bottom:`${t.verticalOffset[1]}px`})),d.horizontal.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.horizontal.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``));let b=x(()=>d.vertical.thumbHidden.value===!0&&d.horizontal.thumbHidden.value===!0?t.contentStyle:t.contentActiveStyle);function S(){let e={};return X.forEach(t=>{let n=d[t];Object.assign(e,{[t+`Position`]:n.position.value,[t+`Percentage`]:n.percentage.value,[t+`Size`]:n.size.value,[t+`ContainerSize`]:u[t].value,[t+`ContainerInnerSize`]:u[t+`Inner`].value})}),e}let C=L(()=>{let e=S();e.ref=f,i(`scroll`,e)},0);function w(e,t,n){if(X.includes(e)===!1){console.error(`[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)`);return}(e===`vertical`?k:j)(v.value,t,n)}function T({height:e,width:t}){let n=!1;u.vertical.value!==e&&(u.vertical.value=e,n=!0),u.horizontal.value!==t&&(u.horizontal.value=t,n=!0),n===!0&&P()}function E({position:e}){let t=!1;d.vertical.position.value!==e.top&&(d.vertical.position.value=e.top,t=!0),d.horizontal.position.value!==e.left&&(d.horizontal.position.value=e.left,t=!0),t===!0&&P()}function D({height:e,width:t}){d.horizontal.size.value!==t&&(d.horizontal.size.value=t,P()),d.vertical.size.value!==e&&(d.vertical.size.value=e,P())}function O(e,t){let n=d[t];if(e.isFirst===!0){if(n.thumbHidden.value===!0)return;g=n.position.value,c.value=!0}else if(c.value!==!0)return;e.isFinal===!0&&(c.value=!1);let r=Z[t],i=(n.size.value-u[t].value)/(u[t+`Inner`].value-n.thumbSize.value),a=e.distance[r.dist];F(g+(e.direction===r.dir?1:-1)*a*i,t)}function A(e,n){let r=d[n];if(r.thumbHidden.value!==!0){let i=n===`vertical`?t.verticalOffset[0]:t.horizontalOffset[0],a=e[Z[n].offset]-i,o=r.thumbStart.value-i;(a<o||a>o+r.thumbSize.value)&&F(q((a-r.thumbSize.value/2)/(u[n+`Inner`].value-r.thumbSize.value),0,1)*Math.max(0,r.size.value-u[n].value),n),r.ref.value!==null&&r.ref.value.dispatchEvent(new MouseEvent(e.type,e))}}function P(){a.value=!0,h!==null&&clearTimeout(h),h=setTimeout(()=>{h=null,a.value=!1},t.delay),t.onScroll!==void 0&&C()}function F(e,t){v.value[Z[t].scroll]=e}let I=null;function R(){I!==null&&clearTimeout(I),I=setTimeout(()=>{I=null,l.value=!0},f.$q.platform.is.ios?50:0)}function z(){I!==null&&(clearTimeout(I),I=null),l.value=!1}let B=null;n(()=>f.$q.lang.rtl,e=>{v.value!==null&&j(v.value,Math.abs(d.horizontal.position.value)*(e===!0?-1:1))}),ee(()=>{B={top:d.vertical.position.value,left:d.horizontal.position.value}}),e(()=>{if(B===null)return;let e=v.value;e!==null&&(j(e,B.left),k(e,B.top))}),_(C.cancel),Object.assign(f,{getScrollTarget:()=>v.value,getScroll:S,getScrollPosition:()=>({top:d.vertical.position.value,left:d.horizontal.position.value}),getScrollPercentage:()=>({top:d.vertical.percentage.value,left:d.horizontal.percentage.value}),setScrollPosition:w,setScrollPercentage(e,t,n){w(e,t*(d[e].size.value-u[e].value)*(e===`horizontal`&&f.$q.lang.rtl===!0?-1:1),n)}});let V={scroll:d,thumbVertDir:[[K,e=>{O(e,`vertical`)},void 0,{vertical:!0,...Q}]],thumbHorizDir:[[K,e=>{O(e,`horizontal`)},void 0,{horizontal:!0,...Q}]],onVerticalMousedown(e){A(e,`vertical`)},onHorizontalMousedown(e){A(e,`horizontal`)}};return()=>s(`div`,{class:y.value,onMouseenter:R,onMouseleave:z},[s(`div`,{ref:v,class:`q-scrollarea__container scroll relative-position fit hide-scrollbar`,tabindex:t.tabindex===void 0?void 0:t.tabindex},[s(`div`,{class:`q-scrollarea__content absolute`,style:b.value},M(r.default,[s(W,{debounce:0,onResize:D})])),s(G,{axis:`both`,onScroll:E})]),s(W,{debounce:0,onResize:T}),s(Y,{store:V,barStyle:t.barStyle,verticalBarStyle:t.verticalBarStyle,horizontalBarStyle:t.horizontalBarStyle})])}}),ie={class:`diff-viewer column full-height`},ae={class:`diff-header row items-center q-px-md q-py-sm no-wrap`},oe={class:`text-body1 text-weight-medium text-grey-3`},se={key:0,class:`text-caption text-grey-6 q-ml-md`,style:{"font-size":`11px`}},ce={class:`text-grey-7`},le={class:`text-green-4`},ue={key:1,class:`text-caption text-grey-5 q-ml-md ellipsis`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,"max-width":`400px`}},de={class:`row col no-wrap`,style:{"min-height":`0`}},fe={key:1,class:`text-caption text-grey-8 q-pa-sm`},pe=[`onClick`],me={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},he=[`onClick`],ge={class:`text-caption text-grey-3 ellipsis`,style:{"font-size":`11px`}},_e={class:`col column`,style:{"min-width":`0`,position:`relative`}},ve={key:0,class:`col column items-center justify-center`},ye={key:1,class:`col column items-center justify-center text-grey-8 text-caption`},be=H(C({__name:`DiffViewer`,props:{workspaceId:{}},emits:[`close`,`sendToChat`],setup(e,{emit:s}){let l=e,p=s,{t:ee}=y(),_=o([]),C=o(``),T=o(``),O=o(null),k=o(!1),A=o(!1),j=o(null),M=o(`side`),N=o(new Set),F=null,I=null,L=[];function R(e){let t=0;for(let n of e)n.isDir?t+=R(n.children):t++;return t}let H=x(()=>{let e=[];for(let t of _.value){let n=t.path.split(`/`),r=e;for(let e=0;e<n.length;e++){let i=n[e],a=e===n.length-1,o=n.slice(0,e+1).join(`/`),s=r.find(e=>e.name===i&&e.isDir===!a);s||(s={name:i,path:a?t.path:o,isDir:!a,status:a?t.status:void 0,children:[]},r.push(s)),r=s.children}}function t(e){e.sort((e,t)=>e.isDir===t.isDir?e.name.localeCompare(t.name):e.isDir?-1:1);for(let n of e)n.children.length>0&&t(n.children)}return t(e),e}),W=x(()=>{let e=[];function t(n,r){for(let i of n)i.isDir?(e.push({name:i.name,path:i.path,isDir:!0,depth:r,fileCount:R(i.children)}),N.value.has(i.path)||t(i.children,r+1)):e.push({name:i.name,path:i.path,isDir:!1,depth:r,status:i.status})}return t(H.value,0),e});function G(e){N.value.has(e)?N.value.delete(e):N.value.add(e)}async function K(){k.value=!0;try{let e=await fetch(`/api/workspaces/${l.workspaceId}/diff`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();_.value=t.files,C.value=t.sourceBranch??``,T.value=t.workingBranch??``}catch(e){console.error(`Failed to load diff files:`,e)}finally{k.value=!1}}async function q(e){if(j.value){A.value=!0;try{F||(self.MonacoEnvironment={getWorker(e,t){return t===`json`?new Worker(new URL(`/assets/json.worker-C9p7xCYk.js`,``+import.meta.url),{type:`module`}):t===`css`||t===`scss`||t===`less`?new Worker(new URL(`/assets/css.worker-D1piIYC4.js`,``+import.meta.url),{type:`module`}):t===`html`||t===`handlebars`||t===`razor`?new Worker(new URL(`/assets/html.worker-C4q4XMPn.js`,``+import.meta.url),{type:`module`}):t===`typescript`||t===`javascript`?new Worker(new URL(`/assets/ts.worker-Cj3zTgVE.js`,``+import.meta.url),{type:`module`}):new Worker(new URL(`/assets/editor.worker-CJ9iTmkr.js`,``+import.meta.url),{type:`module`})}},F=await z(()=>import(`./editor.main-BY_NEoTM.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),F.editor.defineTheme(`kobo-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"editor.background":`#1a1a2e`,"diffEditor.insertedTextBackground":`#22c55e20`,"diffEditor.removedTextBackground":`#ef444420`}}));let t=await fetch(`/api/workspaces/${l.workspaceId}/diff-file?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json(),r={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,sql:`sql`,py:`python`,rs:`rust`,go:`go`}[e.split(`.`).pop()??``]??`plaintext`;if(I){for(let e of L)e.dispose();L=[];let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}let i=F.editor.createModel(n.original??``,r),a=F.editor.createModel(n.modified??``,r);I=F.editor.createDiffEditor(j.value,{theme:`kobo-dark`,readOnly:!0,renderSideBySide:M.value===`side`,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineHeight:18}),I.setModel({original:i,modified:a}),Y()}catch(e){console.error(`Failed to load file diff:`,e)}finally{A.value=!1}}}let J=o(!1);function Y(){if(!I)return;for(let e of L)e.dispose();L=[];let e=I.getModifiedEditor(),t=I.getOriginalEditor();for(let n of[e,t]){let e=n.onDidChangeCursorSelection(()=>{let e=n.getSelection();J.value=!!(e&&!e.isEmpty())});L.push(e)}}function X(){if(!(!I||!O.value))for(let e of[I.getModifiedEditor(),I.getOriginalEditor()]){let t=e.getSelection();if(t&&!t.isEmpty()){let n=e.getModel();if(!n)continue;let r=n.getValueInRange(t),i=e===I.getModifiedEditor()?`modified`:`original`;p(`sendToChat`,`\`\`\`\n// ${O.value} (${i}) L${t.startLineNumber}-L${t.endLineNumber}\n${r}\n\`\`\``);return}}}n(O,e=>{e&&q(e)}),n(M,()=>{I&&I.updateOptions({renderSideBySide:M.value===`side`})});function Z(e){switch(e){case`added`:return`add_circle`;case`deleted`:return`remove_circle`;case`renamed`:return`drive_file_rename_outline`;default:return`edit`}}function Q(e){switch(e){case`added`:return`#4ade80`;case`deleted`:return`#f87171`;case`renamed`:return`#60a5fa`;default:return`#f59e0b`}}return i(K),a(()=>{for(let e of L)e.dispose();if(L=[],I){let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}}),(e,n)=>(t(),v(`div`,ie,[m(`div`,ae,[u(E,{name:`difference`,size:`18px`,color:`indigo-4`,class:`q-mr-xs`}),m(`span`,oe,w(e.$t(`diff.title`)),1),u(U,{label:`${_.value.length}`,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`]),C.value?(t(),v(`span`,se,[m(`span`,ce,w(C.value),1),u(E,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),m(`span`,le,w(T.value),1)])):b(``,!0),O.value?(t(),v(`span`,ue,w(O.value),1)):b(``,!0),u(te),u(ne,{modelValue:M.value,"onUpdate:modelValue":n[0]||=e=>M.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.side`),value:`side`},{label:e.$t(`diff.inline`),value:`inline`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),u(D,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,size:`sm`,onClick:n[1]||=e=>p(`close`)},{default:c(()=>[u(V,null,{default:c(()=>[g(w(e.$t(`tooltip.closeDiffViewer`)),1)]),_:1})]),_:1})]),u(P,{dark:``}),m(`div`,de,[u(re,{class:`diff-file-list q-pa-xs`,style:{width:`280px`,"min-width":`200px`,height:`100%`,"border-right":`1px solid #2a2a4a`}},{default:c(()=>[k.value?(t(),h(B,{key:0,size:`24px`,color:`grey-6`,class:`q-ma-md`})):_.value.length===0?(t(),v(`div`,fe,w(e.$t(`diff.noChanges`)),1)):(t(!0),v(f,{key:2},r(W.value,e=>(t(),v(f,{key:e.path},[e.isDir?(t(),v(`div`,{key:0,class:`diff-dir-item cursor-pointer`,style:S({paddingLeft:`${e.depth*12+4}px`}),onClick:t=>G(e.path)},[u(E,{name:N.value.has(e.path)?`chevron_right`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),u(E,{name:`folder`,size:`13px`,color:`amber-7`,class:`q-mx-xs`}),m(`span`,me,w(e.name),1),u(U,{label:e.fileCount,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])],12,pe)):(t(),v(`div`,{key:1,class:d([`diff-file-item cursor-pointer`,{"diff-file-item--active":O.value===e.path}]),style:S({paddingLeft:`${e.depth*12+20}px`}),onClick:t=>O.value=e.path},[u(E,{name:Z(e.status),size:`11px`,style:S({color:Q(e.status)}),class:`q-mr-xs`},null,8,[`name`,`style`]),m(`span`,ge,w(e.name),1)],14,he))],64))),128))]),_:1}),m(`div`,_e,[A.value?(t(),v(`div`,ve,[u(B,{size:`32px`,color:`indigo-4`})])):O.value?b(``,!0):(t(),v(`div`,ye,w(e.$t(`diff.selectFile`)),1)),m(`div`,{ref_key:`editorContainer`,ref:j,class:`col`,style:{"min-height":`0`}},null,512),J.value?(t(),h(D,{key:2,"no-caps":``,dense:``,size:`sm`,color:`primary`,icon:`chat`,label:e.$t(`diff.addToChat`),class:`send-to-chat-btn`,onClick:X},null,8,[`label`])):b(``,!0)])])]))}}),[[`__scopeId`,`data-v-4ed3860e`]]);export{be as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-CmYQZpFg.js","assets/index-5WBiUIJL.js","assets/vue-i18n-nv59vAyH.js","assets/scroll-CWjBCoBR.js","assets/settings-CuK-S6HH.js","assets/use-checkbox-DwkIkUAc.js","assets/private.use-form-1cZLVjGN.js","assets/i18n-DAQcMG9d.js","assets/index-eX_lKHSg.css","assets/editor.api-kStfTpOq.js","assets/editor-COGk2gAX.css","assets/monaco.contribution-C3hSsaL2.js","assets/editor-CS3NEPi9.css"])))=>i.map(i=>d[i]);
2
+ import{D as e,F as t,H as n,L as r,M as i,N as a,Q as o,S as s,U as c,W as l,_ as u,_t as d,a as f,b as p,d as m,f as h,g,j as ee,k as _,m as v,n as y,p as b,u as x,vt as S,y as C,yt as w}from"./vue-i18n-nv59vAyH.js";import{E as T,L as E,T as D,V as O,c as k,ct as A,s as j,z as M}from"./scroll-CWjBCoBR.js";import{a as N,i as P,o as F,r as I,s as L,t as R}from"./private.use-form-1cZLVjGN.js";import{S as z}from"./index-5WBiUIJL.js";import{t as B}from"./QSpinnerDots-FJCnAvfw.js";import{n as V,p as te,t as H}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{t as U}from"./QBadge-xNMZEqT-.js";import{r as W}from"./touch-Bojc73iM.js";import{n as G,t as K}from"./TouchPan-DuISf80E.js";import{t as q}from"./format-Ex4UmWdz.js";var J=A({name:`QBtnGroup`,props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){let n=x(()=>{let t=[`unelevated`,`outline`,`flat`,`rounded`,`square`,`push`,`stretch`,`glossy`].filter(t=>e[t]===!0).map(e=>`q-btn-group--${e}`).join(` `);return`q-btn-group row no-wrap${t.length===0?``:` `+t}`+(e.spread===!0?` q-btn-group--spread`:` inline`)});return()=>s(`div`,{class:n.value},O(t.default))}}),ne=A({name:`QBtnToggle`,props:{...I,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(e,{slots:t,emit:n}){let r=x(()=>e.options.find(t=>t.value===e.modelValue)!==void 0),i=R(x(()=>({type:`hidden`,name:e.name,value:e.modelValue}))),a=x(()=>T(e)),o=x(()=>({rounded:e.rounded,dense:e.dense,...a.value})),c=x(()=>e.options.map((t,n)=>{let{attrs:r,value:i,slot:a,...s}=t;return{slot:a,props:{key:n,"aria-pressed":i===e.modelValue?`true`:`false`,...r,...s,...o.value,disable:e.disable===!0||s.disable===!0,color:i===e.modelValue?u(s,`toggleColor`):u(s,`color`),textColor:i===e.modelValue?u(s,`toggleTextColor`):u(s,`textColor`),noCaps:u(s,`noCaps`)===!0,noWrap:u(s,`noWrap`)===!0,size:u(s,`size`),padding:u(s,`padding`),ripple:u(s,`ripple`),stack:u(s,`stack`)===!0,stretch:u(s,`stretch`)===!0,onClick(e){l(i,t,e)}}}}));function l(t,r,i){e.readonly!==!0&&(e.modelValue===t?e.clearable===!0&&(n(`update:modelValue`,null,null),n(`clear`)):n(`update:modelValue`,t,r),n(`click`,i))}function u(t,n){return t[n]===void 0?e[n]:t[n]}function d(){let n=c.value.map(e=>s(D,e.props,e.slot===void 0?void 0:t[e.slot]));return e.name!==void 0&&e.disable!==!0&&r.value===!0&&i(n,`push`),M(t.default,n)}return()=>s(J,{class:`q-btn-toggle`,...a.value,rounded:e.rounded,stretch:e.stretch,glossy:e.glossy,spread:e.spread},d)}}),Y=A({props:[`store`,`barStyle`,`verticalBarStyle`,`horizontalBarStyle`],setup(e){return()=>[s(`div`,{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onVerticalMousedown}),s(`div`,{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onHorizontalMousedown}),l(s(`div`,{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":`true`}),e.store.thumbVertDir),l(s(`div`,{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":`true`}),e.store.thumbHorizDir)]}}),X=[`vertical`,`horizontal`],Z={vertical:{offset:`offsetY`,scroll:`scrollTop`,dir:`down`,dist:`y`},horizontal:{offset:`offsetX`,scroll:`scrollLeft`,dir:`right`,dist:`x`}},Q={prevent:!0,mouse:!0,mouseAllDir:!0},$=e=>e>=250?50:Math.ceil(e/5),re=A({name:`QScrollArea`,props:{...F,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(t,{slots:r,emit:i}){let a=o(!1),c=o(!1),l=o(!1),u={vertical:o(0),horizontal:o(0)},d={vertical:{ref:o(null),position:o(0),size:o(0)},horizontal:{ref:o(null),position:o(0),size:o(0)}},{proxy:f}=p(),m=N(t,f.$q),h=null,g,v=o(null),y=x(()=>`q-scrollarea`+(m.value===!0?` q-scrollarea--dark`:``));Object.assign(u,{verticalInner:x(()=>u.vertical.value-t.verticalOffset[0]-t.verticalOffset[1]),horizontalInner:x(()=>u.horizontal.value-t.horizontalOffset[0]-t.horizontalOffset[1])}),d.vertical.percentage=x(()=>{let e=d.vertical.size.value-u.vertical.value;if(e<=0)return 0;let t=q(d.vertical.position.value/e,0,1);return Math.round(t*1e4)/1e4}),d.vertical.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.vertical.size.value<=u.vertical.value+1),d.vertical.thumbStart=x(()=>t.verticalOffset[0]+d.vertical.percentage.value*(u.verticalInner.value-d.vertical.thumbSize.value)),d.vertical.thumbSize=x(()=>Math.round(q(u.verticalInner.value*u.verticalInner.value/d.vertical.size.value,$(u.verticalInner.value),u.verticalInner.value))),d.vertical.style=x(()=>({...t.thumbStyle,...t.verticalThumbStyle,top:`${d.vertical.thumbStart.value}px`,height:`${d.vertical.thumbSize.value}px`,right:`${t.horizontalOffset[1]}px`})),d.vertical.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.vertical.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``)),d.horizontal.percentage=x(()=>{let e=d.horizontal.size.value-u.horizontal.value;if(e<=0)return 0;let t=q(Math.abs(d.horizontal.position.value)/e,0,1);return Math.round(t*1e4)/1e4}),d.horizontal.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.horizontal.size.value<=u.horizontal.value+1),d.horizontal.thumbStart=x(()=>t.horizontalOffset[0]+d.horizontal.percentage.value*(u.horizontalInner.value-d.horizontal.thumbSize.value)),d.horizontal.thumbSize=x(()=>Math.round(q(u.horizontalInner.value*u.horizontalInner.value/d.horizontal.size.value,$(u.horizontalInner.value),u.horizontalInner.value))),d.horizontal.style=x(()=>({...t.thumbStyle,...t.horizontalThumbStyle,[f.$q.lang.rtl===!0?`right`:`left`]:`${d.horizontal.thumbStart.value}px`,width:`${d.horizontal.thumbSize.value}px`,bottom:`${t.verticalOffset[1]}px`})),d.horizontal.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.horizontal.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``));let b=x(()=>d.vertical.thumbHidden.value===!0&&d.horizontal.thumbHidden.value===!0?t.contentStyle:t.contentActiveStyle);function S(){let e={};return X.forEach(t=>{let n=d[t];Object.assign(e,{[t+`Position`]:n.position.value,[t+`Percentage`]:n.percentage.value,[t+`Size`]:n.size.value,[t+`ContainerSize`]:u[t].value,[t+`ContainerInnerSize`]:u[t+`Inner`].value})}),e}let C=L(()=>{let e=S();e.ref=f,i(`scroll`,e)},0);function w(e,t,n){if(X.includes(e)===!1){console.error(`[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)`);return}(e===`vertical`?k:j)(v.value,t,n)}function T({height:e,width:t}){let n=!1;u.vertical.value!==e&&(u.vertical.value=e,n=!0),u.horizontal.value!==t&&(u.horizontal.value=t,n=!0),n===!0&&P()}function E({position:e}){let t=!1;d.vertical.position.value!==e.top&&(d.vertical.position.value=e.top,t=!0),d.horizontal.position.value!==e.left&&(d.horizontal.position.value=e.left,t=!0),t===!0&&P()}function D({height:e,width:t}){d.horizontal.size.value!==t&&(d.horizontal.size.value=t,P()),d.vertical.size.value!==e&&(d.vertical.size.value=e,P())}function O(e,t){let n=d[t];if(e.isFirst===!0){if(n.thumbHidden.value===!0)return;g=n.position.value,c.value=!0}else if(c.value!==!0)return;e.isFinal===!0&&(c.value=!1);let r=Z[t],i=(n.size.value-u[t].value)/(u[t+`Inner`].value-n.thumbSize.value),a=e.distance[r.dist];F(g+(e.direction===r.dir?1:-1)*a*i,t)}function A(e,n){let r=d[n];if(r.thumbHidden.value!==!0){let i=n===`vertical`?t.verticalOffset[0]:t.horizontalOffset[0],a=e[Z[n].offset]-i,o=r.thumbStart.value-i;(a<o||a>o+r.thumbSize.value)&&F(q((a-r.thumbSize.value/2)/(u[n+`Inner`].value-r.thumbSize.value),0,1)*Math.max(0,r.size.value-u[n].value),n),r.ref.value!==null&&r.ref.value.dispatchEvent(new MouseEvent(e.type,e))}}function P(){a.value=!0,h!==null&&clearTimeout(h),h=setTimeout(()=>{h=null,a.value=!1},t.delay),t.onScroll!==void 0&&C()}function F(e,t){v.value[Z[t].scroll]=e}let I=null;function R(){I!==null&&clearTimeout(I),I=setTimeout(()=>{I=null,l.value=!0},f.$q.platform.is.ios?50:0)}function z(){I!==null&&(clearTimeout(I),I=null),l.value=!1}let B=null;n(()=>f.$q.lang.rtl,e=>{v.value!==null&&j(v.value,Math.abs(d.horizontal.position.value)*(e===!0?-1:1))}),ee(()=>{B={top:d.vertical.position.value,left:d.horizontal.position.value}}),e(()=>{if(B===null)return;let e=v.value;e!==null&&(j(e,B.left),k(e,B.top))}),_(C.cancel),Object.assign(f,{getScrollTarget:()=>v.value,getScroll:S,getScrollPosition:()=>({top:d.vertical.position.value,left:d.horizontal.position.value}),getScrollPercentage:()=>({top:d.vertical.percentage.value,left:d.horizontal.percentage.value}),setScrollPosition:w,setScrollPercentage(e,t,n){w(e,t*(d[e].size.value-u[e].value)*(e===`horizontal`&&f.$q.lang.rtl===!0?-1:1),n)}});let V={scroll:d,thumbVertDir:[[K,e=>{O(e,`vertical`)},void 0,{vertical:!0,...Q}]],thumbHorizDir:[[K,e=>{O(e,`horizontal`)},void 0,{horizontal:!0,...Q}]],onVerticalMousedown(e){A(e,`vertical`)},onHorizontalMousedown(e){A(e,`horizontal`)}};return()=>s(`div`,{class:y.value,onMouseenter:R,onMouseleave:z},[s(`div`,{ref:v,class:`q-scrollarea__container scroll relative-position fit hide-scrollbar`,tabindex:t.tabindex===void 0?void 0:t.tabindex},[s(`div`,{class:`q-scrollarea__content absolute`,style:b.value},M(r.default,[s(W,{debounce:0,onResize:D})])),s(G,{axis:`both`,onScroll:E})]),s(W,{debounce:0,onResize:T}),s(Y,{store:V,barStyle:t.barStyle,verticalBarStyle:t.verticalBarStyle,horizontalBarStyle:t.horizontalBarStyle})])}}),ie={class:`diff-viewer column full-height`},ae={class:`diff-header row items-center q-px-md q-py-sm no-wrap`},oe={class:`text-body1 text-weight-medium text-grey-3`},se={key:0,class:`text-caption text-grey-6 q-ml-md`,style:{"font-size":`11px`}},ce={class:`text-grey-7`},le={class:`text-green-4`},ue={key:1,class:`text-caption text-grey-5 q-ml-md ellipsis`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,"max-width":`400px`}},de={class:`row col no-wrap`,style:{"min-height":`0`}},fe={key:1,class:`text-caption text-grey-8 q-pa-sm`},pe=[`onClick`],me={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},he=[`onClick`],ge={class:`text-caption text-grey-3 ellipsis`,style:{"font-size":`11px`}},_e={class:`col column`,style:{"min-width":`0`,position:`relative`}},ve={key:0,class:`col column items-center justify-center`},ye={key:1,class:`col column items-center justify-center text-grey-8 text-caption`},be=H(C({__name:`DiffViewer`,props:{workspaceId:{}},emits:[`close`,`sendToChat`],setup(e,{emit:s}){let l=e,p=s,{t:ee}=y(),_=o([]),C=o(``),T=o(``),O=o(null),k=o(!1),A=o(!1),j=o(null),M=o(`side`),N=o(new Set),F=null,I=null,L=[];function R(e){let t=0;for(let n of e)n.isDir?t+=R(n.children):t++;return t}let H=x(()=>{let e=[];for(let t of _.value){let n=t.path.split(`/`),r=e;for(let e=0;e<n.length;e++){let i=n[e],a=e===n.length-1,o=n.slice(0,e+1).join(`/`),s=r.find(e=>e.name===i&&e.isDir===!a);s||(s={name:i,path:a?t.path:o,isDir:!a,status:a?t.status:void 0,children:[]},r.push(s)),r=s.children}}function t(e){e.sort((e,t)=>e.isDir===t.isDir?e.name.localeCompare(t.name):e.isDir?-1:1);for(let n of e)n.children.length>0&&t(n.children)}return t(e),e}),W=x(()=>{let e=[];function t(n,r){for(let i of n)i.isDir?(e.push({name:i.name,path:i.path,isDir:!0,depth:r,fileCount:R(i.children)}),N.value.has(i.path)||t(i.children,r+1)):e.push({name:i.name,path:i.path,isDir:!1,depth:r,status:i.status})}return t(H.value,0),e});function G(e){N.value.has(e)?N.value.delete(e):N.value.add(e)}async function K(){k.value=!0;try{let e=await fetch(`/api/workspaces/${l.workspaceId}/diff`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();_.value=t.files,C.value=t.sourceBranch??``,T.value=t.workingBranch??``}catch(e){console.error(`Failed to load diff files:`,e)}finally{k.value=!1}}async function q(e){if(j.value){A.value=!0;try{F||(self.MonacoEnvironment={getWorker(e,t){return t===`json`?new Worker(new URL(`/assets/json.worker-C9p7xCYk.js`,``+import.meta.url),{type:`module`}):t===`css`||t===`scss`||t===`less`?new Worker(new URL(`/assets/css.worker-D1piIYC4.js`,``+import.meta.url),{type:`module`}):t===`html`||t===`handlebars`||t===`razor`?new Worker(new URL(`/assets/html.worker-C4q4XMPn.js`,``+import.meta.url),{type:`module`}):t===`typescript`||t===`javascript`?new Worker(new URL(`/assets/ts.worker-Cj3zTgVE.js`,``+import.meta.url),{type:`module`}):new Worker(new URL(`/assets/editor.worker-CJ9iTmkr.js`,``+import.meta.url),{type:`module`})}},F=await z(()=>import(`./editor.main-CmYQZpFg.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),F.editor.defineTheme(`kobo-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"editor.background":`#1a1a2e`,"diffEditor.insertedTextBackground":`#22c55e20`,"diffEditor.removedTextBackground":`#ef444420`}}));let t=await fetch(`/api/workspaces/${l.workspaceId}/diff-file?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json(),r={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,sql:`sql`,py:`python`,rs:`rust`,go:`go`}[e.split(`.`).pop()??``]??`plaintext`;if(I){for(let e of L)e.dispose();L=[];let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}let i=F.editor.createModel(n.original??``,r),a=F.editor.createModel(n.modified??``,r);I=F.editor.createDiffEditor(j.value,{theme:`kobo-dark`,readOnly:!0,renderSideBySide:M.value===`side`,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineHeight:18}),I.setModel({original:i,modified:a}),Y()}catch(e){console.error(`Failed to load file diff:`,e)}finally{A.value=!1}}}let J=o(!1);function Y(){if(!I)return;for(let e of L)e.dispose();L=[];let e=I.getModifiedEditor(),t=I.getOriginalEditor();for(let n of[e,t]){let e=n.onDidChangeCursorSelection(()=>{let e=n.getSelection();J.value=!!(e&&!e.isEmpty())});L.push(e)}}function X(){if(!(!I||!O.value))for(let e of[I.getModifiedEditor(),I.getOriginalEditor()]){let t=e.getSelection();if(t&&!t.isEmpty()){let n=e.getModel();if(!n)continue;let r=n.getValueInRange(t),i=e===I.getModifiedEditor()?`modified`:`original`;p(`sendToChat`,`\`\`\`\n// ${O.value} (${i}) L${t.startLineNumber}-L${t.endLineNumber}\n${r}\n\`\`\``);return}}}n(O,e=>{e&&q(e)}),n(M,()=>{I&&I.updateOptions({renderSideBySide:M.value===`side`})});function Z(e){switch(e){case`added`:return`add_circle`;case`deleted`:return`remove_circle`;case`renamed`:return`drive_file_rename_outline`;default:return`edit`}}function Q(e){switch(e){case`added`:return`#4ade80`;case`deleted`:return`#f87171`;case`renamed`:return`#60a5fa`;default:return`#f59e0b`}}return i(K),a(()=>{for(let e of L)e.dispose();if(L=[],I){let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}}),(e,n)=>(t(),v(`div`,ie,[m(`div`,ae,[u(E,{name:`difference`,size:`18px`,color:`indigo-4`,class:`q-mr-xs`}),m(`span`,oe,w(e.$t(`diff.title`)),1),u(U,{label:`${_.value.length}`,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`]),C.value?(t(),v(`span`,se,[m(`span`,ce,w(C.value),1),u(E,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),m(`span`,le,w(T.value),1)])):b(``,!0),O.value?(t(),v(`span`,ue,w(O.value),1)):b(``,!0),u(te),u(ne,{modelValue:M.value,"onUpdate:modelValue":n[0]||=e=>M.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.side`),value:`side`},{label:e.$t(`diff.inline`),value:`inline`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),u(D,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,size:`sm`,onClick:n[1]||=e=>p(`close`)},{default:c(()=>[u(V,null,{default:c(()=>[g(w(e.$t(`tooltip.closeDiffViewer`)),1)]),_:1})]),_:1})]),u(P,{dark:``}),m(`div`,de,[u(re,{class:`diff-file-list q-pa-xs`,style:{width:`280px`,"min-width":`200px`,height:`100%`,"border-right":`1px solid #2a2a4a`}},{default:c(()=>[k.value?(t(),h(B,{key:0,size:`24px`,color:`grey-6`,class:`q-ma-md`})):_.value.length===0?(t(),v(`div`,fe,w(e.$t(`diff.noChanges`)),1)):(t(!0),v(f,{key:2},r(W.value,e=>(t(),v(f,{key:e.path},[e.isDir?(t(),v(`div`,{key:0,class:`diff-dir-item cursor-pointer`,style:S({paddingLeft:`${e.depth*12+4}px`}),onClick:t=>G(e.path)},[u(E,{name:N.value.has(e.path)?`chevron_right`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),u(E,{name:`folder`,size:`13px`,color:`amber-7`,class:`q-mx-xs`}),m(`span`,me,w(e.name),1),u(U,{label:e.fileCount,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])],12,pe)):(t(),v(`div`,{key:1,class:d([`diff-file-item cursor-pointer`,{"diff-file-item--active":O.value===e.path}]),style:S({paddingLeft:`${e.depth*12+20}px`}),onClick:t=>O.value=e.path},[u(E,{name:Z(e.status),size:`11px`,style:S({color:Q(e.status)}),class:`q-mr-xs`},null,8,[`name`,`style`]),m(`span`,ge,w(e.name),1)],14,he))],64))),128))]),_:1}),m(`div`,_e,[A.value?(t(),v(`div`,ve,[u(B,{size:`32px`,color:`indigo-4`})])):O.value?b(``,!0):(t(),v(`div`,ye,w(e.$t(`diff.selectFile`)),1)),m(`div`,{ref_key:`editorContainer`,ref:j,class:`col`,style:{"min-height":`0`}},null,512),J.value?(t(),h(D,{key:2,"no-caps":``,dense:``,size:`sm`,color:`primary`,icon:`chat`,label:e.$t(`diff.addToChat`),class:`send-to-chat-btn`,onClick:X},null,8,[`label`])):b(``,!0)])])]))}}),[[`__scopeId`,`data-v-4ed3860e`]]);export{be as default};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DiffViewer-eROI3K7I.js","assets/index-DSx45TKH.js","assets/vue-i18n-nv59vAyH.js","assets/scroll-CWjBCoBR.js","assets/settings-CuK-S6HH.js","assets/use-checkbox-DwkIkUAc.js","assets/private.use-form-1cZLVjGN.js","assets/i18n-DAQcMG9d.js","assets/index-eX_lKHSg.css","assets/_plugin-vue_export-helper-fkfRoKj2.js","assets/QBadge-xNMZEqT-.js","assets/touch-Bojc73iM.js","assets/TouchPan-DuISf80E.js","assets/QSpinnerDots-FJCnAvfw.js","assets/format-Ex4UmWdz.js","assets/DiffViewer-DiHFLSk4.css"])))=>i.map(i=>d[i]);
2
- import{E as e,F as t,H as n,I as r,L as i,M as a,N as o,Q as s,R as c,S as l,U as u,W as d,Z as f,_ as p,_t as m,a as h,b as g,d as _,f as v,g as y,k as b,m as x,n as S,p as C,rt as w,u as T,v as E,vt as D,w as O,y as k,yt as A}from"./vue-i18n-nv59vAyH.js";import{L as j,M,P as N,R as ee,S as P,T as F,U as te,V as ne,W as I,b as re,bt as L,ct as R,pt as ie,r as ae,v as oe,vt as se,y as ce,yt as le,z as ue}from"./scroll-CWjBCoBR.js";import{a as de,i as fe,o as pe}from"./private.use-form-1cZLVjGN.js";import{t as me}from"./settings-CuK-S6HH.js";import{A as he,C as ge,D as _e,E as ve,F as ye,N as be,O as xe,P as Se,S as Ce,b as we,f as Te,h as Ee,m as De,n as Oe,p as ke,r as Ae,w as je,x as Me}from"./index-DSx45TKH.js";import{n as z,p as Ne,t as Pe}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{n as Fe,t as Ie}from"./marked.esm-CtWESN18.js";import{t as Le}from"./QBadge-xNMZEqT-.js";import{r as Re}from"./touch-Bojc73iM.js";import{n as ze,t as Be}from"./TouchPan-DuISf80E.js";import{t as Ve}from"./format-Ex4UmWdz.js";import{a as He,i as Ue,n as We,r as Ge,t as Ke}from"./QList-lLY9TMz0.js";import{a as qe,i as B,n as Je,r as Ye,t as Xe}from"./QMenu-IaCFq9U1.js";import{r as Ze,t as Qe}from"./formatters-B5Igo0Lf.js";import{t as $e}from"./ClosePopup-jSuaV6dg.js";var et=150,tt=R({name:`QDrawer`,inheritAttrs:!1,props:{...re,...pe,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...ce,`onLayout`,`miniState`],setup(t,{slots:r,emit:i,attrs:o}){let c=g(),{proxy:{$q:u}}=c,f=de(t,u),{preventBodyScroll:p}=we(),{registerTimeout:m,removeTimeout:h}=P(),_=O(Se,be);if(_===be)return console.error(`QDrawer needs to be child of QLayout`),be;let v,y=null,x,S=s(t.behavior===`mobile`||t.behavior!==`desktop`&&_.totalWidth.value<=t.breakpoint),C=T(()=>t.mini===!0&&S.value!==!0),w=T(()=>C.value===!0?t.miniWidth:t.width),E=s(t.showIfAbove===!0&&S.value===!1?!0:t.modelValue===!0),D=T(()=>t.persistent!==!0&&(S.value===!0||fe.value===!0));function k(e,t){if(N(),e!==!1&&_.animate(),Oe(0),S.value===!0){let e=_.instances[se.value];e?.belowBreakpoint===!0&&e.hide(!1),ke(1),_.isContainer.value!==!0&&p(!0)}else ke(0),e!==!1&&Ae(!1);m(()=>{e!==!1&&Ae(!0),t!==!0&&i(`show`,e)},et)}function A(e,t){F(),e!==!1&&_.animate(),ke(0),Oe(re.value*w.value),Pe(),t===!0?h():m(()=>{i(`hide`,e)},et)}let{show:j,hide:M}=oe({showing:E,hideOnRouteChange:D,handleShow:k,handleHide:A}),{addToHistory:N,removeFromHistory:F}=Me(E,M,D),te={belowBreakpoint:S,hide:M},I=T(()=>t.side===`right`),re=T(()=>(u.lang.rtl===!0?-1:1)*(I.value===!0?1:-1)),L=s(0),R=s(!1),ie=s(!1),ae=s(w.value*re.value),se=T(()=>I.value===!0?`left`:`right`),ce=T(()=>E.value===!0&&S.value===!1&&t.overlay===!1?t.miniToOverlay===!0?t.miniWidth:w.value:0),le=T(()=>t.overlay===!0||t.miniToOverlay===!0||_.view.value.indexOf(I.value?`R`:`L`)!==-1||u.platform.is.ios===!0&&_.isContainer.value===!0),ue=T(()=>t.overlay===!1&&E.value===!0&&S.value===!1),fe=T(()=>t.overlay===!0&&E.value===!0&&S.value===!1),pe=T(()=>`fullscreen q-drawer__backdrop`+(E.value===!1&&R.value===!1?` hidden`:``)),me=T(()=>({backgroundColor:`rgba(0,0,0,${L.value*.4})`})),he=T(()=>I.value===!0?_.rows.value.top[2]===`r`:_.rows.value.top[0]===`l`),ge=T(()=>I.value===!0?_.rows.value.bottom[2]===`r`:_.rows.value.bottom[0]===`l`),_e=T(()=>{let e={};return _.header.space===!0&&he.value===!1&&(le.value===!0?e.top=`${_.header.offset}px`:_.header.space===!0&&(e.top=`${_.header.size}px`)),_.footer.space===!0&&ge.value===!1&&(le.value===!0?e.bottom=`${_.footer.offset}px`:_.footer.space===!0&&(e.bottom=`${_.footer.size}px`)),e}),ve=T(()=>{let e={width:`${w.value}px`,transform:`translateX(${ae.value}px)`};return S.value===!0?e:Object.assign(e,_e.value)}),ye=T(()=>`q-drawer__content fit `+(_.isContainer.value===!0?`overflow-auto`:`scroll`)),xe=T(()=>`q-drawer q-drawer--${t.side}`+(ie.value===!0?` q-drawer--mini-animate`:``)+(t.bordered===!0?` q-drawer--bordered`:``)+(f.value===!0?` q-drawer--dark q-dark`:``)+(R.value===!0?` no-transition`:E.value===!0?``:` q-layout--prevent-focus`)+(S.value===!0?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${C.value===!0?`mini`:`standard`}`+(le.value===!0||ue.value!==!0?` fixed`:``)+(t.overlay===!0||t.miniToOverlay===!0?` q-drawer--on-top`:``)+(he.value===!0?` q-drawer--top-padding`:``))),Ce=T(()=>[[Be,z,void 0,{[u.lang.rtl===!0?t.side:se.value]:!0,mouse:!0}]]),Te=T(()=>[[Be,Ne,void 0,{[u.lang.rtl===!0?se.value:t.side]:!0,mouse:!0}]]),Ee=T(()=>[[Be,Ne,void 0,{[u.lang.rtl===!0?se.value:t.side]:!0,mouse:!0,mouseAllDir:!0}]]);function De(){Ie(S,t.behavior===`mobile`||t.behavior!==`desktop`&&_.totalWidth.value<=t.breakpoint)}n(S,e=>{e===!0?(v=E.value,E.value===!0&&M(!1)):t.overlay===!1&&t.behavior!==`mobile`&&v!==!1&&(E.value===!0?(Oe(0),ke(0),Pe()):j(!1))}),n(()=>t.side,(e,t)=>{_.instances[t]===te&&(_.instances[t]=void 0,_[t].space=!1,_[t].offset=0),_.instances[e]=te,_[e].size=w.value,_[e].space=ue.value,_[e].offset=ce.value}),n(_.totalWidth,()=>{(_.isContainer.value===!0||document.qScrollPrevented!==!0)&&De()}),n(()=>t.behavior+t.breakpoint,De),n(_.isContainer,e=>{E.value===!0&&p(e!==!0),e===!0&&De()}),n(_.scrollbarWidth,()=>{Oe(E.value===!0?0:void 0)}),n(ce,e=>{Fe(`offset`,e)}),n(ue,e=>{i(`onLayout`,e),Fe(`space`,e)}),n(I,()=>{Oe()}),n(w,e=>{Oe(),Le(t.miniToOverlay,e)}),n(()=>t.miniToOverlay,e=>{Le(e,w.value)}),n(()=>u.lang.rtl,()=>{Oe()}),n(()=>t.mini,()=>{t.noMiniAnimation||t.modelValue===!0&&(je(),_.animate())}),n(C,e=>{i(`miniState`,e)});function Oe(t){t===void 0?e(()=>{t=E.value===!0?0:w.value,Oe(re.value*t)}):(_.isContainer.value===!0&&I.value===!0&&(S.value===!0||Math.abs(t)===w.value)&&(t+=re.value*_.scrollbarWidth.value),ae.value=t)}function ke(e){L.value=e}function Ae(e){let t=e===!0?`remove`:_.isContainer.value===!0?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function je(){y!==null&&clearTimeout(y),c.proxy&&c.proxy.$el&&c.proxy.$el.classList.add(`q-drawer--mini-animate`),ie.value=!0,y=setTimeout(()=>{y=null,ie.value=!1,c?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function z(e){if(E.value!==!1)return;let t=w.value,n=Ve(e.distance.x,0,t);if(e.isFinal===!0){n>=Math.min(75,t)?j():(_.animate(),ke(0),Oe(re.value*t)),R.value=!1;return}Oe((u.lang.rtl===!0?I.value!==!0:I.value)?Math.max(t-n,0):Math.min(0,n-t)),ke(Ve(n/t,0,1)),e.isFirst===!0&&(R.value=!0)}function Ne(e){if(E.value!==!0)return;let n=w.value,r=e.direction===t.side,i=(u.lang.rtl===!0?r!==!0:r)?Ve(e.distance.x,0,n):0;if(e.isFinal===!0){Math.abs(i)<Math.min(75,n)?(_.animate(),ke(1),Oe(0)):M(),R.value=!1;return}Oe(re.value*i),ke(Ve(1-i/n,0,1)),e.isFirst===!0&&(R.value=!0)}function Pe(){p(!1),Ae(!0)}function Fe(e,n){_.update(t.side,e,n)}function Ie(e,t){e.value!==t&&(e.value=t)}function Le(e,n){Fe(`size`,e===!0?t.miniWidth:n)}return _.instances[t.side]=te,Le(t.miniToOverlay,w.value),Fe(`space`,ue.value),Fe(`offset`,ce.value),t.showIfAbove===!0&&t.modelValue!==!0&&E.value===!0&&t[`onUpdate:modelValue`]!==void 0&&i(`update:modelValue`,!0),a(()=>{i(`onLayout`,ue.value),i(`miniState`,C.value),v=t.showIfAbove===!0;let r=()=>{(E.value===!0?k:A)(!1,!0)};if(_.totalWidth.value!==0){e(r);return}x=n(_.totalWidth,()=>{x(),x=void 0,E.value===!1&&t.showIfAbove===!0&&S.value===!1?j(!1):r()})}),b(()=>{x?.(),y!==null&&(clearTimeout(y),y=null),E.value===!0&&Pe(),_.instances[t.side]===te&&(_.instances[t.side]=void 0,Fe(`size`,0),Fe(`offset`,0),Fe(`space`,!1))}),()=>{let e=[];S.value===!0&&(t.noSwipeOpen===!1&&e.push(d(l(`div`,{key:`open`,class:`q-drawer__opener fixed-${t.side}`,"aria-hidden":`true`}),Ce.value)),e.push(ee(`div`,{ref:`backdrop`,class:pe.value,style:me.value,"aria-hidden":`true`,onClick:M},void 0,`backdrop`,t.noSwipeBackdrop!==!0&&E.value===!0,()=>Ee.value)));let n=C.value===!0&&r.mini!==void 0,i=[l(`div`,{...o,key:String(n),class:[ye.value,o.class]},n===!0?r.mini():ne(r.default))];return t.elevated===!0&&E.value===!0&&i.push(l(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),e.push(ee(`aside`,{ref:`content`,class:xe.value,style:ve.value},i,`contentclose`,t.noSwipeClose!==!0&&S.value===!0,()=>Te.value)),l(`div`,{class:`q-drawer-container`},e)}}}),nt=R({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=g(),i=O(Se,be);if(i===be)return console.error(`QPageContainer needs to be child of QLayout`),be;r(ye,!0);let a=T(()=>{let e={};return i.header.space===!0&&(e.paddingTop=`${i.header.size}px`),i.right.space===!0&&(e[`padding${n.lang.rtl===!0?`Left`:`Right`}`]=`${i.right.size}px`),i.footer.space===!0&&(e.paddingBottom=`${i.footer.size}px`),i.left.space===!0&&(e[`padding${n.lang.rtl===!0?`Right`:`Left`}`]=`${i.left.size}px`),e});return()=>l(`div`,{class:`q-page-container`,style:a.value},ne(t.default))}}),rt=R({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:t,emit:i}){let{proxy:{$q:a}}=g(),c=s(null),u=s(a.screen.height),d=s(e.container===!0?0:a.screen.width),p=s({position:0,direction:`down`,inflectionPoint:0}),m=s(0),h=s(ie.value===!0?0:ae()),_=T(()=>`q-layout q-layout--`+(e.container===!0?`containerized`:`standard`)),v=T(()=>e.container===!1?{minHeight:a.screen.height+`px`}:null),y=T(()=>h.value===0?null:{[a.lang.rtl===!0?`left`:`right`]:`${h.value}px`}),b=T(()=>h.value===0?null:{[a.lang.rtl===!0?`right`:`left`]:0,[a.lang.rtl===!0?`left`:`right`]:`-${h.value}px`,width:`calc(100% + ${h.value}px)`});function x(t){if(e.container===!0||document.qScrollPrevented!==!0){let n={position:t.position.top,direction:t.direction,directionChanged:t.directionChanged,inflectionPoint:t.inflectionPoint.top,delta:t.delta.top};p.value=n,e.onScroll!==void 0&&i(`scroll`,n)}}function S(t){let{height:n,width:r}=t,a=!1;u.value!==n&&(a=!0,u.value=n,e.onScrollHeight!==void 0&&i(`scrollHeight`,n),w()),d.value!==r&&(a=!0,d.value=r),a===!0&&e.onResize!==void 0&&i(`resize`,t)}function C({height:e}){m.value!==e&&(m.value=e,w())}function w(){if(e.container===!0){let e=u.value>m.value?ae():0;h.value!==e&&(h.value=e)}}let E=null,D={instances:{},view:T(()=>e.view),isContainer:T(()=>e.container),rootRef:c,height:u,containerHeight:m,scrollbarWidth:h,totalWidth:T(()=>d.value+h.value),rows:T(()=>{let t=e.view.toLowerCase().split(` `);return{top:t[0].split(``),middle:t[1].split(``),bottom:t[2].split(``)}}),header:f({size:0,offset:0,space:!1}),right:f({size:300,offset:0,space:!1}),footer:f({size:0,offset:0,space:!1}),left:f({size:300,offset:0,space:!1}),scroll:p,animate(){E===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(E),E=setTimeout(()=>{E=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){D[e][t]=n}};if(r(Se,D),ae()>0){let t=null,r=document.body;function i(){t=null,r.classList.remove(`hide-scrollbar`)}function s(){if(t===null){if(r.scrollHeight>a.screen.height)return;r.classList.add(`hide-scrollbar`)}else clearTimeout(t);t=setTimeout(i,300)}function c(e){t!==null&&e===`remove`&&(clearTimeout(t),i()),window[`${e}EventListener`](`resize`,s)}n(()=>e.container===!0?`remove`:`add`,c),e.container!==!0&&c(`add`),o(()=>{c(`remove`)})}return()=>{let n=ue(t.default,[l(ze,{onScroll:x}),l(Re,{onResize:S})]),r=l(`div`,{class:_.value,style:v.value,ref:e.container===!0?void 0:c,tabindex:-1},n);return e.container===!0?l(`div`,{class:`q-layout-container overflow-hidden`,ref:c},[l(Re,{onResize:C}),l(`div`,{class:`absolute-full`,style:y.value},[l(`div`,{class:`scroll`,style:b.value},[r])])]):r}}}),it={class:`acceptance-panel q-pa-md`},at={class:`row items-center q-mb-sm`},ot={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},st={key:0,class:`criterion-add-row row items-center q-mb-xs`},ct={key:1,class:`acceptance-list`},lt=[`onDblclick`],ut={key:2,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},dt=Pe(k({__name:`AcceptancePanel`,props:{tasks:{}},setup(n){let{t:r}=S(),a=xe(),o=ve();function c(){let e=a.selectedWorkspaceId;e&&Ze(e,o,a)}let l=s(!1),d=s(``),f=s(null),g=s(``),b=s({});function T(e,t){if(t){let n=t.$el??t;b.value[e]=n}else delete b.value[e]}function E(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function O(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}async function k(e){let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);a.selectedWorkspaceId&&a.fetchWorkspaceDetails(a.selectedWorkspaceId)}catch(e){console.error(`Failed to update task:`,e)}}function M(){l.value=!0,d.value=``}async function N(){let e=d.value.trim(),t=a.selectedWorkspace?.id;if(!(!e||!t))try{await a.createTask(t,e,!0),d.value=``,l.value=!1}catch{}}function ee(){d.value=``,l.value=!1}function P(t){f.value=t.id,g.value=t.title,e(()=>{let e=b.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function te(e){if(f.value!==e.id)return;let t=g.value.trim(),n=e.id;if(f.value=null,!t||t===e.title)return;let r=a.selectedWorkspace?.id;if(r)try{await a.updateTaskTitle(r,n,t)}catch{}}function ne(){f.value=null,g.value=``}async function I(e){let t=a.selectedWorkspace?.id;if(t)try{await a.deleteTask(t,e.id)}catch{}}return(e,r)=>(t(),x(`div`,it,[_(`div`,at,[_(`div`,ot,A(e.$t(`acceptance.title`)),1),p(Ne),w(a).selectedWorkspace?(t(),v(F,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:c},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):C(``,!0),w(a).selectedWorkspace?(t(),v(F,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:M},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1})):C(``,!0)]),l.value?(t(),x(`div`,st,[p(Ae,{modelValue:d.value,"onUpdate:modelValue":r[0]||=e=>d.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`acceptance.newCriterion`),class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[le(L(N,[`prevent`]),[`enter`]),le(L(ee,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):C(``,!0),n.tasks.length>0?(t(),x(`div`,ct,[(t(!0),x(h,null,i(n.tasks,n=>(t(),x(`div`,{key:n.id,class:`acceptance-item row items-center q-mb-xxs`},[p(j,{name:E(n.status),size:`16px`,style:D({color:O(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>k(n)},null,8,[`name`,`style`,`onClick`]),f.value===n.id?(t(),v(Ae,{key:0,ref_for:!0,ref:e=>T(n.id,e),modelValue:g.value,"onUpdate:modelValue":r[1]||=e=>g.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[le(L(e=>te(n),[`prevent`]),[`enter`]),le(L(ne,[`prevent`]),[`esc`])],onBlur:e=>te(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),x(h,{key:1},[_(`span`,{class:m([`col acceptance-title text-caption`,{"text-strike":n.status===`done`}]),style:D({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>P(n)},A(n.title),47,lt),p(F,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`criterion-delete-btn`,onClick:e=>I(n)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):l.value?C(``,!0):(t(),x(`div`,ut,A(e.$t(`acceptance.empty`)),1))]))}}),[[`__scopeId`,`data-v-63b144ad`]]),ft={class:`agent-todos-panel q-pa-md`},pt={class:`row items-center q-mb-sm`},mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ht={key:0,class:`todos-list`},gt={key:1,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},_t=Pe(k({__name:`AgentTodosPanel`,setup(e){let{t:n}=S(),r=xe();function a(e){switch(e){case`completed`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function o(e){switch(e){case`completed`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,n)=>(t(),x(`div`,ft,[_(`div`,pt,[_(`div`,mt,A(e.$t(`agentTodos.title`)),1)]),w(r).currentAgentTodos.length>0?(t(),x(`div`,ht,[(t(!0),x(h,null,i(w(r).currentAgentTodos,(e,n)=>(t(),x(`div`,{key:n,class:`todo-item row items-start q-py-xxs`},[p(j,{name:a(e.status),size:`14px`,style:D({color:o(e.status)}),class:`q-mr-xs q-mt-xxs`},null,8,[`name`,`style`]),_(`span`,{class:m([`col todo-title text-caption`,{"text-strike":e.status===`completed`}]),style:D({color:e.status===`completed`?`#4ade80`:`#ccc`})},A(e.content),7)]))),128))])):(t(),x(`div`,gt,A(e.$t(`agentTodos.empty`)),1))]))}}),[[`__scopeId`,`data-v-4eddf754`]]),vt={class:`log-text rounded-borders q-pa-md`},yt=Pe(k({__name:`DevServerLogDialog`,props:{modelValue:{type:Boolean},workspaceId:{}},emits:[`update:modelValue`],setup(r){let i=r,a=he(),c=s(``),l=s(!1),d=s(null),f=null;async function m(){if(i.workspaceId){l.value=!0;try{c.value=await a.fetchLogs(i.workspaceId),await e(),h()}finally{l.value=!1}}}function h(){d.value&&(d.value.scrollTop=d.value.scrollHeight)}function g(){b(),f=setInterval(()=>{m()},5e3)}function b(){f&&=(clearInterval(f),null)}return n(()=>i.modelValue,e=>{e?(m(),g()):b()}),o(()=>{b()}),(e,n)=>(t(),v(Ee,{"model-value":r.modelValue,"onUpdate:modelValue":n[1]||=t=>e.$emit(`update:modelValue`,t)},{default:u(()=>[p(De,{class:`text-grey-3`,style:{"min-width":`700px`,"max-width":`900px`,"max-height":`80vh`,background:`#1e1e3a`}},{default:u(()=>[p(ke,{class:`row items-center`},{default:u(()=>[n[2]||=_(`div`,{class:`text-h6`},`Logs Dev Server`,-1),p(Ne),p(F,{flat:``,round:``,dense:``,icon:`refresh`,color:`grey-5`,onClick:m,loading:l.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.refreshLogs`)),1)]),_:1})]),_:1},8,[`loading`]),p(F,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,onClick:n[0]||=t=>e.$emit(`update:modelValue`,!1)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.closeDialog`)),1)]),_:1})]),_:1})]),_:1}),p(fe,{dark:``}),p(ke,{class:`log-content`,ref_key:`logContainer`,ref:d},{default:u(()=>[_(`pre`,vt,A(c.value||`No logs available`),1)]),_:1},512)]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-9e03d2b2`]]),bt={class:`dd-panel q-px-md q-py-sm`},xt={class:`text-caption text-uppercase text-weight-bold text-grey-5 q-mb-xs`},St={key:0,class:`text-caption text-grey-8`},Ct={key:1,class:`text-caption text-grey-8`},wt={class:`row items-center q-mb-xs`},Tt={key:0,class:`text-caption q-mb-xs`},Et=[`href`],Dt={key:1,class:`text-caption text-grey-7`,style:{"font-size":`10px`}},Ot={key:2,class:`text-caption text-red-5`},kt=Pe(k({__name:`DevServerPanel`,props:{workspace:{}},setup(e){let r=e,{t:i}=S(),l=he(),d=me(),f=s(!1),m=s(!1),g=s(!1),b=null,w=T(()=>r.workspace?.id??``),E=T(()=>r.workspace?!!d.getProjectByPath(r.workspace.projectPath)?.devServer?.startCommand:!1),D=T(()=>w.value?l.getStatus(w.value):null),O=T(()=>{switch(D.value?.status){case`running`:return`green-9`;case`starting`:case`stopping`:return`orange-9`;case`error`:return`red-9`;default:return`grey-8`}}),k=T(()=>{switch(D.value?.status){case`running`:return i(`devServer.running`);case`starting`:return i(`devServer.starting`);case`stopping`:return i(`devServer.stopping`);case`error`:return i(`devServer.error`);case`stopped`:return i(`devServer.stopped`);default:return i(`devServer.unknown`)}}),j=T(()=>{let e=D.value?.status;return!e||e===`stopped`||e===`unknown`||e===`error`}),M=T(()=>{let e=D.value?.status;return e===`running`||e===`starting`});async function N(){if(w.value){m.value=!0;try{await l.startDevServer(w.value)}finally{m.value=!1}}}async function ee(){if(w.value){g.value=!0;try{await l.stopDevServer(w.value)}finally{g.value=!1}}}function P(){w.value&&E.value&&l.fetchStatus(w.value)}function te(){ne(),b=setInterval(()=>{P()},3e4)}function ne(){b&&=(clearInterval(b),null)}return n(w,()=>{P(),te()}),a(()=>{P(),te()}),o(()=>{ne()}),(n,r)=>{let i=c(`router-link`);return t(),x(`div`,bt,[_(`div`,xt,A(n.$t(`devServer.title`)),1),e.workspace?E.value?D.value?(t(),x(h,{key:2},[_(`div`,wt,[p(Le,{color:O.value,label:k.value,style:{"font-size":`10px`}},null,8,[`color`,`label`]),p(Ne),j.value?(t(),v(F,{key:0,flat:``,round:``,dense:``,icon:`play_arrow`,size:`xs`,color:`green-5`,onClick:N,loading:m.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.startDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),M.value?(t(),v(F,{key:1,flat:``,round:``,dense:``,icon:`stop`,size:`xs`,color:`red-5`,onClick:ee,loading:g.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.stopDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),p(F,{flat:``,round:``,dense:``,icon:`article`,size:`xs`,color:`grey-5`,onClick:r[0]||=e=>f.value=!0},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`devServer.logs`)),1)]),_:1})]),_:1})]),D.value.status===`running`&&D.value.url?(t(),x(`div`,Tt,[_(`a`,{href:D.value.url,target:`_blank`,style:{color:`#6c63ff`}},A(D.value.url),9,Et)])):C(``,!0),D.value.containers.length>0?(t(),x(`div`,Dt,A(n.$t(`devServer.containers`,{count:D.value.containers.length},D.value.containers.length)),1)):C(``,!0),D.value.error?(t(),x(`div`,Ot,A(D.value.error),1)):C(``,!0)],64)):C(``,!0):(t(),x(`div`,Ct,[y(A(n.$t(`devServer.notConfigured`))+` `,1),p(i,{to:`/settings`,style:{color:`#6c63ff`}},{default:u(()=>[y(A(n.$t(`devServer.goToSettings`)),1)]),_:1})])):(t(),x(`div`,St,A(n.$t(`devServer.noWorkspace`)),1)),w.value?(t(),v(yt,{key:3,modelValue:f.value,"onUpdate:modelValue":r[1]||=e=>f.value=e,"workspace-id":w.value},null,8,[`modelValue`,`workspace-id`])):C(``,!0)])}}}),[[`__scopeId`,`data-v-20c5f4bd`]]),At={class:`git-panel q-pa-md`},jt={class:`row items-center justify-between q-mb-sm`},Mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Nt={class:`row items-center q-mb-sm`},Pt={class:`text-caption text-grey-3`},Ft={class:`row items-center q-mb-sm`},It={class:`text-caption text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Lt={class:`text-caption q-mb-sm text-grey-8`,style:{"font-size":`11px`}},Rt={key:0},zt={key:1,style:{color:`#4ade80`}},Bt={key:2,style:{color:`#f59e0b`}},Vt={class:`row items-center q-mb-xs`},Ht={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Ut={key:0,class:`row items-center q-mb-md`},Wt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Gt={key:0,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#4ade80`}},Kt={key:1,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#f87171`}},qt={key:1,class:`q-mb-xs`},Jt={key:2,class:`row items-center q-gutter-xs q-mb-md`,style:{"font-size":`11px`}},Yt={key:0,class:`text-caption`,style:{color:`#4ade80`}},Xt={key:1,class:`text-caption`,style:{color:`#f59e0b`}},Zt={key:2,class:`text-caption text-grey-6`},Qt={key:3,class:`q-mb-md`},$t={class:`row q-gutter-xs`},en={key:1,class:`text-caption text-grey-8`},tn=Pe(k({__name:`GitPanel`,props:{workspace:{}},setup(e){let r=E(()=>Ce(()=>import(`./DiffViewer-eROI3K7I.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),i=e,{t:a}=S(),c=qe(),l=xe(),d=me(),f=s(!1),m=s(!1),g=s(!1),b=s(!1),D=s(!1),O=s(!1),k=s(!1),M=T(()=>!!d.global.editorCommand);async function N(){if(i.workspace){k.value=!0;try{let e=await fetch(`/api/workspaces/${i.workspace.id}/open-editor`,{method:`POST`});if(!e.ok){let t=await e.json();c.notify({type:`negative`,message:t.error??a(`git.openEditorFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:a(`git.openEditorFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{k.value=!1}}}function ee(e){l.chatDraft=e,O.value=!1}let P=s(null),te=s(!1),ne=T(()=>{if(!i.workspace?.projectPath)return`-`;let e=i.workspace.projectPath.replace(/\\/g,`/`).split(`/`);return e[e.length-1]||e[e.length-2]||`-`}),I=T(()=>!(!P.value||P.value.unpushedCount===-1)),re=T(()=>P.value&&P.value.unpushedCount===-1?a(`git.createPrNoRemote`):``);async function L(){if(!i.workspace){P.value=null;return}te.value=!0;try{P.value=await l.fetchGitStats(i.workspace.id)}catch{P.value=null}finally{te.value=!1}}n(()=>i.workspace?.id,()=>L(),{immediate:!0});let R=null;n(()=>l.gitRefreshTrigger,()=>{R&&clearTimeout(R),R=setTimeout(()=>L(),3e3)}),o(()=>{R&&clearTimeout(R)});function ie(){i.workspace&&c.dialog({title:a(`git.rebaseConfirmTitle`),message:a(`git.rebaseConfirmMessage`,{branch:i.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.rebase`),color:`orange-4`}}).onOk(async()=>{g.value=!0;try{let e=await fetch(`/api/workspaces/${i.workspace.id}/rebase`,{method:`POST`});if(!e.ok){let t=await e.json();throw Error(t.error??`Rebase failed`)}c.notify({type:`positive`,message:a(`git.rebaseSuccess`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:a(`git.rebaseFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{g.value=!1}})}function ae(){i.workspace&&c.dialog({title:a(`git.pushConfirmTitle`),message:a(`git.pushConfirmMessage`,{branch:i.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.push`),color:`grey-5`}}).onOk(async()=>{f.value=!0;try{await l.pushBranch(i.workspace.id),c.notify({type:`positive`,message:a(`git.branchPushed`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:`Push failed`;c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{f.value=!1}})}function oe(){i.workspace&&c.dialog({title:a(`git.pullConfirmTitle`),message:a(`git.pullConfirmMessage`,{branch:i.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.pull`),color:`grey-5`}}).onOk(async()=>{m.value=!0;try{await l.pullBranch(i.workspace.id),c.notify({type:`positive`,message:a(`git.branchPulled`),position:`top`}),L()}catch(e){console.error(`[GitPanel] pullBranch failed:`,e);let t=e instanceof Error?e.message:a(`git.pullFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{m.value=!1}})}function se(){P.value?.prUrl&&window.open(P.value.prUrl,`_blank`)}function ce(){i.workspace&&c.dialog({title:a(`git.changePrBaseTitle`),message:a(`git.changePrBaseMessage`),prompt:{model:i.workspace.sourceBranch,type:`text`},dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`common.save`),color:`primary`}}).onOk(async e=>{if(!(!e.trim()||!i.workspace)){D.value=!0;try{let t=await fetch(`/api/workspaces/${i.workspace.id}/change-pr-base`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({base:e.trim()})});if(!t.ok){let e=await t.json();throw Error(e.error??`Failed`)}c.notify({type:`positive`,message:a(`git.changePrBaseSuccess`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:a(`git.changePrBaseFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{D.value=!1}}})}async function le(){if(i.workspace){b.value=!0;try{let e=await l.openPullRequest(i.workspace.id);c.notify({type:`positive`,message:a(`git.prCreated`,{n:e.prNumber}),caption:e.prUrl,position:`top`,timeout:5e3}),L()}catch(e){if(e instanceof _e&&e.code===`branch_not_pushed`){c.notify({type:`warning`,message:a(`git.pushFirst`),position:`top`,timeout:6e3});return}if(e instanceof _e&&e.code===`unpushed_commits`){c.notify({type:`warning`,message:a(`git.unpushedCommits`),position:`top`,timeout:6e3});return}let t=e instanceof Error?e.message:`Open PR failed`;c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{b.value=!1}}}return(n,i)=>(t(),x(`div`,At,[_(`div`,jt,[_(`div`,Mt,A(n.$t(`git.title`)),1),e.workspace?(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:te.value,onClick:L},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.refreshGitStats`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0)]),e.workspace?(t(),x(h,{key:0},[_(`div`,Nt,[p(j,{name:`folder`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Pt,A(ne.value),1)]),_(`div`,Ft,[i[3]||=_(`span`,{style:{width:`8px`,height:`8px`,"border-radius":`50%`,"background-color":`#4ade80`,display:`inline-block`},class:`q-mr-xs`},null,-1),_(`span`,It,A(e.workspace.workingBranch),1)]),_(`div`,Lt,[y(A(n.$t(`git.from`))+` `+A(e.workspace.sourceBranch)+` `,1),P.value?(t(),x(h,{key:0},[i[4]||=y(` · `,-1),P.value.unpushedCount===-1?(t(),x(`span`,Rt,A(n.$t(`git.localOnly`)),1)):P.value.unpushedCount===0?(t(),x(`span`,zt,A(n.$t(`git.pushed`)),1)):(t(),x(`span`,Bt,A(n.$t(`git.unpushed`,{count:P.value.unpushedCount})),1))],64)):C(``,!0)]),P.value?(t(),x(h,{key:0},[_(`div`,Vt,[p(j,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Ht,A(n.$t(`git.commits`,{count:P.value.commitCount},P.value.commitCount)),1)]),P.value.filesChanged>0?(t(),x(`div`,Ut,[p(j,{name:`insert_drive_file`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Wt,A(n.$t(`git.files`,{count:P.value.filesChanged},P.value.filesChanged)),1),P.value.insertions>0?(t(),x(`span`,Gt,` +`+A(P.value.insertions),1)):C(``,!0),P.value.deletions>0?(t(),x(`span`,Kt,` -`+A(P.value.deletions),1)):C(``,!0)])):(t(),x(`div`,qt)),P.value.workingTree&&(P.value.workingTree.staged>0||P.value.workingTree.modified>0||P.value.workingTree.untracked>0)?(t(),x(`div`,Jt,[p(j,{name:`edit_note`,size:`14px`,color:`grey-6`}),P.value.workingTree.staged>0?(t(),x(`span`,Yt,A(n.$t(`git.staged`,{count:P.value.workingTree.staged})),1)):C(``,!0),P.value.workingTree.modified>0?(t(),x(`span`,Xt,A(n.$t(`git.modified`,{count:P.value.workingTree.modified})),1)):C(``,!0),P.value.workingTree.untracked>0?(t(),x(`span`,Zt,A(n.$t(`git.untracked`,{count:P.value.workingTree.untracked})),1)):C(``,!0)])):(t(),x(`div`,Qt))],64)):C(``,!0),_(`div`,$t,[P.value?.prUrl?(t(),v(F,{key:0,dense:``,"no-caps":``,size:`sm`,outline:``,color:`green-4`,label:n.$t(`git.viewPr`),icon:`open_in_new`,class:`git-btn`,onClick:se},null,8,[`label`])):C(``,!0),P.value?.prUrl&&P.value.prState===`OPEN`?(t(),v(F,{key:1,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`swap_horiz`,loading:D.value,class:`git-btn`,onClick:ce},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`git.changePrBase`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),!P.value?.prUrl||P.value.prState===`CLOSED`||P.value.prState===`MERGED`?(t(),v(F,{key:2,dense:``,"no-caps":``,size:`sm`,color:`primary`,label:n.$t(`git.createPr`),class:`git-btn`,loading:b.value,disable:!e.workspace||f.value||!I.value,onClick:le},{default:u(()=>[!I.value&&re.value?(t(),v(z,{key:0},{default:u(()=>[y(A(re.value),1)]),_:1})):C(``,!0)]),_:1},8,[`label`,`loading`,`disable`])):C(``,!0),!P.value||P.value.unpushedCount!==0?(t(),v(F,{key:3,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,label:n.$t(`git.push`),class:`git-btn`,loading:f.value,disable:!e.workspace||b.value||m.value||g.value,onClick:ae},null,8,[`label`,`loading`,`disable`])):C(``,!0),P.value&&P.value.unpushedCount!==-1?(t(),v(F,{key:4,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`download`,label:n.$t(`git.pull`),class:`git-btn`,loading:m.value,disable:!e.workspace||f.value||g.value,onClick:oe},null,8,[`label`,`loading`,`disable`])):C(``,!0),p(F,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`orange-4`,label:n.$t(`git.rebase`),class:`git-btn`,loading:g.value,disable:!e.workspace||f.value||m.value,onClick:ie},null,8,[`label`,`loading`,`disable`]),p(F,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,label:n.$t(`git.diff`),icon:`difference`,class:`git-btn`,disable:!e.workspace,onClick:i[0]||=e=>O.value=!0},null,8,[`label`,`disable`]),M.value?(t(),v(F,{key:5,dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,icon:`open_in_new`,label:n.$t(`git.openEditor`),loading:k.value,disable:!e.workspace,class:`git-btn`,onClick:N},null,8,[`label`,`loading`,`disable`])):C(``,!0)])],64)):(t(),x(`div`,en,A(n.$t(`common.selectWorkspace`)),1)),p(Ee,{modelValue:O.value,"onUpdate:modelValue":i[2]||=e=>O.value=e,maximized:``},{default:u(()=>[e.workspace?(t(),v(w(r),{key:0,"workspace-id":e.workspace.id,onClose:i[1]||=e=>O.value=!1,onSendToChat:ee},null,8,[`workspace-id`])):C(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-0e9ea4fb`]]),nn={xs:2,sm:4,md:6,lg:10,xl:14};function rn(e,t,n){return{transform:t===!0?`translateX(${n.lang.rtl===!0?`-`:``}100%) scale3d(${-e},1,1)`:`scale3d(${e},1,1)`}}var an=R({name:`QLinearProgress`,props:{...pe,...I,value:{type:Number,default:0},buffer:Number,color:String,trackColor:String,reverse:Boolean,stripe:Boolean,indeterminate:Boolean,query:Boolean,rounded:Boolean,animationSpeed:{type:[String,Number],default:2100},instantFeedback:Boolean},setup(e,{slots:t}){let{proxy:n}=g(),r=de(e,n.$q),i=te(e,nn),a=T(()=>e.indeterminate===!0||e.query===!0),o=T(()=>e.reverse!==e.query),s=T(()=>({...i.value===null?{}:i.value,"--q-linear-progress-speed":`${e.animationSpeed}ms`})),c=T(()=>`q-linear-progress`+(e.color===void 0?``:` text-${e.color}`)+(e.reverse===!0||e.query===!0?` q-linear-progress--reverse`:``)+(e.rounded===!0?` rounded-borders`:``)),u=T(()=>rn(e.buffer===void 0?1:e.buffer,o.value,n.$q)),d=T(()=>`with${e.instantFeedback===!0?`out`:``}-transition`),f=T(()=>`q-linear-progress__track absolute-full q-linear-progress__track--${d.value} q-linear-progress__track--${r.value===!0?`dark`:`light`}`+(e.trackColor===void 0?``:` bg-${e.trackColor}`)),p=T(()=>rn(a.value===!0?1:e.value,o.value,n.$q)),m=T(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${d.value} q-linear-progress__model--${a.value===!0?`in`:``}determinate`),h=T(()=>({width:`${e.value*100}%`})),_=T(()=>`q-linear-progress__stripe absolute-${e.reverse===!0?`right`:`left`} q-linear-progress__stripe--${d.value}`);return()=>{let n=[l(`div`,{class:f.value,style:u.value}),l(`div`,{class:m.value,style:p.value})];return e.stripe===!0&&a.value===!1&&n.push(l(`div`,{class:_.value,style:h.value})),l(`div`,{class:c.value,style:s.value,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":e.indeterminate===!0?void 0:e.value},ue(t.default,n))}}}),on={class:`notion-panel q-pa-md`},sn={class:`row items-center q-mb-sm`},cn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ln={key:0,class:`q-mb-sm`},un=[`href`],dn={key:1,class:`text-caption q-mb-sm text-grey-8`},fn={key:3,class:`q-mb-sm`},pn={class:`text-caption text-grey-7`,style:{"font-size":`11px`}},mn={key:4,class:`text-caption text-grey-8 q-mb-sm`,style:{"font-size":`11px`}},hn={key:5,class:`task-add-row row items-center q-mb-xs`},gn={key:6,class:`tasks-list`},_n=[`onDblclick`],vn={key:1,class:`text-caption text-grey-8`},yn=Pe(k({__name:`NotionPanel`,props:{workspace:{},tasks:{}},setup(n){let r=n,{t:a}=S(),o=xe(),c=ve(),l=s(!1);function d(){r.workspace?.id&&Ze(r.workspace.id,c,o)}let f=T(()=>r.tasks.filter(e=>!e.isAcceptanceCriterion)),g=T(()=>f.value.filter(e=>e.status===`done`).length),b=T(()=>f.value.length),w=T(()=>b.value>0?g.value/b.value:0),E=s(!1),O=s(``),k=s(null),M=s(``),N=s({});function ee(e,t){if(t){let n=t.$el??t;N.value[e]=n}else delete N.value[e]}async function P(){if(!(!r.workspace?.id||!r.workspace.notionUrl)){l.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/refresh-notion`,{method:`POST`});if(!e.ok)throw Error(`HTTP ${e.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to refresh from Notion:`,e)}finally{l.value=!1}}}function te(){E.value=!0,O.value=``}async function ne(){let e=O.value.trim();if(!(!e||!r.workspace?.id))try{await o.createTask(r.workspace.id,e,!1),O.value=``,E.value=!1}catch{}}function I(){O.value=``,E.value=!1}function re(t){k.value=t.id,M.value=t.title,e(()=>{let e=N.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function R(e){if(k.value!==e.id)return;let t=M.value.trim(),n=e.id;if(k.value=null,!(!t||t===e.title)&&r.workspace?.id)try{await o.updateTaskTitle(r.workspace.id,n,t)}catch{}}function ie(){k.value=null,M.value=``}async function ae(e){if(r.workspace?.id)try{await o.deleteTask(r.workspace.id,e.id)}catch{}}async function oe(e){if(!r.workspace?.id)return;let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to toggle task:`,e)}}function se(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function ce(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,r)=>(t(),x(`div`,on,[_(`div`,sn,[_(`div`,cn,A(e.$t(`notion.title`)),1),p(Ne),n.workspace?(t(),v(F,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:d},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):C(``,!0),n.workspace?(t(),v(F,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:te},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.addNotionTask`)),1)]),_:1})]),_:1})):C(``,!0)]),n.workspace?(t(),x(h,{key:0},[n.workspace.notionUrl?(t(),x(`div`,ln,[_(`a`,{href:n.workspace.notionUrl,target:`_blank`,rel:`noopener noreferrer`,class:`notion-link text-caption items-center text-blue-4`},[p(j,{name:`open_in_new`,size:`12px`,class:`q-mr-xs`}),y(` `+A(e.$t(`notion.openInNotion`)),1)],8,un)])):(t(),x(`div`,dn,A(e.$t(`notion.noUrl`)),1)),n.workspace.notionUrl?(t(),v(F,{key:2,flat:``,dense:``,"no-caps":``,size:`xs`,icon:`refresh`,label:e.$t(`common.refresh`),color:`grey-6`,class:`q-mb-sm`,loading:l.value,onClick:P},null,8,[`label`,`loading`])):C(``,!0),b.value>0?(t(),x(`div`,fn,[p(an,{value:w.value,color:`primary`,"track-color":`grey-9`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),_(`div`,pn,A(e.$t(`notion.subtasks`,{done:g.value,total:b.value})),1)])):E.value?C(``,!0):(t(),x(`div`,mn,A(e.$t(`notion.noTasks`)),1)),E.value?(t(),x(`div`,hn,[p(Ae,{modelValue:O.value,"onUpdate:modelValue":r[0]||=e=>O.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`notion.newTask`),class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[le(L(ne,[`prevent`]),[`enter`]),le(L(I,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):C(``,!0),f.value.length>0?(t(),x(`div`,gn,[(t(!0),x(h,null,i(f.value,n=>(t(),x(`div`,{key:n.id,class:`task-item row items-center q-py-xxs`},[p(j,{name:se(n.status),size:`14px`,style:D({color:ce(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>oe(n)},null,8,[`name`,`style`,`onClick`]),k.value===n.id?(t(),v(Ae,{key:0,ref_for:!0,ref:e=>ee(n.id,e),modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[le(L(e=>R(n),[`prevent`]),[`enter`]),le(L(ie,[`prevent`]),[`esc`])],onBlur:e=>R(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),x(h,{key:1},[_(`span`,{class:m([`col task-title text-caption`,{"text-strike":n.status===`done`}]),style:D({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>re(n)},A(n.title),47,_n),p(F,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`task-delete-btn`,onClick:e=>ae(n)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.removeNotionTask`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):C(``,!0)],64)):(t(),x(`div`,vn,A(e.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-99e38dbd`]]),bn={class:`plans-panel q-pa-md`},xn={class:`row items-center justify-between q-mb-sm`},Sn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Cn={key:0,class:`text-caption text-grey-8`},wn={key:1,class:`text-center q-py-lg`},Tn={key:2,class:`text-caption text-grey-8 text-center q-py-lg`},En={key:0,class:`text-center q-py-lg`},Dn=[`innerHTML`],On=Pe(k({__name:`PlansPanel`,props:{workspace:{}},setup(e){let r=e,{t:a}=S(),o=qe(),{timeAgo:c}=Qe(),l=s([]),f=s(!1),m=s(null),g=s(!1);async function b(){if(!r.workspace){l.value=[];return}f.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/plans`);if(!e.ok)throw Error(`HTTP ${e.status}`);l.value=(await e.json()).plans}catch(e){console.error(`[PlansPanel] fetchPlans failed:`,e),l.value=[]}finally{f.value=!1}}async function C(e){g.value=!0;try{let t=await fetch(`/api/workspaces/${r.workspace.id}/plan-file?path=${encodeURIComponent(e.path)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();m.value={path:n.path,content:n.content,name:e.name}}catch(e){console.error(`[PlansPanel] openPlan failed:`,e),o.notify({type:`negative`,message:a(`plans.loadFailed`),position:`top`})}finally{g.value=!1}}function E(){m.value=null}let D=T(()=>{if(!m.value)return``;let e=Ie.parse(m.value.content,{async:!1,breaks:!0,gfm:!0});return Fe.sanitize(e)});return n(()=>r.workspace?.id,()=>{m.value=null,b()},{immediate:!0}),(n,r)=>(t(),x(`div`,bn,[_(`div`,xn,[_(`div`,Sn,A(n.$t(`plans.title`)),1),m.value?(t(),v(F,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,icon:`arrow_back`,label:n.$t(`plans.back`),color:`grey-5`,onClick:E},null,8,[`label`])):(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:f.value,onClick:b},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`plans.refresh`)),1)]),_:1})]),_:1},8,[`loading`]))]),m.value?(t(),x(h,{key:1},[g.value?(t(),x(`div`,En,[p(N,{size:`24px`,color:`grey-6`})])):(t(),x(`div`,{key:1,class:`plan-content`,innerHTML:D.value},null,8,Dn))],64)):(t(),x(h,{key:0},[e.workspace?f.value?(t(),x(`div`,wn,[p(N,{size:`24px`,color:`grey-6`})])):l.value.length===0?(t(),x(`div`,Tn,A(n.$t(`plans.empty`)),1)):(t(),v(Ke,{key:3,dense:``,dark:``},{default:u(()=>[(t(!0),x(h,null,i(l.value,e=>d((t(),v(Je,{key:e.path,clickable:``,dense:``,onClick:t=>C(e)},{default:u(()=>[p(B,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[p(j,{name:`description`,size:`14px`,color:`grey-6`})]),_:1}),p(B,null,{default:u(()=>[p(Ye,{class:`text-grey-3 ellipsis`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},{default:u(()=>[y(A(e.name),1)]),_:2},1024),p(Ye,{caption:``,style:{"font-size":`10px`}},{default:u(()=>[y(A(w(c)(e.modifiedAt)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`onClick`])),[[M]])),128))]),_:1})):(t(),x(`div`,Cn,A(n.$t(`common.selectWorkspace`)),1))],64))]))}}),[[`__scopeId`,`data-v-442c2eef`]]),kn={class:`stats-panel q-pa-md`},An={class:`row items-center q-mb-md`},jn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Mn={class:`stat-group-label q-mb-xs`},Nn={class:`stat-row`},Pn={class:`stat-label`},Fn={class:`stat-value`},In={class:`stat-row`},Ln={class:`stat-label`},Rn={class:`stat-value`},zn={key:0,class:`stat-row`},Bn={class:`stat-label`},Vn={class:`stat-value stat-value-ellipsis`},Hn={class:`stat-row`},Un={class:`stat-label`},Wn={class:`stat-value`},Gn={class:`stat-row`},Kn={class:`stat-label`},qn={class:`stat-value`},Jn={class:`stat-group-label q-mb-xs`},Yn={class:`stat-row`},Xn={class:`stat-label`},Zn={class:`stat-value`},Qn={key:1,class:`stat-row`},$n={class:`stat-label`},er={class:`stat-value`},tr={key:2,class:`stat-row`},nr={class:`stat-label`},rr={class:`stat-value`},ir={key:3,class:`stat-row`},ar={class:`stat-label`},or={class:`stat-value`},sr={key:4,class:`stat-row`},cr={class:`stat-label`},lr={class:`stat-value`},ur={class:`stat-group-label q-mb-xs`},dr={class:`stat-row`},fr={class:`stat-label`},pr={class:`stat-value`},mr={class:`stat-row`},hr={class:`stat-label`},gr={class:`stat-value`},_r={class:`stat-row`},vr={class:`stat-label`},yr={class:`stat-value`},br={key:5,class:`stat-row`},xr={class:`stat-label text-red-4`},Sr={class:`stat-value text-red-4`},Cr={key:6},wr={class:`stat-group-label q-mb-xs`},Tr={class:`stat-row`},Er={class:`stat-label`},Dr={class:`stat-value`},Or={class:`stat-row`},kr={class:`stat-label`},Ar={class:`stat-value`},jr={class:`stat-row`},Mr={class:`stat-label`},Nr={class:`stat-value`},Pr={key:0,class:`stat-row`},Fr={class:`stat-label`},Ir={class:`stat-value`},Lr={key:7},Rr={class:`stat-group-label q-mb-xs`},zr={class:`stat-row`},Br={class:`stat-label`},Vr={class:`stat-value`},Hr={key:0,class:`stat-row`},Ur={class:`stat-label`},Wr={class:`stat-value`},Gr={key:1,class:`stat-row`},Kr={class:`stat-label`},qr={class:`stat-value`},Jr={key:8},Yr={class:`stat-group-label q-mb-xs`},Xr={key:0,class:`q-mb-xs`},Zr={class:`stat-row q-mb-xxs`},Qr={class:`stat-label`},$r={class:`stat-value`},ei={key:1},ti={class:`stat-row q-mb-xxs`},ni={class:`stat-label`},ri={class:`stat-value`},ii={key:1,class:`text-caption text-grey-8`},ai=Pe(k({__name:`StatsPanel`,props:{workspace:{}},setup(e){let{t:n}=S(),r=xe(),{timeAgo:i}=Qe(),a=T(()=>{let e=r.selectedWorkspaceId;if(!e)return null;let t=r.activityFeeds[e]??[],n=r.sessions,i=Object.values(r.subagents[e]??{}),a=r.tasks,o=r.selectedWorkspace,s=r.activityCounts[e]??{toolUses:0,agentMessages:0,userMessages:0,errors:0},c=s.toolUses,l=s.agentMessages,u=s.userMessages,d=s.errors,f=n.length,p=n.filter(e=>e.status===`completed`).length,m=i.length,h=i.filter(e=>e.status===`done`).length,g=i.reduce((e,t)=>e+(t.totalTokens??0),0),_=i.reduce((e,t)=>e+(t.toolUses??0),0),v=a.filter(e=>!e.isAcceptanceCriterion).length,y=a.filter(e=>!e.isAcceptanceCriterion&&e.status===`done`).length,b=a.filter(e=>e.isAcceptanceCriterion).length,x=a.filter(e=>e.isAcceptanceCriterion&&e.status===`done`).length,S=o?.createdAt?new Date(o.createdAt):null,C=o?.updatedAt?new Date(o.updatedAt):null,w=S?Date.now()-S.getTime():0,T=null,E=null;for(let e=t.length-1;e>=0;e--){let n=t[e];if(!T&&n.meta?.sender===`user`&&(T=new Date(n.timestamp)),!E&&n.type===`text`&&n.meta?.sender!==`user`&&n.meta?.sender!==`system-prompt`&&(E=new Date(n.timestamp)),T&&E)break}let D=n.length>0?new Date(n[n.length-1].startedAt):null,O=r.usageStats[e]??{inputTokens:0,outputTokens:0,costUsd:0,sessionCount:0},k=o?.model??`auto`,A=o?.workingBranch??``,j=o?.status??``;return{toolUses:c,agentMessages:l,userMessages:u,errors:d,totalSessions:f,completedSessions:p,totalSubagents:m,doneSubagents:h,totalSubagentTokens:g,totalSubagentTools:_,totalTasks:v,doneTasks:y,totalCriteria:b,doneCriteria:x,durationMs:w,createdAt:S,updatedAt:C,lastPromptAt:T,lastAgentResponseAt:E,firstSessionAt:D,model:k,branch:A,status:j,usage:O}});function o(e){let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return n<24?`${n}h ${r}m`:`${Math.floor(n/24)}d ${n%24}h`}function s(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function c(e){return e.toLocaleDateString(void 0,{day:`2-digit`,month:`2-digit`,year:`numeric`})}function l(e){return e.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function d(e){return`${c(e)} ${l(e)}`}return(n,c)=>(t(),x(`div`,kn,[_(`div`,An,[_(`div`,jn,A(n.$t(`stats.title`)),1),p(Ne),e.workspace?(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,onClick:c[0]||=t=>w(r).fetchWorkspaceDetails(e.workspace.id)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.refreshStats`)),1)]),_:1})]),_:1})):C(``,!0)]),e.workspace&&a.value?(t(),x(h,{key:0},[_(`div`,Mn,A(n.$t(`stats.info`)),1),_(`div`,Nn,[_(`span`,Pn,A(n.$t(`stats.status`)),1),_(`span`,Fn,A(a.value.status),1)]),_(`div`,In,[_(`span`,Ln,A(n.$t(`stats.model`)),1),_(`span`,Rn,A(a.value.model),1)]),a.value.branch?(t(),x(`div`,zn,[_(`span`,Bn,A(n.$t(`stats.branch`)),1),_(`span`,Vn,A(a.value.branch),1)])):C(``,!0),_(`div`,Hn,[_(`span`,Un,A(n.$t(`stats.sessions`)),1),_(`span`,Wn,A(a.value.completedSessions)+` / `+A(a.value.totalSessions),1)]),_(`div`,Gn,[_(`span`,Kn,A(n.$t(`stats.duration`)),1),_(`span`,qn,A(o(a.value.durationMs)),1)]),p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Jn,A(n.$t(`stats.timeline`)),1),_(`div`,Yn,[_(`span`,Xn,A(n.$t(`stats.created`)),1),_(`span`,Zn,A(a.value.createdAt?d(a.value.createdAt):`—`),1)]),a.value.firstSessionAt?(t(),x(`div`,Qn,[_(`span`,$n,A(n.$t(`stats.firstSession`)),1),_(`span`,er,A(d(a.value.firstSessionAt)),1)])):C(``,!0),a.value.lastPromptAt?(t(),x(`div`,tr,[_(`span`,nr,A(n.$t(`stats.lastPrompt`)),1),_(`span`,rr,[y(A(w(i)(a.value.lastPromptAt))+` `,1),p(z,null,{default:u(()=>[y(A(d(a.value.lastPromptAt)),1)]),_:1})])])):C(``,!0),a.value.lastAgentResponseAt?(t(),x(`div`,ir,[_(`span`,ar,A(n.$t(`stats.lastResponse`)),1),_(`span`,or,[y(A(w(i)(a.value.lastAgentResponseAt))+` `,1),p(z,null,{default:u(()=>[y(A(d(a.value.lastAgentResponseAt)),1)]),_:1})])])):C(``,!0),a.value.updatedAt?(t(),x(`div`,sr,[_(`span`,cr,A(n.$t(`stats.updated`)),1),_(`span`,lr,A(w(i)(a.value.updatedAt)),1)])):C(``,!0),p(fe,{dark:``,class:`q-my-sm`}),_(`div`,ur,A(n.$t(`stats.activity`)),1),_(`div`,dr,[_(`span`,fr,A(n.$t(`stats.agentMessages`)),1),_(`span`,pr,A(a.value.agentMessages),1)]),_(`div`,mr,[_(`span`,hr,A(n.$t(`stats.userMessages`)),1),_(`span`,gr,A(a.value.userMessages),1)]),_(`div`,_r,[_(`span`,vr,A(n.$t(`stats.toolCalls`)),1),_(`span`,yr,A(a.value.toolUses),1)]),a.value.errors>0?(t(),x(`div`,br,[_(`span`,xr,A(n.$t(`stats.errors`)),1),_(`span`,Sr,A(a.value.errors),1)])):C(``,!0),a.value.usage.inputTokens>0||a.value.usage.outputTokens>0?(t(),x(`div`,Cr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,wr,A(n.$t(`stats.usage`)),1),_(`div`,Tr,[_(`span`,Er,A(n.$t(`stats.inputTokens`)),1),_(`span`,Dr,A(s(a.value.usage.inputTokens)),1)]),_(`div`,Or,[_(`span`,kr,A(n.$t(`stats.outputTokens`)),1),_(`span`,Ar,A(s(a.value.usage.outputTokens)),1)]),_(`div`,jr,[_(`span`,Mr,A(n.$t(`stats.totalTokens`)),1),_(`span`,Nr,A(s(a.value.usage.inputTokens+a.value.usage.outputTokens)),1)]),a.value.usage.costUsd>0?(t(),x(`div`,Pr,[_(`span`,Fr,A(n.$t(`stats.cost`)),1),_(`span`,Ir,`$`+A(a.value.usage.costUsd.toFixed(4)),1)])):C(``,!0)])):C(``,!0),a.value.totalSubagents>0?(t(),x(`div`,Lr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Rr,A(n.$t(`stats.subagents`)),1),_(`div`,zr,[_(`span`,Br,A(n.$t(`stats.completed`)),1),_(`span`,Vr,A(a.value.doneSubagents)+` / `+A(a.value.totalSubagents),1)]),a.value.totalSubagentTokens>0?(t(),x(`div`,Hr,[_(`span`,Ur,A(n.$t(`stats.tokens`)),1),_(`span`,Wr,A(s(a.value.totalSubagentTokens)),1)])):C(``,!0),a.value.totalSubagentTools>0?(t(),x(`div`,Gr,[_(`span`,Kr,A(n.$t(`stats.toolCalls`)),1),_(`span`,qr,A(a.value.totalSubagentTools),1)])):C(``,!0)])):C(``,!0),a.value.totalTasks>0||a.value.totalCriteria>0?(t(),x(`div`,Jr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Yr,A(n.$t(`stats.progress`)),1),a.value.totalTasks>0?(t(),x(`div`,Xr,[_(`div`,Zr,[_(`span`,Qr,A(n.$t(`stats.tasks`)),1),_(`span`,$r,A(a.value.doneTasks)+` / `+A(a.value.totalTasks),1)]),p(an,{value:a.value.doneTasks/a.value.totalTasks,color:`primary`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):C(``,!0),a.value.totalCriteria>0?(t(),x(`div`,ei,[_(`div`,ti,[_(`span`,ni,A(n.$t(`stats.acceptanceCriteria`)),1),_(`span`,ri,A(a.value.doneCriteria)+` / `+A(a.value.totalCriteria),1)]),p(an,{value:a.value.doneCriteria/a.value.totalCriteria,color:`green-6`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):C(``,!0)])):C(``,!0)],64)):(t(),x(`div`,ii,A(n.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-3d3e6cd8`]]),oi={class:`subagents-panel q-pa-md`},si={class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},ci={key:0,class:`text-caption text-grey-8`},li={class:`row items-center q-mb-xs`},ui={class:`text-caption text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`220px`}},di={key:0,class:`text-caption text-grey-6`,style:{"font-size":`10px`}},fi={class:`text-grey-4`},pi={class:`row items-center q-gutter-xs q-mt-xs text-caption text-grey-7`,style:{"font-size":`10px`}},mi={key:0},hi={key:1},gi={key:2},_i=Pe(k({__name:`SubagentsPanel`,setup(e){let{t:n}=S(),r=xe(),a=T(()=>[...r.currentSubagents].reverse());function o(e){return e?e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:``}function s(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,n)=>(t(),x(`div`,oi,[_(`div`,si,A(e.$t(`subagents.title`)),1),a.value.length===0?(t(),x(`div`,ci,A(e.$t(`subagents.empty`)),1)):C(``,!0),(t(!0),x(h,null,i(a.value,n=>(t(),x(`div`,{key:n.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[_(`div`,li,[p(j,{name:n.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:n.status===`running`?`green-4`:`grey-6`,class:`q-mr-xs`},null,8,[`name`,`color`]),_(`span`,ui,A(n.description||n.toolUseId),1)]),n.lastToolName?(t(),x(`div`,di,[y(A(e.$t(`subagents.running`)),1),_(`span`,fi,A(n.lastToolName),1)])):C(``,!0),_(`div`,pi,[n.toolUses===void 0?C(``,!0):(t(),x(`span`,mi,A(e.$t(`subagents.tools`,{count:n.toolUses})),1)),n.totalTokens?(t(),x(`span`,hi,`· `+A(s(n.totalTokens))+` tok`,1)):C(``,!0),n.durationMs?(t(),x(`span`,gi,`· `+A(o(n.durationMs)),1)):C(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-81ad2481`]]),vi=2,yi=1,bi=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(vi,Math.floor(u/e.css.cell.width)),rows:Math.max(yi,Math.floor(l/e.css.cell.height))}}},xi=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,Ci=(e,t)=>{for(var n in t)xi(e,n,{get:t[n],enumerable:!0})},V=(e,t,n,r)=>{for(var i=r>1?void 0:r?Si(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&xi(t,n,i),i},H=(e,t)=>(n,r)=>t(n,r,e),wi=`Terminal input`,Ti={get:()=>wi,set:e=>wi=e},Ei=`Too much output to announce, navigate to rows manually to read`,Di={get:()=>Ei,set:e=>Ei=e};function Oi(e){return e.replace(/\r?\n/g,`\r`)}function ki(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Ai(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function ji(e,t,n,r){e.stopPropagation(),e.clipboardData&&Mi(e.clipboardData.getData(`text/plain`),t,n,r)}function Mi(e,t,n,r){e=Oi(e),e=ki(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Ni(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function Pi(e,t,n,r,i){Ni(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function Fi(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Ii(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var Li=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},Ri=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},zi=``,Bi=` `,Vi=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Hi}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Hi=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Ui=class e extends Vi{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Hi,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Fi(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Wi=`di$target`,Gi=`di$dependencies`,Ki=new Map;function qi(e){return e[Gi]||[]}function Ji(e){if(Ki.has(e))return Ki.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Yi(t,e,r)};return t._id=e,Ki.set(e,t),t}function Yi(e,t,n){t[Wi]===t?t[Gi].push({id:e,index:n}):(t[Gi]=[{id:e,index:n}],t[Wi]=t)}var Xi=Ji(`BufferService`),Zi=Ji(`CoreMouseService`),Qi=Ji(`CoreService`),$i=Ji(`CharsetService`),ea=Ji(`InstantiationService`),ta=Ji(`LogService`),na=Ji(`OptionsService`),ra=Ji(`OscLinkService`),ia=Ji(`UnicodeService`),aa=Ji(`DecorationService`),oa=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Ui,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+(!l&&t===o-1?1:0),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):sa(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};oa=V([H(0,Xi),H(1,na),H(2,ra)],oa);function sa(e,t){if(confirm(`Do you want to navigate to ${t}?
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DiffViewer-CrQVq67p.js","assets/index-5WBiUIJL.js","assets/vue-i18n-nv59vAyH.js","assets/scroll-CWjBCoBR.js","assets/settings-CuK-S6HH.js","assets/use-checkbox-DwkIkUAc.js","assets/private.use-form-1cZLVjGN.js","assets/i18n-DAQcMG9d.js","assets/index-eX_lKHSg.css","assets/_plugin-vue_export-helper-fkfRoKj2.js","assets/QBadge-xNMZEqT-.js","assets/touch-Bojc73iM.js","assets/TouchPan-DuISf80E.js","assets/QSpinnerDots-FJCnAvfw.js","assets/format-Ex4UmWdz.js","assets/DiffViewer-DiHFLSk4.css"])))=>i.map(i=>d[i]);
2
+ import{E as e,F as t,H as n,I as r,L as i,M as a,N as o,Q as s,R as c,S as l,U as u,W as d,Z as f,_ as p,_t as m,a as h,b as g,d as _,f as v,g as y,k as b,m as x,n as S,p as C,rt as w,u as T,v as E,vt as D,w as O,y as k,yt as A}from"./vue-i18n-nv59vAyH.js";import{L as j,M,P as N,R as ee,S as P,T as F,U as te,V as ne,W as I,b as re,bt as L,ct as R,pt as ie,r as ae,v as oe,vt as se,y as ce,yt as le,z as ue}from"./scroll-CWjBCoBR.js";import{a as de,i as fe,o as pe}from"./private.use-form-1cZLVjGN.js";import{t as me}from"./settings-CuK-S6HH.js";import{A as he,C as ge,D as _e,E as ve,F as ye,N as be,O as xe,P as Se,S as Ce,b as we,f as Te,h as Ee,m as De,n as Oe,p as ke,r as Ae,w as je,x as Me}from"./index-5WBiUIJL.js";import{n as z,p as Ne,t as Pe}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{n as Fe,t as Ie}from"./marked.esm-BzjtracY.js";import{t as Le}from"./QBadge-xNMZEqT-.js";import{r as Re}from"./touch-Bojc73iM.js";import{n as ze,t as Be}from"./TouchPan-DuISf80E.js";import{t as Ve}from"./format-Ex4UmWdz.js";import{a as He,i as Ue,n as We,r as Ge,t as Ke}from"./QList-C4S3UmX3.js";import{a as qe,i as B,n as Je,r as Ye,t as Xe}from"./QMenu-Dkt9vjxB.js";import{r as Ze,t as Qe}from"./formatters-B5Igo0Lf.js";import{t as $e}from"./ClosePopup-jSuaV6dg.js";var et=150,tt=R({name:`QDrawer`,inheritAttrs:!1,props:{...re,...pe,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...ce,`onLayout`,`miniState`],setup(t,{slots:r,emit:i,attrs:o}){let c=g(),{proxy:{$q:u}}=c,f=de(t,u),{preventBodyScroll:p}=we(),{registerTimeout:m,removeTimeout:h}=P(),_=O(Se,be);if(_===be)return console.error(`QDrawer needs to be child of QLayout`),be;let v,y=null,x,S=s(t.behavior===`mobile`||t.behavior!==`desktop`&&_.totalWidth.value<=t.breakpoint),C=T(()=>t.mini===!0&&S.value!==!0),w=T(()=>C.value===!0?t.miniWidth:t.width),E=s(t.showIfAbove===!0&&S.value===!1?!0:t.modelValue===!0),D=T(()=>t.persistent!==!0&&(S.value===!0||fe.value===!0));function k(e,t){if(N(),e!==!1&&_.animate(),Oe(0),S.value===!0){let e=_.instances[se.value];e?.belowBreakpoint===!0&&e.hide(!1),ke(1),_.isContainer.value!==!0&&p(!0)}else ke(0),e!==!1&&Ae(!1);m(()=>{e!==!1&&Ae(!0),t!==!0&&i(`show`,e)},et)}function A(e,t){F(),e!==!1&&_.animate(),ke(0),Oe(re.value*w.value),Pe(),t===!0?h():m(()=>{i(`hide`,e)},et)}let{show:j,hide:M}=oe({showing:E,hideOnRouteChange:D,handleShow:k,handleHide:A}),{addToHistory:N,removeFromHistory:F}=Me(E,M,D),te={belowBreakpoint:S,hide:M},I=T(()=>t.side===`right`),re=T(()=>(u.lang.rtl===!0?-1:1)*(I.value===!0?1:-1)),L=s(0),R=s(!1),ie=s(!1),ae=s(w.value*re.value),se=T(()=>I.value===!0?`left`:`right`),ce=T(()=>E.value===!0&&S.value===!1&&t.overlay===!1?t.miniToOverlay===!0?t.miniWidth:w.value:0),le=T(()=>t.overlay===!0||t.miniToOverlay===!0||_.view.value.indexOf(I.value?`R`:`L`)!==-1||u.platform.is.ios===!0&&_.isContainer.value===!0),ue=T(()=>t.overlay===!1&&E.value===!0&&S.value===!1),fe=T(()=>t.overlay===!0&&E.value===!0&&S.value===!1),pe=T(()=>`fullscreen q-drawer__backdrop`+(E.value===!1&&R.value===!1?` hidden`:``)),me=T(()=>({backgroundColor:`rgba(0,0,0,${L.value*.4})`})),he=T(()=>I.value===!0?_.rows.value.top[2]===`r`:_.rows.value.top[0]===`l`),ge=T(()=>I.value===!0?_.rows.value.bottom[2]===`r`:_.rows.value.bottom[0]===`l`),_e=T(()=>{let e={};return _.header.space===!0&&he.value===!1&&(le.value===!0?e.top=`${_.header.offset}px`:_.header.space===!0&&(e.top=`${_.header.size}px`)),_.footer.space===!0&&ge.value===!1&&(le.value===!0?e.bottom=`${_.footer.offset}px`:_.footer.space===!0&&(e.bottom=`${_.footer.size}px`)),e}),ve=T(()=>{let e={width:`${w.value}px`,transform:`translateX(${ae.value}px)`};return S.value===!0?e:Object.assign(e,_e.value)}),ye=T(()=>`q-drawer__content fit `+(_.isContainer.value===!0?`overflow-auto`:`scroll`)),xe=T(()=>`q-drawer q-drawer--${t.side}`+(ie.value===!0?` q-drawer--mini-animate`:``)+(t.bordered===!0?` q-drawer--bordered`:``)+(f.value===!0?` q-drawer--dark q-dark`:``)+(R.value===!0?` no-transition`:E.value===!0?``:` q-layout--prevent-focus`)+(S.value===!0?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${C.value===!0?`mini`:`standard`}`+(le.value===!0||ue.value!==!0?` fixed`:``)+(t.overlay===!0||t.miniToOverlay===!0?` q-drawer--on-top`:``)+(he.value===!0?` q-drawer--top-padding`:``))),Ce=T(()=>[[Be,z,void 0,{[u.lang.rtl===!0?t.side:se.value]:!0,mouse:!0}]]),Te=T(()=>[[Be,Ne,void 0,{[u.lang.rtl===!0?se.value:t.side]:!0,mouse:!0}]]),Ee=T(()=>[[Be,Ne,void 0,{[u.lang.rtl===!0?se.value:t.side]:!0,mouse:!0,mouseAllDir:!0}]]);function De(){Ie(S,t.behavior===`mobile`||t.behavior!==`desktop`&&_.totalWidth.value<=t.breakpoint)}n(S,e=>{e===!0?(v=E.value,E.value===!0&&M(!1)):t.overlay===!1&&t.behavior!==`mobile`&&v!==!1&&(E.value===!0?(Oe(0),ke(0),Pe()):j(!1))}),n(()=>t.side,(e,t)=>{_.instances[t]===te&&(_.instances[t]=void 0,_[t].space=!1,_[t].offset=0),_.instances[e]=te,_[e].size=w.value,_[e].space=ue.value,_[e].offset=ce.value}),n(_.totalWidth,()=>{(_.isContainer.value===!0||document.qScrollPrevented!==!0)&&De()}),n(()=>t.behavior+t.breakpoint,De),n(_.isContainer,e=>{E.value===!0&&p(e!==!0),e===!0&&De()}),n(_.scrollbarWidth,()=>{Oe(E.value===!0?0:void 0)}),n(ce,e=>{Fe(`offset`,e)}),n(ue,e=>{i(`onLayout`,e),Fe(`space`,e)}),n(I,()=>{Oe()}),n(w,e=>{Oe(),Le(t.miniToOverlay,e)}),n(()=>t.miniToOverlay,e=>{Le(e,w.value)}),n(()=>u.lang.rtl,()=>{Oe()}),n(()=>t.mini,()=>{t.noMiniAnimation||t.modelValue===!0&&(je(),_.animate())}),n(C,e=>{i(`miniState`,e)});function Oe(t){t===void 0?e(()=>{t=E.value===!0?0:w.value,Oe(re.value*t)}):(_.isContainer.value===!0&&I.value===!0&&(S.value===!0||Math.abs(t)===w.value)&&(t+=re.value*_.scrollbarWidth.value),ae.value=t)}function ke(e){L.value=e}function Ae(e){let t=e===!0?`remove`:_.isContainer.value===!0?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function je(){y!==null&&clearTimeout(y),c.proxy&&c.proxy.$el&&c.proxy.$el.classList.add(`q-drawer--mini-animate`),ie.value=!0,y=setTimeout(()=>{y=null,ie.value=!1,c?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function z(e){if(E.value!==!1)return;let t=w.value,n=Ve(e.distance.x,0,t);if(e.isFinal===!0){n>=Math.min(75,t)?j():(_.animate(),ke(0),Oe(re.value*t)),R.value=!1;return}Oe((u.lang.rtl===!0?I.value!==!0:I.value)?Math.max(t-n,0):Math.min(0,n-t)),ke(Ve(n/t,0,1)),e.isFirst===!0&&(R.value=!0)}function Ne(e){if(E.value!==!0)return;let n=w.value,r=e.direction===t.side,i=(u.lang.rtl===!0?r!==!0:r)?Ve(e.distance.x,0,n):0;if(e.isFinal===!0){Math.abs(i)<Math.min(75,n)?(_.animate(),ke(1),Oe(0)):M(),R.value=!1;return}Oe(re.value*i),ke(Ve(1-i/n,0,1)),e.isFirst===!0&&(R.value=!0)}function Pe(){p(!1),Ae(!0)}function Fe(e,n){_.update(t.side,e,n)}function Ie(e,t){e.value!==t&&(e.value=t)}function Le(e,n){Fe(`size`,e===!0?t.miniWidth:n)}return _.instances[t.side]=te,Le(t.miniToOverlay,w.value),Fe(`space`,ue.value),Fe(`offset`,ce.value),t.showIfAbove===!0&&t.modelValue!==!0&&E.value===!0&&t[`onUpdate:modelValue`]!==void 0&&i(`update:modelValue`,!0),a(()=>{i(`onLayout`,ue.value),i(`miniState`,C.value),v=t.showIfAbove===!0;let r=()=>{(E.value===!0?k:A)(!1,!0)};if(_.totalWidth.value!==0){e(r);return}x=n(_.totalWidth,()=>{x(),x=void 0,E.value===!1&&t.showIfAbove===!0&&S.value===!1?j(!1):r()})}),b(()=>{x?.(),y!==null&&(clearTimeout(y),y=null),E.value===!0&&Pe(),_.instances[t.side]===te&&(_.instances[t.side]=void 0,Fe(`size`,0),Fe(`offset`,0),Fe(`space`,!1))}),()=>{let e=[];S.value===!0&&(t.noSwipeOpen===!1&&e.push(d(l(`div`,{key:`open`,class:`q-drawer__opener fixed-${t.side}`,"aria-hidden":`true`}),Ce.value)),e.push(ee(`div`,{ref:`backdrop`,class:pe.value,style:me.value,"aria-hidden":`true`,onClick:M},void 0,`backdrop`,t.noSwipeBackdrop!==!0&&E.value===!0,()=>Ee.value)));let n=C.value===!0&&r.mini!==void 0,i=[l(`div`,{...o,key:String(n),class:[ye.value,o.class]},n===!0?r.mini():ne(r.default))];return t.elevated===!0&&E.value===!0&&i.push(l(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),e.push(ee(`aside`,{ref:`content`,class:xe.value,style:ve.value},i,`contentclose`,t.noSwipeClose!==!0&&S.value===!0,()=>Te.value)),l(`div`,{class:`q-drawer-container`},e)}}}),nt=R({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=g(),i=O(Se,be);if(i===be)return console.error(`QPageContainer needs to be child of QLayout`),be;r(ye,!0);let a=T(()=>{let e={};return i.header.space===!0&&(e.paddingTop=`${i.header.size}px`),i.right.space===!0&&(e[`padding${n.lang.rtl===!0?`Left`:`Right`}`]=`${i.right.size}px`),i.footer.space===!0&&(e.paddingBottom=`${i.footer.size}px`),i.left.space===!0&&(e[`padding${n.lang.rtl===!0?`Right`:`Left`}`]=`${i.left.size}px`),e});return()=>l(`div`,{class:`q-page-container`,style:a.value},ne(t.default))}}),rt=R({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:t,emit:i}){let{proxy:{$q:a}}=g(),c=s(null),u=s(a.screen.height),d=s(e.container===!0?0:a.screen.width),p=s({position:0,direction:`down`,inflectionPoint:0}),m=s(0),h=s(ie.value===!0?0:ae()),_=T(()=>`q-layout q-layout--`+(e.container===!0?`containerized`:`standard`)),v=T(()=>e.container===!1?{minHeight:a.screen.height+`px`}:null),y=T(()=>h.value===0?null:{[a.lang.rtl===!0?`left`:`right`]:`${h.value}px`}),b=T(()=>h.value===0?null:{[a.lang.rtl===!0?`right`:`left`]:0,[a.lang.rtl===!0?`left`:`right`]:`-${h.value}px`,width:`calc(100% + ${h.value}px)`});function x(t){if(e.container===!0||document.qScrollPrevented!==!0){let n={position:t.position.top,direction:t.direction,directionChanged:t.directionChanged,inflectionPoint:t.inflectionPoint.top,delta:t.delta.top};p.value=n,e.onScroll!==void 0&&i(`scroll`,n)}}function S(t){let{height:n,width:r}=t,a=!1;u.value!==n&&(a=!0,u.value=n,e.onScrollHeight!==void 0&&i(`scrollHeight`,n),w()),d.value!==r&&(a=!0,d.value=r),a===!0&&e.onResize!==void 0&&i(`resize`,t)}function C({height:e}){m.value!==e&&(m.value=e,w())}function w(){if(e.container===!0){let e=u.value>m.value?ae():0;h.value!==e&&(h.value=e)}}let E=null,D={instances:{},view:T(()=>e.view),isContainer:T(()=>e.container),rootRef:c,height:u,containerHeight:m,scrollbarWidth:h,totalWidth:T(()=>d.value+h.value),rows:T(()=>{let t=e.view.toLowerCase().split(` `);return{top:t[0].split(``),middle:t[1].split(``),bottom:t[2].split(``)}}),header:f({size:0,offset:0,space:!1}),right:f({size:300,offset:0,space:!1}),footer:f({size:0,offset:0,space:!1}),left:f({size:300,offset:0,space:!1}),scroll:p,animate(){E===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(E),E=setTimeout(()=>{E=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){D[e][t]=n}};if(r(Se,D),ae()>0){let t=null,r=document.body;function i(){t=null,r.classList.remove(`hide-scrollbar`)}function s(){if(t===null){if(r.scrollHeight>a.screen.height)return;r.classList.add(`hide-scrollbar`)}else clearTimeout(t);t=setTimeout(i,300)}function c(e){t!==null&&e===`remove`&&(clearTimeout(t),i()),window[`${e}EventListener`](`resize`,s)}n(()=>e.container===!0?`remove`:`add`,c),e.container!==!0&&c(`add`),o(()=>{c(`remove`)})}return()=>{let n=ue(t.default,[l(ze,{onScroll:x}),l(Re,{onResize:S})]),r=l(`div`,{class:_.value,style:v.value,ref:e.container===!0?void 0:c,tabindex:-1},n);return e.container===!0?l(`div`,{class:`q-layout-container overflow-hidden`,ref:c},[l(Re,{onResize:C}),l(`div`,{class:`absolute-full`,style:y.value},[l(`div`,{class:`scroll`,style:b.value},[r])])]):r}}}),it={class:`acceptance-panel q-pa-md`},at={class:`row items-center q-mb-sm`},ot={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},st={key:0,class:`criterion-add-row row items-center q-mb-xs`},ct={key:1,class:`acceptance-list`},lt=[`onDblclick`],ut={key:2,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},dt=Pe(k({__name:`AcceptancePanel`,props:{tasks:{}},setup(n){let{t:r}=S(),a=xe(),o=ve();function c(){let e=a.selectedWorkspaceId;e&&Ze(e,o,a)}let l=s(!1),d=s(``),f=s(null),g=s(``),b=s({});function T(e,t){if(t){let n=t.$el??t;b.value[e]=n}else delete b.value[e]}function E(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function O(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}async function k(e){let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);a.selectedWorkspaceId&&a.fetchWorkspaceDetails(a.selectedWorkspaceId)}catch(e){console.error(`Failed to update task:`,e)}}function M(){l.value=!0,d.value=``}async function N(){let e=d.value.trim(),t=a.selectedWorkspace?.id;if(!(!e||!t))try{await a.createTask(t,e,!0),d.value=``,l.value=!1}catch{}}function ee(){d.value=``,l.value=!1}function P(t){f.value=t.id,g.value=t.title,e(()=>{let e=b.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function te(e){if(f.value!==e.id)return;let t=g.value.trim(),n=e.id;if(f.value=null,!t||t===e.title)return;let r=a.selectedWorkspace?.id;if(r)try{await a.updateTaskTitle(r,n,t)}catch{}}function ne(){f.value=null,g.value=``}async function I(e){let t=a.selectedWorkspace?.id;if(t)try{await a.deleteTask(t,e.id)}catch{}}return(e,r)=>(t(),x(`div`,it,[_(`div`,at,[_(`div`,ot,A(e.$t(`acceptance.title`)),1),p(Ne),w(a).selectedWorkspace?(t(),v(F,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:c},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):C(``,!0),w(a).selectedWorkspace?(t(),v(F,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:M},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1})):C(``,!0)]),l.value?(t(),x(`div`,st,[p(Ae,{modelValue:d.value,"onUpdate:modelValue":r[0]||=e=>d.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`acceptance.newCriterion`),class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[le(L(N,[`prevent`]),[`enter`]),le(L(ee,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):C(``,!0),n.tasks.length>0?(t(),x(`div`,ct,[(t(!0),x(h,null,i(n.tasks,n=>(t(),x(`div`,{key:n.id,class:`acceptance-item row items-center q-mb-xxs`},[p(j,{name:E(n.status),size:`16px`,style:D({color:O(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>k(n)},null,8,[`name`,`style`,`onClick`]),f.value===n.id?(t(),v(Ae,{key:0,ref_for:!0,ref:e=>T(n.id,e),modelValue:g.value,"onUpdate:modelValue":r[1]||=e=>g.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[le(L(e=>te(n),[`prevent`]),[`enter`]),le(L(ne,[`prevent`]),[`esc`])],onBlur:e=>te(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),x(h,{key:1},[_(`span`,{class:m([`col acceptance-title text-caption`,{"text-strike":n.status===`done`}]),style:D({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>P(n)},A(n.title),47,lt),p(F,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`criterion-delete-btn`,onClick:e=>I(n)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):l.value?C(``,!0):(t(),x(`div`,ut,A(e.$t(`acceptance.empty`)),1))]))}}),[[`__scopeId`,`data-v-63b144ad`]]),ft={class:`agent-todos-panel q-pa-md`},pt={class:`row items-center q-mb-sm`},mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ht={key:0,class:`todos-list`},gt={key:1,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},_t=Pe(k({__name:`AgentTodosPanel`,setup(e){let{t:n}=S(),r=xe();function a(e){switch(e){case`completed`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function o(e){switch(e){case`completed`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,n)=>(t(),x(`div`,ft,[_(`div`,pt,[_(`div`,mt,A(e.$t(`agentTodos.title`)),1)]),w(r).currentAgentTodos.length>0?(t(),x(`div`,ht,[(t(!0),x(h,null,i(w(r).currentAgentTodos,(e,n)=>(t(),x(`div`,{key:n,class:`todo-item row items-start q-py-xxs`},[p(j,{name:a(e.status),size:`14px`,style:D({color:o(e.status)}),class:`q-mr-xs q-mt-xxs`},null,8,[`name`,`style`]),_(`span`,{class:m([`col todo-title text-caption`,{"text-strike":e.status===`completed`}]),style:D({color:e.status===`completed`?`#4ade80`:`#ccc`})},A(e.content),7)]))),128))])):(t(),x(`div`,gt,A(e.$t(`agentTodos.empty`)),1))]))}}),[[`__scopeId`,`data-v-4eddf754`]]),vt={class:`log-text rounded-borders q-pa-md`},yt=Pe(k({__name:`DevServerLogDialog`,props:{modelValue:{type:Boolean},workspaceId:{}},emits:[`update:modelValue`],setup(r){let i=r,a=he(),c=s(``),l=s(!1),d=s(null),f=null;async function m(){if(i.workspaceId){l.value=!0;try{c.value=await a.fetchLogs(i.workspaceId),await e(),h()}finally{l.value=!1}}}function h(){d.value&&(d.value.scrollTop=d.value.scrollHeight)}function g(){b(),f=setInterval(()=>{m()},5e3)}function b(){f&&=(clearInterval(f),null)}return n(()=>i.modelValue,e=>{e?(m(),g()):b()}),o(()=>{b()}),(e,n)=>(t(),v(Ee,{"model-value":r.modelValue,"onUpdate:modelValue":n[1]||=t=>e.$emit(`update:modelValue`,t)},{default:u(()=>[p(De,{class:`text-grey-3`,style:{"min-width":`700px`,"max-width":`900px`,"max-height":`80vh`,background:`#1e1e3a`}},{default:u(()=>[p(ke,{class:`row items-center`},{default:u(()=>[n[2]||=_(`div`,{class:`text-h6`},`Logs Dev Server`,-1),p(Ne),p(F,{flat:``,round:``,dense:``,icon:`refresh`,color:`grey-5`,onClick:m,loading:l.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.refreshLogs`)),1)]),_:1})]),_:1},8,[`loading`]),p(F,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,onClick:n[0]||=t=>e.$emit(`update:modelValue`,!1)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.closeDialog`)),1)]),_:1})]),_:1})]),_:1}),p(fe,{dark:``}),p(ke,{class:`log-content`,ref_key:`logContainer`,ref:d},{default:u(()=>[_(`pre`,vt,A(c.value||`No logs available`),1)]),_:1},512)]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-9e03d2b2`]]),bt={class:`dd-panel q-px-md q-py-sm`},xt={class:`text-caption text-uppercase text-weight-bold text-grey-5 q-mb-xs`},St={key:0,class:`text-caption text-grey-8`},Ct={key:1,class:`text-caption text-grey-8`},wt={class:`row items-center q-mb-xs`},Tt={key:0,class:`text-caption q-mb-xs`},Et=[`href`],Dt={key:1,class:`text-caption text-grey-7`,style:{"font-size":`10px`}},Ot={key:2,class:`text-caption text-red-5`},kt=Pe(k({__name:`DevServerPanel`,props:{workspace:{}},setup(e){let r=e,{t:i}=S(),l=he(),d=me(),f=s(!1),m=s(!1),g=s(!1),b=null,w=T(()=>r.workspace?.id??``),E=T(()=>r.workspace?!!d.getProjectByPath(r.workspace.projectPath)?.devServer?.startCommand:!1),D=T(()=>w.value?l.getStatus(w.value):null),O=T(()=>{switch(D.value?.status){case`running`:return`green-9`;case`starting`:case`stopping`:return`orange-9`;case`error`:return`red-9`;default:return`grey-8`}}),k=T(()=>{switch(D.value?.status){case`running`:return i(`devServer.running`);case`starting`:return i(`devServer.starting`);case`stopping`:return i(`devServer.stopping`);case`error`:return i(`devServer.error`);case`stopped`:return i(`devServer.stopped`);default:return i(`devServer.unknown`)}}),j=T(()=>{let e=D.value?.status;return!e||e===`stopped`||e===`unknown`||e===`error`}),M=T(()=>{let e=D.value?.status;return e===`running`||e===`starting`});async function N(){if(w.value){m.value=!0;try{await l.startDevServer(w.value)}finally{m.value=!1}}}async function ee(){if(w.value){g.value=!0;try{await l.stopDevServer(w.value)}finally{g.value=!1}}}function P(){w.value&&E.value&&l.fetchStatus(w.value)}function te(){ne(),b=setInterval(()=>{P()},3e4)}function ne(){b&&=(clearInterval(b),null)}return n(w,()=>{P(),te()}),a(()=>{P(),te()}),o(()=>{ne()}),(n,r)=>{let i=c(`router-link`);return t(),x(`div`,bt,[_(`div`,xt,A(n.$t(`devServer.title`)),1),e.workspace?E.value?D.value?(t(),x(h,{key:2},[_(`div`,wt,[p(Le,{color:O.value,label:k.value,style:{"font-size":`10px`}},null,8,[`color`,`label`]),p(Ne),j.value?(t(),v(F,{key:0,flat:``,round:``,dense:``,icon:`play_arrow`,size:`xs`,color:`green-5`,onClick:N,loading:m.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.startDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),M.value?(t(),v(F,{key:1,flat:``,round:``,dense:``,icon:`stop`,size:`xs`,color:`red-5`,onClick:ee,loading:g.value},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.stopDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),p(F,{flat:``,round:``,dense:``,icon:`article`,size:`xs`,color:`grey-5`,onClick:r[0]||=e=>f.value=!0},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`devServer.logs`)),1)]),_:1})]),_:1})]),D.value.status===`running`&&D.value.url?(t(),x(`div`,Tt,[_(`a`,{href:D.value.url,target:`_blank`,style:{color:`#6c63ff`}},A(D.value.url),9,Et)])):C(``,!0),D.value.containers.length>0?(t(),x(`div`,Dt,A(n.$t(`devServer.containers`,{count:D.value.containers.length},D.value.containers.length)),1)):C(``,!0),D.value.error?(t(),x(`div`,Ot,A(D.value.error),1)):C(``,!0)],64)):C(``,!0):(t(),x(`div`,Ct,[y(A(n.$t(`devServer.notConfigured`))+` `,1),p(i,{to:`/settings`,style:{color:`#6c63ff`}},{default:u(()=>[y(A(n.$t(`devServer.goToSettings`)),1)]),_:1})])):(t(),x(`div`,St,A(n.$t(`devServer.noWorkspace`)),1)),w.value?(t(),v(yt,{key:3,modelValue:f.value,"onUpdate:modelValue":r[1]||=e=>f.value=e,"workspace-id":w.value},null,8,[`modelValue`,`workspace-id`])):C(``,!0)])}}}),[[`__scopeId`,`data-v-20c5f4bd`]]),At={class:`git-panel q-pa-md`},jt={class:`row items-center justify-between q-mb-sm`},Mt={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Nt={class:`row items-center q-mb-sm`},Pt={class:`text-caption text-grey-3`},Ft={class:`row items-center q-mb-sm`},It={class:`text-caption text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Lt={class:`text-caption q-mb-sm text-grey-8`,style:{"font-size":`11px`}},Rt={key:0},zt={key:1,style:{color:`#4ade80`}},Bt={key:2,style:{color:`#f59e0b`}},Vt={class:`row items-center q-mb-xs`},Ht={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Ut={key:0,class:`row items-center q-mb-md`},Wt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Gt={key:0,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#4ade80`}},Kt={key:1,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#f87171`}},qt={key:1,class:`q-mb-xs`},Jt={key:2,class:`row items-center q-gutter-xs q-mb-md`,style:{"font-size":`11px`}},Yt={key:0,class:`text-caption`,style:{color:`#4ade80`}},Xt={key:1,class:`text-caption`,style:{color:`#f59e0b`}},Zt={key:2,class:`text-caption text-grey-6`},Qt={key:3,class:`q-mb-md`},$t={class:`row q-gutter-xs`},en={key:1,class:`text-caption text-grey-8`},tn=Pe(k({__name:`GitPanel`,props:{workspace:{}},setup(e){let r=E(()=>Ce(()=>import(`./DiffViewer-CrQVq67p.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),i=e,{t:a}=S(),c=qe(),l=xe(),d=me(),f=s(!1),m=s(!1),g=s(!1),b=s(!1),D=s(!1),O=s(!1),k=s(!1),M=T(()=>!!d.global.editorCommand);async function N(){if(i.workspace){k.value=!0;try{let e=await fetch(`/api/workspaces/${i.workspace.id}/open-editor`,{method:`POST`});if(!e.ok){let t=await e.json();c.notify({type:`negative`,message:t.error??a(`git.openEditorFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:a(`git.openEditorFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{k.value=!1}}}function ee(e){l.chatDraft=e,O.value=!1}let P=s(null),te=s(!1),ne=T(()=>{if(!i.workspace?.projectPath)return`-`;let e=i.workspace.projectPath.replace(/\\/g,`/`).split(`/`);return e[e.length-1]||e[e.length-2]||`-`}),I=T(()=>!(!P.value||P.value.unpushedCount===-1)),re=T(()=>P.value&&P.value.unpushedCount===-1?a(`git.createPrNoRemote`):``);async function L(){if(!i.workspace){P.value=null;return}te.value=!0;try{P.value=await l.fetchGitStats(i.workspace.id)}catch{P.value=null}finally{te.value=!1}}n(()=>i.workspace?.id,()=>L(),{immediate:!0});let R=null;n(()=>l.gitRefreshTrigger,()=>{R&&clearTimeout(R),R=setTimeout(()=>L(),3e3)}),o(()=>{R&&clearTimeout(R)});function ie(){i.workspace&&c.dialog({title:a(`git.rebaseConfirmTitle`),message:a(`git.rebaseConfirmMessage`,{branch:i.workspace.sourceBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.rebase`),color:`orange-4`}}).onOk(async()=>{g.value=!0;try{let e=await fetch(`/api/workspaces/${i.workspace.id}/rebase`,{method:`POST`});if(!e.ok){let t=await e.json();throw Error(t.error??`Rebase failed`)}c.notify({type:`positive`,message:a(`git.rebaseSuccess`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:a(`git.rebaseFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{g.value=!1}})}function ae(){i.workspace&&c.dialog({title:a(`git.pushConfirmTitle`),message:a(`git.pushConfirmMessage`,{branch:i.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.push`),color:`grey-5`}}).onOk(async()=>{f.value=!0;try{await l.pushBranch(i.workspace.id),c.notify({type:`positive`,message:a(`git.branchPushed`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:`Push failed`;c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{f.value=!1}})}function oe(){i.workspace&&c.dialog({title:a(`git.pullConfirmTitle`),message:a(`git.pullConfirmMessage`,{branch:i.workspace.workingBranch}),dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`git.pull`),color:`grey-5`}}).onOk(async()=>{m.value=!0;try{await l.pullBranch(i.workspace.id),c.notify({type:`positive`,message:a(`git.branchPulled`),position:`top`}),L()}catch(e){console.error(`[GitPanel] pullBranch failed:`,e);let t=e instanceof Error?e.message:a(`git.pullFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{m.value=!1}})}function se(){P.value?.prUrl&&window.open(P.value.prUrl,`_blank`)}function ce(){i.workspace&&c.dialog({title:a(`git.changePrBaseTitle`),message:a(`git.changePrBaseMessage`),prompt:{model:i.workspace.sourceBranch,type:`text`},dark:!0,cancel:{flat:!0,label:a(`common.cancel`),color:`grey-5`},ok:{flat:!0,label:a(`common.save`),color:`primary`}}).onOk(async e=>{if(!(!e.trim()||!i.workspace)){D.value=!0;try{let t=await fetch(`/api/workspaces/${i.workspace.id}/change-pr-base`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({base:e.trim()})});if(!t.ok){let e=await t.json();throw Error(e.error??`Failed`)}c.notify({type:`positive`,message:a(`git.changePrBaseSuccess`),position:`top`}),L()}catch(e){let t=e instanceof Error?e.message:a(`git.changePrBaseFailed`);c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{D.value=!1}}})}async function le(){if(i.workspace){b.value=!0;try{let e=await l.openPullRequest(i.workspace.id);c.notify({type:`positive`,message:a(`git.prCreated`,{n:e.prNumber}),caption:e.prUrl,position:`top`,timeout:5e3}),L()}catch(e){if(e instanceof _e&&e.code===`branch_not_pushed`){c.notify({type:`warning`,message:a(`git.pushFirst`),position:`top`,timeout:6e3});return}if(e instanceof _e&&e.code===`unpushed_commits`){c.notify({type:`warning`,message:a(`git.unpushedCommits`),position:`top`,timeout:6e3});return}let t=e instanceof Error?e.message:`Open PR failed`;c.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{b.value=!1}}}return(n,i)=>(t(),x(`div`,At,[_(`div`,jt,[_(`div`,Mt,A(n.$t(`git.title`)),1),e.workspace?(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:te.value,onClick:L},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.refreshGitStats`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0)]),e.workspace?(t(),x(h,{key:0},[_(`div`,Nt,[p(j,{name:`folder`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Pt,A(ne.value),1)]),_(`div`,Ft,[i[3]||=_(`span`,{style:{width:`8px`,height:`8px`,"border-radius":`50%`,"background-color":`#4ade80`,display:`inline-block`},class:`q-mr-xs`},null,-1),_(`span`,It,A(e.workspace.workingBranch),1)]),_(`div`,Lt,[y(A(n.$t(`git.from`))+` `+A(e.workspace.sourceBranch)+` `,1),P.value?(t(),x(h,{key:0},[i[4]||=y(` · `,-1),P.value.unpushedCount===-1?(t(),x(`span`,Rt,A(n.$t(`git.localOnly`)),1)):P.value.unpushedCount===0?(t(),x(`span`,zt,A(n.$t(`git.pushed`)),1)):(t(),x(`span`,Bt,A(n.$t(`git.unpushed`,{count:P.value.unpushedCount})),1))],64)):C(``,!0)]),P.value?(t(),x(h,{key:0},[_(`div`,Vt,[p(j,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Ht,A(n.$t(`git.commits`,{count:P.value.commitCount},P.value.commitCount)),1)]),P.value.filesChanged>0?(t(),x(`div`,Ut,[p(j,{name:`insert_drive_file`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),_(`span`,Wt,A(n.$t(`git.files`,{count:P.value.filesChanged},P.value.filesChanged)),1),P.value.insertions>0?(t(),x(`span`,Gt,` +`+A(P.value.insertions),1)):C(``,!0),P.value.deletions>0?(t(),x(`span`,Kt,` -`+A(P.value.deletions),1)):C(``,!0)])):(t(),x(`div`,qt)),P.value.workingTree&&(P.value.workingTree.staged>0||P.value.workingTree.modified>0||P.value.workingTree.untracked>0)?(t(),x(`div`,Jt,[p(j,{name:`edit_note`,size:`14px`,color:`grey-6`}),P.value.workingTree.staged>0?(t(),x(`span`,Yt,A(n.$t(`git.staged`,{count:P.value.workingTree.staged})),1)):C(``,!0),P.value.workingTree.modified>0?(t(),x(`span`,Xt,A(n.$t(`git.modified`,{count:P.value.workingTree.modified})),1)):C(``,!0),P.value.workingTree.untracked>0?(t(),x(`span`,Zt,A(n.$t(`git.untracked`,{count:P.value.workingTree.untracked})),1)):C(``,!0)])):(t(),x(`div`,Qt))],64)):C(``,!0),_(`div`,$t,[P.value?.prUrl?(t(),v(F,{key:0,dense:``,"no-caps":``,size:`sm`,outline:``,color:`green-4`,label:n.$t(`git.viewPr`),icon:`open_in_new`,class:`git-btn`,onClick:se},null,8,[`label`])):C(``,!0),P.value?.prUrl&&P.value.prState===`OPEN`?(t(),v(F,{key:1,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`swap_horiz`,loading:D.value,class:`git-btn`,onClick:ce},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`git.changePrBase`)),1)]),_:1})]),_:1},8,[`loading`])):C(``,!0),!P.value?.prUrl||P.value.prState===`CLOSED`||P.value.prState===`MERGED`?(t(),v(F,{key:2,dense:``,"no-caps":``,size:`sm`,color:`primary`,label:n.$t(`git.createPr`),class:`git-btn`,loading:b.value,disable:!e.workspace||f.value||!I.value,onClick:le},{default:u(()=>[!I.value&&re.value?(t(),v(z,{key:0},{default:u(()=>[y(A(re.value),1)]),_:1})):C(``,!0)]),_:1},8,[`label`,`loading`,`disable`])):C(``,!0),!P.value||P.value.unpushedCount!==0?(t(),v(F,{key:3,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,label:n.$t(`git.push`),class:`git-btn`,loading:f.value,disable:!e.workspace||b.value||m.value||g.value,onClick:ae},null,8,[`label`,`loading`,`disable`])):C(``,!0),P.value&&P.value.unpushedCount!==-1?(t(),v(F,{key:4,dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,icon:`download`,label:n.$t(`git.pull`),class:`git-btn`,loading:m.value,disable:!e.workspace||f.value||g.value,onClick:oe},null,8,[`label`,`loading`,`disable`])):C(``,!0),p(F,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`orange-4`,label:n.$t(`git.rebase`),class:`git-btn`,loading:g.value,disable:!e.workspace||f.value||m.value,onClick:ie},null,8,[`label`,`loading`,`disable`]),p(F,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,label:n.$t(`git.diff`),icon:`difference`,class:`git-btn`,disable:!e.workspace,onClick:i[0]||=e=>O.value=!0},null,8,[`label`,`disable`]),M.value?(t(),v(F,{key:5,dense:``,"no-caps":``,size:`sm`,outline:``,color:`indigo-4`,icon:`open_in_new`,label:n.$t(`git.openEditor`),loading:k.value,disable:!e.workspace,class:`git-btn`,onClick:N},null,8,[`label`,`loading`,`disable`])):C(``,!0)])],64)):(t(),x(`div`,en,A(n.$t(`common.selectWorkspace`)),1)),p(Ee,{modelValue:O.value,"onUpdate:modelValue":i[2]||=e=>O.value=e,maximized:``},{default:u(()=>[e.workspace?(t(),v(w(r),{key:0,"workspace-id":e.workspace.id,onClose:i[1]||=e=>O.value=!1,onSendToChat:ee},null,8,[`workspace-id`])):C(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-0e9ea4fb`]]),nn={xs:2,sm:4,md:6,lg:10,xl:14};function rn(e,t,n){return{transform:t===!0?`translateX(${n.lang.rtl===!0?`-`:``}100%) scale3d(${-e},1,1)`:`scale3d(${e},1,1)`}}var an=R({name:`QLinearProgress`,props:{...pe,...I,value:{type:Number,default:0},buffer:Number,color:String,trackColor:String,reverse:Boolean,stripe:Boolean,indeterminate:Boolean,query:Boolean,rounded:Boolean,animationSpeed:{type:[String,Number],default:2100},instantFeedback:Boolean},setup(e,{slots:t}){let{proxy:n}=g(),r=de(e,n.$q),i=te(e,nn),a=T(()=>e.indeterminate===!0||e.query===!0),o=T(()=>e.reverse!==e.query),s=T(()=>({...i.value===null?{}:i.value,"--q-linear-progress-speed":`${e.animationSpeed}ms`})),c=T(()=>`q-linear-progress`+(e.color===void 0?``:` text-${e.color}`)+(e.reverse===!0||e.query===!0?` q-linear-progress--reverse`:``)+(e.rounded===!0?` rounded-borders`:``)),u=T(()=>rn(e.buffer===void 0?1:e.buffer,o.value,n.$q)),d=T(()=>`with${e.instantFeedback===!0?`out`:``}-transition`),f=T(()=>`q-linear-progress__track absolute-full q-linear-progress__track--${d.value} q-linear-progress__track--${r.value===!0?`dark`:`light`}`+(e.trackColor===void 0?``:` bg-${e.trackColor}`)),p=T(()=>rn(a.value===!0?1:e.value,o.value,n.$q)),m=T(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${d.value} q-linear-progress__model--${a.value===!0?`in`:``}determinate`),h=T(()=>({width:`${e.value*100}%`})),_=T(()=>`q-linear-progress__stripe absolute-${e.reverse===!0?`right`:`left`} q-linear-progress__stripe--${d.value}`);return()=>{let n=[l(`div`,{class:f.value,style:u.value}),l(`div`,{class:m.value,style:p.value})];return e.stripe===!0&&a.value===!1&&n.push(l(`div`,{class:_.value,style:h.value})),l(`div`,{class:c.value,style:s.value,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":e.indeterminate===!0?void 0:e.value},ue(t.default,n))}}}),on={class:`notion-panel q-pa-md`},sn={class:`row items-center q-mb-sm`},cn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},ln={key:0,class:`q-mb-sm`},un=[`href`],dn={key:1,class:`text-caption q-mb-sm text-grey-8`},fn={key:3,class:`q-mb-sm`},pn={class:`text-caption text-grey-7`,style:{"font-size":`11px`}},mn={key:4,class:`text-caption text-grey-8 q-mb-sm`,style:{"font-size":`11px`}},hn={key:5,class:`task-add-row row items-center q-mb-xs`},gn={key:6,class:`tasks-list`},_n=[`onDblclick`],vn={key:1,class:`text-caption text-grey-8`},yn=Pe(k({__name:`NotionPanel`,props:{workspace:{},tasks:{}},setup(n){let r=n,{t:a}=S(),o=xe(),c=ve(),l=s(!1);function d(){r.workspace?.id&&Ze(r.workspace.id,c,o)}let f=T(()=>r.tasks.filter(e=>!e.isAcceptanceCriterion)),g=T(()=>f.value.filter(e=>e.status===`done`).length),b=T(()=>f.value.length),w=T(()=>b.value>0?g.value/b.value:0),E=s(!1),O=s(``),k=s(null),M=s(``),N=s({});function ee(e,t){if(t){let n=t.$el??t;N.value[e]=n}else delete N.value[e]}async function P(){if(!(!r.workspace?.id||!r.workspace.notionUrl)){l.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/refresh-notion`,{method:`POST`});if(!e.ok)throw Error(`HTTP ${e.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to refresh from Notion:`,e)}finally{l.value=!1}}}function te(){E.value=!0,O.value=``}async function ne(){let e=O.value.trim();if(!(!e||!r.workspace?.id))try{await o.createTask(r.workspace.id,e,!1),O.value=``,E.value=!1}catch{}}function I(){O.value=``,E.value=!1}function re(t){k.value=t.id,M.value=t.title,e(()=>{let e=N.value[t.id]?.querySelector(`input, textarea`);e?.focus(),e?.select()})}async function R(e){if(k.value!==e.id)return;let t=M.value.trim(),n=e.id;if(k.value=null,!(!t||t===e.title)&&r.workspace?.id)try{await o.updateTaskTitle(r.workspace.id,n,t)}catch{}}function ie(){k.value=null,M.value=``}async function ae(e){if(r.workspace?.id)try{await o.deleteTask(r.workspace.id,e.id)}catch{}}async function oe(e){if(!r.workspace?.id)return;let t=e.status===`done`?`pending`:`done`;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);o.fetchWorkspaceDetails(r.workspace.id)}catch(e){console.error(`Failed to toggle task:`,e)}}function se(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function ce(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(e,r)=>(t(),x(`div`,on,[_(`div`,sn,[_(`div`,cn,A(e.$t(`notion.title`)),1),p(Ne),n.workspace?(t(),v(F,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`grey-5`,onClick:d},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):C(``,!0),n.workspace?(t(),v(F,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,onClick:te},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.addNotionTask`)),1)]),_:1})]),_:1})):C(``,!0)]),n.workspace?(t(),x(h,{key:0},[n.workspace.notionUrl?(t(),x(`div`,ln,[_(`a`,{href:n.workspace.notionUrl,target:`_blank`,rel:`noopener noreferrer`,class:`notion-link text-caption items-center text-blue-4`},[p(j,{name:`open_in_new`,size:`12px`,class:`q-mr-xs`}),y(` `+A(e.$t(`notion.openInNotion`)),1)],8,un)])):(t(),x(`div`,dn,A(e.$t(`notion.noUrl`)),1)),n.workspace.notionUrl?(t(),v(F,{key:2,flat:``,dense:``,"no-caps":``,size:`xs`,icon:`refresh`,label:e.$t(`common.refresh`),color:`grey-6`,class:`q-mb-sm`,loading:l.value,onClick:P},null,8,[`label`,`loading`])):C(``,!0),b.value>0?(t(),x(`div`,fn,[p(an,{value:w.value,color:`primary`,"track-color":`grey-9`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),_(`div`,pn,A(e.$t(`notion.subtasks`,{done:g.value,total:b.value})),1)])):E.value?C(``,!0):(t(),x(`div`,mn,A(e.$t(`notion.noTasks`)),1)),E.value?(t(),x(`div`,hn,[p(Ae,{modelValue:O.value,"onUpdate:modelValue":r[0]||=e=>O.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:e.$t(`notion.newTask`),class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[le(L(ne,[`prevent`]),[`enter`]),le(L(I,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):C(``,!0),f.value.length>0?(t(),x(`div`,gn,[(t(!0),x(h,null,i(f.value,n=>(t(),x(`div`,{key:n.id,class:`task-item row items-center q-py-xxs`},[p(j,{name:se(n.status),size:`14px`,style:D({color:ce(n.status)}),class:`q-mr-xs cursor-pointer`,onClick:e=>oe(n)},null,8,[`name`,`style`,`onClick`]),k.value===n.id?(t(),v(Ae,{key:0,ref_for:!0,ref:e=>ee(n.id,e),modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[le(L(e=>R(n),[`prevent`]),[`enter`]),le(L(ie,[`prevent`]),[`esc`])],onBlur:e=>R(n)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(t(),x(h,{key:1},[_(`span`,{class:m([`col task-title text-caption`,{"text-strike":n.status===`done`}]),style:D({color:n.status===`done`?`#4ade80`:`#ccc`}),onDblclick:e=>re(n)},A(n.title),47,_n),p(F,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`task-delete-btn`,onClick:e=>ae(n)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(e.$t(`tooltip.removeNotionTask`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):C(``,!0)],64)):(t(),x(`div`,vn,A(e.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-99e38dbd`]]),bn={class:`plans-panel q-pa-md`},xn={class:`row items-center justify-between q-mb-sm`},Sn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Cn={key:0,class:`text-caption text-grey-8`},wn={key:1,class:`text-center q-py-lg`},Tn={key:2,class:`text-caption text-grey-8 text-center q-py-lg`},En={key:0,class:`text-center q-py-lg`},Dn=[`innerHTML`],On=Pe(k({__name:`PlansPanel`,props:{workspace:{}},setup(e){let r=e,{t:a}=S(),o=qe(),{timeAgo:c}=Qe(),l=s([]),f=s(!1),m=s(null),g=s(!1);async function b(){if(!r.workspace){l.value=[];return}f.value=!0;try{let e=await fetch(`/api/workspaces/${r.workspace.id}/plans`);if(!e.ok)throw Error(`HTTP ${e.status}`);l.value=(await e.json()).plans}catch(e){console.error(`[PlansPanel] fetchPlans failed:`,e),l.value=[]}finally{f.value=!1}}async function C(e){g.value=!0;try{let t=await fetch(`/api/workspaces/${r.workspace.id}/plan-file?path=${encodeURIComponent(e.path)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();m.value={path:n.path,content:n.content,name:e.name}}catch(e){console.error(`[PlansPanel] openPlan failed:`,e),o.notify({type:`negative`,message:a(`plans.loadFailed`),position:`top`})}finally{g.value=!1}}function E(){m.value=null}let D=T(()=>{if(!m.value)return``;let e=Ie.parse(m.value.content,{async:!1,breaks:!0,gfm:!0});return Fe.sanitize(e)});return n(()=>r.workspace?.id,()=>{m.value=null,b()},{immediate:!0}),(n,r)=>(t(),x(`div`,bn,[_(`div`,xn,[_(`div`,Sn,A(n.$t(`plans.title`)),1),m.value?(t(),v(F,{key:1,flat:``,dense:``,"no-caps":``,size:`sm`,icon:`arrow_back`,label:n.$t(`plans.back`),color:`grey-5`,onClick:E},null,8,[`label`])):(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:f.value,onClick:b},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`plans.refresh`)),1)]),_:1})]),_:1},8,[`loading`]))]),m.value?(t(),x(h,{key:1},[g.value?(t(),x(`div`,En,[p(N,{size:`24px`,color:`grey-6`})])):(t(),x(`div`,{key:1,class:`plan-content`,innerHTML:D.value},null,8,Dn))],64)):(t(),x(h,{key:0},[e.workspace?f.value?(t(),x(`div`,wn,[p(N,{size:`24px`,color:`grey-6`})])):l.value.length===0?(t(),x(`div`,Tn,A(n.$t(`plans.empty`)),1)):(t(),v(Ke,{key:3,dense:``,dark:``},{default:u(()=>[(t(!0),x(h,null,i(l.value,e=>d((t(),v(Je,{key:e.path,clickable:``,dense:``,onClick:t=>C(e)},{default:u(()=>[p(B,{avatar:``,style:{"min-width":`28px`}},{default:u(()=>[p(j,{name:`description`,size:`14px`,color:`grey-6`})]),_:1}),p(B,null,{default:u(()=>[p(Ye,{class:`text-grey-3 ellipsis`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},{default:u(()=>[y(A(e.name),1)]),_:2},1024),p(Ye,{caption:``,style:{"font-size":`10px`}},{default:u(()=>[y(A(w(c)(e.modifiedAt)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`onClick`])),[[M]])),128))]),_:1})):(t(),x(`div`,Cn,A(n.$t(`common.selectWorkspace`)),1))],64))]))}}),[[`__scopeId`,`data-v-442c2eef`]]),kn={class:`stats-panel q-pa-md`},An={class:`row items-center q-mb-md`},jn={class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},Mn={class:`stat-group-label q-mb-xs`},Nn={class:`stat-row`},Pn={class:`stat-label`},Fn={class:`stat-value`},In={class:`stat-row`},Ln={class:`stat-label`},Rn={class:`stat-value`},zn={key:0,class:`stat-row`},Bn={class:`stat-label`},Vn={class:`stat-value stat-value-ellipsis`},Hn={class:`stat-row`},Un={class:`stat-label`},Wn={class:`stat-value`},Gn={class:`stat-row`},Kn={class:`stat-label`},qn={class:`stat-value`},Jn={class:`stat-group-label q-mb-xs`},Yn={class:`stat-row`},Xn={class:`stat-label`},Zn={class:`stat-value`},Qn={key:1,class:`stat-row`},$n={class:`stat-label`},er={class:`stat-value`},tr={key:2,class:`stat-row`},nr={class:`stat-label`},rr={class:`stat-value`},ir={key:3,class:`stat-row`},ar={class:`stat-label`},or={class:`stat-value`},sr={key:4,class:`stat-row`},cr={class:`stat-label`},lr={class:`stat-value`},ur={class:`stat-group-label q-mb-xs`},dr={class:`stat-row`},fr={class:`stat-label`},pr={class:`stat-value`},mr={class:`stat-row`},hr={class:`stat-label`},gr={class:`stat-value`},_r={class:`stat-row`},vr={class:`stat-label`},yr={class:`stat-value`},br={key:5,class:`stat-row`},xr={class:`stat-label text-red-4`},Sr={class:`stat-value text-red-4`},Cr={key:6},wr={class:`stat-group-label q-mb-xs`},Tr={class:`stat-row`},Er={class:`stat-label`},Dr={class:`stat-value`},Or={class:`stat-row`},kr={class:`stat-label`},Ar={class:`stat-value`},jr={class:`stat-row`},Mr={class:`stat-label`},Nr={class:`stat-value`},Pr={key:0,class:`stat-row`},Fr={class:`stat-label`},Ir={class:`stat-value`},Lr={key:7},Rr={class:`stat-group-label q-mb-xs`},zr={class:`stat-row`},Br={class:`stat-label`},Vr={class:`stat-value`},Hr={key:0,class:`stat-row`},Ur={class:`stat-label`},Wr={class:`stat-value`},Gr={key:1,class:`stat-row`},Kr={class:`stat-label`},qr={class:`stat-value`},Jr={key:8},Yr={class:`stat-group-label q-mb-xs`},Xr={key:0,class:`q-mb-xs`},Zr={class:`stat-row q-mb-xxs`},Qr={class:`stat-label`},$r={class:`stat-value`},ei={key:1},ti={class:`stat-row q-mb-xxs`},ni={class:`stat-label`},ri={class:`stat-value`},ii={key:1,class:`text-caption text-grey-8`},ai=Pe(k({__name:`StatsPanel`,props:{workspace:{}},setup(e){let{t:n}=S(),r=xe(),{timeAgo:i}=Qe(),a=T(()=>{let e=r.selectedWorkspaceId;if(!e)return null;let t=r.activityFeeds[e]??[],n=r.sessions,i=Object.values(r.subagents[e]??{}),a=r.tasks,o=r.selectedWorkspace,s=r.activityCounts[e]??{toolUses:0,agentMessages:0,userMessages:0,errors:0},c=s.toolUses,l=s.agentMessages,u=s.userMessages,d=s.errors,f=n.length,p=n.filter(e=>e.status===`completed`).length,m=i.length,h=i.filter(e=>e.status===`done`).length,g=i.reduce((e,t)=>e+(t.totalTokens??0),0),_=i.reduce((e,t)=>e+(t.toolUses??0),0),v=a.filter(e=>!e.isAcceptanceCriterion).length,y=a.filter(e=>!e.isAcceptanceCriterion&&e.status===`done`).length,b=a.filter(e=>e.isAcceptanceCriterion).length,x=a.filter(e=>e.isAcceptanceCriterion&&e.status===`done`).length,S=o?.createdAt?new Date(o.createdAt):null,C=o?.updatedAt?new Date(o.updatedAt):null,w=S?Date.now()-S.getTime():0,T=null,E=null;for(let e=t.length-1;e>=0;e--){let n=t[e];if(!T&&n.meta?.sender===`user`&&(T=new Date(n.timestamp)),!E&&n.type===`text`&&n.meta?.sender!==`user`&&n.meta?.sender!==`system-prompt`&&(E=new Date(n.timestamp)),T&&E)break}let D=n.length>0?new Date(n[n.length-1].startedAt):null,O=r.usageStats[e]??{inputTokens:0,outputTokens:0,costUsd:0,sessionCount:0},k=o?.model??`auto`,A=o?.workingBranch??``,j=o?.status??``;return{toolUses:c,agentMessages:l,userMessages:u,errors:d,totalSessions:f,completedSessions:p,totalSubagents:m,doneSubagents:h,totalSubagentTokens:g,totalSubagentTools:_,totalTasks:v,doneTasks:y,totalCriteria:b,doneCriteria:x,durationMs:w,createdAt:S,updatedAt:C,lastPromptAt:T,lastAgentResponseAt:E,firstSessionAt:D,model:k,branch:A,status:j,usage:O}});function o(e){let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return n<24?`${n}h ${r}m`:`${Math.floor(n/24)}d ${n%24}h`}function s(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function c(e){return e.toLocaleDateString(void 0,{day:`2-digit`,month:`2-digit`,year:`numeric`})}function l(e){return e.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function d(e){return`${c(e)} ${l(e)}`}return(n,c)=>(t(),x(`div`,kn,[_(`div`,An,[_(`div`,jn,A(n.$t(`stats.title`)),1),p(Ne),e.workspace?(t(),v(F,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,onClick:c[0]||=t=>w(r).fetchWorkspaceDetails(e.workspace.id)},{default:u(()=>[p(z,null,{default:u(()=>[y(A(n.$t(`tooltip.refreshStats`)),1)]),_:1})]),_:1})):C(``,!0)]),e.workspace&&a.value?(t(),x(h,{key:0},[_(`div`,Mn,A(n.$t(`stats.info`)),1),_(`div`,Nn,[_(`span`,Pn,A(n.$t(`stats.status`)),1),_(`span`,Fn,A(a.value.status),1)]),_(`div`,In,[_(`span`,Ln,A(n.$t(`stats.model`)),1),_(`span`,Rn,A(a.value.model),1)]),a.value.branch?(t(),x(`div`,zn,[_(`span`,Bn,A(n.$t(`stats.branch`)),1),_(`span`,Vn,A(a.value.branch),1)])):C(``,!0),_(`div`,Hn,[_(`span`,Un,A(n.$t(`stats.sessions`)),1),_(`span`,Wn,A(a.value.completedSessions)+` / `+A(a.value.totalSessions),1)]),_(`div`,Gn,[_(`span`,Kn,A(n.$t(`stats.duration`)),1),_(`span`,qn,A(o(a.value.durationMs)),1)]),p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Jn,A(n.$t(`stats.timeline`)),1),_(`div`,Yn,[_(`span`,Xn,A(n.$t(`stats.created`)),1),_(`span`,Zn,A(a.value.createdAt?d(a.value.createdAt):`—`),1)]),a.value.firstSessionAt?(t(),x(`div`,Qn,[_(`span`,$n,A(n.$t(`stats.firstSession`)),1),_(`span`,er,A(d(a.value.firstSessionAt)),1)])):C(``,!0),a.value.lastPromptAt?(t(),x(`div`,tr,[_(`span`,nr,A(n.$t(`stats.lastPrompt`)),1),_(`span`,rr,[y(A(w(i)(a.value.lastPromptAt))+` `,1),p(z,null,{default:u(()=>[y(A(d(a.value.lastPromptAt)),1)]),_:1})])])):C(``,!0),a.value.lastAgentResponseAt?(t(),x(`div`,ir,[_(`span`,ar,A(n.$t(`stats.lastResponse`)),1),_(`span`,or,[y(A(w(i)(a.value.lastAgentResponseAt))+` `,1),p(z,null,{default:u(()=>[y(A(d(a.value.lastAgentResponseAt)),1)]),_:1})])])):C(``,!0),a.value.updatedAt?(t(),x(`div`,sr,[_(`span`,cr,A(n.$t(`stats.updated`)),1),_(`span`,lr,A(w(i)(a.value.updatedAt)),1)])):C(``,!0),p(fe,{dark:``,class:`q-my-sm`}),_(`div`,ur,A(n.$t(`stats.activity`)),1),_(`div`,dr,[_(`span`,fr,A(n.$t(`stats.agentMessages`)),1),_(`span`,pr,A(a.value.agentMessages),1)]),_(`div`,mr,[_(`span`,hr,A(n.$t(`stats.userMessages`)),1),_(`span`,gr,A(a.value.userMessages),1)]),_(`div`,_r,[_(`span`,vr,A(n.$t(`stats.toolCalls`)),1),_(`span`,yr,A(a.value.toolUses),1)]),a.value.errors>0?(t(),x(`div`,br,[_(`span`,xr,A(n.$t(`stats.errors`)),1),_(`span`,Sr,A(a.value.errors),1)])):C(``,!0),a.value.usage.inputTokens>0||a.value.usage.outputTokens>0?(t(),x(`div`,Cr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,wr,A(n.$t(`stats.usage`)),1),_(`div`,Tr,[_(`span`,Er,A(n.$t(`stats.inputTokens`)),1),_(`span`,Dr,A(s(a.value.usage.inputTokens)),1)]),_(`div`,Or,[_(`span`,kr,A(n.$t(`stats.outputTokens`)),1),_(`span`,Ar,A(s(a.value.usage.outputTokens)),1)]),_(`div`,jr,[_(`span`,Mr,A(n.$t(`stats.totalTokens`)),1),_(`span`,Nr,A(s(a.value.usage.inputTokens+a.value.usage.outputTokens)),1)]),a.value.usage.costUsd>0?(t(),x(`div`,Pr,[_(`span`,Fr,A(n.$t(`stats.cost`)),1),_(`span`,Ir,`$`+A(a.value.usage.costUsd.toFixed(4)),1)])):C(``,!0)])):C(``,!0),a.value.totalSubagents>0?(t(),x(`div`,Lr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Rr,A(n.$t(`stats.subagents`)),1),_(`div`,zr,[_(`span`,Br,A(n.$t(`stats.completed`)),1),_(`span`,Vr,A(a.value.doneSubagents)+` / `+A(a.value.totalSubagents),1)]),a.value.totalSubagentTokens>0?(t(),x(`div`,Hr,[_(`span`,Ur,A(n.$t(`stats.tokens`)),1),_(`span`,Wr,A(s(a.value.totalSubagentTokens)),1)])):C(``,!0),a.value.totalSubagentTools>0?(t(),x(`div`,Gr,[_(`span`,Kr,A(n.$t(`stats.toolCalls`)),1),_(`span`,qr,A(a.value.totalSubagentTools),1)])):C(``,!0)])):C(``,!0),a.value.totalTasks>0||a.value.totalCriteria>0?(t(),x(`div`,Jr,[p(fe,{dark:``,class:`q-my-sm`}),_(`div`,Yr,A(n.$t(`stats.progress`)),1),a.value.totalTasks>0?(t(),x(`div`,Xr,[_(`div`,Zr,[_(`span`,Qr,A(n.$t(`stats.tasks`)),1),_(`span`,$r,A(a.value.doneTasks)+` / `+A(a.value.totalTasks),1)]),p(an,{value:a.value.doneTasks/a.value.totalTasks,color:`primary`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):C(``,!0),a.value.totalCriteria>0?(t(),x(`div`,ei,[_(`div`,ti,[_(`span`,ni,A(n.$t(`stats.acceptanceCriteria`)),1),_(`span`,ri,A(a.value.doneCriteria)+` / `+A(a.value.totalCriteria),1)]),p(an,{value:a.value.doneCriteria/a.value.totalCriteria,color:`green-6`,"track-color":`grey-9`,style:{height:`3px`,"border-radius":`2px`}},null,8,[`value`])])):C(``,!0)])):C(``,!0)],64)):(t(),x(`div`,ii,A(n.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-3d3e6cd8`]]),oi={class:`subagents-panel q-pa-md`},si={class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},ci={key:0,class:`text-caption text-grey-8`},li={class:`row items-center q-mb-xs`},ui={class:`text-caption text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`220px`}},di={key:0,class:`text-caption text-grey-6`,style:{"font-size":`10px`}},fi={class:`text-grey-4`},pi={class:`row items-center q-gutter-xs q-mt-xs text-caption text-grey-7`,style:{"font-size":`10px`}},mi={key:0},hi={key:1},gi={key:2},_i=Pe(k({__name:`SubagentsPanel`,setup(e){let{t:n}=S(),r=xe(),a=T(()=>[...r.currentSubagents].reverse());function o(e){return e?e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:``}function s(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,n)=>(t(),x(`div`,oi,[_(`div`,si,A(e.$t(`subagents.title`)),1),a.value.length===0?(t(),x(`div`,ci,A(e.$t(`subagents.empty`)),1)):C(``,!0),(t(!0),x(h,null,i(a.value,n=>(t(),x(`div`,{key:n.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[_(`div`,li,[p(j,{name:n.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:n.status===`running`?`green-4`:`grey-6`,class:`q-mr-xs`},null,8,[`name`,`color`]),_(`span`,ui,A(n.description||n.toolUseId),1)]),n.lastToolName?(t(),x(`div`,di,[y(A(e.$t(`subagents.running`)),1),_(`span`,fi,A(n.lastToolName),1)])):C(``,!0),_(`div`,pi,[n.toolUses===void 0?C(``,!0):(t(),x(`span`,mi,A(e.$t(`subagents.tools`,{count:n.toolUses})),1)),n.totalTokens?(t(),x(`span`,hi,`· `+A(s(n.totalTokens))+` tok`,1)):C(``,!0),n.durationMs?(t(),x(`span`,gi,`· `+A(o(n.durationMs)),1)):C(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-81ad2481`]]),vi=2,yi=1,bi=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(vi,Math.floor(u/e.css.cell.width)),rows:Math.max(yi,Math.floor(l/e.css.cell.height))}}},xi=Object.defineProperty,Si=Object.getOwnPropertyDescriptor,Ci=(e,t)=>{for(var n in t)xi(e,n,{get:t[n],enumerable:!0})},V=(e,t,n,r)=>{for(var i=r>1?void 0:r?Si(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&xi(t,n,i),i},H=(e,t)=>(n,r)=>t(n,r,e),wi=`Terminal input`,Ti={get:()=>wi,set:e=>wi=e},Ei=`Too much output to announce, navigate to rows manually to read`,Di={get:()=>Ei,set:e=>Ei=e};function Oi(e){return e.replace(/\r?\n/g,`\r`)}function ki(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Ai(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function ji(e,t,n,r){e.stopPropagation(),e.clipboardData&&Mi(e.clipboardData.getData(`text/plain`),t,n,r)}function Mi(e,t,n,r){e=Oi(e),e=ki(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Ni(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function Pi(e,t,n,r,i){Ni(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function Fi(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Ii(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var Li=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},Ri=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},zi=``,Bi=` `,Vi=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Hi}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return(this.fg&50331648)==0}isBgDefault(){return(this.bg&50331648)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Hi=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Ui=class e extends Vi{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Hi,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Fi(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Wi=`di$target`,Gi=`di$dependencies`,Ki=new Map;function qi(e){return e[Gi]||[]}function Ji(e){if(Ki.has(e))return Ki.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Yi(t,e,r)};return t._id=e,Ki.set(e,t),t}function Yi(e,t,n){t[Wi]===t?t[Gi].push({id:e,index:n}):(t[Gi]=[{id:e,index:n}],t[Wi]=t)}var Xi=Ji(`BufferService`),Zi=Ji(`CoreMouseService`),Qi=Ji(`CoreService`),$i=Ji(`CharsetService`),ea=Ji(`InstantiationService`),ta=Ji(`LogService`),na=Ji(`OptionsService`),ra=Ji(`OscLinkService`),ia=Ji(`UnicodeService`),aa=Ji(`DecorationService`),oa=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new Ui,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId)if(c===-1){c=t,s=a.extended.urlId;continue}else l=a.extended.urlId!==s;else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+(!l&&t===o-1?1:0),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):sa(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};oa=V([H(0,Xi),H(1,na),H(2,ra)],oa);function sa(e,t){if(confirm(`Do you want to navigate to ${t}?
3
3
 
4
4
  WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var ca=Ji(`CharSizeService`),la=Ji(`CoreBrowserService`),ua=Ji(`MouseService`),da=Ji(`RenderService`),fa=Ji(`SelectionService`),pa=Ji(`CharacterJoinerService`),ma=Ji(`ThemeService`),ha=Ji(`LinkProviderService`),ga=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Sa.isErrorNoTelemetry(e)?new Sa(e.message+`
5
5