@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
@@ -1 +0,0 @@
1
- .activity-feed[data-v-bbcd11cc]{flex-direction:column;gap:4px;display:flex;position:relative;overflow:hidden auto}.af-item[data-v-bbcd11cc]{word-break:break-word;overflow-wrap:break-word;flex-shrink:0;padding:6px 10px;overflow-x:hidden}.af-time[data-v-bbcd11cc]{color:#555;flex-shrink:0;font-size:10px}.af-tool-label[data-v-bbcd11cc]{font-family:Roboto Mono,monospace;font-size:11px}.af-tool-desc[data-v-bbcd11cc]{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.af-ask-option-item[data-v-bbcd11cc]{padding:2px 0}.af-tool-args[data-v-bbcd11cc]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-args-pre[data-v-bbcd11cc]{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-bbcd11cc]{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;padding:6px 8px}.af-file-header[data-v-bbcd11cc]{font-family:Roboto Mono,monospace;font-size:11px}.af-lang-badge[data-v-bbcd11cc]{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-bbcd11cc]{max-width:70%;font-size:11px}.af-diff-stats[data-v-bbcd11cc]{white-space:nowrap;font-family:Roboto Mono,monospace;font-size:10px}.af-diff-body[data-v-bbcd11cc]{background:#0003;border-radius:4px;max-height:300px;padding:4px 0;overflow:auto}.af-diff-line[data-v-bbcd11cc]{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-bbcd11cc]{-webkit-user-select:none;user-select:none;width:12px;display:inline-block}.af-diff-del[data-v-bbcd11cc]{color:#f85149;background:#f851491a}.af-diff-add[data-v-bbcd11cc]{color:#3fb950;background:#3fb9501a}.af-item--text[data-v-bbcd11cc]{background-color:#1a2a3a;border-left:3px solid #3b82f6}.af-item--user[data-v-bbcd11cc]{background-color:#1a2a1a;border-left:3px solid #22c55e}.af-item--prompt[data-v-bbcd11cc]{background-color:#1a1a2e;border-left:3px solid #6c63ff}.af-text-content[data-v-bbcd11cc]{color:#d0d0d0;word-break:break-word;line-height:1.5}.af-markdown[data-v-bbcd11cc] p{margin:0 0 8px}.af-markdown[data-v-bbcd11cc] p:last-child{margin-bottom:0}.af-markdown[data-v-bbcd11cc] h1,.af-markdown[data-v-bbcd11cc] h2,.af-markdown[data-v-bbcd11cc] h3{color:#e0e0e0;margin:12px 0 6px}.af-markdown[data-v-bbcd11cc] h1{font-size:16px}.af-markdown[data-v-bbcd11cc] h2{font-size:14px}.af-markdown[data-v-bbcd11cc] h3{font-size:13px}.af-markdown[data-v-bbcd11cc] ul,.af-markdown[data-v-bbcd11cc] ol{margin:4px 0;padding-left:20px}.af-markdown[data-v-bbcd11cc] li{margin:2px 0}.af-markdown[data-v-bbcd11cc] code{background-color:#ffffff14;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.af-markdown[data-v-bbcd11cc] pre{background-color:#0000004d;border-radius:4px;margin:6px 0;padding:8px;overflow-x:auto}.af-markdown[data-v-bbcd11cc] pre code{background:0 0;padding:0}.af-markdown[data-v-bbcd11cc] strong{color:#fff}.af-markdown[data-v-bbcd11cc] a{color:#6c63ff}.af-markdown[data-v-bbcd11cc] blockquote{color:#aaa;border-left:3px solid #6c63ff;margin:6px 0;padding:4px 12px}.af-markdown[data-v-bbcd11cc] table{border-collapse:collapse;margin:6px 0;font-size:11px}.af-markdown[data-v-bbcd11cc] table th,.af-markdown[data-v-bbcd11cc] table td{border:1px solid #2a2a4a;padding:4px 8px}.af-markdown[data-v-bbcd11cc] table th{background-color:#ffffff0d}.af-item--system[data-v-bbcd11cc]{background-color:#2a2a1a;border-left:3px solid #f59e0b}.af-system-details[data-v-bbcd11cc]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-system-content[data-v-bbcd11cc]{white-space:pre-wrap}.af-item--error[data-v-bbcd11cc]{background-color:#2a1a1a;border-left:3px solid #ef4444}.af-item--raw[data-v-bbcd11cc]{white-space:pre-wrap;font-family:Roboto Mono,monospace}.scroll-buttons[data-v-bbcd11cc]{align-self:flex-end;gap:6px;margin-right:8px;display:flex;position:sticky;bottom:8px}.scroll-btn[data-v-bbcd11cc]{opacity:.7;transition:opacity .15s}.scroll-btn[data-v-bbcd11cc]:hover{opacity:1}
@@ -1,4 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-CgZWB0-0.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/marked.esm-CtWESN18.js","assets/QSpinnerDots-FJCnAvfw.js","assets/ActivityFeed-ko_rO-2M.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,T as o,U as s,W as c,_ as l,_t as u,a as d,d as f,f as p,g as m,m as h,n as ee,p as g,rt as _,s as te,u as v,v as y,w as b,y as x,yt as S}from"./vue-i18n-nv59vAyH.js";import{L as C,T as w,bt as T,yt as E}from"./scroll-CWjBCoBR.js";import{i as ne}from"./private.use-form-1cZLVjGN.js";import{C as re,E as D,O as ie,S as O,f as ae,h as oe,j as se,m as ce,p as k,r as le,w as ue}from"./index-DSx45TKH.js";import{t as de}from"./QSpinnerDots-FJCnAvfw.js";import{n as A,p as j,t as M}from"./_plugin-vue_export-helper-fkfRoKj2.js";import{t as N}from"./QBadge-xNMZEqT-.js";import{a as fe,i as P,n as pe,r as F}from"./QMenu-IaCFq9U1.js";import{n as I,t as me}from"./formatters-B5Igo0Lf.js";import{t as L}from"./ClosePopup-jSuaV6dg.js";import{n as R,t as he}from"./QPage-D5bnOxz0.js";var z={key:0,class:`row items-center q-pa-xs q-px-sm bg-dark text-grey-5 text-caption`},B={key:0,class:`q-ml-xs`},ge=x({__name:`AgentBusyBanner`,setup(e){let{t:n}=ee(),r=ie(),i=b(`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(),h(`div`,z,[l(de,{size:`14px`,color:`indigo-4`,class:`q-mr-sm`}),f(`span`,null,S(_(n)(`agentBusy.banner`)),1),a.value>0?(t(),h(`span`,B,` — `+S(_(n)(`agentBusy.subagentsRunning`,{n:a.value},a.value)),1)):g(``,!0),a.value>0?(t(),h(d,{key:1},[l(j),f(`span`,{class:`text-indigo-4 cursor-pointer`,style:{"text-decoration":`underline`},onClick:s},S(_(n)(`agentBusy.viewSubagents`)),1)],64)):g(``,!0)])):g(``,!0)}});function _e(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>{let r=t[n];return r==null?e:String(r)})}function ve(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 ye={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},be={class:`text-caption image-tag-label`},V={key:1,class:`skills-popup rounded-borders`},H={class:`skills-section-header`},U=[`onMousedown`],xe={class:`skill-name text-caption`},Se={class:`skills-section-header`},W=[`onMousedown`],Ce={class:`skill-name text-caption`},we={key:0,class:`skill-description text-caption text-grey-7 q-ml-xs`},Te={class:`skills-section-header`},G=[`onMousedown`],K={class:`skill-name text-caption`},q={key:0,class:`skill-description text-caption text-grey-7 q-ml-xs`},J={key:2,class:`queue-banner row items-center q-pa-xs q-px-sm text-caption text-amber-6`},Ee={class:`row items-end q-gutter-sm`},De={class:`chat-hint text-caption text-grey-8`},Oe=M(x({__name:`ChatInput`,props:{workspaceId:{}},setup(o){let c=o,{t:_}=ee(),te=fe(),y=ie(),b=D(),x=se(),E=a(``),ne=[`executing`,`extracting`,`brainstorming`],re=v(()=>{let e=y.selectedWorkspace;return e?ne.includes(e.status):!1}),O=v(()=>!!y.queuedMessages[c.workspaceId]),ae=a(null);function oe(){let e=ae.value;return e?e.getNativeElement?.()??null:null}let ce=a([]),k=a(!1),ue=a(``),j=a(0),M=v(()=>{let e=ue.value.toLowerCase(),t=t=>e===``?!0:t.toLowerCase().includes(e);return{skills:ce.value.filter(e=>t(e)).map(e=>({type:`skill`,name:e})),kobo:Object.keys(I).map(e=>e.replace(/^\//,``)).filter(e=>t(e)).map(e=>({type:`kobo`,name:e})),templates:x.templates.filter(e=>t(e.slug)).map(e=>({type:`template`,name:e.slug,description:e.description}))}}),N=v(()=>[...M.value.skills,...M.value.kobo,...M.value.templates]);n(()=>N.value.length,e=>{if(e===0){j.value=0;return}j.value>=e&&(j.value=e-1)});let P=a([]),pe=a(null),F=a(!1),me=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];async function L(e){if(!me.includes(e.type))return;let t=crypto.randomUUID(),n={tempId:t,originalName:e.name||`pasted-image.png`,status:`uploading`};P.value.push(n);try{let n=new FormData;n.append(`image`,e);let r=await fetch(`/api/workspaces/${c.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=P.value.find(e=>e.tempId===t);a&&(a.uid=i.uid,a.path=i.path,a.status=`ready`)}catch{let e=P.value.find(e=>e.tempId===t);e&&(e.status=`error`)}}async function R(e){let t=P.value.find(t=>t.tempId===e);if(t?.uid)try{await fetch(`/api/workspaces/${c.workspaceId}/images/${t.uid}`,{method:`DELETE`})}catch{}P.value=P.value.filter(t=>t.tempId!==e)}function he(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&L(e)}}}function z(e){if(e.preventDefault(),F.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))me.includes(t.type)&&L(t)}function B(e){e.preventDefault(),F.value=!0}function ge(){F.value=!1}function Oe(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))L(e);t.value=``}}let ke=v(()=>P.value.some(e=>e.status===`uploading`)),Ae=v(()=>y.sessions.find(e=>e.id===y.selectedSessionId)??null),je=0;async function Me(){let e=Date.now();if(!(e-je<5e3)){je=e;try{let e=await fetch(`/api/skills`);e.ok&&(ce.value=await e.json())}catch{}}}i(Me),n(()=>y.chatDraft,e=>{e&&(E.value=E.value?`${E.value}\n${e}`:e,y.chatDraft=``)});let Y=!1;function Ne(){Y=!0,y.cancelQueuedMessage(c.workspaceId)}n(O,(e,t)=>{t&&!e&&!Y&&(E.value=``),Y=!1}),n(()=>c.workspaceId,e=>{let t=y.queuedMessages[e];E.value=t?t.content:``});function Pe(){let e=oe();if(!e)return null;let t=e.selectionStart??E.value.length,n=E.value.slice(0,t).match(/\/([\w-]*)$/);return n?n[1]:null}n(E,async()=>{await e();let t=Pe();t===null?k.value=!1:(await Me(),ue.value=t,k.value=!0,j.value=0)});function Fe(t){let n=oe();if(!n){E.value=t;return}let r=n.selectionStart??E.value.length,i=E.value.slice(0,r),a=E.value.slice(r),o=i.match(/\/[\w-]*$/);if(!o){E.value=t;return}let s=o.index??r;E.value=E.value.slice(0,s)+t+a,e(()=>{let e=s+t.length;n.focus(),n.setSelectionRange(e,e)})}function X(e){if(!e)return;if(e.type===`template`){let t=x.templates.find(t=>t.slug===e.name);if(!t)return;let n=y.workspaces.find(e=>e.id===c.workspaceId)??null,r=y.gitStatsCache[c.workspaceId]??null,i=y.sessions.find(e=>e.id===y.selectedSessionId)??null,a=null;if(i)if(i.name)a=i.name;else{let e=y.sessions.findIndex(e=>e.id===i.id);a=_(`workspacePage.session`,{n:y.sessions.length-e})}let o;if(r?.prUrl){let e=r.prUrl.match(/\/pull\/(\d+)/);e&&(o=parseInt(e[1],10))}let s=ve({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});Fe(_e(t.content,s)),k.value=!1;return}let t=`/${e.name}`;if(e.type===`kobo`&&I[t]){E.value=t,k.value=!1,Be();return}Fe(`${t} `),k.value=!1}let Z=v(()=>!c.workspaceId),Q=a(JSON.parse(localStorage.getItem(`kobo:chatHistory`)??`[]`)),$=a(-1),Ie=a(``);function Le(e){e&&Q.value[0]!==e&&(Q.value.unshift(e),Q.value.length>50&&Q.value.pop(),localStorage.setItem(`kobo:chatHistory`,JSON.stringify(Q.value)))}function Re(){$.value=-1,Ie.value=``}function ze(e){let t=I[`/${e}`]?.descriptionKey;return t?_(t):``}async function Be(){let e=E.value.trim();if(!e&&P.value.length===0||Z.value||ke.value)return;let t=Ae.value,n=I[e];if(n){b.sendChatMessage(c.workspaceId,n.prompt,y.selectedSessionId??void 0),y.markRead(c.workspaceId),y.addActivityItem(c.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:n.prompt,timestamp:new Date().toISOString(),sessionId:y.selectedSessionId??void 0,meta:{sender:`user`,pending:!0}}),Le(e),Re(),E.value=``;return}if(re.value){y.queueMessage(c.workspaceId,e,y.selectedSessionId??void 0);return}y.cancelQueuedMessage(c.workspaceId);let r=P.value.filter(e=>e.status===`ready`&&e.path).map(e=>`[image: ${e.path}]`).join(` `),i=r?`${e} ${r}`.trim():e,a=y.selectedSessionId??void 0;if((t?.status===`completed`||t?.status===`error`)&&!t.claudeSessionId){te.notify({type:`warning`,message:_(`workspacePage.sessionEndedNotice`),position:`top`,timeout:5e3});return}let o=`user-${Date.now()}`;y.markRead(c.workspaceId),y.addActivityItem(c.workspaceId,{id:o,type:`text`,content:i,timestamp:new Date().toISOString(),sessionId:a,meta:{sender:`user`,pending:!0}});let s=e;Le(e),Re(),E.value=``,P.value=[];let l=(e,t)=>{console.error(`[ChatInput] ${t} failed:`,e),y.removeActivityItem(c.workspaceId,o),E.value=s;let n=e instanceof Error?e.message:null;te.notify({type:`negative`,message:n??_(`workspacePage.startFailed`),position:`top`,timeout:6e3})};if(t?.status===`idle`)try{await y.startWorkspace(c.workspaceId,i,t.id),await y.fetchSessions(c.workspaceId)}catch(e){l(e,`startWorkspace`)}else if(t?.status===`completed`||t?.status===`error`)try{await y.startWorkspace(c.workspaceId,i,t.id,!0),await y.fetchSessions(c.workspaceId)}catch(e){l(e,`resume session`)}else b.sendChatMessage(c.workspaceId,i,y.selectedSessionId??void 0)}function Ve(e){if(k.value&&N.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),j.value=Math.min(j.value+1,N.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),j.value=Math.max(j.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),X(N.value[j.value]);return}if(e.key===`Escape`){e.preventDefault(),k.value=!1;return}}if(e.key===`ArrowUp`&&Q.value.length>0){let t=e.target;if(!(!t||t.selectionStart<=(E.value.indexOf(`
3
- `)===-1?E.value.length:E.value.indexOf(`
4
- `)))&&$.value===-1)return;e.preventDefault(),$.value===-1&&(Ie.value=E.value),$.value<Q.value.length-1&&($.value++,E.value=Q.value[$.value]);return}if(e.key===`ArrowDown`&&$.value>=0){e.preventDefault(),$.value--,E.value=$.value>=0?Q.value[$.value]:Ie.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Be())}return(e,n)=>(t(),h(`div`,{class:u([`chat-input-container column q-pa-sm`,{"chat-input-dragging":F.value}]),onDragover:B,onDragleave:ge,onDrop:z},[P.value.length>0?(t(),h(`div`,ye,[(t(!0),h(d,null,r(P.value,n=>(t(),h(`div`,{key:n.tempId,class:u([`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(),p(de,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):n.status===`ready`?(t(),p(C,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(t(),p(C,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),f(`span`,be,S(n.status===`uploading`?e.$t(`chatInput.uploading`):n.path||n.originalName),1),l(w,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:e=>R(n.tempId)},{default:s(()=>[l(A,null,{default:s(()=>[m(S(e.$t(`tooltip.removeImage`)),1)]),_:1})]),_:1},8,[`onClick`])],2))),128))])):g(``,!0),k.value&&N.value.length>0?(t(),h(`div`,V,[M.value.skills.length>0?(t(),h(d,{key:0},[f(`div`,H,S(e.$t(`chatInput.dropdownSkills`)),1),(t(!0),h(d,null,r(M.value.skills,e=>(t(),h(`div`,{key:`skill-${e.name}`,class:u([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":N.value.indexOf(e)===j.value}]),onMousedown:T(t=>X(e),[`prevent`])},[l(C,{name:`bolt`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),f(`span`,xe,S(e.name),1)],42,U))),128))],64)):g(``,!0),M.value.kobo.length>0?(t(),h(d,{key:1},[f(`div`,Se,S(e.$t(`chatInput.dropdownKobo`)),1),(t(!0),h(d,null,r(M.value.kobo,e=>(t(),h(`div`,{key:`kobo-${e.name}`,class:u([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":N.value.indexOf(e)===j.value}]),onMousedown:T(t=>X(e),[`prevent`])},[l(C,{name:`terminal`,size:`12px`,color:`teal-4`,class:`q-mr-xs`}),f(`span`,Ce,`/`+S(e.name),1),ze(e.name)?(t(),h(`span`,we,`— `+S(ze(e.name)),1)):g(``,!0)],42,W))),128))],64)):g(``,!0),M.value.templates.length>0?(t(),h(d,{key:2},[f(`div`,Te,S(e.$t(`chatInput.dropdownTemplates`)),1),(t(!0),h(d,null,r(M.value.templates,e=>(t(),h(`div`,{key:`tpl-${e.name}`,class:u([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":N.value.indexOf(e)===j.value}]),onMousedown:T(t=>X(e),[`prevent`])},[l(C,{name:`description`,size:`12px`,color:`amber-4`,class:`q-mr-xs`}),f(`span`,K,`/`+S(e.name),1),e.description?(t(),h(`span`,q,`— `+S(e.description),1)):g(``,!0)],42,G))),128))],64)):g(``,!0)])):g(``,!0),O.value?(t(),h(`div`,J,[l(C,{name:`schedule`,size:`14px`,color:`amber-6`,class:`q-mr-sm`}),f(`span`,null,S(e.$t(`chatInput.queueBanner`)),1)])):g(``,!0),f(`div`,Ee,[l(le,{ref_key:`chatInputRef`,ref:ae,modelValue:E.value,"onUpdate:modelValue":n[0]||=e=>E.value=e,dense:``,dark:``,borderless:``,autogrow:``,readonly:O.value,placeholder:e.$t(`chatInput.placeholder`),class:`chat-input col rounded-borders`,disable:Z.value,onKeydown:Ve,onPaste:he},null,8,[`modelValue`,`readonly`,`placeholder`,`disable`]),f(`input`,{ref_key:`fileInputRef`,ref:pe,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:Oe},null,544),l(w,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:Z.value,onClick:n[1]||=e=>pe.value?.click()},{default:s(()=>[l(A,null,{default:s(()=>[m(S(e.$t(`chatInput.attachImage`)),1)]),_:1})]),_:1},8,[`disable`]),O.value?(t(),p(w,{key:0,flat:``,dense:``,icon:`cancel`,color:`orange`,onClick:Ne},{default:s(()=>[l(A,null,{default:s(()=>[m(S(e.$t(`chatInput.cancelQueue`)),1)]),_:1})]),_:1})):(t(),p(w,{key:1,flat:``,dense:``,icon:`send`,color:`primary`,disable:Z.value||!E.value.trim()&&P.value.length===0||ke.value,onClick:Be},{default:s(()=>[l(A,null,{default:s(()=>[m(S(e.$t(`tooltip.sendMessage`)),1)]),_:1})]),_:1},8,[`disable`]))]),f(`div`,De,[n[2]||=f(`kbd`,null,`Enter`,-1),m(` `+S(e.$t(`common.send`))+` `,1),n[3]||=f(`span`,{class:`q-mx-xs`},`·`,-1),n[4]||=m(),n[5]||=f(`kbd`,null,`Shift+Enter`,-1),m(` `+S(e.$t(`common.newLine`))+` `,1),n[6]||=f(`span`,{class:`q-mx-xs`},`·`,-1),n[7]||=m(),n[8]||=f(`kbd`,null,`↑↓`,-1),m(` `+S(e.$t(`common.history`)),1)])],34))}}),[[`__scopeId`,`data-v-bf24c0d4`]]),ke={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},Ae={class:`text-body1 text-weight-medium text-grey-3 ellipsis`},je={class:`row items-center no-wrap text-caption text-grey-5`},Me={class:`row items-center no-wrap text-caption text-grey-5`},Y={key:1,class:`text-body2 text-grey-8`},Ne={class:`col column items-center justify-center`},Pe={class:`text-grey-6 text-caption q-mt-sm`},Fe={class:`text-subtitle1`},X=M(x({__name:`WorkspacePage`,setup(e){let r=y(()=>Promise.all([O(()=>import(`./ActivityFeed-CgZWB0-0.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),b=fe(),x=ie(),{t:D}=ee(),{timeAgo:se}=me(),M=a(!1),I=a(!1);async function z(){if(x.selectedWorkspaceId){M.value=!0;try{await x.startWorkspace(x.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:D(`workspacePage.startFailed`);b.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{M.value=!1}}}let B=a(!1);async function _e(){if(x.selectedWorkspaceId){B.value=!0;try{await x.interruptAgent(x.selectedWorkspaceId),b.notify({type:`info`,message:D(`workspacePage.interrupted`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:D(`workspacePage.interruptFailed`);b.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{B.value=!1}}}async function ve(){if(x.selectedWorkspaceId){I.value=!0;try{await x.stopWorkspace(x.selectedWorkspaceId)}catch(e){let t=e instanceof Error?e.message:D(`workspacePage.stopFailed`);b.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{I.value=!1}}}let ye=v(()=>[{label:D(`model.auto`),value:`auto`},{label:D(`model.opus`),value:`claude-opus-4-6`},{label:D(`model.sonnet`),value:`claude-sonnet-4-6`},{label:D(`model.haiku`),value:`claude-haiku-4-5-20251001`}]),be=v(()=>[{label:D(`permissionMode.autoAccept`),value:`auto-accept`},{label:D(`permissionMode.plan`),value:`plan`}]),V=v({get:()=>x.selectedWorkspace?.model??`auto`,set:e=>{x.selectedWorkspaceId&&x.updateModel(x.selectedWorkspaceId,e)}}),H=v({get:()=>x.selectedWorkspace?.permissionMode??`auto-accept`,set:e=>{x.selectedWorkspaceId&&x.updatePermissionMode(x.selectedWorkspaceId,e)}}),U=re(),xe=ue(),Se=v(()=>x.selectedWorkspaceId),W=v(()=>x.selectedWorkspace),Ce=v(()=>x.sessions),we=v({get:()=>x.selectedSessionId,set:e=>{if(e===`__new__`){X();return}if(!e)return;x.selectSession(e);let t={...U.query};t.session=e,xe.replace({query:t})}}),Te=v(()=>[...x.sessions.map((e,t)=>({label:e.name??D(`workspacePage.session`,{n:x.sessions.length-t}),value:e.id,caption:se(e.startedAt),isSession:!0})),{label:D(`workspacePage.newSession`),value:`__new__`,caption:``,isSession:!1}]),G=a(!1),K=a(null),q=a(``),J=a(!1);function Ee(e,t){let n=x.sessions.find(t=>t.id===e);n&&(K.value={id:e},q.value=n.name??t,G.value=!0)}async function De(){if(!(!K.value||!x.selectedWorkspaceId))try{await x.renameSession(x.selectedWorkspaceId,K.value.id,q.value.trim())}catch(e){console.error(`[WorkspacePage] renameSession failed:`,e),b.notify({type:`negative`,message:D(`workspacePage.renameFailed`),position:`top`})}finally{G.value=!1}}async function X(){if(x.selectedWorkspaceId){J.value=!0;try{await x.createSession(x.selectedWorkspaceId)}catch(e){console.error(`[WorkspacePage] createSession failed:`,e);let t=e instanceof Error?e.message:null;b.notify({type:`negative`,message:t??D(`workspacePage.createSessionFailed`),position:`top`,timeout:6e3})}finally{J.value=!1}}}return i(()=>{let e=U.params.id;e&&x.selectWorkspace(e);let t=U.query.session;t&&x.selectSession(t)}),n(()=>U.params.id,e=>{e&&e!==x.selectedWorkspaceId&&x.selectWorkspace(e)}),(e,n)=>(t(),p(he,{class:`column no-wrap`,style:{height:`100vh`}},{default:s(()=>[f(`div`,ke,[W.value?(t(),h(d,{key:0},[f(`span`,Ae,S(W.value.name),1),l(N,{label:W.value.status,color:[`error`,`quota`].includes(W.value.status)?`red-9`:[`extracting`,`brainstorming`,`executing`].includes(W.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),Ce.value.length>0?(t(),p(R,{key:0,modelValue:we.value,"onUpdate:modelValue":n[0]||=e=>we.value=e,options:Te.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,loading:J.value,disable:J.value,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},{option:s(e=>[e.opt.isSession?g(``,!0):(t(),p(ne,{key:0,spaced:``})),l(pe,o(e.itemProps,{clickable:``,dense:``,class:`row items-center no-wrap`}),{default:s(()=>[l(P,null,{default:s(()=>[l(F,{class:u(e.opt.isSession?``:`text-grey-5`)},{default:s(()=>[m(S(e.opt.label),1)]),_:2},1032,[`class`]),e.opt.caption?(t(),p(F,{key:0,caption:``},{default:s(()=>[m(S(e.opt.caption),1)]),_:2},1024)):g(``,!0)]),_:2},1024),e.opt.isSession?(t(),p(P,{key:0,side:``},{default:s(()=>[l(w,{icon:`more_vert`,flat:``,dense:``,round:``,size:`xs`,color:`grey-6`,onClick:T(t=>Ee(e.opt.value,e.opt.label),[`stop`])},null,8,[`onClick`])]),_:2},1024)):g(``,!0)]),_:2},1040)]),_:1},8,[`modelValue`,`options`,`loading`,`disable`])):g(``,!0),l(j),l(R,{modelValue:H.value,"onUpdate:modelValue":n[1]||=e=>H.value=e,options:be.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:s(()=>[f(`span`,je,[l(C,{name:H.value===`plan`?`visibility`:`flash_on`,size:`12px`,color:`amber-6`,class:`q-mr-xs`},null,8,[`name`]),m(` `+S(be.value.find(e=>e.value===H.value)?.label??H.value),1)])]),_:1},8,[`modelValue`,`options`]),l(R,{modelValue:V.value,"onUpdate:modelValue":n[2]||=e=>V.value=e,options:ye.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:s(()=>[f(`span`,Me,[l(C,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),m(` `+S(ye.value.find(e=>e.value===V.value)?.label??V.value),1)])]),_:1},8,[`modelValue`,`options`]),[`created`,`idle`,`completed`,`error`,`quota`].includes(W.value.status)?(t(),p(w,{key:1,dense:``,"no-caps":``,size:`sm`,color:`positive`,icon:`play_arrow`,label:e.$t(`common.start`),class:`q-mr-xs`,loading:M.value,disable:M.value,onClick:z},null,8,[`label`,`loading`,`disable`])):g(``,!0),[`extracting`,`brainstorming`,`executing`].includes(W.value.status)?(t(),p(w,{key:2,dense:``,"no-caps":``,size:`sm`,outline:``,color:`orange-4`,icon:`pause`,label:e.$t(`workspacePage.interrupt`),class:`q-mr-xs`,loading:B.value,disable:B.value||I.value,onClick:_e},{default:s(()=>[l(A,null,{default:s(()=>[m(S(e.$t(`workspacePage.interruptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):g(``,!0),[`extracting`,`brainstorming`,`executing`].includes(W.value.status)?(t(),p(w,{key:3,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:e.$t(`common.stop`),class:`q-mr-xs`,loading:I.value,disable:I.value,onClick:ve},null,8,[`label`,`loading`,`disable`])):g(``,!0)],64)):(t(),h(`span`,Y,S(e.$t(`workspacePage.selectWorkspace`)),1))]),l(ne,{dark:``}),(t(),p(te,null,{fallback:s(()=>[f(`div`,Ne,[l(de,{size:`40px`,color:`indigo-4`}),f(`div`,Pe,S(e.$t(`common.loading`)),1)])]),default:s(()=>[l(_(r),{class:`col`,style:{"min-height":`0`}})]),_:1})),l(ge),Se.value?(t(),p(Oe,{key:0,"workspace-id":Se.value},null,8,[`workspace-id`])):g(``,!0),l(oe,{modelValue:G.value,"onUpdate:modelValue":n[4]||=e=>G.value=e,persistent:``},{default:s(()=>[l(ce,{dark:``,style:{"min-width":`320px`}},{default:s(()=>[l(k,null,{default:s(()=>[f(`div`,Fe,S(_(D)(`workspacePage.renameSessionTitle`)),1)]),_:1}),l(k,null,{default:s(()=>[l(le,{modelValue:q.value,"onUpdate:modelValue":n[3]||=e=>q.value=e,label:_(D)(`workspacePage.sessionNameLabel`),dark:``,dense:``,autofocus:``,onKeyup:E(De,[`enter`])},null,8,[`modelValue`,`label`])]),_:1}),l(ae,{align:`right`},{default:s(()=>[c(l(w,{flat:``,label:_(D)(`common.cancel`)},null,8,[`label`]),[[L]]),l(w,{flat:``,color:`primary`,label:_(D)(`workspacePage.renameSession`),disable:!q.value.trim(),onClick:De},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-387c8faf`]]);export{X as default};
@@ -1 +0,0 @@
1
- .chat-input-container[data-v-bf24c0d4]{background-color:#16162a;border-top:1px solid #2a2a4a;min-height:48px;position:relative}.chat-input-container.chat-input-dragging[data-v-bf24c0d4]{outline-offset:-2px;outline:2px dashed #6c63ff}.chat-input[data-v-bf24c0d4]{background-color:#224;padding:4px 12px}.chat-input[data-v-bf24c0d4] .q-field__control{min-height:32px}.chat-input[data-v-bf24c0d4] textarea,.chat-input[data-v-bf24c0d4] input{color:#ccc;font-size:13px}.skills-popup[data-v-bf24c0d4]{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-bf24c0d4]{text-transform:uppercase;color:#6b7280;letter-spacing:.05em;border-top:1px solid #ffffff0d;padding:4px 12px;font-size:10px}.skills-section-header[data-v-bf24c0d4]:first-child{border-top:none}.skill-item[data-v-bf24c0d4]{font-family:Roboto Mono,monospace}.skill-item[data-v-bf24c0d4]:hover,.skill-item--active[data-v-bf24c0d4]{background-color:#6c63ff26}.image-tag[data-v-bf24c0d4]{font-family:Roboto Mono,monospace;font-size:12px;line-height:1}.image-tag--uploading[data-v-bf24c0d4]{color:#88a;background-color:#2a2a4a;border:1px solid #3a3a5a}.image-tag--ready[data-v-bf24c0d4]{color:#6aaa6a;background-color:#1a2a1a;border:1px solid #2a4a2a}.image-tag--error[data-v-bf24c0d4]{color:#aa6a6a;background-color:#2a1a1a;border:1px solid #4a2a2a}.image-tag-label[data-v-bf24c0d4]{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.chat-hint[data-v-bf24c0d4]{text-align:left;padding:2px 4px 0;font-size:10px}.chat-hint kbd[data-v-bf24c0d4]{background-color:#2a2a4a;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px}.queue-banner[data-v-bf24c0d4]{background-color:#2a2a1a;border-bottom:1px solid #4a4a2a}.image-tag-close[data-v-bf24c0d4]{color:#a44;opacity:.7}.image-tag-close[data-v-bf24c0d4]:hover{opacity:1}.wp-header[data-v-387c8faf]{background-color:#16162a;border-bottom:1px solid #2a2a4a;min-height:48px}
@@ -1 +0,0 @@
1
- import{t as e}from"./i18n-DAQcMG9d.js";import{T as t}from"./index-DSx45TKH.js";var n=t(({app:t})=>{t.use(e)});export{n as default};