@loicngr/kobo 1.6.5 → 1.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/utils/git-ops.js +10 -4
- package/package.json +1 -1
- package/src/client/dist/spa/assets/ActivityFeed-BmGNYNux.js +7 -0
- package/src/client/dist/spa/assets/{ActivityFeed-GAoo1WOT.css → ActivityFeed-ZLFD0ABF.css} +1 -1
- package/src/client/dist/spa/assets/{CreatePage-B7e487jg.js → CreatePage-BC4P1Xq2.js} +2 -2
- package/src/client/dist/spa/assets/CreatePage-CYtKx6Ji.css +1 -0
- package/src/client/dist/spa/assets/{DiffViewer-4-z5gGzs.js → DiffViewer-C6d1h3-o.js} +2 -2
- package/src/client/dist/spa/assets/{HealthPage-Pof_7jsi.js → HealthPage-usVzGjv-.js} +1 -1
- package/src/client/dist/spa/assets/{MainLayout-Cb6_QXbV.css → MainLayout-BAimmdFy.css} +1 -1
- package/src/client/dist/spa/assets/{MainLayout-CJJ8RX8d.js → MainLayout-DcltT6j8.js} +17 -17
- package/src/client/dist/spa/assets/{SearchPage-Do9kkaR_.js → SearchPage-DqVwM-Nw.js} +1 -1
- package/src/client/dist/spa/assets/{SettingsPage-CpvnCfxM.js → SettingsPage-BKKAIJXH.js} +1 -1
- package/src/client/dist/spa/assets/WorkspacePage-B-iEkrN1.js +4 -0
- package/src/client/dist/spa/assets/WorkspacePage-BIquds-p.css +1 -0
- package/src/client/dist/spa/assets/{build-path-tree-DBKR9p4C.js → build-path-tree-BaiH1Val.js} +1 -1
- package/src/client/dist/spa/assets/{cssMode-D7H4G9u2.js → cssMode-DV77SXAp.js} +1 -1
- package/src/client/dist/spa/assets/{documents-CByb0FJM.js → documents-DLpLMq-0.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api--wqcZBpd.js → editor.api-BGhylbsn.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-BNIb69JB.js → editor.main-qZAJW6DY.js} +3 -3
- package/src/client/dist/spa/assets/{freemarker2-D-thr4Nz.js → freemarker2-BKAXCv8N.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-uz-Lnmlq.js → handlebars-v0nKPEWi.js} +1 -1
- package/src/client/dist/spa/assets/{html-BrD38Itg.js → html-BRupIzA4.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-DhJl0i4i.js → htmlMode-BihW-P2O.js} +1 -1
- package/src/client/dist/spa/assets/i18n-B4u2URrK.js +1 -0
- package/src/client/dist/spa/assets/{index-B0Jj-w-E.js → index-CDTpNA2L.js} +2 -2
- package/src/client/dist/spa/assets/{javascript-PJBbOo9I.js → javascript-BJDZ_NcB.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-D4akRBRs.js → jsonMode-C9JdqFNv.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-EUlazot7.js → liquid-Lk-oZkkL.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-BGyD5-MK.js → mdx-DXTW2dI0.js} +1 -1
- package/src/client/dist/spa/assets/{models-GweeyU2r.js → models-D_Rq_B4d.js} +1 -1
- package/src/client/dist/spa/assets/{monaco.contribution-Ci35AF1I.js → monaco.contribution-sDg_eF3E.js} +2 -2
- package/src/client/dist/spa/assets/{python-BG_aaGdU.js → python-DWz3NVjv.js} +1 -1
- package/src/client/dist/spa/assets/{razor-BWRO_-vh.js → razor-BwkYCkDS.js} +1 -1
- package/src/client/dist/spa/assets/{tsMode-CfJ3FSRi.js → tsMode-C0izvBnL.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-BD5IT0Pn.js → typescript-CKsF3o2F.js} +1 -1
- package/src/client/dist/spa/assets/{xml-DBx8yQFe.js → xml-D2KHAqfG.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-DdHKmdlx.js → yaml-Bh60Z-Sr.js} +1 -1
- package/src/client/dist/spa/index.html +1 -1
- package/src/client/dist/spa/assets/ActivityFeed-DETQbE-a.js +0 -7
- package/src/client/dist/spa/assets/CreatePage-yu2IH7GW.css +0 -1
- package/src/client/dist/spa/assets/WorkspacePage-DPGiH02q.css +0 -1
- package/src/client/dist/spa/assets/WorkspacePage-De-8vIz8.js +0 -4
- package/src/client/dist/spa/assets/i18n-DBt4wD57.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-
|
|
1
|
+
<!DOCTYPE html><html><head><title>Kōbō</title><link rel=icon type=image/svg+xml href=/favicon.svg><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-CDTpNA2L.js"></script>
|
|
2
2
|
<link rel="modulepreload" crossorigin href="/assets/runtime-core.esm-bundler-C3IgBgY5.js">
|
|
3
3
|
<link rel="modulepreload" crossorigin href="/assets/vue-i18n-eUDnMrPl.js">
|
|
4
4
|
<link rel="modulepreload" crossorigin href="/assets/QIcon-B0-pH3Qs.js">
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{E as e,F as t,H as n,L as r,M as i,Q as a,U as o,_t as s,bt as c,d as l,f as u,g as d,h as f,l as p,p as m,r as h,rt as g,u as _,v,yt as y}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{L as b,l as x,t as S}from"./QIcon-B0-pH3Qs.js";import{t as C}from"./QBtn-CyzfM9-_.js";import{n as w}from"./vue-i18n-eUDnMrPl.js";import{S as T,v as E,x as D}from"./index-B0Jj-w-E.js";import{t as O}from"./QSpinnerDots-By20ptst.js";import{t as k}from"./QExpansionItem-HLBjHx-0.js";import{t as A}from"./QScrollArea-CBW6shMb.js";import{t as j}from"./QTooltip-DbEBexRN.js";import{n as M,r as N,t as P}from"./documents-CByb0FJM.js";import{t as F}from"./_plugin-vue_export-helper-Cj6tcsj6.js";function ee(e,t,n=!0){let r=[],i=new Map,a=new Map;for(let n=0;n<e.length;n++){let o=e[n],s=t?.[n];switch(o.kind){case`message:text`:{let e=i.get(o.messageId);if(e)e.text+=o.text,e.streaming=o.streaming;else{let e={type:`text`,messageId:o.messageId,text:o.text,streaming:o.streaming,ts:s};i.set(o.messageId,e),r.push(e)}break}case`message:end`:{let e=i.get(o.messageId);e&&(e.streaming=!1);break}case`message:thinking`:r.push({type:`thinking`,messageId:o.messageId,text:o.text,ts:s});break;case`tool:call`:{let e={type:`tool`,toolCallId:o.toolCallId,name:o.name,input:o.input,ts:s};a.set(o.toolCallId,e),r.push(e);break}case`tool:result`:{let e=a.get(o.toolCallId);e&&(e.result={output:o.output,isError:o.isError});break}case`session:started`:r.push({type:`session`,kind:`started`,detail:{engineSessionId:o.engineSessionId,model:o.model},ts:s});break;case`session:ended`:r.push({type:`session`,kind:`ended`,detail:{reason:o.reason,exitCode:o.exitCode},ts:s});break;case`session:compacted`:r.push({type:`session`,kind:`compacted`,ts:s});break;case`session:brainstorm-complete`:case`message:raw`:case`skills:discovered`:case`usage`:case`rate_limit`:case`subagent:progress`:case`error`:break;default:}}let o=null;for(let e of r)e.type===`text`&&e.streaming&&(o&&(o.streaming=!1),o=e);return o&&!n&&(o.streaming=!1),r}function te(e,t){if(t.length===0)return e;let n=t.map(e=>({type:`user`,content:e.content,sender:e.sender,ts:e.ts})),r=[...e,...n];r.sort((e,t)=>{let n=e.ts??``,r=t.ts??``;return n===r?0:n?r?n<r?-1:1:-1:1});let i;for(let e of r)e.type===`user`&&e.sender!==`system-prompt`&&e.ts&&(!i||e.ts>i)&&(i=e.ts);if(i)for(let e of r)e.type===`text`&&e.streaming&&(!e.ts||e.ts<i)&&(e.streaming=!1);return r}function I(e){switch(e.type){case`user`:return e.sender===`system-prompt`?`system-prompt`:`user`;case`session`:return`session`;default:return`agent`}}function ne(e){let t=[],n=null;for(let r of e){let e=I(r),i=e===`session`||e===`system-prompt`;!n||n.speaker!==e||i?(n={speaker:e,ts:r.ts,items:[r]},t.push(n),i&&(n=null)):n.items.push(r)}return t}var L={class:`text-caption text-grey-6`},R=v({__name:`SessionEventItem`,props:{item:{}},setup(e){let n=e,r=p(()=>{switch(n.item.kind){case`started`:return`session.started`;case`ended`:return`session.ended`;case`compacted`:return`session.compacted`;default:return`session.started`}});return(e,n)=>(t(),m(`span`,L,c(e.$t(r.value)),1))}});function z(e,t){if(t.length===0||e.length===0)return e;let n=[...t].sort((e,t)=>t.length-e.length),r=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`),i=r.body.firstChild;if(!i)return e;function a(e){if(e.nodeType===Node.TEXT_NODE){B(e,n,r);return}if(e.nodeName===`A`)return;let t=Array.from(e.childNodes);for(let e of t)a(e)}return a(i),i.innerHTML}function B(e,t,n){let r=e.textContent??``;if(!t.some(e=>r.includes(e)))return;let i=n.createDocumentFragment(),a=0;for(;a<r.length;){let e=V(r,a,t);if(!e){i.appendChild(n.createTextNode(r.slice(a)));break}e.index>a&&i.appendChild(n.createTextNode(r.slice(a,e.index)));let o=n.createElement(`a`);o.className=`document-link`,o.setAttribute(`data-document-path`,e.path),o.setAttribute(`href`,`#`),o.textContent=e.path,i.appendChild(o),a=e.index+e.path.length}e.parentNode?.replaceChild(i,e)}function V(e,t,n){let r=null;for(let i of n){let n=e.indexOf(i,t);n<0||(!r||n<r.index||n===r.index&&i.length>r.path.length)&&(r={index:n,path:i})}return r}var H=[`innerHTML`],U=F(v({__name:`TextMessageItem`,props:{item:{}},setup(e){let n=e,r=P(),i=E(),a=p(()=>{let e=i.selectedWorkspaceId;return e?r.documentsFor(e).map(e=>e.path):[]}),o=p(()=>{let e=z(M.parse(n.item.text,{async:!1,breaks:!0,gfm:!0}),a.value);return N.sanitize(e,{ADD_ATTR:[`data-document-path`]})});function s(e){let t=e.target?.closest(`.document-link`);if(!t)return;e.preventDefault();let n=t.getAttribute(`data-document-path`),a=i.selectedWorkspaceId;!n||!a||r.openDocumentByPath(a,n)}return(n,r)=>(t(),m(`div`,{class:`markdown-message`,onClick:s},[_(`div`,{innerHTML:o.value},null,8,H),e.item.streaming?(t(),l(x,{key:0,size:`xs`,class:`q-ml-xs`})):u(``,!0)]))}}),[[`__scopeId`,`data-v-0ac5a3e4`]]),W={key:0,class:`text-caption text-grey-5`,style:{"font-style":`italic`}},G=[`innerHTML`],K={key:1,style:{"white-space":`pre-wrap`}},q=F(v({__name:`ThinkingItem`,props:{item:{}},setup(e){let n=e,r=p(()=>n.item.text.trim().slice(0,100)),i=p(()=>n.item.text.trim().length>0),a=p(()=>n.item.text.trim().length>100),s=p(()=>{let e=M.parse(n.item.text,{async:!1,breaks:!0,gfm:!0});return N.sanitize(e)});return(n,d)=>i.value?(t(),m(`div`,W,[a.value?(t(),l(k,{key:0,dense:``,"dense-toggle":``,label:r.value,"header-class":`text-grey-5 text-caption`,style:{"font-style":`italic`}},{default:o(()=>[_(`div`,{class:`q-py-xs markdown-thinking`,innerHTML:s.value},null,8,G)]),_:1},8,[`label`])):(t(),m(`span`,K,c(e.item.text),1))])):u(``,!0)}}),[[`__scopeId`,`data-v-e9fb9f90`]]);function J(e,t){let n=e.split(`
|
|
2
|
-
`),r=t.split(`
|
|
3
|
-
`),i=n.length,a=r.length,o=Array.from({length:i+1},()=>Array(a+1).fill(0));for(let e=i-1;e>=0;e--)for(let t=a-1;t>=0;t--)n[e]===r[t]?o[e][t]=o[e+1][t+1]+1:o[e][t]=Math.max(o[e+1][t],o[e][t+1]);let s=[],c=0,l=0;for(;c<i&&l<a;)n[c]===r[l]?(s.push({type:`context`,content:n[c]}),c++,l++):o[c+1][l]>=o[c][l+1]?(s.push({type:`del`,content:n[c]}),c++):(s.push({type:`add`,content:r[l]}),l++);for(;c<i;)s.push({type:`del`,content:n[c++]});for(;l<a;)s.push({type:`add`,content:r[l++]});return s}function Y(e,t){if(!t||typeof t!=`object`)return null;let n=t;if(e===`Edit`){let e=n.file_path;if(!e)return null;let t=n.old_string??``,r=n.new_string??``;return{toolName:`Edit`,filePath:e,oldString:t,newString:r,replaceAll:n.replace_all??!1,additions:r?r.split(`
|
|
4
|
-
`).length:0,deletions:t?t.split(`
|
|
5
|
-
`).length:0}}if(e===`Write`){let e=n.file_path;if(!e)return null;let t=n.content??``;return{toolName:`Write`,filePath:e,content:t,additions:t?t.split(`
|
|
6
|
-
`).length:0,deletions:0}}if(e===`Bash`){let e=(n.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 X(e,t){if(!e||!t?.projectPath)return e;let n=Z(e,`${t.projectPath}/.worktrees/${t.workingBranch}`);return n===e&&(n=Z(e,t.projectPath)),n}function Z(e,t){if(!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`${n}/`,`g`),``).replace(RegExp(`${n}(?=\\s|$|["'\`])`,`g`),`.`)}var re={class:`tool-name`},ie=[`title`],ae={key:0,class:`tool-stat-add`},oe={key:1,class:`tool-stat-del`},se={class:`diff-sign`},ce={class:`tool-name`},le=[`title`],ue=F(v({__name:`ToolCallItem`,props:{item:{}},setup(e){let i=e,o=a(!1),g=E(),v=p(()=>Y(i.item.name,i.item.input)),y=p(()=>v.value?X(v.value.filePath,g.selectedWorkspace):``),x={Bash:`terminal`,Read:`description`,Edit:`edit`,Write:`edit_note`,MultiEdit:`edit`,Glob:`folder_open`,Grep:`manage_search`,LS:`list`,Skill:`auto_awesome`,Task:`hub`,Agent:`hub`,TodoWrite:`checklist`,TodoRead:`checklist`,ToolSearch:`search`,WebFetch:`public`,WebSearch:`travel_explore`,NotebookRead:`book`,NotebookEdit:`edit_note`,SendMessage:`send`,ExitPlanMode:`check_circle_outline`,KillShell:`stop_circle`,BashOutput:`terminal`},C=p(()=>x[i.item.name]??`build`),w=p(()=>{if(v.value)return``;let e=i.item.input,t=T(e);return t?X(t,g.selectedWorkspace):``});function T(e){if(!e||typeof e!=`object`)return typeof e==`string`?e:``;let t=e;for(let e of[`file_path`,`path`,`command`,`pattern`,`query`,`url`,`skill`,`description`,`subject`,`prompt`]){let n=t[e];if(typeof n==`string`&&n.length>0)return n}for(let e of Object.values(t))if(typeof e==`string`&&e.length>0)return e;return``}let D=p(()=>{let e=v.value;return e?e.toolName===`Edit`&&e.oldString!==void 0&&e.newString!==void 0?J(e.oldString,e.newString):e.toolName===`Write`&&e.content!==void 0?e.content.split(`
|
|
7
|
-
`).map(e=>({type:`add`,content:e})):e.toolName===`Bash:rm`?[{type:`del`,content:`File deleted`}]:null:null}),O=p(()=>{let e=i.item.result;if(!e)return``;if(typeof e.output==`string`)return e.output;try{return JSON.stringify(e.output)}catch{return String(e.output)}}),k=new Set([`Read`]),A=p(()=>!!(i.item.result&&O.value)&&(!k.has(i.item.name)||i.item.result?.isError===!0));function j(){o.value=!o.value}return n(()=>i.item.result?.isError===!0,e=>{e&&(o.value=!0)},{immediate:!0}),(n,i)=>v.value?(t(),m(`div`,{key:0,class:s([`tool-row`,{"tool-row-expanded":o.value}])},[_(`div`,{class:`tool-header`,onClick:j},[d(S,{name:C.value,size:`14px`,class:`tool-icon`},null,8,[`name`]),_(`span`,re,c(v.value.toolName===`Bash:rm`?`Bash`:v.value.toolName),1),_(`span`,{class:`tool-path`,title:v.value.filePath},c(y.value),9,ie),v.value.additions>0?(t(),m(`span`,ae,`+`+c(v.value.additions),1)):u(``,!0),v.value.deletions>0?(t(),m(`span`,oe,`-`+c(v.value.deletions),1)):u(``,!0),e.item.result?.isError?(t(),l(S,{key:2,name:`error_outline`,color:`negative`,size:`xs`,class:`q-ml-xs`})):e.item.result?(t(),l(S,{key:3,name:`check`,color:`positive`,size:`xs`,class:`q-ml-xs`})):u(``,!0),d(S,{name:o.value?`expand_less`:`expand_more`,size:`xs`,class:`q-ml-auto text-grey-6`},null,8,[`name`])]),o.value&&D.value?(t(),m(`div`,{key:0,class:`tool-diff`,onClick:i[0]||=b(()=>{},[`stop`])},[(t(!0),m(h,null,r(D.value,(e,n)=>(t(),m(`div`,{key:n,class:s([`diff-line`,{"diff-del":e.type===`del`,"diff-add":e.type===`add`,"diff-context":e.type===`context`}])},[_(`span`,se,c(e.type===`del`?`-`:e.type===`add`?`+`:` `),1),f(c(e.content),1)],2))),128))])):u(``,!0)],2)):(t(),m(`div`,{key:1,class:s([`tool-row tool-row-generic`,{"tool-row-expanded":o.value,"tool-row--toggleable":A.value}])},[_(`div`,{class:`tool-header`,onClick:i[1]||=e=>A.value&&j()},[d(S,{name:C.value,size:`14px`,class:`tool-icon`},null,8,[`name`]),_(`span`,ce,c(e.item.name),1),w.value?(t(),m(`span`,{key:0,class:`tool-arg`,title:T(e.item.input)||w.value},c(w.value),9,le)):u(``,!0),e.item.result?.isError?(t(),l(S,{key:1,name:`error_outline`,color:`negative`,size:`xs`,class:`q-ml-auto`})):e.item.result?(t(),l(S,{key:2,name:`check`,color:`positive`,size:`xs`,class:`q-ml-auto`})):u(``,!0),A.value?(t(),l(S,{key:3,name:o.value?`expand_less`:`expand_more`,size:`xs`,class:`q-ml-xs text-grey-6`},null,8,[`name`])):u(``,!0)]),o.value&&A.value?(t(),m(`div`,{key:0,class:`tool-output`,onClick:i[2]||=b(()=>{},[`stop`])},c(O.value),1)):u(``,!0)],2))}}),[[`__scopeId`,`data-v-b1ed78cb`]]),de=[`innerHTML`],fe={key:1,class:`markdown-message`},pe=[`innerHTML`],me=F(v({__name:`UserMessageItem`,props:{item:{}},setup(e){let n=e,r=p(()=>n.item.sender===`system-prompt`),i=p(()=>{let e=M.parse(n.item.content,{async:!1,breaks:!0,gfm:!0});return N.sanitize(e)});return(e,n)=>r.value?(t(),l(k,{key:0,dense:``,"dense-toggle":``,label:e.$t(`chat.systemPrompt`),"header-class":`text-grey-5 text-caption`},{default:o(()=>[_(`div`,{class:`q-py-xs markdown-user-prompt`,innerHTML:i.value},null,8,de)]),_:1},8,[`label`])):(t(),m(`div`,fe,[_(`div`,{innerHTML:i.value},null,8,pe)]))}}),[[`__scopeId`,`data-v-cb8cec0f`]]),he={class:`turn-header`},ge={key:0,class:`turn-time`},_e={class:`turn-time turn-time-updated`},ve={key:2,class:`turn-actions`},ye={class:`turn-body`},be={key:0,class:`turn-scroll-top`},xe=F(v({__name:`TurnCard`,props:{turn:{}},emits:[`scrollTo`],setup(e,{emit:n}){let i=e,v=n,{t:b}=w(),x=a(null);function T(){let e=x.value;if(!e)return;let t=e.closest(`.q-scrollarea`)?.querySelector(`.q-scrollarea__content`);if(!t){e.scrollIntoView({behavior:`smooth`,block:`start`});return}let n=e.getBoundingClientRect().top-t.getBoundingClientRect().top;v(`scrollTo`,Math.max(0,n-8))}let E=p(()=>{switch(i.turn.speaker){case`user`:return{label:b(`chat.you`),accent:`#ce93d8`,badgeClass:`turn-badge-user`};case`agent`:return{label:b(`chat.agent`),accent:`#7986cb`,badgeClass:`turn-badge-agent`};case`system-prompt`:return{label:b(`chat.systemPrompt`),accent:`#757575`,badgeClass:`turn-badge-system`};case`session`:return{label:b(`chat.session`),accent:`#616161`,badgeClass:`turn-badge-session`}}});function D(e,t=!1){if(!e)return``;let n=new Date(e);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(void 0,t?{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}:{hour:`2-digit`,minute:`2-digit`})}let O=p(()=>D(i.turn.ts)),k=p(()=>{let e=i.turn.items;if(e.length===0)return null;for(let t=e.length-1;t>=0;t--){let n=e[t].ts;if(n)return n}return null}),A=p(()=>{let e=i.turn.ts,t=k.value;if(!t||!e||t===e)return``;let n=new Date(e).getTime(),r=new Date(t).getTime();return Number.isNaN(n)||Number.isNaN(r)||r<=n?``:D(t,r-n<6e4)}),M=p(()=>A.value!==``),N=p(()=>i.turn.items.filter(e=>e.type===`tool`).length);return(n,i)=>(t(),m(`div`,{ref_key:`cardEl`,ref:x,class:s([`turn-card`,{"turn-card--user":e.turn.speaker===`user`}]),style:y({"--turn-accent":E.value.accent})},[_(`div`,he,[_(`span`,{class:s([`turn-badge`,E.value.badgeClass])},c(E.value.label),3),O.value?(t(),m(`span`,ge,c(O.value),1)):u(``,!0),M.value?(t(),m(h,{key:1},[d(S,{name:`arrow_forward`,size:`10px`,color:`grey-7`,class:`turn-time-arrow`}),_(`span`,_e,[f(c(A.value)+` `,1),d(j,null,{default:o(()=>[f(c(g(b)(`chat.lastUpdatedAt`,{time:A.value})),1)]),_:1})])],64)):u(``,!0),N.value>0?(t(),m(`span`,ve,` · `+c(g(b)(`chat.nActions`,{n:N.value})),1)):u(``,!0)]),_(`div`,ye,[(t(!0),m(h,null,r(e.turn.items,(e,n)=>(t(),m(h,{key:n},[e.type===`text`?(t(),l(U,{key:0,item:e},null,8,[`item`])):e.type===`thinking`?(t(),l(q,{key:1,item:e},null,8,[`item`])):e.type===`tool`?(t(),l(ue,{key:2,item:e},null,8,[`item`])):e.type===`user`?(t(),l(me,{key:3,item:e},null,8,[`item`])):e.type===`session`?(t(),l(R,{key:4,item:e},null,8,[`item`])):u(``,!0)],64))),128))]),e.turn.items.length>4?(t(),m(`div`,be,[d(C,{flat:``,round:``,dense:``,size:`xs`,icon:`arrow_upward`,color:`grey-6`,class:`turn-scroll-top-btn`,onClick:T},{default:o(()=>[d(j,null,{default:o(()=>[f(c(g(b)(`chat.scrollToTurnTop`)),1)]),_:1})]),_:1})])):u(``,!0)],6))}}),[[`__scopeId`,`data-v-50994916`]]),Se={key:0,class:`activity-feed-switching`},Ce={key:1,class:`activity-feed-wrap`},we={key:0,class:`text-center q-py-sm text-caption text-grey-6`},Te={class:`q-pa-md`},Ee={key:1,class:`q-px-md q-pb-md`},De={class:`activity-feed-nav-cluster`},Oe=60,Q=200,$=200,ke=400,Ae=200,je=F(v({__name:`ActivityFeed`,props:{workspaceId:{}},setup(s){let g=s,v=T(),y=D(),b=E(),S=p(()=>(b.activityFeeds[g.workspaceId]??[]).filter(e=>e.type===`text`&&typeof e.content==`string`).map(e=>({content:e.content,sender:e.meta?.sender??`user`,ts:e.timestamp,sessionId:e.sessionId}))),w=p(()=>{let e=b.workspaces.find(e=>e.id===g.workspaceId);return e?e.status===`extracting`||e.status===`brainstorming`||e.status===`executing`:!1}),j=p(()=>{let e=te(ee(v.eventsFor(g.workspaceId),v.timestampsFor(g.workspaceId),w.value),S.value);return ne(y.showVerboseSystemMessages?e:e.filter(e=>e.type!==`session`))}),M=p(()=>y.showVerboseSystemMessages?v.eventsFor(g.workspaceId).filter(e=>e.kind===`message:raw`).map(e=>e.content):[]),N=a(null),P=a(!0),F=a(!1),I=!1,L=a(!0);function R(e){P.value=e.verticalSize-e.verticalPosition-e.verticalContainerSize<=Oe,I&&e.verticalPosition<=Q&&!F.value&&v.hasMoreOlderFor(g.workspaceId)&&z()}async function z(){let t=g.workspaceId,n=v.oldestIdFor(t);if(!n)return;F.value=!0;let r=Date.now();try{let r=N.value,i=r?.getScroll().verticalSize??0,a=r?.getScroll().verticalPosition??0,o=fetch(`/api/workspaces/${t}/events?before=${encodeURIComponent(n)}&limit=200`),s=new Promise(e=>setTimeout(e,$)),[c]=await Promise.all([o,s]);if(!c.ok){v.prepend(t,[],[],{oldestId:n,hasMoreOlder:!1});return}let l=await c.json(),u=l.events??[],d=u.filter(e=>e.type===`agent:event`&&e.workspaceId===t),f=u.filter(e=>e.type===`user:message`&&e.workspaceId===t),p=d.map(e=>e.payload),m=d.map(e=>e.createdAt),h=d.map(e=>e.sessionId??null),g=u.length>0?u[0].id:n;v.prepend(t,p,m,{oldestId:g,hasMoreOlder:l.hasMore,sessionIds:h});for(let e of f){let n=e.payload;typeof n.content==`string`&&b.addActivityItem(t,{id:e.id,type:`text`,content:n.content,timestamp:e.createdAt,sessionId:e.sessionId??void 0,meta:{sender:n.sender??`user`}})}if(await e(),r){let e=r.getScroll().verticalSize-i,t=Math.max(a+e,Q+50);r.setScrollPosition(`vertical`,t,0)}}catch(e){console.error(`[ActivityFeed] failed to load older events:`,e)}finally{let e=Date.now()-r,t=Math.max(0,$-e);await new Promise(e=>setTimeout(e,t+ke)),F.value=!1}}async function B(t=0){await e();let n=N.value;if(!n)return;let r=n.getScroll();n.setScrollPosition(`vertical`,r.verticalSize,t)}function V(e){let t=N.value;t&&t.setScrollPosition(`vertical`,Math.max(0,e),250)}let H=a([]),U=a(null);function W(){let e=j.value,t=H.value,n=[];if(t.length===e.length){for(let r=0;r<e.length;r++){if(e[r].speaker!==`user`)continue;let i=t[r]?.$el;i&&n.push(i)}if(n.length>0)return n}let r=U.value?.parentElement;if(r){let e=r.querySelectorAll(`.turn-card--user`);for(let t of e)n.push(t)}return n}function G(){let e=N.value;if(!e)return null;let t=U.value;if(!t)return null;let n=e.getScroll().verticalPosition,r=t.getBoundingClientRect().top,i=null;for(let e of W()){let t=e.getBoundingClientRect().top-r;if(t<n-40)i=t;else break}return i}async function K(){let t=N.value;if(!t)return;let n=G();if(n===null)for(let t=0;t<15&&v.hasMoreOlderFor(g.workspaceId);t++){for(;F.value;)await new Promise(e=>setTimeout(e,50));if(await z(),await e(),n=G(),n!==null)break}n!==null&&t.setScrollPosition(`vertical`,Math.max(0,n-12),250)}async function q(){I=!1,await e(),await B(0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{I=!0})})}let J=p(()=>v.eventsFor(g.workspaceId).length);async function Y(){L.value=!0;let e=Date.now();await new Promise(e=>setTimeout(e,Ae));let t=e+5e3;for(;J.value===0&&Date.now()<t;)await new Promise(e=>setTimeout(e,50));L.value=!1}n(L,async e=>{!e&&J.value>0&&await q()}),i(()=>{Y(),J.value>0&&q()});let X=!1;n(J,async(e,t)=>{if(!X&&e>0){X=!0,await q();return}e>t&&P.value&&!F.value&&await B(180)}),n(()=>g.workspaceId,()=>{P.value=!0,X=!1,I=!1,Y(),J.value>0&&q()}),n(()=>b.selectedSessionId,async()=>{P.value=!0,I=!1,await q()}),n(p(()=>S.value.filter(e=>e.sender!==`system-prompt`).length),async(e,t)=>{e>t&&(P.value=!0,await B(180))});async function Z(){P.value=!0,await B(250)}return(e,n)=>L.value?(t(),m(`div`,Se,[d(O,{size:`40px`,color:`indigo-4`})])):(t(),m(`div`,Ce,[d(A,{ref_key:`scrollRef`,ref:N,class:`activity-feed-scroll`,onScroll:R},{default:o(()=>[_(`div`,{ref_key:`contentOriginRef`,ref:U,class:`content-origin-marker`},null,512),F.value?(t(),m(`div`,we,[d(x,{size:`sm`}),f(` `+c(e.$t(`activity.loading_older`)),1)])):u(``,!0),_(`div`,Te,[(t(!0),m(h,null,r(j.value,(e,n)=>(t(),l(xe,{key:n,ref_for:!0,ref_key:`turnRefs`,ref:H,turn:e,onScrollTo:V},null,8,[`turn`]))),128))]),M.value.length?(t(),m(`div`,Ee,[d(k,{label:e.$t(`activity.raw_lines`,{n:M.value.length}),dense:``},{default:o(()=>[(t(!0),m(h,null,r(M.value,(e,n)=>(t(),m(`div`,{key:n,class:`text-caption text-grey q-pa-xs`},c(e),1))),128))]),_:1},8,[`label`])])):u(``,!0)]),_:1},512),_(`div`,De,[P.value?u(``,!0):(t(),l(C,{key:0,round:``,dense:``,unelevated:``,color:`grey-9`,"text-color":`grey-3`,icon:`arrow_downward`,size:`sm`,class:`activity-feed-nav-btn`,title:e.$t(`activity.scroll_to_bottom`),onClick:Z},null,8,[`title`])),d(C,{round:``,dense:``,unelevated:``,color:`grey-9`,"text-color":`grey-3`,icon:`arrow_upward`,size:`sm`,class:`activity-feed-nav-btn`,title:e.$t(`activity.prev_user_message`),onClick:K},null,8,[`title`])])]))}}),[[`__scopeId`,`data-v-3ac19953`]]);export{je as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.create-page[data-v-4f4da343]{background-color:#1a1a2e;min-height:100%;padding:48px 24px}.create-inner[data-v-4f4da343]{width:100%;max-width:700px}.create-title[data-v-4f4da343]{font-size:24px;line-height:1.3}.create-card[data-v-4f4da343]{background:#224;border:1px solid #444;overflow:hidden}.card-top-bar[data-v-4f4da343]{background:#1e1e3a;min-height:36px}.card-name-wrap[data-v-4f4da343]{background:#224;padding:8px 16px 4px}.card-name-wrap[data-v-4f4da343] .q-field__control{height:32px;min-height:32px;padding:0}.card-name-wrap[data-v-4f4da343] input{color:#e0e0e0;font-size:15px;font-weight:500}.card-name-wrap[data-v-4f4da343] input::placeholder{color:#555}.card-textarea-wrap[data-v-4f4da343]{background:#224}.repo-select[data-v-4f4da343]{min-width:160px;max-width:260px}.repo-select[data-v-4f4da343] .q-field__prepend{align-items:center;height:auto;padding-top:0}.create-textarea[data-v-4f4da343]{color:#d0d0d0;width:100%;padding:12px 16px 4px}.create-textarea[data-v-4f4da343] .q-field__control{padding:0}.create-textarea[data-v-4f4da343] textarea{color:#d0d0d0;resize:none;min-height:100px;font-size:14px;line-height:1.6}.create-textarea[data-v-4f4da343] textarea::placeholder{color:#666}.notion-toggle-btn[data-v-4f4da343]{background:#333;padding:2px 10px}.notion-url-wrap[data-v-4f4da343]{background:#1e1e3a;padding:8px 0 0}.notion-url-input[data-v-4f4da343]{padding:0 12px}.notion-url-input[data-v-4f4da343] .q-field__control{height:36px;min-height:36px;padding:0}.notion-url-input[data-v-4f4da343] input{color:#d0d0d0;font-size:13px}.notion-url-input[data-v-4f4da343] input::placeholder{color:#555;font-size:12px}.notion-error[data-v-4f4da343],.notion-valid[data-v-4f4da343]{padding-bottom:6px}.sentry-toggle-btn[data-v-4f4da343]{background:#333;padding:2px 10px}.sentry-url-wrap[data-v-4f4da343]{background:#1e1e3a;padding:8px 0 0}.sentry-url-input[data-v-4f4da343]{padding:0 12px}.sentry-url-input[data-v-4f4da343] .q-field__control{height:36px;min-height:36px;padding:0}.sentry-url-input[data-v-4f4da343] input{color:#d0d0d0;font-size:13px}.sentry-url-input[data-v-4f4da343] input::placeholder{color:#555;font-size:12px}.sentry-error[data-v-4f4da343],.sentry-valid[data-v-4f4da343]{padding-bottom:6px}.slide-enter-active[data-v-4f4da343],.slide-leave-active[data-v-4f4da343]{transition:all .2s;overflow:hidden}.slide-enter-from[data-v-4f4da343],.slide-leave-to[data-v-4f4da343]{opacity:0;max-height:0}.slide-enter-to[data-v-4f4da343],.slide-leave-from[data-v-4f4da343]{opacity:1;max-height:120px}.card-bottom-bar[data-v-4f4da343]{background:#1e1e3a}.bottom-row[data-v-4f4da343]{flex-wrap:wrap;min-height:40px}.bottom-row-agent[data-v-4f4da343]{border-bottom:1px solid #ffffff0f}.bottom-row-agent+.bottom-row-git[data-v-4f4da343]{background:#00000026}.skip-setup-btn[data-v-4f4da343]{min-height:28px;padding:2px 10px;font-size:11px}.skip-setup-btn[data-v-4f4da343] .q-btn__content{gap:4px}.skip-setup-btn[data-v-4f4da343] .q-icon{font-size:14px}.bottom-row-git .bottom-select.repo-select[data-v-4f4da343]{flex:280px;min-width:220px}.bottom-row-git .bottom-select.repo-select[data-v-4f4da343] input{color:#bbb;padding:0 4px;font-size:11px}.bottom-row-git .bottom-select.repo-select[data-v-4f4da343] input::placeholder{color:#666;font-style:italic}.bottom-row-git .bottom-select.branch-type-select[data-v-4f4da343],.bottom-row-git .bottom-select.branch-select[data-v-4f4da343]{flex:none}.bottom-select[data-v-4f4da343]{background:#333;min-width:60px;height:28px;padding:0 6px}.bottom-select[data-v-4f4da343] .q-field__control{height:28px;min-height:28px;padding:0}.bottom-select[data-v-4f4da343] .q-field__native{min-height:unset;padding:0}.bottom-select-label[data-v-4f4da343]{color:#bbb;gap:2px;font-size:11px}.bottom-sep[data-v-4f4da343]{color:#555;padding:0 2px;font-size:12px;line-height:1}.repo-path-wrap[data-v-4f4da343]{background:#333;border-radius:6px;height:28px;padding:0 8px}.repo-input[data-v-4f4da343]{min-width:140px}.repo-input[data-v-4f4da343] .q-field__control{height:28px;min-height:28px;padding:0}.repo-input[data-v-4f4da343] input{color:#bbb;font-size:11px}.repo-input[data-v-4f4da343] input::placeholder{color:#666;font-size:11px}.branch-select[data-v-4f4da343]{min-width:80px}.create-btn[data-v-4f4da343]{color:#fff;background:#4f46e5;min-width:220px;height:32px;padding:0 32px;font-size:13px}.create-btn[data-v-4f4da343] .q-btn__content{height:32px}.create-hint[data-v-4f4da343]{line-height:1.5}.fade-enter-active[data-v-4f4da343],.fade-leave-active[data-v-4f4da343]{transition:opacity .2s}.fade-enter-from[data-v-4f4da343],.fade-leave-to[data-v-4f4da343]{opacity:0}.manual-hint[data-v-4f4da343]{background:#1e1e3a;line-height:1.4}.manual-expansion[data-v-4f4da343]{background:#1e1e3a;border:1px solid #333;border-radius:4px;margin-top:6px;overflow:hidden}.manual-expansion[data-v-4f4da343] .manual-expansion-header{min-height:32px;padding:4px 10px;font-size:12px}.manual-expansion[data-v-4f4da343] .q-expansion-item__content,.manual-section-body[data-v-4f4da343]{background:#1a1a2e}.manual-input[data-v-4f4da343] .q-field__control{height:26px;min-height:26px;padding:0}.manual-input[data-v-4f4da343] input{color:#e0e0e0;font-size:12px}.manual-input[data-v-4f4da343] input::placeholder{color:#555}.manual-item[data-v-4f4da343]{border-top:1px solid #ffffff0a}.manual-item[data-v-4f4da343]:first-child{border-top:none}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.quota-footer[data-v-0c047f57]{color:#a0a0c0;white-space:nowrap;cursor:default;font-size:.75rem}.quota-footer--empty[data-v-0c047f57]{color:#6a6a8a}.chat-input-container[data-v-36ab673f]{background-color:#16162a;border-top:1px solid #2a2a4a;min-height:48px;position:relative}.chat-input-container.chat-input-dragging[data-v-36ab673f]{outline-offset:-2px;outline:2px dashed #6c63ff}.chat-input[data-v-36ab673f]{background-color:#224;padding:4px 12px}.chat-input[data-v-36ab673f] .q-field__control{min-height:32px}.chat-input[data-v-36ab673f] textarea,.chat-input[data-v-36ab673f] input{color:#ccc;font-size:13px}.skills-popup[data-v-36ab673f]{z-index:9999;background-color:#1e1e3a;border:1px solid #2a2a4a;max-height:300px;position:absolute;bottom:calc(100% + 4px);left:8px;right:48px;overflow-y:auto;box-shadow:0 -4px 16px #0006}.skills-section-header[data-v-36ab673f]{text-transform:uppercase;color:#6b7280;letter-spacing:.05em;border-top:1px solid #ffffff0d;padding:4px 12px;font-size:10px}.skills-section-header[data-v-36ab673f]:first-child{border-top:none}.skill-item[data-v-36ab673f]{font-family:Roboto Mono,monospace}.skill-item[data-v-36ab673f]:hover,.skill-item--active[data-v-36ab673f]{background-color:#6c63ff26}.image-tag[data-v-36ab673f]{font-family:Roboto Mono,monospace;font-size:12px;line-height:1}.image-tag--uploading[data-v-36ab673f]{color:#88a;background-color:#2a2a4a;border:1px solid #3a3a5a}.image-tag--ready[data-v-36ab673f]{color:#6aaa6a;background-color:#1a2a1a;border:1px solid #2a4a2a}.image-tag--error[data-v-36ab673f]{color:#aa6a6a;background-color:#2a1a1a;border:1px solid #4a2a2a}.image-tag-label[data-v-36ab673f]{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.chat-hint[data-v-36ab673f]{text-align:left;padding:2px 4px 0;font-size:10px}.chat-hint kbd[data-v-36ab673f]{background-color:#2a2a4a;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px}.queue-banner[data-v-36ab673f]{background-color:#2a2a1a;border-bottom:1px solid #4a4a2a}.image-tag-close[data-v-36ab673f]{color:#a44;opacity:.7}.image-tag-close[data-v-36ab673f]:hover{opacity:1}.wp-header[data-v-cf4438b2]{background-color:#16162a;border-bottom:1px solid #2a2a4a;min-height:48px}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-DETQbE-a.js","assets/index-B0Jj-w-E.js","assets/vue-i18n-eUDnMrPl.js","assets/runtime-core.esm-bundler-C3IgBgY5.js","assets/QIcon-B0-pH3Qs.js","assets/use-id-BmXMngYX.js","assets/QSeparator-DNSiXYrN.js","assets/QBtn-CyzfM9-_.js","assets/use-checkbox-BduGd8xg.js","assets/private.use-form-C5G_3nU5.js","assets/QDialog-G448EJG4.js","assets/scroll-C-Vz5BD9.js","assets/symbols-DCYodwb2.js","assets/index-eX_lKHSg.css","assets/_plugin-vue_export-helper-Cj6tcsj6.js","assets/documents-CByb0FJM.js","assets/QExpansionItem-HLBjHx-0.js","assets/QItemSection-BzWLL-V-.js","assets/QItemLabel-Czw5g0px.js","assets/QSlideTransition-s6ZkYsLs.js","assets/QScrollArea-CBW6shMb.js","assets/touch-B2uuAH_y.js","assets/TouchPan-Y_Bxzun2.js","assets/QTooltip-DbEBexRN.js","assets/QSpinnerDots-By20ptst.js","assets/ActivityFeed-GAoo1WOT.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{E as e,F as t,H as n,L as r,M as i,Q as a,S as o,T as s,U as c,W as l,_ as u,_t as d,a as f,bt as p,d as m,f as h,g,h as _,l as v,p as y,r as b,rt as x,u as S,v as C,w,y as T}from"./runtime-core.esm-bundler-C3IgBgY5.js";import{I as ee,L as te,O as E,n as ne,r as D,s as O,t as k}from"./QIcon-B0-pH3Qs.js";import{t as re}from"./QSeparator-DNSiXYrN.js";import{t as ie}from"./QDialog-G448EJG4.js";import{t as A}from"./QBtn-CyzfM9-_.js";import{n as ae}from"./vue-i18n-eUDnMrPl.js";import{D as j,S as M,T as N,d as P,f as F,g as oe,i as se,m as I,p as ce,v as le,w as ue}from"./index-B0Jj-w-E.js";import{t as de}from"./QSpinnerDots-By20ptst.js";import{n as fe,t as pe}from"./QItemSection-BzWLL-V-.js";import{t as me}from"./QItemLabel-Czw5g0px.js";import{t as L}from"./QTooltip-DbEBexRN.js";import{t as R}from"./_plugin-vue_export-helper-Cj6tcsj6.js";import{t as he}from"./QBadge-Di02fu2H.js";import{t as ge}from"./QSpace-0zdF1m5x.js";import{t as _e}from"./QChip-1nQ_KMFF.js";import{n as z,t as B}from"./rate-limit-labels-Su-L56A2.js";import{t as ve}from"./use-quasar-BBrzedjR.js";import{t as ye}from"./ClosePopup-DTgXzcoa.js";import{t as be}from"./formatters-D7eTm7uK.js";import{n as xe,t as Se}from"./models-GweeyU2r.js";import{t as Ce}from"./QPage-BTzNQlb1.js";var V={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},H={key:0,class:`q-ml-xs`},we=C({__name:`AgentBusyBanner`,setup(e){let{t:n}=ae(),r=le(),i=w(`openDrawerTab`),a=v(()=>r.currentSubagents.filter(e=>e.status===`running`).length),o=v(()=>{let e=r.selectedWorkspace;return e?e.status===`executing`||a.value>0:!1});function s(){i?.(`subagents`)}return(e,r)=>o.value?(t(),y(`div`,V,[g(de,{size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),S(`span`,null,p(x(n)(`agentBusy.banner`)),1),a.value>0?(t(),y(`span`,H,` — `+p(x(n)(`agentBusy.subagentsRunning`,{n:a.value},a.value)),1)):h(``,!0),a.value>0?(t(),y(b,{key:1},[g(ge),S(`span`,{class:`text-indigo-4 cursor-pointer`,style:{"text-decoration":`underline`},onClick:s},p(x(n)(`agentBusy.viewSubagents`)),1)],64)):h(``,!0)])):h(``,!0)}}),U=E({name:`QBanner`,props:{...D,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(e,{slots:t}){let{proxy:{$q:n}}=T(),r=ne(e,n),i=v(()=>`q-banner row items-center`+(e.dense===!0?` q-banner--dense`:``)+(r.value===!0?` q-banner--dark q-dark`:``)+(e.rounded===!0?` rounded-borders`:``)),a=v(()=>`q-banner__actions row items-center justify-end col-${e.inlineActions===!0?`auto`:`all`}`);return()=>{let n=[o(`div`,{class:`q-banner__avatar col-auto row items-center self-start`},O(t.avatar)),o(`div`,{class:`q-banner__content col text-body2`},O(t.default))],r=O(t.action);return r!==void 0&&n.push(o(`div`,{class:a.value},r)),o(`div`,{class:i.value+(e.inlineActions===!1&&r!==void 0?` q-banner--top-padding`:``),role:`alert`},n)}}}),W={class:`text-subtitle2`},G={class:`text-caption`},Te=C({__name:`AgentErrorBanner`,props:{workspaceId:{}},setup(e){let n=e,{t:r}=ae(),i=M();function a(e){let t=e.replace(/\u001b\[\d+m/g,``).trim();return/^warning:/i.test(t)}let o=v(()=>{let e=i.eventsFor(n.workspaceId);for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(n.kind!==`error`||n.category===`quota`)&&!(n.category===`other`&&a(n.message)))return n}return null});return(e,n)=>o.value?(t(),m(U,{key:0,class:`bg-negative text-white q-ma-sm`},{avatar:c(()=>[g(k,{name:`error_outline`})]),default:c(()=>[S(`div`,W,p(x(r)(`agent.error.${o.value.category}`)),1),S(`div`,G,p(o.value.message),1)]),_:1})):h(``,!0)}}),K={class:`text-weight-medium`},q={key:0,class:`text-caption`},J={key:1,class:`text-caption`},Y={class:`text-caption q-mt-sm`},X=R(C({__name:`QuotaFooter`,setup(e){let n=le(),{t:i}=ae(),a=v(()=>n.globalRateLimitUsage);function o(e,t){return!e||e.trim().length===0?i(`stats.usageBucket`,{n:t+1}):B(e,i)}let s=v(()=>{let e=a.value;return!e||e.buckets.length===0?`${i(`quotaFooter.placeholder`)} 0%`:e.buckets.map((e,t)=>`${o(e.label,t)} ${e.usedPct.toFixed(0)}%`).join(` · `)}),l=v(()=>{let e=a.value;if(!e)return``;try{return new Date(e.updatedAt).toLocaleTimeString()}catch{return e.updatedAt}});return(e,n)=>(t(),y(`span`,{class:d([`quota-footer`,{"quota-footer--empty":!a.value}])},[_(p(s.value)+` `,1),a.value?(t(),m(L,{key:0},{default:c(()=>[S(`div`,K,p(e.$t(`quotaFooter.tooltipTitle`)),1),(t(!0),y(b,null,r(a.value.buckets,(n,r)=>(t(),y(`div`,{key:n.id,class:`q-mt-xs`},[S(`div`,null,p(o(n.label,r))+` — `+p(n.usedPct.toFixed(0))+`% `+p(e.$t(`stats.used`)),1),n.details?(t(),y(`div`,q,p(n.details),1)):h(``,!0),n.resetAt?(t(),y(`div`,J,p(e.$t(`stats.resetsAt`,{value:n.resetAt})),1)):h(``,!0)]))),128)),S(`div`,Y,p(e.$t(`quotaFooter.lastUpdated`,{time:l.value})),1)]),_:1})):(t(),m(L,{key:1},{default:c(()=>[_(p(e.$t(`quotaFooter.noData`)),1)]),_:1}))],2))}}),[[`__scopeId`,`data-v-0c047f57`]]);function Z(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>{let r=t[n];return r==null?e:String(r)})}function Ee(e){let t={};return e.workspace&&(t.workspace_name=e.workspace.name,t.working_branch=e.workspace.workingBranch,t.source_branch=e.workspace.sourceBranch,t.project_path=e.workspace.projectPath,t.worktree_path=`${e.workspace.projectPath}/.worktrees/${e.workspace.workingBranch}`),e.gitStats&&(t.commit_count=e.gitStats.commitCount,t.unpushed_count=e.gitStats.unpushedCount,t.files_changed=e.gitStats.filesChanged,t.insertions=e.gitStats.insertions,t.deletions=e.gitStats.deletions,e.gitStats.prNumber!=null&&(t.pr_number=e.gitStats.prNumber),e.gitStats.prUrl&&(t.pr_url=e.gitStats.prUrl),e.gitStats.prState&&(t.pr_state=e.gitStats.prState)),e.sessionName&&(t.session_name=e.sessionName),t}var De={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},Oe={class:`text-caption image-tag-label`},ke={key:1,class:`skills-popup rounded-borders`},Ae={class:`skills-section-header`},Q=[`onMousedown`],je={class:`skill-name text-caption`},Me={class:`skills-section-header`},Ne=[`onMousedown`],Pe={class:`skill-name text-caption`},Fe={key:0,class:`skill-description text-caption text-grey-7 q-ml-xs`},Ie={class:`skills-section-header`},Le=[`onMousedown`],Re={class:`skill-name text-caption`},ze={key:0,class:`skill-description text-caption text-grey-7 q-ml-xs`},Be={key:2,class:`queue-banner row items-center q-pa-xs q-px-sm text-caption text-amber-6`},Ve={class:`row items-center q-gutter-sm`},He={class:`chat-hint row items-center text-caption text-grey-8`},$=R(C({__name:`ChatInput`,props:{workspaceId:{}},setup(o){let s=o,{t:l}=ae(),u=ve(),f=le(),x=oe(),C=ue(),w=a(``),T=a(!1),ee=v(()=>{let e=f.selectedWorkspace;return e?[`executing`,`extracting`,`brainstorming`].includes(e.status):!1});async function E(){if(s.workspaceId){T.value=!0;try{await f.interruptAgent(s.workspaceId),u.notify({type:`info`,message:l(`workspacePage.interrupted`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:l(`workspacePage.interruptFailed`);u.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{T.value=!1}}}let ne=v(()=>{let e=f.selectedWorkspace;return e?[`executing`,`extracting`,`brainstorming`].includes(e.status):!1}),D=v(()=>!!f.queuedMessages[s.workspaceId]),O=a(null);function re(){let e=O.value;return e?e.getNativeElement?.()??null:null}let ie=a([]),j=a(!1),M=a(``),N=a(0),P=v(()=>{let e=M.value.toLowerCase(),t=t=>e===``?!0:t.toLowerCase().includes(e);return{skills:ie.value.filter(e=>t(e)).map(e=>({type:`skill`,name:e})),kobo:Object.keys(z).map(e=>e.replace(/^\//,``)).filter(e=>t(e)).map(e=>({type:`kobo`,name:e})),templates:C.templates.filter(e=>t(e.slug)).map(e=>({type:`template`,name:e.slug,description:e.description}))}}),F=v(()=>[...P.value.skills,...P.value.kobo,...P.value.templates]);n(()=>F.value.length,e=>{if(e===0){N.value=0;return}N.value>=e&&(N.value=e-1)});let I=a([]),ce=a(null),fe=a(!1),pe=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];function me(t){let n=re(),r=n?.selectionStart??w.value.length,i=w.value.slice(0,r),a=w.value.slice(r);w.value=i+t+a,e(()=>{if(n){let e=r+t.length;n.focus(),n.setSelectionRange(e,e)}})}function R(){let e=`[image: ${l(`chatInput.uploading`)}]`,t=new Set(I.value.map(e=>e.placeholder));if(!t.has(e))return e;let n=2;for(;t.has(`[image: ${l(`chatInput.uploading`)} ${n}]`);)n++;return`[image: ${l(`chatInput.uploading`)} ${n}]`}async function he(e){if(!pe.includes(e.type))return;let t=crypto.randomUUID(),n=e.name||`pasted-image.png`,r=R(),i={tempId:t,originalName:n,placeholder:r,status:`uploading`};I.value.push(i),me(r);try{let n=new FormData;n.append(`image`,e);let r=await fetch(`/api/workspaces/${s.workspaceId}/images`,{method:`POST`,body:n});if(!r.ok){let e=await r.json();throw Error(e.error||`Upload failed`)}let i=await r.json(),a=I.value.find(e=>e.tempId===t);if(a){a.uid=i.uid,a.path=i.path,a.status=`ready`;let e=`[image: ${i.path}]`;e!==a.placeholder&&(w.value=w.value.split(a.placeholder).join(e),a.placeholder=e)}}catch{let e=I.value.find(e=>e.tempId===t);e&&(e.status=`error`)}}function _e(e,t){fetch(`/api/workspaces/${e}/images/${t}`,{method:`DELETE`}).catch(()=>{})}function B(e){let t=I.value.find(t=>t.tempId===e);if(t){I.value=I.value.filter(t=>t.tempId!==e);{let e=t.placeholder.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);w.value=w.value.replace(RegExp(`${e}\\s?`,`g`),``)}t.uid&&_e(s.workspaceId,t.uid)}}function ye(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&he(e)}}}function be(e){if(e.preventDefault(),fe.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))pe.includes(t.type)&&he(t)}function xe(e){e.preventDefault(),fe.value=!0}function Se(){fe.value=!1}function Ce(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))he(e);t.value=``}}let V=v(()=>I.value.some(e=>e.status===`uploading`)),H=v(()=>f.sessions.find(e=>e.id===f.selectedSessionId)??null),we=0;async function U(){let e=Date.now();if(!(e-we<5e3)){we=e;try{let e=await fetch(`/api/skills`);e.ok&&(ie.value=await e.json())}catch{}}}i(U),n(()=>f.chatDraft,e=>{e&&(w.value=w.value?`${w.value}\n${e}`:e,f.chatDraft=``)});let W=!1;function G(){W=!0,f.cancelQueuedMessage(s.workspaceId)}n(D,(e,t)=>{t&&!e&&!W&&(w.value=``),W=!1}),n(()=>s.workspaceId,e=>{let t=f.queuedMessages[e];w.value=t?t.content:``});function Te(){let e=re();if(!e)return null;let t=e.selectionStart??w.value.length,n=w.value.slice(0,t).match(/\/([\w:.-]*)$/);return n?n[1]:null}n(w,async()=>{await e();let t=Te();t===null?j.value=!1:(await U(),M.value=t,j.value=!0,N.value=0);let n=[];for(let e of I.value)w.value.includes(e.placeholder)||n.push(e.tempId);for(let e of n)B(e)});function K(t){let n=re();if(!n){w.value=t;return}let r=n.selectionStart??w.value.length,i=w.value.slice(0,r),a=w.value.slice(r),o=i.match(/\/[\w-]*$/);if(!o){w.value=t;return}let s=o.index??r;w.value=w.value.slice(0,s)+t+a,e(()=>{let e=s+t.length;n.focus(),n.setSelectionRange(e,e)})}function q(e){if(!e)return;if(e.type===`template`){let t=C.templates.find(t=>t.slug===e.name);if(!t)return;let n=f.workspaces.find(e=>e.id===s.workspaceId)??null,r=f.gitStatsCache[s.workspaceId]??null,i=f.sessions.find(e=>e.id===f.selectedSessionId)??null,a=null;if(i)if(i.name)a=i.name;else{let e=f.sessions.findIndex(e=>e.id===i.id);a=l(`workspacePage.session`,{n:f.sessions.length-e})}let o;if(r?.prUrl){let e=r.prUrl.match(/\/pull\/(\d+)/);e&&(o=parseInt(e[1],10))}let c=Ee({workspace:n?{name:n.name,workingBranch:n.workingBranch,sourceBranch:n.sourceBranch,projectPath:n.projectPath}:null,gitStats:r?{commitCount:r.commitCount,unpushedCount:r.unpushedCount,filesChanged:r.filesChanged,insertions:r.insertions,deletions:r.deletions,prNumber:o,prUrl:r.prUrl,prState:r.prState}:null,sessionName:a});K(Z(t.content,c)),j.value=!1;return}let t=`/${e.name}`;if(e.type===`kobo`&&z[t]){w.value=t,j.value=!1,qe();return}K(`${t} `),j.value=!1}let J=v(()=>!s.workspaceId),Y=a(JSON.parse(localStorage.getItem(`kobo:chatHistory`)??`[]`)),$=a(-1),Ue=a(``);function We(e){e&&Y.value[0]!==e&&(Y.value.unshift(e),Y.value.length>50&&Y.value.pop(),localStorage.setItem(`kobo:chatHistory`,JSON.stringify(Y.value)))}function Ge(){$.value=-1,Ue.value=``}function Ke(e){let t=z[`/${e}`]?.descriptionKey;return t?l(t):``}async function qe(){let e=w.value.trim();if(!e&&I.value.length===0||J.value||V.value)return;let t=H.value,n=z[e];if(n){x.sendChatMessage(s.workspaceId,n.prompt,f.selectedSessionId??void 0),f.markRead(s.workspaceId),f.addActivityItem(s.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:n.prompt,timestamp:new Date().toISOString(),sessionId:f.selectedSessionId??void 0,meta:{sender:`user`,pending:!0}}),We(e),Ge(),w.value=``;return}if(ne.value){f.queueMessage(s.workspaceId,e,f.selectedSessionId??void 0);return}f.cancelQueuedMessage(s.workspaceId);let r=e,i=I.value.filter(e=>e.status===`ready`&&e.path&&!r.includes(`[image: ${e.path}]`)).map(e=>`[image: ${e.path}]`).join(` `);i&&(r=`${r} ${i}`.trim());let a=f.selectedSessionId??void 0;if((t?.status===`completed`||t?.status===`error`)&&!t.engineSessionId){u.notify({type:`warning`,message:l(`workspacePage.sessionEndedNotice`),position:`top`,timeout:5e3});return}let o=`user-${Date.now()}`;f.markRead(s.workspaceId),f.addActivityItem(s.workspaceId,{id:o,type:`text`,content:r,timestamp:new Date().toISOString(),sessionId:a,meta:{sender:`user`,pending:!0}});let c=e;We(e),Ge(),w.value=``,I.value=[];let d=(e,t)=>{console.error(`[ChatInput] ${t} failed:`,e),f.removeActivityItem(s.workspaceId,o),w.value=c;let n=e instanceof Error?e.message:null;u.notify({type:`negative`,message:n??l(`workspacePage.startFailed`),position:`top`,timeout:6e3})};if(t?.status===`idle`)try{await f.startWorkspace(s.workspaceId,r,t.id),await f.fetchSessions(s.workspaceId)}catch(e){d(e,`startWorkspace`)}else if(t?.status===`completed`||t?.status===`error`)try{await f.startWorkspace(s.workspaceId,r,t.id,!0),await f.fetchSessions(s.workspaceId)}catch(e){d(e,`resume session`)}else x.sendChatMessage(s.workspaceId,r,f.selectedSessionId??void 0)}function Je(e){if(j.value&&F.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),N.value=Math.min(N.value+1,F.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),N.value=Math.max(N.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),q(F.value[N.value]);return}if(e.key===`Escape`){e.preventDefault(),j.value=!1;return}}if(e.key===`ArrowUp`&&Y.value.length>0){let t=e.target;if(!(!t||t.selectionStart<=(w.value.indexOf(`
|
|
3
|
-
`)===-1?w.value.length:w.value.indexOf(`
|
|
4
|
-
`)))&&$.value===-1)return;e.preventDefault(),$.value===-1&&(Ue.value=w.value),$.value<Y.value.length-1&&($.value++,w.value=Y.value[$.value]);return}if(e.key===`ArrowDown`&&$.value>=0){e.preventDefault(),$.value--,w.value=$.value>=0?Y.value[$.value]:Ue.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),qe())}return(e,n)=>(t(),y(`div`,{class:d([`chat-input-container column q-pa-sm`,{"chat-input-dragging":fe.value}]),onDragover:xe,onDragleave:Se,onDrop:be},[I.value.length>0?(t(),y(`div`,De,[(t(!0),y(b,null,r(I.value,n=>(t(),y(`div`,{key:n.tempId,class:d([`image-tag row items-center q-px-sm q-py-xs rounded-borders`,{"image-tag--uploading":n.status===`uploading`,"image-tag--ready":n.status===`ready`,"image-tag--error":n.status===`error`}])},[n.status===`uploading`?(t(),m(de,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):n.status===`ready`?(t(),m(k,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(t(),m(k,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),S(`span`,Oe,p(n.status===`uploading`?e.$t(`chatInput.uploading`):n.path||n.originalName),1),g(A,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:e=>B(n.tempId)},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`tooltip.removeImage`)),1)]),_:1})]),_:1},8,[`onClick`])],2))),128))])):h(``,!0),j.value&&F.value.length>0?(t(),y(`div`,ke,[P.value.skills.length>0?(t(),y(b,{key:0},[S(`div`,Ae,p(e.$t(`chatInput.dropdownSkills`)),1),(t(!0),y(b,null,r(P.value.skills,e=>(t(),y(`div`,{key:`skill-${e.name}`,class:d([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":F.value.indexOf(e)===N.value}]),onMousedown:te(t=>q(e),[`prevent`])},[g(k,{name:`bolt`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),S(`span`,je,p(e.name),1)],42,Q))),128))],64)):h(``,!0),P.value.kobo.length>0?(t(),y(b,{key:1},[S(`div`,Me,p(e.$t(`chatInput.dropdownKobo`)),1),(t(!0),y(b,null,r(P.value.kobo,e=>(t(),y(`div`,{key:`kobo-${e.name}`,class:d([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":F.value.indexOf(e)===N.value}]),onMousedown:te(t=>q(e),[`prevent`])},[g(k,{name:`terminal`,size:`12px`,color:`teal-4`,class:`q-mr-xs`}),S(`span`,Pe,`/`+p(e.name),1),Ke(e.name)?(t(),y(`span`,Fe,`— `+p(Ke(e.name)),1)):h(``,!0)],42,Ne))),128))],64)):h(``,!0),P.value.templates.length>0?(t(),y(b,{key:2},[S(`div`,Ie,p(e.$t(`chatInput.dropdownTemplates`)),1),(t(!0),y(b,null,r(P.value.templates,e=>(t(),y(`div`,{key:`tpl-${e.name}`,class:d([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":F.value.indexOf(e)===N.value}]),onMousedown:te(t=>q(e),[`prevent`])},[g(k,{name:`description`,size:`12px`,color:`amber-4`,class:`q-mr-xs`}),S(`span`,Re,`/`+p(e.name),1),e.description?(t(),y(`span`,ze,`— `+p(e.description),1)):h(``,!0)],42,Le))),128))],64)):h(``,!0)])):h(``,!0),D.value?(t(),y(`div`,Be,[g(k,{name:`schedule`,size:`14px`,color:`amber-6`,class:`q-mr-sm`}),S(`span`,null,p(e.$t(`chatInput.queueBanner`)),1)])):h(``,!0),S(`div`,Ve,[g(se,{ref_key:`chatInputRef`,ref:O,modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,dense:``,dark:``,borderless:``,autogrow:``,readonly:D.value,placeholder:e.$t(`chatInput.placeholder`),class:`chat-input col rounded-borders`,disable:J.value,onKeydown:Je,onPaste:ye},null,8,[`modelValue`,`readonly`,`placeholder`,`disable`]),S(`input`,{ref_key:`fileInputRef`,ref:ce,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:Ce},null,544),g(A,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:J.value,onClick:n[1]||=e=>ce.value?.click()},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`chatInput.attachImage`)),1)]),_:1})]),_:1},8,[`disable`]),D.value?(t(),m(A,{key:0,flat:``,dense:``,icon:`cancel`,color:`orange`,onClick:G},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`chatInput.cancelQueue`)),1)]),_:1})]),_:1})):(t(),m(A,{key:1,flat:``,dense:``,icon:`send`,color:`primary`,disable:J.value||!w.value.trim()&&I.value.length===0||V.value,onClick:qe},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`tooltip.sendMessage`)),1)]),_:1})]),_:1},8,[`disable`]))]),S(`div`,He,[S(`div`,null,[n[2]||=S(`kbd`,null,`Enter`,-1),_(` `+p(e.$t(`common.send`))+` `,1),n[3]||=S(`span`,{class:`q-mx-xs`},`·`,-1),n[4]||=_(),n[5]||=S(`kbd`,null,`Shift+Enter`,-1),_(` `+p(e.$t(`common.newLine`))+` `,1),n[6]||=S(`span`,{class:`q-mx-xs`},`·`,-1),n[7]||=_(),n[8]||=S(`kbd`,null,`↑↓`,-1),_(` `+p(e.$t(`common.history`)),1)]),g(ge),g(X,{class:`q-mr-md`}),ee.value?(t(),m(A,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,color:`orange-4`,icon:`pause`,label:e.$t(`workspacePage.interrupt`),loading:T.value,disable:T.value,onClick:E},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`workspacePage.interruptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):h(``,!0)])],34))}}),[[`__scopeId`,`data-v-36ab673f`]]),Ue={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},We={class:`text-body1 text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`480px`}},Ge={class:`row items-center no-wrap text-caption text-grey-5`},Ke={class:`row items-center no-wrap text-caption text-grey-5`},qe={class:`row items-center no-wrap text-caption text-grey-5`},Je={key:1,class:`text-body2 text-grey-8`},Ye={class:`col column items-center justify-center`},Xe={class:`text-grey-6 text-caption q-mt-sm`},Ze={class:`text-subtitle1`},Qe=R(C({__name:`WorkspacePage`,setup(e){let r=u(()=>Promise.all([F(()=>import(`./ActivityFeed-DETQbE-a.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),o=ve(),C=le(),{t:w}=ae(),{timeAgo:T}=be();a(!1);let E=a(!1),ne=new Set,D=a(new Set),O=v(()=>{let e=C.selectedWorkspace?.status;return e===`executing`||e===`extracting`||e===`brainstorming`});n(O,e=>{e||(D.value=new Set)}),n(()=>C.selectedWorkspaceId,()=>{D.value=new Set});function M(e){if(!O.value)return;let t=new Set(D.value);t.add(e),D.value=t}function oe(e){ne.add(e),e.finally(()=>{ne.delete(e)})}a(!1);async function ue(){if(C.selectedWorkspaceId){E.value=!0;try{await C.stopWorkspace(C.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:w(`workspacePage.stopFailed`);o.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{E.value=!1}}}let R=v(()=>[...Se.map(e=>({label:w(e.i18nLabelKey),value:e.value}))]),z=v(()=>[{label:U(w(`reasoning.auto`)),value:`auto`},{label:U(w(`reasoning.low`)),value:`low`},{label:U(w(`reasoning.medium`)),value:`medium`},{label:U(w(`reasoning.high`)),value:`high`},{label:U(w(`reasoning.xhigh`)),value:`xhigh`},{label:U(w(`reasoning.max`)),value:`max`}]),B=v(()=>[{label:w(`permissionMode.autoAccept`),value:`auto-accept`},{label:w(`permissionMode.plan`),value:`plan`}]),V=v({get:()=>C.selectedWorkspace?.model??`auto`,set:e=>{C.selectedWorkspaceId&&(M(`model`),oe(C.updateModel(C.selectedWorkspaceId,e)))}}),H=v({get:()=>C.selectedWorkspace?.reasoningEffort??`auto`,set:e=>{C.selectedWorkspaceId&&(M(`reasoningEffort`),oe(C.updateReasoningEffort(C.selectedWorkspaceId,e)))}});function U(e){let t=e.indexOf(`:`);return t>=0?e.slice(t+1).trim():e}function W(e){return z.value.find(t=>t.value===e)?.label??e}let G=v({get:()=>C.selectedWorkspace?.permissionMode??`auto-accept`,set:e=>{C.selectedWorkspaceId&&(M(`permissionMode`),oe(C.updatePermissionMode(C.selectedWorkspaceId,e)))}}),K=v(()=>{let e=C.selectedWorkspaceId;if(!e)return{inputTokens:0,outputTokens:0,costUsd:0,totalTokens:0};let t=C.usageStats[e]??{inputTokens:0,outputTokens:0,costUsd:0};return{inputTokens:t.inputTokens,outputTokens:t.outputTokens,costUsd:t.costUsd,totalTokens:t.inputTokens+t.outputTokens}});function q(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}let J=ce(),Y=I(),X=v(()=>C.selectedWorkspaceId),Z=v(()=>C.selectedWorkspace),Ee=v(()=>C.sessions),De=v({get:()=>C.selectedSessionId,set:e=>{if(e===`__new__`){Pe();return}if(!e)return;C.selectSession(e);let t={...J.query};t.session=e,Y.replace({query:t})}}),Oe=v(()=>[...C.sessions.map((e,t)=>({label:e.name??w(`workspacePage.session`,{n:C.sessions.length-t}),value:e.id,caption:T(e.startedAt),isSession:!0})),{label:w(`workspacePage.newSession`),value:`__new__`,caption:``,isSession:!1}]),ke=a(!1),Ae=a(null),Q=a(``),je=a(!1);function Me(e,t){let n=C.sessions.find(t=>t.id===e);n&&(Ae.value={id:e},Q.value=n.name??t,ke.value=!0)}async function Ne(){if(!(!Ae.value||!C.selectedWorkspaceId))try{await C.renameSession(C.selectedWorkspaceId,Ae.value.id,Q.value.trim())}catch(e){console.error(`[WorkspacePage] renameSession failed:`,e),o.notify({type:`negative`,message:w(`workspacePage.renameFailed`),position:`top`})}finally{ke.value=!1}}async function Pe(){if(C.selectedWorkspaceId){je.value=!0;try{await C.createSession(C.selectedWorkspaceId)}catch(e){console.error(`[WorkspacePage] createSession failed:`,e);let t=e instanceof Error?e.message:null;o.notify({type:`negative`,message:t??w(`workspacePage.createSessionFailed`),position:`top`,timeout:6e3})}finally{je.value=!1}}}return i(()=>{let e=J.params.id;e&&C.selectWorkspace(e);let t=J.query.session;t&&C.selectSession(t)}),n(()=>J.params.id,e=>{e&&e!==C.selectedWorkspaceId&&C.selectWorkspace(e)}),(e,n)=>(t(),m(Ce,{class:`column no-wrap`,style:{height:`100vh`}},{default:c(()=>[S(`div`,Ue,[Z.value?(t(),y(b,{key:0},[S(`span`,We,[_(p(Z.value.name)+` `,1),g(L,null,{default:c(()=>[_(p(Z.value.name),1)]),_:1})]),g(he,{label:Z.value.status,color:[`error`,`quota`].includes(Z.value.status)?`red-9`:[`extracting`,`brainstorming`,`executing`].includes(Z.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),K.value.totalTokens>0?(t(),m(_e,{key:0,dense:``,color:`grey-9`,"text-color":`grey-3`,class:`q-ml-sm`,style:{"font-size":`10px`}},{default:c(()=>[g(k,{name:`toll`,size:`12px`,class:`q-mr-xs`}),S(`span`,null,p(e.$t(`stats.tokens`))+`: `+p(q(K.value.totalTokens)),1),g(L,null,{default:c(()=>[_(p(e.$t(`stats.inputTokens`))+`: `+p(q(K.value.inputTokens)),1),n[6]||=S(`br`,null,null,-1),_(` `+p(e.$t(`stats.outputTokens`))+`: `+p(q(K.value.outputTokens)),1)]),_:1})]),_:1})):h(``,!0),K.value.costUsd>0?(t(),m(_e,{key:1,dense:``,color:`grey-9`,"text-color":`grey-3`,class:`q-ml-xs`,style:{"font-size":`10px`}},{default:c(()=>[g(k,{name:`attach_money`,size:`12px`,class:`q-mr-xs`}),S(`span`,null,p(e.$t(`stats.cost`))+`: $`+p(K.value.costUsd.toFixed(4)),1)]),_:1})):h(``,!0),Ee.value.length>0?(t(),m(xe,{key:2,modelValue:De.value,"onUpdate:modelValue":n[0]||=e=>De.value=e,options:Oe.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,loading:je.value,disable:je.value,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},{option:c(e=>[e.opt.isSession?h(``,!0):(t(),m(re,{key:0,spaced:``})),g(fe,s(e.itemProps,{clickable:``,dense:``,class:`row items-center no-wrap`}),{default:c(()=>[g(pe,null,{default:c(()=>[g(me,{class:d(e.opt.isSession?``:`text-grey-5`)},{default:c(()=>[_(p(e.opt.label),1)]),_:2},1032,[`class`]),e.opt.caption?(t(),m(me,{key:0,caption:``},{default:c(()=>[_(p(e.opt.caption),1)]),_:2},1024)):h(``,!0)]),_:2},1024),e.opt.isSession?(t(),m(pe,{key:0,side:``},{default:c(()=>[g(A,{icon:`more_vert`,flat:``,dense:``,round:``,size:`xs`,color:`grey-6`,onClick:te(t=>Me(e.opt.value,e.opt.label),[`stop`])},null,8,[`onClick`])]),_:2},1024)):h(``,!0)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`loading`,`disable`])):h(``,!0),g(ge),g(xe,{modelValue:G.value,"onUpdate:modelValue":n[1]||=e=>G.value=e,options:B.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-xs`,style:{"min-width":`80px`,"max-width":`140px`,"font-size":`11px`}},{selected:c(()=>[S(`span`,Ge,[g(k,{name:G.value===`plan`?`visibility`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),_(` `+p(B.value.find(e=>e.value===G.value)?.label??G.value)+` `,1),D.value.has(`permissionMode`)?(t(),m(k,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(xe,{modelValue:V.value,"onUpdate:modelValue":n[2]||=e=>V.value=e,options:R.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm model-select`,style:{"min-width":`100px`,"max-width":`160px`,"font-size":`11px`}},{selected:c(()=>[S(`span`,Ke,[g(k,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),_(` `+p(R.value.find(e=>e.value===V.value)?.label??V.value)+` `,1),D.value.has(`model`)?(t(),m(k,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),g(xe,{modelValue:H.value,"onUpdate:modelValue":n[3]||=e=>H.value=e,options:z.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm`,style:{"min-width":`90px`,"max-width":`140px`,"font-size":`11px`}},{selected:c(()=>[S(`span`,qe,[g(k,{name:`psychology`,size:`12px`,color:`amber-6`,class:`q-mr-xs`}),_(` `+p(W(H.value))+` `,1),D.value.has(`reasoningEffort`)?(t(),m(k,{key:0,name:`schedule`,size:`11px`,color:`orange-6`,class:`q-ml-xs`},{default:c(()=>[g(L,null,{default:c(()=>[_(p(e.$t(`workspacePage.pendingNextRun`)),1)]),_:1})]),_:1})):h(``,!0)])]),_:1},8,[`modelValue`,`options`]),[`extracting`,`brainstorming`,`executing`].includes(Z.value.status)?(t(),m(A,{key:3,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:e.$t(`common.stop`),class:`q-mr-xs`,loading:E.value,disable:E.value,onClick:ue},null,8,[`label`,`loading`,`disable`])):h(``,!0)],64)):(t(),y(`span`,Je,p(e.$t(`workspacePage.selectWorkspace`)),1))]),g(re,{dark:``}),X.value?(t(),m(Te,{key:0,"workspace-id":X.value},null,8,[`workspace-id`])):h(``,!0),X.value?(t(),m(f,{key:1},{fallback:c(()=>[S(`div`,Ye,[g(de,{size:`40px`,color:`indigo-4`}),S(`div`,Xe,p(e.$t(`common.loading`)),1)])]),default:c(()=>[g(x(r),{class:`col`,style:{"min-height":`0`},"workspace-id":X.value},null,8,[`workspace-id`])]),_:1})):h(``,!0),g(we),X.value?(t(),m($,{key:2,"workspace-id":X.value},null,8,[`workspace-id`])):h(``,!0),g(ie,{modelValue:ke.value,"onUpdate:modelValue":n[5]||=e=>ke.value=e,persistent:``},{default:c(()=>[g(N,{dark:``,style:{"min-width":`320px`}},{default:c(()=>[g(j,null,{default:c(()=>[S(`div`,Ze,p(x(w)(`workspacePage.renameSessionTitle`)),1)]),_:1}),g(j,null,{default:c(()=>[g(se,{modelValue:Q.value,"onUpdate:modelValue":n[4]||=e=>Q.value=e,label:x(w)(`workspacePage.sessionNameLabel`),dark:``,dense:``,autofocus:``,onKeyup:ee(Ne,[`enter`])},null,8,[`modelValue`,`label`])]),_:1}),g(P,{align:`right`},{default:c(()=>[l(g(A,{flat:``,label:x(w)(`common.cancel`)},null,8,[`label`]),[[ye]]),g(A,{flat:``,color:`primary`,label:x(w)(`workspacePage.renameSession`),disable:!Q.value.trim(),onClick:Ne},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-cf4438b2`]]);export{Qe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,h as t}from"./index-B0Jj-w-E.js";var n=t(({app:t})=>{t.use(e)});export{n as default};
|