@zhanguym/chatroom 1.2.0-beta.0 → 1.2.0-beta.2

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 (74) hide show
  1. package/dist/app/application.d.ts +2 -0
  2. package/dist/app/application.js +7 -1
  3. package/dist/app/lifecycle.js +6 -0
  4. package/dist/auth/auth-service.js +5 -1
  5. package/dist/infrastructure/database/custom-mcp-repository.d.ts +9 -0
  6. package/dist/infrastructure/database/custom-mcp-repository.js +37 -0
  7. package/dist/infrastructure/database/mcp-tool-settings-repository.d.ts +1 -0
  8. package/dist/infrastructure/database/mcp-tool-settings-repository.js +6 -0
  9. package/dist/infrastructure/database/schema.d.ts +1 -1
  10. package/dist/infrastructure/database/schema.js +9 -0
  11. package/dist/mcp/custom/manager.d.ts +54 -0
  12. package/dist/mcp/custom/manager.js +494 -0
  13. package/dist/mcp/custom/oauth.d.ts +38 -0
  14. package/dist/mcp/custom/oauth.js +116 -0
  15. package/dist/mcp/custom/types.d.ts +42 -0
  16. package/dist/mcp/custom/types.js +1 -0
  17. package/dist/mcp/server/create-mcp-server.d.ts +2 -1
  18. package/dist/mcp/server/create-mcp-server.js +4 -3
  19. package/dist/mcp/server/tool-control.d.ts +5 -0
  20. package/dist/mcp/server/tool-control.js +17 -0
  21. package/dist/native/linux/chatroom-computer-helper +0 -0
  22. package/dist/native/macos/ChatRoomComputerHelper.app/Contents/MacOS/chatroom-computer-helper +0 -0
  23. package/dist/native/windows/chatroom-computer-helper.exe +0 -0
  24. package/dist/plugins/computer/computer-schemas.d.ts +8 -8
  25. package/dist/plugins/types.d.ts +2 -0
  26. package/dist/plugins/web/api-types.d.ts +2 -0
  27. package/dist/plugins/web/http/api-router.js +3 -0
  28. package/dist/plugins/web/http/custom-mcp-api-router.d.ts +6 -0
  29. package/dist/plugins/web/http/custom-mcp-api-router.js +114 -0
  30. package/dist/plugins/web/plugin.js +1 -1
  31. package/dist/plugins/web/runtime.d.ts +3 -1
  32. package/dist/plugins/web/runtime.js +3 -1
  33. package/dist/web/assets/{AgentView-DQr-5aLK.js → AgentView-Chyr0duc.js} +3 -3
  34. package/dist/web/assets/{CloudView-B2VBut3O.js → CloudView-DN3gdtln.js} +1 -1
  35. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-B3tNL1LG.js +3 -0
  36. package/dist/web/assets/{ComputerView-CIFF1zUb.js → ComputerView-BQsCJDj6.js} +1 -1
  37. package/dist/web/assets/ComputerView-Bz2Wsz2X.css +1 -0
  38. package/dist/web/assets/{MarkdownContent-DRZp88_G.js → MarkdownContent-Cs2dEsGL.js} +1 -1
  39. package/dist/web/assets/McpToolsView-DEihWplq.js +2 -0
  40. package/dist/web/assets/McpToolsView-DdYOoY9_.css +1 -0
  41. package/dist/web/assets/{OperationsView-B_Nv1Mgi.js → OperationsView-xUzS2M6J.js} +2 -2
  42. package/dist/web/assets/{ProcessesView-5K8wNiPC.js → ProcessesView-BZJE6ibM.js} +2 -2
  43. package/dist/web/assets/{StateChip.vue_vue_type_script_setup_true_lang-CQEj-YRM.js → StateChip.vue_vue_type_script_setup_true_lang-DIF7HtT8.js} +1 -1
  44. package/dist/web/assets/SystemLogsView-BHNuvcuf.js +1 -0
  45. package/dist/web/assets/{TerminalView-DNaKG3II.css → TerminalView-B1cLrRJ3.css} +1 -1
  46. package/dist/web/assets/{TerminalView-Dvyy2GKF.js → TerminalView-DynA5Y2x.js} +10 -10
  47. package/dist/web/assets/VSelect-EZ3BvG23.js +1 -0
  48. package/dist/web/assets/VSheet-DQI4RXKJ.js +1 -0
  49. package/dist/web/assets/VSpacer-CYKfdiFh.js +1 -0
  50. package/dist/web/assets/{VSwitch-CvQYU48e.js → VSwitch-C-NDv5Ol.js} +1 -1
  51. package/dist/web/assets/{VTabs-CftrBFlF.js → VTabs-Cd28-4lH.js} +1 -1
  52. package/dist/web/assets/{VTextarea-Dcui00tn.js → VTextarea-j4nd1i82.js} +1 -1
  53. package/dist/web/assets/WorkspaceDownloadPreview-CT8fPWGZ.js +1 -0
  54. package/dist/web/assets/{WorkspaceMediaPreview-ctIyG3Ru.js → WorkspaceMediaPreview-BYfyE2rF.js} +3 -3
  55. package/dist/web/assets/{WorkspacePdfPreview-CeizxEAH.js → WorkspacePdfPreview-Cn1Z4mrW.js} +1 -1
  56. package/dist/web/assets/{WorkspacesView-DcmqHGvr.js → WorkspacesView-CHos0Dy0.js} +2 -2
  57. package/dist/web/assets/{index-BRI_re-n.css → index-BCUxnASh.css} +1 -1
  58. package/dist/web/assets/index-CR4g0KyE.js +19 -0
  59. package/dist/web/assets/{useMasterDetailFocus-DR5N95_A.js → useMasterDetailFocus-D_0RtiVd.js} +1 -1
  60. package/dist/web/assets/useOperationLabels-a5jWmoTY.js +1 -0
  61. package/dist/web/index.html +2 -2
  62. package/dist/web/transport-sw.js +6 -0
  63. package/package.json +2 -1
  64. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-DkN8x_6L.js +0 -3
  65. package/dist/web/assets/ComputerView-DWzfSYJ7.css +0 -1
  66. package/dist/web/assets/McpToolsView-CSEru3ck.js +0 -1
  67. package/dist/web/assets/McpToolsView-DjxPbTHj.css +0 -1
  68. package/dist/web/assets/SystemLogsView-CBINILPo.js +0 -1
  69. package/dist/web/assets/VSelect-CBX17QQj.js +0 -1
  70. package/dist/web/assets/VSpacer-9N_Ffoce.js +0 -1
  71. package/dist/web/assets/WorkspaceDownloadPreview-DzM2p_xl.js +0 -1
  72. package/dist/web/assets/index-DTyxBHlJ.js +0 -19
  73. package/dist/web/assets/useOperationLabels-Dou4m0ac.js +0 -1
  74. /package/dist/web/assets/{CodeViewer-CH1DEJge.css → VSheet-CH1DEJge.css} +0 -0
@@ -1,4 +1,4 @@
1
- import{$ as mt,a0 as xt,w as ie,i as Ue,a7 as Wt,s as U,y as qe,u as ke,v as I,d as Ce,x as ye,c as i,l as q,a8 as yt,p as D,k as g,z as Ye,f as h,t as M,g as u,R as ut,E as ta,q as le,h as _,e as S,F as oe,j as Se,m as ce,a9 as ue,J as Ze,aa as tt,V as Pe,n as Ee,_ as Ie,ab as dt,b as Vt,S as ot,ac as lt,ad as ba,r as Re,ae as He,a4 as ft,O as Mt,P as It,Q as Tt,T as At,I as ht,af as Rt,M as wa,ag as Pt,ah as ka,ai as aa,aj as $a,ak as zt,al as Sa,am as na,an as ct,ao as Ht,ap as la,aq as Ft,ar as Ca,W as bt,Y as Me,as as xa,C as rt,at as Va,au as Ma,av as Ia,aw as Ta,ax as Aa,ay as sa,az as Gt,aA as Je,aB as Ra,aC as wt,aD as Pa,aE as Fa,aF as Ua,D as Ea,aG as Bt,aH as Dt,aI as za,aJ as Da,aK as Oa,aL as Jt,aM as _a,aN as Qt,aO as ia,aP as Ot,aQ as Ba,aR as nt,aS as Xt,aT as La,aU as Na,aV as qa,aW as oa,aX as ja,aY as Ka,aZ as Wa,a_ as Ha,a$ as Yt,b0 as Ga,b1 as Ja,o as ra,b2 as Qa,a1 as Xa,a2 as Ya,b3 as Za,b4 as _e,a3 as en}from"./index-DTyxBHlJ.js";import{V as tn}from"./VTextarea-Dcui00tn.js";import{V as Ut}from"./VSpacer-9N_Ffoce.js";import{_ as it,V as an}from"./CodeViewer.vue_vue_type_script_setup_true_lang-DkN8x_6L.js";import{u as nn,a as ln,b as sn,c as on,d as rn,m as un,e as dn,f as cn,g as vn,V as Ge}from"./VSelect-CBX17QQj.js";import{M as _t}from"./MarkdownContent-DRZp88_G.js";import{V as mn}from"./VSwitch-CvQYU48e.js";import"./syntax-highlight-C_fuMcwC.js";function Ct(){return{sandbox_approval:!0,rules:!0,skill_approval:!0,request_permissions:!0,mcp_elicitations:!0}}function Xe(e,a,t){return e.find(o=>o.id===a)?.nativeSettings.find(o=>o.id===t)??null}function Lt(e,a=null){if(e&&typeof e=="object")return"granular";const t=e??a;return t==="untrusted"||t==="on-request"||t==="granular"||t==="never"?t:null}function Nt(e,a){const t=e??a;return t==="user"||t==="auto_review"||t==="guardian_subagent"?t:null}function qt(e,a){const t=e??a;return t==="read-only"||t==="workspace-write"||t==="danger-full-access"?t:null}function ua(e,a,t,o,n,s){const c=Xe(e,a,"approvalPolicy"),f=Xe(e,a,"approvalsReviewer"),m=Xe(e,a,"permissionMode"),l=Lt(t,c?.defaultValue??null),v=m?.options.some(r=>r.id===s)?s:null;return{approvalPolicy:c?l==="granular"?{granular:{...o}}:l:null,approvalsReviewer:f?Nt(n,f.defaultValue):null,permissionMode:m?qt(v,m.defaultValue):null}}function da(e,a,t){const o=e[a]??[];return t?o.find(n=>n.id===t)??null:o.find(n=>n.isDefault)??o[0]??null}function fn(e,a,t){return t||((e[a]??[]).find(o=>o.isDefault)?.id??null)}function ca(e,a){return e.find(t=>t.id===a)??null}function gt(e,a){return ca(e,a)?.displayName??a}function va(e,a){return ca(e,a)?.icon??null}function ma(e,a,t,o){const n=fn(e,a,t);return n?(e[a]??[]).find(s=>s.id===n)?.displayName??n:o}function jt(e,a){return a?`${e} (${a})`:e}function $t(e){return e.split("/").pop()??e}function gn(e,a){const t=a.request??Ue,o=U([]),n=U(null),s=mt(),c=new Map,f=new Map;let m=!1,l=null,v=null,r=!1;xt(()=>{r=!0,s.invalidate(),c.clear(),f.clear()}),ie(e,z=>{s.invalidate(),n.value=null,l=z,w()},{flush:"sync"});function k(z){const x=c.get(z.sessionId);c.set(z.sessionId,{sessionId:z.sessionId,turnIds:[...new Set([...x?.turnIds??[],...z.turnIds])],itemIds:[...new Set([...x?.itemIds??[],...z.itemIds])],deleted:!!(x?.deleted||z.deleted)})}function A(z){const x=new Map(o.value.map(R=>[R.id,R]));o.value=z.map(R=>St(x.get(R.id),R)).sort((R,T)=>T.updatedAt.localeCompare(R.updatedAt)),a.onSessionsChanged?.(x,o.value),e.value&&!z.some(R=>R.id===e.value)&&(e.value=z[0]?.id??null)}function O(z){const x=new Map(o.value.map(T=>[T.id,T])),R=St(x.get(z.id),z);return x.set(z.id,R),A([...x.values()]),R}function y(z){return z===void 0?Promise.resolve():(z===null?m=!0:z.forEach(k),w())}function w(){return v||(r?Promise.resolve():(v=Promise.resolve().then(async()=>{for(;!r&&(m||l||c.size);){const z=m;m=!1;const x=l;l=null;const R=z||x?[]:[...c.values()];!z&&!x&&c.clear();const T=s.begin();try{if(z){const $=await t("/agents/sessions",{signal:T.signal});if(!s.isCurrent(T))continue;A($),l=e.value}else if(x){const $=await t(`/agents/sessions/${encodeURIComponent(x)}/history`,{signal:T.signal});if(!s.isCurrent(T)||e.value!==x)continue;n.value=$,O($.session)}else for(const $ of R){if(!s.isCurrent(T))break;if($.deleted){A(o.value.filter(C=>C.id!==$.sessionId));continue}const B=Math.max(1,Math.ceil($.turnIds.length/64),Math.ceil($.itemIds.length/64));let b=!0;for(let C=0;C<B;C++){const E=new URLSearchParams;E.set("turnIds",$.turnIds.slice(C*64,(C+1)*64).join(",")),E.set("itemIds",$.itemIds.slice(C*64,(C+1)*64).join(","));try{const J=await t(`/agents/sessions/${encodeURIComponent($.sessionId)}/update?${E}`,{signal:T.signal});if(!s.isCurrent(T))break;O(J.session),n.value?.session.id===J.session.id&&(n.value=Zt(n.value,J))}catch(J){if(!s.isCurrent(T))break;if(J instanceof Wt&&J.status===404)f.delete($.sessionId),A(o.value.filter(de=>de.id!==$.sessionId));else{const de=(f.get($.sessionId)??0)+1;de<=1?(f.set($.sessionId,de),k($)):(f.delete($.sessionId),a.onError(J))}b=!1;break}}b&&f.delete($.sessionId)}}catch($){s.isCurrent(T)&&($ instanceof Wt&&$.status===404&&x?A(o.value.filter(B=>B.id!==x)):a.onError($))}finally{!r&&!s.isCurrent(T)&&(z?m=!0:x&&e.value===x&&(l=x),R.forEach(k))}}}).finally(()=>{v=null,!r&&(m||l||c.size)&&w()}),v))}function d(){const z=e.value;return z?(l=z,w()):Promise.resolve()}function p(z){s.invalidate();const x=O(z);n.value?.session.id===z.id&&(n.value={...n.value,session:St(n.value.session,x)})}function F(z){s.invalidate(),A(o.value.filter(x=>x.id!==z)),k({sessionId:z,turnIds:[],itemIds:[],deleted:!0}),w()}function ee(z,x){s.invalidate();const R=n.value;if(!R||R.session.id!==z)return;const T=Zt(R,{session:R.session,turns:[],items:[x]}),$=T.turns.flatMap(b=>b.items).filter(b=>b.type==="interaction"&&b.status==="waiting"),B={...T.session,status:T.session.status==="waiting_input"?$.length?"waiting_input":"running":T.session.status,attention:$.length?{kind:$.some(b=>b.interaction.kind==="approval")?"approval":"input",count:$.length}:null};n.value={...T,session:B},O(B)}return{sessions:o,history:n,refresh:y,reloadSelected:d,reconcileSession:p,reconcileInteraction:ee,removeSession:F}}function Zt(e,a){const t=new Map(e.turns.map(n=>[n.turn.id,n]));for(const n of a.turns){const s=t.get(n.id);t.set(n.id,{turn:n,items:s?.items??[]})}const o=new Map;for(const n of a.items){const s=o.get(n.turnId)??[];s.push(n),o.set(n.turnId,s)}for(const[n,s]of o){const c=t.get(n);if(!c)throw new Error("Agent update is missing the item's turn");const f=new Map(c.items.map(m=>[m.id,m]));for(const m of s)f.set(m.id,m);t.set(n,{...c,items:[...f.values()].sort((m,l)=>m.sequence-l.sequence)})}return{session:St(e.session,a.session),turns:[...t.values()].sort((n,s)=>n.turn.startedAt.localeCompare(s.turn.startedAt))}}function St(e,a){return e&&e.updatedAt.localeCompare(a.updatedAt)>=0?e:a}function pn(e){const a=U({}),t=U(new Set),o=new Map;let n=0;ie(e.selectedId,()=>{n+=1,a.value={},t.value=new Set(e.selectedId.value?o.get(e.selectedId.value)??[]:[])},{flush:"sync"}),xt(()=>o.clear());async function s(k,A){k.type!=="interaction"||!e.selected.value||await f(k,{type:"approval",decision:A})}async function c(k){if(k.type!=="interaction"||!e.selected.value)return;const A={};for(const O of k.interaction.questions){const y=l(k)[O.id]??[];A[O.id]=O.multiSelect?y:y.slice(0,1)}await f(k,{type:"input",answers:A})}async function f(k,A){const O=e.selected.value,y=O?o.get(O.id):void 0;if(!O||k.status!=="waiting"||y?.has(k.id))return;const w={sessionId:O.id,generation:n},d=new Set(y??[]);d.add(k.id),o.set(O.id,d),t.value=new Set(d),e.error.value="";try{const p=await Ue("/agents/sessions/"+encodeURIComponent(O.id)+"/interactions/"+encodeURIComponent(k.id),{method:"POST",body:JSON.stringify(A)});e.reconcileInteraction(O.id,p)}catch(p){r(w)&&(e.error.value=qe(p))}finally{const p=new Set(o.get(O.id)??[]);p.delete(k.id),p.size?o.set(O.id,p):o.delete(O.id),e.selectedId.value===O.id&&(t.value=p)}}const m=Object.freeze({});function l(k){return a.value[k.id]??m}function v(k,A,O){a.value={...a.value,[k.id]:{...a.value[k.id]??{},[A]:O}}}function r(k){return e.selectedId.value===k.sessionId&&n===k.generation}return{respondingInteractions:t,respondApproval:s,submitInput:c,interactionAnswers:l,setInteractionAnswer:v}}function yn(e){const a=ke(),t=U(!1),o=U(null),n=U(null),s=U(null),c=U(null),f=U(null),m=U(Ct()),l=U(null),v=U(null),r=U(!1),k=U("uncommittedChanges"),A=U(""),O=U(""),y=U(!1),w=U(""),d=U(!1),p=U(!1),F=U(!1),ee=U(!1),z=U(null),x=U(!1);let R=!1,T=0;const $=new Map,B=new Map,b=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"approvalPolicy"):null),C=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"approvalsReviewer"):null),E=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"permissionMode"):null),J=I(()=>e.selected.value?e.providerModels.value[e.selected.value.provider]??[]:[]),de=I(()=>e.selected.value?da(e.providerModels.value,e.selected.value.provider,e.selected.value.model):null),Y=I(()=>e.selected.value?e.providers.value.find(P=>P.id===e.selected.value?.provider)??null:null),$e=I(()=>["uncommittedChanges","baseBranch","commit","custom"].map(P=>({value:P,title:a.t(`$vuetify.chatroom.agents.reviewTargets.${P}`)}))),fe=I(()=>a.t(`$vuetify.chatroom.agents.reviewFields.${k.value}`)),be=I(()=>e.selected.value?.status==="idle"&&!!Y.value?.features.nativeReview&&!y.value&&!e.composerBusy.value&&!d.value&&!p.value&&(k.value==="uncommittedChanges"||!!A.value.trim())),xe=I(()=>e.selected.value?e.providers.value.filter(P=>P.id!==e.selected.value?.provider&&P.installed&&P.authenticated):[]);ie(k,()=>{A.value="",O.value="",w.value=""}),ie(e.selectedId,()=>{T+=1,d.value=!1,p.value=!1,F.value=!1,y.value=!1,t.value=!1,r.value=!1,ee.value=!1,z.value=null,x.value=!1},{flush:"sync"}),ie(e.sessions,P=>{const Q=z.value;Q&&!P.some(ae=>ae.id===Q)&&(ee.value=!1,z.value=null)}),xt(()=>{R=!0,$.clear(),B.clear()});async function se(P,Q=null){const ae=e.providers.value.find(me=>me.id===P);if(ae&&(!ae.installed||!ae.authenticated)){e.providerModels.value={...e.providerModels.value,[P]:[]};return}const ge=($.get(P)??0)+1;$.set(P,ge);try{const me=await Ue("/agents/providers/"+P+"/models",{timeoutMs:15e3});if(R||$.get(P)!==ge)return;e.providerModels.value={...e.providerModels.value,[P]:me}}catch(me){if(R||$.get(P)!==ge)return;e.providerModels.value={...e.providerModels.value,[P]:[]},(Q===null||e.selectedId.value===Q)&&(e.error.value=qe(me))}}async function Te(){const P=e.selected.value;if(!P||!be.value)return;const Q=Ae(P.id),ae=A.value.trim();let ge;switch(k.value){case"uncommittedChanges":ge={type:"uncommittedChanges"};break;case"baseBranch":ge={type:"baseBranch",branch:ae};break;case"commit":ge={type:"commit",sha:ae,title:O.value.trim()||null};break;case"custom":ge={type:"custom",instructions:ae};break}y.value=!0,w.value="";try{await Ue(`/agents/sessions/${encodeURIComponent(P.id)}/review`,{method:"POST",body:JSON.stringify({target:ge}),timeoutMs:3e4}),he(Q)&&(r.value=!1)}catch(me){he(Q)&&(w.value=qe(me))}finally{he(Q)&&(y.value=!1)}}async function we(){const P=e.selected.value;if(!P||F.value)return;const Q=Ae(P.id);F.value=!0,e.error.value="";try{await Ue("/agents/sessions/"+encodeURIComponent(P.id)+"/interrupt",{method:"POST"})}catch(ae){he(Q)&&(e.error.value=qe(ae))}finally{he(Q)&&(F.value=!1)}}async function je(P){const Q=e.selected.value;if(!Q||P===Q.provider||p.value)return;const ae=e.providers.value.find(Ne=>Ne.id===P);if(!ae?.installed||!ae.authenticated)return;const ge=Ae(Q.id),me=Be(Q.id);p.value=!0,e.error.value="";try{const Ne=await Ue("/agents/sessions/"+encodeURIComponent(Q.id)+"/provider",{method:"POST",body:JSON.stringify({provider:P,model:null,reasoningEffort:null,reasoningSummary:null,serviceTier:null}),timeoutMs:3e4});Le(me)?(e.reconcileSession(Ne),await se(Ne.provider,Q.id)):Ke(Q.id)}catch(Ne){he(ge)&&(e.error.value=qe(Ne))}finally{he(ge)&&(p.value=!1)}}function ze(){const P=e.selected.value;P&&(z.value=P.id,ee.value=!0)}async function L(){const P=z.value;if(!(!P||x.value)){x.value=!0,e.error.value="";try{await Ue("/agents/sessions/"+encodeURIComponent(P),{method:"DELETE"}),e.removeSession(P),z.value===P&&(x.value=!1,ee.value=!1,z.value=null)}catch(Q){z.value===P&&(x.value=!1,e.error.value=qe(Q))}}}function H(){const P=e.selected.value;P&&(o.value=P.model,n.value=P.reasoningEffort,s.value=P.reasoningSummary,c.value=P.serviceTier,f.value=Lt(P.approvalPolicy,b.value?.defaultValue??null),m.value=P.approvalPolicy&&typeof P.approvalPolicy=="object"&&"granular"in P.approvalPolicy?{...P.approvalPolicy.granular}:Ct(),l.value=Nt(P.approvalsReviewer,C.value?.defaultValue??null),v.value=qt(P.permissionMode,E.value?.defaultValue??null),t.value=!0)}async function Ve(){const P=e.selected.value;if(!P)return;await De({model:o.value,reasoningEffort:n.value,reasoningSummary:s.value,serviceTier:c.value,...ua(e.providers.value,P.provider,f.value,m.value,l.value,v.value)})&&(t.value=!1)}async function De(P){const Q=e.selected.value;if(!Q||Q.status!=="idle"||d.value||p.value)return!1;const ae=Ae(Q.id),ge=Be(Q.id);d.value=!0,e.error.value="";try{const me=await Ue(`/agents/sessions/${encodeURIComponent(Q.id)}/config`,{method:"PUT",body:JSON.stringify(P),timeoutMs:3e4});return Le(ge)?(e.reconcileSession(me),he(ae)):(Ke(Q.id),!1)}catch(me){return he(ae)&&(e.error.value=qe(me)),!1}finally{he(ae)&&(d.value=!1)}}function Ae(P){return{sessionId:P,generation:T}}function he(P){return e.selectedId.value===P.sessionId&&T===P.generation}function Be(P){const Q=(B.get(P)??0)+1;return B.set(P,Q),{sessionId:P,generation:Q}}function Le(P){return B.get(P.sessionId)===P.generation}function Ke(P){e.refresh([{sessionId:P,turnIds:[],itemIds:[],deleted:!1}])}return{modelSettingsOpen:t,settingsModel:o,settingsReasoningEffort:n,settingsReasoningSummary:s,settingsServiceTier:c,settingsApprovalPolicyMode:f,settingsGranularApproval:m,settingsApprovalsReviewer:l,settingsPermissionMode:v,reviewOpen:r,reviewType:k,reviewValue:A,reviewTitle:O,reviewStarting:y,reviewError:w,modelSwitching:d,switchingProvider:p,interrupting:F,deleteDialog:ee,deletingSession:x,selectedApprovalPolicySetting:b,selectedApprovalsReviewerSetting:C,selectedPermissionModeSetting:E,selectedProviderModels:J,selectedModelMetadata:de,selectedProviderStatus:Y,reviewTypes:$e,reviewFieldLabel:fe,canStartReview:be,switchTargets:xe,loadModels:se,startReview:Te,interrupt:we,switchProvider:je,openDeleteDialog:ze,deleteSession:L,openModelSettings:H,saveModelSettings:Ve}}const hn={class:"agent-file-picker-caption"},bn={class:"agent-file-picker-list"},wn=["data-type","data-selected","aria-expanded","aria-pressed","onClick"],kn={key:1,class:"agent-tree-spacer"},$n={class:"agent-tree-name"},Sn={key:2,class:"agent-tree-path"},Cn={key:0,class:"agent-file-picker-empty"},xn=Ce({__name:"AgentProjectFilePicker",props:Ze({rows:{},truncated:{type:Boolean},selectedPaths:{},expandedDirectories:{},disabled:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},search:{required:!0},searchModifiers:{}}),emits:Ze(["toggleDirectory","toggleFile"],["update:open","update:search"]),setup(e,{emit:a}){const t=e,o=a,n=ye(e,"open"),s=ye(e,"search"),c=ke();function f(m){return t.selectedPaths.includes(m)}return(m,l)=>(i(),q(yt,{modelValue:n.value,"onUpdate:modelValue":l[1]||(l[1]=v=>n.value=v),"close-on-content-click":!1,location:"top start",offset:"8","content-class":"agent-overlay-menu"},{activator:D(({props:v})=>[g(ce,ue(v,{size:"x-small",density:"comfortable",variant:"text",icon:"",class:"agent-compose-tool-button agent-workspace-reference-button",disabled:e.disabled,"aria-label":u(c).t("$vuetify.chatroom.agents.projectFiles")}),{default:D(()=>[...l[2]||(l[2]=[le(" @ ",-1)])]),_:1},16,["disabled","aria-label"])]),default:D(()=>[g(Ye,{class:"agent-file-picker",elevation:"8"},{default:D(()=>[h("div",hn,M(u(c).t("$vuetify.chatroom.agents.projectFiles")),1),g(ut,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=v=>s.value=v),"prepend-inner-icon":"$mdiMagnify","aria-label":u(c).t("$vuetify.chatroom.agents.searchFiles"),placeholder:u(c).t("$vuetify.chatroom.agents.searchFiles"),density:"compact",variant:"outlined","hide-details":"",autofocus:""},null,8,["modelValue","aria-label","placeholder"]),e.truncated?(i(),q(ta,{key:0,type:"warning",variant:"tonal",density:"compact",class:"agent-project-files-truncated"},{default:D(()=>[le(M(u(c).t("$vuetify.chatroom.agents.projectFilesTruncated")),1)]),_:1})):_("",!0),h("div",bn,[(i(!0),S(oe,null,Se(e.rows,v=>(i(),S("button",{key:v.path,type:"button",class:"agent-tree-row","data-type":v.type,"data-selected":v.type==="file"&&f(v.path)?"true":"false","aria-expanded":v.type==="directory"?e.expandedDirectories.has(v.path):void 0,"aria-pressed":v.type==="file"?f(v.path):void 0,style:tt({paddingInlineStart:String(8+v.depth*18)+"px"}),onClick:r=>v.type==="directory"?o("toggleDirectory",v.path):o("toggleFile",v.path)},[v.type==="directory"?(i(),q(Pe,{key:0,icon:"$mdiChevronRight",size:"16",class:Ee(["agent-tree-chevron",{"agent-tree-chevron-open":e.expandedDirectories.has(v.path)}])},null,8,["class"])):(i(),S("span",kn)),h("span",$n,M(v.name),1),s.value.trim()&&v.type==="file"?(i(),S("span",Sn,M(v.path),1)):_("",!0)],12,wn))),128)),e.rows.length?_("",!0):(i(),S("div",Cn,M(u(c).t("$vuetify.chatroom.agents.noMatchingFiles")),1))])]),_:1})]),_:1},8,["modelValue"]))}}),Vn=Ie(xn,[["__scopeId","data-v-024d9876"]]);function Mn(e){return e.map(a=>({path:a,lowerPath:a.toLowerCase()}))}function ea(e,a,t){const o=t.trim().toLowerCase();if(!o)return[...e];const n=o.split(/[\/\s]+/).filter(Boolean);return a.filter(s=>n.every(c=>s.lowerPath.includes(c))).sort((s,c)=>{const f=s.lowerPath.startsWith(o)?0:1,m=c.lowerPath.startsWith(o)?0:1;return f-m||s.path.length-c.path.length||s.path.localeCompare(c.path)}).map(s=>s.path)}function In(e){const a=new Map;for(const t of e){const o=t.split("/");for(let n=1;n<o.length;n+=1)a.set(o.slice(0,n).join("/"),"directory");a.set(t,"file")}return[...a].map(([t,o])=>{const n=t.split("/"),s=[];let c="";for(const f of n.slice(0,-1))c=c?c+"/"+f:f,s.push(c);return{path:t,name:n.at(-1)??t,type:o,depth:Math.max(0,n.length-1),ancestors:s}}).sort((t,o)=>{const n=t.ancestors.at(-1)??"",s=o.ancestors.at(-1)??"";return n===s&&t.type!==o.type?t.type==="directory"?-1:1:t.path.localeCompare(o.path)})}function Tn(e,a){const t=new Set,o=/@"([^"]+)"|@([^\s]+)/g;for(const n of e.matchAll(o)){const s=(n[1]??n[2]??"").replace(/[),.;!?]+$/,"");a.has(s)&&t.add(s)}return[...t]}function Et(e){const a=e.toLowerCase();return a.endsWith(".png")?"image/png":a.endsWith(".jpg")||a.endsWith(".jpeg")?"image/jpeg":a.endsWith(".gif")?"image/gif":a.endsWith(".webp")?"image/webp":a.endsWith(".avif")?"image/avif":null}const An={key:0,class:"agent-composer-caption"},Rn={key:1,class:"agent-inline-error agent-attachment-error",role:"alert"},Pn=["accept"],Fn={key:2,class:"agent-selected-attachments"},Un={class:"agent-compose-row"},En={key:0,class:"agent-compose-tools"},zn={key:0,class:"agent-mention-popup"},Dn=["onMousedown","onClick"],On={class:"agent-file-suggestion-name"},_n={class:"agent-file-suggestion-path"},Bn={class:"agent-compose-actions"},Ln=Ce({__name:"AgentComposer",props:{session:{},model:{},steeringSupported:{type:Boolean},disabled:{type:Boolean}},emits:["error","busy"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(""),c=Re([]),f=Re({}),m=Re({}),l=U([]),v=U(!1),r=U([]),k=U([]),A=U(new Set),O=U(!1),y=U(""),w=U(""),d=U(!1),p=U(""),F=U(""),ee=U(0),z=U(0),x=dt("composerInputHost"),R=dt("localFileInput"),T=U(!1),$=U(!1),B=mt(),b=mt(),C=mt();let E=null,J=null;ie(y,(N,G,te)=>{E&&clearTimeout(E),E=setTimeout(()=>{w.value=N,E=null},120),te(()=>{E&&clearTimeout(E),E=null})}),ie(p,(N,G,te)=>{J&&clearTimeout(J),J=setTimeout(()=>{F.value=N,J=null},100),te(()=>{J&&clearTimeout(J),J=null})});const de=I(()=>new Set(l.value)),Y=I(()=>Tn(s.value,de.value)),$e=I(()=>[...new Set([...c.value,...Y.value])]),fe=I(()=>t.session.status==="running"&&t.steeringSupported),be=I(()=>t.session.status==="idle"||fe.value),xe=I(()=>[".txt",".md",".json",".csv",".pdf",".doc",".docx",".xls",".xlsx",".zip",".yaml",".yml",".xml",".html",".css",".js",".ts",".py",".rs",".go",".java",".c",".cpp",".sh",".log",".toml",".sql",...me("image")?["image/*"]:[],...me("audio")?["audio/*"]:[]].join(",")),se=I(()=>$e.value.filter(N=>!me(ge(N)))),Te=I(()=>se.value.length?n.t("$vuetify.chatroom.agents.unsupportedAttachment",se.value.map(Le).join(", ")):""),we=I(()=>ea(l.value,r.value,F.value).slice(0,12)),je=I(()=>w.value.trim()?ea(l.value,r.value,w.value).slice(0,80).map(N=>({path:N,name:$t(N),type:"file",depth:0,ancestors:[]})):k.value.filter(N=>N.ancestors.every(G=>A.value.has(G)))),ze=I(()=>be.value&&!t.disabled&&!T.value&&!$.value&&!se.value.length&&!!(s.value.trim()||$e.value.length));ie(()=>[t.session.id,t.session.workspaceRoot],()=>{ae(),L()},{immediate:!0}),ie(()=>T.value||$.value,N=>o("busy",N),{immediate:!0}),Vt(()=>{E&&clearTimeout(E),J&&clearTimeout(J),o("busy",!1)});async function L(){const N=B.begin(),G=t.session.id,te=t.session.workspaceRoot;try{const ve=await Ue("/workspace/project-files?root="+encodeURIComponent(te),{timeoutMs:2e4,signal:N.signal});if(!B.isCurrent(N)||t.session.id!==G||t.session.workspaceRoot!==te)return;l.value=ve.paths,v.value=ve.truncated,r.value=Mn(ve.paths),k.value=In(ve.paths)}catch(ve){if(!B.isCurrent(N))return;l.value=[],v.value=!1,r.value=[],k.value=[],o("error",qe(ve))}}async function H(){if(!ze.value)return;if(se.value.length){o("error",Te.value);return}const N=t.session.id,G=fe.value,te=s.value,ve=$e.value.map(j=>({kind:ge(j),name:Le(j),path:j,mimeType:m.value[j]??Et(j)})),V=b.begin();T.value=!0;try{if(await Ue("/agents/sessions/"+encodeURIComponent(N)+"/"+(G?"steer":"turns"),{method:"POST",body:JSON.stringify({text:te,attachments:ve}),timeoutMs:3e4,signal:V.signal}),!b.isCurrent(V)||t.session.id!==N)return;s.value="",c.value=[],f.value={},m.value={},d.value=!1}catch(j){b.isCurrent(V)&&o("error",qe(j))}finally{b.isCurrent(V)&&(T.value=!1)}}function Ve(){R.value?.click()}async function De(N){const G=N.target,te=[...G.files??[]];if(G.value="",!te.length)return;const ve=t.session.id,V=t.session.workspaceRoot,j=C.begin();$.value=!0;try{for(const ne of te){if(!C.isCurrent(j)||t.session.id!==ve)return;const re=ne.type.startsWith("audio/")?"audio":ne.type.startsWith("image/")||Ne(ne.name)?"image":"file";if(!me(re)){o("error",n.t("$vuetify.chatroom.agents.unsupportedAttachment",ne.name));continue}const pe=await Ue("/workspace/attachment?root="+encodeURIComponent(V)+"&sessionId="+encodeURIComponent(ve)+"&name="+encodeURIComponent(ne.name),{method:"POST",headers:{"Content-Type":"application/octet-stream","X-ChatRoom-Mime-Type":ne.type||"application/octet-stream"},body:ne,timeoutMs:6e4,signal:j.signal});if(!C.isCurrent(j)||t.session.id!==ve)return;c.value.includes(pe.path)||c.value.push(pe.path),f.value[pe.path]=pe.name,m.value[pe.path]=pe.mimeType&&pe.mimeType!=="application/octet-stream"?pe.mimeType:ne.type||Et(ne.name)}}catch(ne){C.isCurrent(j)&&o("error",qe(ne))}finally{C.isCurrent(j)&&($.value=!1)}}function Ae(N){const G=new Set(A.value);G.has(N)?G.delete(N):G.add(N),A.value=G}function he(N){const G=c.value.indexOf(N);G>=0?c.value.splice(G,1):c.value.push(N)}function Be(N){c.value=c.value.filter(G=>G!==N),delete f.value[N],delete m.value[N]}function Le(N){return f.value[N]??$t(N)}function Ke(){He(()=>{const N=Q();if(!N){d.value=!1;return}const G=N.selectionStart??s.value.length,ve=s.value.slice(0,G).match(/(?:^|\s)@([^\s"@]*)$/);if(!ve){d.value=!1;return}const V=ve[1]??"";p.value=V,ee.value=G-V.length-1,z.value=G,d.value=!0})}function P(N){const G=/\s/.test(N)?'@"'+N+'"':"@"+N,te=s.value.slice(0,ee.value),ve=s.value.slice(z.value);s.value=te+G+" "+ve,c.value.includes(N)||c.value.push(N),d.value=!1,He(()=>{const V=Q();if(!V)return;const j=te.length+G.length+1;V.focus(),V.setSelectionRange(j,j)})}function Q(){return x.value?.querySelector("textarea")??null}function ae(){B.invalidate(),b.invalidate(),C.invalidate(),T.value=!1,$.value=!1,s.value="",c.value=[],f.value={},m.value={},l.value=[],v.value=!1,r.value=[],k.value=[],A.value=new Set,O.value=!1,y.value="",w.value="",p.value="",F.value="",d.value=!1}function ge(N){if(/(?:^|\/)(?:\.agents|\.claude|\.chatroom)\/skills\/(?:.*\/)?SKILL\.md$/.test(N.replaceAll("\\","/")))return"skill";if(!(N in f.value))return"file";const G=m.value[N];return G?.startsWith("audio/")?"audio":G?.startsWith("image/")||Ne(Le(N))?"image":"file"}function me(N){return N!=="image"&&N!=="audio"||!!t.model?.inputModalities?.includes(N)}function Ne(N){return Et(N)!==null}return(N,G)=>(i(),S("div",{class:Ee(["agent-composer",{"agent-composer--waiting":e.session.status==="waiting_input"}])},[fe.value?(i(),S("div",An,M(u(n).t("$vuetify.chatroom.agents.steerHint")),1)):_("",!0),Te.value?(i(),S("div",Rn,M(Te.value),1)):_("",!0),h("input",{ref_key:"localFileInput",ref:R,class:"agent-hidden-file-input",type:"file",multiple:"",accept:xe.value,onChange:De},null,40,Pn),c.value.length?(i(),S("div",Fn,[(i(!0),S(oe,null,Se(c.value,te=>(i(),q(ft,{key:te,size:"small",closable:"",variant:"tonal",title:te,"onClick:close":ve=>Be(te)},{default:D(()=>[le(M(Le(te)),1)]),_:2},1032,["title","onClick:close"]))),128))])):_("",!0),h("div",Un,[e.session.status!=="waiting_input"?(i(),S("div",En,[g(ce,{icon:"$mdiPaperclip",size:"x-small",density:"comfortable",variant:"text",class:"agent-compose-tool-button agent-attachment-button",loading:$.value,disabled:!be.value||e.disabled||T.value,"aria-label":u(n).t("$vuetify.chatroom.agents.attachFile"),onClick:Ve},null,8,["loading","disabled","aria-label"]),g(Vn,{open:O.value,"onUpdate:open":G[0]||(G[0]=te=>O.value=te),search:y.value,"onUpdate:search":G[1]||(G[1]=te=>y.value=te),rows:je.value,truncated:v.value,"selected-paths":c.value,"expanded-directories":A.value,disabled:!be.value||e.disabled||T.value,onToggleDirectory:Ae,onToggleFile:he},null,8,["open","search","rows","truncated","selected-paths","expanded-directories","disabled"])])):_("",!0),e.session.status!=="waiting_input"?(i(),S("div",{key:1,ref_key:"composerInputHost",ref:x,class:"agent-compose-input-wrap"},[d.value&&we.value.length?(i(),S("div",zn,[(i(!0),S(oe,null,Se(we.value,te=>(i(),S("button",{key:te,type:"button",class:"agent-file-suggestion",onMousedown:lt(ve=>P(te),["prevent"]),onClick:ve=>P(te)},[h("span",On,M(u($t)(te)),1),h("span",_n,M(te),1)],40,Dn))),128))])):_("",!0),g(tn,{modelValue:s.value,"onUpdate:modelValue":G[2]||(G[2]=te=>s.value=te),placeholder:u(n).t(fe.value?"$vuetify.chatroom.agents.steerPlaceholder":"$vuetify.chatroom.agents.messagePlaceholder"),"aria-label":u(n).t(fe.value?"$vuetify.chatroom.agents.steerPlaceholder":"$vuetify.chatroom.agents.messagePlaceholder"),"auto-grow":"",rows:"2","max-rows":"8","hide-details":"",disabled:!be.value||e.disabled||T.value,onInput:Ke,onKeyup:Ke,onClick:Ke,onKeydown:[G[3]||(G[3]=ot(te=>d.value=!1,["escape"])),ot(lt(H,["ctrl","prevent"]),["enter"]),ot(lt(H,["meta","prevent"]),["enter"])]},null,8,["modelValue","placeholder","aria-label","disabled","onKeydown"])],512)):_("",!0),h("div",Bn,[ba(N.$slots,"controls",{busy:T.value||$.value},void 0),e.session.status!=="waiting_input"?(i(),q(ce,{key:0,icon:"$mdiArrowUp",color:"primary",size:"small",variant:"tonal",loading:T.value,disabled:!ze.value,"aria-label":u(n).t(fe.value?"$vuetify.chatroom.agents.steer":"$vuetify.chatroom.agents.send"),onClick:H},null,8,["loading","disabled","aria-label"])):_("",!0)])])],2))}}),Nn=Ie(Ln,[["__scopeId","data-v-c20ba904"]]),qn=Ce({__name:"AgentDeleteDialog",props:Ze({busy:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Ze(["confirm"],["update:modelValue"]),setup(e){const a=ye(e,"modelValue"),t=ke();return(o,n)=>(i(),q(ht,{modelValue:a.value,"onUpdate:modelValue":n[2]||(n[2]=s=>a.value=s),width:"auto","max-width":"32rem",persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-error"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.deleteTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.deleteDescription")),1)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:n[0]||(n[0]=s=>a.value=!1)},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"error",variant:"flat",loading:e.busy,onClick:n[1]||(n[1]=s=>o.$emit("confirm"))},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}});function jn(e,a){const t=U(!0);let o=null,n=0;function s(l=72){const v=e.value;return v?v.scrollHeight-v.scrollTop-v.clientHeight<l:!0}function c(){const l=e.value?.scrollTop??0;s()?t.value=!0:l<n&&(t.value=!1),n=l}function f(){t.value&&o===null&&(o=requestAnimationFrame(()=>{o=null;const l=e.value;l&&t.value&&(l.scrollTop=l.scrollHeight,n=l.scrollTop)}))}function m(){t.value=!0,f()}return ie([e,a],([l,v],r,k)=>{if(!l||!v)return;const A=new ResizeObserver(()=>f());A.observe(l),A.observe(v),f(),k(()=>{A.disconnect()})},{flush:"post"}),Vt(()=>{o!==null&&cancelAnimationFrame(o)}),{autoFollow:t,isNearBottom:s,onConversationScroll:c,scheduleScrollToBottom:f,scrollToBottom:m}}const Kn={class:"agent-artifact-group"},Wn={class:"agent-artifact-group-heading"},Hn=["data-count"],Gn={class:"agent-artifact-media"},Jn=["aria-label","disabled","onClick"],Qn=["src","alt","onLoad","onError"],Xn={key:1,class:"agent-artifact-placeholder agent-artifact-overlay"},Yn={key:2,class:"agent-artifact-placeholder agent-artifact-overlay error"},Zn={key:0,class:"agent-artifact-error-detail"},el={class:"agent-artifact-footer"},tl=["title"],al={class:"agent-artifact-preview-header"},nl={class:"text-truncate"},ll={class:"agent-artifact-preview-body"},sl=["src","alt"],il=Ce({__name:"AgentArtifactGallery",props:{items:{},workspaceRoot:{}},setup(e){const a=e,t=ke(),o=Re({}),n=Re({}),s=Re({}),c=U(null);function f(w){return`${a.workspaceRoot}:${w.artifact.path}:${w.id}:${w.updatedAt}:${s.value[w.id]??""}`}function m(w){const d=`${w.id}:${w.updatedAt}`;return"/api/workspace/file/image?root="+encodeURIComponent(a.workspaceRoot)+"&path="+encodeURIComponent(w.artifact.path)+"&v="+encodeURIComponent(d)+(s.value[w.id]?"&retry="+encodeURIComponent(s.value[w.id]):"")}function l(w){return!!o.value[f(w)]}function v(w){return n.value[f(w)]??""}function r(w){const d=f(w);o.value[d]=!0,delete n.value[d]}function k(w){const d=f(w);o.value[d]=!1,n.value[d]=t.t("$vuetify.chatroom.agents.imageDecodeFailed")}function A(w){s.value[w.id]=crypto.randomUUID()}function O(w){l(w)&&(c.value=w)}function y(w){l(w)&&wa(m(w),w.artifact.name).catch(()=>{})}return(w,d)=>(i(),S("div",Kn,[h("div",Wn,[g(Pe,{icon:"$mdiFileEyeOutline",size:"17"}),h("span",null,M(e.items.length===1?u(t).t("$vuetify.chatroom.agents.generatedImage"):u(t).t("$vuetify.chatroom.agents.generatedImages",e.items.length)),1)]),h("div",{class:"agent-artifact-grid","data-count":e.items.length},[(i(!0),S(oe,null,Se(e.items,p=>(i(),S("div",{key:p.id,class:"agent-artifact-tile"},[h("div",Gn,[p.status==="completed"?(i(),S("button",{key:0,type:"button",class:"agent-artifact-image-button","aria-label":p.artifact.name,disabled:!l(p),onClick:F=>O(p)},[(i(),S("img",{key:f(p),class:"agent-artifact-image",src:m(p),alt:p.artifact.name,loading:"lazy",decoding:"async",onLoad:F=>r(p),onError:F=>k(p)},null,40,Qn))],8,Jn)):_("",!0),p.status==="running"||p.status==="waiting"||p.status==="completed"&&!l(p)&&!v(p)?(i(),S("div",Xn,[g(Rt,{indeterminate:"",size:"24",width:"2"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.imageLoading")),1)])):p.status==="failed"||p.status==="interrupted"||v(p)?(i(),S("div",Yn,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"22"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.imageLoadFailed")),1),v(p)?(i(),S("span",Zn,M(v(p)),1)):_("",!0),p.status==="completed"?(i(),q(ce,{key:1,size:"small",variant:"tonal",onClick:F=>A(p)},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.retry")),1)]),_:1},8,["onClick"])):_("",!0)])):_("",!0)]),h("div",el,[h("span",{class:"agent-artifact-name",title:p.artifact.path},M(p.artifact.name),9,tl),g(ce,{icon:"$mdiDownloadOutline",size:"x-small",variant:"text",disabled:!l(p),"aria-label":u(t).t("$vuetify.chatroom.code.download"),onClick:F=>y(p)},null,8,["disabled","aria-label","onClick"])])]))),128))],8,Hn),g(ht,{"model-value":!!c.value,"max-width":"90vw","onUpdate:modelValue":d[1]||(d[1]=p=>c.value=p?c.value:null)},{default:D(()=>[c.value?(i(),q(Ye,{key:0,class:"agent-artifact-preview-dialog"},{default:D(()=>[h("div",al,[h("span",nl,M(c.value.artifact.name),1),g(ce,{icon:"$mdiClose",size:"small",variant:"text","aria-label":u(t).t("$vuetify.chatroom.common.close"),onClick:d[0]||(d[0]=p=>c.value=null)},null,8,["aria-label"])]),h("div",ll,[h("img",{src:m(c.value),alt:c.value.artifact.name,decoding:"async"},null,8,sl)])]),_:1})):_("",!0)]),_:1},8,["model-value"])]))}}),ol=Ie(il,[["__scopeId","data-v-1eb29fc4"]]),rl=["data-state","open"],ul=["aria-label"],dl={class:"agent-command-label"},cl={class:"agent-command-status"},vl={class:"agent-command-line"},ml=["title"],fl={key:0,class:"agent-command-copy-error",role:"alert"},gl={key:0,class:"agent-command-details"},pl={class:"agent-command-full"},yl={key:0,class:"agent-command-meta"},hl=["title"],bl={key:1,class:"agent-command-exit"},wl={class:"agent-command-output-label"},kl={class:"agent-command-code output"},$l={key:0,class:"agent-command-output-plain mono"},Sl=Ce({__name:"AgentCommandItem",props:{command:{},cwd:{},output:{},exitCode:{},status:{}},setup(e){const a=e,t=ke(),o=U(""),n=U(a.status!=="completed"||a.exitCode!==null&&a.exitCode!==0);ie(()=>[a.status,a.exitCode],([l,v])=>{(l==="running"||l==="failed"||v!==null&&v!==0)&&(n.value=!0)});const s=I(()=>{let l=a.command.trim();return l=l.replace(/^(?:\/usr\/bin\/|\/bin\/)?(?:zsh|bash|sh)\s+-l?c\s+/,""),l.length>=2&&(l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'"))&&(l=l.slice(1,-1)),l.replace(/\\"/g,'"').replace(/\s+/g," ").trim()||t.t("$vuetify.chatroom.agents.command")}),c=I(()=>a.status==="running"||a.status==="waiting"?"running":a.status==="failed"||a.exitCode!==null&&a.exitCode!==0?"error":a.status==="completed"&&a.exitCode===0?"success":"neutral"),f=I(()=>c.value==="running"?t.t("$vuetify.chatroom.agents.commandRunning"):c.value==="error"?a.exitCode===null?t.t("$vuetify.chatroom.agents.commandFailed"):t.t("$vuetify.chatroom.agents.exitCode",a.exitCode):c.value==="success"?t.t("$vuetify.chatroom.agents.commandSucceeded"):t.t("$vuetify.chatroom.agents.command"));async function m(){o.value="";try{await navigator.clipboard.writeText(a.command)}catch{o.value=t.t("$vuetify.chatroom.code.copyFailed")}}return(l,v)=>(i(),S("details",{class:"agent-command","data-state":c.value,open:n.value,onToggle:v[0]||(v[0]=r=>n.value=r.target.open)},[h("summary",{class:"agent-command-main","aria-label":u(t).t("$vuetify.chatroom.agents.commandDetails")},[h("div",dl,[g(Pe,{icon:"$mdiConsoleLine",size:"16"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.command")),1),h("span",cl,[v[1]||(v[1]=h("span",{class:"agent-command-status-dot"},null,-1)),le(" "+M(f.value),1)])]),h("div",vl,[h("code",{class:"mono",title:e.command},M(s.value),9,ml),g(ce,{icon:"$mdiContentCopy",size:"x-small",variant:"text",class:"agent-command-copy","aria-label":u(t).t("$vuetify.chatroom.code.copy"),onClick:lt(m,["stop"])},null,8,["aria-label"]),g(Pe,{icon:"$mdiChevronDown",size:"18",class:Ee(["agent-command-toggle",{"agent-command-toggle-open":n.value}])},null,8,["class"])]),o.value?(i(),S("div",fl,M(o.value),1)):_("",!0)],8,ul),n.value?(i(),S("div",gl,[h("div",pl,[g(it,{text:e.command,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),e.cwd||e.exitCode!==null?(i(),S("div",yl,[e.cwd?(i(),S("span",{key:0,class:"agent-command-cwd mono",title:e.cwd},M(e.cwd),9,hl)):_("",!0),e.exitCode!==null?(i(),S("span",bl,M(u(t).t("$vuetify.chatroom.agents.exitCode",e.exitCode)),1)):_("",!0)])):_("",!0),e.output?(i(),S(oe,{key:1},[h("div",wl,M(u(t).t("$vuetify.chatroom.agents.commandOutput")),1),h("div",kl,[c.value==="running"?(i(),S("pre",$l,M(e.output),1)):(i(),q(it,{key:1,text:e.output,filename:"output.txt",toolbar:!1},null,8,["text"]))])],64)):_("",!0)])):_("",!0)],40,rl))}}),Cl=Ie(Sl,[["__scopeId","data-v-7c2e41e4"]]),xl=wt({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...dn({filterKeys:["title"]}),...un({hideNoData:!0,returnObject:!0}),...Pa(Fa({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VCombobox"),Vl=Pt()({name:"VCombobox",props:xl(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,{emit:a,slots:t}){const{t:o}=ke(),n=Re(),s=U(!1),c=U(!0),f=U(!1),m=Re(),l=Re(),v=U(-1);let r=!1;const{items:k,transformIn:A,transformOut:O}=ka(e),{textColorClasses:y,textColorStyles:w}=aa(()=>n.value?.color),{InputIcon:d}=$a(e),p=zt(e,"modelValue",[],V=>A(Sa(V)),V=>{const j=O(V);return e.multiple?j:j[0]??null}),F=na(e),ee=Je(()=>e.closableChips&&!F.isReadonly.value&&!F.isDisabled.value),z=I(()=>!!(e.chips||t.chip)),x=I(()=>z.value||!!t.selection),R=U(!e.multiple&&!x.value?p.value[0]?.title??"":""),T=U(null),$=I({get:()=>R.value,set:async V=>{if(R.value=V??"",V===null||V===""&&!e.multiple&&!x.value?p.value=[]:!e.multiple&&!x.value&&(p.value=[ct(e,V)],He(()=>l.value?.scrollToIndex(0))),V&&e.multiple&&e.delimiters?.length){const j=ge(V);j.length>1&&(me(j),R.value="")}V||(v.value=-1),c.value=!V}}),B=I(()=>typeof e.counterValue=="function"?e.counterValue(p.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?p.value.length:$.value.length),{filteredItems:b,getMatches:C}=nn(e,k,()=>T.value??(e.alwaysFilter||!c.value?$.value:"")),E=I(()=>e.hideSelected&&T.value===null?b.value.filter(V=>!p.value.some(j=>j.value===V.value)):b.value),J=I(()=>e.hideNoData&&!E.value.length||F.isReadonly.value||F.isDisabled.value),de=zt(e,"menu"),Y=I({get:()=>de.value,set:V=>{de.value&&!V&&m.value?.ΨopenChildren.size||V&&J.value||(de.value=V)}}),{menuId:$e,ariaExpanded:fe,ariaControls:be}=ln(e,Y);ie(R,V=>{r?He(()=>r=!1):s.value&&!Y.value&&(Y.value=!0),a("update:search",V)}),ie(p,V=>{!e.multiple&&!x.value&&(R.value=V[0]?.title??"")});const xe=I(()=>p.value.map(V=>V.value)),se=I(()=>E.value.find(V=>V.type==="item"&&!V.props.disabled)),Te=I(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&$.value===se.value?.title)&&E.value.length>0&&!c.value&&!f.value),we=Re(),je=Re(),ze=Re(),L=rn(we,n),H=vn(Y,()=>m.value?.contentEl,()=>n.value?.controlRef),{onTabKeydown:Ve}=cn({groups:[{type:"element",contentRef:je},{type:"list",contentRef:we,displayItemsCount:()=>E.value.length},{type:"element",contentRef:ze}],onLeave:()=>{Y.value=!1,n.value?.focus()}});function De(V){r=!0,He(()=>r=!1),e.openOnClear&&(Y.value=!0)}function Ae(){J.value||(Y.value=!0)}function he(V){J.value||(s.value&&(V.preventDefault(),V.stopPropagation()),Y.value=!Y.value)}function Be(V){V.key==="Tab"&&Ve(V),we.value?.$el.contains(V.target)&&(Gt(V)||V.key==="Backspace")&&n.value?.focus()}function Le(V){if(Ra(V)||F.isReadonly.value)return;const j=n.value?.selectionStart,ne=p.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(V.key)&&V.preventDefault(),["Enter","ArrowDown"].includes(V.key)&&(Y.value=!0),["Escape"].includes(V.key)&&(Y.value=!1),Te.value&&["Enter","Tab"].includes(V.key)&&se.value&&!p.value.some(({value:re})=>re===se.value.value)&&ae(se.value),V.key==="ArrowDown"&&Te.value&&we.value?.focus("next"),V.key==="Enter"&&$.value&&(ae(ct(e,$.value),!0,!0),x.value&&(R.value="")),["Backspace","Delete"].includes(V.key)){if(!e.multiple&&x.value&&p.value.length>0&&!$.value)return ae(p.value[0],!1);if(~v.value){V.preventDefault();const re=v.value;ae(p.value[v.value],!1),v.value=re>=ne-1?ne-2:re}else V.key==="Backspace"&&!$.value&&(v.value=ne-1);return}if(e.multiple)if(V.key==="ArrowLeft"){if(v.value<0&&j&&j>0)return;const re=v.value>-1?v.value-1:ne-1;p.value[re]?v.value=re:(v.value=-1,n.value?.setSelectionRange($.value.length,$.value.length))}else if(V.key==="ArrowRight"){if(v.value<0)return;const re=v.value+1;p.value[re]?v.value=re:(v.value=-1,n.value?.setSelectionRange(0,0))}else~v.value&&Gt(V)&&(v.value=-1)}function Ke(V){const j=V?.clipboardData?.getData("Text")??"",ne=ge(j);ne.length>1&&e.multiple&&(V.preventDefault(),me(ne))}function P(){e.eager&&l.value?.calculateVisibleItems()}function Q(){s.value&&(m.value?.contentEl?._clickOutside?.lastMousedownWasOutside?s.value=!1:n.value?.focus()),c.value=!0,T.value=null}function ae(V,j=!0,ne=!1){if(!(!V||V.props.disabled))if(e.multiple){const re=p.value.findIndex(X=>(e.valueComparator||Ht)(X.value,V.value)),pe=j??!~re;if(~re){const X=pe?[...p.value,V]:[...p.value];X.splice(re,1),p.value=X}else pe&&(p.value=[...p.value,V]);e.clearOnSelect&&($.value="")}else{const re=j!==!1;p.value=re?[V]:[],(!c.value||e.alwaysFilter)&&R.value&&(T.value=R.value),R.value=re&&!x.value?V.title:"",He(()=>{Y.value=ne,c.value=!0})}}function ge(V){const ne=[`
2
- `,...e.delimiters??[]].map(Ua).join("|");return V.split(new RegExp(`(?:${ne})+`))}async function me(V){for(let j of V)j=j.trim(),j&&(ae(ct(e,j)),await He())}function Ne(V){s.value=!0,setTimeout(()=>{f.value=!0})}function N(V){if(f.value=!1,!n.value?.$el.contains(V.relatedTarget)){if(H(V))return;s.value=!1}}let G=0;function te(){G=performance.now()}function ve(V){const j=V.relatedTarget;(m.value?.contentEl?.contains(j)||!j&&performance.now()-G<10)&&(s.value=!0)}return ie(s,(V,j)=>{if(!(V||V===j)&&(v.value=-1,Y.value=!1,$.value)){if(e.multiple){ae(ct(e,$.value));return}if(!x.value)return;p.value.some(({title:ne})=>ne===$.value)?R.value="":ae(ct(e,$.value))}}),ie(Y,V=>{if(!e.hideSelected&&V&&p.value.length&&c.value){const j=E.value.findIndex(ne=>p.value.some(re=>(e.valueComparator||Ht)(re.value,ne.value)));la&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{j>=0&&l.value?.scrollToIndex(j)})}V&&(T.value=null)}),ie(k,(V,j)=>{Y.value||s.value&&!j.length&&V.length&&(Y.value=!0)}),Ft(()=>{const V=!!(!e.hideNoData||E.value.length||t["prepend-item"]||t["append-item"]||t["no-data"]),j=p.value.length>0,ne=ut.filterProps(e),re={search:$,filteredItems:b.value};return g(ut,ue({ref:n},ne,{modelValue:$.value,"onUpdate:modelValue":pe=>$.value=pe,focused:s.value,"onUpdate:focused":pe=>s.value=pe,validationValue:p.externalValue,counterValue:B.value,dirty:j,class:["v-combobox",{"v-combobox--active-menu":Y.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!x.value,"v-combobox--selecting-index":v.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:F.isReadonly.value,placeholder:j?void 0:e.placeholder,"onClick:clear":De,"onMousedown:control":Ae,onKeydown:Le,onPaste:Ke,onBlur:ve,"aria-expanded":fe.value,"aria-controls":be.value}),{...t,default:({id:pe})=>h(oe,null,[g(yt,ue({id:$e.value,ref:m,modelValue:Y.value,"onUpdate:modelValue":X=>Y.value=X,activator:"parent",disabled:J.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:P,onAfterLeave:Q},e.menuProps,{contentClass:["v-combobox__content",e.menuProps?.contentClass]}),{default:()=>[g(an,{elevation:e.menuElevation,onFocusin:Ne,onKeydown:Be,onMousedown:te},{default:()=>[t["menu-header"]&&h("header",{ref:je},[t["menu-header"](re)]),V&&g(bt,ue({key:"combobox-list",ref:we,filterable:!0,selected:xe.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:X=>X.preventDefault(),selectable:!!E.value.length,onFocusout:N,tabindex:"-1","aria-live":"polite","aria-labelledby":`${pe.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},L,e.listProps),{default:()=>[t["prepend-item"]?.(),!E.value.length&&!e.hideNoData&&(t["no-data"]?.()??g(Me,{key:"no-data",title:o(e.noDataText)},null)),g(sn,{ref:l,renderless:!0,items:E.value,itemKey:"value"},{default:({item:X,index:Oe,itemRef:st})=>{const Qe=xa(X.props),at=ue(X.props,{ref:st,key:X.value,active:Te.value&&X===se.value?!0:void 0,onClick:()=>ae(X,null),"aria-posinset":Oe+1,"aria-setsize":E.value.length});return X.type==="divider"?t.divider?.({props:X.raw,index:Oe})??g(rt,ue(X.props,{key:`divider-${Oe}`}),null):X.type==="subheader"?t.subheader?.({props:X.raw,index:Oe})??g(Va,ue(X.props,{key:`subheader-${Oe}`}),null):t.item?.({item:X.raw,internalItem:X,index:Oe,props:at})??g(Me,ue(at,{role:"option"}),{prepend:({isSelected:et})=>h(oe,null,[e.multiple&&!e.hideSelected?g(Ma,{key:X.value,modelValue:et,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:Fe=>Fe.preventDefault()},null):void 0,Qe.prependAvatar&&g(Ia,{image:Qe.prependAvatar},null),Qe.prependIcon&&g(Pe,{icon:Qe.prependIcon},null)]),title:()=>c.value?X.title:g(on,{text:X.title,matches:C(X)?.title,markClass:"v-combobox__mask",matchAll:!0,ignoreCase:!0},null)})}}),t["append-item"]?.()]}),t["menu-footer"]&&h("footer",{ref:ze},[t["menu-footer"](re)])]})]}),p.value.map((X,Oe)=>{function st(Fe){Fe.stopPropagation(),Fe.preventDefault(),ae(X,!1)}const Qe=ue(ft.filterProps(X.props),{"onClick:close":st,onKeydown(Fe){Fe.key!=="Enter"&&Fe.key!==" "||(Fe.preventDefault(),Fe.stopPropagation(),st(Fe))},onMousedown(Fe){Fe.preventDefault(),Fe.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),at=z.value?!!t.chip:!!t.selection,et=at?Ta(z.value?t.chip({item:X.raw,internalItem:X,index:Oe,props:Qe}):t.selection({item:X.raw,internalItem:X,index:Oe})):void 0;if(!(at&&!et))return h("div",{key:X.value,class:Ee(["v-combobox__selection",Oe===v.value&&["v-combobox__selection--selected",y.value]]),style:tt(Oe===v.value?w.value:{})},[z.value?t.chip?g(Aa,{key:"chip-defaults",defaults:{VChip:{closable:ee.value,size:"small",text:X.title}}},{default:()=>[et]}):g(ft,ue({key:"chip",closable:ee.value,size:"small",text:X.title,disabled:X.props.disabled},Qe),null):et??h("span",{class:"v-combobox__selection-text"},[X.title,e.multiple&&Oe<p.value.length-1&&h("span",{class:"v-combobox__selection-comma"},[le(",")])])])})]),"append-inner":(...pe)=>h(oe,null,[t["append-inner"]?.(...pe),(!e.hideNoData||e.items.length)&&e.menuIcon?g(Pe,{class:"v-combobox__menu-icon",color:n.value?.fieldIconColor,icon:e.menuIcon,onMousedown:he,onClick:Ca,"aria-hidden":!0,tabindex:"-1"},null):void 0,e.appendInnerIcon&&g(d,{key:"append-icon",name:"appendInner",color:pe[0].iconColor.value},null)])})}),sa({isFocused:s,isPristine:c,menu:Y,search:$,selectionIndex:v,filteredItems:b,select:ae},n)}}),Ml=["aria-label","aria-busy"],Il={class:"agent-interaction-heading"},Tl={class:"agent-interaction-content"},Al={class:"agent-interaction-title"},Rl={key:1},Pl={key:0,class:"agent-input-questions"},Fl={class:"agent-question-label"},Ul={class:"agent-question-text"},El={key:2,class:"agent-interaction-resolved"},zl={key:0,class:"agent-interaction-footer"},Dl={key:0,class:"agent-interaction-actions"},Ol=Ce({__name:"AgentInteractionCard",props:{item:{},answers:{default:()=>({})},pinned:{type:Boolean,default:!1},responding:{type:Boolean,default:!1}},emits:["approve","submit","update-answer"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=I(()=>Object.fromEntries(t.item.interaction.questions.map(y=>[y.id,y.options.map(w=>({title:w.label,value:w.id}))]))),c=I(()=>{const y=t.item.interaction.approvalOptions,w=y[0],d=y.find(F=>F.id==="decline"||F.id==="deny"),p=w?[w]:[];return d&&d!==w&&p.push(d),p}),f=I(()=>t.item.interaction.approvalOptions.filter(y=>!c.value.includes(y))),m={accept:"accept",allow:"accept",acceptForSession:"session",decline:"deny",deny:"deny",cancel:"cancel",acceptWithExecpolicyAmendment:"similar"};function l(y,w){const d=m[y];return d?n.t("$vuetify.chatroom.agents.approvalChoices."+d):w}function v(y){return y==="cancel"?"$mdiStopCircleOutline":y==="decline"||y==="deny"?"$mdiCloseOctagonOutline":"$mdiCheckCircleOutline"}const r=I(()=>{const y=t.item.interaction.response;if(!y)return n.t(t.item.status==="completed"?"$vuetify.chatroom.agents.resolvedExternally":"$vuetify.chatroom.agents.statuses."+t.item.status);if(y.type==="approval"){const w=t.item.interaction.approvalOptions.find(d=>d.id===y.decision);return l(y.decision,w?.label??y.decision)}return t.item.interaction.questions.map(w=>w.label+": "+(w.secret?"••••":(y.answers[w.id]??[]).join(", "))).join(`
1
+ import{$ as mt,a0 as xt,w as ie,i as Ue,a7 as Wt,s as U,y as qe,u as ke,v as I,d as Ce,x as ye,c as i,l as q,a8 as yt,p as D,k as g,z as Ye,f as h,t as M,g as u,R as ut,E as ta,q as le,h as _,e as S,F as oe,j as Se,m as ce,a9 as ue,J as Ze,aa as tt,V as Pe,n as Ee,_ as Ie,ab as dt,b as Vt,S as ot,ac as lt,ad as ba,r as Re,ae as He,a4 as ft,O as Mt,P as It,Q as Tt,T as At,I as ht,af as Rt,M as wa,ag as Pt,ah as ka,ai as aa,aj as $a,ak as zt,al as Sa,am as na,an as ct,ao as Ht,ap as la,aq as Ft,ar as Ca,W as bt,Y as Me,as as xa,C as rt,at as Va,au as Ma,av as Ia,aw as Ta,ax as Aa,ay as sa,az as Gt,aA as Je,aB as Ra,aC as wt,aD as Pa,aE as Fa,aF as Ua,D as Ea,aG as Bt,aH as Dt,aI as za,aJ as Da,aK as Oa,aL as Jt,aM as _a,aN as Qt,aO as ia,aP as Ot,aQ as Ba,aR as nt,aS as Xt,aT as La,aU as Na,aV as qa,aW as oa,aX as ja,aY as Ka,aZ as Wa,a_ as Ha,a$ as Yt,b0 as Ga,b1 as Ja,o as ra,b2 as Qa,a1 as Xa,a2 as Ya,b3 as Za,b4 as _e,a3 as en}from"./index-CR4g0KyE.js";import{V as tn}from"./VTextarea-j4nd1i82.js";import{V as Ut}from"./VSpacer-CYKfdiFh.js";import{_ as it}from"./CodeViewer.vue_vue_type_script_setup_true_lang-B3tNL1LG.js";import{u as an,a as nn,b as ln,c as sn,d as on,m as rn,e as un,f as dn,g as cn,V as Ge}from"./VSelect-EZ3BvG23.js";import{V as vn}from"./VSheet-DQI4RXKJ.js";import{M as _t}from"./MarkdownContent-Cs2dEsGL.js";import{V as mn}from"./VSwitch-C-NDv5Ol.js";import"./syntax-highlight-C_fuMcwC.js";function Ct(){return{sandbox_approval:!0,rules:!0,skill_approval:!0,request_permissions:!0,mcp_elicitations:!0}}function Xe(e,a,t){return e.find(o=>o.id===a)?.nativeSettings.find(o=>o.id===t)??null}function Lt(e,a=null){if(e&&typeof e=="object")return"granular";const t=e??a;return t==="untrusted"||t==="on-request"||t==="granular"||t==="never"?t:null}function Nt(e,a){const t=e??a;return t==="user"||t==="auto_review"||t==="guardian_subagent"?t:null}function qt(e,a){const t=e??a;return t==="read-only"||t==="workspace-write"||t==="danger-full-access"?t:null}function ua(e,a,t,o,n,s){const c=Xe(e,a,"approvalPolicy"),f=Xe(e,a,"approvalsReviewer"),m=Xe(e,a,"permissionMode"),l=Lt(t,c?.defaultValue??null),v=m?.options.some(r=>r.id===s)?s:null;return{approvalPolicy:c?l==="granular"?{granular:{...o}}:l:null,approvalsReviewer:f?Nt(n,f.defaultValue):null,permissionMode:m?qt(v,m.defaultValue):null}}function da(e,a,t){const o=e[a]??[];return t?o.find(n=>n.id===t)??null:o.find(n=>n.isDefault)??o[0]??null}function fn(e,a,t){return t||((e[a]??[]).find(o=>o.isDefault)?.id??null)}function ca(e,a){return e.find(t=>t.id===a)??null}function gt(e,a){return ca(e,a)?.displayName??a}function va(e,a){return ca(e,a)?.icon??null}function ma(e,a,t,o){const n=fn(e,a,t);return n?(e[a]??[]).find(s=>s.id===n)?.displayName??n:o}function jt(e,a){return a?`${e} (${a})`:e}function $t(e){return e.split("/").pop()??e}function gn(e,a){const t=a.request??Ue,o=U([]),n=U(null),s=mt(),c=new Map,f=new Map;let m=!1,l=null,v=null,r=!1;xt(()=>{r=!0,s.invalidate(),c.clear(),f.clear()}),ie(e,z=>{s.invalidate(),n.value=null,l=z,w()},{flush:"sync"});function k(z){const x=c.get(z.sessionId);c.set(z.sessionId,{sessionId:z.sessionId,turnIds:[...new Set([...x?.turnIds??[],...z.turnIds])],itemIds:[...new Set([...x?.itemIds??[],...z.itemIds])],deleted:!!(x?.deleted||z.deleted)})}function A(z){const x=new Map(o.value.map(R=>[R.id,R]));o.value=z.map(R=>St(x.get(R.id),R)).sort((R,T)=>T.updatedAt.localeCompare(R.updatedAt)),a.onSessionsChanged?.(x,o.value),e.value&&!z.some(R=>R.id===e.value)&&(e.value=z[0]?.id??null)}function O(z){const x=new Map(o.value.map(T=>[T.id,T])),R=St(x.get(z.id),z);return x.set(z.id,R),A([...x.values()]),R}function y(z){return z===void 0?Promise.resolve():(z===null?m=!0:z.forEach(k),w())}function w(){return v||(r?Promise.resolve():(v=Promise.resolve().then(async()=>{for(;!r&&(m||l||c.size);){const z=m;m=!1;const x=l;l=null;const R=z||x?[]:[...c.values()];!z&&!x&&c.clear();const T=s.begin();try{if(z){const $=await t("/agents/sessions",{signal:T.signal});if(!s.isCurrent(T))continue;A($),l=e.value}else if(x){const $=await t(`/agents/sessions/${encodeURIComponent(x)}/history`,{signal:T.signal});if(!s.isCurrent(T)||e.value!==x)continue;n.value=$,O($.session)}else for(const $ of R){if(!s.isCurrent(T))break;if($.deleted){A(o.value.filter(C=>C.id!==$.sessionId));continue}const B=Math.max(1,Math.ceil($.turnIds.length/64),Math.ceil($.itemIds.length/64));let b=!0;for(let C=0;C<B;C++){const E=new URLSearchParams;E.set("turnIds",$.turnIds.slice(C*64,(C+1)*64).join(",")),E.set("itemIds",$.itemIds.slice(C*64,(C+1)*64).join(","));try{const J=await t(`/agents/sessions/${encodeURIComponent($.sessionId)}/update?${E}`,{signal:T.signal});if(!s.isCurrent(T))break;O(J.session),n.value?.session.id===J.session.id&&(n.value=Zt(n.value,J))}catch(J){if(!s.isCurrent(T))break;if(J instanceof Wt&&J.status===404)f.delete($.sessionId),A(o.value.filter(de=>de.id!==$.sessionId));else{const de=(f.get($.sessionId)??0)+1;de<=1?(f.set($.sessionId,de),k($)):(f.delete($.sessionId),a.onError(J))}b=!1;break}}b&&f.delete($.sessionId)}}catch($){s.isCurrent(T)&&($ instanceof Wt&&$.status===404&&x?A(o.value.filter(B=>B.id!==x)):a.onError($))}finally{!r&&!s.isCurrent(T)&&(z?m=!0:x&&e.value===x&&(l=x),R.forEach(k))}}}).finally(()=>{v=null,!r&&(m||l||c.size)&&w()}),v))}function d(){const z=e.value;return z?(l=z,w()):Promise.resolve()}function p(z){s.invalidate();const x=O(z);n.value?.session.id===z.id&&(n.value={...n.value,session:St(n.value.session,x)})}function F(z){s.invalidate(),A(o.value.filter(x=>x.id!==z)),k({sessionId:z,turnIds:[],itemIds:[],deleted:!0}),w()}function ee(z,x){s.invalidate();const R=n.value;if(!R||R.session.id!==z)return;const T=Zt(R,{session:R.session,turns:[],items:[x]}),$=T.turns.flatMap(b=>b.items).filter(b=>b.type==="interaction"&&b.status==="waiting"),B={...T.session,status:T.session.status==="waiting_input"?$.length?"waiting_input":"running":T.session.status,attention:$.length?{kind:$.some(b=>b.interaction.kind==="approval")?"approval":"input",count:$.length}:null};n.value={...T,session:B},O(B)}return{sessions:o,history:n,refresh:y,reloadSelected:d,reconcileSession:p,reconcileInteraction:ee,removeSession:F}}function Zt(e,a){const t=new Map(e.turns.map(n=>[n.turn.id,n]));for(const n of a.turns){const s=t.get(n.id);t.set(n.id,{turn:n,items:s?.items??[]})}const o=new Map;for(const n of a.items){const s=o.get(n.turnId)??[];s.push(n),o.set(n.turnId,s)}for(const[n,s]of o){const c=t.get(n);if(!c)throw new Error("Agent update is missing the item's turn");const f=new Map(c.items.map(m=>[m.id,m]));for(const m of s)f.set(m.id,m);t.set(n,{...c,items:[...f.values()].sort((m,l)=>m.sequence-l.sequence)})}return{session:St(e.session,a.session),turns:[...t.values()].sort((n,s)=>n.turn.startedAt.localeCompare(s.turn.startedAt))}}function St(e,a){return e&&e.updatedAt.localeCompare(a.updatedAt)>=0?e:a}function pn(e){const a=U({}),t=U(new Set),o=new Map;let n=0;ie(e.selectedId,()=>{n+=1,a.value={},t.value=new Set(e.selectedId.value?o.get(e.selectedId.value)??[]:[])},{flush:"sync"}),xt(()=>o.clear());async function s(k,A){k.type!=="interaction"||!e.selected.value||await f(k,{type:"approval",decision:A})}async function c(k){if(k.type!=="interaction"||!e.selected.value)return;const A={};for(const O of k.interaction.questions){const y=l(k)[O.id]??[];A[O.id]=O.multiSelect?y:y.slice(0,1)}await f(k,{type:"input",answers:A})}async function f(k,A){const O=e.selected.value,y=O?o.get(O.id):void 0;if(!O||k.status!=="waiting"||y?.has(k.id))return;const w={sessionId:O.id,generation:n},d=new Set(y??[]);d.add(k.id),o.set(O.id,d),t.value=new Set(d),e.error.value="";try{const p=await Ue("/agents/sessions/"+encodeURIComponent(O.id)+"/interactions/"+encodeURIComponent(k.id),{method:"POST",body:JSON.stringify(A)});e.reconcileInteraction(O.id,p)}catch(p){r(w)&&(e.error.value=qe(p))}finally{const p=new Set(o.get(O.id)??[]);p.delete(k.id),p.size?o.set(O.id,p):o.delete(O.id),e.selectedId.value===O.id&&(t.value=p)}}const m=Object.freeze({});function l(k){return a.value[k.id]??m}function v(k,A,O){a.value={...a.value,[k.id]:{...a.value[k.id]??{},[A]:O}}}function r(k){return e.selectedId.value===k.sessionId&&n===k.generation}return{respondingInteractions:t,respondApproval:s,submitInput:c,interactionAnswers:l,setInteractionAnswer:v}}function yn(e){const a=ke(),t=U(!1),o=U(null),n=U(null),s=U(null),c=U(null),f=U(null),m=U(Ct()),l=U(null),v=U(null),r=U(!1),k=U("uncommittedChanges"),A=U(""),O=U(""),y=U(!1),w=U(""),d=U(!1),p=U(!1),F=U(!1),ee=U(!1),z=U(null),x=U(!1);let R=!1,T=0;const $=new Map,B=new Map,b=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"approvalPolicy"):null),C=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"approvalsReviewer"):null),E=I(()=>e.selected.value?Xe(e.providers.value,e.selected.value.provider,"permissionMode"):null),J=I(()=>e.selected.value?e.providerModels.value[e.selected.value.provider]??[]:[]),de=I(()=>e.selected.value?da(e.providerModels.value,e.selected.value.provider,e.selected.value.model):null),Y=I(()=>e.selected.value?e.providers.value.find(P=>P.id===e.selected.value?.provider)??null:null),$e=I(()=>["uncommittedChanges","baseBranch","commit","custom"].map(P=>({value:P,title:a.t(`$vuetify.chatroom.agents.reviewTargets.${P}`)}))),fe=I(()=>a.t(`$vuetify.chatroom.agents.reviewFields.${k.value}`)),be=I(()=>e.selected.value?.status==="idle"&&!!Y.value?.features.nativeReview&&!y.value&&!e.composerBusy.value&&!d.value&&!p.value&&(k.value==="uncommittedChanges"||!!A.value.trim())),xe=I(()=>e.selected.value?e.providers.value.filter(P=>P.id!==e.selected.value?.provider&&P.installed&&P.authenticated):[]);ie(k,()=>{A.value="",O.value="",w.value=""}),ie(e.selectedId,()=>{T+=1,d.value=!1,p.value=!1,F.value=!1,y.value=!1,t.value=!1,r.value=!1,ee.value=!1,z.value=null,x.value=!1},{flush:"sync"}),ie(e.sessions,P=>{const Q=z.value;Q&&!P.some(ae=>ae.id===Q)&&(ee.value=!1,z.value=null)}),xt(()=>{R=!0,$.clear(),B.clear()});async function se(P,Q=null){const ae=e.providers.value.find(me=>me.id===P);if(ae&&(!ae.installed||!ae.authenticated)){e.providerModels.value={...e.providerModels.value,[P]:[]};return}const ge=($.get(P)??0)+1;$.set(P,ge);try{const me=await Ue("/agents/providers/"+P+"/models",{timeoutMs:15e3});if(R||$.get(P)!==ge)return;e.providerModels.value={...e.providerModels.value,[P]:me}}catch(me){if(R||$.get(P)!==ge)return;e.providerModels.value={...e.providerModels.value,[P]:[]},(Q===null||e.selectedId.value===Q)&&(e.error.value=qe(me))}}async function Te(){const P=e.selected.value;if(!P||!be.value)return;const Q=Ae(P.id),ae=A.value.trim();let ge;switch(k.value){case"uncommittedChanges":ge={type:"uncommittedChanges"};break;case"baseBranch":ge={type:"baseBranch",branch:ae};break;case"commit":ge={type:"commit",sha:ae,title:O.value.trim()||null};break;case"custom":ge={type:"custom",instructions:ae};break}y.value=!0,w.value="";try{await Ue(`/agents/sessions/${encodeURIComponent(P.id)}/review`,{method:"POST",body:JSON.stringify({target:ge}),timeoutMs:3e4}),he(Q)&&(r.value=!1)}catch(me){he(Q)&&(w.value=qe(me))}finally{he(Q)&&(y.value=!1)}}async function we(){const P=e.selected.value;if(!P||F.value)return;const Q=Ae(P.id);F.value=!0,e.error.value="";try{await Ue("/agents/sessions/"+encodeURIComponent(P.id)+"/interrupt",{method:"POST"})}catch(ae){he(Q)&&(e.error.value=qe(ae))}finally{he(Q)&&(F.value=!1)}}async function je(P){const Q=e.selected.value;if(!Q||P===Q.provider||p.value)return;const ae=e.providers.value.find(Ne=>Ne.id===P);if(!ae?.installed||!ae.authenticated)return;const ge=Ae(Q.id),me=Be(Q.id);p.value=!0,e.error.value="";try{const Ne=await Ue("/agents/sessions/"+encodeURIComponent(Q.id)+"/provider",{method:"POST",body:JSON.stringify({provider:P,model:null,reasoningEffort:null,reasoningSummary:null,serviceTier:null}),timeoutMs:3e4});Le(me)?(e.reconcileSession(Ne),await se(Ne.provider,Q.id)):Ke(Q.id)}catch(Ne){he(ge)&&(e.error.value=qe(Ne))}finally{he(ge)&&(p.value=!1)}}function ze(){const P=e.selected.value;P&&(z.value=P.id,ee.value=!0)}async function L(){const P=z.value;if(!(!P||x.value)){x.value=!0,e.error.value="";try{await Ue("/agents/sessions/"+encodeURIComponent(P),{method:"DELETE"}),e.removeSession(P),z.value===P&&(x.value=!1,ee.value=!1,z.value=null)}catch(Q){z.value===P&&(x.value=!1,e.error.value=qe(Q))}}}function H(){const P=e.selected.value;P&&(o.value=P.model,n.value=P.reasoningEffort,s.value=P.reasoningSummary,c.value=P.serviceTier,f.value=Lt(P.approvalPolicy,b.value?.defaultValue??null),m.value=P.approvalPolicy&&typeof P.approvalPolicy=="object"&&"granular"in P.approvalPolicy?{...P.approvalPolicy.granular}:Ct(),l.value=Nt(P.approvalsReviewer,C.value?.defaultValue??null),v.value=qt(P.permissionMode,E.value?.defaultValue??null),t.value=!0)}async function Ve(){const P=e.selected.value;if(!P)return;await De({model:o.value,reasoningEffort:n.value,reasoningSummary:s.value,serviceTier:c.value,...ua(e.providers.value,P.provider,f.value,m.value,l.value,v.value)})&&(t.value=!1)}async function De(P){const Q=e.selected.value;if(!Q||Q.status!=="idle"||d.value||p.value)return!1;const ae=Ae(Q.id),ge=Be(Q.id);d.value=!0,e.error.value="";try{const me=await Ue(`/agents/sessions/${encodeURIComponent(Q.id)}/config`,{method:"PUT",body:JSON.stringify(P),timeoutMs:3e4});return Le(ge)?(e.reconcileSession(me),he(ae)):(Ke(Q.id),!1)}catch(me){return he(ae)&&(e.error.value=qe(me)),!1}finally{he(ae)&&(d.value=!1)}}function Ae(P){return{sessionId:P,generation:T}}function he(P){return e.selectedId.value===P.sessionId&&T===P.generation}function Be(P){const Q=(B.get(P)??0)+1;return B.set(P,Q),{sessionId:P,generation:Q}}function Le(P){return B.get(P.sessionId)===P.generation}function Ke(P){e.refresh([{sessionId:P,turnIds:[],itemIds:[],deleted:!1}])}return{modelSettingsOpen:t,settingsModel:o,settingsReasoningEffort:n,settingsReasoningSummary:s,settingsServiceTier:c,settingsApprovalPolicyMode:f,settingsGranularApproval:m,settingsApprovalsReviewer:l,settingsPermissionMode:v,reviewOpen:r,reviewType:k,reviewValue:A,reviewTitle:O,reviewStarting:y,reviewError:w,modelSwitching:d,switchingProvider:p,interrupting:F,deleteDialog:ee,deletingSession:x,selectedApprovalPolicySetting:b,selectedApprovalsReviewerSetting:C,selectedPermissionModeSetting:E,selectedProviderModels:J,selectedModelMetadata:de,selectedProviderStatus:Y,reviewTypes:$e,reviewFieldLabel:fe,canStartReview:be,switchTargets:xe,loadModels:se,startReview:Te,interrupt:we,switchProvider:je,openDeleteDialog:ze,deleteSession:L,openModelSettings:H,saveModelSettings:Ve}}const hn={class:"agent-file-picker-caption"},bn={class:"agent-file-picker-list"},wn=["data-type","data-selected","aria-expanded","aria-pressed","onClick"],kn={key:1,class:"agent-tree-spacer"},$n={class:"agent-tree-name"},Sn={key:2,class:"agent-tree-path"},Cn={key:0,class:"agent-file-picker-empty"},xn=Ce({__name:"AgentProjectFilePicker",props:Ze({rows:{},truncated:{type:Boolean},selectedPaths:{},expandedDirectories:{},disabled:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},search:{required:!0},searchModifiers:{}}),emits:Ze(["toggleDirectory","toggleFile"],["update:open","update:search"]),setup(e,{emit:a}){const t=e,o=a,n=ye(e,"open"),s=ye(e,"search"),c=ke();function f(m){return t.selectedPaths.includes(m)}return(m,l)=>(i(),q(yt,{modelValue:n.value,"onUpdate:modelValue":l[1]||(l[1]=v=>n.value=v),"close-on-content-click":!1,location:"top start",offset:"8","content-class":"agent-overlay-menu"},{activator:D(({props:v})=>[g(ce,ue(v,{size:"x-small",density:"comfortable",variant:"text",icon:"",class:"agent-compose-tool-button agent-workspace-reference-button",disabled:e.disabled,"aria-label":u(c).t("$vuetify.chatroom.agents.projectFiles")}),{default:D(()=>[...l[2]||(l[2]=[le(" @ ",-1)])]),_:1},16,["disabled","aria-label"])]),default:D(()=>[g(Ye,{class:"agent-file-picker",elevation:"8"},{default:D(()=>[h("div",hn,M(u(c).t("$vuetify.chatroom.agents.projectFiles")),1),g(ut,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=v=>s.value=v),"prepend-inner-icon":"$mdiMagnify","aria-label":u(c).t("$vuetify.chatroom.agents.searchFiles"),placeholder:u(c).t("$vuetify.chatroom.agents.searchFiles"),density:"compact",variant:"outlined","hide-details":"",autofocus:""},null,8,["modelValue","aria-label","placeholder"]),e.truncated?(i(),q(ta,{key:0,type:"warning",variant:"tonal",density:"compact",class:"agent-project-files-truncated"},{default:D(()=>[le(M(u(c).t("$vuetify.chatroom.agents.projectFilesTruncated")),1)]),_:1})):_("",!0),h("div",bn,[(i(!0),S(oe,null,Se(e.rows,v=>(i(),S("button",{key:v.path,type:"button",class:"agent-tree-row","data-type":v.type,"data-selected":v.type==="file"&&f(v.path)?"true":"false","aria-expanded":v.type==="directory"?e.expandedDirectories.has(v.path):void 0,"aria-pressed":v.type==="file"?f(v.path):void 0,style:tt({paddingInlineStart:String(8+v.depth*18)+"px"}),onClick:r=>v.type==="directory"?o("toggleDirectory",v.path):o("toggleFile",v.path)},[v.type==="directory"?(i(),q(Pe,{key:0,icon:"$mdiChevronRight",size:"16",class:Ee(["agent-tree-chevron",{"agent-tree-chevron-open":e.expandedDirectories.has(v.path)}])},null,8,["class"])):(i(),S("span",kn)),h("span",$n,M(v.name),1),s.value.trim()&&v.type==="file"?(i(),S("span",Sn,M(v.path),1)):_("",!0)],12,wn))),128)),e.rows.length?_("",!0):(i(),S("div",Cn,M(u(c).t("$vuetify.chatroom.agents.noMatchingFiles")),1))])]),_:1})]),_:1},8,["modelValue"]))}}),Vn=Ie(xn,[["__scopeId","data-v-024d9876"]]);function Mn(e){return e.map(a=>({path:a,lowerPath:a.toLowerCase()}))}function ea(e,a,t){const o=t.trim().toLowerCase();if(!o)return[...e];const n=o.split(/[\/\s]+/).filter(Boolean);return a.filter(s=>n.every(c=>s.lowerPath.includes(c))).sort((s,c)=>{const f=s.lowerPath.startsWith(o)?0:1,m=c.lowerPath.startsWith(o)?0:1;return f-m||s.path.length-c.path.length||s.path.localeCompare(c.path)}).map(s=>s.path)}function In(e){const a=new Map;for(const t of e){const o=t.split("/");for(let n=1;n<o.length;n+=1)a.set(o.slice(0,n).join("/"),"directory");a.set(t,"file")}return[...a].map(([t,o])=>{const n=t.split("/"),s=[];let c="";for(const f of n.slice(0,-1))c=c?c+"/"+f:f,s.push(c);return{path:t,name:n.at(-1)??t,type:o,depth:Math.max(0,n.length-1),ancestors:s}}).sort((t,o)=>{const n=t.ancestors.at(-1)??"",s=o.ancestors.at(-1)??"";return n===s&&t.type!==o.type?t.type==="directory"?-1:1:t.path.localeCompare(o.path)})}function Tn(e,a){const t=new Set,o=/@"([^"]+)"|@([^\s]+)/g;for(const n of e.matchAll(o)){const s=(n[1]??n[2]??"").replace(/[),.;!?]+$/,"");a.has(s)&&t.add(s)}return[...t]}function Et(e){const a=e.toLowerCase();return a.endsWith(".png")?"image/png":a.endsWith(".jpg")||a.endsWith(".jpeg")?"image/jpeg":a.endsWith(".gif")?"image/gif":a.endsWith(".webp")?"image/webp":a.endsWith(".avif")?"image/avif":null}const An={key:0,class:"agent-composer-caption"},Rn={key:1,class:"agent-inline-error agent-attachment-error",role:"alert"},Pn=["accept"],Fn={key:2,class:"agent-selected-attachments"},Un={class:"agent-compose-row"},En={key:0,class:"agent-compose-tools"},zn={key:0,class:"agent-mention-popup"},Dn=["onMousedown","onClick"],On={class:"agent-file-suggestion-name"},_n={class:"agent-file-suggestion-path"},Bn={class:"agent-compose-actions"},Ln=Ce({__name:"AgentComposer",props:{session:{},model:{},steeringSupported:{type:Boolean},disabled:{type:Boolean}},emits:["error","busy"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(""),c=Re([]),f=Re({}),m=Re({}),l=U([]),v=U(!1),r=U([]),k=U([]),A=U(new Set),O=U(!1),y=U(""),w=U(""),d=U(!1),p=U(""),F=U(""),ee=U(0),z=U(0),x=dt("composerInputHost"),R=dt("localFileInput"),T=U(!1),$=U(!1),B=mt(),b=mt(),C=mt();let E=null,J=null;ie(y,(N,G,te)=>{E&&clearTimeout(E),E=setTimeout(()=>{w.value=N,E=null},120),te(()=>{E&&clearTimeout(E),E=null})}),ie(p,(N,G,te)=>{J&&clearTimeout(J),J=setTimeout(()=>{F.value=N,J=null},100),te(()=>{J&&clearTimeout(J),J=null})});const de=I(()=>new Set(l.value)),Y=I(()=>Tn(s.value,de.value)),$e=I(()=>[...new Set([...c.value,...Y.value])]),fe=I(()=>t.session.status==="running"&&t.steeringSupported),be=I(()=>t.session.status==="idle"||fe.value),xe=I(()=>[".txt",".md",".json",".csv",".pdf",".doc",".docx",".xls",".xlsx",".zip",".yaml",".yml",".xml",".html",".css",".js",".ts",".py",".rs",".go",".java",".c",".cpp",".sh",".log",".toml",".sql",...me("image")?["image/*"]:[],...me("audio")?["audio/*"]:[]].join(",")),se=I(()=>$e.value.filter(N=>!me(ge(N)))),Te=I(()=>se.value.length?n.t("$vuetify.chatroom.agents.unsupportedAttachment",se.value.map(Le).join(", ")):""),we=I(()=>ea(l.value,r.value,F.value).slice(0,12)),je=I(()=>w.value.trim()?ea(l.value,r.value,w.value).slice(0,80).map(N=>({path:N,name:$t(N),type:"file",depth:0,ancestors:[]})):k.value.filter(N=>N.ancestors.every(G=>A.value.has(G)))),ze=I(()=>be.value&&!t.disabled&&!T.value&&!$.value&&!se.value.length&&!!(s.value.trim()||$e.value.length));ie(()=>[t.session.id,t.session.workspaceRoot],()=>{ae(),L()},{immediate:!0}),ie(()=>T.value||$.value,N=>o("busy",N),{immediate:!0}),Vt(()=>{E&&clearTimeout(E),J&&clearTimeout(J),o("busy",!1)});async function L(){const N=B.begin(),G=t.session.id,te=t.session.workspaceRoot;try{const ve=await Ue("/workspace/project-files?root="+encodeURIComponent(te),{timeoutMs:2e4,signal:N.signal});if(!B.isCurrent(N)||t.session.id!==G||t.session.workspaceRoot!==te)return;l.value=ve.paths,v.value=ve.truncated,r.value=Mn(ve.paths),k.value=In(ve.paths)}catch(ve){if(!B.isCurrent(N))return;l.value=[],v.value=!1,r.value=[],k.value=[],o("error",qe(ve))}}async function H(){if(!ze.value)return;if(se.value.length){o("error",Te.value);return}const N=t.session.id,G=fe.value,te=s.value,ve=$e.value.map(j=>({kind:ge(j),name:Le(j),path:j,mimeType:m.value[j]??Et(j)})),V=b.begin();T.value=!0;try{if(await Ue("/agents/sessions/"+encodeURIComponent(N)+"/"+(G?"steer":"turns"),{method:"POST",body:JSON.stringify({text:te,attachments:ve}),timeoutMs:3e4,signal:V.signal}),!b.isCurrent(V)||t.session.id!==N)return;s.value="",c.value=[],f.value={},m.value={},d.value=!1}catch(j){b.isCurrent(V)&&o("error",qe(j))}finally{b.isCurrent(V)&&(T.value=!1)}}function Ve(){R.value?.click()}async function De(N){const G=N.target,te=[...G.files??[]];if(G.value="",!te.length)return;const ve=t.session.id,V=t.session.workspaceRoot,j=C.begin();$.value=!0;try{for(const ne of te){if(!C.isCurrent(j)||t.session.id!==ve)return;const re=ne.type.startsWith("audio/")?"audio":ne.type.startsWith("image/")||Ne(ne.name)?"image":"file";if(!me(re)){o("error",n.t("$vuetify.chatroom.agents.unsupportedAttachment",ne.name));continue}const pe=await Ue("/workspace/attachment?root="+encodeURIComponent(V)+"&sessionId="+encodeURIComponent(ve)+"&name="+encodeURIComponent(ne.name),{method:"POST",headers:{"Content-Type":"application/octet-stream","X-ChatRoom-Mime-Type":ne.type||"application/octet-stream"},body:ne,timeoutMs:6e4,signal:j.signal});if(!C.isCurrent(j)||t.session.id!==ve)return;c.value.includes(pe.path)||c.value.push(pe.path),f.value[pe.path]=pe.name,m.value[pe.path]=pe.mimeType&&pe.mimeType!=="application/octet-stream"?pe.mimeType:ne.type||Et(ne.name)}}catch(ne){C.isCurrent(j)&&o("error",qe(ne))}finally{C.isCurrent(j)&&($.value=!1)}}function Ae(N){const G=new Set(A.value);G.has(N)?G.delete(N):G.add(N),A.value=G}function he(N){const G=c.value.indexOf(N);G>=0?c.value.splice(G,1):c.value.push(N)}function Be(N){c.value=c.value.filter(G=>G!==N),delete f.value[N],delete m.value[N]}function Le(N){return f.value[N]??$t(N)}function Ke(){He(()=>{const N=Q();if(!N){d.value=!1;return}const G=N.selectionStart??s.value.length,ve=s.value.slice(0,G).match(/(?:^|\s)@([^\s"@]*)$/);if(!ve){d.value=!1;return}const V=ve[1]??"";p.value=V,ee.value=G-V.length-1,z.value=G,d.value=!0})}function P(N){const G=/\s/.test(N)?'@"'+N+'"':"@"+N,te=s.value.slice(0,ee.value),ve=s.value.slice(z.value);s.value=te+G+" "+ve,c.value.includes(N)||c.value.push(N),d.value=!1,He(()=>{const V=Q();if(!V)return;const j=te.length+G.length+1;V.focus(),V.setSelectionRange(j,j)})}function Q(){return x.value?.querySelector("textarea")??null}function ae(){B.invalidate(),b.invalidate(),C.invalidate(),T.value=!1,$.value=!1,s.value="",c.value=[],f.value={},m.value={},l.value=[],v.value=!1,r.value=[],k.value=[],A.value=new Set,O.value=!1,y.value="",w.value="",p.value="",F.value="",d.value=!1}function ge(N){if(/(?:^|\/)(?:\.agents|\.claude|\.chatroom)\/skills\/(?:.*\/)?SKILL\.md$/.test(N.replaceAll("\\","/")))return"skill";if(!(N in f.value))return"file";const G=m.value[N];return G?.startsWith("audio/")?"audio":G?.startsWith("image/")||Ne(Le(N))?"image":"file"}function me(N){return N!=="image"&&N!=="audio"||!!t.model?.inputModalities?.includes(N)}function Ne(N){return Et(N)!==null}return(N,G)=>(i(),S("div",{class:Ee(["agent-composer",{"agent-composer--waiting":e.session.status==="waiting_input"}])},[fe.value?(i(),S("div",An,M(u(n).t("$vuetify.chatroom.agents.steerHint")),1)):_("",!0),Te.value?(i(),S("div",Rn,M(Te.value),1)):_("",!0),h("input",{ref_key:"localFileInput",ref:R,class:"agent-hidden-file-input",type:"file",multiple:"",accept:xe.value,onChange:De},null,40,Pn),c.value.length?(i(),S("div",Fn,[(i(!0),S(oe,null,Se(c.value,te=>(i(),q(ft,{key:te,size:"small",closable:"",variant:"tonal",title:te,"onClick:close":ve=>Be(te)},{default:D(()=>[le(M(Le(te)),1)]),_:2},1032,["title","onClick:close"]))),128))])):_("",!0),h("div",Un,[e.session.status!=="waiting_input"?(i(),S("div",En,[g(ce,{icon:"$mdiPaperclip",size:"x-small",density:"comfortable",variant:"text",class:"agent-compose-tool-button agent-attachment-button",loading:$.value,disabled:!be.value||e.disabled||T.value,"aria-label":u(n).t("$vuetify.chatroom.agents.attachFile"),onClick:Ve},null,8,["loading","disabled","aria-label"]),g(Vn,{open:O.value,"onUpdate:open":G[0]||(G[0]=te=>O.value=te),search:y.value,"onUpdate:search":G[1]||(G[1]=te=>y.value=te),rows:je.value,truncated:v.value,"selected-paths":c.value,"expanded-directories":A.value,disabled:!be.value||e.disabled||T.value,onToggleDirectory:Ae,onToggleFile:he},null,8,["open","search","rows","truncated","selected-paths","expanded-directories","disabled"])])):_("",!0),e.session.status!=="waiting_input"?(i(),S("div",{key:1,ref_key:"composerInputHost",ref:x,class:"agent-compose-input-wrap"},[d.value&&we.value.length?(i(),S("div",zn,[(i(!0),S(oe,null,Se(we.value,te=>(i(),S("button",{key:te,type:"button",class:"agent-file-suggestion",onMousedown:lt(ve=>P(te),["prevent"]),onClick:ve=>P(te)},[h("span",On,M(u($t)(te)),1),h("span",_n,M(te),1)],40,Dn))),128))])):_("",!0),g(tn,{modelValue:s.value,"onUpdate:modelValue":G[2]||(G[2]=te=>s.value=te),placeholder:u(n).t(fe.value?"$vuetify.chatroom.agents.steerPlaceholder":"$vuetify.chatroom.agents.messagePlaceholder"),"aria-label":u(n).t(fe.value?"$vuetify.chatroom.agents.steerPlaceholder":"$vuetify.chatroom.agents.messagePlaceholder"),"auto-grow":"",rows:"2","max-rows":"8","hide-details":"",disabled:!be.value||e.disabled||T.value,onInput:Ke,onKeyup:Ke,onClick:Ke,onKeydown:[G[3]||(G[3]=ot(te=>d.value=!1,["escape"])),ot(lt(H,["ctrl","prevent"]),["enter"]),ot(lt(H,["meta","prevent"]),["enter"])]},null,8,["modelValue","placeholder","aria-label","disabled","onKeydown"])],512)):_("",!0),h("div",Bn,[ba(N.$slots,"controls",{busy:T.value||$.value},void 0),e.session.status!=="waiting_input"?(i(),q(ce,{key:0,icon:"$mdiArrowUp",color:"primary",size:"small",variant:"tonal",loading:T.value,disabled:!ze.value,"aria-label":u(n).t(fe.value?"$vuetify.chatroom.agents.steer":"$vuetify.chatroom.agents.send"),onClick:H},null,8,["loading","disabled","aria-label"])):_("",!0)])])],2))}}),Nn=Ie(Ln,[["__scopeId","data-v-c20ba904"]]),qn=Ce({__name:"AgentDeleteDialog",props:Ze({busy:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Ze(["confirm"],["update:modelValue"]),setup(e){const a=ye(e,"modelValue"),t=ke();return(o,n)=>(i(),q(ht,{modelValue:a.value,"onUpdate:modelValue":n[2]||(n[2]=s=>a.value=s),width:"auto","max-width":"32rem",persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-error"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.deleteTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.deleteDescription")),1)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:n[0]||(n[0]=s=>a.value=!1)},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"error",variant:"flat",loading:e.busy,onClick:n[1]||(n[1]=s=>o.$emit("confirm"))},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}});function jn(e,a){const t=U(!0);let o=null,n=0;function s(l=72){const v=e.value;return v?v.scrollHeight-v.scrollTop-v.clientHeight<l:!0}function c(){const l=e.value?.scrollTop??0;s()?t.value=!0:l<n&&(t.value=!1),n=l}function f(){t.value&&o===null&&(o=requestAnimationFrame(()=>{o=null;const l=e.value;l&&t.value&&(l.scrollTop=l.scrollHeight,n=l.scrollTop)}))}function m(){t.value=!0,f()}return ie([e,a],([l,v],r,k)=>{if(!l||!v)return;const A=new ResizeObserver(()=>f());A.observe(l),A.observe(v),f(),k(()=>{A.disconnect()})},{flush:"post"}),Vt(()=>{o!==null&&cancelAnimationFrame(o)}),{autoFollow:t,isNearBottom:s,onConversationScroll:c,scheduleScrollToBottom:f,scrollToBottom:m}}const Kn={class:"agent-artifact-group"},Wn={class:"agent-artifact-group-heading"},Hn=["data-count"],Gn={class:"agent-artifact-media"},Jn=["aria-label","disabled","onClick"],Qn=["src","alt","onLoad","onError"],Xn={key:1,class:"agent-artifact-placeholder agent-artifact-overlay"},Yn={key:2,class:"agent-artifact-placeholder agent-artifact-overlay error"},Zn={key:0,class:"agent-artifact-error-detail"},el={class:"agent-artifact-footer"},tl=["title"],al={class:"agent-artifact-preview-header"},nl={class:"text-truncate"},ll={class:"agent-artifact-preview-body"},sl=["src","alt"],il=Ce({__name:"AgentArtifactGallery",props:{items:{},workspaceRoot:{}},setup(e){const a=e,t=ke(),o=Re({}),n=Re({}),s=Re({}),c=U(null);function f(w){return`${a.workspaceRoot}:${w.artifact.path}:${w.id}:${w.updatedAt}:${s.value[w.id]??""}`}function m(w){const d=`${w.id}:${w.updatedAt}`;return"/api/workspace/file/image?root="+encodeURIComponent(a.workspaceRoot)+"&path="+encodeURIComponent(w.artifact.path)+"&v="+encodeURIComponent(d)+(s.value[w.id]?"&retry="+encodeURIComponent(s.value[w.id]):"")}function l(w){return!!o.value[f(w)]}function v(w){return n.value[f(w)]??""}function r(w){const d=f(w);o.value[d]=!0,delete n.value[d]}function k(w){const d=f(w);o.value[d]=!1,n.value[d]=t.t("$vuetify.chatroom.agents.imageDecodeFailed")}function A(w){s.value[w.id]=crypto.randomUUID()}function O(w){l(w)&&(c.value=w)}function y(w){l(w)&&wa(m(w),w.artifact.name).catch(()=>{})}return(w,d)=>(i(),S("div",Kn,[h("div",Wn,[g(Pe,{icon:"$mdiFileEyeOutline",size:"17"}),h("span",null,M(e.items.length===1?u(t).t("$vuetify.chatroom.agents.generatedImage"):u(t).t("$vuetify.chatroom.agents.generatedImages",e.items.length)),1)]),h("div",{class:"agent-artifact-grid","data-count":e.items.length},[(i(!0),S(oe,null,Se(e.items,p=>(i(),S("div",{key:p.id,class:"agent-artifact-tile"},[h("div",Gn,[p.status==="completed"?(i(),S("button",{key:0,type:"button",class:"agent-artifact-image-button","aria-label":p.artifact.name,disabled:!l(p),onClick:F=>O(p)},[(i(),S("img",{key:f(p),class:"agent-artifact-image",src:m(p),alt:p.artifact.name,loading:"lazy",decoding:"async",onLoad:F=>r(p),onError:F=>k(p)},null,40,Qn))],8,Jn)):_("",!0),p.status==="running"||p.status==="waiting"||p.status==="completed"&&!l(p)&&!v(p)?(i(),S("div",Xn,[g(Rt,{indeterminate:"",size:"24",width:"2"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.imageLoading")),1)])):p.status==="failed"||p.status==="interrupted"||v(p)?(i(),S("div",Yn,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"22"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.imageLoadFailed")),1),v(p)?(i(),S("span",Zn,M(v(p)),1)):_("",!0),p.status==="completed"?(i(),q(ce,{key:1,size:"small",variant:"tonal",onClick:F=>A(p)},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.retry")),1)]),_:1},8,["onClick"])):_("",!0)])):_("",!0)]),h("div",el,[h("span",{class:"agent-artifact-name",title:p.artifact.path},M(p.artifact.name),9,tl),g(ce,{icon:"$mdiDownloadOutline",size:"x-small",variant:"text",disabled:!l(p),"aria-label":u(t).t("$vuetify.chatroom.code.download"),onClick:F=>y(p)},null,8,["disabled","aria-label","onClick"])])]))),128))],8,Hn),g(ht,{"model-value":!!c.value,"max-width":"90vw","onUpdate:modelValue":d[1]||(d[1]=p=>c.value=p?c.value:null)},{default:D(()=>[c.value?(i(),q(Ye,{key:0,class:"agent-artifact-preview-dialog"},{default:D(()=>[h("div",al,[h("span",nl,M(c.value.artifact.name),1),g(ce,{icon:"$mdiClose",size:"small",variant:"text","aria-label":u(t).t("$vuetify.chatroom.common.close"),onClick:d[0]||(d[0]=p=>c.value=null)},null,8,["aria-label"])]),h("div",ll,[h("img",{src:m(c.value),alt:c.value.artifact.name,decoding:"async"},null,8,sl)])]),_:1})):_("",!0)]),_:1},8,["model-value"])]))}}),ol=Ie(il,[["__scopeId","data-v-1eb29fc4"]]),rl=["data-state","open"],ul=["aria-label"],dl={class:"agent-command-label"},cl={class:"agent-command-status"},vl={class:"agent-command-line"},ml=["title"],fl={key:0,class:"agent-command-copy-error",role:"alert"},gl={key:0,class:"agent-command-details"},pl={class:"agent-command-full"},yl={key:0,class:"agent-command-meta"},hl=["title"],bl={key:1,class:"agent-command-exit"},wl={class:"agent-command-output-label"},kl={class:"agent-command-code output"},$l={key:0,class:"agent-command-output-plain mono"},Sl=Ce({__name:"AgentCommandItem",props:{command:{},cwd:{},output:{},exitCode:{},status:{}},setup(e){const a=e,t=ke(),o=U(""),n=U(a.status!=="completed"||a.exitCode!==null&&a.exitCode!==0);ie(()=>[a.status,a.exitCode],([l,v])=>{(l==="running"||l==="failed"||v!==null&&v!==0)&&(n.value=!0)});const s=I(()=>{let l=a.command.trim();return l=l.replace(/^(?:\/usr\/bin\/|\/bin\/)?(?:zsh|bash|sh)\s+-l?c\s+/,""),l.length>=2&&(l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'"))&&(l=l.slice(1,-1)),l.replace(/\\"/g,'"').replace(/\s+/g," ").trim()||t.t("$vuetify.chatroom.agents.command")}),c=I(()=>a.status==="running"||a.status==="waiting"?"running":a.status==="failed"||a.exitCode!==null&&a.exitCode!==0?"error":a.status==="completed"&&a.exitCode===0?"success":"neutral"),f=I(()=>c.value==="running"?t.t("$vuetify.chatroom.agents.commandRunning"):c.value==="error"?a.exitCode===null?t.t("$vuetify.chatroom.agents.commandFailed"):t.t("$vuetify.chatroom.agents.exitCode",a.exitCode):c.value==="success"?t.t("$vuetify.chatroom.agents.commandSucceeded"):t.t("$vuetify.chatroom.agents.command"));async function m(){o.value="";try{await navigator.clipboard.writeText(a.command)}catch{o.value=t.t("$vuetify.chatroom.code.copyFailed")}}return(l,v)=>(i(),S("details",{class:"agent-command","data-state":c.value,open:n.value,onToggle:v[0]||(v[0]=r=>n.value=r.target.open)},[h("summary",{class:"agent-command-main","aria-label":u(t).t("$vuetify.chatroom.agents.commandDetails")},[h("div",dl,[g(Pe,{icon:"$mdiConsoleLine",size:"16"}),h("span",null,M(u(t).t("$vuetify.chatroom.agents.command")),1),h("span",cl,[v[1]||(v[1]=h("span",{class:"agent-command-status-dot"},null,-1)),le(" "+M(f.value),1)])]),h("div",vl,[h("code",{class:"mono",title:e.command},M(s.value),9,ml),g(ce,{icon:"$mdiContentCopy",size:"x-small",variant:"text",class:"agent-command-copy","aria-label":u(t).t("$vuetify.chatroom.code.copy"),onClick:lt(m,["stop"])},null,8,["aria-label"]),g(Pe,{icon:"$mdiChevronDown",size:"18",class:Ee(["agent-command-toggle",{"agent-command-toggle-open":n.value}])},null,8,["class"])]),o.value?(i(),S("div",fl,M(o.value),1)):_("",!0)],8,ul),n.value?(i(),S("div",gl,[h("div",pl,[g(it,{text:e.command,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),e.cwd||e.exitCode!==null?(i(),S("div",yl,[e.cwd?(i(),S("span",{key:0,class:"agent-command-cwd mono",title:e.cwd},M(e.cwd),9,hl)):_("",!0),e.exitCode!==null?(i(),S("span",bl,M(u(t).t("$vuetify.chatroom.agents.exitCode",e.exitCode)),1)):_("",!0)])):_("",!0),e.output?(i(),S(oe,{key:1},[h("div",wl,M(u(t).t("$vuetify.chatroom.agents.commandOutput")),1),h("div",kl,[c.value==="running"?(i(),S("pre",$l,M(e.output),1)):(i(),q(it,{key:1,text:e.output,filename:"output.txt",toolbar:!1},null,8,["text"]))])],64)):_("",!0)])):_("",!0)],40,rl))}}),Cl=Ie(Sl,[["__scopeId","data-v-7c2e41e4"]]),xl=wt({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...un({filterKeys:["title"]}),...rn({hideNoData:!0,returnObject:!0}),...Pa(Fa({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VCombobox"),Vl=Pt()({name:"VCombobox",props:xl(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,{emit:a,slots:t}){const{t:o}=ke(),n=Re(),s=U(!1),c=U(!0),f=U(!1),m=Re(),l=Re(),v=U(-1);let r=!1;const{items:k,transformIn:A,transformOut:O}=ka(e),{textColorClasses:y,textColorStyles:w}=aa(()=>n.value?.color),{InputIcon:d}=$a(e),p=zt(e,"modelValue",[],V=>A(Sa(V)),V=>{const j=O(V);return e.multiple?j:j[0]??null}),F=na(e),ee=Je(()=>e.closableChips&&!F.isReadonly.value&&!F.isDisabled.value),z=I(()=>!!(e.chips||t.chip)),x=I(()=>z.value||!!t.selection),R=U(!e.multiple&&!x.value?p.value[0]?.title??"":""),T=U(null),$=I({get:()=>R.value,set:async V=>{if(R.value=V??"",V===null||V===""&&!e.multiple&&!x.value?p.value=[]:!e.multiple&&!x.value&&(p.value=[ct(e,V)],He(()=>l.value?.scrollToIndex(0))),V&&e.multiple&&e.delimiters?.length){const j=ge(V);j.length>1&&(me(j),R.value="")}V||(v.value=-1),c.value=!V}}),B=I(()=>typeof e.counterValue=="function"?e.counterValue(p.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?p.value.length:$.value.length),{filteredItems:b,getMatches:C}=an(e,k,()=>T.value??(e.alwaysFilter||!c.value?$.value:"")),E=I(()=>e.hideSelected&&T.value===null?b.value.filter(V=>!p.value.some(j=>j.value===V.value)):b.value),J=I(()=>e.hideNoData&&!E.value.length||F.isReadonly.value||F.isDisabled.value),de=zt(e,"menu"),Y=I({get:()=>de.value,set:V=>{de.value&&!V&&m.value?.ΨopenChildren.size||V&&J.value||(de.value=V)}}),{menuId:$e,ariaExpanded:fe,ariaControls:be}=nn(e,Y);ie(R,V=>{r?He(()=>r=!1):s.value&&!Y.value&&(Y.value=!0),a("update:search",V)}),ie(p,V=>{!e.multiple&&!x.value&&(R.value=V[0]?.title??"")});const xe=I(()=>p.value.map(V=>V.value)),se=I(()=>E.value.find(V=>V.type==="item"&&!V.props.disabled)),Te=I(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&$.value===se.value?.title)&&E.value.length>0&&!c.value&&!f.value),we=Re(),je=Re(),ze=Re(),L=on(we,n),H=cn(Y,()=>m.value?.contentEl,()=>n.value?.controlRef),{onTabKeydown:Ve}=dn({groups:[{type:"element",contentRef:je},{type:"list",contentRef:we,displayItemsCount:()=>E.value.length},{type:"element",contentRef:ze}],onLeave:()=>{Y.value=!1,n.value?.focus()}});function De(V){r=!0,He(()=>r=!1),e.openOnClear&&(Y.value=!0)}function Ae(){J.value||(Y.value=!0)}function he(V){J.value||(s.value&&(V.preventDefault(),V.stopPropagation()),Y.value=!Y.value)}function Be(V){V.key==="Tab"&&Ve(V),we.value?.$el.contains(V.target)&&(Gt(V)||V.key==="Backspace")&&n.value?.focus()}function Le(V){if(Ra(V)||F.isReadonly.value)return;const j=n.value?.selectionStart,ne=p.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(V.key)&&V.preventDefault(),["Enter","ArrowDown"].includes(V.key)&&(Y.value=!0),["Escape"].includes(V.key)&&(Y.value=!1),Te.value&&["Enter","Tab"].includes(V.key)&&se.value&&!p.value.some(({value:re})=>re===se.value.value)&&ae(se.value),V.key==="ArrowDown"&&Te.value&&we.value?.focus("next"),V.key==="Enter"&&$.value&&(ae(ct(e,$.value),!0,!0),x.value&&(R.value="")),["Backspace","Delete"].includes(V.key)){if(!e.multiple&&x.value&&p.value.length>0&&!$.value)return ae(p.value[0],!1);if(~v.value){V.preventDefault();const re=v.value;ae(p.value[v.value],!1),v.value=re>=ne-1?ne-2:re}else V.key==="Backspace"&&!$.value&&(v.value=ne-1);return}if(e.multiple)if(V.key==="ArrowLeft"){if(v.value<0&&j&&j>0)return;const re=v.value>-1?v.value-1:ne-1;p.value[re]?v.value=re:(v.value=-1,n.value?.setSelectionRange($.value.length,$.value.length))}else if(V.key==="ArrowRight"){if(v.value<0)return;const re=v.value+1;p.value[re]?v.value=re:(v.value=-1,n.value?.setSelectionRange(0,0))}else~v.value&&Gt(V)&&(v.value=-1)}function Ke(V){const j=V?.clipboardData?.getData("Text")??"",ne=ge(j);ne.length>1&&e.multiple&&(V.preventDefault(),me(ne))}function P(){e.eager&&l.value?.calculateVisibleItems()}function Q(){s.value&&(m.value?.contentEl?._clickOutside?.lastMousedownWasOutside?s.value=!1:n.value?.focus()),c.value=!0,T.value=null}function ae(V,j=!0,ne=!1){if(!(!V||V.props.disabled))if(e.multiple){const re=p.value.findIndex(X=>(e.valueComparator||Ht)(X.value,V.value)),pe=j??!~re;if(~re){const X=pe?[...p.value,V]:[...p.value];X.splice(re,1),p.value=X}else pe&&(p.value=[...p.value,V]);e.clearOnSelect&&($.value="")}else{const re=j!==!1;p.value=re?[V]:[],(!c.value||e.alwaysFilter)&&R.value&&(T.value=R.value),R.value=re&&!x.value?V.title:"",He(()=>{Y.value=ne,c.value=!0})}}function ge(V){const ne=[`
2
+ `,...e.delimiters??[]].map(Ua).join("|");return V.split(new RegExp(`(?:${ne})+`))}async function me(V){for(let j of V)j=j.trim(),j&&(ae(ct(e,j)),await He())}function Ne(V){s.value=!0,setTimeout(()=>{f.value=!0})}function N(V){if(f.value=!1,!n.value?.$el.contains(V.relatedTarget)){if(H(V))return;s.value=!1}}let G=0;function te(){G=performance.now()}function ve(V){const j=V.relatedTarget;(m.value?.contentEl?.contains(j)||!j&&performance.now()-G<10)&&(s.value=!0)}return ie(s,(V,j)=>{if(!(V||V===j)&&(v.value=-1,Y.value=!1,$.value)){if(e.multiple){ae(ct(e,$.value));return}if(!x.value)return;p.value.some(({title:ne})=>ne===$.value)?R.value="":ae(ct(e,$.value))}}),ie(Y,V=>{if(!e.hideSelected&&V&&p.value.length&&c.value){const j=E.value.findIndex(ne=>p.value.some(re=>(e.valueComparator||Ht)(re.value,ne.value)));la&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{j>=0&&l.value?.scrollToIndex(j)})}V&&(T.value=null)}),ie(k,(V,j)=>{Y.value||s.value&&!j.length&&V.length&&(Y.value=!0)}),Ft(()=>{const V=!!(!e.hideNoData||E.value.length||t["prepend-item"]||t["append-item"]||t["no-data"]),j=p.value.length>0,ne=ut.filterProps(e),re={search:$,filteredItems:b.value};return g(ut,ue({ref:n},ne,{modelValue:$.value,"onUpdate:modelValue":pe=>$.value=pe,focused:s.value,"onUpdate:focused":pe=>s.value=pe,validationValue:p.externalValue,counterValue:B.value,dirty:j,class:["v-combobox",{"v-combobox--active-menu":Y.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!x.value,"v-combobox--selecting-index":v.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:F.isReadonly.value,placeholder:j?void 0:e.placeholder,"onClick:clear":De,"onMousedown:control":Ae,onKeydown:Le,onPaste:Ke,onBlur:ve,"aria-expanded":fe.value,"aria-controls":be.value}),{...t,default:({id:pe})=>h(oe,null,[g(yt,ue({id:$e.value,ref:m,modelValue:Y.value,"onUpdate:modelValue":X=>Y.value=X,activator:"parent",disabled:J.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:P,onAfterLeave:Q},e.menuProps,{contentClass:["v-combobox__content",e.menuProps?.contentClass]}),{default:()=>[g(vn,{elevation:e.menuElevation,onFocusin:Ne,onKeydown:Be,onMousedown:te},{default:()=>[t["menu-header"]&&h("header",{ref:je},[t["menu-header"](re)]),V&&g(bt,ue({key:"combobox-list",ref:we,filterable:!0,selected:xe.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:X=>X.preventDefault(),selectable:!!E.value.length,onFocusout:N,tabindex:"-1","aria-live":"polite","aria-labelledby":`${pe.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},L,e.listProps),{default:()=>[t["prepend-item"]?.(),!E.value.length&&!e.hideNoData&&(t["no-data"]?.()??g(Me,{key:"no-data",title:o(e.noDataText)},null)),g(ln,{ref:l,renderless:!0,items:E.value,itemKey:"value"},{default:({item:X,index:Oe,itemRef:st})=>{const Qe=xa(X.props),at=ue(X.props,{ref:st,key:X.value,active:Te.value&&X===se.value?!0:void 0,onClick:()=>ae(X,null),"aria-posinset":Oe+1,"aria-setsize":E.value.length});return X.type==="divider"?t.divider?.({props:X.raw,index:Oe})??g(rt,ue(X.props,{key:`divider-${Oe}`}),null):X.type==="subheader"?t.subheader?.({props:X.raw,index:Oe})??g(Va,ue(X.props,{key:`subheader-${Oe}`}),null):t.item?.({item:X.raw,internalItem:X,index:Oe,props:at})??g(Me,ue(at,{role:"option"}),{prepend:({isSelected:et})=>h(oe,null,[e.multiple&&!e.hideSelected?g(Ma,{key:X.value,modelValue:et,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:Fe=>Fe.preventDefault()},null):void 0,Qe.prependAvatar&&g(Ia,{image:Qe.prependAvatar},null),Qe.prependIcon&&g(Pe,{icon:Qe.prependIcon},null)]),title:()=>c.value?X.title:g(sn,{text:X.title,matches:C(X)?.title,markClass:"v-combobox__mask",matchAll:!0,ignoreCase:!0},null)})}}),t["append-item"]?.()]}),t["menu-footer"]&&h("footer",{ref:ze},[t["menu-footer"](re)])]})]}),p.value.map((X,Oe)=>{function st(Fe){Fe.stopPropagation(),Fe.preventDefault(),ae(X,!1)}const Qe=ue(ft.filterProps(X.props),{"onClick:close":st,onKeydown(Fe){Fe.key!=="Enter"&&Fe.key!==" "||(Fe.preventDefault(),Fe.stopPropagation(),st(Fe))},onMousedown(Fe){Fe.preventDefault(),Fe.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),at=z.value?!!t.chip:!!t.selection,et=at?Ta(z.value?t.chip({item:X.raw,internalItem:X,index:Oe,props:Qe}):t.selection({item:X.raw,internalItem:X,index:Oe})):void 0;if(!(at&&!et))return h("div",{key:X.value,class:Ee(["v-combobox__selection",Oe===v.value&&["v-combobox__selection--selected",y.value]]),style:tt(Oe===v.value?w.value:{})},[z.value?t.chip?g(Aa,{key:"chip-defaults",defaults:{VChip:{closable:ee.value,size:"small",text:X.title}}},{default:()=>[et]}):g(ft,ue({key:"chip",closable:ee.value,size:"small",text:X.title,disabled:X.props.disabled},Qe),null):et??h("span",{class:"v-combobox__selection-text"},[X.title,e.multiple&&Oe<p.value.length-1&&h("span",{class:"v-combobox__selection-comma"},[le(",")])])])})]),"append-inner":(...pe)=>h(oe,null,[t["append-inner"]?.(...pe),(!e.hideNoData||e.items.length)&&e.menuIcon?g(Pe,{class:"v-combobox__menu-icon",color:n.value?.fieldIconColor,icon:e.menuIcon,onMousedown:he,onClick:Ca,"aria-hidden":!0,tabindex:"-1"},null):void 0,e.appendInnerIcon&&g(d,{key:"append-icon",name:"appendInner",color:pe[0].iconColor.value},null)])})}),sa({isFocused:s,isPristine:c,menu:Y,search:$,selectionIndex:v,filteredItems:b,select:ae},n)}}),Ml=["aria-label","aria-busy"],Il={class:"agent-interaction-heading"},Tl={class:"agent-interaction-content"},Al={class:"agent-interaction-title"},Rl={key:1},Pl={key:0,class:"agent-input-questions"},Fl={class:"agent-question-label"},Ul={class:"agent-question-text"},El={key:2,class:"agent-interaction-resolved"},zl={key:0,class:"agent-interaction-footer"},Dl={key:0,class:"agent-interaction-actions"},Ol=Ce({__name:"AgentInteractionCard",props:{item:{},answers:{default:()=>({})},pinned:{type:Boolean,default:!1},responding:{type:Boolean,default:!1}},emits:["approve","submit","update-answer"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=I(()=>Object.fromEntries(t.item.interaction.questions.map(y=>[y.id,y.options.map(w=>({title:w.label,value:w.id}))]))),c=I(()=>{const y=t.item.interaction.approvalOptions,w=y[0],d=y.find(F=>F.id==="decline"||F.id==="deny"),p=w?[w]:[];return d&&d!==w&&p.push(d),p}),f=I(()=>t.item.interaction.approvalOptions.filter(y=>!c.value.includes(y))),m={accept:"accept",allow:"accept",acceptForSession:"session",decline:"deny",deny:"deny",cancel:"cancel",acceptWithExecpolicyAmendment:"similar"};function l(y,w){const d=m[y];return d?n.t("$vuetify.chatroom.agents.approvalChoices."+d):w}function v(y){return y==="cancel"?"$mdiStopCircleOutline":y==="decline"||y==="deny"?"$mdiCloseOctagonOutline":"$mdiCheckCircleOutline"}const r=I(()=>{const y=t.item.interaction.response;if(!y)return n.t(t.item.status==="completed"?"$vuetify.chatroom.agents.resolvedExternally":"$vuetify.chatroom.agents.statuses."+t.item.status);if(y.type==="approval"){const w=t.item.interaction.approvalOptions.find(d=>d.id===y.decision);return l(y.decision,w?.label??y.decision)}return t.item.interaction.questions.map(w=>w.label+": "+(w.secret?"••••":(y.answers[w.id]??[]).join(", "))).join(`
3
3
  `)});function k(y){return t.answers[y]??[]}function A(y){return Array.isArray(y)?y.filter(w=>typeof w=="string"):typeof y=="string"&&y?[y]:[]}function O(y,w){o("update-answer",y,A(w))}return(y,w)=>(i(),S("section",{class:Ee(["agent-interaction-card",{"agent-interaction-card--pinned":e.pinned}]),"aria-label":e.item.interaction.title,"aria-busy":e.responding},[h("header",Il,[g(Pe,{icon:e.item.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"18"},null,8,["icon"]),h("span",null,M(u(n).t(e.item.status==="waiting"?e.item.interaction.kind==="approval"?"$vuetify.chatroom.agents.waitingApproval":"$vuetify.chatroom.agents.waitingAnswer":e.item.status==="completed"?"$vuetify.chatroom.agents.interactionResolved":"$vuetify.chatroom.agents.statuses."+e.item.status)),1),e.responding?(i(),q(Rt,{key:0,indeterminate:"",size:"15",width:"2"})):_("",!0)]),h("div",Tl,[h("div",Al,M(e.item.interaction.title),1),e.item.interaction.description?(i(),S("pre",{key:0,class:Ee(["agent-interaction-description",{mono:e.item.interaction.kind==="approval"}])},M(e.item.interaction.description),3)):_("",!0),e.item.status==="waiting"?(i(),S("div",Rl,[e.item.interaction.kind!=="approval"?(i(),S("div",Pl,[(i(!0),S(oe,null,Se(e.item.interaction.questions,d=>(i(),S("div",{key:d.id,class:"agent-question"},[h("div",Fl,M(d.label),1),h("div",Ul,M(d.question),1),d.options.length&&d.allowFreeText?(i(),q(Vl,{key:0,"model-value":d.multiSelect?k(d.id):k(d.id)[0]??null,items:s.value[d.id]??[],"aria-label":d.label+": "+d.question,"return-object":!1,multiple:d.multiSelect,chips:d.multiSelect,"closable-chips":d.multiSelect,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(d.id,p)},null,8,["model-value","items","aria-label","multiple","chips","closable-chips","disabled","onUpdate:modelValue"])):d.options.length?(i(),q(Ge,{key:1,"model-value":d.multiSelect?k(d.id):k(d.id)[0]??null,items:s.value[d.id]??[],"aria-label":d.label+": "+d.question,"return-object":!1,multiple:d.multiSelect,chips:d.multiSelect,"closable-chips":d.multiSelect,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(d.id,p)},null,8,["model-value","items","aria-label","multiple","chips","closable-chips","disabled","onUpdate:modelValue"])):(i(),q(ut,{key:2,"model-value":k(d.id)[0]??"",type:d.secret?"password":"text","aria-label":d.label+": "+d.question,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(d.id,p)},null,8,["model-value","type","aria-label","disabled","onUpdate:modelValue"]))]))),128))])):_("",!0)])):(i(),S("div",El,M(r.value),1))]),e.item.status==="waiting"?(i(),S("footer",zl,[e.item.interaction.kind==="approval"?(i(),S("div",Dl,[(i(!0),S(oe,null,Se(c.value,d=>(i(),q(ce,{key:d.id,color:d.id==="decline"||d.id==="deny"||d.id==="cancel"?"error":"primary","prepend-icon":v(d.id),variant:"tonal",size:"small",title:d.description??void 0,disabled:e.responding,onClick:p=>o("approve",d.id)},{default:D(()=>[le(M(l(d.id,d.label)),1)]),_:2},1032,["color","prepend-icon","title","disabled","onClick"]))),128)),f.value.length?(i(),q(yt,{key:0,location:"top end",offset:"8"},{activator:D(({props:d})=>[g(ce,ue(d,{icon:"$mdiDotsHorizontal",size:"small",variant:"text",disabled:e.responding,"aria-label":u(n).t("$vuetify.chatroom.agents.moreApprovalOptions"),title:u(n).t("$vuetify.chatroom.agents.moreApprovalOptions")}),null,16,["disabled","aria-label","title"])]),default:D(()=>[g(bt,{density:"compact",class:"agent-approval-more-menu"},{default:D(()=>[(i(!0),S(oe,null,Se(f.value,d=>(i(),q(Me,{key:d.id,title:l(d.id,d.label),subtitle:d.description??"","prepend-icon":v(d.id),disabled:e.responding,onClick:p=>o("approve",d.id)},null,8,["title","subtitle","prepend-icon","disabled","onClick"]))),128))]),_:1})]),_:1})):_("",!0)])):_("",!0),e.item.interaction.kind!=="approval"?(i(),q(ce,{key:1,color:"primary",variant:"tonal",size:"small",loading:e.responding,disabled:e.responding,onClick:w[0]||(w[0]=d=>o("submit"))},{default:D(()=>[le(M(u(n).t("$vuetify.chatroom.agents.submit")),1)]),_:1},8,["loading","disabled"])):_("",!0)])):_("",!0)],10,Ml))}}),fa=Ie(Ol,[["__scopeId","data-v-45060adf"]]),_l={path:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"},Bl=["width","height"],Ll=["d"],Nl={key:1,fill:"none",stroke:"currentColor","stroke-width":"1.8"},ql=Ce({__name:"AgentProviderIcon",props:{icon:{default:null},size:{default:16}},setup(e){const a=e,t={openai:_l.path},o=I(()=>a.icon?t[a.icon]??null:null);return(n,s)=>(i(),S("svg",{class:"agent-provider-icon",width:e.size,height:e.size,viewBox:"0 0 24 24","aria-hidden":"true"},[o.value?(i(),S("path",{key:0,d:o.value,fill:"currentColor"},null,8,Ll)):(i(),S("g",Nl,[...s[0]||(s[0]=[h("circle",{cx:"12",cy:"12",r:"8.5"},null,-1),h("path",{d:"m8.5 16 3.5-8 3.5 8M10 13h4"},null,-1)])]))],8,Bl))}}),pt=Ie(ql,[["__scopeId","data-v-9209bf7a"]]),jl=["open","data-status"],Kl=["title"],Wl={class:"agent-activity-title"},Hl={key:0,class:"agent-activity-body"},Gl={key:0,class:"agent-tool-progress",role:"status"},Jl={key:3,class:"agent-inline-error"},Ql={class:"agent-file-change-name"},Xl={class:"mono"},Yl={key:3,class:"agent-plan"},Zl={key:1,class:"agent-plan-steps"},es=["data-status"],ts={class:"agent-plan-step-text"},as={class:"agent-plan-step-status"},ns={key:4,class:"agent-artifact-path mono"},ls=Ce({__name:"AgentActivity",props:{item:{}},setup(e){const a=e,t=ke(),o=U(a.item.status==="running"||a.item.status==="failed");ie(()=>a.item.status,f=>{(f==="running"||f==="failed")&&(o.value=!0)});const n=I(()=>{const f=a.item;if(f.type==="tool")return[f.server,f.name].filter(Boolean).join(" / ");const m={file_change:"fileChanges",turn_diff:"turnDiff",plan:"plan",artifact:"artifact"}[f.type];return t.t("$vuetify.chatroom.agents."+m)}),s=I(()=>a.item.type==="tool"?"$mdiTuneVariant":a.item.type==="file_change"||a.item.type==="turn_diff"?"$mdiFileCompare":a.item.type==="plan"?"$mdiTextBoxOutline":"$mdiFileOutline");function c(f,m){const l=f.steps[m];let v=0;for(let r=0;r<m;r++)f.steps[r]?.step===l.step&&v++;return f.id+":"+l.step+":"+v}return(f,m)=>(i(),S("details",{class:"agent-activity",open:o.value,"data-status":e.item.status,onToggle:m[0]||(m[0]=l=>o.value=l.target.open)},[h("summary",{class:"agent-activity-heading",title:n.value},[g(Pe,{icon:s.value,size:"18"},null,8,["icon"]),h("span",Wl,M(n.value),1),e.item.status==="running"?(i(),q(Rt,{key:0,indeterminate:"",size:"14",width:"2"})):e.item.status==="failed"?(i(),q(Pe,{key:1,icon:"$mdiAlertCircleOutline",size:"16",color:"error"})):_("",!0),g(Pe,{class:"agent-activity-chevron",icon:"$mdiChevronRight",size:"16"})],8,Kl),o.value?(i(),S("div",Hl,[e.item.type==="tool"?(i(),S(oe,{key:0},[e.item.progress?(i(),S("div",Gl,M(e.item.progress),1)):_("",!0),e.item.input!=null?(i(),q(it,{key:1,value:e.item.input,highlight:e.item.status!=="running",filename:"input.json",language:"json",toolbar:!1},null,8,["value","highlight"])):_("",!0),e.item.output!=null?(i(),q(it,{key:2,value:e.item.output,highlight:e.item.status!=="running",filename:"output.json",language:"json",toolbar:!1},null,8,["value","highlight"])):_("",!0),e.item.error?(i(),S("div",Jl,M(e.item.error),1)):_("",!0)],64)):e.item.type==="turn_diff"?(i(),q(it,{key:1,text:e.item.diff,highlight:e.item.status!=="running",filename:"turn.diff",language:"diff",toolbar:!1},null,8,["text","highlight"])):e.item.type==="file_change"?(i(!0),S(oe,{key:2},Se(e.item.changes,l=>(i(),S("div",{key:l.path+":"+l.kind+":"+(l.movePath??""),class:"agent-file-change"},[h("div",Ql,[g(ft,{size:"x-small",variant:"tonal"},{default:D(()=>[le(M(l.kind),1)]),_:2},1024),h("span",Xl,M(l.path),1)]),l.diff?(i(),q(it,{key:0,text:l.diff,filename:l.path,highlight:e.item.status!=="running",language:"diff",toolbar:!1},null,8,["text","filename","highlight"])):_("",!0)]))),128)):e.item.type==="plan"?(i(),S("div",Yl,[e.item.text?(i(),q(_t,{key:0,text:e.item.text,streaming:e.item.status==="running"},null,8,["text","streaming"])):_("",!0),e.item.steps.length?(i(),S("ol",Zl,[(i(!0),S(oe,null,Se(e.item.steps,(l,v)=>(i(),S("li",{key:c(e.item,v),"data-status":l.status},[h("span",ts,M(l.step),1),h("span",as,M(u(t).t(`$vuetify.chatroom.agents.planStatuses.${l.status}`)),1)],8,es))),128))])):_("",!0)])):e.item.type==="artifact"?(i(),S("div",ns,M(e.item.artifact.path),1)):_("",!0)])):_("",!0)],40,jl))}}),ss=Ie(ls,[["__scopeId","data-v-63e4d047"]]),is={class:"agent-turn"},os={key:0,class:"agent-message-row user"},rs={class:"agent-message user-message"},us={class:"agent-message-text agent-plain-text"},ds=["data-source"],cs={key:0,class:"agent-message-attachments"},vs=["title"],ms=["data-status"],fs={key:0},gs=["data-phase"],ps={key:4,class:"agent-reasoning-summary"},ys={class:"agent-summary-label"},hs={key:5,class:"agent-response-command"},bs={key:7,class:"agent-resolved-interaction"},ws=["data-status"],ks={key:2},$s=["data-level"],Ss=Ce({__name:"AgentTurn",props:{entry:{},workspaceRoot:{},providerNames:{},providerIcons:{}},setup(e){const a=e,t=ke(),o=I(()=>{const l=[],v=a.entry.items;let r=!1;for(let k=0;k<v.length;k+=1){const A=v[k];if(A.type!=="user_message"&&!r&&(l.push({id:"provider-marker:"+a.entry.turn.id,type:"provider_marker",provider:a.entry.turn.provider,model:a.entry.turn.model}),r=!0),A.type!=="artifact"||A.artifact.kind!=="image"){l.push(A);continue}const O=[A];for(;k+1<v.length;){const y=v[k+1];if(y.type!=="artifact"||y.artifact.kind!=="image")break;O.push(y),k+=1}l.push({id:"image-gallery:"+O[0].id,type:"image_gallery",items:O})}return!r&&v.length===0&&a.entry.turn.status!=="completed"&&l.push({id:"provider-marker:"+a.entry.turn.id,type:"provider_marker",provider:a.entry.turn.provider,model:a.entry.turn.model}),(a.entry.turn.status==="failed"||a.entry.turn.status==="interrupted")&&l.push({id:"turn-status:"+a.entry.turn.id,type:"turn_status",status:a.entry.turn.status,error:m()}),l});function n(l){return a.providerNames[l]??l}function s(l){return a.providerIcons[l]??null}function c(l){return l==="mcp"?"$mdiConnection":"$mdiAccountOutline"}function f(l){return t.t(l==="mcp"?"$vuetify.chatroom.agents.sources.mcp":"$vuetify.chatroom.agents.sources.human")}function m(){const l=a.entry.turn.error;return l?[l.message,l.details,l.providerData?JSON.stringify(l.providerData,null,2):null].filter(Boolean).join(`
4
- `):null}return(l,v)=>(i(),S("div",is,[(i(!0),S(oe,null,Se(o.value,r=>(i(),S(oe,{key:r.id},[r.type==="user_message"?(i(),S("div",os,[h("div",rs,[h("div",us,M(r.text),1),h("div",{class:"agent-message-source","data-source":r.source??e.entry.turn.source},[g(Pe,{icon:c(r.source??e.entry.turn.source),size:"13"},null,8,["icon"]),h("span",null,M(f(r.source??e.entry.turn.source)),1)],8,ds),r.attachments.length?(i(),S("div",cs,[(i(!0),S(oe,null,Se(r.attachments,k=>(i(),q(ft,{key:k.path,size:"x-small",variant:"tonal","prepend-icon":"$mdiFileOutline"},{default:D(()=>[le(M(k.name),1)]),_:2},1024))),128))])):_("",!0)])])):r.type==="provider_marker"?(i(),S("div",{key:1,class:"agent-turn-provider",title:r.model?n(r.provider)+" · "+r.model:n(r.provider)},[g(pt,{icon:s(r.provider),size:13},null,8,["icon"]),h("span",null,M(n(r.provider)),1)],8,vs)):r.type==="turn_status"?(i(),S("div",{key:2,class:"agent-turn-status","data-status":r.status},[h("span",null,M(u(t).t(`$vuetify.chatroom.agents.statuses.${r.status}`)),1),r.error?(i(),S("span",fs," · "+M(r.error),1)):_("",!0)],8,ms)):r.type==="assistant_message"?(i(),S("div",{key:3,class:"agent-response-text","data-phase":r.phase},[g(_t,{class:"agent-message-markdown",text:r.text,streaming:r.status==="running"},null,8,["text","streaming"]),r.status==="running"?(i(),q(Ea,{key:0,indeterminate:"",height:"2",class:"agent-item-progress"})):_("",!0)],8,gs)):r.type==="reasoning_summary"?(i(),S("div",ps,[h("div",ys,M(u(t).t("$vuetify.chatroom.agents.reasoningSummary")),1),g(_t,{text:r.text,streaming:r.status==="running"},null,8,["text","streaming"])])):r.type==="command"?(i(),S("div",hs,[g(Cl,{command:r.command,cwd:r.cwd,output:r.output,"exit-code":r.exitCode,status:r.status},null,8,["command","cwd","output","exit-code","status"])])):r.type==="image_gallery"?(i(),q(ol,{key:6,items:r.items,"workspace-root":e.workspaceRoot},null,8,["items","workspace-root"])):r.type==="interaction"&&r.status!=="waiting"?(i(),S("details",bs,[h("summary",null,[g(Pe,{icon:r.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"18"},null,8,["icon"]),le(" "+M(r.interaction.title),1)]),g(fa,{item:r},null,8,["item"])])):r.type==="tool"||r.type==="file_change"||r.type==="turn_diff"||r.type==="plan"||r.type==="artifact"?(i(),q(ss,{key:8,item:r},null,8,["item"])):r.type==="context_compaction"?(i(),S("div",{key:9,class:"agent-compaction","data-status":r.status,role:"status","aria-live":"polite"},[r.status==="running"?(i(),q(Rt,{key:0,indeterminate:"",size:"14",width:"2"})):(i(),q(Pe,{key:1,icon:r.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"16"},null,8,["icon"])),h("span",null,M(u(t).t("$vuetify.chatroom.agents.compaction."+(r.status==="running"?"running":r.status==="completed"?"completed":"failed"))),1),r.error?(i(),S("span",ks,M(r.error),1)):_("",!0)],8,ws)):r.type==="notice"?(i(),S("div",{key:10,class:"agent-notice","data-level":r.level},M(r.text),9,$s)):_("",!0)],64))),128))]))}}),Cs=Ie(Ss,[["__scopeId","data-v-d9c9ba96"]]),xs={class:"agent-conversation-shell"},Vs={key:1,class:"empty-panel"},vt=100,Ms=Ce({__name:"AgentConversation",props:{history:{},providerNames:{},providerIcons:{}},setup(e){const a=e,t=ke(),o=U(vt),n=dt("conversation"),s=dt("conversationContent"),{autoFollow:c,onConversationScroll:f,scrollToBottom:m}=jn(n,s),l=I(()=>{const k=a.history?.turns??[];return k.slice(Math.max(0,k.length-o.value))}),v=I(()=>Math.max(0,(a.history?.turns.length??0)-l.value.length));ie(()=>a.history?.session.id??null,()=>{o.value=vt,m()},{flush:"post"}),ie(()=>a.history?.turns.length??0,(k,A)=>{A>0&&k>A&&o.value>vt&&(o.value+=k-A)});async function r(){const k=n.value,A=k?.scrollHeight??0,O=k?.scrollTop??0;o.value+=vt,await He(),k&&(k.scrollTop=O+(k.scrollHeight-A))}return(k,A)=>(i(),S("div",xs,[h("div",{ref_key:"conversation",ref:n,class:"agent-conversation",onScrollPassive:A[0]||(A[0]=(...O)=>u(f)&&u(f)(...O))},[h("div",{ref_key:"conversationContent",ref:s,class:"agent-conversation-content"},[v.value?(i(),q(ce,{key:0,class:"agent-show-older-turns",size:"small",variant:"text",onClick:r},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.showOlderTurns",String(Math.min(vt,v.value)))),1)]),_:1})):_("",!0),e.history?.turns.length?_("",!0):(i(),S("div",Vs,M(u(t).t("$vuetify.chatroom.agents.noHistory")),1)),(i(!0),S(oe,null,Se(l.value,O=>(i(),q(Cs,{key:O.turn.id,entry:O,"workspace-root":e.history?.session.workspaceRoot??"","provider-names":e.providerNames,"provider-icons":e.providerIcons},null,8,["entry","workspace-root","provider-names","provider-icons"]))),128))],512)],544),u(c)?_("",!0):(i(),q(ce,{key:0,class:"agent-back-to-latest",icon:"$mdiArrowDown",size:"small",variant:"tonal",title:u(t).t("$vuetify.chatroom.agents.backToLatest"),"aria-label":u(t).t("$vuetify.chatroom.agents.backToLatest"),onClick:u(m)},null,8,["title","aria-label","onClick"]))]))}}),Is=Ie(Ms,[["__scopeId","data-v-f2a2b510"]]),Ts={key:3,class:"agent-native-granular"},As={class:"agent-setting-heading"},Rs=Ce({__name:"AgentSessionConfigFields",props:Ze({model:{},approvalSetting:{},reviewerSetting:{},permissionSetting:{},disabled:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1}},{reasoningSummary:{required:!0},reasoningSummaryModifiers:{},serviceTier:{required:!0},serviceTierModifiers:{},approvalMode:{required:!0},approvalModeModifiers:{},granular:{required:!0},granularModifiers:{},reviewer:{required:!0},reviewerModifiers:{},permissionMode:{required:!0},permissionModeModifiers:{}}),emits:["update:reasoningSummary","update:serviceTier","update:approvalMode","update:granular","update:reviewer","update:permissionMode"],setup(e){const a=e,t=ye(e,"reasoningSummary"),o=ye(e,"serviceTier"),n=ye(e,"approvalMode"),s=ye(e,"granular"),c=ye(e,"reviewer"),f=ye(e,"permissionMode"),m=ke(),l=U(null),v=I(()=>a.outlined?{variant:"outlined"}:{}),r=I(()=>[{title:F(a.model?.defaultReasoningSummary?p(a.model.defaultReasoningSummary):null),value:null,subtitle:""},...(a.model?.reasoningSummaries??[]).map(x=>({title:p(x),value:x,subtitle:""}))]),k=I(()=>{const x=a.model?.serviceTiers??[];return[{title:F(x.find(R=>R.id===a.model?.defaultServiceTier)?.name??a.model?.defaultServiceTier),value:null,subtitle:""},...x.map(R=>({title:R.name,value:R.id,subtitle:R.description}))]});function A(x){return(x?.options??[]).map(R=>({title:`${y(R.id,"title")} (${R.id})`,value:R.id,subtitle:y(R.id,"description",R.description??"")}))}const O={untrusted:"untrusted","on-request":"onRequest",granular:"granular",never:"never",user:"user",auto_review:"autoReview",guardian_subagent:"autoReview","read-only":"readOnly","workspace-write":"workspaceWrite","danger-full-access":"fullAccessCodex"};function y(x,R,T=x){const $=O[x];return $?m.t(`$vuetify.chatroom.agents.nativeOptions.${$}.${R}`):T}function w(x){if(x!==f.value){if(x==="danger-full-access"){l.value=x;return}f.value=x}}function d(){const x=l.value;l.value=null,x&&(x==="danger-full-access"&&(n.value="never"),f.value=x)}function p(x){return m.t(`$vuetify.chatroom.agents.summaries.${x}`)}function F(x){return jt(m.t("$vuetify.chatroom.agents.defaultModel"),x)}function ee(x){return x in s.value?s.value[x]:!1}function z(x,R){x in s.value&&(s.value={...s.value,[x]:R})}return(x,R)=>(i(),S(oe,null,[e.model?.reasoningSummaries?.length?(i(),q(Ge,ue({key:0,modelValue:t.value,"onUpdate:modelValue":R[0]||(R[0]=T=>t.value=T),items:r.value,label:u(m).t("$vuetify.chatroom.agents.reasoningSummary"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.model?.serviceTiers?.length?(i(),q(Ge,ue({key:1,modelValue:o.value,"onUpdate:modelValue":R[1]||(R[1]=T=>o.value=T),items:k.value,label:u(m).t("$vuetify.chatroom.agents.serviceTier"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.approvalSetting?(i(),q(Ge,ue({key:2,modelValue:n.value,"onUpdate:modelValue":R[2]||(R[2]=T=>n.value=T),items:A(e.approvalSetting),label:u(m).t("$vuetify.chatroom.agents.approvalPolicy"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.approvalSetting&&n.value==="granular"?(i(),S("div",Ts,[h("div",As,M(u(m).t("$vuetify.chatroom.agents.granularApprovals")),1),(i(!0),S(oe,null,Se(e.approvalSetting.granularFields,T=>(i(),q(mn,{key:T.id,"model-value":ee(T.id),label:T.id,title:T.description??void 0,density:"compact",color:"primary","hide-details":"",disabled:e.disabled,"onUpdate:modelValue":$=>z(T.id,!!$)},null,8,["model-value","label","title","disabled","onUpdate:modelValue"]))),128))])):_("",!0),e.reviewerSetting?(i(),q(Ge,ue({key:4,modelValue:c.value,"onUpdate:modelValue":R[3]||(R[3]=T=>c.value=T),items:A(e.reviewerSetting),label:u(m).t("$vuetify.chatroom.agents.approvalsReviewer"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.permissionSetting?(i(),q(Ge,ue({key:5,"model-value":f.value,items:A(e.permissionSetting),label:u(m).t("$vuetify.chatroom.agents.permissionMode"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled,"onUpdate:modelValue":w}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["model-value","items","label","disabled"])):_("",!0),g(ht,{"model-value":l.value!==null,width:"auto","max-width":"32rem","onUpdate:modelValue":R[5]||(R[5]=T=>{T||(l.value=null)})},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-warning"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.agents.fullAccessTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.agents.fullAccessConfirm")),1)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",onClick:R[4]||(R[4]=T=>l.value=null)},{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.common.cancel")),1)]),_:1}),g(ce,{color:"warning",variant:"flat",onClick:d},{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.common.confirm")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])],64))}}),ga=Ie(Rs,[["__scopeId","data-v-7d7f4fb1"]]),Kt=Symbol.for("vuetify:v-slider");function Ps(e,a,t){const o=t==="vertical",n=a.getBoundingClientRect(),s="touches"in e?e.touches[0]:e;return o?s.clientY-(n.top+n.height/2):s.clientX-(n.left+n.width/2)}function Fs(e,a){return"touches"in e&&e.touches.length?e.touches[0][a]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][a]:e[a]}const Us=wt({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"||e==="hover"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,noKeyboard:Boolean,...Oa(),...Da({elevation:1}),ripple:{type:Boolean,default:!0}},"Slider"),Es=e=>{const a=I(()=>parseFloat(e.min)),t=I(()=>parseFloat(e.max)),o=I(()=>Number(e.step)>0?parseFloat(e.step):0),n=I(()=>Math.max(Jt(o.value),Jt(a.value)));function s(c){if(c=parseFloat(c),o.value<=0)return c;const f=Dt(c,a.value,t.value),m=a.value%o.value;let l=Math.round((f-m)/o.value)*o.value+m;return f>l&&l+o.value>t.value&&(l=t.value),parseFloat(Math.min(l,t.value).toFixed(n.value))}return{min:a,max:t,step:o,decimals:n,roundValue:s}},zs=({props:e,steps:a,onSliderStart:t,onSliderMove:o,onSliderEnd:n,getActiveThumb:s})=>{const c=na(e),{isRtl:f}=Bt(),m=Je(()=>e.reverse),l=I(()=>e.direction==="vertical"),v=I(()=>l.value!==m.value),{min:r,max:k,step:A,decimals:O,roundValue:y}=a,w=I(()=>parseInt(e.thumbSize,10)),d=I(()=>parseInt(e.tickSize,10)),p=I(()=>parseInt(e.trackSize,10)),F=I(()=>(k.value-r.value)/A.value),ee=I(()=>e.error||c.isDisabled.value?void 0:e.thumbColor??e.color),z=I(()=>e.error||c.isDisabled.value?void 0:e.thumbColor),x=I(()=>e.error||c.isDisabled.value?void 0:e.trackColor??e.color),R=I(()=>e.error||c.isDisabled.value?void 0:e.trackFillColor??e.color),T=U(!1),$=U(0),B=Re(),b=Re();function C(L){const H=B.value?.$el;if(!H)return;const Ve=e.direction==="vertical",De=Ve?"top":"left",Ae=Ve?"height":"width",he=Ve?"clientY":"clientX",{[De]:Be,[Ae]:Le}=H.getBoundingClientRect(),Ke=Fs(L,he);let P=Dt((Ke-Be-$.value)/Le)||0;return(Ve?v.value:v.value!==f.value)&&(P=1-P),y(r.value+P*(k.value-r.value))}const E=L=>{const H=C(L);H!=null&&n({value:H}),T.value=!1,$.value=0},J=L=>{const H=C(L);b.value=s(L),b.value&&(T.value=!0,b.value.contains(L.target)?$.value=Ps(L,b.value,e.direction):($.value=0,H!=null&&o({value:H})),H!=null&&t({value:H}),He(()=>b.value?.focus()))},de={passive:!0,capture:!0};function Y(L){const H=C(L);H!=null&&o({value:H})}function $e(L){L.stopPropagation(),L.preventDefault(),E(L),window.removeEventListener("mousemove",Y,de),window.removeEventListener("mouseup",$e)}function fe(L){E(L),window.removeEventListener("touchmove",Y,de),L.target?.removeEventListener("touchend",fe)}function be(L){J(L),window.addEventListener("touchmove",Y,de),L.target?.addEventListener("touchend",fe,{passive:!1})}function xe(L){L.button===0&&(L.preventDefault(),J(L),window.addEventListener("mousemove",Y,de),window.addEventListener("mouseup",$e,{passive:!1}))}xt(()=>{la&&(window.removeEventListener("touchmove",Y),window.removeEventListener("mousemove",Y),window.removeEventListener("mouseup",$e))});const se=L=>{const H=(L-r.value)/(k.value-r.value)*100;return Dt(isNaN(H)?0:H,0,100)},Te=Je(()=>e.showTicks),we=I(()=>Te.value?e.ticks?Array.isArray(e.ticks)?e.ticks.map(L=>({value:L,position:se(L),label:L.toString()})):Object.keys(e.ticks).map(L=>({value:parseFloat(L),position:se(parseFloat(L)),label:e.ticks[L]})):F.value!==1/0?za(F.value+1).map(L=>{const H=r.value+L*A.value;return{value:H,position:se(H)}}):[]:[]),je=I(()=>we.value.some(({label:L})=>!!L)),ze={activeThumbRef:b,color:Je(()=>e.color),decimals:O,disabled:c.isDisabled,direction:Je(()=>e.direction),elevation:Je(()=>e.elevation),hasLabels:je,isReversed:m,indexFromEnd:v,min:r,max:k,mousePressed:T,noKeyboard:Je(()=>e.noKeyboard),numTicks:F,onSliderMousedown:xe,onSliderTouchstart:be,parsedTicks:we,parseMouseMove:C,position:se,readonly:c.isReadonly,rounded:Je(()=>e.rounded),roundValue:y,showTicks:Te,startOffset:$,step:A,thumbSize:w,thumbColor:ee,thumbLabelColor:z,thumbLabel:Je(()=>e.thumbLabel),ticks:Je(()=>e.ticks),tickSize:d,trackColor:x,trackContainerRef:B,trackFillColor:R,trackSize:p,vertical:l};return _a(Kt,ze),ze},Ds=wt({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,noKeyboard:Boolean,...oa()},"VSliderThumb"),Os=Pt()({name:"VSliderThumb",directives:{vRipple:Qt},props:Ds(),emits:{"update:modelValue":e=>!0},setup(e,{slots:a,emit:t}){const o=ia(Kt),{isRtl:n,rtlClasses:s}=Bt();if(!o)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:c,max:f,thumbColor:m,thumbLabelColor:l,step:v,disabled:r,thumbSize:k,thumbLabel:A,direction:O,isReversed:y,vertical:w,readonly:d,elevation:p,mousePressed:F,decimals:ee,indexFromEnd:z}=o,x=U(!1),R=U(!1),T=I(()=>r.value?void 0:p.value),{elevationClasses:$}=qa(T),{textColorClasses:B,textColorStyles:b}=aa(m),{backgroundColorClasses:C,backgroundColorStyles:E}=Ot(l),{pageup:J,pagedown:de,end:Y,home:$e,left:fe,right:be,down:xe,up:se}=Ba,Te=[J,de,Y,$e,fe,be,xe,se],we=I(()=>v.value?[1,2,3]:[1,5,10]);function je(L,H){if(e.noKeyboard||r.value||!Te.includes(L.key))return;L.preventDefault();const Ve=v.value||.1,De=(f.value-c.value)/Ve;if([fe,be,xe,se].includes(L.key)){const he=(w.value?[n.value?fe:be,y.value?xe:se]:z.value!==n.value?[fe,se]:[be,se]).includes(L.key)?1:-1,Be=L.shiftKey?2:L.ctrlKey?1:0;he===-1&&H===f.value&&!Be&&!Number.isInteger(De)?H=H-De%1*Ve:H=H+he*Ve*we.value[Be]}else if(L.key===$e)H=c.value;else if(L.key===Y)H=f.value;else{const Ae=L.key===de?1:-1;H=H-Ae*Ve*(De>100?De/10:10)}return Math.max(e.min,Math.min(e.max,H))}function ze(L){const H=je(L,e.modelValue);H!=null&&(R.value=!1,t("update:modelValue",H))}return ie(()=>e.focused,L=>{L&&(R.value=!1)}),Ft(()=>{const L=nt(z.value?100-e.position:e.position,"%"),H=A.value==="always"||A.value===!0&&e.focused||A.value==="hover"&&(x.value||e.focused&&!R.value);return h("div",{class:Ee(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&F.value},e.class,s.value]),style:tt([{"--v-slider-thumb-position":L,"--v-slider-thumb-size":nt(k.value)},e.style]),role:"slider",tabindex:r.value?-1:0,"aria-label":e.name,"aria-valuemin":c.value,"aria-valuemax":f.value,"aria-valuenow":e.modelValue,"aria-readonly":!!d.value,"aria-orientation":O.value,onKeydown:d.value?void 0:ze,onMouseenter:()=>{x.value=!0},onMouseleave:()=>{x.value=!1,R.value=!0}},[h("div",{class:Ee(["v-slider-thumb__surface",B.value,$.value]),style:tt(b.value)},null),Xt(h("div",{class:Ee(["v-slider-thumb__ripple",B.value]),style:tt(b.value)},null),[[Qt,e.ripple,null,{circle:!0,center:!0}]]),g(Na,{origin:"bottom center"},{default:()=>[Xt(h("div",{class:"v-slider-thumb__label-container"},[h("div",{class:Ee(["v-slider-thumb__label",C.value]),style:tt(E.value)},[h("div",null,[a["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(v.value?ee.value:1)]),h("div",{class:"v-slider-thumb__label-wedge"},null)])]),[[La,H]])]})])}),{}}}),_s=wt({start:{type:Number,required:!0},stop:{type:Number,required:!0},...oa()},"VSliderTrack"),Bs=Pt()({name:"VSliderTrack",props:_s(),emits:{},setup(e,{slots:a}){const t=ia(Kt);if(!t)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:o,parsedTicks:n,rounded:s,showTicks:c,tickSize:f,trackColor:m,trackFillColor:l,trackSize:v,vertical:r,min:k,max:A,indexFromEnd:O}=t,{roundedClasses:y,roundedStyles:w}=ja(s),{backgroundColorClasses:d,backgroundColorStyles:p}=Ot(l),{backgroundColorClasses:F,backgroundColorStyles:ee}=Ot(m),z=I(()=>`inset-${r.value?"block":"inline"}-${O.value?"end":"start"}`),x=I(()=>r.value?"height":"width"),R=I(()=>({[z.value]:"0%",[x.value]:"100%"})),T=I(()=>e.stop-e.start),$=I(()=>({[z.value]:nt(e.start,"%"),[x.value]:nt(T.value,"%")})),B=I(()=>c.value?(r.value?n.value.slice().reverse():n.value).map((C,E)=>{const J=C.value!==k.value&&C.value!==A.value?nt(C.position,"%"):void 0;return h("div",{key:C.value,class:Ee(["v-slider-track__tick",{"v-slider-track__tick--filled":C.position>=e.start&&C.position<=e.stop,"v-slider-track__tick--first":C.value===k.value,"v-slider-track__tick--last":C.value===A.value}]),style:{[z.value]:J}},[(C.label||a["tick-label"])&&h("div",{class:"v-slider-track__tick-label"},[a["tick-label"]?.({tick:C,index:E})??C.label])])}):[]);return Ft(()=>h("div",{class:Ee(["v-slider-track",y.value,e.class]),style:tt([{"--v-slider-track-size":nt(v.value),"--v-slider-tick-size":nt(f.value)},w.value,e.style])},[h("div",{class:Ee(["v-slider-track__background",F.value,{"v-slider-track__background--opacity":!!o.value||!l.value}]),style:{...R.value,...ee.value}},null),h("div",{class:Ee(["v-slider-track__fill",d.value]),style:{...$.value,...p.value}},null),c.value&&h("div",{class:Ee(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":c.value==="always"}])},[B.value])])),{}}}),Ls=wt({...Ha(),...Us(),...Wa(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ns=Pt()({name:"VSlider",inheritAttrs:!1,props:Ls(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,{slots:a,emit:t,attrs:o}){const n=Re(),s=Re(),{rtlClasses:c}=Bt(),f=Es(e),m=zt(e,"modelValue",void 0,$=>f.roundValue($??f.min.value)),{min:l,max:v,mousePressed:r,roundValue:k,onSliderMousedown:A,onSliderTouchstart:O,trackContainerRef:y,position:w,hasLabels:d,disabled:p,readonly:F,noKeyboard:ee}=zs({props:e,steps:f,onSliderStart:()=>{!p.value&&!F.value&&t("start",m.value)},onSliderEnd:({value:$})=>{const B=k($);!p.value&&!F.value&&(m.value=B),t("end",B)},onSliderMove:({value:$})=>{!p.value&&!F.value&&(m.value=k($))},getActiveThumb:()=>n.value?.$el}),{isFocused:z,focus:x,blur:R}=Ka(e),T=I(()=>w(m.value));return Ft(()=>{const $=Yt.filterProps(e),[B,b]=Ga(o),C=!!(e.label||a.label||a.prepend);return g(Yt,ue({ref:s,class:["v-slider",{"v-slider--has-labels":!!a["tick-label"]||d.value,"v-slider--focused":z.value,"v-slider--pressed":r.value,"v-slider--disabled":p.value},c.value,e.class],style:e.style},$,B,{focused:z.value}),{...a,prepend:C?E=>h(oe,null,[a.label?.(E)??(e.label?g(Ja,{id:E.id.value,class:"v-slider__label",text:e.label},null):void 0),a.prepend?.(E)]):void 0,default:({id:E,messagesId:J})=>h("div",{class:"v-slider__container",onMousedown:F.value?void 0:A,onTouchstartPassive:F.value?void 0:O},[h("input",{id:E.value,name:e.name||E.value,disabled:p.value,readonly:F.value,tabindex:"-1",value:m.value},null),g(Bs,{ref:y,start:0,stop:T.value},{"tick-label":a["tick-label"]}),g(Os,ue({ref:n,"aria-describedby":J.value,focused:z.value,noKeyboard:ee.value,min:l.value,max:v.value,modelValue:m.value,"onUpdate:modelValue":de=>m.value=de,position:T.value,elevation:e.elevation,onFocus:x,onBlur:R,ripple:e.ripple,name:e.name},b),{"thumb-label":a["thumb-label"]})])})}),sa({focus:()=>n.value?.$el.focus()},s)}}),qs={key:0,class:"agent-reasoning-slider"},js={class:"agent-setting-heading"},Ks={key:0,class:"agent-setting-description"},Ws=Ce({__name:"AgentModelSettingsDialog",props:Ze({models:{},approvalSetting:{},reviewerSetting:{},permissionSetting:{},busy:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{},modelId:{required:!0},modelIdModifiers:{},reasoningEffort:{required:!0},reasoningEffortModifiers:{},reasoningSummary:{required:!0},reasoningSummaryModifiers:{},serviceTier:{required:!0},serviceTierModifiers:{},approvalMode:{required:!0},approvalModeModifiers:{},granular:{required:!0},granularModifiers:{},reviewer:{required:!0},reviewerModifiers:{},permissionMode:{required:!0},permissionModeModifiers:{}}),emits:Ze(["save"],["update:modelValue","update:modelId","update:reasoningEffort","update:reasoningSummary","update:serviceTier","update:approvalMode","update:granular","update:reviewer","update:permissionMode"]),setup(e,{emit:a}){const t=e,o=a,n=ye(e,"modelValue"),s=ye(e,"modelId"),c=ye(e,"reasoningEffort"),f=ye(e,"reasoningSummary"),m=ye(e,"serviceTier"),l=ye(e,"approvalMode"),v=ye(e,"granular"),r=ye(e,"reviewer"),k=ye(e,"permissionMode"),A=ke(),O=dt("modelSelectHost");let y=null;const w=U(null),d=I(()=>s.value?t.models.find(B=>B.id===s.value)??null:t.models.find(B=>B.isDefault)??t.models[0]??null),p=I(()=>[{title:A.t("$vuetify.chatroom.agents.defaultModel"),value:null,subtitle:""},...t.models.map(B=>({title:B.displayName,value:B.id,subtitle:B.description}))]),F=I(()=>{const B=w.value;return{contentClass:"agent-model-select-menu",...B===null?{}:{width:B,minWidth:B,maxWidth:B}}}),ee=I(()=>{const B=d.value?.reasoningEfforts.find(b=>b.id===d.value?.defaultReasoningEffort);return[{title:R(d.value?.defaultReasoningEffort),value:null,subtitle:B?.description??""},...(d.value?.reasoningEfforts??[]).map(b=>({title:b.id,value:b.id,subtitle:b.description}))]}),z=I({get(){const B=ee.value.findIndex(b=>b.value===c.value);return B<0?0:B},set(B){c.value=ee.value[Math.round(B)]?.value??null}}),x=I(()=>ee.value[z.value]??null);ie(d,B=>{B?.reasoningEfforts?.some(b=>b.id===c.value)||(c.value=null),B?.reasoningSummaries?.includes(f.value??"none")||(f.value=null),B?.serviceTiers?.some(b=>b.id===m.value)||(m.value=null)}),ie(n,async B=>{if(!B){$(),w.value=null;return}await He(),T()}),Vt($);function R(B){return jt(A.t("$vuetify.chatroom.agents.defaultModel"),B)}function T(){$();const B=O.value;if(!B){w.value=null;return}const b=()=>{const C=B.clientWidth;w.value=C>0?C:null};b(),y=new ResizeObserver(b),y.observe(B)}function $(){y?.disconnect(),y=null}return(B,b)=>(i(),q(ht,{modelValue:n.value,"onUpdate:modelValue":b[10]||(b[10]=C=>n.value=C),persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiTuneVariant"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.agents.modelSettings")),1)]),_:1})]),_:1}),g(Tt,{class:"agent-model-settings-dialog"},{default:D(()=>[h("div",{ref_key:"modelSelectHost",ref:O,class:"agent-model-select-host"},[g(Ge,{modelValue:s.value,"onUpdate:modelValue":b[0]||(b[0]=C=>s.value=C),items:p.value,"menu-props":F.value,label:u(A).t("$vuetify.chatroom.agents.model"),density:"compact",variant:"outlined","hide-details":"",disabled:e.busy},{item:D(({props:C,item:E})=>[g(Me,ue(C,{subtitle:E.subtitle}),null,16,["subtitle"])]),_:1},8,["modelValue","items","menu-props","label","disabled"])],512),d.value?.reasoningEfforts?.length?(i(),S("div",qs,[h("div",js,[h("span",null,M(u(A).t("$vuetify.chatroom.agents.reasoningEffort")),1),h("strong",null,M(x.value?.title),1)]),g(Ns,{modelValue:z.value,"onUpdate:modelValue":b[1]||(b[1]=C=>z.value=C),min:0,max:Math.max(0,ee.value.length-1),step:1,color:"primary","show-ticks":"always","aria-label":u(A).t("$vuetify.chatroom.agents.reasoningEffort"),"hide-details":"",disabled:e.busy},null,8,["modelValue","max","aria-label","disabled"]),x.value?.subtitle?(i(),S("div",Ks,M(x.value.subtitle),1)):_("",!0)])):_("",!0),g(ga,{"reasoning-summary":f.value,"onUpdate:reasoningSummary":b[2]||(b[2]=C=>f.value=C),"service-tier":m.value,"onUpdate:serviceTier":b[3]||(b[3]=C=>m.value=C),"approval-mode":l.value,"onUpdate:approvalMode":b[4]||(b[4]=C=>l.value=C),granular:v.value,"onUpdate:granular":b[5]||(b[5]=C=>v.value=C),reviewer:r.value,"onUpdate:reviewer":b[6]||(b[6]=C=>r.value=C),"permission-mode":k.value,"onUpdate:permissionMode":b[7]||(b[7]=C=>k.value=C),model:d.value,"approval-setting":e.approvalSetting,"reviewer-setting":e.reviewerSetting,"permission-setting":e.permissionSetting,disabled:e.busy,outlined:""},null,8,["reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","model","approval-setting","reviewer-setting","permission-setting","disabled"])]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:b[8]||(b[8]=C=>n.value=!1)},{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"primary",variant:"tonal",loading:e.busy,onClick:b[9]||(b[9]=C=>o("save"))},{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.common.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Hs=Ie(Ws,[["__scopeId","data-v-6560ca7a"]]),Gs={key:2,class:"agent-review-error",role:"alert"},Js=Ce({__name:"AgentReviewDialog",props:Ze({types:{},fieldLabel:{},busy:{type:Boolean},error:{},canStart:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{},reviewType:{required:!0},reviewTypeModifiers:{},reviewValue:{required:!0},reviewValueModifiers:{},reviewTitle:{required:!0},reviewTitleModifiers:{}}),emits:Ze(["start"],["update:modelValue","update:reviewType","update:reviewValue","update:reviewTitle"]),setup(e){const a=ye(e,"modelValue"),t=ye(e,"reviewType"),o=ye(e,"reviewValue"),n=ye(e,"reviewTitle"),s=ke();return(c,f)=>(i(),q(ht,{modelValue:a.value,"onUpdate:modelValue":f[6]||(f[6]=m=>a.value=m),persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiFileCompare"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.agents.review")),1)]),_:1})]),_:1}),g(Tt,{class:"agent-review-fields"},{default:D(()=>[g(Ge,{modelValue:t.value,"onUpdate:modelValue":f[0]||(f[0]=m=>t.value=m),items:e.types,label:u(s).t("$vuetify.chatroom.agents.reviewTarget"),disabled:e.busy,density:"compact","hide-details":""},null,8,["modelValue","items","label","disabled"]),t.value!=="uncommittedChanges"?(i(),q(ut,{key:0,modelValue:o.value,"onUpdate:modelValue":f[1]||(f[1]=m=>o.value=m),label:e.fieldLabel,disabled:e.busy,density:"compact","hide-details":"",onKeydown:f[2]||(f[2]=ot(lt(m=>c.$emit("start"),["prevent"]),["enter"]))},null,8,["modelValue","label","disabled"])):_("",!0),t.value==="commit"?(i(),q(ut,{key:1,modelValue:n.value,"onUpdate:modelValue":f[3]||(f[3]=m=>n.value=m),label:u(s).t("$vuetify.chatroom.agents.reviewCommitTitle"),disabled:e.busy,density:"compact","hide-details":""},null,8,["modelValue","label","disabled"])):_("",!0),e.error?(i(),S("div",Gs,M(e.error),1)):_("",!0)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:f[4]||(f[4]=m=>a.value=!1)},{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"primary",variant:"tonal",loading:e.busy,disabled:!e.canStart,onClick:f[5]||(f[5]=m=>c.$emit("start"))},{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.agents.startReview")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Qs=Ie(Js,[["__scopeId","data-v-c8b9a40c"]]),Xs={class:"panel-header agent-session-header"},Ys={class:"agent-session-header-info min-w-0"},Zs={class:"panel-title agent-session-provider-title"},ei={class:"agent-session-model-label"},ti={class:"panel-subtitle text-truncate"},ai={key:0,class:"agent-session-token-usage"},ni=["data-status"],li=["data-status","data-attention"],si={class:"agent-session-header-status-text"},ii={class:"agent-session-switch-provider-icon"},oi=Ce({__name:"AgentSessionHeader",props:{session:{},providerName:{},providerIcon:{},modelName:{},statusText:{},usage:{},compact:{type:Boolean},switchTargets:{},switching:{type:Boolean},disabled:{type:Boolean}},emits:["back","switchProvider"],setup(e){const a=ke();return(t,o)=>(i(),S("div",Xs,[e.compact?(i(),q(ce,{key:0,icon:"$mdiArrowLeft",size:"small","aria-label":u(a).t("$vuetify.chatroom.agents.backToSessions"),variant:"text",onClick:o[0]||(o[0]=n=>t.$emit("back"))},null,8,["aria-label"])):_("",!0),h("div",Ys,[h("div",Zs,[g(pt,{icon:e.providerIcon,size:16},null,8,["icon"]),h("span",null,M(e.providerName),1),h("span",ei,"· "+M(e.modelName),1)]),h("div",ti,M(e.session.workspaceRoot),1),e.usage?(i(),S("div",ai,M(e.usage),1)):_("",!0)]),h("div",{class:"agent-session-header-status","data-status":e.session.status},[h("span",{class:"agent-session-status-dot","data-status":e.session.status,"data-attention":e.session.attention?.kind??void 0},null,8,li),h("span",si,M(e.statusText),1)],8,ni),e.switchTargets.length?(i(),q(yt,{key:1,location:"bottom end",offset:"6","content-class":"agent-overlay-menu"},{activator:D(({props:n})=>[g(ce,ue(n,{class:"agent-session-header-switch",size:"small",variant:"text","prepend-icon":"$mdiSwapHorizontal","append-icon":"$mdiChevronDown",loading:e.switching,disabled:e.disabled,"aria-label":u(a).t("$vuetify.chatroom.agents.switchAgent")}),{default:D(()=>[le(M(u(a).t("$vuetify.chatroom.agents.switchAgent")),1)]),_:1},16,["loading","disabled","aria-label"])]),default:D(()=>[g(bt,{class:"agent-session-switch-menu",density:"compact"},{default:D(()=>[(i(!0),S(oe,null,Se(e.switchTargets,n=>(i(),q(Me,{key:n.id,title:n.displayName,onClick:s=>t.$emit("switchProvider",n.id)},{prepend:D(()=>[h("span",ii,[g(pt,{icon:n.icon,size:15},null,8,["icon"])])]),_:2},1032,["title","onClick"]))),128))]),_:1})]),_:1})):_("",!0)]))}}),ri=Ie(oi,[["__scopeId","data-v-1cae8321"]]),ui={class:"agent-create"},di=Ce({__name:"AgentCreateSessionPanel",props:{providers:{},providerModels:{},workspaces:{}},emits:["created"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(null),c=U(""),f=U(null),m=U(null),l=U(null),v=U(null),r=U(null),k=U(Ct()),A=U(null),O=U(null),y=U(!1),w=U(""),d=I(()=>t.providers.map(b=>({title:gt(t.providers,b.id),value:b.id,disabled:!b.installed||!b.authenticated}))),p=I(()=>[{title:n.t("$vuetify.chatroom.agents.defaultModel"),value:null,subtitle:""},...(t.providerModels[c.value]??[]).map(b=>({title:b.displayName,value:b.id,subtitle:b.description}))]),F=I(()=>da(t.providerModels,c.value,f.value)),ee=I(()=>Xe(t.providers,c.value,"approvalPolicy")),z=I(()=>Xe(t.providers,c.value,"approvalsReviewer")),x=I(()=>Xe(t.providers,c.value,"permissionMode")),R=I(()=>{const b=t.providers.find(C=>C.id===c.value);return!!(s.value&&b?.installed&&b.authenticated&&!y.value)});ie(()=>t.workspaces,b=>{(!s.value||!b.some(C=>C.root===s.value))&&(s.value=b[0]?.root??null)},{immediate:!0}),ie(()=>t.providers,b=>{const C=b.find(E=>E.id===c.value);C?.installed&&C.authenticated||(c.value=b.find(E=>E.installed&&E.authenticated)?.id??b[0]?.id??"")},{immediate:!0}),ie(c,()=>{f.value=null,m.value=null,l.value=null,v.value=null,$()}),ie(F,b=>{b?.reasoningEfforts?.some(C=>C.id===m.value)||(m.value=null),b?.reasoningSummaries?.includes(l.value??"none")||(l.value=null),b?.serviceTiers?.some(C=>C.id===v.value)||(v.value=null)});async function T(){if(!(!s.value||!R.value)){y.value=!0,w.value="";try{const b=await Ue("/agents/sessions",{method:"POST",body:JSON.stringify({workspaceRoot:s.value,provider:c.value,model:f.value,reasoningEffort:m.value,reasoningSummary:l.value,serviceTier:v.value,...ua(t.providers,c.value,r.value,k.value,A.value,O.value)}),timeoutMs:3e4});o("created",b)}catch(b){w.value=qe(b)}finally{y.value=!1}}}function $(){r.value=Lt(null,ee.value?.defaultValue??null),k.value=Ct(),A.value=Nt(null,z.value?.defaultValue??null),O.value=qt(null,x.value?.defaultValue??null)}function B(b){const C=b?.reasoningEfforts.find(E=>E.id===b.defaultReasoningEffort);return[{title:jt(n.t("$vuetify.chatroom.agents.defaultModel"),b?.defaultReasoningEffort),value:null,subtitle:C?.description??""},...(b?.reasoningEfforts??[]).map(E=>({title:E.id,value:E.id,subtitle:E.description}))]}return(b,C)=>(i(),S("div",ui,[g(Ge,{modelValue:s.value,"onUpdate:modelValue":C[0]||(C[0]=E=>s.value=E),items:e.workspaces,"item-title":"name","item-value":"root",label:u(n).t("$vuetify.chatroom.agents.workspace"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),g(Ge,{modelValue:c.value,"onUpdate:modelValue":C[1]||(C[1]=E=>c.value=E),items:d.value,label:u(n).t("$vuetify.chatroom.agents.provider"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),g(Ge,{modelValue:f.value,"onUpdate:modelValue":C[2]||(C[2]=E=>f.value=E),items:p.value,label:u(n).t("$vuetify.chatroom.agents.model"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),F.value?.reasoningEfforts?.length?(i(),q(Ge,{key:0,modelValue:m.value,"onUpdate:modelValue":C[3]||(C[3]=E=>m.value=E),items:B(F.value),label:u(n).t("$vuetify.chatroom.agents.reasoningEffort"),density:"compact","hide-details":""},{item:D(({props:E,item:J})=>[g(Me,ue(E,{subtitle:J.subtitle}),null,16,["subtitle"])]),_:1},8,["modelValue","items","label"])):_("",!0),g(ga,{"reasoning-summary":l.value,"onUpdate:reasoningSummary":C[4]||(C[4]=E=>l.value=E),"service-tier":v.value,"onUpdate:serviceTier":C[5]||(C[5]=E=>v.value=E),"approval-mode":r.value,"onUpdate:approvalMode":C[6]||(C[6]=E=>r.value=E),granular:k.value,"onUpdate:granular":C[7]||(C[7]=E=>k.value=E),reviewer:A.value,"onUpdate:reviewer":C[8]||(C[8]=E=>A.value=E),"permission-mode":O.value,"onUpdate:permissionMode":C[9]||(C[9]=E=>O.value=E),model:F.value,"approval-setting":ee.value,"reviewer-setting":z.value,"permission-setting":x.value,disabled:y.value},null,8,["reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","model","approval-setting","reviewer-setting","permission-setting","disabled"]),w.value?(i(),q(ta,{key:1,type:"error",variant:"tonal",density:"compact"},{default:D(()=>[le(M(w.value),1)]),_:1})):_("",!0),g(ce,{color:"primary",variant:"tonal",loading:y.value,disabled:!R.value,onClick:T},{default:D(()=>[le(M(u(n).t("$vuetify.chatroom.agents.create")),1)]),_:1},8,["loading","disabled"])]))}}),ci=Ie(di,[["__scopeId","data-v-8cdd509d"]]),vi={class:"agent-provider-strip"},mi=["data-state","title","aria-label","aria-expanded","data-expanded","onClick","onKeydown"],fi={class:"agent-provider-pill-name"},gi={key:0,class:"agent-provider-quota"},pi={class:"agent-provider-quota-header"},yi={key:0},hi={key:0,class:"agent-provider-quota-unavailable"},bi={key:1,class:"agent-provider-quota-unavailable"},wi=["title"],ki={class:"agent-provider-quota-label"},$i={class:"agent-provider-quota-track","aria-hidden":"true"},Si={class:"agent-provider-quota-value"},Ci={class:"agent-provider-quota-reset"},xi={key:0,class:"agent-provider-quota-extra"},Vi=Ce({__name:"AgentProviderStatus",props:{providers:{}},setup(e){const a=ke(),t=U({}),o=U(null),n=U(!1),s=mt();let c=null;const f=I(()=>o.value?t.value[o.value]?.accountUsage??null:null);ra(()=>{c=setInterval(()=>{o.value&&l(o.value)},6e4)}),Vt(()=>{c&&clearInterval(c)});async function m(y){if(o.value===y){s.invalidate(),o.value=null,n.value=!1;return}o.value=y,await l(y)}async function l(y){const w=s.begin();n.value=!0;try{const d=await Ue(`/agents/providers/${y}/details`,{timeoutMs:15e3,signal:w.signal});if(!s.isCurrent(w))return;t.value={...t.value,[y]:d}}catch{}finally{s.isCurrent(w)&&(n.value=!1)}}function v(y){if(!y.installed)return a.t("$vuetify.chatroom.agents.providerUnavailable");if(!y.authenticated)return a.t("$vuetify.chatroom.agents.providerNotAuthenticated");const w=t.value[y.id];return[a.t("$vuetify.chatroom.agents.providerAvailable"),w?.configRequirements!=null?a.t("$vuetify.chatroom.agents.managedRequirementsAvailable"):null,w?.rateLimits!=null?a.t("$vuetify.chatroom.agents.rateLimitsAvailable"):null,y.capabilities?.webSearch?a.t("$vuetify.chatroom.agents.webSearch"):null,y.capabilities?.imageGeneration?a.t("$vuetify.chatroom.agents.imageGeneration"):null,y.version?y.displayName+" "+y.version:null].filter(Boolean).join(" · ")}function r(y,w){if(w)return w;const d={five_hour:"$vuetify.chatroom.agents.quotaFiveHour",seven_day:"$vuetify.chatroom.agents.quotaSevenDay",seven_day_oauth_apps:"$vuetify.chatroom.agents.quotaOauthApps",seven_day_opus:"$vuetify.chatroom.agents.quotaOpus",seven_day_sonnet:"$vuetify.chatroom.agents.quotaSonnet"};return d[y]?a.t(d[y]):y}function k(y){return y===null?"—":a.t("$vuetify.chatroom.agents.quotaPercent",String(Math.round(y)))}function A(y){return y===null?"0%":Math.min(100,Math.max(0,y))+"%"}function O(y){if(!y)return"";const w=new Date(y).getTime()-Date.now();if(!Number.isFinite(w)||w<=0)return a.t("$vuetify.chatroom.agents.quotaResetSoon");const d=Math.ceil(w/6e4);let p;if(d<60)p=d+"m";else{const F=Math.floor(d/60),ee=d%60;p=F<48?F+"h"+(ee?" "+ee+"m":""):Math.ceil(F/24)+"d"}return a.t("$vuetify.chatroom.agents.quotaResetsIn",p)}return(y,w)=>(i(),S(oe,null,[h("div",vi,[(i(!0),S(oe,null,Se(e.providers,d=>(i(),S("div",{key:d.id,class:"agent-provider-pill","data-state":d.installed?d.authenticated?"ready":"warning":"unavailable",title:v(d),"aria-label":v(d),"aria-expanded":o.value===d.id,"data-expanded":o.value===d.id,role:"button",tabindex:"0",onClick:p=>m(d.id),onKeydown:[ot(lt(p=>m(d.id),["prevent"]),["enter"]),ot(lt(p=>m(d.id),["prevent"]),["space"])]},[g(pt,{icon:d.icon,size:14},null,8,["icon"]),h("span",fi,M(u(gt)(e.providers,d.id)),1),w[0]||(w[0]=h("span",{class:"agent-provider-pill-dot"},null,-1))],40,mi))),128))]),o.value?(i(),S("div",gi,[h("div",pi,[h("span",null,M(u(gt)(e.providers,o.value)),1),f.value?.subscriptionType?(i(),S("span",yi,M(f.value.subscriptionType),1)):_("",!0)]),n.value?(i(),S("div",hi,M(u(a).t("$vuetify.chatroom.agents.loading")),1)):f.value?.windows.length??0?(i(),S(oe,{key:2},[(i(!0),S(oe,null,Se(f.value?.windows??[],d=>(i(),S("div",{key:d.id,class:"agent-provider-quota-row",title:O(d.resetsAt)},[h("span",ki,M(r(d.id,d.label)),1),h("div",$i,[h("span",{class:"agent-provider-quota-fill",style:tt({width:A(d.utilization)})},null,4)]),h("span",Si,M(k(d.utilization)),1),h("span",Ci,M(O(d.resetsAt)),1)],8,wi))),128)),f.value?.extraUsage?.enabled?(i(),S("div",xi,[h("span",null,M(u(a).t("$vuetify.chatroom.agents.quotaExtraUsage")),1),h("span",null,M(k(f.value.extraUsage.utilization)),1)])):_("",!0)],64)):(i(),S("div",bi,M(u(a).t("$vuetify.chatroom.agents.quotaUnavailable")),1))])):_("",!0)],64))}}),Mi=Ie(Vi,[["__scopeId","data-v-5b1c74e5"]]),Ii={class:"panel-header"},Ti={class:"panel-title"},Ai={key:0,class:"agent-error",role:"alert"},Ri={class:"agent-session-list"},Pi=["data-status","data-attention","title"],Fi={key:1,class:"empty-inline"},Ui=Ce({__name:"AgentSidebar",props:{providers:{},providerModels:{},workspaces:{},sessions:{},selectedId:{},loading:{type:Boolean},error:{}},emits:["update:selectedId","created"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(!1);function c(l){s.value=!1,o("created",l)}function f(l,v){return ma(t.providerModels,l,v,n.t("$vuetify.chatroom.agents.defaultModel"))}function m(l){if(l.status==="waiting_input"){if(l.attention?.kind==="approval")return n.t("$vuetify.chatroom.agents.waitingApproval");if(l.attention?.kind==="input")return n.t("$vuetify.chatroom.agents.waitingAnswer")}return n.t("$vuetify.chatroom.agents.statuses."+l.status)}return(l,v)=>(i(),q(Ye,{class:"agent-sidebar panel-card"},{default:D(()=>[h("div",Ii,[h("div",Ti,M(u(n).t("$vuetify.chatroom.agents.title")),1),g(ce,{icon:"$mdiPlus",size:"small",variant:"text","aria-label":u(n).t("$vuetify.chatroom.agents.newSession"),onClick:v[0]||(v[0]=r=>s.value=!s.value)},null,8,["aria-label"])]),g(rt),g(Qa,null,{default:D(()=>[s.value?(i(),q(ci,{key:0,providers:e.providers,"provider-models":e.providerModels,workspaces:e.workspaces,onCreated:c},null,8,["providers","provider-models","workspaces"])):_("",!0)]),_:1}),e.error?(i(),S("div",Ai,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(e.error),1)])):_("",!0),h("div",Ri,[e.sessions.length?(i(),q(bt,{key:0,nav:"",density:"compact"},{default:D(()=>[(i(!0),S(oe,null,Se(e.sessions,r=>(i(),q(Me,{key:r.id,active:e.selectedId===r.id,"data-agent-session-id":r.id,rounded:"lg",onClick:k=>o("update:selectedId",r.id)},{prepend:D(()=>[g(pt,{class:"agent-session-provider-icon",icon:u(va)(e.providers,r.provider),size:15},null,8,["icon"])]),append:D(()=>[h("span",{class:"agent-status-dot","data-status":r.status,"data-attention":r.attention?.kind??void 0,title:m(r)},null,8,Pi)]),default:D(()=>[g(Xa,null,{default:D(()=>[le(M(u(gt)(e.providers,r.provider)),1)]),_:2},1024),g(Ya,null,{default:D(()=>[le(M(u($t)(r.workspaceRoot))+" ",1),r.model?(i(),S(oe,{key:0},[le(" · "+M(f(r.provider,r.model)),1)],64)):_("",!0)]),_:2},1024)]),_:2},1032,["active","data-agent-session-id","onClick"]))),128))]),_:1})):(i(),S("div",Fi,M(e.loading?u(n).t("$vuetify.chatroom.agents.loading"):u(n).t("$vuetify.chatroom.agents.noSessions")),1))]),g(rt),g(Mi,{providers:e.providers},null,8,["providers"])]),_:1}))}}),Ei=Ie(Ui,[["__scopeId","data-v-e6bcf543"]]),zi={key:0,class:"agent-error agent-main-error",role:"alert"},Di=["aria-label"],Oi={class:"empty-panel"},_i=Ce({__name:"AgentView",props:{revision:{},changes:{}},setup(e){const a=e,t=ke(),{mdAndDown:o}=Za(),n=dt("layout"),s=U([]),c=U([]),f=U({}),m=U(null),l=U(!1),v=U(!1),r=U(""),{sessions:k,history:A,refresh:O,reloadSelected:y,reconcileSession:w,reconcileInteraction:d,removeSession:p}=gn(m,{onError:Z=>{r.value=qe(Z)}}),F=I(()=>k.value.find(Z=>Z.id===m.value)??null),ee=I(()=>(A.value?.turns.at(-1)?.items??[]).filter(W=>W.type==="interaction"&&W.status==="waiting")),{modelSettingsOpen:z,settingsModel:x,settingsReasoningEffort:R,settingsReasoningSummary:T,settingsServiceTier:$,settingsApprovalPolicyMode:B,settingsGranularApproval:b,settingsApprovalsReviewer:C,settingsPermissionMode:E,reviewOpen:J,reviewType:de,reviewValue:Y,reviewTitle:$e,reviewStarting:fe,reviewError:be,modelSwitching:xe,switchingProvider:se,interrupting:Te,deleteDialog:we,deletingSession:je,selectedApprovalPolicySetting:ze,selectedApprovalsReviewerSetting:L,selectedPermissionModeSetting:H,selectedProviderModels:Ve,selectedModelMetadata:De,selectedProviderStatus:Ae,reviewTypes:he,reviewFieldLabel:Be,canStartReview:Le,switchTargets:Ke,loadModels:P,startReview:Q,interrupt:ae,switchProvider:ge,openDeleteDialog:me,deleteSession:Ne,openModelSettings:N,saveModelSettings:G}=yn({selectedId:m,selected:F,sessions:k,providers:s,providerModels:f,composerBusy:v,error:r,refresh:O,reconcileSession:w,removeSession:p}),{respondingInteractions:te,respondApproval:ve,submitInput:V,interactionAnswers:j,setInteractionAnswer:ne}=pn({selectedId:m,selected:F,error:r,reconcileInteraction:d}),re=I(()=>F.value?F.value.status!=="waiting_input"?t.t("$vuetify.chatroom.agents.statuses."+F.value.status):F.value.attention?.kind==="approval"?t.t("$vuetify.chatroom.agents.waitingApproval"):F.value.attention?.kind==="input"?t.t("$vuetify.chatroom.agents.waitingAnswer"):t.t("$vuetify.chatroom.agents.statuses.waiting_input"):""),pe=I(()=>{const Z=F.value?.tokenUsage;return Z?at(Z):""}),X=I(()=>Object.fromEntries(s.value.map(Z=>[Z.id,Z.displayName]))),Oe=I(()=>Object.fromEntries(s.value.map(Z=>[Z.id,Z.icon])));ra(()=>{st()}),ie(()=>a.revision,()=>{O(a.changes)}),ie(m,()=>{v.value=!1},{flush:"sync"}),ie(m,(Z,W)=>{!o.value||!Z||Z===W||He(()=>{n.value?.querySelector(".agent-main")?.focus({preventScroll:!0})})},{flush:"post"});async function st(){l.value=!0,r.value="";try{const[Z,,W]=await Promise.all([Ue("/agents/providers",{timeoutMs:15e3}),O(null),Ue("/workspaces")]);s.value=Z,c.value=W,!o.value&&!m.value&&k.value[0]&&(m.value=k.value[0].id),await Promise.all(Z.filter(K=>K.installed&&K.authenticated).map(K=>P(K.id)))}catch(Z){r.value=qe(Z)}finally{l.value=!1}}function Qe(Z){w(Z),m.value=Z.id}function at(Z){const W=ha=>new Intl.NumberFormat(en(t.current.value),{notation:"compact",maximumFractionDigits:1}).format(ha),K=t.t("$vuetify.chatroom.agents.tokenUsage",W(Z.total.totalTokens)),We=Z.modelContextWindow;if(!We||We<=0)return K;const kt=Z.last.totalTokens;return K+" · "+t.t("$vuetify.chatroom.agents.contextUsage",W(kt),W(We),String(Math.round(kt/We*100)))}function et(Z,W){return ma(f.value,Z,W,t.t("$vuetify.chatroom.agents.defaultModel"))}function Fe(){const Z=m.value;m.value=null,A.value=null,!(!o.value||!Z)&&He(()=>{n.value?.querySelector(`[data-agent-session-id="${CSS.escape(Z)}"]`)?.focus({preventScroll:!0})})}function pa(Z){return gt(s.value,Z)}function ya(Z){return va(s.value,Z)}return(Z,W)=>(i(),S("div",{ref_key:"layout",ref:n,class:"agent-layout"},[!u(o)||!F.value?(i(),q(Ei,{key:0,"selected-id":m.value,"onUpdate:selectedId":W[0]||(W[0]=K=>m.value=K),providers:s.value,"provider-models":f.value,workspaces:c.value,sessions:u(k),loading:l.value,error:r.value,onCreated:Qe},null,8,["selected-id","providers","provider-models","workspaces","sessions","loading","error"])):_("",!0),F.value?(i(),q(Ye,{key:1,class:"agent-main panel-card",tabindex:"-1"},{default:D(()=>[g(ri,{session:F.value,"provider-name":pa(F.value.provider),"provider-icon":ya(F.value.provider),"model-name":et(F.value.provider,F.value.model),"status-text":re.value,usage:pe.value,compact:u(o),"switch-targets":u(Ke),switching:u(se),disabled:F.value.status!=="idle"||u(xe),onBack:Fe,onSwitchProvider:u(ge)},null,8,["session","provider-name","provider-icon","model-name","status-text","usage","compact","switch-targets","switching","disabled","onSwitchProvider"]),g(rt),r.value&&u(o)?(i(),S("div",zi,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(r.value),1)])):_("",!0),g(Is,{history:u(A),"provider-names":X.value,"provider-icons":Oe.value},null,8,["history","provider-names","provider-icons"]),ee.value.length?(i(),S("div",{key:1,class:"agent-pending-interactions",role:"region","aria-label":re.value},[(i(!0),S(oe,null,Se(ee.value,K=>(i(),q(fa,{key:"pending:"+K.id,item:K,answers:u(j)(K),responding:u(te).has(K.id),pinned:"",onApprove:We=>u(ve)(K,We),onSubmit:We=>u(V)(K),onUpdateAnswer:(We,kt)=>u(ne)(K,We,kt)},null,8,["item","answers","responding","onApprove","onSubmit","onUpdateAnswer"]))),128))],8,Di)):_("",!0),g(rt),(i(),q(Nn,{key:F.value.id,session:F.value,model:u(De),"steering-supported":!!u(Ae)?.features.steering,disabled:u(fe)||u(xe)||u(se),onError:W[2]||(W[2]=K=>r.value=K),onBusy:W[3]||(W[3]=K=>v.value=K)},{controls:D(({busy:K})=>[g(yt,{location:"top end",offset:"8","content-class":"agent-overlay-menu"},{activator:D(({props:We})=>[g(ce,ue(We,{icon:"$mdiDotsHorizontal",size:"small",variant:"text",class:"agent-session-controls-button",color:F.value.status==="error"?"error":F.value.status==="idle"?void 0:"warning","aria-label":u(t).t("$vuetify.chatroom.agents.sessionControls"),title:u(t).t("$vuetify.chatroom.agents.sessionControls")}),null,16,["color","aria-label","title"])]),default:D(()=>[g(bt,{class:"agent-session-controls-menu",density:"compact"},{default:D(()=>[g(Me,{title:u(t).t("$vuetify.chatroom.agents.model"),subtitle:et(F.value.provider,F.value.model),"prepend-icon":"$mdiTuneVariant",disabled:F.value.status!=="idle"||u(xe)||u(se),onClick:u(N)},null,8,["title","subtitle","disabled","onClick"]),F.value.status==="running"||F.value.status==="waiting_input"?(i(),q(Me,{key:0,title:u(t).t("$vuetify.chatroom.agents.stop"),"prepend-icon":"$mdiStop","base-color":"warning",disabled:u(Te),onClick:u(ae)},null,8,["title","disabled","onClick"])):_("",!0),g(rt),F.value.status==="idle"&&u(Ae)?.features.nativeReview?(i(),q(Me,{key:1,title:u(t).t("$vuetify.chatroom.agents.review"),"prepend-icon":"$mdiFileCompare",disabled:K||u(xe)||u(se)||u(fe),onClick:W[1]||(W[1]=We=>{be.value="",J.value=!0})},null,8,["title","disabled"])):_("",!0),g(Me,{title:u(t).t("$vuetify.chatroom.agents.refresh"),"prepend-icon":"$mdiRefresh",onClick:u(y)},null,8,["title","onClick"]),g(Me,{title:u(t).t("$vuetify.chatroom.agents.delete"),"prepend-icon":"$mdiDeleteOutline",onClick:u(me)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]),_:1},8,["session","model","steering-supported","disabled"]))]),_:1})):u(o)?_("",!0):(i(),q(Ye,{key:2,class:"agent-main panel-card"},{default:D(()=>[h("div",Oi,M(u(t).t("$vuetify.chatroom.agents.selectSession")),1)]),_:1})),g(Hs,{modelValue:u(z),"onUpdate:modelValue":W[4]||(W[4]=K=>_e(z)?z.value=K:null),"model-id":u(x),"onUpdate:modelId":W[5]||(W[5]=K=>_e(x)?x.value=K:null),"reasoning-effort":u(R),"onUpdate:reasoningEffort":W[6]||(W[6]=K=>_e(R)?R.value=K:null),"reasoning-summary":u(T),"onUpdate:reasoningSummary":W[7]||(W[7]=K=>_e(T)?T.value=K:null),"service-tier":u($),"onUpdate:serviceTier":W[8]||(W[8]=K=>_e($)?$.value=K:null),"approval-mode":u(B),"onUpdate:approvalMode":W[9]||(W[9]=K=>_e(B)?B.value=K:null),granular:u(b),"onUpdate:granular":W[10]||(W[10]=K=>_e(b)?b.value=K:null),reviewer:u(C),"onUpdate:reviewer":W[11]||(W[11]=K=>_e(C)?C.value=K:null),"permission-mode":u(E),"onUpdate:permissionMode":W[12]||(W[12]=K=>_e(E)?E.value=K:null),models:u(Ve),"approval-setting":u(ze),"reviewer-setting":u(L),"permission-setting":u(H),busy:u(xe),onSave:u(G)},null,8,["modelValue","model-id","reasoning-effort","reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","models","approval-setting","reviewer-setting","permission-setting","busy","onSave"]),g(Qs,{modelValue:u(J),"onUpdate:modelValue":W[13]||(W[13]=K=>_e(J)?J.value=K:null),"review-type":u(de),"onUpdate:reviewType":W[14]||(W[14]=K=>_e(de)?de.value=K:null),"review-value":u(Y),"onUpdate:reviewValue":W[15]||(W[15]=K=>_e(Y)?Y.value=K:null),"review-title":u($e),"onUpdate:reviewTitle":W[16]||(W[16]=K=>_e($e)?$e.value=K:null),types:u(he),"field-label":u(Be),busy:u(fe),error:u(be),"can-start":u(Le),onStart:u(Q)},null,8,["modelValue","review-type","review-value","review-title","types","field-label","busy","error","can-start","onStart"]),g(qn,{modelValue:u(we),"onUpdate:modelValue":W[17]||(W[17]=K=>_e(we)?we.value=K:null),busy:u(je),onConfirm:u(Ne)},null,8,["modelValue","busy","onConfirm"])],512))}}),Gi=Ie(_i,[["__scopeId","data-v-3189043d"]]);export{Gi as default};
4
+ `):null}return(l,v)=>(i(),S("div",is,[(i(!0),S(oe,null,Se(o.value,r=>(i(),S(oe,{key:r.id},[r.type==="user_message"?(i(),S("div",os,[h("div",rs,[h("div",us,M(r.text),1),h("div",{class:"agent-message-source","data-source":r.source??e.entry.turn.source},[g(Pe,{icon:c(r.source??e.entry.turn.source),size:"13"},null,8,["icon"]),h("span",null,M(f(r.source??e.entry.turn.source)),1)],8,ds),r.attachments.length?(i(),S("div",cs,[(i(!0),S(oe,null,Se(r.attachments,k=>(i(),q(ft,{key:k.path,size:"x-small",variant:"tonal","prepend-icon":"$mdiFileOutline"},{default:D(()=>[le(M(k.name),1)]),_:2},1024))),128))])):_("",!0)])])):r.type==="provider_marker"?(i(),S("div",{key:1,class:"agent-turn-provider",title:r.model?n(r.provider)+" · "+r.model:n(r.provider)},[g(pt,{icon:s(r.provider),size:13},null,8,["icon"]),h("span",null,M(n(r.provider)),1)],8,vs)):r.type==="turn_status"?(i(),S("div",{key:2,class:"agent-turn-status","data-status":r.status},[h("span",null,M(u(t).t(`$vuetify.chatroom.agents.statuses.${r.status}`)),1),r.error?(i(),S("span",fs," · "+M(r.error),1)):_("",!0)],8,ms)):r.type==="assistant_message"?(i(),S("div",{key:3,class:"agent-response-text","data-phase":r.phase},[g(_t,{class:"agent-message-markdown",text:r.text,streaming:r.status==="running"},null,8,["text","streaming"]),r.status==="running"?(i(),q(Ea,{key:0,indeterminate:"",height:"2",class:"agent-item-progress"})):_("",!0)],8,gs)):r.type==="reasoning_summary"?(i(),S("div",ps,[h("div",ys,M(u(t).t("$vuetify.chatroom.agents.reasoningSummary")),1),g(_t,{text:r.text,streaming:r.status==="running"},null,8,["text","streaming"])])):r.type==="command"?(i(),S("div",hs,[g(Cl,{command:r.command,cwd:r.cwd,output:r.output,"exit-code":r.exitCode,status:r.status},null,8,["command","cwd","output","exit-code","status"])])):r.type==="image_gallery"?(i(),q(ol,{key:6,items:r.items,"workspace-root":e.workspaceRoot},null,8,["items","workspace-root"])):r.type==="interaction"&&r.status!=="waiting"?(i(),S("details",bs,[h("summary",null,[g(Pe,{icon:r.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"18"},null,8,["icon"]),le(" "+M(r.interaction.title),1)]),g(fa,{item:r},null,8,["item"])])):r.type==="tool"||r.type==="file_change"||r.type==="turn_diff"||r.type==="plan"||r.type==="artifact"?(i(),q(ss,{key:8,item:r},null,8,["item"])):r.type==="context_compaction"?(i(),S("div",{key:9,class:"agent-compaction","data-status":r.status,role:"status","aria-live":"polite"},[r.status==="running"?(i(),q(Rt,{key:0,indeterminate:"",size:"14",width:"2"})):(i(),q(Pe,{key:1,icon:r.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"16"},null,8,["icon"])),h("span",null,M(u(t).t("$vuetify.chatroom.agents.compaction."+(r.status==="running"?"running":r.status==="completed"?"completed":"failed"))),1),r.error?(i(),S("span",ks,M(r.error),1)):_("",!0)],8,ws)):r.type==="notice"?(i(),S("div",{key:10,class:"agent-notice","data-level":r.level},M(r.text),9,$s)):_("",!0)],64))),128))]))}}),Cs=Ie(Ss,[["__scopeId","data-v-d9c9ba96"]]),xs={class:"agent-conversation-shell"},Vs={key:1,class:"empty-panel"},vt=100,Ms=Ce({__name:"AgentConversation",props:{history:{},providerNames:{},providerIcons:{}},setup(e){const a=e,t=ke(),o=U(vt),n=dt("conversation"),s=dt("conversationContent"),{autoFollow:c,onConversationScroll:f,scrollToBottom:m}=jn(n,s),l=I(()=>{const k=a.history?.turns??[];return k.slice(Math.max(0,k.length-o.value))}),v=I(()=>Math.max(0,(a.history?.turns.length??0)-l.value.length));ie(()=>a.history?.session.id??null,()=>{o.value=vt,m()},{flush:"post"}),ie(()=>a.history?.turns.length??0,(k,A)=>{A>0&&k>A&&o.value>vt&&(o.value+=k-A)});async function r(){const k=n.value,A=k?.scrollHeight??0,O=k?.scrollTop??0;o.value+=vt,await He(),k&&(k.scrollTop=O+(k.scrollHeight-A))}return(k,A)=>(i(),S("div",xs,[h("div",{ref_key:"conversation",ref:n,class:"agent-conversation",onScrollPassive:A[0]||(A[0]=(...O)=>u(f)&&u(f)(...O))},[h("div",{ref_key:"conversationContent",ref:s,class:"agent-conversation-content"},[v.value?(i(),q(ce,{key:0,class:"agent-show-older-turns",size:"small",variant:"text",onClick:r},{default:D(()=>[le(M(u(t).t("$vuetify.chatroom.agents.showOlderTurns",String(Math.min(vt,v.value)))),1)]),_:1})):_("",!0),e.history?.turns.length?_("",!0):(i(),S("div",Vs,M(u(t).t("$vuetify.chatroom.agents.noHistory")),1)),(i(!0),S(oe,null,Se(l.value,O=>(i(),q(Cs,{key:O.turn.id,entry:O,"workspace-root":e.history?.session.workspaceRoot??"","provider-names":e.providerNames,"provider-icons":e.providerIcons},null,8,["entry","workspace-root","provider-names","provider-icons"]))),128))],512)],544),u(c)?_("",!0):(i(),q(ce,{key:0,class:"agent-back-to-latest",icon:"$mdiArrowDown",size:"small",variant:"tonal",title:u(t).t("$vuetify.chatroom.agents.backToLatest"),"aria-label":u(t).t("$vuetify.chatroom.agents.backToLatest"),onClick:u(m)},null,8,["title","aria-label","onClick"]))]))}}),Is=Ie(Ms,[["__scopeId","data-v-f2a2b510"]]),Ts={key:3,class:"agent-native-granular"},As={class:"agent-setting-heading"},Rs=Ce({__name:"AgentSessionConfigFields",props:Ze({model:{},approvalSetting:{},reviewerSetting:{},permissionSetting:{},disabled:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1}},{reasoningSummary:{required:!0},reasoningSummaryModifiers:{},serviceTier:{required:!0},serviceTierModifiers:{},approvalMode:{required:!0},approvalModeModifiers:{},granular:{required:!0},granularModifiers:{},reviewer:{required:!0},reviewerModifiers:{},permissionMode:{required:!0},permissionModeModifiers:{}}),emits:["update:reasoningSummary","update:serviceTier","update:approvalMode","update:granular","update:reviewer","update:permissionMode"],setup(e){const a=e,t=ye(e,"reasoningSummary"),o=ye(e,"serviceTier"),n=ye(e,"approvalMode"),s=ye(e,"granular"),c=ye(e,"reviewer"),f=ye(e,"permissionMode"),m=ke(),l=U(null),v=I(()=>a.outlined?{variant:"outlined"}:{}),r=I(()=>[{title:F(a.model?.defaultReasoningSummary?p(a.model.defaultReasoningSummary):null),value:null,subtitle:""},...(a.model?.reasoningSummaries??[]).map(x=>({title:p(x),value:x,subtitle:""}))]),k=I(()=>{const x=a.model?.serviceTiers??[];return[{title:F(x.find(R=>R.id===a.model?.defaultServiceTier)?.name??a.model?.defaultServiceTier),value:null,subtitle:""},...x.map(R=>({title:R.name,value:R.id,subtitle:R.description}))]});function A(x){return(x?.options??[]).map(R=>({title:`${y(R.id,"title")} (${R.id})`,value:R.id,subtitle:y(R.id,"description",R.description??"")}))}const O={untrusted:"untrusted","on-request":"onRequest",granular:"granular",never:"never",user:"user",auto_review:"autoReview",guardian_subagent:"autoReview","read-only":"readOnly","workspace-write":"workspaceWrite","danger-full-access":"fullAccessCodex"};function y(x,R,T=x){const $=O[x];return $?m.t(`$vuetify.chatroom.agents.nativeOptions.${$}.${R}`):T}function w(x){if(x!==f.value){if(x==="danger-full-access"){l.value=x;return}f.value=x}}function d(){const x=l.value;l.value=null,x&&(x==="danger-full-access"&&(n.value="never"),f.value=x)}function p(x){return m.t(`$vuetify.chatroom.agents.summaries.${x}`)}function F(x){return jt(m.t("$vuetify.chatroom.agents.defaultModel"),x)}function ee(x){return x in s.value?s.value[x]:!1}function z(x,R){x in s.value&&(s.value={...s.value,[x]:R})}return(x,R)=>(i(),S(oe,null,[e.model?.reasoningSummaries?.length?(i(),q(Ge,ue({key:0,modelValue:t.value,"onUpdate:modelValue":R[0]||(R[0]=T=>t.value=T),items:r.value,label:u(m).t("$vuetify.chatroom.agents.reasoningSummary"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.model?.serviceTiers?.length?(i(),q(Ge,ue({key:1,modelValue:o.value,"onUpdate:modelValue":R[1]||(R[1]=T=>o.value=T),items:k.value,label:u(m).t("$vuetify.chatroom.agents.serviceTier"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.approvalSetting?(i(),q(Ge,ue({key:2,modelValue:n.value,"onUpdate:modelValue":R[2]||(R[2]=T=>n.value=T),items:A(e.approvalSetting),label:u(m).t("$vuetify.chatroom.agents.approvalPolicy"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.approvalSetting&&n.value==="granular"?(i(),S("div",Ts,[h("div",As,M(u(m).t("$vuetify.chatroom.agents.granularApprovals")),1),(i(!0),S(oe,null,Se(e.approvalSetting.granularFields,T=>(i(),q(mn,{key:T.id,"model-value":ee(T.id),label:T.id,title:T.description??void 0,density:"compact",color:"primary","hide-details":"",disabled:e.disabled,"onUpdate:modelValue":$=>z(T.id,!!$)},null,8,["model-value","label","title","disabled","onUpdate:modelValue"]))),128))])):_("",!0),e.reviewerSetting?(i(),q(Ge,ue({key:4,modelValue:c.value,"onUpdate:modelValue":R[3]||(R[3]=T=>c.value=T),items:A(e.reviewerSetting),label:u(m).t("$vuetify.chatroom.agents.approvalsReviewer"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["modelValue","items","label","disabled"])):_("",!0),e.permissionSetting?(i(),q(Ge,ue({key:5,"model-value":f.value,items:A(e.permissionSetting),label:u(m).t("$vuetify.chatroom.agents.permissionMode"),density:"compact"},v.value,{"hide-details":"",disabled:e.disabled,"onUpdate:modelValue":w}),{item:D(({props:T,item:$})=>[g(Me,ue(T,{subtitle:$.subtitle}),null,16,["subtitle"])]),_:1},16,["model-value","items","label","disabled"])):_("",!0),g(ht,{"model-value":l.value!==null,width:"auto","max-width":"32rem","onUpdate:modelValue":R[5]||(R[5]=T=>{T||(l.value=null)})},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-warning"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.agents.fullAccessTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.agents.fullAccessConfirm")),1)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",onClick:R[4]||(R[4]=T=>l.value=null)},{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.common.cancel")),1)]),_:1}),g(ce,{color:"warning",variant:"flat",onClick:d},{default:D(()=>[le(M(u(m).t("$vuetify.chatroom.common.confirm")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])],64))}}),ga=Ie(Rs,[["__scopeId","data-v-7d7f4fb1"]]),Kt=Symbol.for("vuetify:v-slider");function Ps(e,a,t){const o=t==="vertical",n=a.getBoundingClientRect(),s="touches"in e?e.touches[0]:e;return o?s.clientY-(n.top+n.height/2):s.clientX-(n.left+n.width/2)}function Fs(e,a){return"touches"in e&&e.touches.length?e.touches[0][a]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][a]:e[a]}const Us=wt({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"||e==="hover"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,noKeyboard:Boolean,...Oa(),...Da({elevation:1}),ripple:{type:Boolean,default:!0}},"Slider"),Es=e=>{const a=I(()=>parseFloat(e.min)),t=I(()=>parseFloat(e.max)),o=I(()=>Number(e.step)>0?parseFloat(e.step):0),n=I(()=>Math.max(Jt(o.value),Jt(a.value)));function s(c){if(c=parseFloat(c),o.value<=0)return c;const f=Dt(c,a.value,t.value),m=a.value%o.value;let l=Math.round((f-m)/o.value)*o.value+m;return f>l&&l+o.value>t.value&&(l=t.value),parseFloat(Math.min(l,t.value).toFixed(n.value))}return{min:a,max:t,step:o,decimals:n,roundValue:s}},zs=({props:e,steps:a,onSliderStart:t,onSliderMove:o,onSliderEnd:n,getActiveThumb:s})=>{const c=na(e),{isRtl:f}=Bt(),m=Je(()=>e.reverse),l=I(()=>e.direction==="vertical"),v=I(()=>l.value!==m.value),{min:r,max:k,step:A,decimals:O,roundValue:y}=a,w=I(()=>parseInt(e.thumbSize,10)),d=I(()=>parseInt(e.tickSize,10)),p=I(()=>parseInt(e.trackSize,10)),F=I(()=>(k.value-r.value)/A.value),ee=I(()=>e.error||c.isDisabled.value?void 0:e.thumbColor??e.color),z=I(()=>e.error||c.isDisabled.value?void 0:e.thumbColor),x=I(()=>e.error||c.isDisabled.value?void 0:e.trackColor??e.color),R=I(()=>e.error||c.isDisabled.value?void 0:e.trackFillColor??e.color),T=U(!1),$=U(0),B=Re(),b=Re();function C(L){const H=B.value?.$el;if(!H)return;const Ve=e.direction==="vertical",De=Ve?"top":"left",Ae=Ve?"height":"width",he=Ve?"clientY":"clientX",{[De]:Be,[Ae]:Le}=H.getBoundingClientRect(),Ke=Fs(L,he);let P=Dt((Ke-Be-$.value)/Le)||0;return(Ve?v.value:v.value!==f.value)&&(P=1-P),y(r.value+P*(k.value-r.value))}const E=L=>{const H=C(L);H!=null&&n({value:H}),T.value=!1,$.value=0},J=L=>{const H=C(L);b.value=s(L),b.value&&(T.value=!0,b.value.contains(L.target)?$.value=Ps(L,b.value,e.direction):($.value=0,H!=null&&o({value:H})),H!=null&&t({value:H}),He(()=>b.value?.focus()))},de={passive:!0,capture:!0};function Y(L){const H=C(L);H!=null&&o({value:H})}function $e(L){L.stopPropagation(),L.preventDefault(),E(L),window.removeEventListener("mousemove",Y,de),window.removeEventListener("mouseup",$e)}function fe(L){E(L),window.removeEventListener("touchmove",Y,de),L.target?.removeEventListener("touchend",fe)}function be(L){J(L),window.addEventListener("touchmove",Y,de),L.target?.addEventListener("touchend",fe,{passive:!1})}function xe(L){L.button===0&&(L.preventDefault(),J(L),window.addEventListener("mousemove",Y,de),window.addEventListener("mouseup",$e,{passive:!1}))}xt(()=>{la&&(window.removeEventListener("touchmove",Y),window.removeEventListener("mousemove",Y),window.removeEventListener("mouseup",$e))});const se=L=>{const H=(L-r.value)/(k.value-r.value)*100;return Dt(isNaN(H)?0:H,0,100)},Te=Je(()=>e.showTicks),we=I(()=>Te.value?e.ticks?Array.isArray(e.ticks)?e.ticks.map(L=>({value:L,position:se(L),label:L.toString()})):Object.keys(e.ticks).map(L=>({value:parseFloat(L),position:se(parseFloat(L)),label:e.ticks[L]})):F.value!==1/0?za(F.value+1).map(L=>{const H=r.value+L*A.value;return{value:H,position:se(H)}}):[]:[]),je=I(()=>we.value.some(({label:L})=>!!L)),ze={activeThumbRef:b,color:Je(()=>e.color),decimals:O,disabled:c.isDisabled,direction:Je(()=>e.direction),elevation:Je(()=>e.elevation),hasLabels:je,isReversed:m,indexFromEnd:v,min:r,max:k,mousePressed:T,noKeyboard:Je(()=>e.noKeyboard),numTicks:F,onSliderMousedown:xe,onSliderTouchstart:be,parsedTicks:we,parseMouseMove:C,position:se,readonly:c.isReadonly,rounded:Je(()=>e.rounded),roundValue:y,showTicks:Te,startOffset:$,step:A,thumbSize:w,thumbColor:ee,thumbLabelColor:z,thumbLabel:Je(()=>e.thumbLabel),ticks:Je(()=>e.ticks),tickSize:d,trackColor:x,trackContainerRef:B,trackFillColor:R,trackSize:p,vertical:l};return _a(Kt,ze),ze},Ds=wt({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,noKeyboard:Boolean,...oa()},"VSliderThumb"),Os=Pt()({name:"VSliderThumb",directives:{vRipple:Qt},props:Ds(),emits:{"update:modelValue":e=>!0},setup(e,{slots:a,emit:t}){const o=ia(Kt),{isRtl:n,rtlClasses:s}=Bt();if(!o)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:c,max:f,thumbColor:m,thumbLabelColor:l,step:v,disabled:r,thumbSize:k,thumbLabel:A,direction:O,isReversed:y,vertical:w,readonly:d,elevation:p,mousePressed:F,decimals:ee,indexFromEnd:z}=o,x=U(!1),R=U(!1),T=I(()=>r.value?void 0:p.value),{elevationClasses:$}=qa(T),{textColorClasses:B,textColorStyles:b}=aa(m),{backgroundColorClasses:C,backgroundColorStyles:E}=Ot(l),{pageup:J,pagedown:de,end:Y,home:$e,left:fe,right:be,down:xe,up:se}=Ba,Te=[J,de,Y,$e,fe,be,xe,se],we=I(()=>v.value?[1,2,3]:[1,5,10]);function je(L,H){if(e.noKeyboard||r.value||!Te.includes(L.key))return;L.preventDefault();const Ve=v.value||.1,De=(f.value-c.value)/Ve;if([fe,be,xe,se].includes(L.key)){const he=(w.value?[n.value?fe:be,y.value?xe:se]:z.value!==n.value?[fe,se]:[be,se]).includes(L.key)?1:-1,Be=L.shiftKey?2:L.ctrlKey?1:0;he===-1&&H===f.value&&!Be&&!Number.isInteger(De)?H=H-De%1*Ve:H=H+he*Ve*we.value[Be]}else if(L.key===$e)H=c.value;else if(L.key===Y)H=f.value;else{const Ae=L.key===de?1:-1;H=H-Ae*Ve*(De>100?De/10:10)}return Math.max(e.min,Math.min(e.max,H))}function ze(L){const H=je(L,e.modelValue);H!=null&&(R.value=!1,t("update:modelValue",H))}return ie(()=>e.focused,L=>{L&&(R.value=!1)}),Ft(()=>{const L=nt(z.value?100-e.position:e.position,"%"),H=A.value==="always"||A.value===!0&&e.focused||A.value==="hover"&&(x.value||e.focused&&!R.value);return h("div",{class:Ee(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&F.value},e.class,s.value]),style:tt([{"--v-slider-thumb-position":L,"--v-slider-thumb-size":nt(k.value)},e.style]),role:"slider",tabindex:r.value?-1:0,"aria-label":e.name,"aria-valuemin":c.value,"aria-valuemax":f.value,"aria-valuenow":e.modelValue,"aria-readonly":!!d.value,"aria-orientation":O.value,onKeydown:d.value?void 0:ze,onMouseenter:()=>{x.value=!0},onMouseleave:()=>{x.value=!1,R.value=!0}},[h("div",{class:Ee(["v-slider-thumb__surface",B.value,$.value]),style:tt(b.value)},null),Xt(h("div",{class:Ee(["v-slider-thumb__ripple",B.value]),style:tt(b.value)},null),[[Qt,e.ripple,null,{circle:!0,center:!0}]]),g(Na,{origin:"bottom center"},{default:()=>[Xt(h("div",{class:"v-slider-thumb__label-container"},[h("div",{class:Ee(["v-slider-thumb__label",C.value]),style:tt(E.value)},[h("div",null,[a["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(v.value?ee.value:1)]),h("div",{class:"v-slider-thumb__label-wedge"},null)])]),[[La,H]])]})])}),{}}}),_s=wt({start:{type:Number,required:!0},stop:{type:Number,required:!0},...oa()},"VSliderTrack"),Bs=Pt()({name:"VSliderTrack",props:_s(),emits:{},setup(e,{slots:a}){const t=ia(Kt);if(!t)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:o,parsedTicks:n,rounded:s,showTicks:c,tickSize:f,trackColor:m,trackFillColor:l,trackSize:v,vertical:r,min:k,max:A,indexFromEnd:O}=t,{roundedClasses:y,roundedStyles:w}=ja(s),{backgroundColorClasses:d,backgroundColorStyles:p}=Ot(l),{backgroundColorClasses:F,backgroundColorStyles:ee}=Ot(m),z=I(()=>`inset-${r.value?"block":"inline"}-${O.value?"end":"start"}`),x=I(()=>r.value?"height":"width"),R=I(()=>({[z.value]:"0%",[x.value]:"100%"})),T=I(()=>e.stop-e.start),$=I(()=>({[z.value]:nt(e.start,"%"),[x.value]:nt(T.value,"%")})),B=I(()=>c.value?(r.value?n.value.slice().reverse():n.value).map((C,E)=>{const J=C.value!==k.value&&C.value!==A.value?nt(C.position,"%"):void 0;return h("div",{key:C.value,class:Ee(["v-slider-track__tick",{"v-slider-track__tick--filled":C.position>=e.start&&C.position<=e.stop,"v-slider-track__tick--first":C.value===k.value,"v-slider-track__tick--last":C.value===A.value}]),style:{[z.value]:J}},[(C.label||a["tick-label"])&&h("div",{class:"v-slider-track__tick-label"},[a["tick-label"]?.({tick:C,index:E})??C.label])])}):[]);return Ft(()=>h("div",{class:Ee(["v-slider-track",y.value,e.class]),style:tt([{"--v-slider-track-size":nt(v.value),"--v-slider-tick-size":nt(f.value)},w.value,e.style])},[h("div",{class:Ee(["v-slider-track__background",F.value,{"v-slider-track__background--opacity":!!o.value||!l.value}]),style:{...R.value,...ee.value}},null),h("div",{class:Ee(["v-slider-track__fill",d.value]),style:{...$.value,...p.value}},null),c.value&&h("div",{class:Ee(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":c.value==="always"}])},[B.value])])),{}}}),Ls=wt({...Ha(),...Us(),...Wa(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ns=Pt()({name:"VSlider",inheritAttrs:!1,props:Ls(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,{slots:a,emit:t,attrs:o}){const n=Re(),s=Re(),{rtlClasses:c}=Bt(),f=Es(e),m=zt(e,"modelValue",void 0,$=>f.roundValue($??f.min.value)),{min:l,max:v,mousePressed:r,roundValue:k,onSliderMousedown:A,onSliderTouchstart:O,trackContainerRef:y,position:w,hasLabels:d,disabled:p,readonly:F,noKeyboard:ee}=zs({props:e,steps:f,onSliderStart:()=>{!p.value&&!F.value&&t("start",m.value)},onSliderEnd:({value:$})=>{const B=k($);!p.value&&!F.value&&(m.value=B),t("end",B)},onSliderMove:({value:$})=>{!p.value&&!F.value&&(m.value=k($))},getActiveThumb:()=>n.value?.$el}),{isFocused:z,focus:x,blur:R}=Ka(e),T=I(()=>w(m.value));return Ft(()=>{const $=Yt.filterProps(e),[B,b]=Ga(o),C=!!(e.label||a.label||a.prepend);return g(Yt,ue({ref:s,class:["v-slider",{"v-slider--has-labels":!!a["tick-label"]||d.value,"v-slider--focused":z.value,"v-slider--pressed":r.value,"v-slider--disabled":p.value},c.value,e.class],style:e.style},$,B,{focused:z.value}),{...a,prepend:C?E=>h(oe,null,[a.label?.(E)??(e.label?g(Ja,{id:E.id.value,class:"v-slider__label",text:e.label},null):void 0),a.prepend?.(E)]):void 0,default:({id:E,messagesId:J})=>h("div",{class:"v-slider__container",onMousedown:F.value?void 0:A,onTouchstartPassive:F.value?void 0:O},[h("input",{id:E.value,name:e.name||E.value,disabled:p.value,readonly:F.value,tabindex:"-1",value:m.value},null),g(Bs,{ref:y,start:0,stop:T.value},{"tick-label":a["tick-label"]}),g(Os,ue({ref:n,"aria-describedby":J.value,focused:z.value,noKeyboard:ee.value,min:l.value,max:v.value,modelValue:m.value,"onUpdate:modelValue":de=>m.value=de,position:T.value,elevation:e.elevation,onFocus:x,onBlur:R,ripple:e.ripple,name:e.name},b),{"thumb-label":a["thumb-label"]})])})}),sa({focus:()=>n.value?.$el.focus()},s)}}),qs={key:0,class:"agent-reasoning-slider"},js={class:"agent-setting-heading"},Ks={key:0,class:"agent-setting-description"},Ws=Ce({__name:"AgentModelSettingsDialog",props:Ze({models:{},approvalSetting:{},reviewerSetting:{},permissionSetting:{},busy:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{},modelId:{required:!0},modelIdModifiers:{},reasoningEffort:{required:!0},reasoningEffortModifiers:{},reasoningSummary:{required:!0},reasoningSummaryModifiers:{},serviceTier:{required:!0},serviceTierModifiers:{},approvalMode:{required:!0},approvalModeModifiers:{},granular:{required:!0},granularModifiers:{},reviewer:{required:!0},reviewerModifiers:{},permissionMode:{required:!0},permissionModeModifiers:{}}),emits:Ze(["save"],["update:modelValue","update:modelId","update:reasoningEffort","update:reasoningSummary","update:serviceTier","update:approvalMode","update:granular","update:reviewer","update:permissionMode"]),setup(e,{emit:a}){const t=e,o=a,n=ye(e,"modelValue"),s=ye(e,"modelId"),c=ye(e,"reasoningEffort"),f=ye(e,"reasoningSummary"),m=ye(e,"serviceTier"),l=ye(e,"approvalMode"),v=ye(e,"granular"),r=ye(e,"reviewer"),k=ye(e,"permissionMode"),A=ke(),O=dt("modelSelectHost");let y=null;const w=U(null),d=I(()=>s.value?t.models.find(B=>B.id===s.value)??null:t.models.find(B=>B.isDefault)??t.models[0]??null),p=I(()=>[{title:A.t("$vuetify.chatroom.agents.defaultModel"),value:null,subtitle:""},...t.models.map(B=>({title:B.displayName,value:B.id,subtitle:B.description}))]),F=I(()=>{const B=w.value;return{contentClass:"agent-model-select-menu",...B===null?{}:{width:B,minWidth:B,maxWidth:B}}}),ee=I(()=>{const B=d.value?.reasoningEfforts.find(b=>b.id===d.value?.defaultReasoningEffort);return[{title:R(d.value?.defaultReasoningEffort),value:null,subtitle:B?.description??""},...(d.value?.reasoningEfforts??[]).map(b=>({title:b.id,value:b.id,subtitle:b.description}))]}),z=I({get(){const B=ee.value.findIndex(b=>b.value===c.value);return B<0?0:B},set(B){c.value=ee.value[Math.round(B)]?.value??null}}),x=I(()=>ee.value[z.value]??null);ie(d,B=>{B?.reasoningEfforts?.some(b=>b.id===c.value)||(c.value=null),B?.reasoningSummaries?.includes(f.value??"none")||(f.value=null),B?.serviceTiers?.some(b=>b.id===m.value)||(m.value=null)}),ie(n,async B=>{if(!B){$(),w.value=null;return}await He(),T()}),Vt($);function R(B){return jt(A.t("$vuetify.chatroom.agents.defaultModel"),B)}function T(){$();const B=O.value;if(!B){w.value=null;return}const b=()=>{const C=B.clientWidth;w.value=C>0?C:null};b(),y=new ResizeObserver(b),y.observe(B)}function $(){y?.disconnect(),y=null}return(B,b)=>(i(),q(ht,{modelValue:n.value,"onUpdate:modelValue":b[10]||(b[10]=C=>n.value=C),persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiTuneVariant"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.agents.modelSettings")),1)]),_:1})]),_:1}),g(Tt,{class:"agent-model-settings-dialog"},{default:D(()=>[h("div",{ref_key:"modelSelectHost",ref:O,class:"agent-model-select-host"},[g(Ge,{modelValue:s.value,"onUpdate:modelValue":b[0]||(b[0]=C=>s.value=C),items:p.value,"menu-props":F.value,label:u(A).t("$vuetify.chatroom.agents.model"),density:"compact",variant:"outlined","hide-details":"",disabled:e.busy},{item:D(({props:C,item:E})=>[g(Me,ue(C,{subtitle:E.subtitle}),null,16,["subtitle"])]),_:1},8,["modelValue","items","menu-props","label","disabled"])],512),d.value?.reasoningEfforts?.length?(i(),S("div",qs,[h("div",js,[h("span",null,M(u(A).t("$vuetify.chatroom.agents.reasoningEffort")),1),h("strong",null,M(x.value?.title),1)]),g(Ns,{modelValue:z.value,"onUpdate:modelValue":b[1]||(b[1]=C=>z.value=C),min:0,max:Math.max(0,ee.value.length-1),step:1,color:"primary","show-ticks":"always","aria-label":u(A).t("$vuetify.chatroom.agents.reasoningEffort"),"hide-details":"",disabled:e.busy},null,8,["modelValue","max","aria-label","disabled"]),x.value?.subtitle?(i(),S("div",Ks,M(x.value.subtitle),1)):_("",!0)])):_("",!0),g(ga,{"reasoning-summary":f.value,"onUpdate:reasoningSummary":b[2]||(b[2]=C=>f.value=C),"service-tier":m.value,"onUpdate:serviceTier":b[3]||(b[3]=C=>m.value=C),"approval-mode":l.value,"onUpdate:approvalMode":b[4]||(b[4]=C=>l.value=C),granular:v.value,"onUpdate:granular":b[5]||(b[5]=C=>v.value=C),reviewer:r.value,"onUpdate:reviewer":b[6]||(b[6]=C=>r.value=C),"permission-mode":k.value,"onUpdate:permissionMode":b[7]||(b[7]=C=>k.value=C),model:d.value,"approval-setting":e.approvalSetting,"reviewer-setting":e.reviewerSetting,"permission-setting":e.permissionSetting,disabled:e.busy,outlined:""},null,8,["reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","model","approval-setting","reviewer-setting","permission-setting","disabled"])]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:b[8]||(b[8]=C=>n.value=!1)},{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"primary",variant:"tonal",loading:e.busy,onClick:b[9]||(b[9]=C=>o("save"))},{default:D(()=>[le(M(u(A).t("$vuetify.chatroom.common.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Hs=Ie(Ws,[["__scopeId","data-v-6560ca7a"]]),Gs={key:2,class:"agent-review-error",role:"alert"},Js=Ce({__name:"AgentReviewDialog",props:Ze({types:{},fieldLabel:{},busy:{type:Boolean},error:{},canStart:{type:Boolean}},{modelValue:{type:Boolean,required:!0},modelModifiers:{},reviewType:{required:!0},reviewTypeModifiers:{},reviewValue:{required:!0},reviewValueModifiers:{},reviewTitle:{required:!0},reviewTitleModifiers:{}}),emits:Ze(["start"],["update:modelValue","update:reviewType","update:reviewValue","update:reviewTitle"]),setup(e){const a=ye(e,"modelValue"),t=ye(e,"reviewType"),o=ye(e,"reviewValue"),n=ye(e,"reviewTitle"),s=ke();return(c,f)=>(i(),q(ht,{modelValue:a.value,"onUpdate:modelValue":f[6]||(f[6]=m=>a.value=m),persistent:e.busy},{default:D(()=>[g(Ye,null,{default:D(()=>[g(Mt,{"prepend-icon":"$mdiFileCompare"},{default:D(()=>[g(It,null,{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.agents.review")),1)]),_:1})]),_:1}),g(Tt,{class:"agent-review-fields"},{default:D(()=>[g(Ge,{modelValue:t.value,"onUpdate:modelValue":f[0]||(f[0]=m=>t.value=m),items:e.types,label:u(s).t("$vuetify.chatroom.agents.reviewTarget"),disabled:e.busy,density:"compact","hide-details":""},null,8,["modelValue","items","label","disabled"]),t.value!=="uncommittedChanges"?(i(),q(ut,{key:0,modelValue:o.value,"onUpdate:modelValue":f[1]||(f[1]=m=>o.value=m),label:e.fieldLabel,disabled:e.busy,density:"compact","hide-details":"",onKeydown:f[2]||(f[2]=ot(lt(m=>c.$emit("start"),["prevent"]),["enter"]))},null,8,["modelValue","label","disabled"])):_("",!0),t.value==="commit"?(i(),q(ut,{key:1,modelValue:n.value,"onUpdate:modelValue":f[3]||(f[3]=m=>n.value=m),label:u(s).t("$vuetify.chatroom.agents.reviewCommitTitle"),disabled:e.busy,density:"compact","hide-details":""},null,8,["modelValue","label","disabled"])):_("",!0),e.error?(i(),S("div",Gs,M(e.error),1)):_("",!0)]),_:1}),g(At,null,{default:D(()=>[g(Ut),g(ce,{variant:"text",disabled:e.busy,onClick:f[4]||(f[4]=m=>a.value=!1)},{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),g(ce,{color:"primary",variant:"tonal",loading:e.busy,disabled:!e.canStart,onClick:f[5]||(f[5]=m=>c.$emit("start"))},{default:D(()=>[le(M(u(s).t("$vuetify.chatroom.agents.startReview")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Qs=Ie(Js,[["__scopeId","data-v-c8b9a40c"]]),Xs={class:"panel-header agent-session-header"},Ys={class:"agent-session-header-info min-w-0"},Zs={class:"panel-title agent-session-provider-title"},ei={class:"agent-session-model-label"},ti={class:"panel-subtitle text-truncate"},ai={key:0,class:"agent-session-token-usage"},ni=["data-status"],li=["data-status","data-attention"],si={class:"agent-session-header-status-text"},ii={class:"agent-session-switch-provider-icon"},oi=Ce({__name:"AgentSessionHeader",props:{session:{},providerName:{},providerIcon:{},modelName:{},statusText:{},usage:{},compact:{type:Boolean},switchTargets:{},switching:{type:Boolean},disabled:{type:Boolean}},emits:["back","switchProvider"],setup(e){const a=ke();return(t,o)=>(i(),S("div",Xs,[e.compact?(i(),q(ce,{key:0,icon:"$mdiArrowLeft",size:"small","aria-label":u(a).t("$vuetify.chatroom.agents.backToSessions"),variant:"text",onClick:o[0]||(o[0]=n=>t.$emit("back"))},null,8,["aria-label"])):_("",!0),h("div",Ys,[h("div",Zs,[g(pt,{icon:e.providerIcon,size:16},null,8,["icon"]),h("span",null,M(e.providerName),1),h("span",ei,"· "+M(e.modelName),1)]),h("div",ti,M(e.session.workspaceRoot),1),e.usage?(i(),S("div",ai,M(e.usage),1)):_("",!0)]),h("div",{class:"agent-session-header-status","data-status":e.session.status},[h("span",{class:"agent-session-status-dot","data-status":e.session.status,"data-attention":e.session.attention?.kind??void 0},null,8,li),h("span",si,M(e.statusText),1)],8,ni),e.switchTargets.length?(i(),q(yt,{key:1,location:"bottom end",offset:"6","content-class":"agent-overlay-menu"},{activator:D(({props:n})=>[g(ce,ue(n,{class:"agent-session-header-switch",size:"small",variant:"text","prepend-icon":"$mdiSwapHorizontal","append-icon":"$mdiChevronDown",loading:e.switching,disabled:e.disabled,"aria-label":u(a).t("$vuetify.chatroom.agents.switchAgent")}),{default:D(()=>[le(M(u(a).t("$vuetify.chatroom.agents.switchAgent")),1)]),_:1},16,["loading","disabled","aria-label"])]),default:D(()=>[g(bt,{class:"agent-session-switch-menu",density:"compact"},{default:D(()=>[(i(!0),S(oe,null,Se(e.switchTargets,n=>(i(),q(Me,{key:n.id,title:n.displayName,onClick:s=>t.$emit("switchProvider",n.id)},{prepend:D(()=>[h("span",ii,[g(pt,{icon:n.icon,size:15},null,8,["icon"])])]),_:2},1032,["title","onClick"]))),128))]),_:1})]),_:1})):_("",!0)]))}}),ri=Ie(oi,[["__scopeId","data-v-1cae8321"]]),ui={class:"agent-create"},di=Ce({__name:"AgentCreateSessionPanel",props:{providers:{},providerModels:{},workspaces:{}},emits:["created"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(null),c=U(""),f=U(null),m=U(null),l=U(null),v=U(null),r=U(null),k=U(Ct()),A=U(null),O=U(null),y=U(!1),w=U(""),d=I(()=>t.providers.map(b=>({title:gt(t.providers,b.id),value:b.id,disabled:!b.installed||!b.authenticated}))),p=I(()=>[{title:n.t("$vuetify.chatroom.agents.defaultModel"),value:null,subtitle:""},...(t.providerModels[c.value]??[]).map(b=>({title:b.displayName,value:b.id,subtitle:b.description}))]),F=I(()=>da(t.providerModels,c.value,f.value)),ee=I(()=>Xe(t.providers,c.value,"approvalPolicy")),z=I(()=>Xe(t.providers,c.value,"approvalsReviewer")),x=I(()=>Xe(t.providers,c.value,"permissionMode")),R=I(()=>{const b=t.providers.find(C=>C.id===c.value);return!!(s.value&&b?.installed&&b.authenticated&&!y.value)});ie(()=>t.workspaces,b=>{(!s.value||!b.some(C=>C.root===s.value))&&(s.value=b[0]?.root??null)},{immediate:!0}),ie(()=>t.providers,b=>{const C=b.find(E=>E.id===c.value);C?.installed&&C.authenticated||(c.value=b.find(E=>E.installed&&E.authenticated)?.id??b[0]?.id??"")},{immediate:!0}),ie(c,()=>{f.value=null,m.value=null,l.value=null,v.value=null,$()}),ie(F,b=>{b?.reasoningEfforts?.some(C=>C.id===m.value)||(m.value=null),b?.reasoningSummaries?.includes(l.value??"none")||(l.value=null),b?.serviceTiers?.some(C=>C.id===v.value)||(v.value=null)});async function T(){if(!(!s.value||!R.value)){y.value=!0,w.value="";try{const b=await Ue("/agents/sessions",{method:"POST",body:JSON.stringify({workspaceRoot:s.value,provider:c.value,model:f.value,reasoningEffort:m.value,reasoningSummary:l.value,serviceTier:v.value,...ua(t.providers,c.value,r.value,k.value,A.value,O.value)}),timeoutMs:3e4});o("created",b)}catch(b){w.value=qe(b)}finally{y.value=!1}}}function $(){r.value=Lt(null,ee.value?.defaultValue??null),k.value=Ct(),A.value=Nt(null,z.value?.defaultValue??null),O.value=qt(null,x.value?.defaultValue??null)}function B(b){const C=b?.reasoningEfforts.find(E=>E.id===b.defaultReasoningEffort);return[{title:jt(n.t("$vuetify.chatroom.agents.defaultModel"),b?.defaultReasoningEffort),value:null,subtitle:C?.description??""},...(b?.reasoningEfforts??[]).map(E=>({title:E.id,value:E.id,subtitle:E.description}))]}return(b,C)=>(i(),S("div",ui,[g(Ge,{modelValue:s.value,"onUpdate:modelValue":C[0]||(C[0]=E=>s.value=E),items:e.workspaces,"item-title":"name","item-value":"root",label:u(n).t("$vuetify.chatroom.agents.workspace"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),g(Ge,{modelValue:c.value,"onUpdate:modelValue":C[1]||(C[1]=E=>c.value=E),items:d.value,label:u(n).t("$vuetify.chatroom.agents.provider"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),g(Ge,{modelValue:f.value,"onUpdate:modelValue":C[2]||(C[2]=E=>f.value=E),items:p.value,label:u(n).t("$vuetify.chatroom.agents.model"),density:"compact","hide-details":""},null,8,["modelValue","items","label"]),F.value?.reasoningEfforts?.length?(i(),q(Ge,{key:0,modelValue:m.value,"onUpdate:modelValue":C[3]||(C[3]=E=>m.value=E),items:B(F.value),label:u(n).t("$vuetify.chatroom.agents.reasoningEffort"),density:"compact","hide-details":""},{item:D(({props:E,item:J})=>[g(Me,ue(E,{subtitle:J.subtitle}),null,16,["subtitle"])]),_:1},8,["modelValue","items","label"])):_("",!0),g(ga,{"reasoning-summary":l.value,"onUpdate:reasoningSummary":C[4]||(C[4]=E=>l.value=E),"service-tier":v.value,"onUpdate:serviceTier":C[5]||(C[5]=E=>v.value=E),"approval-mode":r.value,"onUpdate:approvalMode":C[6]||(C[6]=E=>r.value=E),granular:k.value,"onUpdate:granular":C[7]||(C[7]=E=>k.value=E),reviewer:A.value,"onUpdate:reviewer":C[8]||(C[8]=E=>A.value=E),"permission-mode":O.value,"onUpdate:permissionMode":C[9]||(C[9]=E=>O.value=E),model:F.value,"approval-setting":ee.value,"reviewer-setting":z.value,"permission-setting":x.value,disabled:y.value},null,8,["reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","model","approval-setting","reviewer-setting","permission-setting","disabled"]),w.value?(i(),q(ta,{key:1,type:"error",variant:"tonal",density:"compact"},{default:D(()=>[le(M(w.value),1)]),_:1})):_("",!0),g(ce,{color:"primary",variant:"tonal",loading:y.value,disabled:!R.value,onClick:T},{default:D(()=>[le(M(u(n).t("$vuetify.chatroom.agents.create")),1)]),_:1},8,["loading","disabled"])]))}}),ci=Ie(di,[["__scopeId","data-v-8cdd509d"]]),vi={class:"agent-provider-strip"},mi=["data-state","title","aria-label","aria-expanded","data-expanded","onClick","onKeydown"],fi={class:"agent-provider-pill-name"},gi={key:0,class:"agent-provider-quota"},pi={class:"agent-provider-quota-header"},yi={key:0},hi={key:0,class:"agent-provider-quota-unavailable"},bi={key:1,class:"agent-provider-quota-unavailable"},wi=["title"],ki={class:"agent-provider-quota-label"},$i={class:"agent-provider-quota-track","aria-hidden":"true"},Si={class:"agent-provider-quota-value"},Ci={class:"agent-provider-quota-reset"},xi={key:0,class:"agent-provider-quota-extra"},Vi=Ce({__name:"AgentProviderStatus",props:{providers:{}},setup(e){const a=ke(),t=U({}),o=U(null),n=U(!1),s=mt();let c=null;const f=I(()=>o.value?t.value[o.value]?.accountUsage??null:null);ra(()=>{c=setInterval(()=>{o.value&&l(o.value)},6e4)}),Vt(()=>{c&&clearInterval(c)});async function m(y){if(o.value===y){s.invalidate(),o.value=null,n.value=!1;return}o.value=y,await l(y)}async function l(y){const w=s.begin();n.value=!0;try{const d=await Ue(`/agents/providers/${y}/details`,{timeoutMs:15e3,signal:w.signal});if(!s.isCurrent(w))return;t.value={...t.value,[y]:d}}catch{}finally{s.isCurrent(w)&&(n.value=!1)}}function v(y){if(!y.installed)return a.t("$vuetify.chatroom.agents.providerUnavailable");if(!y.authenticated)return a.t("$vuetify.chatroom.agents.providerNotAuthenticated");const w=t.value[y.id];return[a.t("$vuetify.chatroom.agents.providerAvailable"),w?.configRequirements!=null?a.t("$vuetify.chatroom.agents.managedRequirementsAvailable"):null,w?.rateLimits!=null?a.t("$vuetify.chatroom.agents.rateLimitsAvailable"):null,y.capabilities?.webSearch?a.t("$vuetify.chatroom.agents.webSearch"):null,y.capabilities?.imageGeneration?a.t("$vuetify.chatroom.agents.imageGeneration"):null,y.version?y.displayName+" "+y.version:null].filter(Boolean).join(" · ")}function r(y,w){if(w)return w;const d={five_hour:"$vuetify.chatroom.agents.quotaFiveHour",seven_day:"$vuetify.chatroom.agents.quotaSevenDay",seven_day_oauth_apps:"$vuetify.chatroom.agents.quotaOauthApps",seven_day_opus:"$vuetify.chatroom.agents.quotaOpus",seven_day_sonnet:"$vuetify.chatroom.agents.quotaSonnet"};return d[y]?a.t(d[y]):y}function k(y){return y===null?"—":a.t("$vuetify.chatroom.agents.quotaPercent",String(Math.round(y)))}function A(y){return y===null?"0%":Math.min(100,Math.max(0,y))+"%"}function O(y){if(!y)return"";const w=new Date(y).getTime()-Date.now();if(!Number.isFinite(w)||w<=0)return a.t("$vuetify.chatroom.agents.quotaResetSoon");const d=Math.ceil(w/6e4);let p;if(d<60)p=d+"m";else{const F=Math.floor(d/60),ee=d%60;p=F<48?F+"h"+(ee?" "+ee+"m":""):Math.ceil(F/24)+"d"}return a.t("$vuetify.chatroom.agents.quotaResetsIn",p)}return(y,w)=>(i(),S(oe,null,[h("div",vi,[(i(!0),S(oe,null,Se(e.providers,d=>(i(),S("div",{key:d.id,class:"agent-provider-pill","data-state":d.installed?d.authenticated?"ready":"warning":"unavailable",title:v(d),"aria-label":v(d),"aria-expanded":o.value===d.id,"data-expanded":o.value===d.id,role:"button",tabindex:"0",onClick:p=>m(d.id),onKeydown:[ot(lt(p=>m(d.id),["prevent"]),["enter"]),ot(lt(p=>m(d.id),["prevent"]),["space"])]},[g(pt,{icon:d.icon,size:14},null,8,["icon"]),h("span",fi,M(u(gt)(e.providers,d.id)),1),w[0]||(w[0]=h("span",{class:"agent-provider-pill-dot"},null,-1))],40,mi))),128))]),o.value?(i(),S("div",gi,[h("div",pi,[h("span",null,M(u(gt)(e.providers,o.value)),1),f.value?.subscriptionType?(i(),S("span",yi,M(f.value.subscriptionType),1)):_("",!0)]),n.value?(i(),S("div",hi,M(u(a).t("$vuetify.chatroom.agents.loading")),1)):f.value?.windows.length??0?(i(),S(oe,{key:2},[(i(!0),S(oe,null,Se(f.value?.windows??[],d=>(i(),S("div",{key:d.id,class:"agent-provider-quota-row",title:O(d.resetsAt)},[h("span",ki,M(r(d.id,d.label)),1),h("div",$i,[h("span",{class:"agent-provider-quota-fill",style:tt({width:A(d.utilization)})},null,4)]),h("span",Si,M(k(d.utilization)),1),h("span",Ci,M(O(d.resetsAt)),1)],8,wi))),128)),f.value?.extraUsage?.enabled?(i(),S("div",xi,[h("span",null,M(u(a).t("$vuetify.chatroom.agents.quotaExtraUsage")),1),h("span",null,M(k(f.value.extraUsage.utilization)),1)])):_("",!0)],64)):(i(),S("div",bi,M(u(a).t("$vuetify.chatroom.agents.quotaUnavailable")),1))])):_("",!0)],64))}}),Mi=Ie(Vi,[["__scopeId","data-v-5b1c74e5"]]),Ii={class:"panel-header"},Ti={class:"panel-title"},Ai={key:0,class:"agent-error",role:"alert"},Ri={class:"agent-session-list"},Pi=["data-status","data-attention","title"],Fi={key:1,class:"empty-inline"},Ui=Ce({__name:"AgentSidebar",props:{providers:{},providerModels:{},workspaces:{},sessions:{},selectedId:{},loading:{type:Boolean},error:{}},emits:["update:selectedId","created"],setup(e,{emit:a}){const t=e,o=a,n=ke(),s=U(!1);function c(l){s.value=!1,o("created",l)}function f(l,v){return ma(t.providerModels,l,v,n.t("$vuetify.chatroom.agents.defaultModel"))}function m(l){if(l.status==="waiting_input"){if(l.attention?.kind==="approval")return n.t("$vuetify.chatroom.agents.waitingApproval");if(l.attention?.kind==="input")return n.t("$vuetify.chatroom.agents.waitingAnswer")}return n.t("$vuetify.chatroom.agents.statuses."+l.status)}return(l,v)=>(i(),q(Ye,{class:"agent-sidebar panel-card"},{default:D(()=>[h("div",Ii,[h("div",Ti,M(u(n).t("$vuetify.chatroom.agents.title")),1),g(ce,{icon:"$mdiPlus",size:"small",variant:"text","aria-label":u(n).t("$vuetify.chatroom.agents.newSession"),onClick:v[0]||(v[0]=r=>s.value=!s.value)},null,8,["aria-label"])]),g(rt),g(Qa,null,{default:D(()=>[s.value?(i(),q(ci,{key:0,providers:e.providers,"provider-models":e.providerModels,workspaces:e.workspaces,onCreated:c},null,8,["providers","provider-models","workspaces"])):_("",!0)]),_:1}),e.error?(i(),S("div",Ai,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(e.error),1)])):_("",!0),h("div",Ri,[e.sessions.length?(i(),q(bt,{key:0,nav:"",density:"compact"},{default:D(()=>[(i(!0),S(oe,null,Se(e.sessions,r=>(i(),q(Me,{key:r.id,active:e.selectedId===r.id,"data-agent-session-id":r.id,rounded:"lg",onClick:k=>o("update:selectedId",r.id)},{prepend:D(()=>[g(pt,{class:"agent-session-provider-icon",icon:u(va)(e.providers,r.provider),size:15},null,8,["icon"])]),append:D(()=>[h("span",{class:"agent-status-dot","data-status":r.status,"data-attention":r.attention?.kind??void 0,title:m(r)},null,8,Pi)]),default:D(()=>[g(Xa,null,{default:D(()=>[le(M(u(gt)(e.providers,r.provider)),1)]),_:2},1024),g(Ya,null,{default:D(()=>[le(M(u($t)(r.workspaceRoot))+" ",1),r.model?(i(),S(oe,{key:0},[le(" · "+M(f(r.provider,r.model)),1)],64)):_("",!0)]),_:2},1024)]),_:2},1032,["active","data-agent-session-id","onClick"]))),128))]),_:1})):(i(),S("div",Fi,M(e.loading?u(n).t("$vuetify.chatroom.agents.loading"):u(n).t("$vuetify.chatroom.agents.noSessions")),1))]),g(rt),g(Mi,{providers:e.providers},null,8,["providers"])]),_:1}))}}),Ei=Ie(Ui,[["__scopeId","data-v-e6bcf543"]]),zi={key:0,class:"agent-error agent-main-error",role:"alert"},Di=["aria-label"],Oi={class:"empty-panel"},_i=Ce({__name:"AgentView",props:{revision:{},changes:{}},setup(e){const a=e,t=ke(),{mdAndDown:o}=Za(),n=dt("layout"),s=U([]),c=U([]),f=U({}),m=U(null),l=U(!1),v=U(!1),r=U(""),{sessions:k,history:A,refresh:O,reloadSelected:y,reconcileSession:w,reconcileInteraction:d,removeSession:p}=gn(m,{onError:Z=>{r.value=qe(Z)}}),F=I(()=>k.value.find(Z=>Z.id===m.value)??null),ee=I(()=>(A.value?.turns.at(-1)?.items??[]).filter(W=>W.type==="interaction"&&W.status==="waiting")),{modelSettingsOpen:z,settingsModel:x,settingsReasoningEffort:R,settingsReasoningSummary:T,settingsServiceTier:$,settingsApprovalPolicyMode:B,settingsGranularApproval:b,settingsApprovalsReviewer:C,settingsPermissionMode:E,reviewOpen:J,reviewType:de,reviewValue:Y,reviewTitle:$e,reviewStarting:fe,reviewError:be,modelSwitching:xe,switchingProvider:se,interrupting:Te,deleteDialog:we,deletingSession:je,selectedApprovalPolicySetting:ze,selectedApprovalsReviewerSetting:L,selectedPermissionModeSetting:H,selectedProviderModels:Ve,selectedModelMetadata:De,selectedProviderStatus:Ae,reviewTypes:he,reviewFieldLabel:Be,canStartReview:Le,switchTargets:Ke,loadModels:P,startReview:Q,interrupt:ae,switchProvider:ge,openDeleteDialog:me,deleteSession:Ne,openModelSettings:N,saveModelSettings:G}=yn({selectedId:m,selected:F,sessions:k,providers:s,providerModels:f,composerBusy:v,error:r,refresh:O,reconcileSession:w,removeSession:p}),{respondingInteractions:te,respondApproval:ve,submitInput:V,interactionAnswers:j,setInteractionAnswer:ne}=pn({selectedId:m,selected:F,error:r,reconcileInteraction:d}),re=I(()=>F.value?F.value.status!=="waiting_input"?t.t("$vuetify.chatroom.agents.statuses."+F.value.status):F.value.attention?.kind==="approval"?t.t("$vuetify.chatroom.agents.waitingApproval"):F.value.attention?.kind==="input"?t.t("$vuetify.chatroom.agents.waitingAnswer"):t.t("$vuetify.chatroom.agents.statuses.waiting_input"):""),pe=I(()=>{const Z=F.value?.tokenUsage;return Z?at(Z):""}),X=I(()=>Object.fromEntries(s.value.map(Z=>[Z.id,Z.displayName]))),Oe=I(()=>Object.fromEntries(s.value.map(Z=>[Z.id,Z.icon])));ra(()=>{st()}),ie(()=>a.revision,()=>{O(a.changes)}),ie(m,()=>{v.value=!1},{flush:"sync"}),ie(m,(Z,W)=>{!o.value||!Z||Z===W||He(()=>{n.value?.querySelector(".agent-main")?.focus({preventScroll:!0})})},{flush:"post"});async function st(){l.value=!0,r.value="";try{const[Z,,W]=await Promise.all([Ue("/agents/providers",{timeoutMs:15e3}),O(null),Ue("/workspaces")]);s.value=Z,c.value=W,!o.value&&!m.value&&k.value[0]&&(m.value=k.value[0].id),await Promise.all(Z.filter(K=>K.installed&&K.authenticated).map(K=>P(K.id)))}catch(Z){r.value=qe(Z)}finally{l.value=!1}}function Qe(Z){w(Z),m.value=Z.id}function at(Z){const W=ha=>new Intl.NumberFormat(en(t.current.value),{notation:"compact",maximumFractionDigits:1}).format(ha),K=t.t("$vuetify.chatroom.agents.tokenUsage",W(Z.total.totalTokens)),We=Z.modelContextWindow;if(!We||We<=0)return K;const kt=Z.last.totalTokens;return K+" · "+t.t("$vuetify.chatroom.agents.contextUsage",W(kt),W(We),String(Math.round(kt/We*100)))}function et(Z,W){return ma(f.value,Z,W,t.t("$vuetify.chatroom.agents.defaultModel"))}function Fe(){const Z=m.value;m.value=null,A.value=null,!(!o.value||!Z)&&He(()=>{n.value?.querySelector(`[data-agent-session-id="${CSS.escape(Z)}"]`)?.focus({preventScroll:!0})})}function pa(Z){return gt(s.value,Z)}function ya(Z){return va(s.value,Z)}return(Z,W)=>(i(),S("div",{ref_key:"layout",ref:n,class:"agent-layout"},[!u(o)||!F.value?(i(),q(Ei,{key:0,"selected-id":m.value,"onUpdate:selectedId":W[0]||(W[0]=K=>m.value=K),providers:s.value,"provider-models":f.value,workspaces:c.value,sessions:u(k),loading:l.value,error:r.value,onCreated:Qe},null,8,["selected-id","providers","provider-models","workspaces","sessions","loading","error"])):_("",!0),F.value?(i(),q(Ye,{key:1,class:"agent-main panel-card",tabindex:"-1"},{default:D(()=>[g(ri,{session:F.value,"provider-name":pa(F.value.provider),"provider-icon":ya(F.value.provider),"model-name":et(F.value.provider,F.value.model),"status-text":re.value,usage:pe.value,compact:u(o),"switch-targets":u(Ke),switching:u(se),disabled:F.value.status!=="idle"||u(xe),onBack:Fe,onSwitchProvider:u(ge)},null,8,["session","provider-name","provider-icon","model-name","status-text","usage","compact","switch-targets","switching","disabled","onSwitchProvider"]),g(rt),r.value&&u(o)?(i(),S("div",zi,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(r.value),1)])):_("",!0),g(Is,{history:u(A),"provider-names":X.value,"provider-icons":Oe.value},null,8,["history","provider-names","provider-icons"]),ee.value.length?(i(),S("div",{key:1,class:"agent-pending-interactions",role:"region","aria-label":re.value},[(i(!0),S(oe,null,Se(ee.value,K=>(i(),q(fa,{key:"pending:"+K.id,item:K,answers:u(j)(K),responding:u(te).has(K.id),pinned:"",onApprove:We=>u(ve)(K,We),onSubmit:We=>u(V)(K),onUpdateAnswer:(We,kt)=>u(ne)(K,We,kt)},null,8,["item","answers","responding","onApprove","onSubmit","onUpdateAnswer"]))),128))],8,Di)):_("",!0),g(rt),(i(),q(Nn,{key:F.value.id,session:F.value,model:u(De),"steering-supported":!!u(Ae)?.features.steering,disabled:u(fe)||u(xe)||u(se),onError:W[2]||(W[2]=K=>r.value=K),onBusy:W[3]||(W[3]=K=>v.value=K)},{controls:D(({busy:K})=>[g(yt,{location:"top end",offset:"8","content-class":"agent-overlay-menu"},{activator:D(({props:We})=>[g(ce,ue(We,{icon:"$mdiDotsHorizontal",size:"small",variant:"text",class:"agent-session-controls-button",color:F.value.status==="error"?"error":F.value.status==="idle"?void 0:"warning","aria-label":u(t).t("$vuetify.chatroom.agents.sessionControls"),title:u(t).t("$vuetify.chatroom.agents.sessionControls")}),null,16,["color","aria-label","title"])]),default:D(()=>[g(bt,{class:"agent-session-controls-menu",density:"compact"},{default:D(()=>[g(Me,{title:u(t).t("$vuetify.chatroom.agents.model"),subtitle:et(F.value.provider,F.value.model),"prepend-icon":"$mdiTuneVariant",disabled:F.value.status!=="idle"||u(xe)||u(se),onClick:u(N)},null,8,["title","subtitle","disabled","onClick"]),F.value.status==="running"||F.value.status==="waiting_input"?(i(),q(Me,{key:0,title:u(t).t("$vuetify.chatroom.agents.stop"),"prepend-icon":"$mdiStop","base-color":"warning",disabled:u(Te),onClick:u(ae)},null,8,["title","disabled","onClick"])):_("",!0),g(rt),F.value.status==="idle"&&u(Ae)?.features.nativeReview?(i(),q(Me,{key:1,title:u(t).t("$vuetify.chatroom.agents.review"),"prepend-icon":"$mdiFileCompare",disabled:K||u(xe)||u(se)||u(fe),onClick:W[1]||(W[1]=We=>{be.value="",J.value=!0})},null,8,["title","disabled"])):_("",!0),g(Me,{title:u(t).t("$vuetify.chatroom.agents.refresh"),"prepend-icon":"$mdiRefresh",onClick:u(y)},null,8,["title","onClick"]),g(Me,{title:u(t).t("$vuetify.chatroom.agents.delete"),"prepend-icon":"$mdiDeleteOutline",onClick:u(me)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]),_:1},8,["session","model","steering-supported","disabled"]))]),_:1})):u(o)?_("",!0):(i(),q(Ye,{key:2,class:"agent-main panel-card"},{default:D(()=>[h("div",Oi,M(u(t).t("$vuetify.chatroom.agents.selectSession")),1)]),_:1})),g(Hs,{modelValue:u(z),"onUpdate:modelValue":W[4]||(W[4]=K=>_e(z)?z.value=K:null),"model-id":u(x),"onUpdate:modelId":W[5]||(W[5]=K=>_e(x)?x.value=K:null),"reasoning-effort":u(R),"onUpdate:reasoningEffort":W[6]||(W[6]=K=>_e(R)?R.value=K:null),"reasoning-summary":u(T),"onUpdate:reasoningSummary":W[7]||(W[7]=K=>_e(T)?T.value=K:null),"service-tier":u($),"onUpdate:serviceTier":W[8]||(W[8]=K=>_e($)?$.value=K:null),"approval-mode":u(B),"onUpdate:approvalMode":W[9]||(W[9]=K=>_e(B)?B.value=K:null),granular:u(b),"onUpdate:granular":W[10]||(W[10]=K=>_e(b)?b.value=K:null),reviewer:u(C),"onUpdate:reviewer":W[11]||(W[11]=K=>_e(C)?C.value=K:null),"permission-mode":u(E),"onUpdate:permissionMode":W[12]||(W[12]=K=>_e(E)?E.value=K:null),models:u(Ve),"approval-setting":u(ze),"reviewer-setting":u(L),"permission-setting":u(H),busy:u(xe),onSave:u(G)},null,8,["modelValue","model-id","reasoning-effort","reasoning-summary","service-tier","approval-mode","granular","reviewer","permission-mode","models","approval-setting","reviewer-setting","permission-setting","busy","onSave"]),g(Qs,{modelValue:u(J),"onUpdate:modelValue":W[13]||(W[13]=K=>_e(J)?J.value=K:null),"review-type":u(de),"onUpdate:reviewType":W[14]||(W[14]=K=>_e(de)?de.value=K:null),"review-value":u(Y),"onUpdate:reviewValue":W[15]||(W[15]=K=>_e(Y)?Y.value=K:null),"review-title":u($e),"onUpdate:reviewTitle":W[16]||(W[16]=K=>_e($e)?$e.value=K:null),types:u(he),"field-label":u(Be),busy:u(fe),error:u(be),"can-start":u(Le),onStart:u(Q)},null,8,["modelValue","review-type","review-value","review-title","types","field-label","busy","error","can-start","onStart"]),g(qn,{modelValue:u(we),"onUpdate:modelValue":W[17]||(W[17]=K=>_e(we)?we.value=K:null),busy:u(je),onConfirm:u(Ne)},null,8,["modelValue","busy","onConfirm"])],512))}}),Ji=Ie(_i,[["__scopeId","data-v-3189043d"]]);export{Ji as default};