@zhanguym/chatroom 1.0.0 → 1.1.0-beta.1

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 (165) hide show
  1. package/dist/app/application.d.ts +0 -1
  2. package/dist/app/application.js +8 -7
  3. package/dist/app/event-bus.d.ts +13 -10
  4. package/dist/app/external-access-registry.d.ts +1 -0
  5. package/dist/app/external-access-registry.js +3 -0
  6. package/dist/app/git-access.d.ts +50 -0
  7. package/dist/app/git-access.js +2 -0
  8. package/dist/app/service-registry.d.ts +11 -0
  9. package/dist/app/service-registry.js +17 -0
  10. package/dist/app/workspace-access.d.ts +24 -0
  11. package/dist/app/workspace-access.js +2 -0
  12. package/dist/auth/ingress-policy.d.ts +2 -0
  13. package/dist/auth/ingress-policy.js +14 -2
  14. package/dist/auth/passkey-service.js +1 -1
  15. package/dist/cli/run-cli.js +1 -1
  16. package/dist/core/fs/safe-directory.d.ts +9 -0
  17. package/dist/core/fs/safe-directory.js +129 -0
  18. package/dist/core/operations/repository.d.ts +2 -0
  19. package/dist/core/runtime/line-process.d.ts +19 -0
  20. package/dist/core/runtime/line-process.js +51 -0
  21. package/dist/infrastructure/database/operation-repository.js +8 -2
  22. package/dist/infrastructure/database/schema.d.ts +1 -1
  23. package/dist/infrastructure/database/schema.js +62 -0
  24. package/dist/infrastructure/http/http-server.js +1 -1
  25. package/dist/infrastructure/logging/system-log.js +2 -1
  26. package/dist/native/linux/chatroom-computer-helper +0 -0
  27. package/dist/native/macos/ChatRoomComputerHelper.app/Contents/MacOS/chatroom-computer-helper +0 -0
  28. package/dist/native/windows/chatroom-computer-helper.exe +0 -0
  29. package/dist/operations/operation-log.js +16 -4
  30. package/dist/plugins/agent/async-queue.d.ts +10 -0
  31. package/dist/plugins/agent/async-queue.js +49 -0
  32. package/dist/plugins/agent/mcp.d.ts +3 -0
  33. package/dist/plugins/agent/mcp.js +502 -0
  34. package/dist/plugins/agent/plugin.d.ts +4 -0
  35. package/dist/plugins/agent/plugin.js +35 -0
  36. package/dist/plugins/agent/provider.d.ts +132 -0
  37. package/dist/plugins/agent/providers/codex/mapping.d.ts +56 -0
  38. package/dist/plugins/agent/providers/codex/mapping.js +427 -0
  39. package/dist/plugins/agent/providers/codex/provider.d.ts +84 -0
  40. package/dist/plugins/agent/providers/codex/provider.js +828 -0
  41. package/dist/plugins/agent/providers/codex/rpc.d.ts +40 -0
  42. package/dist/plugins/agent/providers/codex/rpc.js +227 -0
  43. package/dist/plugins/agent/providers/common.d.ts +11 -0
  44. package/dist/plugins/agent/providers/common.js +75 -0
  45. package/dist/plugins/agent/providers/index.d.ts +3 -0
  46. package/dist/plugins/agent/providers/index.js +4 -0
  47. package/dist/plugins/agent/repository.d.ts +21 -0
  48. package/dist/plugins/agent/repository.js +226 -0
  49. package/dist/plugins/agent/runtime-config.d.ts +5 -0
  50. package/dist/plugins/agent/runtime-config.js +60 -0
  51. package/dist/plugins/agent/runtime-files.d.ts +8 -0
  52. package/dist/plugins/agent/runtime-files.js +170 -0
  53. package/dist/plugins/agent/runtime-state.d.ts +17 -0
  54. package/dist/plugins/agent/runtime-state.js +133 -0
  55. package/dist/plugins/agent/runtime.d.ts +60 -0
  56. package/dist/plugins/agent/runtime.js +928 -0
  57. package/dist/plugins/agent/store.d.ts +17 -0
  58. package/dist/plugins/agent/store.js +1 -0
  59. package/dist/plugins/agent/types.d.ts +320 -0
  60. package/dist/plugins/agent/types.js +13 -0
  61. package/dist/plugins/cloud/plugin.d.ts +1 -1
  62. package/dist/plugins/cloud/plugin.js +3 -3
  63. package/dist/plugins/cloud/tunnel-client.js +6 -7
  64. package/dist/plugins/computer/computer-native-backend.js +9 -1
  65. package/dist/plugins/computer/computer-native-host.js +21 -5
  66. package/dist/plugins/computer/computer-schemas.d.ts +7 -7
  67. package/dist/plugins/computer/computer-service.d.ts +3 -0
  68. package/dist/plugins/computer/computer-service.js +33 -1
  69. package/dist/plugins/computer/plugin.d.ts +1 -1
  70. package/dist/plugins/computer/plugin.js +1 -1
  71. package/dist/plugins/computer/types.d.ts +1 -0
  72. package/dist/plugins/git/git-service.d.ts +3 -2
  73. package/dist/plugins/git/git-service.js +37 -1
  74. package/dist/plugins/git/plugin.d.ts +0 -2
  75. package/dist/plugins/git/plugin.js +3 -3
  76. package/dist/plugins/process/plugin.d.ts +1 -1
  77. package/dist/plugins/process/plugin.js +3 -3
  78. package/dist/plugins/process/process-supervisor.d.ts +1 -0
  79. package/dist/plugins/process/process-supervisor.js +15 -4
  80. package/dist/plugins/types.d.ts +1 -11
  81. package/dist/plugins/types.js +1 -17
  82. package/dist/plugins/web/api-types.d.ts +20 -5
  83. package/dist/plugins/web/http/agent-api-router.d.ts +3 -0
  84. package/dist/plugins/web/http/agent-api-router.js +254 -0
  85. package/dist/plugins/web/http/api-router.js +9 -0
  86. package/dist/plugins/web/http/computer-api-router.js +21 -6
  87. package/dist/plugins/web/http/process-api-router.js +3 -0
  88. package/dist/plugins/web/http/workspace-api-router.js +198 -8
  89. package/dist/plugins/web/plugin.d.ts +1 -1
  90. package/dist/plugins/web/plugin.js +5 -4
  91. package/dist/plugins/web/runtime.d.ts +6 -3
  92. package/dist/plugins/web/runtime.js +6 -1
  93. package/dist/plugins/workspace/mcp.d.ts +1 -1
  94. package/dist/plugins/workspace/mcp.js +125 -1
  95. package/dist/plugins/workspace/metadata.d.ts +1 -1
  96. package/dist/plugins/workspace/plugin.d.ts +1 -1
  97. package/dist/plugins/workspace/plugin.js +9 -3
  98. package/dist/plugins/workspace/types.d.ts +1 -18
  99. package/dist/plugins/workspace/workspace-fs.d.ts +19 -3
  100. package/dist/plugins/workspace/workspace-fs.js +112 -120
  101. package/dist/plugins/workspace/workspace-root-policy.d.ts +9 -0
  102. package/dist/plugins/workspace/workspace-root-policy.js +56 -0
  103. package/dist/plugins/workspace/workspace-service.d.ts +13 -6
  104. package/dist/plugins/workspace/workspace-service.js +57 -49
  105. package/dist/web/assets/AgentView-BGLIBoxF.css +1 -0
  106. package/dist/web/assets/AgentView-BwL3S7sb.js +4 -0
  107. package/dist/web/assets/CloudView-DH4sOXJr.js +1 -0
  108. package/dist/web/assets/{CloudView-CHjVbp-5.css → CloudView-DVVvwuWW.css} +1 -1
  109. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-BaC1eGzG.js +3 -0
  110. package/dist/web/assets/ComputerView-BJSjCxFr.js +1 -0
  111. package/dist/web/assets/ComputerView-DWzfSYJ7.css +1 -0
  112. package/dist/web/assets/MarkdownContent-AdAmmDn5.js +16 -0
  113. package/dist/web/assets/MarkdownContent-B_5zTG8c.css +1 -0
  114. package/dist/web/assets/McpToolsView-CPaWUG9h.js +1 -0
  115. package/dist/web/assets/McpToolsView-DjxPbTHj.css +1 -0
  116. package/dist/web/assets/OperationsView-BjTY2lIh.css +1 -0
  117. package/dist/web/assets/OperationsView-D2FtLkHn.js +4 -0
  118. package/dist/web/assets/ProcessesView-BHOsaM2H.js +4 -0
  119. package/dist/web/assets/ProcessesView-Ce6iVwjA.css +1 -0
  120. package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-iW1SYlX_.js +1 -0
  121. package/dist/web/assets/SystemLogsView-By5ijObd.js +1 -0
  122. package/dist/web/assets/SystemLogsView-CofP4Jvi.css +1 -0
  123. package/dist/web/assets/VSelect-CLnwhyWJ.js +1 -0
  124. package/dist/web/assets/VSpacer-dDRRKhUn.js +1 -0
  125. package/dist/web/assets/VSwitch-CGzxwZuj.js +1 -0
  126. package/dist/web/assets/VTabs-7aSwjrKs.js +1 -0
  127. package/dist/web/assets/VTextarea-D1_2FwMe.js +1 -0
  128. package/dist/web/assets/VTextarea-xiMOHEu-.css +1 -0
  129. package/dist/web/assets/WorkspaceDownloadPreview-BjuqUdB9.js +1 -0
  130. package/dist/web/assets/WorkspaceDownloadPreview-DnxhH5Q7.css +1 -0
  131. package/dist/web/assets/WorkspaceMediaPreview-D-igEnka.css +1 -0
  132. package/dist/web/assets/WorkspaceMediaPreview-LwXeVOY2.js +3 -0
  133. package/dist/web/assets/WorkspacesView-ClA6xcjn.css +1 -0
  134. package/dist/web/assets/WorkspacesView-DHl28eWf.js +2 -0
  135. package/dist/web/assets/entity-refresh-queue-wQii8Dl5.js +1 -0
  136. package/dist/web/assets/index-BzRlodie.js +19 -0
  137. package/dist/web/assets/index-CZ-4tJlF.css +1 -0
  138. package/dist/web/assets/{syntax-highlight-B5ArnyrC.js → syntax-highlight-C_fuMcwC.js} +1 -1
  139. package/dist/web/assets/useMasterDetailFocus-BQAutDO9.js +1 -0
  140. package/dist/web/assets/useOperationLabels-C-zgM_ET.js +1 -0
  141. package/dist/web/index.html +2 -2
  142. package/package.json +4 -2
  143. package/dist/plugins/git/types.d.ts +0 -32
  144. package/dist/web/assets/CloudView-CvX0dkgu.js +0 -1
  145. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-B5TxGkUW.js +0 -3
  146. package/dist/web/assets/ComputerView-91Z9Cefw.css +0 -1
  147. package/dist/web/assets/ComputerView-OOyEqWml.js +0 -1
  148. package/dist/web/assets/McpToolsView-BTnolyS6.css +0 -1
  149. package/dist/web/assets/McpToolsView-DjXWTKrZ.js +0 -1
  150. package/dist/web/assets/OperationsView-DqTY51Cr.js +0 -4
  151. package/dist/web/assets/ProcessesView-C13BykIa.js +0 -4
  152. package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-DyOhJmR6.js +0 -1
  153. package/dist/web/assets/SystemLogsView-Ci0u4BTb.js +0 -1
  154. package/dist/web/assets/VSelect-DrRpKyYI.js +0 -1
  155. package/dist/web/assets/VSpacer-C3wAY3F0.js +0 -1
  156. package/dist/web/assets/VSwitch-CxusR4iO.js +0 -1
  157. package/dist/web/assets/VTabs-qBcuuXh3.js +0 -1
  158. package/dist/web/assets/WorkspacesView-BzQ0aH74.css +0 -1
  159. package/dist/web/assets/WorkspacesView-CijIvfsp.js +0 -2
  160. package/dist/web/assets/index-BegKQ3Yd.js +0 -19
  161. package/dist/web/assets/index-CkjqXRSj.css +0 -1
  162. package/dist/web/assets/useOperationLabels-BDjzGDkT.js +0 -1
  163. /package/dist/{plugins/process → core/runtime}/head-tail-buffer.d.ts +0 -0
  164. /package/dist/{plugins/process → core/runtime}/head-tail-buffer.js +0 -0
  165. /package/dist/plugins/{git/types.js → agent/provider.js} +0 -0
@@ -0,0 +1,4 @@
1
+ import{S as mt,T as xt,w as ie,b as Ue,$ as Wt,E as U,e as qe,a as ke,B as I,d as Ce,u as ye,o as i,c as q,a0 as yt,f as D,g,V as Ye,p as h,t as M,l as d,J as ut,s as ta,j as le,r as _,v as S,F as oe,N as Se,k as ce,a1 as ue,A as Ze,a2 as tt,Z as Pe,Q as Ee,a3 as dt,a4 as Vt,K as ot,a5 as lt,a6 as ba,a7 as Re,a8 as He,Y as ft,G as Mt,H as It,I as Tt,L as At,z as ht,a9 as Rt,aa as Pt,ab as wa,ac as aa,ad as ka,ae as zt,af as $a,ag as na,ah as ct,ai as Ht,aj as la,ak as Ft,al as Sa,O as bt,R as Me,am as Ca,n as rt,an as xa,ao as Va,ap as Ma,aq as Ia,ar as Ta,as as sa,at as Gt,au as Je,av as Aa,aw as wt,ax as Ra,ay as Pa,az as Fa,q as Ua,aA as Bt,aB as Dt,aC as Ea,aD as za,aE as Da,aF as Jt,aG as Oa,aH as Xt,aI as ia,aJ as Ot,aK as _a,aL as nt,aM as Qt,aN as Ba,aO as La,aP as Na,aQ as oa,aR as qa,aS as ja,aT as Ka,aU as Wa,aV as Yt,aW as Ha,aX as Ga,_ as ra,aY as Ja,U as Xa,W as Qa,aZ as Ya,a_ as _e,X as Za}from"./index-BzRlodie.js";import{_ as Ie}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as en}from"./VTextarea-D1_2FwMe.js";import{V as Ut}from"./VSpacer-dDRRKhUn.js";import{_ as it,V as tn}from"./CodeViewer.vue_vue_type_script_setup_true_lang-BaC1eGzG.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-CLnwhyWJ.js";import{M as _t}from"./MarkdownContent-AdAmmDn5.js";import{V as vn}from"./VSwitch-CGzxwZuj.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 Qe(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=Qe(e,a,"approvalPolicy"),f=Qe(e,a,"approvalsReviewer"),m=Qe(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 mn(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=mn(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 fn(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 u(){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:u,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 gn(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},u=new Set(y??[]);u.add(k.id),o.set(O.id,u),t.value=new Set(u),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 pn(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(""),u=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?Qe(e.providers.value,e.selected.value.provider,"approvalPolicy"):null),C=I(()=>e.selected.value?Qe(e.providers.value,e.selected.value.provider,"approvalsReviewer"):null),E=I(()=>e.selected.value?Qe(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&&!u.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,u.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 X=z.value;X&&!P.some(ae=>ae.id===X)&&(ee.value=!1,z.value=null)}),xt(()=>{R=!0,$.clear(),B.clear()});async function se(P,X=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]:[]},(X===null||e.selectedId.value===X)&&(e.error.value=qe(me))}}async function Te(){const P=e.selected.value;if(!P||!be.value)return;const X=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(X)&&(r.value=!1)}catch(me){he(X)&&(w.value=qe(me))}finally{he(X)&&(y.value=!1)}}async function we(){const P=e.selected.value;if(!P||F.value)return;const X=Ae(P.id);F.value=!0,e.error.value="";try{await Ue("/agents/sessions/"+encodeURIComponent(P.id)+"/interrupt",{method:"POST"})}catch(ae){he(X)&&(e.error.value=qe(ae))}finally{he(X)&&(F.value=!1)}}async function je(P){const X=e.selected.value;if(!X||P===X.provider||p.value)return;const ae=e.providers.value.find(Ne=>Ne.id===P);if(!ae?.installed||!ae.authenticated)return;const ge=Ae(X.id),me=Be(X.id);p.value=!0,e.error.value="";try{const Ne=await Ue("/agents/sessions/"+encodeURIComponent(X.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,X.id)):Ke(X.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(X){z.value===P&&(x.value=!1,e.error.value=qe(X))}}}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 X=e.selected.value;if(!X||X.status!=="idle"||u.value||p.value)return!1;const ae=Ae(X.id),ge=Be(X.id);u.value=!0,e.error.value="";try{const me=await Ue(`/agents/sessions/${encodeURIComponent(X.id)}/config`,{method:"PUT",body:JSON.stringify(P),timeoutMs:3e4});return Le(ge)?(e.reconcileSession(me),he(ae)):(Ke(X.id),!1)}catch(me){return he(ae)&&(e.error.value=qe(me)),!1}finally{he(ae)&&(u.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 X=(B.get(P)??0)+1;return B.set(P,X),{sessionId:P,generation:X}}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:u,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 yn={class:"agent-file-picker-caption"},hn={class:"agent-file-picker-list"},bn=["data-type","data-selected","aria-expanded","aria-pressed","onClick"],wn={key:1,class:"agent-tree-spacer"},kn={class:"agent-tree-name"},$n={key:2,class:"agent-tree-path"},Sn={key:0,class:"agent-file-picker-empty"},Cn=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":d(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",yn,M(d(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":d(c).t("$vuetify.chatroom.agents.searchFiles"),placeholder:d(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(d(c).t("$vuetify.chatroom.agents.projectFilesTruncated")),1)]),_:1})):_("",!0),h("div",hn,[(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",wn)),h("span",kn,M(v.name),1),s.value.trim()&&v.type==="file"?(i(),S("span",$n,M(v.path),1)):_("",!0)],12,bn))),128)),e.rows.length?_("",!0):(i(),S("div",Sn,M(d(c).t("$vuetify.chatroom.agents.noMatchingFiles")),1))])]),_:1})]),_:1},8,["modelValue"]))}}),xn=Ie(Cn,[["__scopeId","data-v-024d9876"]]);function Vn(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 Mn(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 In(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 Tn={key:0,class:"agent-composer-caption"},An={key:1,class:"agent-inline-error agent-attachment-error",role:"alert"},Rn=["accept"],Pn={key:2,class:"agent-selected-attachments"},Fn={class:"agent-compose-row"},Un={key:0,class:"agent-compose-tools"},En={key:0,class:"agent-mention-popup"},zn=["onMousedown","onClick"],Dn={class:"agent-file-suggestion-name"},On={class:"agent-file-suggestion-path"},_n={class:"agent-compose-actions"},Bn=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(""),u=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(()=>In(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=Vn(ve.paths),k.value=Mn(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={},u.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=X();if(!N){u.value=!1;return}const G=N.selectionStart??s.value.length,ve=s.value.slice(0,G).match(/(?:^|\s)@([^\s"@]*)$/);if(!ve){u.value=!1;return}const V=ve[1]??"";p.value=V,ee.value=G-V.length-1,z.value=G,u.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),u.value=!1,He(()=>{const V=X();if(!V)return;const j=te.length+G.length+1;V.focus(),V.setSelectionRange(j,j)})}function X(){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="",u.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",Tn,M(d(n).t("$vuetify.chatroom.agents.steerHint")),1)):_("",!0),Te.value?(i(),S("div",An,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,Rn),c.value.length?(i(),S("div",Pn,[(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",Fn,[e.session.status!=="waiting_input"?(i(),S("div",Un,[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":d(n).t("$vuetify.chatroom.agents.attachFile"),onClick:Ve},null,8,["loading","disabled","aria-label"]),g(xn,{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"},[u.value&&we.value.length?(i(),S("div",En,[(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",Dn,M(d($t)(te)),1),h("span",On,M(te),1)],40,zn))),128))])):_("",!0),g(en,{modelValue:s.value,"onUpdate:modelValue":G[2]||(G[2]=te=>s.value=te),placeholder:d(n).t(fe.value?"$vuetify.chatroom.agents.steerPlaceholder":"$vuetify.chatroom.agents.messagePlaceholder"),"aria-label":d(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=>u.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",_n,[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":d(n).t(fe.value?"$vuetify.chatroom.agents.steer":"$vuetify.chatroom.agents.send"),onClick:H},null,8,["loading","disabled","aria-label"])):_("",!0)])])],2))}}),Ln=Ie(Bn,[["__scopeId","data-v-c20ba904"]]),Nn=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(d(t).t("$vuetify.chatroom.agents.deleteTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(d(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(d(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(d(t).t("$vuetify.chatroom.agents.delete")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}});function qn(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 jn={class:"agent-artifact-group"},Kn={class:"agent-artifact-group-heading"},Wn=["data-count"],Hn={class:"agent-artifact-media"},Gn=["aria-label","disabled","onClick"],Jn=["src","alt","onLoad","onError"],Xn={key:1,class:"agent-artifact-placeholder agent-artifact-overlay"},Qn={key:2,class:"agent-artifact-placeholder agent-artifact-overlay error"},Yn={key:0,class:"agent-artifact-error-detail"},Zn={class:"agent-artifact-footer"},el=["title"],tl={class:"agent-artifact-preview-header"},al={class:"text-truncate"},nl={class:"agent-artifact-preview-body"},ll=["src","alt"],sl=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 u=`${w.id}:${w.updatedAt}`;return"/api/workspace/file/image?root="+encodeURIComponent(a.workspaceRoot)+"&path="+encodeURIComponent(w.artifact.path)+"&v="+encodeURIComponent(u)+(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 u=f(w);o.value[u]=!0,delete n.value[u]}function k(w){const u=f(w);o.value[u]=!1,n.value[u]=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){if(!l(w))return;const u=document.createElement("a");u.href=m(w),u.download=w.artifact.name,u.click()}return(w,u)=>(i(),S("div",jn,[h("div",Kn,[g(Pe,{icon:"$mdiFileEyeOutline",size:"17"}),h("span",null,M(e.items.length===1?d(t).t("$vuetify.chatroom.agents.generatedImage"):d(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",Hn,[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,Jn))],8,Gn)):_("",!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(d(t).t("$vuetify.chatroom.agents.imageLoading")),1)])):p.status==="failed"||p.status==="interrupted"||v(p)?(i(),S("div",Qn,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"22"}),h("span",null,M(d(t).t("$vuetify.chatroom.agents.imageLoadFailed")),1),v(p)?(i(),S("span",Yn,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(d(t).t("$vuetify.chatroom.agents.retry")),1)]),_:1},8,["onClick"])):_("",!0)])):_("",!0)]),h("div",Zn,[h("span",{class:"agent-artifact-name",title:p.artifact.path},M(p.artifact.name),9,el),g(ce,{icon:"$mdiDownloadOutline",size:"x-small",variant:"text",disabled:!l(p),"aria-label":d(t).t("$vuetify.chatroom.code.download"),onClick:F=>y(p)},null,8,["disabled","aria-label","onClick"])])]))),128))],8,Wn),g(ht,{"model-value":!!c.value,"max-width":"90vw","onUpdate:modelValue":u[1]||(u[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",tl,[h("span",al,M(c.value.artifact.name),1),g(ce,{icon:"$mdiClose",size:"small",variant:"text","aria-label":d(t).t("$vuetify.chatroom.common.close"),onClick:u[0]||(u[0]=p=>c.value=null)},null,8,["aria-label"])]),h("div",nl,[h("img",{src:m(c.value),alt:c.value.artifact.name,decoding:"async"},null,8,ll)])]),_:1})):_("",!0)]),_:1},8,["model-value"])]))}}),il=Ie(sl,[["__scopeId","data-v-e957f066"]]),ol=["data-state","open"],rl=["aria-label"],ul={class:"agent-command-label"},dl={class:"agent-command-status"},cl={class:"agent-command-line"},vl=["title"],ml={key:0,class:"agent-command-copy-error",role:"alert"},fl={key:0,class:"agent-command-details"},gl={class:"agent-command-full"},pl={key:0,class:"agent-command-meta"},yl=["title"],hl={key:1,class:"agent-command-exit"},bl={class:"agent-command-output-label"},wl={class:"agent-command-code output"},kl={key:0,class:"agent-command-output-plain mono"},$l=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":d(t).t("$vuetify.chatroom.agents.commandDetails")},[h("div",ul,[g(Pe,{icon:"$mdiConsoleLine",size:"16"}),h("span",null,M(d(t).t("$vuetify.chatroom.agents.command")),1),h("span",dl,[v[1]||(v[1]=h("span",{class:"agent-command-status-dot"},null,-1)),le(" "+M(f.value),1)])]),h("div",cl,[h("code",{class:"mono",title:e.command},M(s.value),9,vl),g(ce,{icon:"$mdiContentCopy",size:"x-small",variant:"text",class:"agent-command-copy","aria-label":d(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",ml,M(o.value),1)):_("",!0)],8,rl),n.value?(i(),S("div",fl,[h("div",gl,[g(it,{text:e.command,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),e.cwd||e.exitCode!==null?(i(),S("div",pl,[e.cwd?(i(),S("span",{key:0,class:"agent-command-cwd mono",title:e.cwd},M(e.cwd),9,yl)):_("",!0),e.exitCode!==null?(i(),S("span",hl,M(d(t).t("$vuetify.chatroom.agents.exitCode",e.exitCode)),1)):_("",!0)])):_("",!0),e.output?(i(),S(oe,{key:1},[h("div",bl,M(d(t).t("$vuetify.chatroom.agents.commandOutput")),1),h("div",wl,[c.value==="running"?(i(),S("pre",kl,M(e.output),1)):(i(),q(it,{key:1,text:e.output,filename:"output.txt",toolbar:!1},null,8,["text"]))])],64)):_("",!0)])):_("",!0)],40,ol))}}),Sl=Ie($l,[["__scopeId","data-v-7c2e41e4"]]),Cl=wt({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...un({filterKeys:["title"]}),...rn({hideNoData:!0,returnObject:!0}),...Ra(Pa({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VCombobox"),xl=Pt()({name:"VCombobox",props:Cl(),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}=wa(e),{textColorClasses:y,textColorStyles:w}=aa(()=>n.value?.color),{InputIcon:u}=ka(e),p=zt(e,"modelValue",[],V=>A($a(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(Aa(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 X(){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(Q=>(e.valueComparator||Ht)(Q.value,V.value)),pe=j??!~re;if(~re){const Q=pe?[...p.value,V]:[...p.value];Q.splice(re,1),p.value=Q}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(Fa).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":Q=>Y.value=Q,activator:"parent",disabled:J.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:P,onAfterLeave:X},e.menuProps,{contentClass:["v-combobox__content",e.menuProps?.contentClass]}),{default:()=>[g(tn,{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:Q=>Q.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:Q,index:Oe,itemRef:st})=>{const Xe=Ca(Q.props),at=ue(Q.props,{ref:st,key:Q.value,active:Te.value&&Q===se.value?!0:void 0,onClick:()=>ae(Q,null),"aria-posinset":Oe+1,"aria-setsize":E.value.length});return Q.type==="divider"?t.divider?.({props:Q.raw,index:Oe})??g(rt,ue(Q.props,{key:`divider-${Oe}`}),null):Q.type==="subheader"?t.subheader?.({props:Q.raw,index:Oe})??g(xa,ue(Q.props,{key:`subheader-${Oe}`}),null):t.item?.({item:Q.raw,internalItem:Q,index:Oe,props:at})??g(Me,ue(at,{role:"option"}),{prepend:({isSelected:et})=>h(oe,null,[e.multiple&&!e.hideSelected?g(Va,{key:Q.value,modelValue:et,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:Fe=>Fe.preventDefault()},null):void 0,Xe.prependAvatar&&g(Ma,{image:Xe.prependAvatar},null),Xe.prependIcon&&g(Pe,{icon:Xe.prependIcon},null)]),title:()=>c.value?Q.title:g(sn,{text:Q.title,matches:C(Q)?.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((Q,Oe)=>{function st(Fe){Fe.stopPropagation(),Fe.preventDefault(),ae(Q,!1)}const Xe=ue(ft.filterProps(Q.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?Ia(z.value?t.chip({item:Q.raw,internalItem:Q,index:Oe,props:Xe}):t.selection({item:Q.raw,internalItem:Q,index:Oe})):void 0;if(!(at&&!et))return h("div",{key:Q.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(Ta,{key:"chip-defaults",defaults:{VChip:{closable:ee.value,size:"small",text:Q.title}}},{default:()=>[et]}):g(ft,ue({key:"chip",closable:ee.value,size:"small",text:Q.title,disabled:Q.props.disabled},Xe),null):et??h("span",{class:"v-combobox__selection-text"},[Q.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:Sa,"aria-hidden":!0,tabindex:"-1"},null):void 0,e.appendInnerIcon&&g(u,{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)}}),Vl=["aria-label","aria-busy"],Ml={class:"agent-interaction-heading"},Il={class:"agent-interaction-content"},Tl={class:"agent-interaction-title"},Al={key:1},Rl={key:0,class:"agent-input-questions"},Pl={class:"agent-question-label"},Fl={class:"agent-question-text"},Ul={key:2,class:"agent-interaction-resolved"},El={key:0,class:"agent-interaction-footer"},zl={key:0,class:"agent-interaction-actions"},Dl=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],u=y.find(F=>F.id==="decline"||F.id==="deny"),p=w?[w]:[];return u&&u!==w&&p.push(u),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 u=m[y];return u?n.t("$vuetify.chatroom.agents.approvalChoices."+u):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(u=>u.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
+ `)});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",Ml,[g(Pe,{icon:e.item.status==="completed"?"$mdiCheckCircleOutline":"$mdiAlertCircleOutline",size:"18"},null,8,["icon"]),h("span",null,M(d(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",Il,[h("div",Tl,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",Al,[e.item.interaction.kind!=="approval"?(i(),S("div",Rl,[(i(!0),S(oe,null,Se(e.item.interaction.questions,u=>(i(),S("div",{key:u.id,class:"agent-question"},[h("div",Pl,M(u.label),1),h("div",Fl,M(u.question),1),u.options.length&&u.allowFreeText?(i(),q(xl,{key:0,"model-value":u.multiSelect?k(u.id):k(u.id)[0]??null,items:s.value[u.id]??[],"aria-label":u.label+": "+u.question,"return-object":!1,multiple:u.multiSelect,chips:u.multiSelect,"closable-chips":u.multiSelect,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(u.id,p)},null,8,["model-value","items","aria-label","multiple","chips","closable-chips","disabled","onUpdate:modelValue"])):u.options.length?(i(),q(Ge,{key:1,"model-value":u.multiSelect?k(u.id):k(u.id)[0]??null,items:s.value[u.id]??[],"aria-label":u.label+": "+u.question,"return-object":!1,multiple:u.multiSelect,chips:u.multiSelect,"closable-chips":u.multiSelect,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(u.id,p)},null,8,["model-value","items","aria-label","multiple","chips","closable-chips","disabled","onUpdate:modelValue"])):(i(),q(ut,{key:2,"model-value":k(u.id)[0]??"",type:u.secret?"password":"text","aria-label":u.label+": "+u.question,density:"compact","hide-details":"",disabled:e.responding,"onUpdate:modelValue":p=>O(u.id,p)},null,8,["model-value","type","aria-label","disabled","onUpdate:modelValue"]))]))),128))])):_("",!0)])):(i(),S("div",Ul,M(r.value),1))]),e.item.status==="waiting"?(i(),S("footer",El,[e.item.interaction.kind==="approval"?(i(),S("div",zl,[(i(!0),S(oe,null,Se(c.value,u=>(i(),q(ce,{key:u.id,color:u.id==="decline"||u.id==="deny"||u.id==="cancel"?"error":"primary","prepend-icon":v(u.id),variant:"tonal",size:"small",title:u.description??void 0,disabled:e.responding,onClick:p=>o("approve",u.id)},{default:D(()=>[le(M(l(u.id,u.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:u})=>[g(ce,ue(u,{icon:"$mdiDotsHorizontal",size:"small",variant:"text",disabled:e.responding,"aria-label":d(n).t("$vuetify.chatroom.agents.moreApprovalOptions"),title:d(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,u=>(i(),q(Me,{key:u.id,title:l(u.id,u.label),subtitle:u.description??"","prepend-icon":v(u.id),disabled:e.responding,onClick:p=>o("approve",u.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]=u=>o("submit"))},{default:D(()=>[le(M(d(n).t("$vuetify.chatroom.agents.submit")),1)]),_:1},8,["loading","disabled"])):_("",!0)])):_("",!0)],10,Vl))}}),fa=Ie(Dl,[["__scopeId","data-v-45060adf"]]),Ol={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"},_l=["width","height"],Bl=["d"],Ll={key:1,fill:"none",stroke:"currentColor","stroke-width":"1.8"},Nl=Ce({__name:"AgentProviderIcon",props:{icon:{default:null},size:{default:16}},setup(e){const a=e,t={openai:Ol.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,Bl)):(i(),S("g",Ll,[...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,_l))}}),pt=Ie(Nl,[["__scopeId","data-v-9209bf7a"]]),ql=["open","data-status"],jl=["title"],Kl={class:"agent-activity-title"},Wl={key:0,class:"agent-activity-body"},Hl={key:0,class:"agent-tool-progress",role:"status"},Gl={key:3,class:"agent-inline-error"},Jl={class:"agent-file-change-name"},Xl={class:"mono"},Ql={key:3,class:"agent-plan"},Yl={key:1,class:"agent-plan-steps"},Zl=["data-status"],es={class:"agent-plan-step-text"},ts={class:"agent-plan-step-status"},as={key:4,class:"agent-artifact-path mono"},ns=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",Kl,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,jl),o.value?(i(),S("div",Wl,[e.item.type==="tool"?(i(),S(oe,{key:0},[e.item.progress?(i(),S("div",Hl,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",Gl,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",Jl,[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",Ql,[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",Yl,[(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",es,M(l.step),1),h("span",ts,M(d(t).t(`$vuetify.chatroom.agents.planStatuses.${l.status}`)),1)],8,Zl))),128))])):_("",!0)])):e.item.type==="artifact"?(i(),S("div",as,M(e.item.artifact.path),1)):_("",!0)])):_("",!0)],40,ql))}}),ls=Ie(ns,[["__scopeId","data-v-63e4d047"]]),ss={class:"agent-turn"},is={key:0,class:"agent-message-row user"},os={class:"agent-message user-message"},rs={class:"agent-message-text agent-plain-text"},us=["data-source"],ds={key:0,class:"agent-message-attachments"},cs=["title"],vs=["data-status"],ms={key:0},fs=["data-phase"],gs={key:4,class:"agent-reasoning-summary"},ps={class:"agent-summary-label"},ys={key:5,class:"agent-response-command"},hs={key:7,class:"agent-resolved-interaction"},bs=["data-status"],ws={key:2},ks=["data-level"],$s=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",ss,[(i(!0),S(oe,null,Se(o.value,r=>(i(),S(oe,{key:r.id},[r.type==="user_message"?(i(),S("div",is,[h("div",os,[h("div",rs,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,us),r.attachments.length?(i(),S("div",ds,[(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,cs)):r.type==="turn_status"?(i(),S("div",{key:2,class:"agent-turn-status","data-status":r.status},[h("span",null,M(d(t).t(`$vuetify.chatroom.agents.statuses.${r.status}`)),1),r.error?(i(),S("span",ms," · "+M(r.error),1)):_("",!0)],8,vs)):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(Ua,{key:0,indeterminate:"",height:"2",class:"agent-item-progress"})):_("",!0)],8,fs)):r.type==="reasoning_summary"?(i(),S("div",gs,[h("div",ps,M(d(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",ys,[g(Sl,{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(il,{key:6,items:r.items,"workspace-root":e.workspaceRoot},null,8,["items","workspace-root"])):r.type==="interaction"&&r.status!=="waiting"?(i(),S("details",hs,[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(ls,{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(d(t).t("$vuetify.chatroom.agents.compaction."+(r.status==="running"?"running":r.status==="completed"?"completed":"failed"))),1),r.error?(i(),S("span",ws,M(r.error),1)):_("",!0)],8,bs)):r.type==="notice"?(i(),S("div",{key:10,class:"agent-notice","data-level":r.level},M(r.text),9,ks)):_("",!0)],64))),128))]))}}),Ss=Ie($s,[["__scopeId","data-v-d9c9ba96"]]),Cs={class:"agent-conversation-shell"},xs={key:1,class:"empty-panel"},vt=100,Vs=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}=qn(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",Cs,[h("div",{ref_key:"conversation",ref:n,class:"agent-conversation",onScrollPassive:A[0]||(A[0]=(...O)=>d(f)&&d(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(d(t).t("$vuetify.chatroom.agents.showOlderTurns",String(Math.min(vt,v.value)))),1)]),_:1})):_("",!0),e.history?.turns.length?_("",!0):(i(),S("div",xs,M(d(t).t("$vuetify.chatroom.agents.noHistory")),1)),(i(!0),S(oe,null,Se(l.value,O=>(i(),q(Ss,{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),d(c)?_("",!0):(i(),q(ce,{key:0,class:"agent-back-to-latest",icon:"$mdiArrowDown",size:"small",variant:"tonal",title:d(t).t("$vuetify.chatroom.agents.backToLatest"),"aria-label":d(t).t("$vuetify.chatroom.agents.backToLatest"),onClick:d(m)},null,8,["title","aria-label","onClick"]))]))}}),Ms=Ie(Vs,[["__scopeId","data-v-f2a2b510"]]),Is={key:3,class:"agent-native-granular"},Ts={class:"agent-setting-heading"},As=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 u(){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:d(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:d(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:d(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",Is,[h("div",Ts,M(d(m).t("$vuetify.chatroom.agents.granularApprovals")),1),(i(!0),S(oe,null,Se(e.approvalSetting.granularFields,T=>(i(),q(vn,{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:d(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:d(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(d(m).t("$vuetify.chatroom.agents.fullAccessTitle")),1)]),_:1})]),_:1}),g(Tt,null,{default:D(()=>[le(M(d(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(d(m).t("$vuetify.chatroom.common.cancel")),1)]),_:1}),g(ce,{color:"warning",variant:"flat",onClick:u},{default:D(()=>[le(M(d(m).t("$vuetify.chatroom.common.confirm")),1)]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])],64))}}),ga=Ie(As,[["__scopeId","data-v-7d7f4fb1"]]),Kt=Symbol.for("vuetify:v-slider");function Rs(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 Ps(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 Fs=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,...Da(),...za({elevation:1}),ripple:{type:Boolean,default:!0}},"Slider"),Us=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}},Es=({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)),u=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=Ps(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=Rs(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?Ea(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:u,trackColor:x,trackContainerRef:B,trackFillColor:R,trackSize:p,vertical:l};return Oa(Kt,ze),ze},zs=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"),Ds=Pt()({name:"VSliderThumb",directives:{vRipple:Xt},props:zs(),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:u,elevation:p,mousePressed:F,decimals:ee,indexFromEnd:z}=o,x=U(!1),R=U(!1),T=I(()=>r.value?void 0:p.value),{elevationClasses:$}=Na(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}=_a,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":!!u.value,"aria-orientation":O.value,onKeydown:u.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),Qt(h("div",{class:Ee(["v-slider-thumb__ripple",B.value]),style:tt(b.value)},null),[[Xt,e.ripple,null,{circle:!0,center:!0}]]),g(La,{origin:"bottom center"},{default:()=>[Qt(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)])]),[[Ba,H]])]})])}),{}}}),Os=wt({start:{type:Number,required:!0},stop:{type:Number,required:!0},...oa()},"VSliderTrack"),_s=Pt()({name:"VSliderTrack",props:Os(),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}=qa(s),{backgroundColorClasses:u,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",u.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])])),{}}}),Bs=wt({...Wa(),...Fs(),...Ka(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ls=Pt()({name:"VSlider",inheritAttrs:!1,props:Bs(),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=Us(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:u,disabled:p,readonly:F,noKeyboard:ee}=Es({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}=ja(e),T=I(()=>w(m.value));return Ft(()=>{const $=Yt.filterProps(e),[B,b]=Ha(o),C=!!(e.label||a.label||a.prepend);return g(Yt,ue({ref:s,class:["v-slider",{"v-slider--has-labels":!!a["tick-label"]||u.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(Ga,{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(_s,{ref:y,start:0,stop:T.value},{"tick-label":a["tick-label"]}),g(Ds,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)}}),Ns={key:0,class:"agent-reasoning-slider"},qs={class:"agent-setting-heading"},js={key:0,class:"agent-setting-description"},Ks=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),u=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=u.value?.reasoningEfforts.find(b=>b.id===u.value?.defaultReasoningEffort);return[{title:R(u.value?.defaultReasoningEffort),value:null,subtitle:B?.description??""},...(u.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(u,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(d(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:d(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),u.value?.reasoningEfforts?.length?(i(),S("div",Ns,[h("div",qs,[h("span",null,M(d(A).t("$vuetify.chatroom.agents.reasoningEffort")),1),h("strong",null,M(x.value?.title),1)]),g(Ls,{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":d(A).t("$vuetify.chatroom.agents.reasoningEffort"),"hide-details":"",disabled:e.busy},null,8,["modelValue","max","aria-label","disabled"]),x.value?.subtitle?(i(),S("div",js,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:u.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(d(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(d(A).t("$vuetify.chatroom.common.save")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Ws=Ie(Ks,[["__scopeId","data-v-6560ca7a"]]),Hs={key:2,class:"agent-review-error",role:"alert"},Gs=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(d(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:d(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:d(s).t("$vuetify.chatroom.agents.reviewCommitTitle"),disabled:e.busy,density:"compact","hide-details":""},null,8,["modelValue","label","disabled"])):_("",!0),e.error?(i(),S("div",Hs,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(d(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(d(s).t("$vuetify.chatroom.agents.startReview")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue","persistent"]))}}),Js=Ie(Gs,[["__scopeId","data-v-c8b9a40c"]]),Xs={class:"panel-header agent-session-header"},Qs={class:"agent-session-header-info min-w-0"},Ys={class:"panel-title agent-session-provider-title"},Zs={class:"agent-session-model-label"},ei={class:"panel-subtitle text-truncate"},ti={key:0,class:"agent-session-token-usage"},ai=["data-status"],ni=["data-status","data-attention"],li={class:"agent-session-header-status-text"},si={class:"agent-session-switch-provider-icon"},ii=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":d(a).t("$vuetify.chatroom.agents.backToSessions"),variant:"text",onClick:o[0]||(o[0]=n=>t.$emit("back"))},null,8,["aria-label"])):_("",!0),h("div",Qs,[h("div",Ys,[g(pt,{icon:e.providerIcon,size:16},null,8,["icon"]),h("span",null,M(e.providerName),1),h("span",Zs,"· "+M(e.modelName),1)]),h("div",ei,M(e.session.workspaceRoot),1),e.usage?(i(),S("div",ti,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,ni),h("span",li,M(e.statusText),1)],8,ai),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":d(a).t("$vuetify.chatroom.agents.switchAgent")}),{default:D(()=>[le(M(d(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",si,[g(pt,{icon:n.icon,size:15},null,8,["icon"])])]),_:2},1032,["title","onClick"]))),128))]),_:1})]),_:1})):_("",!0)]))}}),oi=Ie(ii,[["__scopeId","data-v-1cae8321"]]),ri={class:"agent-create"},ui=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(""),u=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(()=>Qe(t.providers,c.value,"approvalPolicy")),z=I(()=>Qe(t.providers,c.value,"approvalsReviewer")),x=I(()=>Qe(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",ri,[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:d(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:u.value,label:d(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:d(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:d(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(d(n).t("$vuetify.chatroom.agents.create")),1)]),_:1},8,["loading","disabled"])]))}}),di=Ie(ui,[["__scopeId","data-v-8cdd509d"]]),ci={class:"agent-provider-strip"},vi=["data-state","title","aria-label","aria-expanded","data-expanded","onClick","onKeydown"],mi={class:"agent-provider-pill-name"},fi={key:0,class:"agent-provider-quota"},gi={class:"agent-provider-quota-header"},pi={key:0},yi={key:0,class:"agent-provider-quota-unavailable"},hi={key:1,class:"agent-provider-quota-unavailable"},bi=["title"],wi={class:"agent-provider-quota-label"},ki={class:"agent-provider-quota-track","aria-hidden":"true"},$i={class:"agent-provider-quota-value"},Si={class:"agent-provider-quota-reset"},Ci={key:0,class:"agent-provider-quota-extra"},xi=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 u=await Ue(`/agents/providers/${y}/details`,{timeoutMs:15e3,signal:w.signal});if(!s.isCurrent(w))return;t.value={...t.value,[y]:u}}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 u={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 u[y]?a.t(u[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 u=Math.ceil(w/6e4);let p;if(u<60)p=u+"m";else{const F=Math.floor(u/60),ee=u%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",ci,[(i(!0),S(oe,null,Se(e.providers,u=>(i(),S("div",{key:u.id,class:"agent-provider-pill","data-state":u.installed?u.authenticated?"ready":"warning":"unavailable",title:v(u),"aria-label":v(u),"aria-expanded":o.value===u.id,"data-expanded":o.value===u.id,role:"button",tabindex:"0",onClick:p=>m(u.id),onKeydown:[ot(lt(p=>m(u.id),["prevent"]),["enter"]),ot(lt(p=>m(u.id),["prevent"]),["space"])]},[g(pt,{icon:u.icon,size:14},null,8,["icon"]),h("span",mi,M(d(gt)(e.providers,u.id)),1),w[0]||(w[0]=h("span",{class:"agent-provider-pill-dot"},null,-1))],40,vi))),128))]),o.value?(i(),S("div",fi,[h("div",gi,[h("span",null,M(d(gt)(e.providers,o.value)),1),f.value?.subscriptionType?(i(),S("span",pi,M(f.value.subscriptionType),1)):_("",!0)]),n.value?(i(),S("div",yi,M(d(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??[],u=>(i(),S("div",{key:u.id,class:"agent-provider-quota-row",title:O(u.resetsAt)},[h("span",wi,M(r(u.id,u.label)),1),h("div",ki,[h("span",{class:"agent-provider-quota-fill",style:tt({width:A(u.utilization)})},null,4)]),h("span",$i,M(k(u.utilization)),1),h("span",Si,M(O(u.resetsAt)),1)],8,bi))),128)),f.value?.extraUsage?.enabled?(i(),S("div",Ci,[h("span",null,M(d(a).t("$vuetify.chatroom.agents.quotaExtraUsage")),1),h("span",null,M(k(f.value.extraUsage.utilization)),1)])):_("",!0)],64)):(i(),S("div",hi,M(d(a).t("$vuetify.chatroom.agents.quotaUnavailable")),1))])):_("",!0)],64))}}),Vi=Ie(xi,[["__scopeId","data-v-5b1c74e5"]]),Mi={class:"panel-header"},Ii={class:"panel-title"},Ti={key:0,class:"agent-error",role:"alert"},Ai={class:"agent-session-list"},Ri=["data-status","data-attention","title"],Pi={key:1,class:"empty-inline"},Fi=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",Mi,[h("div",Ii,M(d(n).t("$vuetify.chatroom.agents.title")),1),g(ce,{icon:"$mdiPlus",size:"small",variant:"text","aria-label":d(n).t("$vuetify.chatroom.agents.newSession"),onClick:v[0]||(v[0]=r=>s.value=!s.value)},null,8,["aria-label"])]),g(rt),g(Ja,null,{default:D(()=>[s.value?(i(),q(di,{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",Ti,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(e.error),1)])):_("",!0),h("div",Ai,[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:d(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,Ri)]),default:D(()=>[g(Xa,null,{default:D(()=>[le(M(d(gt)(e.providers,r.provider)),1)]),_:2},1024),g(Qa,null,{default:D(()=>[le(M(d($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",Pi,M(e.loading?d(n).t("$vuetify.chatroom.agents.loading"):d(n).t("$vuetify.chatroom.agents.noSessions")),1))]),g(rt),g(Vi,{providers:e.providers},null,8,["providers"])]),_:1}))}}),Ui=Ie(Fi,[["__scopeId","data-v-e6bcf543"]]),Ei={key:0,class:"agent-error agent-main-error",role:"alert"},zi=["aria-label"],Di={class:"empty-panel"},Oi=Ce({__name:"AgentView",props:{revision:{},changes:{}},setup(e){const a=e,t=ke(),{mdAndDown:o}=Ya(),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:u,removeSession:p}=fn(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:X,interrupt:ae,switchProvider:ge,openDeleteDialog:me,deleteSession:Ne,openModelSettings:N,saveModelSettings:G}=pn({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}=gn({selectedId:m,selected:F,error:r,reconcileInteraction:u}),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):""}),Q=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 Xe(Z){w(Z),m.value=Z.id}function at(Z){const W=ha=>new Intl.NumberFormat(Za(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"},[!d(o)||!F.value?(i(),q(Ui,{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:d(k),loading:l.value,error:r.value,onCreated:Xe},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(oi,{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:d(o),"switch-targets":d(Ke),switching:d(se),disabled:F.value.status!=="idle"||d(xe),onBack:Fe,onSwitchProvider:d(ge)},null,8,["session","provider-name","provider-icon","model-name","status-text","usage","compact","switch-targets","switching","disabled","onSwitchProvider"]),g(rt),r.value&&d(o)?(i(),S("div",Ei,[g(Pe,{icon:"$mdiAlertCircleOutline",size:"18"}),h("span",null,M(r.value),1)])):_("",!0),g(Ms,{history:d(A),"provider-names":Q.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:d(j)(K),responding:d(te).has(K.id),pinned:"",onApprove:We=>d(ve)(K,We),onSubmit:We=>d(V)(K),onUpdateAnswer:(We,kt)=>d(ne)(K,We,kt)},null,8,["item","answers","responding","onApprove","onSubmit","onUpdateAnswer"]))),128))],8,zi)):_("",!0),g(rt),(i(),q(Ln,{key:F.value.id,session:F.value,model:d(De),"steering-supported":!!d(Ae)?.features.steering,disabled:d(fe)||d(xe)||d(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":d(t).t("$vuetify.chatroom.agents.sessionControls"),title:d(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:d(t).t("$vuetify.chatroom.agents.model"),subtitle:et(F.value.provider,F.value.model),"prepend-icon":"$mdiTuneVariant",disabled:F.value.status!=="idle"||d(xe)||d(se),onClick:d(N)},null,8,["title","subtitle","disabled","onClick"]),F.value.status==="running"||F.value.status==="waiting_input"?(i(),q(Me,{key:0,title:d(t).t("$vuetify.chatroom.agents.stop"),"prepend-icon":"$mdiStop","base-color":"warning",disabled:d(Te),onClick:d(ae)},null,8,["title","disabled","onClick"])):_("",!0),g(rt),F.value.status==="idle"&&d(Ae)?.features.nativeReview?(i(),q(Me,{key:1,title:d(t).t("$vuetify.chatroom.agents.review"),"prepend-icon":"$mdiFileCompare",disabled:K||d(xe)||d(se)||d(fe),onClick:W[1]||(W[1]=We=>{be.value="",J.value=!0})},null,8,["title","disabled"])):_("",!0),g(Me,{title:d(t).t("$vuetify.chatroom.agents.refresh"),"prepend-icon":"$mdiRefresh",onClick:d(y)},null,8,["title","onClick"]),g(Me,{title:d(t).t("$vuetify.chatroom.agents.delete"),"prepend-icon":"$mdiDeleteOutline",onClick:d(me)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]),_:1},8,["session","model","steering-supported","disabled"]))]),_:1})):d(o)?_("",!0):(i(),q(Ye,{key:2,class:"agent-main panel-card"},{default:D(()=>[h("div",Di,M(d(t).t("$vuetify.chatroom.agents.selectSession")),1)]),_:1})),g(Ws,{modelValue:d(z),"onUpdate:modelValue":W[4]||(W[4]=K=>_e(z)?z.value=K:null),"model-id":d(x),"onUpdate:modelId":W[5]||(W[5]=K=>_e(x)?x.value=K:null),"reasoning-effort":d(R),"onUpdate:reasoningEffort":W[6]||(W[6]=K=>_e(R)?R.value=K:null),"reasoning-summary":d(T),"onUpdate:reasoningSummary":W[7]||(W[7]=K=>_e(T)?T.value=K:null),"service-tier":d($),"onUpdate:serviceTier":W[8]||(W[8]=K=>_e($)?$.value=K:null),"approval-mode":d(B),"onUpdate:approvalMode":W[9]||(W[9]=K=>_e(B)?B.value=K:null),granular:d(b),"onUpdate:granular":W[10]||(W[10]=K=>_e(b)?b.value=K:null),reviewer:d(C),"onUpdate:reviewer":W[11]||(W[11]=K=>_e(C)?C.value=K:null),"permission-mode":d(E),"onUpdate:permissionMode":W[12]||(W[12]=K=>_e(E)?E.value=K:null),models:d(Ve),"approval-setting":d(ze),"reviewer-setting":d(L),"permission-setting":d(H),busy:d(xe),onSave:d(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(Js,{modelValue:d(J),"onUpdate:modelValue":W[13]||(W[13]=K=>_e(J)?J.value=K:null),"review-type":d(de),"onUpdate:reviewType":W[14]||(W[14]=K=>_e(de)?de.value=K:null),"review-value":d(Y),"onUpdate:reviewValue":W[15]||(W[15]=K=>_e(Y)?Y.value=K:null),"review-title":d($e),"onUpdate:reviewTitle":W[16]||(W[16]=K=>_e($e)?$e.value=K:null),types:d(he),"field-label":d(Be),busy:d(fe),error:d(be),"can-start":d(Le),onStart:d(X)},null,8,["modelValue","review-type","review-value","review-title","types","field-label","busy","error","can-start","onStart"]),g(Nn,{modelValue:d(we),"onUpdate:modelValue":W[17]||(W[17]=K=>_e(we)?we.value=K:null),busy:d(je),onConfirm:d(Ne)},null,8,["modelValue","busy","onConfirm"])],512))}}),Gi=Ie(Oi,[["__scopeId","data-v-3189043d"]]);export{Gi as default};
@@ -0,0 +1 @@
1
+ import{S as be,_ as te,b as R,B as C,E as w,e as ye,aI as ae,bb as he,a4 as ge,w as z,bc as _e,aa as we,ae as ke,bd as pe,be as Ve,bf as Ce,bg as Se,aR as $e,bh as xe,bi as Te,bj as Pe,b1 as Ie,bk as De,a8 as oe,ak as qe,as as Be,T as Ae,a7 as G,aw as Oe,bl as Ue,ax as Ee,bm as Me,bn as Ne,bo as Re,aE as Fe,bp as ze,bq as Le,br as Y,al as Ke,g as i,bs as We,p as s,q as je,Q as Ge,ar as J,F,a9 as le,ap as Ye,Z as Je,a1 as H,aL as L,d as He,a as Qe,o as I,v as q,f as b,l as t,c as Xe,s as Ze,j as x,t as u,r as Q,Y as et,k as O,n as K,J as tt,K as at,a_ as X,V as Z,G as ot,H as lt,I as nt,L as it,z as st,X as rt}from"./index-BzRlodie.js";import{V as ee}from"./VSwitch-CGzxwZuj.js";import{V as ut}from"./VSpacer-dDRRKhUn.js";function ct(){const e=w(null),a=w(""),r=w(!1),l=w(""),k=w(!1),h=w(!1),y=w(null),d=w(null),m=be(),S=w(!1),f=C(()=>h.value||k.value||d.value!==null),g=C(()=>{const o=new Set(e.value?.entitlements.map(n=>n.service)??[]);return o.has("remote_mcp")&&o.has("remote_web")}),T=C(()=>{const o=(e.value?.entitlements??[]).map(n=>n.validUntil).filter(n=>!!n).map(n=>Date.parse(n)).filter(Number.isFinite);return o.length?Math.min(...o):null});te(()=>{B()});function p(o){a.value=ye(o),r.value=!0}async function B(){if(f.value)return;const o=m.begin();try{const n=await R("/cloud/status",{signal:o.signal});m.isCurrent(o)&&(e.value=n)}catch(n){m.isCurrent(o)&&p(n)}}async function U(){if(f.value)return;const o=m.begin();h.value=!0;try{const n=await R("/cloud/sync",{method:"POST",signal:o.signal});m.isCurrent(o)&&(e.value=n)}catch(n){m.isCurrent(o)&&p(n)}finally{h.value=!1}}async function P(){if(S.value)return;S.value=!0;const o=window.open("","_blank");o&&(o.opener=null);try{const n=await R("/cloud/management",{method:"POST"});o?o.location.href=n.url:window.location.assign(n.url)}catch(n){o?.close(),p(n)}finally{S.value=!1}}function D(o,n){if(!f.value){if(n){A(o,!0);return}y.value=o}}async function E(){const o=y.value;o&&(await A(o,!1),d.value===null&&(y.value=null))}async function A(o,n){if(!e.value||f.value)return;const $=m.begin();d.value=o;try{const v=await R(`/cloud/services/${o}`,{method:"POST",body:JSON.stringify({enabled:n}),signal:$.signal});m.isCurrent($)&&(e.value=v)}catch(v){m.isCurrent($)&&p(v)}finally{d.value===o&&(d.value=null)}}async function M(){if(!l.value.trim()||f.value)return;const o=m.begin(),n=l.value.trim();k.value=!0;try{const $=await R("/cloud/restore",{method:"POST",body:JSON.stringify({recoveryKey:n}),timeoutMs:12e4,signal:o.signal});if(!m.isCurrent(o))return;e.value=$.status,l.value=""}catch($){m.isCurrent(o)&&p($)}finally{k.value=!1}}return{status:e,error:a,errorVisible:r,recoveryKey:l,restoring:k,refreshing:h,managing:S,busy:f,confirmationService:y,serviceUpdating:d,subscribed:g,subscriptionExpiry:T,load:B,refresh:U,manage:P,requestServiceChange:D,confirmDisableService:E,restore:M}}const dt=Symbol.for("vuetify:v-snackbar-queue");function vt(e,a){const r=ae(dt,null);if(!r)return null;const l=he();r.register(l),ge(()=>r.unregister(l)),z(e,d=>!d&&r.unregister(l),{flush:"sync"});const{resizeRef:k,contentRect:h}=_e();z(a,d=>{k.value=d??null}),z(h,d=>{d?.width&&r.setSize(l,d.height,d.width)});const y=C(()=>r.getOffset(l));return{id:l,offset:y}}function mt(e){const a=w(e());let r=-1;function l(){clearInterval(r)}function k(){l(),oe(()=>a.value=e())}function h(y){const d=y?getComputedStyle(y):{transitionDuration:.2},m=parseFloat(d.transitionDuration)*1e3||200;if(l(),a.value<=0)return;const S=performance.now();r=window.setInterval(()=>{const f=performance.now()-S+m;a.value=Math.max(e()-f,0),a.value<=0&&l()},m)}return Ae(l),{clear:l,time:a,start:h,reset:k}}const ft=Oe({collapsed:Object,loading:Boolean,prependAvatar:String,prependIcon:Ue,queueGap:Number,queueIndex:Number,title:String,text:String,reverseTimer:Boolean,timer:{type:[Boolean,String],default:!1},timerColor:String,timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Le({location:"bottom center"}),...ze(),...Fe(),...Re(),...Ne(),...Ee(Me({closeOnBack:!1,locationStrategy:null,transition:"v-snackbar-transition"}),["persistent","noClickAnimation","offset","retainFocus","captureFocus","disableInitialFocus","location","scrim","scrollStrategy","stickToTarget","viewportMargin"])},"VSnackbar"),bt=we()({name:"VSnackbar",props:ft(),emits:{"update:modelValue":e=>!0},setup(e,{slots:a}){const r=ke(e,"modelValue"),{positionClasses:l}=pe(e),{scopeId:k}=Ve(),{themeClasses:h}=Ce(e),{colorClasses:y,colorStyles:d,variantClasses:m}=Se(e),{roundedClasses:S,roundedStyles:f}=$e(e),g=mt(()=>Number(e.timeout)),T=G(),p=vt(r,()=>T.value?.contentEl);let B;const U=G(),P=w(!1),D=w(!1),E=w(0),A=G(),M=ae(xe,void 0);Te(()=>!!M,()=>{const c=Pe();Ie(()=>{A.value=c.mainStyles.value})}),z(r,n),z(()=>e.timeout,n),te(()=>{r.value&&n()});let o=-1;function n(){g.clear(),window.clearTimeout(o);const c=Number(e.timeout);if(!r.value||c===-1)return;g.reset();const V=De(U.value);oe(()=>g.start(V)),o=window.setTimeout(()=>{r.value=!1},c)}function $(){g.reset(),window.clearTimeout(o)}function v(){P.value=!0,$()}function _(){P.value=!1,D.value||n()}function ne(){D.value=!0,$()}function ie(c){T.value?.contentEl?.contains(c.relatedTarget)||(D.value=!1,P.value||n())}function se(c){E.value=c.touches[0].clientY}function re(c){Math.abs(E.value-c.changedTouches[0].clientY)>50&&(r.value=!1)}function ue(){P.value&&_(),D.value=!1}const ce=C(()=>e.location.split(" ").reduce((c,V)=>(c[`v-snackbar--${V}`]=!0,c),{})),de=C(()=>{const[c,V]=e.location.split(" ");return c==="bottom"||["left","right"].includes(c)&&V==="end"?-1:1}),ve=C(()=>e.collapsed?{"--v-snackbar-collapsed-height":L(e.collapsed.height),"--v-snackbar-collapsed-width":L(e.collapsed.width)}:null),me=C(()=>{if(p)return p.offset.value===null?B:B=L(p.offset.value)}),fe=C(()=>{if(typeof e.transition!="string"||!e.transition.endsWith("-auto"))return e.transition;const c=e.transition.replace("-auto",""),[V,N]=e.location.split(" "),W=["start","end","left","right"].includes(N)||["left","right"].includes(V)?"x":"y",j=["end","right"].includes(N)||!["start","left"].includes(N)&&["bottom","right"].includes(V)?"-reverse":"";return`${c}-${W}${j}-transition`});return qe(()=>{const c=Y.filterProps({...e,location:e.location,locationStrategy:e.locationStrategy??Ke}),V=!!(e.prependAvatar||e.prependIcon),N=!!(V||e.loading||a.prepend),W=!!(a.default||a.text||a.title||e.text||e.title);return i(Y,H({ref:T,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--collapsed":!!e.collapsed,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},ce.value,l.value,e.class],style:[A.value,{"--v-snackbar-offset":me.value,"--v-snackbar-gap":L(e.queueGap),"--v-snackbar-index":e.queueIndex,"--v-snackbar-direction":de.value},ve.value,e.style]},c,{transition:fe.value,modelValue:r.value,"onUpdate:modelValue":j=>r.value=j,contentProps:H({class:["v-snackbar__wrapper",h.value,y.value,S.value,m.value],style:[d.value,f.value],onPointerenter:v,onPointerleave:_,onFocusin:ne,onFocusout:ie},c.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",onTouchstartPassive:se,onTouchend:re,onAfterLeave:ue},k),{default:()=>[We(!1,"v-snackbar"),a.header&&s("div",{class:"v-snackbar__header"},[a.header?.()]),e.timer&&Number(e.timeout)>0&&!P.value&&s("div",{key:"timer",class:Ge(["v-snackbar__timer",`v-snackbar__timer--${e.timer==="bottom"?"bottom":"top"}`])},[i(je,{ref:U,color:e.timerColor??"info",max:e.timeout,modelValue:e.reverseTimer?Number(e.timeout)-g.time.value:g.time.value},null)]),N&&i(J,{key:"prepend-defaults",disabled:!V&&!e.loading,defaults:{VAvatar:{image:e.prependAvatar},VIcon:{icon:e.prependIcon},VProgressCircular:{indeterminate:!0,size:24,width:3}}},{default:()=>[s("div",{class:"v-snackbar__prepend"},[a.prepend?a.prepend():s(F,null,[e.loading&&i(le,null,null),!e.loading&&e.prependAvatar&&i(Ye,null,null),!e.loading&&e.prependIcon&&i(Je,null,null)])])]}),W&&s("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[a.title?.()??(e.title?s("div",{class:"v-snackbar__title",key:"title"},[e.title]):""),a.text?.()??e.text,a.default?.()]),a.actions&&i(J,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[s("div",{class:"v-snackbar__actions"},[a.actions({isActive:r})])]})],activator:a.activator})}),Be({},T)}}),yt={class:"cloud-view"},ht={class:"cloud-row"},gt={class:"cloud-row-main"},_t={class:"cloud-row-title"},wt={class:"cloud-row-value"},kt={class:"cloud-row-actions"},pt={class:"cloud-row"},Vt={class:"cloud-row-main"},Ct={class:"cloud-row-title"},St={key:0,class:"cloud-row-value mono"},$t={key:1,class:"cloud-row-value"},xt={class:"cloud-row"},Tt={class:"cloud-row-main"},Pt={class:"cloud-row-title"},It={key:0,class:"cloud-row-value mono"},Dt={key:1,class:"cloud-row-value"},qt={class:"cloud-row"},Bt={class:"cloud-row-main"},At={class:"cloud-row-title"},Ot={class:"cloud-row-value"},Ut={class:"cloud-restore-row"},Et={key:3,class:"cloud-loading"},Mt={class:"cloud-row cloud-installation-row"},Nt={class:"cloud-row-main"},Rt={class:"cloud-row-title"},Ft={class:"cloud-row-value mono installation-id"},Wt=He({__name:"CloudView",setup(e){const a=Qe(),r=ct(),{status:l,error:k,errorVisible:h,recoveryKey:y,restoring:d,refreshing:m,managing:S,busy:f,confirmationService:g,serviceUpdating:T,subscribed:p,subscriptionExpiry:B,refresh:U,manage:P,requestServiceChange:D,confirmDisableService:E,restore:A}=r,M=C(()=>p.value?B.value===null?a.t("$vuetify.chatroom.cloud.active"):`${a.t("$vuetify.chatroom.cloud.expires")} ${new Intl.DateTimeFormat(rt(a.current.value),{dateStyle:"medium",timeStyle:"short"}).format(new Date(B.value))}`:a.t("$vuetify.chatroom.cloud.inactiveDescription")),o=C(()=>g.value==="remote_web"?a.t("$vuetify.chatroom.cloud.disableWebTitle"):a.t("$vuetify.chatroom.cloud.disableMcpTitle")),n=C(()=>g.value==="remote_web"?a.t("$vuetify.chatroom.cloud.disableWebDescription"):a.t("$vuetify.chatroom.cloud.disableMcpDescription"));return($,v)=>(I(),q(F,null,[s("div",yt,[i(Z,{class:"panel-card cloud-panel"},{default:b(()=>[t(l)?.lastError?(I(),Xe(Ze,{key:0,type:"error",variant:"tonal",density:"compact",class:"ma-3"},{default:b(()=>[x(u(t(l).lastError),1)]),_:1})):Q("",!0),t(l)&&t(p)?(I(),q(F,{key:1},[s("div",ht,[s("div",gt,[s("div",_t,u(t(a).t("$vuetify.chatroom.cloud.subscription")),1),s("div",wt,u(M.value),1)]),s("div",kt,[i(et,{color:"success",size:"small",variant:"tonal"},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.cloud.active")),1)]),_:1}),i(O,{icon:"$mdiRefresh",size:"small",variant:"text",loading:t(m),disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.refresh"),onClick:t(U)},null,8,["loading","disabled","aria-label","onClick"]),i(O,{variant:"text",size:"small",disabled:!t(l).installationId||t(f),loading:t(S),onClick:t(P)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.cloud.manage")),1)]),_:1},8,["disabled","loading","onClick"])])]),i(K),s("div",pt,[s("div",Vt,[s("div",Ct,u(t(a).t("$vuetify.chatroom.cloud.remoteMcp")),1),t(l).mcpUrl?(I(),q("div",St,u(t(l).mcpUrl),1)):(I(),q("div",$t,u(t(a).t("$vuetify.chatroom.cloud.remoteMcpDescription")),1))]),i(ee,{"model-value":t(l).desiredServices.remote_mcp,loading:t(T)==="remote_mcp",disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.remoteMcp"),"onUpdate:modelValue":v[0]||(v[0]=_=>t(D)("remote_mcp",!!_))},null,8,["model-value","loading","disabled","aria-label"])]),i(K),s("div",xt,[s("div",Tt,[s("div",Pt,u(t(a).t("$vuetify.chatroom.cloud.remoteWeb")),1),t(l).webUrl?(I(),q("div",It,u(t(l).webUrl),1)):(I(),q("div",Dt,u(t(a).t("$vuetify.chatroom.cloud.remoteWebDescription")),1))]),i(ee,{"model-value":t(l).desiredServices.remote_web,loading:t(T)==="remote_web",disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.remoteWeb"),"onUpdate:modelValue":v[1]||(v[1]=_=>t(D)("remote_web",!!_))},null,8,["model-value","loading","disabled","aria-label"])])],64)):t(l)?(I(),q(F,{key:2},[s("div",qt,[s("div",Bt,[s("div",At,u(t(a).t("$vuetify.chatroom.cloud.subscription")),1),s("div",Ot,u(M.value),1)]),i(O,{color:"primary",variant:"flat",size:"small",disabled:!t(l).installationId||t(f),loading:t(S),onClick:t(P)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.cloud.purchase")),1)]),_:1},8,["disabled","loading","onClick"])]),i(K),s("div",Ut,[i(tt,{modelValue:t(y),"onUpdate:modelValue":v[2]||(v[2]=_=>X(y)?y.value=_:null),placeholder:t(a).t("$vuetify.chatroom.cloud.recoveryKey"),"aria-label":t(a).t("$vuetify.chatroom.cloud.recoveryKey"),type:"password",density:"compact",variant:"outlined","hide-details":"",autocomplete:"off",onKeyup:at(t(A),["enter"])},null,8,["modelValue","placeholder","aria-label","onKeyup"]),i(O,{loading:t(d),disabled:!t(l).installationId||!t(y).trim()||t(f),variant:"tonal",size:"small",onClick:t(A)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.cloud.restoreAction")),1)]),_:1},8,["loading","disabled","onClick"])])],64)):(I(),q("div",Et,[i(le,{indeterminate:"",size:"20",width:"2"})])),t(l)?(I(),q(F,{key:4},[i(K),s("div",Mt,[s("div",Nt,[s("div",Rt,u(t(a).t("$vuetify.chatroom.cloud.installationId")),1),s("div",Ft,u(t(l).installationId||"—"),1)])])],64)):Q("",!0)]),_:1})]),i(st,{"model-value":t(g)!==null,width:"auto","max-width":"32rem","onUpdate:modelValue":v[4]||(v[4]=_=>!_&&(g.value=null))},{default:b(()=>[i(Z,null,{default:b(()=>[i(ot,{"prepend-icon":"$mdiAlertCircleOutline",class:"text-error"},{default:b(()=>[i(lt,null,{default:b(()=>[x(u(o.value),1)]),_:1})]),_:1}),i(nt,null,{default:b(()=>[x(u(n.value),1)]),_:1}),i(it,null,{default:b(()=>[i(ut),i(O,{variant:"text",disabled:t(f),onClick:v[3]||(v[3]=_=>g.value=null)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),i(O,{color:"error",variant:"flat",loading:t(T)===t(g),onClick:t(E)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.cloud.disableConfirm")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value"]),i(bt,{modelValue:t(h),"onUpdate:modelValue":v[6]||(v[6]=_=>X(h)?h.value=_:null),color:"error",location:"top",timeout:6e3},{actions:b(()=>[i(O,{variant:"text",onClick:v[5]||(v[5]=_=>h.value=!1)},{default:b(()=>[x(u(t(a).t("$vuetify.chatroom.common.close")),1)]),_:1})]),default:b(()=>[x(u(t(k))+" ",1)]),_:1},8,["modelValue"])],64))}});export{Wt as default};
@@ -1 +1 @@
1
- @layer vuetify-components{.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left);--v-snackbar-current-offset: var(--v-snackbar-offset);transform:translateY(calc(var(--v-snackbar-direction) * (var(--v-snackbar-current-offset) + var(--v-snackbar-mobile-notch, 0px))));transition:transform .2s cubic-bezier(.4,0,.2,1)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;flex-wrap:wrap;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0;transition:.35s cubic-bezier(.4,0,.2,1);transition-property:height,width}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 1px 2px rgba(var(--v-shadow-color),var(--v-shadow-key-opacity, .3)),0 2px 6px 2px rgba(var(--v-shadow-color),var(--v-shadow-ambient-opacity, .15));--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent)}.v-snackbar--variant-flat{box-shadow:0 0 rgba(var(--v-shadow-color),var(--v-shadow-key-opacity, .3)),0 0 rgba(var(--v-shadow-color),var(--v-shadow-ambient-opacity, .15));--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent)}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;inset:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar--variant-outlined,.v-snackbar--variant-tonal{background:rgb(var(--v-theme-surface))}@media(forced-colors:active){.v-snackbar__wrapper{border:thick solid}}.v-snackbar__header{flex-basis:100%}.v-snackbar__header:after{content:"";display:block;flex-basis:100%}.v-snackbar__prepend{align-self:center;display:flex;margin-inline:16px 12px}.v-snackbar__prepend+.v-snackbar__content{padding-inline-start:0}.v-snackbar__title{font-weight:700}.v-snackbar__content{flex:1 1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.4285714286;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute}.v-snackbar__timer--top{top:0}.v-snackbar__timer--bottom{bottom:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--vertical .v-snackbar__actions{flex-basis:100%;justify-content:end;margin-bottom:8px}.v-snackbar--vertical .v-snackbar__actions:before{content:"";display:block;flex-basis:100%}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}@media(max-width:839.98px){.v-snackbar--top{--v-snackbar-mobile-notch: max(env(safe-area-inset-top), 0px)}}.v-snackbar--bottom{align-items:flex-end}@media(max-width:839.98px){.v-snackbar--bottom{--v-snackbar-mobile-notch: max(env(safe-area-inset-bottom), 0px)}}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar--collapsed{--v-snackbar-current-offset: calc(var(--v-snackbar-gap) * var(--v-snackbar-index, 0))}.v-snackbar--collapsed .v-snackbar__wrapper{min-width:0;width:calc(var(--v-snackbar-collapsed-width) - 2 * var(--v-snackbar-gap) * var(--v-snackbar-index, 0));height:var(--v-snackbar-collapsed-height)}.v-snackbar--collapsed .v-snackbar__wrapper>*{opacity:0}.v-snackbar--collapsed.v-snackbar--start .v-snackbar__wrapper,.v-snackbar--collapsed.v-snackbar--left .v-snackbar__wrapper{transform:translate(calc(var(--v-snackbar-gap) * var(--v-snackbar-index, 0)))}.v-snackbar--collapsed.v-snackbar--end .v-snackbar__wrapper,.v-snackbar--collapsed.v-snackbar--right .v-snackbar__wrapper{transform:translate(calc(-1 * var(--v-snackbar-gap) * var(--v-snackbar-index, 0)))}.v-snackbar--collapsed .v-progress-linear{opacity:0}.v-snackbar .v-avatar{background:transparent}}@layer vuetify-final.transitions{.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}@media(prefers-reduced-motion:reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}}
1
+ @layer vuetify-components{.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left);--v-snackbar-current-offset: var(--v-snackbar-offset);transform:translateY(calc(var(--v-snackbar-direction) * (var(--v-snackbar-current-offset) + var(--v-snackbar-mobile-notch, 0px))));transition:transform .2s cubic-bezier(.4,0,.2,1)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;flex-wrap:wrap;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0;transition:.35s cubic-bezier(.4,0,.2,1);transition-property:height,width}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 1px 2px rgba(var(--v-shadow-color),var(--v-shadow-key-opacity, .3)),0 2px 6px 2px rgba(var(--v-shadow-color),var(--v-shadow-ambient-opacity, .15));--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent)}.v-snackbar--variant-flat{box-shadow:0 0 rgba(var(--v-shadow-color),var(--v-shadow-key-opacity, .3)),0 0 rgba(var(--v-shadow-color),var(--v-shadow-ambient-opacity, .15));--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent)}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;inset:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar--variant-outlined,.v-snackbar--variant-tonal{background:rgb(var(--v-theme-surface))}@media(forced-colors:active){.v-snackbar__wrapper{border:thick solid}}.v-snackbar__header{flex-basis:100%}.v-snackbar__header:after{content:"";display:block;flex-basis:100%}.v-snackbar__prepend{align-self:center;display:flex;margin-inline:16px 12px}.v-snackbar__prepend+.v-snackbar__content{padding-inline-start:0}.v-snackbar__title{font-weight:700}.v-snackbar__content{flex:1 1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.4285714286;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute}.v-snackbar__timer--top{top:0}.v-snackbar__timer--bottom{bottom:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--vertical .v-snackbar__actions{flex-basis:100%;justify-content:end;margin-bottom:8px}.v-snackbar--vertical .v-snackbar__actions:before{content:"";display:block;flex-basis:100%}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}@media(max-width:839.98px){.v-snackbar--top{--v-snackbar-mobile-notch: max(env(safe-area-inset-top), 0px)}}.v-snackbar--bottom{align-items:flex-end}@media(max-width:839.98px){.v-snackbar--bottom{--v-snackbar-mobile-notch: max(env(safe-area-inset-bottom), 0px)}}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar--collapsed{--v-snackbar-current-offset: calc(var(--v-snackbar-gap) * var(--v-snackbar-index, 0))}.v-snackbar--collapsed .v-snackbar__wrapper{min-width:0;width:calc(var(--v-snackbar-collapsed-width) - 2 * var(--v-snackbar-gap) * var(--v-snackbar-index, 0));height:var(--v-snackbar-collapsed-height)}.v-snackbar--collapsed .v-snackbar__wrapper>*{opacity:0}.v-snackbar--collapsed.v-snackbar--start .v-snackbar__wrapper,.v-snackbar--collapsed.v-snackbar--left .v-snackbar__wrapper{transform:translate(calc(var(--v-snackbar-gap) * var(--v-snackbar-index, 0)))}.v-snackbar--collapsed.v-snackbar--end .v-snackbar__wrapper,.v-snackbar--collapsed.v-snackbar--right .v-snackbar__wrapper{transform:translate(calc(-1 * var(--v-snackbar-gap) * var(--v-snackbar-index, 0)))}.v-snackbar--collapsed .v-progress-linear{opacity:0}.v-snackbar .v-avatar{background:transparent}}@layer vuetify-final.transitions{.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}@media(prefers-reduced-motion:reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}}.cloud-view,.cloud-panel{width:100%}.cloud-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 18px}.cloud-row-main{min-width:0}.cloud-row-title{font-size:14px;font-weight:500}.cloud-row-value{overflow:hidden;margin-top:3px;color:rgb(var(--v-theme-on-surface),.52);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.cloud-row .v-switch,.cloud-row .v-btn{flex:0 0 auto}.cloud-installation-row .cloud-row-main{min-width:0}.cloud-row-actions{display:flex;flex:0 0 auto;align-items:center;gap:4px}.cloud-restore-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:12px 18px}.cloud-loading{padding:16px 18px}@media(max-width:640px){.cloud-row-actions{gap:2px}}.installation-id{overflow-wrap:anywhere;white-space:normal}
@@ -0,0 +1,3 @@
1
+ import{aa as F,bf as H,aJ as O,c8 as U,c9 as j,bd as z,aR as A,ak as M,aw as N,bn as G,bF as I,aE as J,bp as Q,bq as W,aD as q,c0 as X,aQ as K,ca as Y,g as m,a2 as Z,Q as V,b$ as ee,aP as ae,d as oe,a as te,w as _,cb as le,a4 as se,o as d,c as L,f as ne,v as b,F as re,p as w,J as ie,l as v,k as C,r as S,n as ce,t as B,E as y,B as P}from"./index-BzRlodie.js";import{V as ue}from"./VSpacer-dDRRKhUn.js";const de=N({color:String,...Y(),...K(),...X(),...q(),...W(),...Q(),...J(),...I(),...G()},"VSheet"),ve=F()({name:"VSheet",props:de(),setup(e,{slots:a}){const{themeClasses:h}=H(e),{backgroundColorClasses:g,backgroundColorStyles:n}=O(()=>e.color),{borderClasses:r}=U(e),{dimensionStyles:t}=ee(e),{elevationClasses:i}=ae(e),{locationStyles:s}=j(e),{positionClasses:c}=z(e),{roundedClasses:u,roundedStyles:f}=A(e);return M(()=>m(e.tag,{class:V(["v-sheet",h.value,g.value,r.value,i.value,c.value,u.value,e.class]),style:Z([n.value,t.value,s.value,f.value,e.style])},a)),{}}}),me={class:"code-toolbar"},he={class:"code-actions"},fe={key:1,class:"code-copy-error",role:"alert"},ye=["innerHTML"],ge={key:1},pe=2e5,be=120,Ce=oe({__name:"CodeViewer",props:{value:{},text:{},filename:{default:"chatroom-output.txt"},language:{},toolbar:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!0},highlight:{type:Boolean,default:!0}},setup(e){const a=e,h=y(""),g=y(""),n=y(!0),r=y(null),t=te(),i=y("");let s=null,c=0;const u=P(()=>a.text??JSON.stringify(a.value??null,null,2)),f=P(()=>{const l=g.value.toLocaleLowerCase();return l?u.value.split(`
2
+ `).filter(o=>o.toLocaleLowerCase().includes(l)).join(`
3
+ `):u.value});_(h,l=>{s&&clearTimeout(s),s=setTimeout(()=>{g.value=l,s=null},be)}),_([f,()=>a.filename,()=>a.language,()=>a.value!==void 0,()=>a.highlight],async(l,o,p)=>{const T=++c;p(()=>{c+=1}),r.value=null;const k=f.value;if(!a.highlight||!k||k.length>pe)return;const E={filename:a.filename,language:a.language??(a.value!==void 0?"json":null)};try{const{highlightSource:R}=await le(async()=>{const{highlightSource:D}=await import("./syntax-highlight-C_fuMcwC.js");return{highlightSource:D}},[]);if(T!==c)return;r.value=R(k,E)}catch{}},{immediate:!0}),se(()=>{s&&clearTimeout(s),c+=1});async function $(){i.value="";try{await navigator.clipboard.writeText(u.value)}catch{i.value=t.t("$vuetify.chatroom.code.copyFailed")}}function x(){const l=URL.createObjectURL(new Blob([u.value],{type:"text/plain;charset=utf-8"})),o=document.createElement("a");o.href=l,o.download=a.filename,o.click(),URL.revokeObjectURL(l)}return(l,o)=>(d(),L(ve,{border:e.toolbar,rounded:e.toolbar?"lg":0,"overflow-hidden":"",class:V(["code-viewer",{"code-viewer-plain":!e.toolbar}])},{default:ne(()=>[e.toolbar?(d(),b(re,{key:0},[w("div",me,[m(ie,{modelValue:h.value,"onUpdate:modelValue":o[0]||(o[0]=p=>h.value=p),placeholder:v(t).t("$vuetify.chatroom.code.search"),"aria-label":v(t).t("$vuetify.chatroom.code.search"),"prepend-inner-icon":"$mdiMagnify",density:"compact","hide-details":"",class:"code-search"},null,8,["modelValue","placeholder","aria-label"]),m(ue),w("div",he,[m(C,{icon:"$mdiContentCopy",size:"small",variant:"text","aria-label":v(t).t("$vuetify.chatroom.code.copy"),onClick:$},null,8,["aria-label"]),m(C,{icon:n.value?"$mdiWrap":"$mdiFormatAlignLeft",size:"small",variant:"text","aria-label":v(t).t(n.value?"$vuetify.chatroom.code.disableWrap":"$vuetify.chatroom.code.enableWrap"),onClick:o[1]||(o[1]=p=>n.value=!n.value)},null,8,["icon","aria-label"]),e.showDownload?(d(),L(C,{key:0,icon:"$mdiDownloadOutline",size:"small",variant:"text","aria-label":v(t).t("$vuetify.chatroom.code.download"),onClick:x},null,8,["aria-label"])):S("",!0)])]),m(ce)],64)):S("",!0),i.value?(d(),b("div",fe,B(i.value),1)):S("",!0),w("pre",{class:V(["code-block",{wrap:n.value}])},[r.value?(d(),b("code",{key:0,class:"hljs",innerHTML:r.value},null,8,ye)):(d(),b("code",ge,B(f.value||v(t).t("$vuetify.chatroom.code.noOutput")),1))],2)]),_:1},8,["border","rounded","class"]))}});export{ve as V,Ce as _};
@@ -0,0 +1 @@
1
+ import{u as _e}from"./useOperationLabels-C-zgM_ET.js";import{d as Y,a as re,o as d,c as w,f as m,p as l,t as c,l as s,g as p,k as J,n as W,O as se,v as q,F as ae,N as de,R as H,U as Ce,j as C,W as Se,X as pe,I as ie,V as Q,w as ve,r as _,s as j,q as Re,Z as Be,B as oe,E as k,Q as ce,S as G,T as xe,b as A,e as qe,$ as fe}from"./index-BzRlodie.js";import{d as ye}from"./utils-rtPwWNel.js";import{_ as Ie}from"./StateChip.vue_vue_type_script_setup_true_lang-iW1SYlX_.js";import{_ as Z}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as me}from"./VSwitch-CGzxwZuj.js";const Pe={class:"panel-header compact-header"},Ae={class:"panel-title"},Ve={class:"computer-operation-scroll"},Le=Y({__name:"ComputerOperations",props:{operations:{},busy:{type:Boolean}},emits:["refresh"],setup(e,{emit:S}){const i=S,t=re(),{sourceLabel:v}=_e();function f(a){if(a.action==="snapshot")return t.t("$vuetify.chatroom.computer.log.snapshot");if(a.action==="settings.set")return t.t("$vuetify.chatroom.computer.log.settings");if(a.action!=="action")return a.action;const o=b(a.input),n=Array.isArray(o.actions)?o.actions:[];return n.length?n.map(g).join(" · "):t.t("$vuetify.chatroom.computer.log.action")}function g(a){const o=b(a),n=String(o.type??"action"),h=typeof o.elementId=="number"?` #${o.elementId}`:"";switch(n){case"activate_app":return t.t("$vuetify.chatroom.computer.log.activateApp",String(o.app??""));case"activate_window":return t.t("$vuetify.chatroom.computer.log.activateWindow",h.trim());case"click":return t.t("$vuetify.chatroom.computer.log.click",h.trim()||y(o));case"double_click":return t.t("$vuetify.chatroom.computer.log.doubleClick",h.trim()||y(o));case"right_click":return t.t("$vuetify.chatroom.computer.log.rightClick",h.trim()||y(o));case"move":return t.t("$vuetify.chatroom.computer.log.move",y(o));case"drag":return t.t("$vuetify.chatroom.computer.log.drag");case"scroll":return t.t("$vuetify.chatroom.computer.log.scroll",String(o.deltaY??0));case"keypress":return t.t("$vuetify.chatroom.computer.log.keypress",Array.isArray(o.keys)?o.keys.join("+"):"");case"type_text":case"set_value":return t.t("$vuetify.chatroom.computer.log.typeText",String(o.characters??0));case"invoke":return t.t("$vuetify.chatroom.computer.log.invoke",h.trim());case"select_text":return t.t("$vuetify.chatroom.computer.log.selectText",h.trim());case"move_window":return t.t("$vuetify.chatroom.computer.log.moveWindow",h.trim());case"resize_window":return t.t("$vuetify.chatroom.computer.log.resizeWindow",h.trim());case"wait":return t.t("$vuetify.chatroom.computer.log.wait",String(o.ms??0));default:return n}}function y(a){return`(${Math.round(Number(a.x??0))}, ${Math.round(Number(a.y??0))})`}function b(a){return a&&typeof a=="object"?a:{}}return(a,o)=>(d(),w(Q,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:m(()=>[l("div",Pe,[l("div",Ae,c(s(t).t("$vuetify.chatroom.computer.recentOperations")),1),p(J,{size:"small",variant:"text",icon:"$mdiRefresh",loading:e.busy,"aria-label":s(t).t("$vuetify.chatroom.computer.refreshOperations"),onClick:o[0]||(o[0]=n=>i("refresh"))},null,8,["loading","aria-label"])]),p(W),l("div",Ve,[e.operations.length?(d(),w(se,{key:0,lines:"two",density:"compact",class:"computer-operation-list"},{default:m(()=>[(d(!0),q(ae,null,de(e.operations,n=>(d(),w(H,{key:n.operationId},{append:m(()=>[p(Ie,{value:n.status},null,8,["value"])]),default:m(()=>[p(Ce,null,{default:m(()=>[C(c(f(n)),1)]),_:2},1024),p(Se,null,{default:m(()=>[C(c(s(ye)(n.startedAt,s(pe)(s(t).current.value)))+" · "+c(s(v)(n.source)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(d(),w(ie,{key:1,class:"muted"},{default:m(()=>[C(c(s(t).t("$vuetify.chatroom.computer.noOperations")),1)]),_:1}))])]),_:1}))}}),Oe=Z(Le,[["__scopeId","data-v-e1119403"]]),ze={class:"panel-header compact-header"},Te={class:"computer-preview-heading"},Ne={class:"panel-title"},Ue={key:0,class:"computer-preview-time"},De=["aria-busy"],Ee=["src","alt"],We={key:2,class:"computer-screen-empty"},je={key:3,class:"computer-preview-meta"},Fe={class:"text-truncate"},Me=Y({__name:"ComputerPreview",props:{preview:{},enabled:{type:Boolean},busy:{type:Boolean},remotePreviewBlocked:{type:Boolean}},emits:["refresh"],setup(e,{emit:S}){const i=e,t=S,v=re(),f=oe(()=>{const a=i.preview;return a?.screenshot?"/api/computer/preview/image?snapshotId="+encodeURIComponent(a.snapshotId)+"&v="+encodeURIComponent(String(a.revision)):""}),g=k(!1),y=k(!1);ve(f,a=>{g.value=!!a,y.value=!1},{immediate:!0});const b=oe(()=>{const a=i.preview?.capturedAt;return a?ye(a,pe(v.current.value)):""});return(a,o)=>(d(),w(Q,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:m(()=>[l("div",ze,[l("div",Te,[l("div",Ne,c(s(v).t("$vuetify.chatroom.computer.latestScreen")),1),b.value?(d(),q("div",Ue,c(s(v).t("$vuetify.chatroom.computer.capturedAt",b.value)),1)):_("",!0)]),p(J,{size:"small",variant:"tonal","prepend-icon":"$mdiRefresh",loading:e.busy,disabled:!e.enabled,onClick:o[0]||(o[0]=n=>t("refresh"))},{default:m(()=>[C(c(s(v).t("$vuetify.chatroom.computer.refreshScreen")),1)]),_:1},8,["loading","disabled"])]),p(W),p(ie,{class:"computer-preview-content"},{default:m(()=>[e.remotePreviewBlocked?(d(),w(j,{key:0,type:"info",variant:"tonal",density:"compact",class:"mb-3"},{default:m(()=>[C(c(s(v).t("$vuetify.chatroom.computer.remoteDisabled")),1)]),_:1})):_("",!0),f.value?(d(),q("div",{key:1,class:"computer-screen-shell","aria-busy":g.value},[g.value?(d(),w(Re,{key:0,indeterminate:""})):_("",!0),y.value?(d(),w(j,{key:1,type:"error",variant:"tonal"},{default:m(()=>[C(c(s(v).t("$vuetify.chatroom.common.imageLoadFailed")),1)]),_:1})):(d(),q("img",{key:f.value,decoding:"async",onLoad:o[1]||(o[1]=n=>g.value=!1),onError:o[2]||(o[2]=n=>{g.value=!1,y.value=!0}),src:f.value,alt:s(v).t("$vuetify.chatroom.computer.latestScreen")},null,40,Ee))],8,De)):(d(),q("div",We,[p(Be,{icon:"$mdiMonitorScreenshot",size:"42"}),l("span",null,c(s(v).t("$vuetify.chatroom.computer.noSnapshot")),1)])),e.preview?(d(),q("div",je,[l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.activeApp")),1),l("strong",null,c(e.preview.activeApp||"—"),1)]),l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.activeWindow")),1),l("strong",Fe,c(e.preview.activeWindow||"—"),1)]),l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.elements")),1),l("strong",null,c(e.preview.elementCount),1)])])):_("",!0)]),_:1})]),_:1}))}}),Xe=Z(Me,[["__scopeId","data-v-f2938466"]]),Ge={class:"panel-header compact-header"},He={class:"panel-title"},Je={class:"computer-status-row"},Qe={class:"computer-status-label"},Ye={class:"computer-status-value"},Ze={class:"computer-status-row"},Ke={class:"computer-status-label"},et={class:"computer-status-value"},tt={class:"computer-status-row"},st={class:"computer-status-label"},at={class:"computer-permission-value"},ot={class:"computer-status-row"},rt={class:"computer-status-label"},it={class:"computer-permission-value"},nt={class:"panel-header compact-header"},lt={class:"panel-title"},ut=Y({__name:"ComputerStatus",props:{status:{},settingsBusy:{type:Boolean},permissionBusy:{},permissionRequestsAllowed:{type:Boolean}},emits:["updateSetting","requestPermission"],setup(e,{emit:S}){const i=S,t=re();function v(a){return t.t(`$vuetify.chatroom.computer.platformStates.${a}`)}function f(a){return t.t(`$vuetify.chatroom.computer.helperStates.${a}`)}function g(a){return t.t(`$vuetify.chatroom.computer.permissionStates.${a}`)}function y(a){return a==="granted"?"is-granted":a==="denied"?"is-denied":"is-muted"}function b(a){const o=a.primary?` · ${t.t("$vuetify.chatroom.computer.primaryDisplay")}`:"";return`${a.width}×${a.height} · ${a.scale}x${o}`}return(a,o)=>e.status?(d(),q(ae,{key:0},[p(Q,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:m(()=>[l("div",Ge,[l("div",He,c(s(t).t("$vuetify.chatroom.computer.title")),1)]),p(W),p(ie,{class:"computer-status-list"},{default:m(()=>[e.status.unavailableReason==="no_x11_session"?(d(),w(j,{key:0,type:"info",variant:"tonal",density:"compact"},{default:m(()=>[C(c(s(t).t("$vuetify.chatroom.computer.noX11Session")),1)]),_:1})):_("",!0),l("div",Je,[l("span",Qe,c(s(t).t("$vuetify.chatroom.computer.platform")),1),l("strong",Ye,c(v(e.status.platform)),1)]),l("div",Ze,[l("span",Ke,c(s(t).t("$vuetify.chatroom.computer.helper")),1),l("strong",et,c(f(e.status.helper)),1)]),l("div",tt,[l("span",st,c(s(t).t("$vuetify.chatroom.computer.accessibility")),1),l("div",at,[l("strong",{class:ce(["computer-permission-state",y(e.status.permissions.accessibility)])},c(g(e.status.permissions.accessibility)),3),e.status.platform==="macos"&&e.status.permissions.accessibility!=="granted"?(d(),w(J,{key:0,class:"computer-permission-btn",color:"primary",size:"small",variant:"tonal",loading:e.permissionBusy==="accessibility",disabled:!e.permissionRequestsAllowed||e.permissionBusy!==null,onClick:o[0]||(o[0]=n=>i("requestPermission","accessibility"))},{default:m(()=>[C(c(s(t).t("$vuetify.chatroom.computer.requestPermission")),1)]),_:1},8,["loading","disabled"])):_("",!0)])]),l("div",ot,[l("span",rt,c(s(t).t("$vuetify.chatroom.computer.screenRecording")),1),l("div",it,[l("strong",{class:ce(["computer-permission-state",y(e.status.permissions.screenRecording)])},c(g(e.status.permissions.screenRecording)),3),e.status.platform==="macos"&&e.status.permissions.screenRecording!=="granted"?(d(),w(J,{key:0,class:"computer-permission-btn",color:"primary",size:"small",variant:"tonal",loading:e.permissionBusy==="screenRecording",disabled:!e.permissionRequestsAllowed||e.permissionBusy!==null,onClick:o[1]||(o[1]=n=>i("requestPermission","screenRecording"))},{default:m(()=>[C(c(s(t).t("$vuetify.chatroom.computer.requestPermission")),1)]),_:1},8,["loading","disabled"])):_("",!0)])]),e.status.platform==="macos"&&!e.permissionRequestsAllowed&&(e.status.permissions.accessibility!=="granted"||e.status.permissions.screenRecording!=="granted")?(d(),w(j,{key:1,type:"info",variant:"tonal",density:"compact",class:"computer-permission-alert"},{default:m(()=>[C(c(s(t).t("$vuetify.chatroom.computer.permissionLocalOnly")),1)]),_:1})):_("",!0)]),_:1}),p(W),p(se,{density:"compact",class:"computer-settings-list"},{default:m(()=>[p(H,{title:s(t).t("$vuetify.chatroom.computer.enabled")},{append:m(()=>[p(me,{"model-value":e.status.settings.enabled,"aria-label":s(t).t("$vuetify.chatroom.computer.enabled"),disabled:e.settingsBusy,"onUpdate:modelValue":o[2]||(o[2]=n=>i("updateSetting","enabled",!!n))},null,8,["model-value","aria-label","disabled"])]),_:1},8,["title"]),p(H,{title:s(t).t("$vuetify.chatroom.computer.remoteAccess")},{append:m(()=>[p(me,{"model-value":e.status.settings.remoteAccess,"aria-label":s(t).t("$vuetify.chatroom.computer.remoteAccess"),disabled:e.settingsBusy,"onUpdate:modelValue":o[3]||(o[3]=n=>i("updateSetting","remoteAccess",!!n))},null,8,["model-value","aria-label","disabled"])]),_:1},8,["title"])]),_:1})]),_:1}),e.status.displays.length?(d(),w(Q,{key:0,rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:m(()=>[l("div",nt,[l("div",lt,c(s(t).t("$vuetify.chatroom.computer.displays")),1)]),p(W),p(se,{density:"compact",class:"computer-display-list"},{default:m(()=>[(d(!0),q(ae,null,de(e.status.displays,n=>(d(),w(H,{key:n.id,title:n.name,subtitle:b(n)},null,8,["title","subtitle"]))),128))]),_:1})]),_:1})):_("",!0)],64)):_("",!0)}}),ct=Z(ut,[["__scopeId","data-v-fbaed594"]]);function mt(e,S){const i=k(null),t=k(null),v=k([]),f=k(""),g=k(!1),y=k(!1),b=k(!1),a=k(!1),o=k(null),n=G(),h=G(),L=G(),O=G(),$=new Set,N=new Map;let I=!1,z=!1,U=null,T=!1;window.addEventListener("focus",le),K(),xe(()=>{window.removeEventListener("focus",le),T=!0,I=!1,$.clear(),N.clear(),n.invalidate(),h.invalidate(),L.invalidate(),O.invalidate()});const ne=oe(()=>["localhost","127.0.0.1","::1","[::1]"].includes(window.location.hostname));ve(e,()=>{he(S())});async function K(){f.value="",I=!1,$.clear(),O.invalidate(),await Promise.all([F(),M(),te()])}async function he(r){if(r===null){await K();return}const u=[];if(r.status&&u.push(F()),r.preview&&(!r.previewSnapshotId||t.value?.snapshotId!==r.previewSnapshotId)&&u.push(te()),r.operationsReset)I=!1,$.clear(),O.invalidate(),u.push(M());else if(r.operationIds.length){for(const R of r.operationIds)$.add(R);I&&!z?u.push(ee()):z||u.push(M())}await Promise.all(u)}async function F(){const r=n.begin();try{const u=await A("/computer/status",{signal:r.signal});n.isCurrent(r)&&(i.value=u)}catch(u){n.isCurrent(r)&&V(u)}}async function M(){const r=L.begin();z=!0,a.value=!0;try{const u=await A("/operations?pluginId=computer&limit=50",{signal:r.signal});if(T||!L.isCurrent(r))return;v.value=u,I=!0}catch(u){L.isCurrent(r)&&V(u)}finally{L.isCurrent(r)&&(z=!1,a.value=!1)}L.isCurrent(r)&&$.size&&await ee()}async function ge(r){if(T||!r.length)return;const u=O.begin(),R=await Promise.allSettled(r.map(async P=>{try{return await A("/operations/"+encodeURIComponent(P),{signal:u.signal})}catch(x){if(x instanceof fe&&x.status===404)return null;throw x}}));if(T||!O.isCurrent(u))return;const B=[...v.value];for(let P=0;P<R.length;P+=1){const x=R[P],D=r[P];if(x.status==="rejected"){const X=(N.get(D)??0)+1;X<=1?(N.set(D,X),$.add(D)):(N.delete(D),V(x.reason));continue}N.delete(D);const E=x.value;if(!E||E.pluginId!=="computer")continue;const ue=B.findIndex(X=>X.operationId===E.operationId);ue>=0?B[ue]=E:B.push(E)}B.sort((P,x)=>x.startedAt.localeCompare(P.startedAt)),v.value=B.slice(0,50)}function ee(){return U||(U=Promise.resolve().then(async()=>{for(;!T&&I&&!z&&$.size;){const r=[...$];$.clear(),await ge(r)}}).finally(()=>{U=null,!T&&I&&!z&&$.size&&ee()}),U)}async function te(){const r=h.begin();g.value=!1;try{const u=await A("/computer/preview",{signal:r.signal});h.isCurrent(r)&&(t.value=u)}catch(u){if(!h.isCurrent(r))return;if(dt(u)){t.value=null,g.value=!0;return}V(u)}}async function le(){if(i.value?.unavailableReason==="no_x11_session"){await F();return}if(i.value?.platform!=="macos"||i.value.permissions.accessibility==="granted"&&i.value.permissions.screenRecording==="granted")return;const r=n.begin();try{const u=await A("/computer/status",{signal:r.signal});n.isCurrent(r)&&(i.value=u)}catch{}}async function we(r,u){if(!b.value){b.value=!0,f.value="";try{await A("/computer/settings",{method:"PATCH",body:JSON.stringify({[r]:u})}),await Promise.all([F(),te()])}catch(R){V(R)}finally{b.value=!1}}}async function be(r){if(!ne.value||o.value)return;o.value=r,f.value="";const u=r==="accessibility"?"/computer/permissions/accessibility/request":"/computer/permissions/screen-recording/request",R=n.begin();try{const B=await A(u,{method:"POST",signal:R.signal});n.isCurrent(R)&&(i.value=B)}catch(B){n.isCurrent(R)&&V(B)}finally{o.value=null}}async function $e(){if(y.value)return;const r=h.begin();y.value=!0,f.value="";try{const u=await A("/computer/snapshot",{method:"POST",signal:r.signal});if(!h.isCurrent(r))return;t.value=u,g.value=!1}catch(u){h.isCurrent(r)&&V(u)}finally{y.value=!1}}async function ke(){f.value="",I=!1,$.clear(),O.invalidate(),await M()}function V(r){f.value||(f.value=qe(r))}return{status:i,preview:t,operations:v,error:f,remotePreviewBlocked:g,snapshotBusy:y,settingsBusy:b,operationsBusy:a,permissionBusy:o,permissionRequestsAllowed:ne,load:K,updateSetting:we,requestPermission:be,refreshSnapshot:$e,refreshOperations:ke}}function dt(e){return!(e instanceof fe)||e.code!=="FORBIDDEN"||!e.details||typeof e.details!="object"?!1:"reason"in e.details&&e.details.reason==="remote_computer_disabled"}const pt={class:"computer-view"},vt=Y({__name:"ComputerView",props:{revision:{},changes:{}},setup(e){const S=e,i=mt(()=>S.revision,()=>S.changes);return(t,v)=>(d(),q("div",pt,[s(i).error.value?(d(),w(j,{key:0,type:"error",variant:"tonal"},{default:m(()=>[C(c(s(i).error.value),1)]),_:1})):_("",!0),p(Xe,{preview:s(i).preview.value,enabled:s(i).status.value?.settings.enabled??!1,busy:s(i).snapshotBusy.value,"remote-preview-blocked":s(i).remotePreviewBlocked.value,onRefresh:s(i).refreshSnapshot},null,8,["preview","enabled","busy","remote-preview-blocked","onRefresh"]),p(Oe,{operations:s(i).operations.value,busy:s(i).operationsBusy.value,onRefresh:s(i).refreshOperations},null,8,["operations","busy","onRefresh"]),p(ct,{status:s(i).status.value,"settings-busy":s(i).settingsBusy.value,"permission-busy":s(i).permissionBusy.value,"permission-requests-allowed":s(i).permissionRequestsAllowed.value,onUpdateSetting:s(i).updateSetting,onRequestPermission:s(i).requestPermission},null,8,["status","settings-busy","permission-busy","permission-requests-allowed","onUpdateSetting","onRequestPermission"])]))}}),$t=Z(vt,[["__scopeId","data-v-2084f1f6"]]);export{$t as default};
@@ -0,0 +1 @@
1
+ .computer-operation-scroll[data-v-e1119403]{overflow-y:auto;overscroll-behavior:contain}.computer-operation-list[data-v-e1119403]{padding-block:4px}.computer-operation-list[data-v-e1119403] .v-list-item{min-height:52px;padding-inline:18px}.computer-operation-list[data-v-e1119403] .v-list-item-title,.computer-operation-list[data-v-e1119403] .v-list-item-subtitle{font-size:12px}.computer-preview-heading[data-v-f2938466]{min-width:0}.computer-preview-time[data-v-f2938466]{margin-top:2px;color:rgb(var(--v-theme-on-surface),.52);font-size:11px}.computer-preview-content[data-v-f2938466]{padding:14px}.computer-screen-shell[data-v-f2938466]{overflow:hidden;border:1px solid rgba(var(--v-border-color),var(--v-border-opacity));border-radius:10px;background:rgb(var(--v-theme-surface))}.computer-screen-shell img[data-v-f2938466]{display:block;width:100%;height:auto;object-fit:contain}.computer-screen-empty[data-v-f2938466]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:1px dashed rgba(var(--v-border-color),var(--v-border-opacity));border-radius:10px;background:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface),.68);text-align:center}.computer-preview-meta[data-v-f2938466]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px;margin-top:10px}.computer-preview-meta>div[data-v-f2938466]{display:flex;min-width:0;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:rgb(var(--v-theme-on-surface),.04)}.computer-preview-meta span[data-v-f2938466]{color:rgb(var(--v-theme-on-surface),.7);font-size:11px}.computer-preview-meta strong[data-v-f2938466]{color:rgb(var(--v-theme-on-surface),.92);font-size:12px;font-weight:650}@media(max-width:900px){.computer-preview-meta[data-v-f2938466]{grid-template-columns:1fr}}.computer-status-list[data-v-fbaed594]{display:flex;flex-direction:column;gap:2px;padding:12px 18px}.computer-status-row[data-v-fbaed594]{display:flex;min-height:36px;align-items:center;justify-content:space-between;gap:16px}.computer-status-label[data-v-fbaed594]{color:rgb(var(--v-theme-on-surface),.76);font-size:13px;font-weight:500}.computer-status-value[data-v-fbaed594]{color:rgb(var(--v-theme-on-surface),.94);font-size:13px;font-weight:600}.computer-permission-value[data-v-fbaed594]{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:10px}.computer-permission-state[data-v-fbaed594]{font-size:13px;font-weight:600;white-space:nowrap}.computer-permission-state.is-granted[data-v-fbaed594]{color:rgb(var(--v-theme-success))}.computer-permission-state.is-denied[data-v-fbaed594]{color:rgb(var(--v-theme-warning))}.computer-permission-state.is-muted[data-v-fbaed594]{color:rgb(var(--v-theme-on-surface),.72)}.computer-permission-btn[data-v-fbaed594]{padding-inline:10px;font-size:12px;font-weight:650}.computer-permission-alert[data-v-fbaed594]{margin-top:8px}.computer-settings-list[data-v-fbaed594],.computer-display-list[data-v-fbaed594]{padding-block:4px}.computer-settings-list[data-v-fbaed594] .v-list-item,.computer-display-list[data-v-fbaed594] .v-list-item{min-height:48px;padding-inline:18px}.computer-settings-list[data-v-fbaed594] .v-list-item-title,.computer-display-list[data-v-fbaed594] .v-list-item-title,.computer-display-list[data-v-fbaed594] .v-list-item-subtitle{font-size:12px}@media(max-width:900px){.computer-status-row[data-v-fbaed594]{min-height:40px}}.computer-view[data-v-2084f1f6]{display:flex;flex-direction:column;gap:14px;font-size:14px}