hermes-web-ui 0.6.24 → 0.6.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/js/{ChannelsView-DV-LtXVi.js → ChannelsView-p3dSvD02.js} +1 -1
- package/dist/client/assets/js/{ChatPanel-DyZWRnQs.js → ChatPanel-DRCE0v4g.js} +1 -1
- package/dist/client/assets/js/{ChatView-CuWpMwOd.js → ChatView-CAoJp8-Q.js} +1 -1
- package/dist/client/assets/js/{CodingAgentsView-D_Ngirz0.js → CodingAgentsView-X0I-H0Yu.js} +1 -1
- package/dist/client/assets/js/{DesktopPetView-BGY-7Dcd.js → DesktopPetView-BH9a1zur.js} +1 -1
- package/dist/client/assets/js/{DevicesView-BNZqDe2U.js → DevicesView-CMcwuGZ6.js} +1 -1
- package/dist/client/assets/js/{FileEditor-BPFC-M3W.js → FileEditor-CzWdryd5.js} +1 -1
- package/dist/client/assets/js/{FileRenameModal-5mJtyNBP.js → FileRenameModal-C2YmHkSN.js} +1 -1
- package/dist/client/assets/js/{FilesView-CRbkvC6l.js → FilesView-CKxvh6yi.js} +1 -1
- package/dist/client/assets/js/{GlobalAgentView-my3AKdll.js → GlobalAgentView-77p8MKvy.js} +1 -1
- package/dist/client/assets/js/{GroupChatView-btwSVoC0.js → GroupChatView-D1WFEfIs.js} +1 -1
- package/dist/client/assets/js/{HistoryMessageList-IubX9-tb.js → HistoryMessageList-BcG-gj6N.js} +1 -1
- package/dist/client/assets/js/{HistoryView-N3v7MNfo.js → HistoryView-CzybyBXj.js} +1 -1
- package/dist/client/assets/js/{JobsView-CHq_TJQ6.js → JobsView-BviznpSY.js} +1 -1
- package/dist/client/assets/js/{KanbanView-BMh8IgQo.js → KanbanView-B0c6OMrf.js} +1 -1
- package/dist/client/assets/js/{LoginView-sE4g4Zua.js → LoginView-B9nES8-3.js} +1 -1
- package/dist/client/assets/js/{LogsView-awh5ZCp8.js → LogsView-kLI6-05w.js} +1 -1
- package/dist/client/assets/js/{MarkdownRenderer-BbGvq6C-.js → MarkdownRenderer-DQvs79tf.js} +1 -1
- package/dist/client/assets/js/{McpManagerView-CnSCITtQ.js → McpManagerView-BZU1Puf0.js} +1 -1
- package/dist/client/assets/js/{MemoryView-CbQOeUKI.js → MemoryView-BH4LZtYd.js} +1 -1
- package/dist/client/assets/js/{MessageItem-DSHiAgFE.js → MessageItem-Cu3_aQT8.js} +2 -2
- package/dist/client/assets/js/{MessageList-oRCKlivC.js → MessageList-Ds_mjMbf.js} +1 -1
- package/dist/client/assets/js/{ModelsView-B0esXyBm.js → ModelsView-CZK6wwtt.js} +1 -1
- package/dist/client/assets/js/{OutlinePanel-BofcYepl.js → OutlinePanel-CYuSrNX9.js} +1 -1
- package/dist/client/assets/js/{PageSidebarFooter-BPeWlPvZ.js → PageSidebarFooter-Dk-OfmNy.js} +1 -1
- package/dist/client/assets/js/{PerformanceView-gc12dWCZ.js → PerformanceView-DkXk4HB_.js} +1 -1
- package/dist/client/assets/js/{PetdexView-CZjbg41u.js → PetdexView-DGkSZYVi.js} +1 -1
- package/dist/client/assets/js/{PluginsView-DRwyXTJC.js → PluginsView-D197obRC.js} +1 -1
- package/dist/client/assets/js/{ProfilesView-zVd3TfNW.js → ProfilesView-BhGBaYDE.js} +1 -1
- package/dist/client/assets/js/{SettingRow-G7ZusJw_.js → SettingRow-DfRI-z7L.js} +1 -1
- package/dist/client/assets/js/{SettingsCircuitBadge-CFo2KqP-.js → SettingsCircuitBadge-Eiv8LQz0.js} +1 -1
- package/dist/client/assets/js/{SettingsView-DDjt6UpN.js → SettingsView-B4ipIIOj.js} +1 -1
- package/dist/client/assets/js/{SkillsUsageView-DnVnAYHG.js → SkillsUsageView-DT4o1LA9.js} +1 -1
- package/dist/client/assets/js/{SkillsView-CHi4L7Oi.js → SkillsView-CUK-9OLz.js} +1 -1
- package/dist/client/assets/js/{TerminalPanel-Dx7huJY2.js → TerminalPanel-gyT2AS7Z.js} +1 -1
- package/dist/client/assets/js/{TerminalView-PQIIFHwX.js → TerminalView-C3a6BwEG.js} +1 -1
- package/dist/client/assets/js/{UsageView-Dzr2wBc7.js → UsageView-DrUS9OIk.js} +1 -1
- package/dist/client/assets/js/{VersionPreviewView-JQrieRPU.js → VersionPreviewView-qbXwqYd3.js} +1 -1
- package/dist/client/assets/js/{WorkflowView-DRanDY9s.js → WorkflowView-D-6z--9A.js} +1 -1
- package/dist/client/assets/js/{_plugin-vue_export-helper-fFMkIM4P.js → _plugin-vue_export-helper-CvnFozKy.js} +2 -2
- package/dist/client/assets/js/{chat-timestamp-CZtP79YD.js → chat-timestamp-CkDNtK9Y.js} +1 -1
- package/dist/client/assets/js/{files-DOpu4Qfg.js → files-CBYc0MSs.js} +1 -1
- package/dist/client/assets/js/index-B2IKGvbR.js +3 -0
- package/dist/client/assets/js/{models-y7NaVj-e.js → models-DetB4_Ug.js} +1 -1
- package/dist/client/assets/js/{session-browser-prefs-BOqwOeHi.js → session-browser-prefs-BYjSnxJq.js} +1 -1
- package/dist/client/assets/js/{skills-D7ZMzzzG.js → skills-5qxphanX.js} +1 -1
- package/dist/client/assets/js/{system-CRmVbE8Z.js → system-Onp4yS9N.js} +1 -1
- package/dist/client/assets/js/{ttsHelpers-vHLmbeY4.js → ttsHelpers-DNcZ5khq.js} +1 -1
- package/dist/client/assets/js/{useSttSettings-s4LBWl55.js → useSttSettings-C-jexrW7.js} +1 -1
- package/dist/client/index.html +3 -3
- package/dist/server/agent-bridge/python/bridge_runtime.py +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/openapi.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/js/index-Brl4qW5V.js +0 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as K}from"./rolldown-runtime-M0oDzQ_3.js";import{$t as Rt,An as Qs,Bn as Z,Dn as Gs,E as Xs,Hn as S,It as mt,Jt as ze,K as _t,Kt as Ie,M as eo,Nn as be,Ot as Q,Un as Ft,V as ss,Y as to,Zt as Vt,an as t,cn as v,cr as s,en as st,er as _,fn as j,fr as ot,g as ao,gt as no,hn as Ue,in as w,jn as r,kn as Ne,nt as os,on as ye,ot as Ve,pn as D,pr as f,sn as T,t as yt,tn as pe,ur as ve,vn as zt,wn as ie}from"./ui-vendor-DDMfmCj2.js";import{O as qe,k as He}from"./vue-vendor-BsMpqyaC.js";import{f as Oe,n as je,t as Ke,u as ls}from"./_plugin-vue_export-helper-fFMkIM4P.js";import{A as so,Dt as oo,E as is,Et as lo,L as io,Ot as ro,R as uo,T as rs,dt as co,k as vo,kt as po,vt as fo}from"./index-Brl4qW5V.js";import{n as ho,t as go}from"./clipboard-1NPxC3YL.js";import{l as mo,s as _o}from"./skills-D7ZMzzzG.js";import{a as us,i as yo,o as cs,r as ko}from"./chat-timestamp-CZtP79YD.js";import{c as wo,d as So,l as bo,n as xo,t as Co,u as Mo}from"./useSttSettings-s4LBWl55.js";import{d as $o,f as Io}from"./ttsHelpers-vHLmbeY4.js";import{n as To,r as Ot,t as Nt}from"./chat-input-height-BhYiNOv7.js";import{n as Po,t as Eo}from"./MessageItem-DSHiAgFE.js";var Ut,qt,Ht,jt,Kt,Wt,Jt,Yt,Zt,Qt,Gt,Xt,ds,ea=K((()=>{Ie(),yt(),qe(),ls(),ho(),Ut={class:"folder-picker"},qt={key:0,class:"folder-picker-loading"},Ht={key:1,class:"folder-tree"},jt={class:"folder-name"},Kt=["onClick","onContextmenu"],Wt=["onClick"],Jt={class:"folder-name"},Yt={class:"folder-empty-text"},Zt={key:1,class:"folder-empty"},Qt={key:2,class:"folder-selected"},Gt={class:"folder-selected-label"},Xt={class:"folder-selected-path"},ds=Ue({__name:"FolderPicker",props:{modelValue:{}},emits:["update:modelValue"],setup(b,{emit:M}){const l=b,c=M,{t:p}=He(),x=to(),y=ss(),u=_(!1),E=_(""),Y=_([]),C=_(new Set),A=_(new Map),W=_(new Set),U=_(l.modelValue||""),ae=_(!1),G=_(!1),ne=_(0),ce=_(0),X=_(null),g=_(!1),$=_("create"),P=_(""),q=_(!1);Z(()=>l.modelValue,m=>{U.value=m||""});function F(m){const h=String(m||"").trim();U.value=h,c("update:modelValue",h||null)}async function ee(m=""){try{return await Oe(`/api/hermes/workspace/folders${m?`?path=${encodeURIComponent(m)}`:""}`)}catch{return null}}function de(m){const h=m.replace(/\//g,"\\"),B=h.match(/^([a-zA-Z]:)\\?$/);if(B)return`${B[1].toUpperCase()}\\`;const se=h.match(/^([a-zA-Z]:)\\(.+)$/);if(se){const oe=h.replace(/\\+$/,""),H=oe.lastIndexOf("\\");return H<=2?`${se[1].toUpperCase()}\\`:oe.slice(0,H)}const J=m.split("/").filter(Boolean);return J.pop(),J.join("/")}async function re(m=""){const h=await ee(m);if(!h){ae.value=!0;return}if(ae.value=!1,!m){E.value=h.base,Y.value=h.folders;return}A.value.set(m,h.folders),A.value=new Map(A.value)}Ne(async()=>{u.value=!0,await re(),u.value=!1});async function z(m){if(C.value.has(m.path)){C.value.delete(m.path),C.value=new Set(C.value);return}if(C.value.add(m.path),C.value=new Set(C.value),!A.value.has(m.path)){W.value.add(m.path),W.value=new Set(W.value);const h=await ee(m.path);A.value.set(m.path,h?.folders||[]),A.value=new Map(A.value),W.value.delete(m.path),W.value=new Set(W.value)}}function k(m){F(m.fullPath)}function I(){F(E.value)}async function R(m){if(!m){I();return}k(m),C.value.has(m.path)||await z(m)}function L(m,h){m.preventDefault(),m.stopPropagation(),X.value=h,ne.value=m.clientX,ce.value=m.clientY,G.value=!1,ie(()=>{G.value=!0})}const O=w(()=>{const m=[{label:p("files.open"),key:"open"},{type:"divider",key:"d1"},{label:p("files.copyPath"),key:"copyPath"},{label:p("files.newFolder"),key:"newFolder"}];return X.value&&(X.value.readonly||(m.push({label:p("files.rename"),key:"rename"}),m.push({type:"divider",key:"d2"}),m.push({label:p("files.delete"),key:"delete"}))),m});function V(){G.value=!1}function ke(m){$.value=m,P.value=m==="rename"&&X.value?.name||"",g.value=!0}async function he(m){G.value=!1;const h=X.value;switch(m){case"open":await R(h);break;case"copyPath":{const B=await go(h?.fullPath||E.value);y[B?"success":"error"](B?p("files.pathCopied"):`${p("files.pathCopied")} ✗`);break}case"newFolder":ke("create");break;case"rename":h&&ke("rename");break;case"delete":if(!h)return;x.warning({title:p("files.delete"),content:p("files.confirmDeleteDir",{name:h.name}),positiveText:p("common.delete"),negativeText:p("common.cancel"),onPositiveClick:async()=>{try{await Oe("/api/hermes/workspace/folders",{method:"DELETE",body:JSON.stringify({path:h.path})}),(U.value===h.fullPath||U.value.startsWith(`${h.fullPath}/`))&&F(null),C.value.delete(h.path),C.value=new Set(C.value),A.value.delete(h.path),A.value=new Map(A.value),await re(de(h.path)),y.success(p("files.deleted"))}catch{y.error(p("files.deleteFailed"))}}});break}}async function De(){const m=P.value.trim();if(m){q.value=!0;try{if($.value==="create"){const h=X.value?.path||"";await Oe("/api/hermes/workspace/folders",{method:"POST",body:JSON.stringify({parentPath:h,name:m})}),h&&(C.value.add(h),C.value=new Set(C.value)),await re(h),y.success(p("files.created"))}else if(X.value){const h=X.value;await Oe("/api/hermes/workspace/folders/rename",{method:"POST",body:JSON.stringify({path:h.path,name:m})}),await re(de(h.path)),(U.value===h.fullPath||U.value.startsWith(`${h.fullPath}/`))&&F(null),y.success(p("files.renamed"))}g.value=!1}catch{y.error($.value==="rename"?p("files.renameFailed"):p("files.createFailed"))}finally{q.value=!1}}}const ge=w(()=>{const m=[];function h(B,se){for(const J of B){const oe=C.value.has(J.path),H=W.value.has(J.path),le=A.value.get(J.path);m.push({folder:J,depth:se,isExpanded:oe,isLoading:H,hasChildren:le?le.length>0:null}),oe&&le&&le.length>0&&h(le,se+1)}}return h(Y.value,0),m});return(m,h)=>(r(),v("div",Ut,[D(s(mt),{value:U.value,placeholder:s(p)("chat.workspacePlaceholder"),clearable:"",size:"small",class:"folder-path-input","onUpdate:value":F},null,8,["value","placeholder"]),u.value?(r(),v("div",qt,[D(s(ao),{size:"small"})])):(r(),v("div",Ht,[E.value?(r(),v("div",{key:0,class:ve(["folder-item root",{selected:U.value===E.value}]),onClick:I,onContextmenu:h[0]||(h[0]=B=>L(B,null))},[h[4]||(h[4]=t("span",{class:"folder-icon"},"📂",-1)),t("span",jt,f(E.value||"/"),1)],34)):T("",!0),(r(!0),v(pe,null,be(ge.value,B=>(r(),v("div",{key:B.folder.path,class:ve(["folder-item",{selected:U.value===B.folder.fullPath}]),style:ot({paddingLeft:`${12+B.depth*16}px`}),onClick:se=>k(B.folder),onContextmenu:se=>L(se,B.folder)},[t("span",{class:"folder-expand",onClick:st(se=>z(B.folder),["stop"])},[B.isLoading?(r(),v(pe,{key:0},[j("⏳")],64)):(r(),v(pe,{key:1},[j(f(B.isExpanded?"▼":"▶"),1)],64))],8,Wt),h[5]||(h[5]=t("span",{class:"folder-icon"},"📁",-1)),t("span",Jt,f(B.folder.name),1)],46,Kt))),128)),(r(!0),v(pe,null,be(ge.value,B=>(r(),v(pe,{key:"empty-"+B.folder.path},[B.isExpanded&&!B.isLoading&&B.hasChildren===!1?(r(),v("div",{key:0,class:"folder-item empty",style:ot({paddingLeft:`${28+B.depth*16}px`})},[t("span",Yt,f(s(p)("chat.folderPickerEmpty")),1)],4)):T("",!0)],64))),128)),(Y.value.length===0||ae.value)&&!u.value?(r(),v("div",Zt,f(s(p)("chat.folderPickerNoFolders")),1)):T("",!0)])),U.value?(r(),v("div",Qt,[t("span",Gt,f(s(p)("chat.folderPickerSelected")),1),t("span",Xt,f(U.value),1)])):T("",!0),D(s(os),{show:G.value,x:ne.value,y:ce.value,options:O.value,placement:"bottom-start",trigger:"manual",onSelect:he,onClickoutside:V},null,8,["show","x","y","options"]),D(s(_t),{show:g.value,"onUpdate:show":h[3]||(h[3]=B=>g.value=B),preset:"dialog",title:$.value==="rename"?s(p)("files.rename"):s(p)("files.newFolder"),style:{width:"400px"}},{action:S(()=>[D(s(eo),{justify:"end"},{default:S(()=>[D(s(Q),{size:"small",onClick:h[2]||(h[2]=B=>g.value=!1)},{default:S(()=>[j(f(s(p)("common.cancel")),1)]),_:1}),D(s(Q),{size:"small",type:"primary",loading:q.value,disabled:!P.value.trim(),onClick:De},{default:S(()=>[j(f(s(p)("common.confirm")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:S(()=>[D(s(mt),{value:P.value,"onUpdate:value":h[1]||(h[1]=B=>P.value=B),placeholder:$.value==="rename"?s(p)("files.renameTo"):s(p)("files.newFolderName")},null,8,["value","placeholder"])]),_:1},8,["show","title"])]))}})})),Lo=K((()=>{})),Bo,$l=K((()=>{ea(),ea(),Lo(),je(),Bo=Ke(ds,[["__scopeId","data-v-5b5a0af0"]])}));async function Do(b,M,l){return(await Oe(`/api/hermes/model-context/${encodeURIComponent(b)}/${encodeURIComponent(M)}`,{method:"PUT",body:JSON.stringify({provider:b,model:M,context_limit:l})})).data}var Ao=K((()=>{ls()})),ta,aa,na,sa,oa,la,ia,vs,ra=K((()=>{Ie(),qe(),ta=["data-status"],aa={class:"voice-transcript-overlay__status"},na={key:0,class:"voice-transcript-overlay__transcript"},sa={key:1,class:"voice-transcript-overlay__error",role:"alert"},oa={key:2,class:"voice-transcript-overlay__debug"},la={class:"voice-transcript-overlay__debug-title"},ia={class:"voice-transcript-overlay__debug-list"},vs=Ue({__name:"VoiceTranscriptOverlay",props:{status:{},transcript:{},error:{default:null},floating:{type:Boolean,default:!1},events:{default:()=>[]},debug:{type:Boolean,default:!1}},setup(b){const M=b,{t:l}=He(),c=w(()=>l(`chat.voiceInput.status.${M.status}`)),p=w(()=>l("chat.voiceInput.statusLabel",{status:c.value})),x=w(()=>l("chat.voiceInput.transcriptLabel",{text:M.transcript})),y=w(()=>l("chat.voiceInput.errorLabel",{error:M.error})),u=w(()=>M.events.slice(-5).map(E=>E.type));return(E,Y)=>(r(),v("div",{class:ve(["voice-transcript-overlay",{"voice-transcript-overlay--floating":M.floating}]),"data-testid":"voice-transcript-overlay","data-status":M.status,role:"status","aria-live":"polite"},[t("p",aa,f(p.value),1),M.transcript?(r(),v("p",na,f(x.value),1)):T("",!0),M.error?(r(),v("p",sa,f(y.value),1)):T("",!0),M.debug&&u.value.length?(r(),v("div",oa,[t("p",la,f(s(l)("chat.voiceInput.recentEvents")),1),t("ol",ia,[(r(!0),v(pe,null,be(u.value,(C,A)=>(r(),v("li",{key:`${A}:${C}`,class:"voice-transcript-overlay__debug-item","data-testid":"voice-event-debug-item"},f(C),1))),128))])])):T("",!0)],10,ta))}})})),Ro=K((()=>{})),ps,Fo=K((()=>{ra(),ra(),Ro(),je(),ps=Ke(vs,[["__scopeId","data-v-181f0eed"]])})),ua,ca,da,va,pa,fs,fa=K((()=>{Ie(),qe(),Fo(),ua={class:"voice-dialogue-controls__actions"},ca=["aria-label","aria-pressed"],da={key:0,class:"voice-dialogue-controls__icon",width:"16",height:"16",viewBox:"0 0 24 24","aria-hidden":"true"},va={key:1,class:"voice-dialogue-controls__icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},pa=["aria-label"],fs=Ue({__name:"VoiceDialogueControls",props:{status:{},transcript:{},error:{default:null},events:{default:()=>[]},debug:{type:Boolean,default:!1},onStart:{},onStop:{},onCancel:{}},setup(b){const M=b,l=new Set(["capturing","transcribing","sending"]),{t:c}=He(),p=w(()=>l.has(M.status)),x=w(()=>p.value||!!M.transcript||!!M.error),y=w(()=>p.value?c("chat.voiceInput.stopCaptureAndInsert"):c("chat.voiceInput.startCapture"));async function u(){if(p.value){await M.onStop();return}await M.onStart()}function E(){M.onCancel()}return(Y,C)=>(r(),v("div",{class:ve(["voice-dialogue-controls voice-dialogue-controls--floating-overlay",{active:p.value}])},[x.value?(r(),ye(ps,{key:0,floating:"",status:M.status,transcript:M.transcript,error:M.error,events:M.events,debug:M.debug},null,8,["status","transcript","error","events","debug"])):T("",!0),t("div",ua,[t("button",{type:"button",class:ve(["voice-dialogue-controls__toggle",{active:p.value}]),"data-testid":"voice-record-toggle","aria-label":y.value,"aria-pressed":p.value,onClick:u},[p.value?(r(),v("svg",da,[...C[0]||(C[0]=[t("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2",fill:"currentColor"},null,-1)])])):(r(),v("svg",va,[...C[1]||(C[1]=[t("path",{d:"M12 3a3 3 0 0 0-3 3v5a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3Z"},null,-1),t("path",{d:"M5 10v1a7 7 0 0 0 14 0v-1"},null,-1),t("path",{d:"M12 18v3"},null,-1),t("path",{d:"M9 21h6"},null,-1)])]))],10,ca),p.value?(r(),v("button",{key:0,type:"button",class:"voice-dialogue-controls__cancel","data-testid":"voice-record-cancel","aria-label":s(c)("chat.voiceInput.cancelCapture"),onClick:E},[...C[2]||(C[2]=[t("svg",{class:"voice-dialogue-controls__icon voice-dialogue-controls__icon--small",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","aria-hidden":"true"},[t("path",{d:"M18 6 6 18"}),t("path",{d:"m6 6 12 12"})],-1)])],8,pa)):T("",!0)])],2))}})})),Vo=K((()=>{})),hs,zo=K((()=>{fa(),fa(),Vo(),je(),hs=Ke(fs,[["__scopeId","data-v-22dab386"]])}));function Oo(b){let M=0;return function(c,p={}){return M+=1,{id:`${b}:${M}`,seq:M,sessionId:b,type:c,captureId:p.captureId,turnId:p.turnId,timestamp:p.timestamp??new Date().toISOString(),final:p.final,payload:p.payload}}}var No=K((()=>{}));function ft(b){return`${b}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function ha(b){return b instanceof Error?b:new Error(String(b))}function Uo(b){return b.replace(/\s+/g," ").trim()}function qo(b){const M=ft("voice-session"),l=Oo(M),c=_([]),p=_("idle"),x=_(null),y=_(null),u=_(""),E=_(null),Y=w(()=>p.value!=="idle");function C(g,$={}){const P=l(g,{...$,captureId:$.captureId??x.value??void 0,turnId:$.turnId??y.value??void 0});return c.value.push(P),c.value.length>50&&c.value.splice(0,c.value.length-50),P}function A(g,$={}){const P=ha(g);return E.value=P,p.value="error",C("session.error",{captureId:$.captureId,turnId:$.turnId,final:!0,payload:P}),P}function W(g={}){const $=g.captureId??x.value,P=g.turnId??y.value;P&&C("turn.cancelled",{captureId:$??void 0,turnId:P,final:!0}),$&&C("capture.cancelled",{captureId:$,turnId:P??void 0,final:!0}),x.value=null,y.value=null,u.value="",E.value=null,p.value="idle"}C("session.started",{final:!0});async function U(){try{await Promise.resolve(b.stopOutputAudio?.())}catch($){console.warn("[useVoiceDialogue] Failed to stop output audio before capture:",ha($))}(x.value||y.value)&&W(),E.value=null,u.value="",p.value="capturing",y.value=null;const g=ft("capture");return x.value=g,C("capture.started",{captureId:g}),{captureId:g}}async function ae(g,$){if(x.value!==g)return;const P=Uo($);if(!P){u.value="",ne(g);return}E.value=null,u.value=P,p.value="sending",C("transcript.done",{captureId:g,final:!0,payload:{text:P}});const q=ft("turn");y.value=q,C("turn.started",{captureId:g,turnId:q,payload:{text:P}});try{await Promise.resolve(b.sendMessage(P))}catch(F){if(x.value===g&&y.value===q)throw A(F,{captureId:g,turnId:q}),F;return}x.value!==g||y.value!==q||(C("turn.ended",{captureId:g,turnId:q,final:!0,payload:{text:P}}),x.value=null,y.value=null,u.value="",p.value="idle")}async function G(g,$){if(x.value===g){E.value=null,p.value="transcribing";try{const P=await b.transcribe($);if(x.value!==g)return;await ae(g,P.text)}catch(P){if(x.value===g)throw E.value===null&&A(P,{captureId:g,turnId:y.value??void 0}),P;return}}}function ne(g=x.value){!g||x.value!==g||W({captureId:g,turnId:y.value})}function ce(g){C("output.audio.started",{payload:g})}function X(g){C("output.audio.done",{final:!0,payload:g})}return{sessionId:M,events:c,status:p,activeCaptureId:x,activeTurnId:y,transcript:u,error:E,isBusy:Y,beginCapture:U,transcribeAndSend:G,commitTranscript:ae,cancelCapture:ne,markOutputStarted:ce,markOutputDone:X}}var Ho=K((()=>{Ie(),No()}));function ht(b){return b instanceof Error?b:new Error(String(b))}function lt(b){return b.replace(/\s+/g," ").trim()}function it(b){return lt(b.filter(Boolean).join(" "))}function jo(b){return lt(b?.[0]?.transcript??"")}function Ko(b){const M=b.results,l=typeof b.resultIndex=="number"?b.resultIndex:0,c=[],p=[];if(!M||typeof M.length!="number")return{finalText:"",interimText:""};for(let x=l;x<M.length;x+=1){const y=M[x],u=jo(y);u&&(y?.isFinal?c.push(u):p.push(u))}return{finalText:it(c),interimText:it(p)}}function ga(){if(typeof window>"u")return null;const b=window;return b.SpeechRecognition??b.webkitSpeechRecognition??null}function Wo(b={}){const M=_(!!ga()),l=_("idle"),c=_(""),p=_(""),x=_(null);let y=null,u=0,E=null,Y=null,C=null,A=null;function W(){return b.messages?.unsupported||gs}function U(k){const I=k?.trim();return I&&b.messages?.failedWithReason?b.messages.failedWithReason(I):I?`Browser speech recognition failed: ${I}.`:b.messages?.failed||"Browser speech recognition failed."}function ae(){A!==null&&(clearTimeout(A),A=null)}function G(){E=null,Y=null,C=null,ae()}function ne(k){k&&(k.onresult=null,k.onerror=null,k.onend=null)}function ce(k){const I=Y;G(),I?.(lt(k))}function X(k){const I=C,R=ht(k);G(),I?.(R)}function g(k={}){l.value="idle",k.clearTranscript&&(c.value=""),p.value="",k.clearError&&(x.value=null)}function $(){return it([c.value,p.value])}function P(k,I,R){const L=new k;return y=L,L.lang=R,L.interimResults=!0,L.continuous=!0,L.onresult=O=>{if(I!==u||y!==L)return;const{finalText:V,interimText:ke}=Ko(O);V&&(c.value=it([c.value,V])),p.value=ke},L.onerror=O=>{ee(I,new Error(U(typeof O.error=="string"?O.error:void 0)))},L.onend=()=>{if(!(I!==u||y!==L)){if(l.value==="listening"&&!E){y=null,ne(L),p.value="";try{P(k,I,R).start()}catch(O){ee(I,O)}return}F(I)}},L}function q(){x.value=null,l.value==="error"&&(l.value="idle")}function F(k,I=$()){if(k!==u)return;const R=y;y=null,ne(R),g(),ce(I)}function ee(k,I){if(k!==u)return ht(I);const R=ht(I),L=y;return y=null,ne(L),p.value="",l.value="error",x.value=R,X(R),R}async function de(k={}){const I=ga();if(M.value=!!I,!I){const V=new Error(W());throw l.value="error",x.value=V,V}z();const R=++u,L=typeof k.language=="string"?k.language.trim():"";c.value="",p.value="",x.value=null,l.value="listening";const O=P(I,R,L);try{O.start()}catch(V){throw ee(R,V)}}function re(){const k=u,I=y;return I?E||(l.value="stopping",E=new Promise((R,L)=>{Y=R,C=L,ae(),A=setTimeout(()=>{F(k)},ms);try{I.stop()}catch(O){ee(k,O)}}),E):(l.value!=="error"&&g(),Promise.resolve(lt($())))}function z(){u+=1;const k=y;y=null,ne(k);try{k?.abort()}catch{}ce(""),g({clearTranscript:!0,clearError:!0})}return{isSupported:M,status:l,transcript:c,partialTranscript:p,error:x,start:de,stop:re,cancel:z,clearError:q}}var gs,ms,Jo=K((()=>{Ie(),gs="Browser speech recognition is not supported in this browser.",ms=1e3})),ma,_a,ya,ka,wa,Sa,ba,xa,Ca,Ma,$a,Ia,Ta,Pa,Ea,La,Ba,Da,Aa,Ra,Fa,Va,za,Oa,Na,Ua,qa,Ha,ja,Ka,Wa,Ja,Ya,Za,Qa,Ga,Xa,nt,en,_s,tn=K((()=>{Ie(),rs(),ro(),lo(),io(),fo(),Ao(),mo(),yt(),qe(),us(),zo(),Mo(),$o(),Ho(),wo(),Co(),Jo(),so(),To(),ma={class:"chat-input-area"},_a={key:0,class:"attachment-previews"},ya=["src","alt"],ka={key:1,class:"attachment-file"},wa={class:"file-name"},Sa={class:"file-size"},ba=["onClick"],xa=["title"],Ca={key:0,class:"context-usage-row"},Ma={class:"context-bar"},$a=["placeholder"],Ia={class:"input-toolbar"},Ta={class:"input-top-bar"},Pa={class:"reasoning-effort-label"},Ea={class:"input-settings-label"},La={class:"input-model-label"},Ba={class:"input-actions"},Da={key:0,width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},Aa={key:1,width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},Ra={class:"visually-hidden"},Fa=["onMousedown","onMouseenter"],Va={class:"slash-command-name"},za={key:0,class:"slash-command-args"},Oa={class:"slash-command-desc"},Na={key:0,class:"skill-picker-modal"},Ua=["placeholder"],qa={class:"skill-picker-list"},Ha={key:0,class:"skill-picker-empty"},ja=["onClick","onKeydown"],Ka={class:"skill-picker-command"},Wa={class:"skill-picker-name"},Ja={class:"skill-picker-desc"},Ya={key:2,class:"skill-picker-empty"},Za={class:"context-edit-content"},Qa={style:{"margin-bottom":"16px",color:"#666"}},Ga={style:{"margin-top":"12px","font-size":"12px",color:"#999"}},Xa={style:{display:"flex","justify-content":"flex-end",gap:"8px"}},nt="hermes_chat_input_drafts_v1",en=256e3,_s=Ue({__name:"ChatInput",props:{modelLabel:{default:""}},emits:["modelClick"],setup(b,{expose:M,emit:l}){const c=is(),p=po(),x=oo(),y=uo(),{t:u}=He(),E=ss(),{toolTraceVisible:Y,toggleToolTraceVisible:C}=cs(),A=b,W=l,U=w(()=>[{label:u("chat.reasoningEffort.options.default"),value:""},{label:u("chat.reasoningEffort.options.none"),value:"none"},{label:u("chat.reasoningEffort.options.minimal"),value:"minimal"},{label:u("chat.reasoningEffort.options.low"),value:"low"},{label:u("chat.reasoningEffort.options.medium"),value:"medium"},{label:u("chat.reasoningEffort.options.high"),value:"high"},{label:u("chat.reasoningEffort.options.xhigh"),value:"xhigh"}]),ae=w(()=>c.activeSession?.reasoningEffort||""),G=w(()=>{const e=ae.value;return e?U.value.find(a=>a.value===e)?.label||e:u("chat.reasoningEffort.defaultLabel")});function ne(e){const a=c.activeSessionId;a&&c.setSessionReasoningEffort(a,e||"")}function ce(){W("modelClick")}const X=w(()=>{const e=A.modelLabel||u("models.selectModel"),a=e.split("/").filter(Boolean);return a[a.length-1]||e}),g=_(""),$=_(),P=_(),q=_(),F=_([]),ee=_(!1),de=_(0),re=_(!1),z=_(typeof window<"u"?Ot(window.innerWidth):!1),k=_(!1),I=Io(),R=So({messages:{unsupported:u("chat.voiceInput.microphoneUnsupported"),recordingFailed:u("chat.voiceInput.microphoneRecordingFailed")}}),L=xo(),O=Wo({messages:{unsupported:u("chat.voiceInput.browserSpeechUnsupported"),failed:u("chat.voiceInput.browserSpeechFailed"),failedWithReason:e=>u("chat.voiceInput.browserSpeechFailedWithReason",{error:e})}}),V=_(null),ke=w(()=>z.value?null:Nt(y.display.chat_input_height));function he(e){return e.replace(/\s+/g," ").trim()}function De(){return L.provider.value==="custom"?{provider:"custom",language:L.customLanguage.value.trim()||void 0,prompt:L.customPrompt.value.trim()||void 0}:L.provider.value==="doubao"?{provider:"doubao"}:{provider:"openai",language:L.openaiLanguage.value.trim()||void 0,prompt:L.openaiPrompt.value.trim()||void 0}}function ge(){return L.openaiLanguage.value.trim()||L.customLanguage.value.trim()||""}function m(e){const a=he(e);if(!a)return;const i=$.value,N=g.value,fe=i?.selectionStart??N.length,Le=i?.selectionEnd??fe,Be=N.slice(0,fe),pt=N.slice(Le),Dt=Be&&!/\s$/.test(Be)?" ":"",Zs=`${Be}${Dt}${a}${pt&&!/^\s/.test(pt)?" ":""}${pt}`,At=Be.length+Dt.length+a.length;g.value=Zs,H.value=!1,ie(()=>{const at=$.value;at&&(at.focus(),at.setSelectionRange(At,At),ct(at))})}const h=qo({transcribe:async e=>{const{provider:a,language:i,prompt:N}=De();return bo({audio:e,provider:a,language:i,prompt:N})},sendMessage:async e=>{m(e)},stopOutputAudio:()=>I.stop(!0)}),B=w(()=>V.value!=="browser"||h.status.value!=="capturing"?h.transcript.value:he([O.transcript.value,O.partialTranscript.value].filter(Boolean).join(" "))),se=w(()=>L.provider.value==="browser"||V.value==="browser"),J=w(()=>h.error.value?.message??(se.value?O.error.value?.message:null)??R.state.value.error?.message??null),oe=w(()=>vo.map(e=>({key:e.key,name:e.name,args:e.argsKey?u(e.argsKey):e.args||"",description:u(e.descriptionKey),insertText:e.insertText,opensSkillPicker:e.opensSkillPicker}))),H=_(!1),le=_(""),me=_(0),Te=_([]),xe=_(!1),we=_(""),Pe=_(!1);let o="",n=null;const d=w(()=>c.activeSession?.source==="cli"),te=w(()=>!!c.activeSession&&c.activeSession.source!=="coding_agent"),ue=w(()=>{const e=new Map;for(const a of Te.value)for(const i of a.skills||[])i.enabled!==!1&&(e.has(i.name)||e.set(i.name,i));return[...e.values()].map(a=>{const i=ws(a.name);return{key:`skill:${i}`,name:a.name,commandName:i,description:a.description||a.name}})}),_e=w(()=>{const e=le.value.trim().toLowerCase(),a=d.value?oe.value:te.value?oe.value.filter(i=>i.name==="fork"):[];return e?a.filter(i=>{const N=i.name.toLowerCase(),fe=i.insertText?.toLowerCase(),Le=i.description.toLowerCase();return N.startsWith(e)||fe?.startsWith(e)||Le.includes(e)}):a}),We=w(()=>{const e=we.value.trim().toLowerCase();return e?ue.value.filter(a=>a.name.toLowerCase().includes(e)||a.commandName.includes(e)||a.description.toLowerCase().includes(e)):ue.value});function ws(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/_/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}function rt(){return c.activeSession?.profile||x.activeProfileName||"default"}async function Ss(){if(!d.value)return;const e=rt();return o===e||n||(n=(async()=>{try{const a=await _o(e);if(rt()!==e)return;Te.value=a.categories||[],o=e}catch{if(rt()!==e)return;Te.value=[],o=e}finally{n=null}})()),n}const Se=_(null);function ut(){typeof window>"u"||(z.value=Ot(window.innerWidth))}function bs(){k.value=!1,Je()}function ct(e=$.value){!e||Se.value!==null||(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,100)}px`)}function Je(){if(k.value)return;Se.value=ke.value;const e=$.value;if(e){if(Se.value===null){ct(e);return}e.style.height=`${Se.value}px`}}function xs(e){e.preventDefault();const a=$.value;if(!a)return;k.value=!0;const i=a.clientHeight,N=e.clientY;function fe(Be){Se.value=Nt(i-(Be.clientY-N))??Se.value}function Le(){document.removeEventListener("mousemove",fe),document.removeEventListener("mouseup",Le),document.body.style.cursor="",document.body.style.userSelect=""}document.body.style.cursor="row-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",fe),document.addEventListener("mouseup",Le)}const Ce=_(!1),Cs=w(()=>[{label:u("chat.autoPlaySpeech"),key:"autoPlaySpeech",icon:()=>zt("span",{class:["settings-check",{active:Ce.value}],"aria-hidden":"true"},Ce.value?"✓":"")},{label:u("chat.showToolCalls"),key:"toolTrace",icon:()=>zt("span",{class:["settings-check",{active:Y.value}],"aria-hidden":"true"},Y.value?"✓":"")}]);function kt(){try{const e=JSON.parse(localStorage.getItem(nt)||"{}");return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return{}}}function wt(){return c.activeSessionId||c.activeSession?.id||""}function St(){const e=wt();g.value=e&&kt()[e]||""}function bt(e){const a=wt();if(!a)return;const i=kt();e?i[a]=e:delete i[a],Object.keys(i).length>0?localStorage.setItem(nt,JSON.stringify(i)):localStorage.removeItem(nt)}Ne(()=>{St();const e=localStorage.getItem("autoPlaySpeech");e!==null&&(Ce.value=e==="true",c.setAutoPlaySpeech(Ce.value)),ut(),window.addEventListener("resize",ut),ie(()=>{Je()})}),Z(Ce,e=>{localStorage.setItem("autoPlaySpeech",String(e)),c.setAutoPlaySpeech(e)});function Ms(e){if(e==="autoPlaySpeech"){Ce.value=!Ce.value;return}e==="toolTrace"&&C()}Z(g,e=>{bt(e)}),Z(()=>c.activeSession?.id,()=>{St(),ie(()=>{Je()})}),Z(ke,()=>{Je()}),Z(()=>[c.activeSession?.profile,x.activeProfileName],()=>{o="",Te.value=[]});const xt=w(()=>g.value.trim().length>0||F.value.length>0),Ee=w(()=>c.isStreaming&&!xt.value);function Ct(){ie(()=>{P.value&&P.value.querySelector(".active")?.scrollIntoView({block:"nearest",behavior:"instant"})})}function Mt(){if(!d.value&&!te.value){H.value=!1;return}const e=$.value;if(!e)return;const a=e.selectionStart,i=g.value.slice(0,a);if(!i.startsWith("/")||i.includes(" ")||i.includes(`
|
|
1
|
+
import{n as K}from"./rolldown-runtime-M0oDzQ_3.js";import{$t as Rt,An as Qs,Bn as Z,Dn as Gs,E as Xs,Hn as S,It as mt,Jt as ze,K as _t,Kt as Ie,M as eo,Nn as be,Ot as Q,Un as Ft,V as ss,Y as to,Zt as Vt,an as t,cn as v,cr as s,en as st,er as _,fn as j,fr as ot,g as ao,gt as no,hn as Ue,in as w,jn as r,kn as Ne,nt as os,on as ye,ot as Ve,pn as D,pr as f,sn as T,t as yt,tn as pe,ur as ve,vn as zt,wn as ie}from"./ui-vendor-DDMfmCj2.js";import{O as qe,k as He}from"./vue-vendor-BsMpqyaC.js";import{f as Oe,n as je,t as Ke,u as ls}from"./_plugin-vue_export-helper-CvnFozKy.js";import{A as so,Dt as oo,E as is,Et as lo,L as io,Ot as ro,R as uo,T as rs,dt as co,k as vo,kt as po,vt as fo}from"./index-B2IKGvbR.js";import{n as ho,t as go}from"./clipboard-1NPxC3YL.js";import{l as mo,s as _o}from"./skills-5qxphanX.js";import{a as us,i as yo,o as cs,r as ko}from"./chat-timestamp-CkDNtK9Y.js";import{c as wo,d as So,l as bo,n as xo,t as Co,u as Mo}from"./useSttSettings-C-jexrW7.js";import{d as $o,f as Io}from"./ttsHelpers-DNcZ5khq.js";import{n as To,r as Ot,t as Nt}from"./chat-input-height-BhYiNOv7.js";import{n as Po,t as Eo}from"./MessageItem-Cu3_aQT8.js";var Ut,qt,Ht,jt,Kt,Wt,Jt,Yt,Zt,Qt,Gt,Xt,ds,ea=K((()=>{Ie(),yt(),qe(),ls(),ho(),Ut={class:"folder-picker"},qt={key:0,class:"folder-picker-loading"},Ht={key:1,class:"folder-tree"},jt={class:"folder-name"},Kt=["onClick","onContextmenu"],Wt=["onClick"],Jt={class:"folder-name"},Yt={class:"folder-empty-text"},Zt={key:1,class:"folder-empty"},Qt={key:2,class:"folder-selected"},Gt={class:"folder-selected-label"},Xt={class:"folder-selected-path"},ds=Ue({__name:"FolderPicker",props:{modelValue:{}},emits:["update:modelValue"],setup(b,{emit:M}){const l=b,c=M,{t:p}=He(),x=to(),y=ss(),u=_(!1),E=_(""),Y=_([]),C=_(new Set),A=_(new Map),W=_(new Set),U=_(l.modelValue||""),ae=_(!1),G=_(!1),ne=_(0),ce=_(0),X=_(null),g=_(!1),$=_("create"),P=_(""),q=_(!1);Z(()=>l.modelValue,m=>{U.value=m||""});function F(m){const h=String(m||"").trim();U.value=h,c("update:modelValue",h||null)}async function ee(m=""){try{return await Oe(`/api/hermes/workspace/folders${m?`?path=${encodeURIComponent(m)}`:""}`)}catch{return null}}function de(m){const h=m.replace(/\//g,"\\"),B=h.match(/^([a-zA-Z]:)\\?$/);if(B)return`${B[1].toUpperCase()}\\`;const se=h.match(/^([a-zA-Z]:)\\(.+)$/);if(se){const oe=h.replace(/\\+$/,""),H=oe.lastIndexOf("\\");return H<=2?`${se[1].toUpperCase()}\\`:oe.slice(0,H)}const J=m.split("/").filter(Boolean);return J.pop(),J.join("/")}async function re(m=""){const h=await ee(m);if(!h){ae.value=!0;return}if(ae.value=!1,!m){E.value=h.base,Y.value=h.folders;return}A.value.set(m,h.folders),A.value=new Map(A.value)}Ne(async()=>{u.value=!0,await re(),u.value=!1});async function z(m){if(C.value.has(m.path)){C.value.delete(m.path),C.value=new Set(C.value);return}if(C.value.add(m.path),C.value=new Set(C.value),!A.value.has(m.path)){W.value.add(m.path),W.value=new Set(W.value);const h=await ee(m.path);A.value.set(m.path,h?.folders||[]),A.value=new Map(A.value),W.value.delete(m.path),W.value=new Set(W.value)}}function k(m){F(m.fullPath)}function I(){F(E.value)}async function R(m){if(!m){I();return}k(m),C.value.has(m.path)||await z(m)}function L(m,h){m.preventDefault(),m.stopPropagation(),X.value=h,ne.value=m.clientX,ce.value=m.clientY,G.value=!1,ie(()=>{G.value=!0})}const O=w(()=>{const m=[{label:p("files.open"),key:"open"},{type:"divider",key:"d1"},{label:p("files.copyPath"),key:"copyPath"},{label:p("files.newFolder"),key:"newFolder"}];return X.value&&(X.value.readonly||(m.push({label:p("files.rename"),key:"rename"}),m.push({type:"divider",key:"d2"}),m.push({label:p("files.delete"),key:"delete"}))),m});function V(){G.value=!1}function ke(m){$.value=m,P.value=m==="rename"&&X.value?.name||"",g.value=!0}async function he(m){G.value=!1;const h=X.value;switch(m){case"open":await R(h);break;case"copyPath":{const B=await go(h?.fullPath||E.value);y[B?"success":"error"](B?p("files.pathCopied"):`${p("files.pathCopied")} ✗`);break}case"newFolder":ke("create");break;case"rename":h&&ke("rename");break;case"delete":if(!h)return;x.warning({title:p("files.delete"),content:p("files.confirmDeleteDir",{name:h.name}),positiveText:p("common.delete"),negativeText:p("common.cancel"),onPositiveClick:async()=>{try{await Oe("/api/hermes/workspace/folders",{method:"DELETE",body:JSON.stringify({path:h.path})}),(U.value===h.fullPath||U.value.startsWith(`${h.fullPath}/`))&&F(null),C.value.delete(h.path),C.value=new Set(C.value),A.value.delete(h.path),A.value=new Map(A.value),await re(de(h.path)),y.success(p("files.deleted"))}catch{y.error(p("files.deleteFailed"))}}});break}}async function De(){const m=P.value.trim();if(m){q.value=!0;try{if($.value==="create"){const h=X.value?.path||"";await Oe("/api/hermes/workspace/folders",{method:"POST",body:JSON.stringify({parentPath:h,name:m})}),h&&(C.value.add(h),C.value=new Set(C.value)),await re(h),y.success(p("files.created"))}else if(X.value){const h=X.value;await Oe("/api/hermes/workspace/folders/rename",{method:"POST",body:JSON.stringify({path:h.path,name:m})}),await re(de(h.path)),(U.value===h.fullPath||U.value.startsWith(`${h.fullPath}/`))&&F(null),y.success(p("files.renamed"))}g.value=!1}catch{y.error($.value==="rename"?p("files.renameFailed"):p("files.createFailed"))}finally{q.value=!1}}}const ge=w(()=>{const m=[];function h(B,se){for(const J of B){const oe=C.value.has(J.path),H=W.value.has(J.path),le=A.value.get(J.path);m.push({folder:J,depth:se,isExpanded:oe,isLoading:H,hasChildren:le?le.length>0:null}),oe&&le&&le.length>0&&h(le,se+1)}}return h(Y.value,0),m});return(m,h)=>(r(),v("div",Ut,[D(s(mt),{value:U.value,placeholder:s(p)("chat.workspacePlaceholder"),clearable:"",size:"small",class:"folder-path-input","onUpdate:value":F},null,8,["value","placeholder"]),u.value?(r(),v("div",qt,[D(s(ao),{size:"small"})])):(r(),v("div",Ht,[E.value?(r(),v("div",{key:0,class:ve(["folder-item root",{selected:U.value===E.value}]),onClick:I,onContextmenu:h[0]||(h[0]=B=>L(B,null))},[h[4]||(h[4]=t("span",{class:"folder-icon"},"📂",-1)),t("span",jt,f(E.value||"/"),1)],34)):T("",!0),(r(!0),v(pe,null,be(ge.value,B=>(r(),v("div",{key:B.folder.path,class:ve(["folder-item",{selected:U.value===B.folder.fullPath}]),style:ot({paddingLeft:`${12+B.depth*16}px`}),onClick:se=>k(B.folder),onContextmenu:se=>L(se,B.folder)},[t("span",{class:"folder-expand",onClick:st(se=>z(B.folder),["stop"])},[B.isLoading?(r(),v(pe,{key:0},[j("⏳")],64)):(r(),v(pe,{key:1},[j(f(B.isExpanded?"▼":"▶"),1)],64))],8,Wt),h[5]||(h[5]=t("span",{class:"folder-icon"},"📁",-1)),t("span",Jt,f(B.folder.name),1)],46,Kt))),128)),(r(!0),v(pe,null,be(ge.value,B=>(r(),v(pe,{key:"empty-"+B.folder.path},[B.isExpanded&&!B.isLoading&&B.hasChildren===!1?(r(),v("div",{key:0,class:"folder-item empty",style:ot({paddingLeft:`${28+B.depth*16}px`})},[t("span",Yt,f(s(p)("chat.folderPickerEmpty")),1)],4)):T("",!0)],64))),128)),(Y.value.length===0||ae.value)&&!u.value?(r(),v("div",Zt,f(s(p)("chat.folderPickerNoFolders")),1)):T("",!0)])),U.value?(r(),v("div",Qt,[t("span",Gt,f(s(p)("chat.folderPickerSelected")),1),t("span",Xt,f(U.value),1)])):T("",!0),D(s(os),{show:G.value,x:ne.value,y:ce.value,options:O.value,placement:"bottom-start",trigger:"manual",onSelect:he,onClickoutside:V},null,8,["show","x","y","options"]),D(s(_t),{show:g.value,"onUpdate:show":h[3]||(h[3]=B=>g.value=B),preset:"dialog",title:$.value==="rename"?s(p)("files.rename"):s(p)("files.newFolder"),style:{width:"400px"}},{action:S(()=>[D(s(eo),{justify:"end"},{default:S(()=>[D(s(Q),{size:"small",onClick:h[2]||(h[2]=B=>g.value=!1)},{default:S(()=>[j(f(s(p)("common.cancel")),1)]),_:1}),D(s(Q),{size:"small",type:"primary",loading:q.value,disabled:!P.value.trim(),onClick:De},{default:S(()=>[j(f(s(p)("common.confirm")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:S(()=>[D(s(mt),{value:P.value,"onUpdate:value":h[1]||(h[1]=B=>P.value=B),placeholder:$.value==="rename"?s(p)("files.renameTo"):s(p)("files.newFolderName")},null,8,["value","placeholder"])]),_:1},8,["show","title"])]))}})})),Lo=K((()=>{})),Bo,$l=K((()=>{ea(),ea(),Lo(),je(),Bo=Ke(ds,[["__scopeId","data-v-5b5a0af0"]])}));async function Do(b,M,l){return(await Oe(`/api/hermes/model-context/${encodeURIComponent(b)}/${encodeURIComponent(M)}`,{method:"PUT",body:JSON.stringify({provider:b,model:M,context_limit:l})})).data}var Ao=K((()=>{ls()})),ta,aa,na,sa,oa,la,ia,vs,ra=K((()=>{Ie(),qe(),ta=["data-status"],aa={class:"voice-transcript-overlay__status"},na={key:0,class:"voice-transcript-overlay__transcript"},sa={key:1,class:"voice-transcript-overlay__error",role:"alert"},oa={key:2,class:"voice-transcript-overlay__debug"},la={class:"voice-transcript-overlay__debug-title"},ia={class:"voice-transcript-overlay__debug-list"},vs=Ue({__name:"VoiceTranscriptOverlay",props:{status:{},transcript:{},error:{default:null},floating:{type:Boolean,default:!1},events:{default:()=>[]},debug:{type:Boolean,default:!1}},setup(b){const M=b,{t:l}=He(),c=w(()=>l(`chat.voiceInput.status.${M.status}`)),p=w(()=>l("chat.voiceInput.statusLabel",{status:c.value})),x=w(()=>l("chat.voiceInput.transcriptLabel",{text:M.transcript})),y=w(()=>l("chat.voiceInput.errorLabel",{error:M.error})),u=w(()=>M.events.slice(-5).map(E=>E.type));return(E,Y)=>(r(),v("div",{class:ve(["voice-transcript-overlay",{"voice-transcript-overlay--floating":M.floating}]),"data-testid":"voice-transcript-overlay","data-status":M.status,role:"status","aria-live":"polite"},[t("p",aa,f(p.value),1),M.transcript?(r(),v("p",na,f(x.value),1)):T("",!0),M.error?(r(),v("p",sa,f(y.value),1)):T("",!0),M.debug&&u.value.length?(r(),v("div",oa,[t("p",la,f(s(l)("chat.voiceInput.recentEvents")),1),t("ol",ia,[(r(!0),v(pe,null,be(u.value,(C,A)=>(r(),v("li",{key:`${A}:${C}`,class:"voice-transcript-overlay__debug-item","data-testid":"voice-event-debug-item"},f(C),1))),128))])])):T("",!0)],10,ta))}})})),Ro=K((()=>{})),ps,Fo=K((()=>{ra(),ra(),Ro(),je(),ps=Ke(vs,[["__scopeId","data-v-181f0eed"]])})),ua,ca,da,va,pa,fs,fa=K((()=>{Ie(),qe(),Fo(),ua={class:"voice-dialogue-controls__actions"},ca=["aria-label","aria-pressed"],da={key:0,class:"voice-dialogue-controls__icon",width:"16",height:"16",viewBox:"0 0 24 24","aria-hidden":"true"},va={key:1,class:"voice-dialogue-controls__icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},pa=["aria-label"],fs=Ue({__name:"VoiceDialogueControls",props:{status:{},transcript:{},error:{default:null},events:{default:()=>[]},debug:{type:Boolean,default:!1},onStart:{},onStop:{},onCancel:{}},setup(b){const M=b,l=new Set(["capturing","transcribing","sending"]),{t:c}=He(),p=w(()=>l.has(M.status)),x=w(()=>p.value||!!M.transcript||!!M.error),y=w(()=>p.value?c("chat.voiceInput.stopCaptureAndInsert"):c("chat.voiceInput.startCapture"));async function u(){if(p.value){await M.onStop();return}await M.onStart()}function E(){M.onCancel()}return(Y,C)=>(r(),v("div",{class:ve(["voice-dialogue-controls voice-dialogue-controls--floating-overlay",{active:p.value}])},[x.value?(r(),ye(ps,{key:0,floating:"",status:M.status,transcript:M.transcript,error:M.error,events:M.events,debug:M.debug},null,8,["status","transcript","error","events","debug"])):T("",!0),t("div",ua,[t("button",{type:"button",class:ve(["voice-dialogue-controls__toggle",{active:p.value}]),"data-testid":"voice-record-toggle","aria-label":y.value,"aria-pressed":p.value,onClick:u},[p.value?(r(),v("svg",da,[...C[0]||(C[0]=[t("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2",fill:"currentColor"},null,-1)])])):(r(),v("svg",va,[...C[1]||(C[1]=[t("path",{d:"M12 3a3 3 0 0 0-3 3v5a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3Z"},null,-1),t("path",{d:"M5 10v1a7 7 0 0 0 14 0v-1"},null,-1),t("path",{d:"M12 18v3"},null,-1),t("path",{d:"M9 21h6"},null,-1)])]))],10,ca),p.value?(r(),v("button",{key:0,type:"button",class:"voice-dialogue-controls__cancel","data-testid":"voice-record-cancel","aria-label":s(c)("chat.voiceInput.cancelCapture"),onClick:E},[...C[2]||(C[2]=[t("svg",{class:"voice-dialogue-controls__icon voice-dialogue-controls__icon--small",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","aria-hidden":"true"},[t("path",{d:"M18 6 6 18"}),t("path",{d:"m6 6 12 12"})],-1)])],8,pa)):T("",!0)])],2))}})})),Vo=K((()=>{})),hs,zo=K((()=>{fa(),fa(),Vo(),je(),hs=Ke(fs,[["__scopeId","data-v-22dab386"]])}));function Oo(b){let M=0;return function(c,p={}){return M+=1,{id:`${b}:${M}`,seq:M,sessionId:b,type:c,captureId:p.captureId,turnId:p.turnId,timestamp:p.timestamp??new Date().toISOString(),final:p.final,payload:p.payload}}}var No=K((()=>{}));function ft(b){return`${b}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function ha(b){return b instanceof Error?b:new Error(String(b))}function Uo(b){return b.replace(/\s+/g," ").trim()}function qo(b){const M=ft("voice-session"),l=Oo(M),c=_([]),p=_("idle"),x=_(null),y=_(null),u=_(""),E=_(null),Y=w(()=>p.value!=="idle");function C(g,$={}){const P=l(g,{...$,captureId:$.captureId??x.value??void 0,turnId:$.turnId??y.value??void 0});return c.value.push(P),c.value.length>50&&c.value.splice(0,c.value.length-50),P}function A(g,$={}){const P=ha(g);return E.value=P,p.value="error",C("session.error",{captureId:$.captureId,turnId:$.turnId,final:!0,payload:P}),P}function W(g={}){const $=g.captureId??x.value,P=g.turnId??y.value;P&&C("turn.cancelled",{captureId:$??void 0,turnId:P,final:!0}),$&&C("capture.cancelled",{captureId:$,turnId:P??void 0,final:!0}),x.value=null,y.value=null,u.value="",E.value=null,p.value="idle"}C("session.started",{final:!0});async function U(){try{await Promise.resolve(b.stopOutputAudio?.())}catch($){console.warn("[useVoiceDialogue] Failed to stop output audio before capture:",ha($))}(x.value||y.value)&&W(),E.value=null,u.value="",p.value="capturing",y.value=null;const g=ft("capture");return x.value=g,C("capture.started",{captureId:g}),{captureId:g}}async function ae(g,$){if(x.value!==g)return;const P=Uo($);if(!P){u.value="",ne(g);return}E.value=null,u.value=P,p.value="sending",C("transcript.done",{captureId:g,final:!0,payload:{text:P}});const q=ft("turn");y.value=q,C("turn.started",{captureId:g,turnId:q,payload:{text:P}});try{await Promise.resolve(b.sendMessage(P))}catch(F){if(x.value===g&&y.value===q)throw A(F,{captureId:g,turnId:q}),F;return}x.value!==g||y.value!==q||(C("turn.ended",{captureId:g,turnId:q,final:!0,payload:{text:P}}),x.value=null,y.value=null,u.value="",p.value="idle")}async function G(g,$){if(x.value===g){E.value=null,p.value="transcribing";try{const P=await b.transcribe($);if(x.value!==g)return;await ae(g,P.text)}catch(P){if(x.value===g)throw E.value===null&&A(P,{captureId:g,turnId:y.value??void 0}),P;return}}}function ne(g=x.value){!g||x.value!==g||W({captureId:g,turnId:y.value})}function ce(g){C("output.audio.started",{payload:g})}function X(g){C("output.audio.done",{final:!0,payload:g})}return{sessionId:M,events:c,status:p,activeCaptureId:x,activeTurnId:y,transcript:u,error:E,isBusy:Y,beginCapture:U,transcribeAndSend:G,commitTranscript:ae,cancelCapture:ne,markOutputStarted:ce,markOutputDone:X}}var Ho=K((()=>{Ie(),No()}));function ht(b){return b instanceof Error?b:new Error(String(b))}function lt(b){return b.replace(/\s+/g," ").trim()}function it(b){return lt(b.filter(Boolean).join(" "))}function jo(b){return lt(b?.[0]?.transcript??"")}function Ko(b){const M=b.results,l=typeof b.resultIndex=="number"?b.resultIndex:0,c=[],p=[];if(!M||typeof M.length!="number")return{finalText:"",interimText:""};for(let x=l;x<M.length;x+=1){const y=M[x],u=jo(y);u&&(y?.isFinal?c.push(u):p.push(u))}return{finalText:it(c),interimText:it(p)}}function ga(){if(typeof window>"u")return null;const b=window;return b.SpeechRecognition??b.webkitSpeechRecognition??null}function Wo(b={}){const M=_(!!ga()),l=_("idle"),c=_(""),p=_(""),x=_(null);let y=null,u=0,E=null,Y=null,C=null,A=null;function W(){return b.messages?.unsupported||gs}function U(k){const I=k?.trim();return I&&b.messages?.failedWithReason?b.messages.failedWithReason(I):I?`Browser speech recognition failed: ${I}.`:b.messages?.failed||"Browser speech recognition failed."}function ae(){A!==null&&(clearTimeout(A),A=null)}function G(){E=null,Y=null,C=null,ae()}function ne(k){k&&(k.onresult=null,k.onerror=null,k.onend=null)}function ce(k){const I=Y;G(),I?.(lt(k))}function X(k){const I=C,R=ht(k);G(),I?.(R)}function g(k={}){l.value="idle",k.clearTranscript&&(c.value=""),p.value="",k.clearError&&(x.value=null)}function $(){return it([c.value,p.value])}function P(k,I,R){const L=new k;return y=L,L.lang=R,L.interimResults=!0,L.continuous=!0,L.onresult=O=>{if(I!==u||y!==L)return;const{finalText:V,interimText:ke}=Ko(O);V&&(c.value=it([c.value,V])),p.value=ke},L.onerror=O=>{ee(I,new Error(U(typeof O.error=="string"?O.error:void 0)))},L.onend=()=>{if(!(I!==u||y!==L)){if(l.value==="listening"&&!E){y=null,ne(L),p.value="";try{P(k,I,R).start()}catch(O){ee(I,O)}return}F(I)}},L}function q(){x.value=null,l.value==="error"&&(l.value="idle")}function F(k,I=$()){if(k!==u)return;const R=y;y=null,ne(R),g(),ce(I)}function ee(k,I){if(k!==u)return ht(I);const R=ht(I),L=y;return y=null,ne(L),p.value="",l.value="error",x.value=R,X(R),R}async function de(k={}){const I=ga();if(M.value=!!I,!I){const V=new Error(W());throw l.value="error",x.value=V,V}z();const R=++u,L=typeof k.language=="string"?k.language.trim():"";c.value="",p.value="",x.value=null,l.value="listening";const O=P(I,R,L);try{O.start()}catch(V){throw ee(R,V)}}function re(){const k=u,I=y;return I?E||(l.value="stopping",E=new Promise((R,L)=>{Y=R,C=L,ae(),A=setTimeout(()=>{F(k)},ms);try{I.stop()}catch(O){ee(k,O)}}),E):(l.value!=="error"&&g(),Promise.resolve(lt($())))}function z(){u+=1;const k=y;y=null,ne(k);try{k?.abort()}catch{}ce(""),g({clearTranscript:!0,clearError:!0})}return{isSupported:M,status:l,transcript:c,partialTranscript:p,error:x,start:de,stop:re,cancel:z,clearError:q}}var gs,ms,Jo=K((()=>{Ie(),gs="Browser speech recognition is not supported in this browser.",ms=1e3})),ma,_a,ya,ka,wa,Sa,ba,xa,Ca,Ma,$a,Ia,Ta,Pa,Ea,La,Ba,Da,Aa,Ra,Fa,Va,za,Oa,Na,Ua,qa,Ha,ja,Ka,Wa,Ja,Ya,Za,Qa,Ga,Xa,nt,en,_s,tn=K((()=>{Ie(),rs(),ro(),lo(),io(),fo(),Ao(),mo(),yt(),qe(),us(),zo(),Mo(),$o(),Ho(),wo(),Co(),Jo(),so(),To(),ma={class:"chat-input-area"},_a={key:0,class:"attachment-previews"},ya=["src","alt"],ka={key:1,class:"attachment-file"},wa={class:"file-name"},Sa={class:"file-size"},ba=["onClick"],xa=["title"],Ca={key:0,class:"context-usage-row"},Ma={class:"context-bar"},$a=["placeholder"],Ia={class:"input-toolbar"},Ta={class:"input-top-bar"},Pa={class:"reasoning-effort-label"},Ea={class:"input-settings-label"},La={class:"input-model-label"},Ba={class:"input-actions"},Da={key:0,width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},Aa={key:1,width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},Ra={class:"visually-hidden"},Fa=["onMousedown","onMouseenter"],Va={class:"slash-command-name"},za={key:0,class:"slash-command-args"},Oa={class:"slash-command-desc"},Na={key:0,class:"skill-picker-modal"},Ua=["placeholder"],qa={class:"skill-picker-list"},Ha={key:0,class:"skill-picker-empty"},ja=["onClick","onKeydown"],Ka={class:"skill-picker-command"},Wa={class:"skill-picker-name"},Ja={class:"skill-picker-desc"},Ya={key:2,class:"skill-picker-empty"},Za={class:"context-edit-content"},Qa={style:{"margin-bottom":"16px",color:"#666"}},Ga={style:{"margin-top":"12px","font-size":"12px",color:"#999"}},Xa={style:{display:"flex","justify-content":"flex-end",gap:"8px"}},nt="hermes_chat_input_drafts_v1",en=256e3,_s=Ue({__name:"ChatInput",props:{modelLabel:{default:""}},emits:["modelClick"],setup(b,{expose:M,emit:l}){const c=is(),p=po(),x=oo(),y=uo(),{t:u}=He(),E=ss(),{toolTraceVisible:Y,toggleToolTraceVisible:C}=cs(),A=b,W=l,U=w(()=>[{label:u("chat.reasoningEffort.options.default"),value:""},{label:u("chat.reasoningEffort.options.none"),value:"none"},{label:u("chat.reasoningEffort.options.minimal"),value:"minimal"},{label:u("chat.reasoningEffort.options.low"),value:"low"},{label:u("chat.reasoningEffort.options.medium"),value:"medium"},{label:u("chat.reasoningEffort.options.high"),value:"high"},{label:u("chat.reasoningEffort.options.xhigh"),value:"xhigh"}]),ae=w(()=>c.activeSession?.reasoningEffort||""),G=w(()=>{const e=ae.value;return e?U.value.find(a=>a.value===e)?.label||e:u("chat.reasoningEffort.defaultLabel")});function ne(e){const a=c.activeSessionId;a&&c.setSessionReasoningEffort(a,e||"")}function ce(){W("modelClick")}const X=w(()=>{const e=A.modelLabel||u("models.selectModel"),a=e.split("/").filter(Boolean);return a[a.length-1]||e}),g=_(""),$=_(),P=_(),q=_(),F=_([]),ee=_(!1),de=_(0),re=_(!1),z=_(typeof window<"u"?Ot(window.innerWidth):!1),k=_(!1),I=Io(),R=So({messages:{unsupported:u("chat.voiceInput.microphoneUnsupported"),recordingFailed:u("chat.voiceInput.microphoneRecordingFailed")}}),L=xo(),O=Wo({messages:{unsupported:u("chat.voiceInput.browserSpeechUnsupported"),failed:u("chat.voiceInput.browserSpeechFailed"),failedWithReason:e=>u("chat.voiceInput.browserSpeechFailedWithReason",{error:e})}}),V=_(null),ke=w(()=>z.value?null:Nt(y.display.chat_input_height));function he(e){return e.replace(/\s+/g," ").trim()}function De(){return L.provider.value==="custom"?{provider:"custom",language:L.customLanguage.value.trim()||void 0,prompt:L.customPrompt.value.trim()||void 0}:L.provider.value==="doubao"?{provider:"doubao"}:{provider:"openai",language:L.openaiLanguage.value.trim()||void 0,prompt:L.openaiPrompt.value.trim()||void 0}}function ge(){return L.openaiLanguage.value.trim()||L.customLanguage.value.trim()||""}function m(e){const a=he(e);if(!a)return;const i=$.value,N=g.value,fe=i?.selectionStart??N.length,Le=i?.selectionEnd??fe,Be=N.slice(0,fe),pt=N.slice(Le),Dt=Be&&!/\s$/.test(Be)?" ":"",Zs=`${Be}${Dt}${a}${pt&&!/^\s/.test(pt)?" ":""}${pt}`,At=Be.length+Dt.length+a.length;g.value=Zs,H.value=!1,ie(()=>{const at=$.value;at&&(at.focus(),at.setSelectionRange(At,At),ct(at))})}const h=qo({transcribe:async e=>{const{provider:a,language:i,prompt:N}=De();return bo({audio:e,provider:a,language:i,prompt:N})},sendMessage:async e=>{m(e)},stopOutputAudio:()=>I.stop(!0)}),B=w(()=>V.value!=="browser"||h.status.value!=="capturing"?h.transcript.value:he([O.transcript.value,O.partialTranscript.value].filter(Boolean).join(" "))),se=w(()=>L.provider.value==="browser"||V.value==="browser"),J=w(()=>h.error.value?.message??(se.value?O.error.value?.message:null)??R.state.value.error?.message??null),oe=w(()=>vo.map(e=>({key:e.key,name:e.name,args:e.argsKey?u(e.argsKey):e.args||"",description:u(e.descriptionKey),insertText:e.insertText,opensSkillPicker:e.opensSkillPicker}))),H=_(!1),le=_(""),me=_(0),Te=_([]),xe=_(!1),we=_(""),Pe=_(!1);let o="",n=null;const d=w(()=>c.activeSession?.source==="cli"),te=w(()=>!!c.activeSession&&c.activeSession.source!=="coding_agent"),ue=w(()=>{const e=new Map;for(const a of Te.value)for(const i of a.skills||[])i.enabled!==!1&&(e.has(i.name)||e.set(i.name,i));return[...e.values()].map(a=>{const i=ws(a.name);return{key:`skill:${i}`,name:a.name,commandName:i,description:a.description||a.name}})}),_e=w(()=>{const e=le.value.trim().toLowerCase(),a=d.value?oe.value:te.value?oe.value.filter(i=>i.name==="fork"):[];return e?a.filter(i=>{const N=i.name.toLowerCase(),fe=i.insertText?.toLowerCase(),Le=i.description.toLowerCase();return N.startsWith(e)||fe?.startsWith(e)||Le.includes(e)}):a}),We=w(()=>{const e=we.value.trim().toLowerCase();return e?ue.value.filter(a=>a.name.toLowerCase().includes(e)||a.commandName.includes(e)||a.description.toLowerCase().includes(e)):ue.value});function ws(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/_/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}function rt(){return c.activeSession?.profile||x.activeProfileName||"default"}async function Ss(){if(!d.value)return;const e=rt();return o===e||n||(n=(async()=>{try{const a=await _o(e);if(rt()!==e)return;Te.value=a.categories||[],o=e}catch{if(rt()!==e)return;Te.value=[],o=e}finally{n=null}})()),n}const Se=_(null);function ut(){typeof window>"u"||(z.value=Ot(window.innerWidth))}function bs(){k.value=!1,Je()}function ct(e=$.value){!e||Se.value!==null||(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,100)}px`)}function Je(){if(k.value)return;Se.value=ke.value;const e=$.value;if(e){if(Se.value===null){ct(e);return}e.style.height=`${Se.value}px`}}function xs(e){e.preventDefault();const a=$.value;if(!a)return;k.value=!0;const i=a.clientHeight,N=e.clientY;function fe(Be){Se.value=Nt(i-(Be.clientY-N))??Se.value}function Le(){document.removeEventListener("mousemove",fe),document.removeEventListener("mouseup",Le),document.body.style.cursor="",document.body.style.userSelect=""}document.body.style.cursor="row-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",fe),document.addEventListener("mouseup",Le)}const Ce=_(!1),Cs=w(()=>[{label:u("chat.autoPlaySpeech"),key:"autoPlaySpeech",icon:()=>zt("span",{class:["settings-check",{active:Ce.value}],"aria-hidden":"true"},Ce.value?"✓":"")},{label:u("chat.showToolCalls"),key:"toolTrace",icon:()=>zt("span",{class:["settings-check",{active:Y.value}],"aria-hidden":"true"},Y.value?"✓":"")}]);function kt(){try{const e=JSON.parse(localStorage.getItem(nt)||"{}");return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return{}}}function wt(){return c.activeSessionId||c.activeSession?.id||""}function St(){const e=wt();g.value=e&&kt()[e]||""}function bt(e){const a=wt();if(!a)return;const i=kt();e?i[a]=e:delete i[a],Object.keys(i).length>0?localStorage.setItem(nt,JSON.stringify(i)):localStorage.removeItem(nt)}Ne(()=>{St();const e=localStorage.getItem("autoPlaySpeech");e!==null&&(Ce.value=e==="true",c.setAutoPlaySpeech(Ce.value)),ut(),window.addEventListener("resize",ut),ie(()=>{Je()})}),Z(Ce,e=>{localStorage.setItem("autoPlaySpeech",String(e)),c.setAutoPlaySpeech(e)});function Ms(e){if(e==="autoPlaySpeech"){Ce.value=!Ce.value;return}e==="toolTrace"&&C()}Z(g,e=>{bt(e)}),Z(()=>c.activeSession?.id,()=>{St(),ie(()=>{Je()})}),Z(ke,()=>{Je()}),Z(()=>[c.activeSession?.profile,x.activeProfileName],()=>{o="",Te.value=[]});const xt=w(()=>g.value.trim().length>0||F.value.length>0),Ee=w(()=>c.isStreaming&&!xt.value);function Ct(){ie(()=>{P.value&&P.value.querySelector(".active")?.scrollIntoView({block:"nearest",behavior:"instant"})})}function Mt(){if(!d.value&&!te.value){H.value=!1;return}const e=$.value;if(!e)return;const a=e.selectionStart,i=g.value.slice(0,a);if(!i.startsWith("/")||i.includes(" ")||i.includes(`
|
|
2
2
|
`)){H.value=!1;return}le.value=i.slice(1),me.value=0,H.value=_e.value.length>0}function $t(e){if(e.opensSkillPicker){H.value=!1,It();return}g.value=`/${e.insertText||e.name} `,H.value=!1,ie(()=>{const a=$.value;if(!a)return;const i=g.value.length;a.setSelectionRange(i,i),a.focus()})}async function It(){if(d.value){H.value=!1,we.value="",xe.value=!0,Pe.value=!0;try{await Ss()}finally{Pe.value=!1}}}function dt(e){g.value=`/skill ${e.commandName} `,xe.value=!1,ie(()=>{const a=$.value;if(!a)return;const i=g.value.length;a.setSelectionRange(i,i),a.focus()})}const Me=_(256e3);let Ye="",Ze="",Ae=null;const Re=_(!1),$e=_(256e3),Qe=_(!1),Ge=w(()=>c.activeSession?.source==="coding_agent");async function $s(){Ge.value||($e.value=Me.value,Re.value=!0)}async function Is(){if(!$e.value||$e.value<=0){E.error(u("chat.contextEditInvalid"));return}Qe.value=!0;try{const e=c.activeSession?.provider||p.selectedProvider||"",a=c.activeSession?.model||p.selectedModel||"";if(!e||!a){E.error(u("chat.contextEditFailed"));return}await Do(e,a,$e.value),Me.value=$e.value,Ye=Xe(),Re.value=!1,E.success(u("chat.contextEditSuccess"))}catch(e){E.error(`${u("chat.contextEditFailed")}: ${e.message||""}`)}finally{Qe.value=!1}}function Tt(){const e=c.activeSession;return{profile:e?.profile||x.activeProfileName||void 0,provider:e?.provider||void 0,model:e?.model||void 0}}function Xe(){const e=Tt();return`${e.profile||""}|${e.provider||""}|${e.model||""}`}async function Pt(){if(Ge.value)return;const e=Xe();if(e!==Ye)return e===Ze&&Ae||(Ze=e,Ae=(async()=>{const a=Tt();try{const i=await co(a.profile,a.provider,a.model);if(Xe()!==e)return;Me.value=i,Ye=e}catch{if(Xe()!==e)return;Me.value=en,Ye=e}finally{Ze===e&&(Ae=null,Ze="")}})()),Ae}Ne(Pt),Z(()=>[x.activeProfileName,p.selectedProvider,p.selectedModel,c.activeSession?.id,c.activeSession?.profile,c.activeSession?.provider,c.activeSession?.model,c.activeSession?.source],Pt,{flush:"post"});const et=w(()=>{if(Ge.value)return 0;const e=c.activeSession?.contextTokens;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:(c.activeSession?.inputTokens??0)+(c.activeSession?.outputTokens??0)}),Ts=w(()=>et.value>0),Ps=w(()=>Math.max(0,Me.value-et.value)),Fe=w(()=>Math.min(et.value/Me.value*100,100));function vt(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"k":String(e)}function Es(e){if(F.value.find(N=>N.name===e.name))return;const a=Date.now().toString(36)+Math.random().toString(36).slice(2,8),i=URL.createObjectURL(e);F.value.push({id:a,name:e.name,type:e.type,size:e.size,url:i,file:e})}function tt(e){for(const a of e)Es(a);e.length>0&&$.value?.focus()}function Ls(){q.value?.click()}function Bs(e){const a=e.target;a.files&&(tt(Array.from(a.files)),a.value="")}function Ds(e){const a=Array.from(e.clipboardData?.items||[]).filter(i=>i.type.startsWith("image/"));if(a.length){e.preventDefault();for(const i of a){const N=i.getAsFile();if(!N)continue;const fe=i.type.split("/")[1]||"png";tt([new File([N],`pasted-${Date.now()}.${fe}`,{type:i.type})])}}}function As(e){e.preventDefault()}function Rs(e){e.preventDefault(),e.dataTransfer?.types.includes("Files")&&(de.value++,ee.value=!0)}function Fs(){de.value--,de.value<=0&&(de.value=0,ee.value=!1)}function Vs(e){e.preventDefault(),de.value=0,ee.value=!1;const a=Array.from(e.dataTransfer?.files||[]);a.length&&tt(a)}M({addFiles:tt});function Et(){const e=g.value.trim();if(!(!e&&F.value.length===0)){if(d.value&&e==="/skill"&&F.value.length===0){It();return}c.sendMessage(e,F.value.length>0?F.value:void 0),g.value="",bt(""),F.value=[],H.value=!1,$.value&&($.value.style.height="auto")}}async function zs(){O.clearError();const{captureId:e}=await h.beginCapture(),a=L.provider.value==="browser";V.value=a?"browser":"backend";try{if(a){await O.start({language:ge()});return}await R.start()}catch{V.value=null,h.cancelCapture(e)}}async function Os(){const e=h.activeCaptureId.value;if(!e)return;if(V.value==="browser"){let i="";try{i=await O.stop()}catch{V.value=null,h.cancelCapture(e);return}V.value=null;try{await h.commitTranscript(e,i)}catch{}return}if(R.state.value.status==="requesting"){R.cancel(),V.value=null,h.cancelCapture(e);return}let a;try{a=await R.stop()}catch{V.value=null,h.cancelCapture(e);return}if(V.value=null,a.size<=0){h.cancelCapture(e);return}try{await h.transcribeAndSend(e,a)}catch{}}function Ns(){V.value==="browser"?O.cancel():R.cancel(),V.value=null,h.cancelCapture()}function Us(){re.value=!0}function qs(){requestAnimationFrame(()=>{re.value=!1,Mt()})}function Hs(e){return re.value||e.isComposing||e.keyCode===229}function js(e){if(H.value&&_e.value.length>0){if(e.key==="ArrowDown"){e.preventDefault(),me.value=(me.value+1)%_e.value.length,Ct();return}if(e.key==="ArrowUp"){e.preventDefault(),me.value=(me.value-1+_e.value.length)%_e.value.length,Ct();return}if(e.key==="Enter"||e.key==="Tab"){e.preventDefault(),$t(_e.value[me.value]);return}if(e.key==="Escape"){e.preventDefault(),H.value=!1;return}}e.key!=="Enter"||e.shiftKey||Hs(e)||(e.preventDefault(),Et())}function Ks(e){const a=e.target;re.value||Mt(),Se.value===null&&ct(a)}function Ws(e){me.value=e}function Lt(e){if(!H.value)return;const a=e.target;!a.closest(".slash-command-dropdown")&&!a.closest(".input-wrapper")&&(H.value=!1)}Ne(()=>{document.addEventListener("mousedown",Lt)}),Qs(()=>{document.removeEventListener("mousedown",Lt),window.removeEventListener("resize",ut)});function Js(e){const a=F.value.findIndex(i=>i.id===e);a!==-1&&(URL.revokeObjectURL(F.value[a].url),F.value.splice(a,1))}function Ys(e){return e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(1)+" MB"}function Bt(e){return e.startsWith("image/")}return(e,a)=>(r(),v("div",ma,[F.value.length>0?(r(),v("div",_a,[(r(!0),v(pe,null,be(F.value,i=>(r(),v("div",{key:i.id,class:ve(["attachment-preview",{image:Bt(i.type)}])},[Bt(i.type)?(r(),v("img",{key:0,src:i.url,alt:i.name,class:"attachment-thumb"},null,8,ya)):(r(),v("div",ka,[a[7]||(a[7]=t("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[t("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),t("polyline",{points:"14 2 14 8 20 8"})],-1)),t("span",wa,f(i.name),1),t("span",Sa,f(Ys(i.size)),1)])),t("button",{class:"attachment-remove",onClick:N=>Js(i.id)},[...a[8]||(a[8]=[t("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,ba)],2))),128))])):T("",!0),t("div",{class:ve(["input-wrapper",{"drag-over":ee.value}]),onDragover:As,onDragenter:Rs,onDragleave:Fs,onDrop:Vs},[t("input",{ref_key:"fileInputRef",ref:q,type:"file",multiple:"",class:"file-input-hidden",onChange:Bs},null,544),t("div",{class:"resize-handle",title:s(u)("chat.inputHeightResizeHint"),onMousedown:xs,onDblclick:bs},null,40,xa),Ts.value?(r(),v("div",Ca,[t("span",{class:ve(["context-info",{"context-warning":Fe.value>80}])},[j(f(vt(et.value))+" / ",1),D(s(Ve),{trigger:"hover",disabled:z.value},{trigger:S(()=>[t("span",{class:"context-limit-editable",onClick:$s},f(vt(Me.value)),1)]),default:S(()=>[t("span",null,f(s(u)("chat.contextClickToEdit")),1)]),_:1},8,["disabled"]),j(" · "+f(s(u)("chat.contextRemaining"))+" "+f(vt(Ps.value)),1)],2),t("div",Ma,[t("div",{class:ve(["context-bar-fill",{"context-bar-warn":Fe.value>60&&Fe.value<=80,"context-bar-danger":Fe.value>80}]),style:ot({width:`${Fe.value}%`})},null,6)])])):T("",!0),Ft(t("textarea",{ref_key:"textareaRef",ref:$,"onUpdate:modelValue":a[0]||(a[0]=i=>g.value=i),class:"input-textarea",style:ot(Se.value?{height:Se.value+"px"}:{}),placeholder:s(u)("chat.inputPlaceholder"),rows:"1",onKeydown:js,onCompositionstart:Us,onCompositionend:qs,onInput:Ks,onPaste:Ds},null,44,$a),[[Vt,g.value]]),t("div",Ia,[t("div",Ta,[D(s(Ve),{trigger:"hover",disabled:z.value},{trigger:S(()=>[D(s(Q),{quaternary:"",size:"tiny",onClick:Ls,circle:"",class:"toolbar-icon-button"},{icon:S(()=>[...a[9]||(a[9]=[t("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},[t("path",{d:"M12 5v14"}),t("path",{d:"M5 12h14"})],-1)])]),_:1})]),default:S(()=>[j(" "+f(s(u)("chat.attachFiles")),1)]),_:1},8,["disabled"]),Ge.value?T("",!0):(r(),ye(s(no),{key:0,value:ae.value,options:U.value,trigger:"click","onUpdate:value":ne},{default:S(()=>[D(s(Ve),{trigger:"hover",disabled:z.value},{trigger:S(()=>[D(s(Q),{quaternary:"",size:"tiny",class:ve(["reasoning-effort-button",{active:!!ae.value}]),"aria-label":`${s(u)("chat.reasoningEffort.tooltip")}: ${G.value}`},{icon:S(()=>[...a[10]||(a[10]=[t("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.6","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 1.98-3A2.5 2.5 0 0 1 9.5 2Z"}),t("path",{d:"M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-1.98-3A2.5 2.5 0 0 0 14.5 2Z"})],-1)])]),default:S(()=>[t("span",Pa,f(G.value),1),a[11]||(a[11]=t("svg",{class:"toolbar-chevron",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t("path",{d:"m6 9 6 6 6-6"})],-1))]),_:1},8,["class","aria-label"])]),default:S(()=>[j(" "+f(s(u)("chat.reasoningEffort.tooltip"))+": "+f(G.value),1)]),_:1},8,["disabled"])]),_:1},8,["value","options"])),D(s(os),{trigger:"click",options:Cs.value,"show-arrow":!0,onSelect:Ms},{default:S(()=>[D(s(Ve),{trigger:"hover",disabled:z.value},{trigger:S(()=>[D(s(Q),{quaternary:"",size:"tiny",class:"input-settings-button","aria-label":s(u)("sidebar.settings")},{icon:S(()=>[...a[12]||(a[12]=[t("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.7","stroke-linecap":"round","stroke-linejoin":"round"},[t("circle",{cx:"12",cy:"12",r:"3"}),t("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.6 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06A2 2 0 1 1 7.04 4.3l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.08a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9c.2.6.77 1 1.4 1H21a2 2 0 1 1 0 4h-.09c-.63 0-1.2.4-1.51 1Z"})],-1)])]),default:S(()=>[t("span",Ea,f(s(u)("sidebar.settings")),1),a[13]||(a[13]=t("svg",{class:"toolbar-chevron",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t("path",{d:"m6 9 6 6 6-6"})],-1))]),_:1},8,["aria-label"])]),default:S(()=>[j(" "+f(s(u)("sidebar.settings")),1)]),_:1},8,["disabled"])]),_:1},8,["options"]),D(s(Ve),{trigger:"hover",disabled:z.value},{trigger:S(()=>[D(s(Q),{quaternary:"",size:"tiny",class:"input-model-button",title:z.value?void 0:A.modelLabel||s(u)("models.selectModel"),"aria-label":A.modelLabel||s(u)("models.selectModel"),onClick:ce},{icon:S(()=>[...a[14]||(a[14]=[t("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[t("circle",{cx:"12",cy:"12",r:"3"}),t("path",{d:"M12 1v4"}),t("path",{d:"M12 19v4"}),t("path",{d:"M1 12h4"}),t("path",{d:"M19 12h4"}),t("path",{d:"M4.22 4.22l2.83 2.83"}),t("path",{d:"M16.95 16.95l2.83 2.83"}),t("path",{d:"M4.22 19.78l2.83-2.83"}),t("path",{d:"M16.95 7.05l2.83-2.83"})],-1)])]),default:S(()=>[t("span",La,f(X.value),1),a[15]||(a[15]=t("svg",{class:"toolbar-chevron",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t("path",{d:"m6 9 6 6 6-6"})],-1))]),_:1},8,["title","aria-label"])]),default:S(()=>[j(" "+f(A.modelLabel||s(u)("models.selectModel")),1)]),_:1},8,["disabled"])]),t("div",Ba,[D(hs,{status:s(h).status.value,transcript:B.value,error:J.value,events:s(h).events.value,"on-start":zs,"on-stop":Os,"on-cancel":Ns},null,8,["status","transcript","error","events"]),D(s(Q),{size:"medium",type:"primary",circle:"",class:ve(["send-button",{"send-button--stop":Ee.value}]),disabled:Ee.value?s(c).isAborting:!xt.value,"aria-label":Ee.value?"Stop":"Send",onClick:a[1]||(a[1]=i=>Ee.value?s(c).stopStreaming():Et())},{icon:S(()=>[Ee.value?(r(),v("svg",Da,[...a[16]||(a[16]=[t("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2.5",fill:"currentColor"},null,-1)])])):(r(),v("svg",Aa,[...a[17]||(a[17]=[t("path",{d:"M12 19V5"},null,-1),t("path",{d:"m5 12 7-7 7 7"},null,-1)])]))]),default:S(()=>[t("span",Ra,f(Ee.value?s(u)("chat.stop"):s(u)("chat.send")),1)]),_:1},8,["class","disabled","aria-label"])])]),D(ze,{name:"dropdown-fade"},{default:S(()=>[H.value&&_e.value.length>0?(r(),v("div",{key:0,ref_key:"commandDropdownRef",ref:P,class:"slash-command-dropdown"},[(r(!0),v(pe,null,be(_e.value,(i,N)=>(r(),v("div",{key:i.key,class:ve(["slash-command-item",{active:N===me.value}]),onMousedown:st(fe=>$t(i),["prevent"]),onMouseenter:fe=>Ws(N)},[t("span",Va,"/"+f(i.name),1),i.args?(r(),v("span",za,f(i.args),1)):T("",!0),t("span",Oa,f(i.description),1)],42,Fa))),128))],512)):T("",!0)]),_:1})],34),D(s(_t),{show:xe.value,"onUpdate:show":a[3]||(a[3]=i=>xe.value=i),title:s(u)("skills.title"),"mask-closable":!0,preset:"card",style:{width:"min(620px, calc(100vw - 32px))"}},{default:S(()=>[xe.value?(r(),v("div",Na,[Ft(t("input",{"onUpdate:modelValue":a[2]||(a[2]=i=>we.value=i),class:"skill-picker-search",placeholder:s(u)("skills.searchPlaceholder"),type:"search"},null,8,Ua),[[Vt,we.value]]),t("div",qa,[Pe.value?(r(),v("div",Ha,f(s(u)("common.loading")),1)):(r(!0),v(pe,{key:1},be(We.value,i=>(r(),v("div",{key:i.key,role:"button",tabindex:"0",class:"skill-picker-item",onClick:N=>dt(i),onKeydown:[Rt(st(N=>dt(i),["prevent"]),["enter"]),Rt(st(N=>dt(i),["prevent"]),["space"])]},[t("div",Ka,"/skill "+f(i.commandName),1),t("div",Wa,f(i.name),1),t("div",Ja,f(i.description),1)],40,ja))),128)),!Pe.value&&We.value.length===0?(r(),v("div",Ya,f(we.value?s(u)("skills.noMatch"):s(u)("skills.noSkills")),1)):T("",!0)])])):T("",!0)]),_:1},8,["show","title"]),D(s(_t),{show:Re.value,"onUpdate:show":a[6]||(a[6]=i=>Re.value=i),title:s(u)("chat.contextEditTitle"),"mask-closable":!0,preset:"card",style:{width:"400px"}},{footer:S(()=>[t("div",Xa,[D(s(Q),{onClick:a[5]||(a[5]=i=>Re.value=!1),disabled:Qe.value},{default:S(()=>[j(f(s(u)("chat.contextEditCancel")),1)]),_:1},8,["disabled"]),D(s(Q),{type:"primary",onClick:Is,loading:Qe.value},{default:S(()=>[j(f(s(u)("chat.contextEditSave")),1)]),_:1},8,["loading"])])]),default:S(()=>[t("div",Za,[t("p",Qa,f(s(u)("chat.contextEditDesc")),1),D(s(Xs),{value:$e.value,"onUpdate:value":a[4]||(a[4]=i=>$e.value=i),min:1e3,max:1e7,step:1e3,"show-button":!1,placeholder:s(u)("chat.contextEditPlaceholder"),style:{width:"100%"}},{suffix:S(()=>[...a[18]||(a[18]=[t("span",{style:{color:"#999"}},"tokens",-1)])]),_:1},8,["value","placeholder"]),t("div",Ga,f(s(u)("chat.contextEditHint")),1)])]),_:1},8,["show","title"])]))}})})),Yo=K((()=>{})),Zo,Il=K((()=>{tn(),tn(),Yo(),je(),Zo=Ke(_s,[["__scopeId","data-v-715be9e3"]])})),ys,Qo=K((()=>{ys="/assets/gif/thinking-DoVDAdxi.gif"})),an,nn,sn,on,ln,rn,un,cn,dn,vn,pn,fn,hn,gn,mn,_n,yn,kn,wn,Sn,bn,xn,Cn,Mn,$n,In,Tn,Pn,En,Ln,Bn,Dn,An,Rn,Fn,Vn,zn,On,Nn,Un,qn,Hn,jn,Kn,Wn,Jn,Yn,Zn,Qn,Gn,Xn,es,ts,as,gt,ks,ns=K((()=>{Ie(),qe(),yt(),yo(),Po(),rs(),Qo(),us(),an={class:"message-list-shell"},nn={class:"empty-state"},sn=["src","alt"],on={key:0,class:"history-archive-link-wrap"},ln=["href"],rn={key:1,class:"history-loader"},un={key:0,class:"history-loader-spinner"},cn={key:0,class:"fork-divider",role:"separator"},dn={class:"fork-divider-pill"},vn={class:"fork-divider-text"},pn=["href"],fn={key:0,class:"streaming-indicator"},hn={class:"thinking-status"},gn=["src"],mn={class:"thinking-status-copy"},_n={class:"thinking-status-label"},yn={class:"thinking-status-time"},kn={key:0,class:"tool-calls-panel"},wn={key:0,class:"tool-call-item compression-item"},Sn={key:0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},bn={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},xn={class:"tool-call-name"},Cn={key:2,class:"tool-call-spinner"},Mn={key:1,class:"tool-call-item compression-item"},$n={key:0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},In={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},Tn={class:"tool-call-name"},Pn={key:2,class:"tool-call-spinner"},En={class:"tool-call-name"},Ln=["title"],Bn=["title"],Dn={key:2,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"tool-call-success-icon"},An={key:3,class:"tool-call-spinner"},Rn={key:4,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"tool-call-error-icon"},Fn=["aria-label","title"],Vn={key:1,class:"message-float-stack"},zn={key:0,class:"approval-float-panel"},On={class:"float-panel-header"},Nn={class:"approval-float-title"},Un={class:"approval-float-desc"},qn={class:"approval-float-command"},Hn={class:"approval-float-actions"},jn={key:0,class:"approval-float-panel"},Kn={class:"float-panel-header"},Wn={class:"approval-float-title"},Jn={class:"approval-float-desc"},Yn={key:0,class:"approval-float-actions"},Zn={key:1,class:"clarify-float-input-row"},Qn={key:0,class:"queue-float-panel"},Gn={class:"queue-float-header"},Xn={class:"queue-float-list"},es={class:"queue-index"},ts={class:"queue-text"},as=["title","onClick"],gt=new Map,ks=Ue({__name:"MessageList",setup(b,{expose:M}){const l=is(),{t:c}=He(),{toolTraceVisible:p}=cs(),x=_(null),y=_(null),u=_(!1),E=_(0),Y={frames:8,keepAliveMs:1200};let C=0,A=null;function W(o){return o>=1e6?(o/1e6).toFixed(1)+"M":o>=1e3?(o/1e3).toFixed(1)+"K":String(o)}function U(o){return o<1?`${Math.round(o*1e3)}ms`:o<60?`${Math.round(o*10)/10}s`:`${Math.floor(o/60)}m ${Math.round(o%60)}s`}function ae(o){const n=String(o||"");return n.length>160?`${n.slice(0,157)}...`:n}function G(o){const n=Math.floor(o/1e3),d=Math.floor(n/3600),te=Math.floor(n%3600/60),ue=n%60;return d>0?`${d}h${te}m${ue}s`:te>0?`${te}m${ue}s`:`${ue}s`}function ne(){A&&(clearInterval(A),A=null)}const ce=w(()=>l.isRunActive||!!l.abortState),X=w(()=>G(E.value)),g=w(()=>{const o=l.messages;let n=-1;for(let d=o.length-1;d>=0;d--)if(o[d].role==="user"||o[d].role==="command"){n=d;break}return[...o.filter((d,te)=>d.role==="tool"&&te>n)].reverse()}),$=w(()=>g.value.filter(o=>!!o.toolName)),P=w(()=>{const o=l.activeSession,n=o?.codingAgentId||(o?.agent==="codex"?"codex":o?.agent==="claude"?"claude-code":void 0);return n==="codex"?{logo:"/coding-agents/codex-openai.png",alt:"Codex",text:c("chat.emptyStateAgent",{agent:"Codex"})}:n==="claude-code"?{logo:"/coding-agents/claude-code.svg",alt:"Claude Code",text:c("chat.emptyStateAgent",{agent:"Claude Code"})}:{logo:"/coding-agents/hermes.png",alt:"Hermes",text:c("chat.emptyState")}}),q=w(()=>{const o=new Set(g.value.map(n=>n.id));return l.messages.filter(n=>n.role==="tool"?p.value&&!!n.toolName&&!(l.isRunActive&&o.has(n.id)):!(n.role==="assistant"&&n.isStreaming&&!n.content?.trim()&&n.reasoning?.trim()&&g.value.length===0))});function F(o){return`fork-divider-${o}`}const ee=w(()=>{const o=q.value,n=he.value,d=l.activeSession;if(!n||!d?.forkPointMessageId)return o;const te=String(d.forkPointMessageId),ue=o.findIndex(We=>String(We.id)===te);if(ue<0)return o;const _e={id:F(d.id),role:"system",content:"",timestamp:d.updatedAt||Date.now(),systemType:"fork-divider"};return[...o.slice(0,ue+1),_e,...o.slice(ue+1)]}),de=w(()=>{const o=l.activeSession,n=q.value.some(d=>d.role==="user"||d.role==="assistant");return!!o&&o.source!=="coding_agent"&&!l.isStreaming&&!l.isForkPending&&n}),re=w(()=>{const o=ee.value;for(let n=o.length-1;n>=0;n--){const d=o[n];if(d.role==="user"||d.role==="assistant")return d.id}return null}),z=w(()=>{const o=l.activeSessionId;return o?l.queuedUserMessages.get(o)||[]:[]}),k=w(()=>l.activePendingApproval),I=w(()=>l.activePendingClarify),R=_(""),L=w(()=>!!k.value||!!I.value),O=w(()=>z.value.length>0&&L.value?"20px 20px 380px":z.value.length>0||L.value?"20px 20px 260px":"20px"),V=w(()=>{const o=l.activeSession;return!!o?.hasMoreBefore&&(o.loadedMessageCount||0)>=300}),ke=w(()=>{const o=l.activeSession;if(!o?.id)return"#/hermes/history";const n=o.profile?`?profile=${encodeURIComponent(o.profile)}`:"";return`#/hermes/history/session/${encodeURIComponent(o.id)}${n}`}),he=w(()=>{const o=l.activeSession;return o?.parentSessionId?{parentSessionId:o.parentSessionId,parentTitle:o.parentTitle||o.parentSessionId,parentHref:`#/hermes/history/session/${encodeURIComponent(o.parentSessionId)}${o.profile?`?profile=${encodeURIComponent(o.profile)}`:""}`,canSwitchParent:l.sessions.some(n=>n.id===o.parentSessionId),lastRole:o.parentLastMessageRole||"",lastMessage:o.parentLastMessage||""}:null});async function De(o){const n=he.value;if(n?.parentSessionId){if(n.canSwitchParent){o?.preventDefault(),await l.switchSession(n.parentSessionId);return}window.location.hash=n.parentHref.replace(/^#/,"")}}function ge(o){l.respondApproval(o)}function m(o){const n=o!==void 0?o:R.value.trim();l.respondToClarify(n),R.value=""}function h(o){const n=l.activeSessionId;n&&l.removeQueuedMessage(n,o)}function B(o){const n=o.replace(/\s+/g," ").trim();return n.length>48?`${n.slice(0,48)}...`:n}function se(o=100){return x.value?.shouldAutoFollowBottom(o)??!0}function J(o){x.value?.scrollToBottom(o),u.value=!1}function oe(o){x.value?.scrollToMessage(o)}function H(o,n){x.value?.scrollToAnchor(o,n)}function le(){u.value=q.value.length>0&&!(x.value?.isNearBottom(1e3)??!0)}function me(){le()}function Te(){J({frames:4,keepAliveMs:600})}function xe(o){if(!o)return;const n=x.value?.captureViewportPosition()??null;n&>.set(o,n)}function we(o){if(l.activeSessionId!==o)return;if(l.focusMessageId){y.value=null,oe(l.focusMessageId);return}const n=gt.get(o);if(n){y.value=null,n.wasNearBottom?J(Y):x.value?.restoreViewportPosition(n);return}const d=l.activeSession;if(d?.parentSessionId&&d.forkPointMessageId){const te=F(d.id);if(ee.value.some(ue=>ue.id===te)){y.value=null,oe(te);return}if(l.isLoadingMessages||l.messages.length===0)return}J(Y),l.messages.length>0&&!l.isLoadingMessages&&(y.value=null)}async function Pe(){const o=l.activeSession;if(!o?.hasMoreBefore||o.isLoadingOlderMessages||V.value)return;const n=x.value?.captureScrollPosition()??null;await l.loadOlderMessages(o.id)&&(await ie(),x.value?.restoreScrollPosition(n),le())}return Z(()=>l.activeSessionId,async(o,n)=>{xe(n),o&&(y.value=o,await ie(),we(o))},{immediate:!0}),Z(()=>[l.activeSessionId,l.messages.length],([o,n])=>{!o||y.value!==o||n===0||(we(o),ie(le))},{flush:"post"}),Z(()=>q.value.length,()=>{ie(le)},{flush:"post"}),Z(()=>l.isLoadingMessages,async(o,n)=>{if(o||!n)return;const d=l.activeSessionId;if(!(!d||y.value!==d)){if(l.focusMessageId){y.value=null;return}await ie(),l.activeSessionId===d&&we(d)}},{flush:"post"}),Z(()=>l.focusMessageId,o=>{o&&oe(o)}),Z(()=>l.isRunActive,o=>{o&&J({frames:3,keepAliveMs:400})}),Z(ce,o=>{if(ne(),!o){C=0,E.value=0;return}C=Date.now(),E.value=0,A=setInterval(()=>{E.value=Date.now()-C},1e3)},{immediate:!0}),Z(()=>l.messages[l.messages.length-1]?.content,()=>{if(y.value!==l.activeSessionId){if(l.focusMessageId){oe(l.focusMessageId);return}se()&&J({frames:1,keepAliveMs:0})}}),Z(g,()=>{if(y.value!==l.activeSessionId){if(l.focusMessageId){oe(l.focusMessageId);return}se()&&J({frames:1,keepAliveMs:0})}}),Z(()=>z.value.length,async(o,n)=>{if(y.value===l.activeSessionId||l.focusMessageId||o<=n)return;const d=se(320);await ie(),!(!d&&!l.isRunActive)&&J({frames:4,keepAliveMs:600})}),Gs(()=>{ne(),xe(l.activeSessionId)}),Ne(()=>{ie(le)}),M({scrollToBottom:J,scrollToMessage:oe,scrollToAnchor:H}),(o,n)=>(r(),v("div",an,[(r(),ye(ko,{key:s(l).activeSessionId||"chat-empty",ref_key:"listRef",ref:x,messages:ee.value,virtualized:!1,padding:O.value,onScroll:me,onTopReach:Pe},{empty:S(()=>[t("div",nn,[t("img",{src:P.value.logo,alt:P.value.alt,class:"empty-logo"},null,8,sn),t("p",null,f(P.value.text),1)])]),before:S(()=>[V.value?(r(),v("div",on,[t("a",{class:"history-archive-link",href:ke.value},f(s(c)("chat.viewOlderInHistory")),9,ln)])):s(l).activeSession?.hasMoreBefore||s(l).activeSession?.isLoadingOlderMessages?(r(),v("div",rn,[s(l).activeSession?.isLoadingOlderMessages?(r(),v("span",un)):T("",!0)])):T("",!0)]),item:S(({message:d})=>[d.systemType==="fork-divider"&&he.value?(r(),v("div",cn,[n[9]||(n[9]=t("div",{class:"fork-divider-line","aria-hidden":"true"},null,-1)),t("div",dn,[n[8]||(n[8]=t("span",{class:"fork-divider-icon","aria-hidden":"true"},[t("svg",{viewBox:"0 0 24 24",focusable:"false"},[t("path",{d:"M6 3v6a4 4 0 0 0 4 4h4.2"}),t("path",{d:"M18 9l4 4-4 4"}),t("path",{d:"M6 21V3"}),t("circle",{cx:"6",cy:"5",r:"2"}),t("circle",{cx:"6",cy:"19",r:"2"})])],-1)),t("span",vn,f(s(c)("chat.forkedFrom")),1),t("a",{class:"fork-divider-link",href:he.value.parentHref,onClick:De},f(he.value.parentTitle),9,pn)]),n[10]||(n[10]=t("div",{class:"fork-divider-line","aria-hidden":"true"},null,-1))])):(r(),ye(Eo,{key:1,message:d,highlight:s(l).focusMessageId===d.id,"show-fork-action":de.value&&d.id===re.value},null,8,["message","highlight","show-fork-action"]))]),after:S(()=>[D(ze,{name:"fade"},{default:S(()=>[ce.value?(r(),v("div",fn,[t("div",hn,[t("img",{src:s(ys),alt:"","aria-hidden":"true",class:"thinking-avatar"},null,8,gn),t("div",mn,[t("span",_n,f(s(c)("chat.thinkingInProgress")),1),t("span",yn,f(X.value),1)])]),$.value.length>0||s(l).compressionState||s(l).abortState?(r(),v("div",kn,[s(l).abortState?(r(),v("div",wn,[s(l).abortState.aborting?(r(),v("svg",Sn,[...n[11]||(n[11]=[t("path",{d:"M10 9v6m4-6v6M5 5h14v14H5z"},null,-1)])])):(r(),v("svg",bn,[...n[12]||(n[12]=[t("path",{d:"M5 13l4 4L19 7"},null,-1)])])),t("span",xn,f(s(l).abortState.aborting?s(l).abortState.timedOut?s(l).abortState.message||"Still stopping... new messages will be queued":"Pausing... waiting for the run to stop and sync":s(l).abortState.synced?"Paused and synced":"Paused"),1),s(l).abortState.aborting?(r(),v("span",Cn)):T("",!0)])):T("",!0),s(l).compressionState?(r(),v("div",Mn,[s(l).compressionState.compressing?(r(),v("svg",$n,[...n[13]||(n[13]=[t("path",{d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])])):s(l).compressionState.compressed?(r(),v("svg",In,[...n[14]||(n[14]=[t("path",{d:"M5 13l4 4L19 7"},null,-1)])])):T("",!0),t("span",Tn,f(s(l).compressionState.compressing?`Compressing... (${s(l).compressionState.messageCount} msgs, ~${W(s(l).compressionState.beforeTokens)} tokens)`:s(l).compressionState.compressed?`Compressed ${s(l).compressionState.messageCount} msgs: ~${W(s(l).compressionState.beforeTokens)} → ~${W(s(l).compressionState.afterTokens)} tokens`:"Compression skipped"),1),s(l).compressionState.compressing?(r(),v("span",Pn)):T("",!0)])):T("",!0),(r(!0),v(pe,null,be($.value,d=>(r(),v("div",{key:d.id,class:"tool-call-item"},[n[17]||(n[17]=t("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},[t("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})],-1)),t("span",En,f(d.toolName),1),d.toolPreview?(r(),v("span",{key:0,class:"tool-call-preview",title:d.toolPreview},f(ae(d.toolPreview)),9,Ln)):T("",!0),d.toolDuration&&d.toolStatus!=="running"?(r(),v("span",{key:1,class:"tool-call-duration",title:o.$t("chat.executionDuration")},f(U(d.toolDuration)),9,Bn)):T("",!0),d.toolStatus==="done"?(r(),v("svg",Dn,[...n[15]||(n[15]=[t("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor","fill-opacity":"0.15"},null,-1),t("path",{d:"M8 12L11 15L16 9",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,-1)])])):T("",!0),d.toolStatus==="running"?(r(),v("span",An)):T("",!0),d.toolStatus==="error"?(r(),v("svg",Rn,[...n[16]||(n[16]=[t("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor","fill-opacity":"0.15"},null,-1),t("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,-1)])])):T("",!0)]))),128))])):T("",!0)])):T("",!0)]),_:1})]),_:1},8,["messages","padding"])),u.value?(r(),v("button",{key:0,type:"button",class:"scroll-bottom-button","aria-label":s(c)("chat.scrollToBottom"),title:s(c)("chat.scrollToBottom"),onClick:Te},[...n[18]||(n[18]=[t("svg",{class:"scroll-bottom-icon",viewBox:"0 0 24 24","aria-hidden":"true",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"m7 10 5 5 5-5"}),t("path",{d:"M6 19h12"})],-1)])],8,Fn)):T("",!0),k.value||I.value||z.value.length>0?(r(),v("div",Vn,[D(ze,{name:"queue-float"},{default:S(()=>[k.value?(r(),v("div",zn,[t("div",On,[n[19]||(n[19]=t("span",{class:"approval-float-icon","aria-hidden":"true"},[t("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10"}),t("path",{d:"m9 12 2 2 4-4"})])],-1)),t("span",null,f(s(c)("chat.approvalKicker")),1)]),t("div",Nn,f(s(c)("chat.approvalTitle")),1),t("div",Un,f(k.value.description),1),t("code",qn,f(k.value.command),1),t("div",Hn,[k.value.isMemoryWrite?(r(),ye(s(Q),{key:0,size:"small",type:"primary",onClick:n[0]||(n[0]=d=>ge("once"))},{default:S(()=>[j(f(s(c)("chat.approvalAgree")),1)]),_:1})):T("",!0),!k.value.isMemoryWrite&&k.value.choices.includes("once")?(r(),ye(s(Q),{key:1,size:"small",type:"primary",onClick:n[1]||(n[1]=d=>ge("once"))},{default:S(()=>[j(f(s(c)("chat.approvalAllowOnce")),1)]),_:1})):T("",!0),!k.value.isMemoryWrite&&k.value.choices.includes("session")?(r(),ye(s(Q),{key:2,size:"small",secondary:"",onClick:n[2]||(n[2]=d=>ge("session"))},{default:S(()=>[j(f(s(c)("chat.approvalAllowSession")),1)]),_:1})):T("",!0),!k.value.isMemoryWrite&&k.value.choices.includes("always")?(r(),ye(s(Q),{key:3,size:"small",secondary:"",onClick:n[3]||(n[3]=d=>ge("always"))},{default:S(()=>[j(f(s(c)("chat.approvalAlways")),1)]),_:1})):T("",!0),k.value.isMemoryWrite||k.value.choices.includes("deny")?(r(),ye(s(Q),{key:4,size:"small",type:"error",secondary:"",onClick:n[4]||(n[4]=d=>ge("deny"))},{default:S(()=>[j(f(s(c)("chat.approvalDeny")),1)]),_:1})):T("",!0)])])):T("",!0)]),_:1}),D(ze,{name:"queue-float"},{default:S(()=>[!k.value&&I.value?(r(),v("div",jn,[t("div",Kn,[n[20]||(n[20]=t("span",{class:"approval-float-icon","aria-hidden":"true"},[t("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("circle",{cx:"12",cy:"12",r:"10"}),t("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),t("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})])],-1)),t("span",null,f(s(c)("chat.clarifyKicker")),1)]),t("div",Wn,f(s(c)("chat.clarifyTitle")),1),t("div",Jn,f(I.value.question),1),I.value.choices&&I.value.choices.length?(r(),v("div",Yn,[(r(!0),v(pe,null,be(I.value.choices,d=>(r(),ye(s(Q),{key:d,size:"small",type:"primary",onClick:te=>m(d)},{default:S(()=>[j(f(d),1)]),_:2},1032,["onClick"]))),128)),D(s(Q),{size:"small",type:"error",secondary:"",onClick:n[5]||(n[5]=d=>m(""))},{default:S(()=>[j(f(s(c)("chat.clarifyDismiss")),1)]),_:1})])):(r(),v("div",Zn,[D(s(mt),{value:R.value,"onUpdate:value":n[6]||(n[6]=d=>R.value=d),size:"small",placeholder:s(c)("chat.clarifyPlaceholder")},null,8,["value","placeholder"]),D(s(Q),{size:"small",type:"primary",onClick:n[7]||(n[7]=d=>m())},{default:S(()=>[j(f(s(c)("chat.clarifySubmit")),1)]),_:1})]))])):T("",!0)]),_:1}),D(ze,{name:"queue-float"},{default:S(()=>[z.value.length>0?(r(),v("div",Qn,[t("div",Gn,[n[21]||(n[21]=t("span",{class:"queue-orbit","aria-hidden":"true"},[t("span")],-1)),t("span",null,f(s(c)("chat.messageQueue")),1),t("strong",null,f(z.value.length),1)]),t("div",Xn,[(r(!0),v(pe,null,be(z.value,(d,te)=>(r(),v("div",{key:d.id,class:"queue-float-item"},[t("span",es,f(te+1),1),t("span",ts,f(B(d.content)),1),t("button",{type:"button",class:"queue-remove",title:s(c)("chat.removeQueuedMessage"),onClick:ue=>h(d.id)},[...n[22]||(n[22]=[t("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),t("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,as)]))),128))])])):T("",!0)]),_:1})])):T("",!0)]))}})})),Go=K((()=>{})),Xo,Tl=K((()=>{ns(),ns(),Go(),je(),Xo=Ke(ks,[["__scopeId","data-v-d292b567"]])}));export{Bo as a,Il as i,Tl as n,$l as o,Zo as r,Xo as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as I}from"./rolldown-runtime-M0oDzQ_3.js";import{$t,A as is,An as Fe,Bn as ge,E as Te,Et as ns,Fn as rs,Hn as r,It as me,K as ae,Kt as oe,Nn as pe,O as ce,Ot as $,Qt as us,Un as ds,V as ue,Y as Pt,an as a,cn as b,cr as e,ct as vs,en as cs,er as _,f as He,fn as k,g as fe,hn as te,in as V,jn as u,kn as qe,m as ps,mt as Pe,on as X,pn as n,pr as o,sn as D,t as de,tn as _e,u as _s,ur as Ve,ut as el,wn as ll,wt as ms}from"./ui-vendor-DDMfmCj2.js";import{O as se,k as ie}from"./vue-vendor-BsMpqyaC.js";import{f as Q,n as ne,t as re,u as Ue}from"./_plugin-vue_export-helper-fFMkIM4P.js";import{c as fs,l as hs}from"./system-CRmVbE8Z.js";import{B as ys,Dt as Ye,E as gs,Et as Qe,H as Lt,K as bs,Ot as At,T as ws,W as al,kt as St,z as ks}from"./index-Brl4qW5V.js";import{n as Oe,t as ze}from"./clipboard-1NPxC3YL.js";import{n as Ne,t as Ee}from"./models-y7NaVj-e.js";var ol,tl,sl,il,nl,rl,ul,dl,vl,cl,pl,_l,Tt,ml=I((()=>{oe(),de(),se(),Lt(),Ee(),Qe(),ol={class:"auxiliary-panel"},tl={class:"auxiliary-header"},sl={class:"auxiliary-table"},il={class:"auxiliary-row auxiliary-row-head"},nl={class:"task-name"},rl={class:"task-config"},ul={class:"task-timeout"},dl={class:"task-actions"},vl={class:"auxiliary-form"},cl={key:0},pl={class:"extra-body-field"},_l={class:"auxiliary-modal-actions"},Tt=te({__name:"AuxiliaryModelsPanel",setup(R){const{t}=ie(),l=ue(),P=Ne(),L=Ye(),x=_(!1),s=_(!1),O=_([]),C=_({}),S=_(!1),f=_(null),z=_(!1),d=_({provider:"",model:"",timeout:null,download_timeout:null,extra_body:""}),N=V(()=>{const m=new Set,y=[{label:t("models.auxiliaryProviderAuto"),value:"auto"},{label:t("models.auxiliaryProviderMain"),value:"main"}];for(const U of P.providers)!U.provider||m.has(U.provider)||(m.add(U.provider),y.push({label:U.label||U.provider,value:U.provider}));return y}),F=V(()=>{const m=d.value.provider.trim();return!m||m==="auto"||m==="main"?[]:H(m).map(y=>({label:y,value:y}))}),K=V(()=>f.value?.key==="vision");function H(m){return P.providers.find(y=>y.provider===m)?.models||[]}function A(m){return!m||m==="auto"||m==="main"?!0:P.providers.some(y=>y.provider===m)}function c(m){switch(m.key){case"compression":return t("models.auxiliaryTaskCompression");case"vision":return t("models.auxiliaryTaskVision");case"web_extract":return t("models.auxiliaryTaskWebExtract");case"skills_hub":return t("models.auxiliaryTaskSkillsHub");case"approval":return t("models.auxiliaryTaskApproval");case"mcp":return t("models.auxiliaryTaskMcp");case"title_generation":return t("models.auxiliaryTaskTitleGeneration");case"triage_specifier":return t("models.auxiliaryTaskTriageSpecifier");case"kanban_decomposer":return t("models.auxiliaryTaskKanbanDecomposer");case"profile_describer":return t("models.auxiliaryTaskProfileDescriber");case"curator":return t("models.auxiliaryTaskCurator");case"session_search":return t("models.auxiliaryTaskSessionSearch");case"flush_memories":return t("models.auxiliaryTaskFlushMemories");default:return m.label||m.key}}function i(m){if(!m||Object.keys(m).length===0)return t("models.auxiliaryProviderAuto");const y=m.provider||(m.base_url?t("models.auxiliaryCustomEndpoint"):t("models.auxiliaryDefault"));return m.model?`${y} / ${m.model}`:y}function h(m,y){const U=y?.timeout??m.default_timeout,J=m.key==="vision"?y?.download_timeout??m.default_download_timeout:void 0;if(!U&&!J)return t("models.auxiliaryDefault");const ve=[];return U&&ve.push(`${U}s`),J&&ve.push(`${t("models.auxiliaryDownloadShort")} ${J}s`),ve.join(" / ")}async function G(){x.value=!0;try{const m=await ks();O.value=m.tasks,C.value=m.auxiliary}catch(m){l.error(m.message||t("models.auxiliaryLoadFailed"))}finally{x.value=!1}}function Y(m){const y=C.value[m.key]||{},U=A(y.provider||"")&&y.provider||"auto",J=(U==="auto"||U==="main"||H(U).includes(y.model||""))&&y.model||"";f.value=m,z.value=!0,d.value={provider:U,model:J,timeout:y.timeout??m.default_timeout??null,download_timeout:m.key==="vision"?y.download_timeout??m.default_download_timeout??null:null,extra_body:y.extra_body?JSON.stringify(y.extra_body,null,2):""},z.value=!1,S.value=!0}function Z(){const m=d.value.extra_body.trim();if(!m)return;let y;try{y=JSON.parse(m)}catch{throw new Error(t("models.auxiliaryInvalidExtraBody"))}if(!y||typeof y!="object"||Array.isArray(y))throw new Error(t("models.auxiliaryInvalidExtraBody"));return y}function j(){const m={},y=d.value.provider.trim();if(y==="auto")return m.provider="auto",d.value.timeout&&(m.timeout=d.value.timeout),K.value&&d.value.download_timeout&&(m.download_timeout=d.value.download_timeout),m;const U=Z(),J=d.value.model.trim();if(y&&(m.provider=y),y&&y!=="auto"&&y!=="main"&&!J)throw new Error(t("models.modelRequired"));return J&&(m.model=J),d.value.timeout&&(m.timeout=d.value.timeout),K.value&&d.value.download_timeout&&(m.download_timeout=d.value.download_timeout),U&&Object.keys(U).length>0&&(m.extra_body=U),Object.keys(m).length===0&&(m.provider="auto"),m}async function le(){if(!f.value)return;let m;try{m=j()}catch(y){l.error(y.message);return}s.value=!0;try{const y={...C.value};Object.keys(m).length>0?y[f.value.key]=m:delete y[f.value.key],C.value=(await al(y)).auxiliary,S.value=!1,l.success(t("models.auxiliarySaved"))}catch(y){l.error(y.message||t("models.auxiliarySaveFailed"))}finally{s.value=!1}}async function ee(m){s.value=!0;try{const y={...C.value};y[m.key]={provider:"auto",...m.default_timeout?{timeout:m.default_timeout}:{},...m.key==="vision"&&m.default_download_timeout?{download_timeout:m.default_download_timeout}:{}},C.value=(await al(y)).auxiliary,l.success(t("models.auxiliarySaved"))}catch(y){l.error(y.message||t("models.auxiliarySaveFailed"))}finally{s.value=!1}}return qe(()=>{G()}),ge(()=>L.activeProfileName,()=>{G()}),ge(()=>d.value.provider,m=>{if(!z.value){if(!m||m==="auto"||m==="main"){d.value.model="",m==="auto"&&(d.value.extra_body="");return}H(m).includes(d.value.model)||(d.value.model="")}},{flush:"sync"}),(m,y)=>(u(),b("section",ol,[a("div",tl,[a("div",null,[a("h3",null,o(e(t)("models.auxiliaryTitle")),1),a("p",null,o(e(t)("models.auxiliarySubtitle")),1)]),n(e($),{size:"small",quaternary:"",loading:x.value,onClick:G},{default:r(()=>[k(o(e(t)("models.auxiliaryRefresh")),1)]),_:1},8,["loading"])]),n(e(fe),{show:x.value},{default:r(()=>[a("div",sl,[a("div",il,[a("span",null,o(e(t)("models.auxiliaryTask")),1),a("span",null,o(e(t)("models.provider"))+" / "+o(e(t)("models.defaultModel")),1),a("span",null,o(e(t)("models.auxiliaryTimeout")),1),a("span",null,o(e(t)("models.auxiliaryActions")),1)]),(u(!0),b(_e,null,pe(O.value,U=>(u(),b("div",{key:U.key,class:"auxiliary-row"},[a("span",nl,o(c(U)),1),a("span",rl,o(i(C.value[U.key])),1),a("span",ul,o(h(U,C.value[U.key])),1),a("span",dl,[n(e($),{size:"tiny",quaternary:"",onClick:J=>Y(U)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:s.value,onClick:J=>ee(U)},{default:r(()=>[k(o(e(t)("models.auxiliaryClear")),1)]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1},8,["show"]),n(e(ae),{show:S.value,"onUpdate:show":y[6]||(y[6]=U=>S.value=U),preset:"card",title:f.value?c(f.value):e(t)("models.auxiliaryTitle"),style:{width:"min(620px, calc(100vw - 32px))"},"mask-closable":!s.value},{footer:r(()=>[a("div",_l,[n(e($),{disabled:s.value,onClick:y[5]||(y[5]=U=>S.value=!1)},{default:r(()=>[k(o(e(t)("common.cancel")),1)]),_:1},8,["disabled"]),n(e($),{type:"primary",loading:s.value,onClick:le},{default:r(()=>[k(o(e(t)("common.save")),1)]),_:1},8,["loading"])])]),default:r(()=>[a("div",vl,[a("label",null,[a("span",null,o(e(t)("models.provider")),1),n(e(Pe),{value:d.value.provider,"onUpdate:value":y[0]||(y[0]=U=>d.value.provider=U),options:N.value,placeholder:e(t)("models.chooseProvider"),filterable:""},null,8,["value","options","placeholder"])]),a("label",null,[a("span",null,o(e(t)("models.defaultModel")),1),n(e(Pe),{value:d.value.model,"onUpdate:value":y[1]||(y[1]=U=>d.value.model=U),options:F.value,placeholder:e(t)("models.selectModel"),disabled:!d.value.provider||d.value.provider==="auto"||d.value.provider==="main",filterable:""},null,8,["value","options","placeholder","disabled"])]),a("label",null,[a("span",null,o(e(t)("models.auxiliaryTimeout")),1),n(e(Te),{value:d.value.timeout,"onUpdate:value":y[2]||(y[2]=U=>d.value.timeout=U),min:1,precision:0},null,8,["value"])]),K.value?(u(),b("label",cl,[a("span",null,o(e(t)("models.auxiliaryDownloadTimeout")),1),n(e(Te),{value:d.value.download_timeout,"onUpdate:value":y[3]||(y[3]=U=>d.value.download_timeout=U),min:1,precision:0},null,8,["value"])])):D("",!0),a("label",pl,[a("span",null,o(e(t)("models.auxiliaryExtraBody")),1),n(e(me),{value:d.value.extra_body,"onUpdate:value":y[4]||(y[4]=U=>d.value.extra_body=U),type:"textarea",autosize:{minRows:4,maxRows:8}},null,8,["value"])])])]),_:1},8,["show","title","mask-closable"])]))}})})),xs=I((()=>{})),Ut,Cs=I((()=>{ml(),ml(),xs(),ne(),Ut=re(Tt,[["__scopeId","data-v-d0d5a801"]])})),fl,hl,yl,gl,bl,wl,kl,xl,Cl,Ml,$l,Pl,Ll,Al,Sl,Tl,Ul,Ol,zl,Nl,El,Il,Bl,Dl,Fl,Vl,ql,Rl,Gl,Kl,Hl,Xl,jl,Jl,Wl,Yl,Ql,Zl,ea,la,Ot,aa=I((()=>{oe(),de(),se(),Lt(),At(),Ee(),Qe(),fl={class:"combination-models-panel"},hl={class:"combination-header"},yl={class:"combination-header-actions"},gl={class:"combination-table"},bl={class:"combination-row combination-row-head"},wl={class:"preset-name"},kl={key:0,class:"default-badge"},xl={class:"slot-summary"},Cl={class:"slot-summary"},Ml={class:"row-actions"},$l={class:"combination-form"},Pl={class:"switch-row"},Ll={class:"slot-section"},Al={class:"slot-section-header"},Sl={class:"slot-editor-list"},Tl={class:"slot-pair"},Ul={class:"slot-row-actions"},Ol={class:"slot-section"},zl={class:"slot-section-header"},Nl={class:"slot-editor-row aggregator-row"},El={class:"slot-pair"},Il={class:"slot-row-actions"},Bl={class:"modal-actions"},Dl={class:"model-list"},Fl=["onClick"],Vl={class:"model-group-label"},ql={class:"model-group-count"},Rl={class:"model-group-items"},Gl=["title","onClick"],Kl={class:"model-item-label"},Hl={class:"model-item-name"},Xl={key:0,class:"model-item-id"},jl={key:0,class:"model-badge-preview"},Jl={key:1,class:"model-badge-disabled"},Wl={key:2,class:"model-badge-custom"},Yl=["title","onClick"],Ql={key:0,class:"model-empty"},Zl={class:"model-custom"},ea={class:"model-custom-row"},la={class:"model-custom-hint"},Ot=te({__name:"CombinationModelsPanel",setup(R){const{t}=ie(),l=ue(),P=St(),L=Ne(),x=Ye(),s=_(!1),O=_(!1),C=_(null),S=_(!1),f=_(""),z=_(""),d=_(Z()),N=_(!1),F=_(null),K=_(""),H=_({}),A=_(""),c=_(""),i=V(()=>L.providers.filter(v=>v.provider&&v.provider.toLowerCase()!=="moa").map(v=>({label:v.label||v.provider,value:v.provider}))),h=V(()=>L.providers.filter(v=>v.provider&&v.provider.toLowerCase()!=="moa").map(v=>({...v,models:[...v.models,...(P.customModels[v.provider]||[]).filter(p=>!v.models.includes(p))]}))),G=V(()=>{const v=K.value.trim().toLowerCase();return v?h.value.map(p=>({...p,models:p.models.filter(M=>{const g=P.displayModelName(M,p.provider);return M.toLowerCase().includes(v)||g.toLowerCase().includes(v)})})).filter(p=>p.models.length>0||String(p.label||p.provider).toLowerCase().includes(v)):h.value}),Y=V(()=>C.value?Object.entries(C.value.presets).map(([v,p])=>({name:v,preset:p})):[]);function Z(){return{enabled:!0,reference_models:[],aggregator:{provider:"",model:""},reference_temperature:.6,aggregator_temperature:.4,max_tokens:4096}}function j(v){return JSON.parse(JSON.stringify(v))}function le(v){return JSON.parse(JSON.stringify(v))}function ee(v){return!v?.provider||!v?.model?t("models.combinationNotSet"):`${v.provider} / ${v.model}`}function m(v,p){return P.displayModelName(v,p)}function y(v,p){return P.getModelAlias(v,p)}function U(v,p){return(P.customModels[p]||[]).includes(v)}function J(v){return!!H.value[v]}function ve(v){H.value[v]=!H.value[v]}async function W(){s.value=!0;try{C.value=j(await ys())}catch(v){l.error(v.message||t("models.combinationLoadFailed"))}finally{s.value=!1}}function Ie(){f.value="",z.value="",d.value=Z(),S.value=!0}function be(v){C.value?.presets[v]&&(f.value=v,z.value=v,d.value=le(C.value.presets[v]),S.value=!0)}function Le(){ke("reference")}function Ae(v){d.value.reference_models.splice(v,1)}function he(){const v=z.value.trim();return v?/^[A-Za-z0-9_.-]{1,80}$/.test(v)?!f.value&&C.value?.presets[v]||f.value&&v!==f.value&&C.value?.presets[v]?(l.error(t("models.combinationPresetExists")),!1):d.value.reference_models.filter(p=>p.provider.trim()&&p.model.trim()).length===0?(l.error(t("models.combinationReferenceRequired")),!1):!d.value.aggregator.provider.trim()||!d.value.aggregator.model.trim()?(l.error(t("models.combinationAggregatorRequired")),!1):!0:(l.error(t("models.combinationNameInvalid")),!1):(l.error(t("models.combinationNameRequired")),!1)}async function we(){if(!C.value||!he())return;const v=z.value.trim(),p=j(C.value),M={...le(d.value),reference_models:d.value.reference_models.filter(g=>g.provider.trim()&&g.model.trim()).map(g=>({provider:g.provider.trim(),model:g.model.trim()})),aggregator:{provider:d.value.aggregator.provider.trim(),model:d.value.aggregator.model.trim()},max_tokens:Math.max(1,Math.floor(Number(d.value.max_tokens)||4096))};f.value&&f.value!==v&&(delete p.presets[f.value],p.default_preset===f.value&&(p.default_preset=v),p.active_preset===f.value&&(p.active_preset=v)),p.presets[v]=M,(!p.default_preset||!p.presets[p.default_preset])&&(p.default_preset=v),await Me(p),S.value=!1}async function ye(v){if(!C.value||C.value.default_preset===v)return;const p=j(C.value);p.default_preset=v,await Me(p)}async function Se(v){if(!C.value||Object.keys(C.value.presets).length<=1)return;const p=j(C.value);delete p.presets[v];const M=Object.keys(p.presets)[0];p.default_preset===v&&(p.default_preset=M),p.active_preset===v&&(p.active_preset=""),await Me(p)}function ke(v,p){F.value={kind:v,index:p},K.value="",H.value={},A.value=h.value[0]?.provider||"",c.value="",N.value=!0}function xe(v){F.value&&(F.value.kind==="aggregator"?d.value.aggregator=v:typeof F.value.index=="number"?d.value.reference_models[F.value.index]=v:d.value.reference_models.push(v),N.value=!1)}function Ce(v,p){h.value.find(M=>M.provider===p)?.model_meta?.[v]?.disabled||xe({provider:p,model:v})}function Be(){const v=c.value.trim();!A.value||!v||h.value.find(p=>p.provider===A.value)?.model_meta?.[v]?.disabled||xe({provider:A.value,model:v})}async function De(v,p){await P.removeCustomModel(v,p)}async function Me(v){O.value=!0;try{C.value=j((await bs(v)).moa),l.success(t("models.combinationSaved"))}catch(p){throw l.error(p.message||t("models.combinationSaveFailed")),p}finally{O.value=!1}}return qe(()=>{W()}),ge(()=>x.activeProfileName,()=>{W()}),(v,p)=>(u(),b("section",fl,[a("div",hl,[a("div",null,[a("h3",null,o(e(t)("models.combinationTitle")),1),a("p",null,o(e(t)("models.combinationSubtitle")),1)]),a("div",yl,[n(e($),{size:"small",quaternary:"",loading:s.value,onClick:W},{default:r(()=>[k(o(e(t)("models.auxiliaryRefresh")),1)]),_:1},8,["loading"]),n(e($),{size:"small",type:"primary",disabled:!C.value,onClick:Ie},{default:r(()=>[k(o(e(t)("models.combinationAddModel")),1)]),_:1},8,["disabled"])])]),n(e(fe),{show:s.value},{default:r(()=>[a("div",gl,[a("div",bl,[a("span",null,o(e(t)("models.combinationName")),1),a("span",null,o(e(t)("models.combinationReferenceModels")),1),a("span",null,o(e(t)("models.combinationAggregator")),1),a("span",null,o(e(t)("models.auxiliaryActions")),1)]),(u(!0),b(_e,null,pe(Y.value,({name:M,preset:g})=>(u(),b("div",{key:M,class:"combination-row"},[a("span",wl,[k(o(M)+" ",1),C.value?.default_preset===M?(u(),b("span",kl,o(e(t)("models.defaultShort")),1)):D("",!0)]),a("span",xl,o(g.reference_models.map(ee).join(", ")),1),a("span",Cl,o(ee(g.aggregator)),1),a("span",Ml,[n(e($),{size:"tiny",quaternary:"",onClick:T=>be(M)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:C.value?.default_preset===M,onClick:T=>ye(M)},{default:r(()=>[k(o(e(t)("models.combinationSetDefault")),1)]),_:1},8,["disabled","onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:Y.value.length<=1,onClick:T=>Se(M)},{default:r(()=>[k(o(e(t)("common.delete")),1)]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1},8,["show"]),n(e(ae),{show:S.value,"onUpdate:show":p[7]||(p[7]=M=>S.value=M),preset:"card",title:f.value?e(t)("models.combinationEditModel"):e(t)("models.combinationAddModel"),style:{width:"min(760px, calc(100vw - 32px))"},"mask-closable":!O.value},{footer:r(()=>[a("div",Bl,[n(e($),{disabled:O.value,onClick:p[6]||(p[6]=M=>S.value=!1)},{default:r(()=>[k(o(e(t)("common.cancel")),1)]),_:1},8,["disabled"]),n(e($),{type:"primary",loading:O.value,onClick:we},{default:r(()=>[k(o(e(t)("common.save")),1)]),_:1},8,["loading"])])]),default:r(()=>[a("div",$l,[a("label",null,[a("span",null,o(e(t)("models.combinationName")),1),n(e(me),{value:z.value,"onUpdate:value":p[0]||(p[0]=M=>z.value=M),placeholder:e(t)("models.combinationPresetPlaceholder")},null,8,["value","placeholder"])]),a("label",Pl,[a("span",null,o(e(t)("models.combinationEnabled")),1),n(e(ps),{value:d.value.enabled,"onUpdate:value":p[1]||(p[1]=M=>d.value.enabled=M)},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationReferenceTemperature")),1),n(e(Te),{value:d.value.reference_temperature,"onUpdate:value":p[2]||(p[2]=M=>d.value.reference_temperature=M),min:0,max:2,step:.1},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationAggregatorTemperature")),1),n(e(Te),{value:d.value.aggregator_temperature,"onUpdate:value":p[3]||(p[3]=M=>d.value.aggregator_temperature=M),min:0,max:2,step:.1},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationMaxTokens")),1),n(e(Te),{value:d.value.max_tokens,"onUpdate:value":p[4]||(p[4]=M=>d.value.max_tokens=M),min:1,precision:0},null,8,["value"])]),a("div",Ll,[a("div",Al,[a("h4",null,o(e(t)("models.combinationReferenceModels")),1),n(e($),{size:"tiny",type:"primary",secondary:"",onClick:Le},{default:r(()=>[k(o(e(t)("models.combinationAddReference")),1)]),_:1})]),a("div",Sl,[(u(!0),b(_e,null,pe(d.value.reference_models,(M,g)=>(u(),b("div",{key:g,class:"slot-editor-row"},[a("span",Tl,o(ee(M)),1),a("span",Ul,[n(e($),{size:"small",quaternary:"",onClick:T=>ke("reference",g)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"small",quaternary:"",onClick:T=>Ae(g)},{default:r(()=>[k(o(e(t)("common.delete")),1)]),_:1},8,["onClick"])])]))),128))])]),a("div",Ol,[a("div",zl,[a("h4",null,o(e(t)("models.combinationAggregator")),1)]),a("div",Nl,[a("span",El,o(ee(d.value.aggregator)),1),a("span",Il,[n(e($),{size:"small",quaternary:"",onClick:p[5]||(p[5]=M=>ke("aggregator"))},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1})])])])])]),_:1},8,["show","title","mask-closable"]),n(e(ae),{show:N.value,"onUpdate:show":p[11]||(p[11]=M=>N.value=M),preset:"card",title:e(t)("models.selectModel"),style:{width:"min(480px, calc(100vw - 32px))"},"mask-closable":!0},{default:r(()=>[n(e(me),{value:K.value,"onUpdate:value":p[8]||(p[8]=M=>K.value=M),placeholder:e(t)("models.searchPlaceholder"),clearable:"",size:"small",class:"model-search"},null,8,["value","placeholder"]),a("div",Dl,[(u(!0),b(_e,null,pe(G.value,M=>(u(),b("div",{key:M.provider,class:"model-group"},[a("div",{class:"model-group-header",onClick:g=>ve(M.provider)},[(u(),b("svg",{class:Ve(["model-group-arrow",{collapsed:J(M.provider)}]),width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...p[12]||(p[12]=[a("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),a("span",Vl,o(M.label||M.provider),1),a("span",ql,o(M.models.length),1)],8,Fl),ds(a("div",Rl,[(u(!0),b(_e,null,pe(M.models,g=>(u(),b("div",{key:g,class:Ve(["model-item",{disabled:!!M.model_meta?.[g]?.disabled}]),title:M.model_meta?.[g]?.disabled?e(t)("models.disabledTooltip"):"",onClick:T=>Ce(g,M.provider)},[a("span",Kl,[a("span",Hl,o(m(g,M.provider)),1),y(g,M.provider)?(u(),b("span",Xl,o(e(t)("models.aliasCanonical",{model:g})),1)):D("",!0)]),M.model_meta?.[g]?.preview?(u(),b("span",jl,o(e(t)("models.previewBadge")),1)):D("",!0),M.model_meta?.[g]?.disabled?(u(),b("span",Jl,o(e(t)("models.disabledBadge")),1)):D("",!0),U(g,M.provider)?(u(),b("span",Wl,o(e(t)("models.customBadge")),1)):D("",!0),U(g,M.provider)?(u(),b("button",{key:3,class:"model-custom-remove",type:"button",title:e(t)("models.removeCustomModel"),onClick:cs(T=>De(g,M.provider),["stop"])}," × ",8,Yl)):D("",!0)],10,Gl))),128))],512),[[us,!J(M.provider)]])]))),128)),G.value.length===0?(u(),b("div",Ql,o(K.value?e(t)("models.noResults"):e(t)("models.noModels")),1)):D("",!0),a("div",Zl,[a("div",ea,[n(e(Pe),{value:A.value,"onUpdate:value":p[9]||(p[9]=M=>A.value=M),options:i.value,size:"small",class:"model-custom-provider"},null,8,["value","options"]),n(e(me),{value:c.value,"onUpdate:value":p[10]||(p[10]=M=>c.value=M),placeholder:e(t)("models.customModelPlaceholder"),size:"small",class:"model-custom-input",onKeydown:$t(Be,["enter"])},null,8,["value","placeholder"])]),a("div",la,o(e(t)("models.customModelHint")),1)])])]),_:1},8,["show","title"])]))}})})),Ms=I((()=>{})),zt,$s=I((()=>{aa(),aa(),Ms(),ne(),zt=re(Ot,[["__scopeId","data-v-2bc3b28c"]])}));async function Ps(){return Q("/api/hermes/auth/copilot/start",{method:"POST"})}async function Ls(R){return Q(`/api/hermes/auth/copilot/poll/${R}`)}async function Ze(){return Q("/api/hermes/auth/copilot/check-token")}async function As(){return Q("/api/hermes/auth/copilot/enable",{method:"POST"})}async function Ss(){return Q("/api/hermes/auth/copilot/disable",{method:"POST"})}var Re=I((()=>{Ue()})),oa,ta,sa,ia,na,ra,ua,da,va,ca,pa,_a,ma,fa,ha,ya,ga,ba,wa,ka,xa,Ca,Ma,$a,Pa,La,Aa,Sa,Ta,Ua,Oa,za,Na,Ea,Ia,Ba,Da,Fa,Nt,Va=I((()=>{oe(),de(),Ee(),At(),ws(),Re(),se(),oa={class:"provider-card"},ta={class:"card-header"},sa={class:"provider-name"},ia={class:"provider-badges"},na={key:0,class:"type-badge default"},ra={class:"card-body"},ua={class:"info-row"},da={class:"info-label"},va={class:"info-value mono"},ca={class:"info-row"},pa={class:"info-label"},_a={class:"info-value mono"},ma={class:"info-row models-row"},fa={class:"info-label"},ha={class:"info-value models-count"},ya={class:"default-model-row"},ga={class:"info-label"},ba={class:"models-list"},wa=["title","onClick"],ka={class:"model-tag-name"},xa={key:0,class:"model-tag-default"},Ca={key:1,class:"model-tag-id"},Ma={key:0,class:"model-tag model-tag-more"},$a={class:"card-actions"},Pa={class:"alias-list-hint"},La={class:"alias-list"},Aa={class:"alias-row-text"},Sa={class:"alias-row-name"},Ta={key:0,class:"alias-row-default"},Ua={class:"alias-row-id"},Oa={key:0,class:"model-alias-canonical"},za={class:"model-alias-hint"},Na={class:"model-alias-actions"},Ea={class:"visibility-hint"},Ia={class:"visibility-count"},Ba={class:"visibility-list"},Da={key:0,class:"visibility-model-id"},Fa={class:"visibility-actions"},Nt=te({__name:"ProviderCard",props:{provider:{}},setup(R){const t=R,{t:l}=ie(),P=Ne(),L=St(),x=gs(),s=ue(),O=Pt(),C=V(()=>t.provider.provider.startsWith("custom:")),S=V(()=>!t.provider.builtin&&C.value),f=V(()=>C.value||!t.provider.builtin&&!!t.provider.provider_source),z=V(()=>t.provider.provider==="copilot"),d=V(()=>t.provider.label),N=_(!1),F=V(()=>f.value?l("common.delete"):z.value?l("models.disableProvider"):l("models.clearProviderCredentials")),K=V(()=>f.value?l("models.deleteProvider"):z.value?l("models.disableProvider"):l("models.clearProviderCredentials"));function H(g){if(f.value)return l("models.deleteConfirm",{name:d.value});if(z.value){const T=l("models.disableProviderConfirm",{name:d.value});return g?`${T}
|
|
1
|
+
import{n as I}from"./rolldown-runtime-M0oDzQ_3.js";import{$t,A as is,An as Fe,Bn as ge,E as Te,Et as ns,Fn as rs,Hn as r,It as me,K as ae,Kt as oe,Nn as pe,O as ce,Ot as $,Qt as us,Un as ds,V as ue,Y as Pt,an as a,cn as b,cr as e,ct as vs,en as cs,er as _,f as He,fn as k,g as fe,hn as te,in as V,jn as u,kn as qe,m as ps,mt as Pe,on as X,pn as n,pr as o,sn as D,t as de,tn as _e,u as _s,ur as Ve,ut as el,wn as ll,wt as ms}from"./ui-vendor-DDMfmCj2.js";import{O as se,k as ie}from"./vue-vendor-BsMpqyaC.js";import{f as Q,n as ne,t as re,u as Ue}from"./_plugin-vue_export-helper-CvnFozKy.js";import{c as fs,l as hs}from"./system-Onp4yS9N.js";import{B as ys,Dt as Ye,E as gs,Et as Qe,H as Lt,K as bs,Ot as At,T as ws,W as al,kt as St,z as ks}from"./index-B2IKGvbR.js";import{n as Oe,t as ze}from"./clipboard-1NPxC3YL.js";import{n as Ne,t as Ee}from"./models-DetB4_Ug.js";var ol,tl,sl,il,nl,rl,ul,dl,vl,cl,pl,_l,Tt,ml=I((()=>{oe(),de(),se(),Lt(),Ee(),Qe(),ol={class:"auxiliary-panel"},tl={class:"auxiliary-header"},sl={class:"auxiliary-table"},il={class:"auxiliary-row auxiliary-row-head"},nl={class:"task-name"},rl={class:"task-config"},ul={class:"task-timeout"},dl={class:"task-actions"},vl={class:"auxiliary-form"},cl={key:0},pl={class:"extra-body-field"},_l={class:"auxiliary-modal-actions"},Tt=te({__name:"AuxiliaryModelsPanel",setup(R){const{t}=ie(),l=ue(),P=Ne(),L=Ye(),x=_(!1),s=_(!1),O=_([]),C=_({}),S=_(!1),f=_(null),z=_(!1),d=_({provider:"",model:"",timeout:null,download_timeout:null,extra_body:""}),N=V(()=>{const m=new Set,y=[{label:t("models.auxiliaryProviderAuto"),value:"auto"},{label:t("models.auxiliaryProviderMain"),value:"main"}];for(const U of P.providers)!U.provider||m.has(U.provider)||(m.add(U.provider),y.push({label:U.label||U.provider,value:U.provider}));return y}),F=V(()=>{const m=d.value.provider.trim();return!m||m==="auto"||m==="main"?[]:H(m).map(y=>({label:y,value:y}))}),K=V(()=>f.value?.key==="vision");function H(m){return P.providers.find(y=>y.provider===m)?.models||[]}function A(m){return!m||m==="auto"||m==="main"?!0:P.providers.some(y=>y.provider===m)}function c(m){switch(m.key){case"compression":return t("models.auxiliaryTaskCompression");case"vision":return t("models.auxiliaryTaskVision");case"web_extract":return t("models.auxiliaryTaskWebExtract");case"skills_hub":return t("models.auxiliaryTaskSkillsHub");case"approval":return t("models.auxiliaryTaskApproval");case"mcp":return t("models.auxiliaryTaskMcp");case"title_generation":return t("models.auxiliaryTaskTitleGeneration");case"triage_specifier":return t("models.auxiliaryTaskTriageSpecifier");case"kanban_decomposer":return t("models.auxiliaryTaskKanbanDecomposer");case"profile_describer":return t("models.auxiliaryTaskProfileDescriber");case"curator":return t("models.auxiliaryTaskCurator");case"session_search":return t("models.auxiliaryTaskSessionSearch");case"flush_memories":return t("models.auxiliaryTaskFlushMemories");default:return m.label||m.key}}function i(m){if(!m||Object.keys(m).length===0)return t("models.auxiliaryProviderAuto");const y=m.provider||(m.base_url?t("models.auxiliaryCustomEndpoint"):t("models.auxiliaryDefault"));return m.model?`${y} / ${m.model}`:y}function h(m,y){const U=y?.timeout??m.default_timeout,J=m.key==="vision"?y?.download_timeout??m.default_download_timeout:void 0;if(!U&&!J)return t("models.auxiliaryDefault");const ve=[];return U&&ve.push(`${U}s`),J&&ve.push(`${t("models.auxiliaryDownloadShort")} ${J}s`),ve.join(" / ")}async function G(){x.value=!0;try{const m=await ks();O.value=m.tasks,C.value=m.auxiliary}catch(m){l.error(m.message||t("models.auxiliaryLoadFailed"))}finally{x.value=!1}}function Y(m){const y=C.value[m.key]||{},U=A(y.provider||"")&&y.provider||"auto",J=(U==="auto"||U==="main"||H(U).includes(y.model||""))&&y.model||"";f.value=m,z.value=!0,d.value={provider:U,model:J,timeout:y.timeout??m.default_timeout??null,download_timeout:m.key==="vision"?y.download_timeout??m.default_download_timeout??null:null,extra_body:y.extra_body?JSON.stringify(y.extra_body,null,2):""},z.value=!1,S.value=!0}function Z(){const m=d.value.extra_body.trim();if(!m)return;let y;try{y=JSON.parse(m)}catch{throw new Error(t("models.auxiliaryInvalidExtraBody"))}if(!y||typeof y!="object"||Array.isArray(y))throw new Error(t("models.auxiliaryInvalidExtraBody"));return y}function j(){const m={},y=d.value.provider.trim();if(y==="auto")return m.provider="auto",d.value.timeout&&(m.timeout=d.value.timeout),K.value&&d.value.download_timeout&&(m.download_timeout=d.value.download_timeout),m;const U=Z(),J=d.value.model.trim();if(y&&(m.provider=y),y&&y!=="auto"&&y!=="main"&&!J)throw new Error(t("models.modelRequired"));return J&&(m.model=J),d.value.timeout&&(m.timeout=d.value.timeout),K.value&&d.value.download_timeout&&(m.download_timeout=d.value.download_timeout),U&&Object.keys(U).length>0&&(m.extra_body=U),Object.keys(m).length===0&&(m.provider="auto"),m}async function le(){if(!f.value)return;let m;try{m=j()}catch(y){l.error(y.message);return}s.value=!0;try{const y={...C.value};Object.keys(m).length>0?y[f.value.key]=m:delete y[f.value.key],C.value=(await al(y)).auxiliary,S.value=!1,l.success(t("models.auxiliarySaved"))}catch(y){l.error(y.message||t("models.auxiliarySaveFailed"))}finally{s.value=!1}}async function ee(m){s.value=!0;try{const y={...C.value};y[m.key]={provider:"auto",...m.default_timeout?{timeout:m.default_timeout}:{},...m.key==="vision"&&m.default_download_timeout?{download_timeout:m.default_download_timeout}:{}},C.value=(await al(y)).auxiliary,l.success(t("models.auxiliarySaved"))}catch(y){l.error(y.message||t("models.auxiliarySaveFailed"))}finally{s.value=!1}}return qe(()=>{G()}),ge(()=>L.activeProfileName,()=>{G()}),ge(()=>d.value.provider,m=>{if(!z.value){if(!m||m==="auto"||m==="main"){d.value.model="",m==="auto"&&(d.value.extra_body="");return}H(m).includes(d.value.model)||(d.value.model="")}},{flush:"sync"}),(m,y)=>(u(),b("section",ol,[a("div",tl,[a("div",null,[a("h3",null,o(e(t)("models.auxiliaryTitle")),1),a("p",null,o(e(t)("models.auxiliarySubtitle")),1)]),n(e($),{size:"small",quaternary:"",loading:x.value,onClick:G},{default:r(()=>[k(o(e(t)("models.auxiliaryRefresh")),1)]),_:1},8,["loading"])]),n(e(fe),{show:x.value},{default:r(()=>[a("div",sl,[a("div",il,[a("span",null,o(e(t)("models.auxiliaryTask")),1),a("span",null,o(e(t)("models.provider"))+" / "+o(e(t)("models.defaultModel")),1),a("span",null,o(e(t)("models.auxiliaryTimeout")),1),a("span",null,o(e(t)("models.auxiliaryActions")),1)]),(u(!0),b(_e,null,pe(O.value,U=>(u(),b("div",{key:U.key,class:"auxiliary-row"},[a("span",nl,o(c(U)),1),a("span",rl,o(i(C.value[U.key])),1),a("span",ul,o(h(U,C.value[U.key])),1),a("span",dl,[n(e($),{size:"tiny",quaternary:"",onClick:J=>Y(U)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:s.value,onClick:J=>ee(U)},{default:r(()=>[k(o(e(t)("models.auxiliaryClear")),1)]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1},8,["show"]),n(e(ae),{show:S.value,"onUpdate:show":y[6]||(y[6]=U=>S.value=U),preset:"card",title:f.value?c(f.value):e(t)("models.auxiliaryTitle"),style:{width:"min(620px, calc(100vw - 32px))"},"mask-closable":!s.value},{footer:r(()=>[a("div",_l,[n(e($),{disabled:s.value,onClick:y[5]||(y[5]=U=>S.value=!1)},{default:r(()=>[k(o(e(t)("common.cancel")),1)]),_:1},8,["disabled"]),n(e($),{type:"primary",loading:s.value,onClick:le},{default:r(()=>[k(o(e(t)("common.save")),1)]),_:1},8,["loading"])])]),default:r(()=>[a("div",vl,[a("label",null,[a("span",null,o(e(t)("models.provider")),1),n(e(Pe),{value:d.value.provider,"onUpdate:value":y[0]||(y[0]=U=>d.value.provider=U),options:N.value,placeholder:e(t)("models.chooseProvider"),filterable:""},null,8,["value","options","placeholder"])]),a("label",null,[a("span",null,o(e(t)("models.defaultModel")),1),n(e(Pe),{value:d.value.model,"onUpdate:value":y[1]||(y[1]=U=>d.value.model=U),options:F.value,placeholder:e(t)("models.selectModel"),disabled:!d.value.provider||d.value.provider==="auto"||d.value.provider==="main",filterable:""},null,8,["value","options","placeholder","disabled"])]),a("label",null,[a("span",null,o(e(t)("models.auxiliaryTimeout")),1),n(e(Te),{value:d.value.timeout,"onUpdate:value":y[2]||(y[2]=U=>d.value.timeout=U),min:1,precision:0},null,8,["value"])]),K.value?(u(),b("label",cl,[a("span",null,o(e(t)("models.auxiliaryDownloadTimeout")),1),n(e(Te),{value:d.value.download_timeout,"onUpdate:value":y[3]||(y[3]=U=>d.value.download_timeout=U),min:1,precision:0},null,8,["value"])])):D("",!0),a("label",pl,[a("span",null,o(e(t)("models.auxiliaryExtraBody")),1),n(e(me),{value:d.value.extra_body,"onUpdate:value":y[4]||(y[4]=U=>d.value.extra_body=U),type:"textarea",autosize:{minRows:4,maxRows:8}},null,8,["value"])])])]),_:1},8,["show","title","mask-closable"])]))}})})),xs=I((()=>{})),Ut,Cs=I((()=>{ml(),ml(),xs(),ne(),Ut=re(Tt,[["__scopeId","data-v-d0d5a801"]])})),fl,hl,yl,gl,bl,wl,kl,xl,Cl,Ml,$l,Pl,Ll,Al,Sl,Tl,Ul,Ol,zl,Nl,El,Il,Bl,Dl,Fl,Vl,ql,Rl,Gl,Kl,Hl,Xl,jl,Jl,Wl,Yl,Ql,Zl,ea,la,Ot,aa=I((()=>{oe(),de(),se(),Lt(),At(),Ee(),Qe(),fl={class:"combination-models-panel"},hl={class:"combination-header"},yl={class:"combination-header-actions"},gl={class:"combination-table"},bl={class:"combination-row combination-row-head"},wl={class:"preset-name"},kl={key:0,class:"default-badge"},xl={class:"slot-summary"},Cl={class:"slot-summary"},Ml={class:"row-actions"},$l={class:"combination-form"},Pl={class:"switch-row"},Ll={class:"slot-section"},Al={class:"slot-section-header"},Sl={class:"slot-editor-list"},Tl={class:"slot-pair"},Ul={class:"slot-row-actions"},Ol={class:"slot-section"},zl={class:"slot-section-header"},Nl={class:"slot-editor-row aggregator-row"},El={class:"slot-pair"},Il={class:"slot-row-actions"},Bl={class:"modal-actions"},Dl={class:"model-list"},Fl=["onClick"],Vl={class:"model-group-label"},ql={class:"model-group-count"},Rl={class:"model-group-items"},Gl=["title","onClick"],Kl={class:"model-item-label"},Hl={class:"model-item-name"},Xl={key:0,class:"model-item-id"},jl={key:0,class:"model-badge-preview"},Jl={key:1,class:"model-badge-disabled"},Wl={key:2,class:"model-badge-custom"},Yl=["title","onClick"],Ql={key:0,class:"model-empty"},Zl={class:"model-custom"},ea={class:"model-custom-row"},la={class:"model-custom-hint"},Ot=te({__name:"CombinationModelsPanel",setup(R){const{t}=ie(),l=ue(),P=St(),L=Ne(),x=Ye(),s=_(!1),O=_(!1),C=_(null),S=_(!1),f=_(""),z=_(""),d=_(Z()),N=_(!1),F=_(null),K=_(""),H=_({}),A=_(""),c=_(""),i=V(()=>L.providers.filter(v=>v.provider&&v.provider.toLowerCase()!=="moa").map(v=>({label:v.label||v.provider,value:v.provider}))),h=V(()=>L.providers.filter(v=>v.provider&&v.provider.toLowerCase()!=="moa").map(v=>({...v,models:[...v.models,...(P.customModels[v.provider]||[]).filter(p=>!v.models.includes(p))]}))),G=V(()=>{const v=K.value.trim().toLowerCase();return v?h.value.map(p=>({...p,models:p.models.filter(M=>{const g=P.displayModelName(M,p.provider);return M.toLowerCase().includes(v)||g.toLowerCase().includes(v)})})).filter(p=>p.models.length>0||String(p.label||p.provider).toLowerCase().includes(v)):h.value}),Y=V(()=>C.value?Object.entries(C.value.presets).map(([v,p])=>({name:v,preset:p})):[]);function Z(){return{enabled:!0,reference_models:[],aggregator:{provider:"",model:""},reference_temperature:.6,aggregator_temperature:.4,max_tokens:4096}}function j(v){return JSON.parse(JSON.stringify(v))}function le(v){return JSON.parse(JSON.stringify(v))}function ee(v){return!v?.provider||!v?.model?t("models.combinationNotSet"):`${v.provider} / ${v.model}`}function m(v,p){return P.displayModelName(v,p)}function y(v,p){return P.getModelAlias(v,p)}function U(v,p){return(P.customModels[p]||[]).includes(v)}function J(v){return!!H.value[v]}function ve(v){H.value[v]=!H.value[v]}async function W(){s.value=!0;try{C.value=j(await ys())}catch(v){l.error(v.message||t("models.combinationLoadFailed"))}finally{s.value=!1}}function Ie(){f.value="",z.value="",d.value=Z(),S.value=!0}function be(v){C.value?.presets[v]&&(f.value=v,z.value=v,d.value=le(C.value.presets[v]),S.value=!0)}function Le(){ke("reference")}function Ae(v){d.value.reference_models.splice(v,1)}function he(){const v=z.value.trim();return v?/^[A-Za-z0-9_.-]{1,80}$/.test(v)?!f.value&&C.value?.presets[v]||f.value&&v!==f.value&&C.value?.presets[v]?(l.error(t("models.combinationPresetExists")),!1):d.value.reference_models.filter(p=>p.provider.trim()&&p.model.trim()).length===0?(l.error(t("models.combinationReferenceRequired")),!1):!d.value.aggregator.provider.trim()||!d.value.aggregator.model.trim()?(l.error(t("models.combinationAggregatorRequired")),!1):!0:(l.error(t("models.combinationNameInvalid")),!1):(l.error(t("models.combinationNameRequired")),!1)}async function we(){if(!C.value||!he())return;const v=z.value.trim(),p=j(C.value),M={...le(d.value),reference_models:d.value.reference_models.filter(g=>g.provider.trim()&&g.model.trim()).map(g=>({provider:g.provider.trim(),model:g.model.trim()})),aggregator:{provider:d.value.aggregator.provider.trim(),model:d.value.aggregator.model.trim()},max_tokens:Math.max(1,Math.floor(Number(d.value.max_tokens)||4096))};f.value&&f.value!==v&&(delete p.presets[f.value],p.default_preset===f.value&&(p.default_preset=v),p.active_preset===f.value&&(p.active_preset=v)),p.presets[v]=M,(!p.default_preset||!p.presets[p.default_preset])&&(p.default_preset=v),await Me(p),S.value=!1}async function ye(v){if(!C.value||C.value.default_preset===v)return;const p=j(C.value);p.default_preset=v,await Me(p)}async function Se(v){if(!C.value||Object.keys(C.value.presets).length<=1)return;const p=j(C.value);delete p.presets[v];const M=Object.keys(p.presets)[0];p.default_preset===v&&(p.default_preset=M),p.active_preset===v&&(p.active_preset=""),await Me(p)}function ke(v,p){F.value={kind:v,index:p},K.value="",H.value={},A.value=h.value[0]?.provider||"",c.value="",N.value=!0}function xe(v){F.value&&(F.value.kind==="aggregator"?d.value.aggregator=v:typeof F.value.index=="number"?d.value.reference_models[F.value.index]=v:d.value.reference_models.push(v),N.value=!1)}function Ce(v,p){h.value.find(M=>M.provider===p)?.model_meta?.[v]?.disabled||xe({provider:p,model:v})}function Be(){const v=c.value.trim();!A.value||!v||h.value.find(p=>p.provider===A.value)?.model_meta?.[v]?.disabled||xe({provider:A.value,model:v})}async function De(v,p){await P.removeCustomModel(v,p)}async function Me(v){O.value=!0;try{C.value=j((await bs(v)).moa),l.success(t("models.combinationSaved"))}catch(p){throw l.error(p.message||t("models.combinationSaveFailed")),p}finally{O.value=!1}}return qe(()=>{W()}),ge(()=>x.activeProfileName,()=>{W()}),(v,p)=>(u(),b("section",fl,[a("div",hl,[a("div",null,[a("h3",null,o(e(t)("models.combinationTitle")),1),a("p",null,o(e(t)("models.combinationSubtitle")),1)]),a("div",yl,[n(e($),{size:"small",quaternary:"",loading:s.value,onClick:W},{default:r(()=>[k(o(e(t)("models.auxiliaryRefresh")),1)]),_:1},8,["loading"]),n(e($),{size:"small",type:"primary",disabled:!C.value,onClick:Ie},{default:r(()=>[k(o(e(t)("models.combinationAddModel")),1)]),_:1},8,["disabled"])])]),n(e(fe),{show:s.value},{default:r(()=>[a("div",gl,[a("div",bl,[a("span",null,o(e(t)("models.combinationName")),1),a("span",null,o(e(t)("models.combinationReferenceModels")),1),a("span",null,o(e(t)("models.combinationAggregator")),1),a("span",null,o(e(t)("models.auxiliaryActions")),1)]),(u(!0),b(_e,null,pe(Y.value,({name:M,preset:g})=>(u(),b("div",{key:M,class:"combination-row"},[a("span",wl,[k(o(M)+" ",1),C.value?.default_preset===M?(u(),b("span",kl,o(e(t)("models.defaultShort")),1)):D("",!0)]),a("span",xl,o(g.reference_models.map(ee).join(", ")),1),a("span",Cl,o(ee(g.aggregator)),1),a("span",Ml,[n(e($),{size:"tiny",quaternary:"",onClick:T=>be(M)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:C.value?.default_preset===M,onClick:T=>ye(M)},{default:r(()=>[k(o(e(t)("models.combinationSetDefault")),1)]),_:1},8,["disabled","onClick"]),n(e($),{size:"tiny",quaternary:"",disabled:Y.value.length<=1,onClick:T=>Se(M)},{default:r(()=>[k(o(e(t)("common.delete")),1)]),_:1},8,["disabled","onClick"])])]))),128))])]),_:1},8,["show"]),n(e(ae),{show:S.value,"onUpdate:show":p[7]||(p[7]=M=>S.value=M),preset:"card",title:f.value?e(t)("models.combinationEditModel"):e(t)("models.combinationAddModel"),style:{width:"min(760px, calc(100vw - 32px))"},"mask-closable":!O.value},{footer:r(()=>[a("div",Bl,[n(e($),{disabled:O.value,onClick:p[6]||(p[6]=M=>S.value=!1)},{default:r(()=>[k(o(e(t)("common.cancel")),1)]),_:1},8,["disabled"]),n(e($),{type:"primary",loading:O.value,onClick:we},{default:r(()=>[k(o(e(t)("common.save")),1)]),_:1},8,["loading"])])]),default:r(()=>[a("div",$l,[a("label",null,[a("span",null,o(e(t)("models.combinationName")),1),n(e(me),{value:z.value,"onUpdate:value":p[0]||(p[0]=M=>z.value=M),placeholder:e(t)("models.combinationPresetPlaceholder")},null,8,["value","placeholder"])]),a("label",Pl,[a("span",null,o(e(t)("models.combinationEnabled")),1),n(e(ps),{value:d.value.enabled,"onUpdate:value":p[1]||(p[1]=M=>d.value.enabled=M)},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationReferenceTemperature")),1),n(e(Te),{value:d.value.reference_temperature,"onUpdate:value":p[2]||(p[2]=M=>d.value.reference_temperature=M),min:0,max:2,step:.1},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationAggregatorTemperature")),1),n(e(Te),{value:d.value.aggregator_temperature,"onUpdate:value":p[3]||(p[3]=M=>d.value.aggregator_temperature=M),min:0,max:2,step:.1},null,8,["value"])]),a("label",null,[a("span",null,o(e(t)("models.combinationMaxTokens")),1),n(e(Te),{value:d.value.max_tokens,"onUpdate:value":p[4]||(p[4]=M=>d.value.max_tokens=M),min:1,precision:0},null,8,["value"])]),a("div",Ll,[a("div",Al,[a("h4",null,o(e(t)("models.combinationReferenceModels")),1),n(e($),{size:"tiny",type:"primary",secondary:"",onClick:Le},{default:r(()=>[k(o(e(t)("models.combinationAddReference")),1)]),_:1})]),a("div",Sl,[(u(!0),b(_e,null,pe(d.value.reference_models,(M,g)=>(u(),b("div",{key:g,class:"slot-editor-row"},[a("span",Tl,o(ee(M)),1),a("span",Ul,[n(e($),{size:"small",quaternary:"",onClick:T=>ke("reference",g)},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1},8,["onClick"]),n(e($),{size:"small",quaternary:"",onClick:T=>Ae(g)},{default:r(()=>[k(o(e(t)("common.delete")),1)]),_:1},8,["onClick"])])]))),128))])]),a("div",Ol,[a("div",zl,[a("h4",null,o(e(t)("models.combinationAggregator")),1)]),a("div",Nl,[a("span",El,o(ee(d.value.aggregator)),1),a("span",Il,[n(e($),{size:"small",quaternary:"",onClick:p[5]||(p[5]=M=>ke("aggregator"))},{default:r(()=>[k(o(e(t)("common.edit")),1)]),_:1})])])])])]),_:1},8,["show","title","mask-closable"]),n(e(ae),{show:N.value,"onUpdate:show":p[11]||(p[11]=M=>N.value=M),preset:"card",title:e(t)("models.selectModel"),style:{width:"min(480px, calc(100vw - 32px))"},"mask-closable":!0},{default:r(()=>[n(e(me),{value:K.value,"onUpdate:value":p[8]||(p[8]=M=>K.value=M),placeholder:e(t)("models.searchPlaceholder"),clearable:"",size:"small",class:"model-search"},null,8,["value","placeholder"]),a("div",Dl,[(u(!0),b(_e,null,pe(G.value,M=>(u(),b("div",{key:M.provider,class:"model-group"},[a("div",{class:"model-group-header",onClick:g=>ve(M.provider)},[(u(),b("svg",{class:Ve(["model-group-arrow",{collapsed:J(M.provider)}]),width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...p[12]||(p[12]=[a("polyline",{points:"6 9 12 15 18 9"},null,-1)])],2)),a("span",Vl,o(M.label||M.provider),1),a("span",ql,o(M.models.length),1)],8,Fl),ds(a("div",Rl,[(u(!0),b(_e,null,pe(M.models,g=>(u(),b("div",{key:g,class:Ve(["model-item",{disabled:!!M.model_meta?.[g]?.disabled}]),title:M.model_meta?.[g]?.disabled?e(t)("models.disabledTooltip"):"",onClick:T=>Ce(g,M.provider)},[a("span",Kl,[a("span",Hl,o(m(g,M.provider)),1),y(g,M.provider)?(u(),b("span",Xl,o(e(t)("models.aliasCanonical",{model:g})),1)):D("",!0)]),M.model_meta?.[g]?.preview?(u(),b("span",jl,o(e(t)("models.previewBadge")),1)):D("",!0),M.model_meta?.[g]?.disabled?(u(),b("span",Jl,o(e(t)("models.disabledBadge")),1)):D("",!0),U(g,M.provider)?(u(),b("span",Wl,o(e(t)("models.customBadge")),1)):D("",!0),U(g,M.provider)?(u(),b("button",{key:3,class:"model-custom-remove",type:"button",title:e(t)("models.removeCustomModel"),onClick:cs(T=>De(g,M.provider),["stop"])}," × ",8,Yl)):D("",!0)],10,Gl))),128))],512),[[us,!J(M.provider)]])]))),128)),G.value.length===0?(u(),b("div",Ql,o(K.value?e(t)("models.noResults"):e(t)("models.noModels")),1)):D("",!0),a("div",Zl,[a("div",ea,[n(e(Pe),{value:A.value,"onUpdate:value":p[9]||(p[9]=M=>A.value=M),options:i.value,size:"small",class:"model-custom-provider"},null,8,["value","options"]),n(e(me),{value:c.value,"onUpdate:value":p[10]||(p[10]=M=>c.value=M),placeholder:e(t)("models.customModelPlaceholder"),size:"small",class:"model-custom-input",onKeydown:$t(Be,["enter"])},null,8,["value","placeholder"])]),a("div",la,o(e(t)("models.customModelHint")),1)])])]),_:1},8,["show","title"])]))}})})),Ms=I((()=>{})),zt,$s=I((()=>{aa(),aa(),Ms(),ne(),zt=re(Ot,[["__scopeId","data-v-2bc3b28c"]])}));async function Ps(){return Q("/api/hermes/auth/copilot/start",{method:"POST"})}async function Ls(R){return Q(`/api/hermes/auth/copilot/poll/${R}`)}async function Ze(){return Q("/api/hermes/auth/copilot/check-token")}async function As(){return Q("/api/hermes/auth/copilot/enable",{method:"POST"})}async function Ss(){return Q("/api/hermes/auth/copilot/disable",{method:"POST"})}var Re=I((()=>{Ue()})),oa,ta,sa,ia,na,ra,ua,da,va,ca,pa,_a,ma,fa,ha,ya,ga,ba,wa,ka,xa,Ca,Ma,$a,Pa,La,Aa,Sa,Ta,Ua,Oa,za,Na,Ea,Ia,Ba,Da,Fa,Nt,Va=I((()=>{oe(),de(),Ee(),At(),ws(),Re(),se(),oa={class:"provider-card"},ta={class:"card-header"},sa={class:"provider-name"},ia={class:"provider-badges"},na={key:0,class:"type-badge default"},ra={class:"card-body"},ua={class:"info-row"},da={class:"info-label"},va={class:"info-value mono"},ca={class:"info-row"},pa={class:"info-label"},_a={class:"info-value mono"},ma={class:"info-row models-row"},fa={class:"info-label"},ha={class:"info-value models-count"},ya={class:"default-model-row"},ga={class:"info-label"},ba={class:"models-list"},wa=["title","onClick"],ka={class:"model-tag-name"},xa={key:0,class:"model-tag-default"},Ca={key:1,class:"model-tag-id"},Ma={key:0,class:"model-tag model-tag-more"},$a={class:"card-actions"},Pa={class:"alias-list-hint"},La={class:"alias-list"},Aa={class:"alias-row-text"},Sa={class:"alias-row-name"},Ta={key:0,class:"alias-row-default"},Ua={class:"alias-row-id"},Oa={key:0,class:"model-alias-canonical"},za={class:"model-alias-hint"},Na={class:"model-alias-actions"},Ea={class:"visibility-hint"},Ia={class:"visibility-count"},Ba={class:"visibility-list"},Da={key:0,class:"visibility-model-id"},Fa={class:"visibility-actions"},Nt=te({__name:"ProviderCard",props:{provider:{}},setup(R){const t=R,{t:l}=ie(),P=Ne(),L=St(),x=gs(),s=ue(),O=Pt(),C=V(()=>t.provider.provider.startsWith("custom:")),S=V(()=>!t.provider.builtin&&C.value),f=V(()=>C.value||!t.provider.builtin&&!!t.provider.provider_source),z=V(()=>t.provider.provider==="copilot"),d=V(()=>t.provider.label),N=_(!1),F=V(()=>f.value?l("common.delete"):z.value?l("models.disableProvider"):l("models.clearProviderCredentials")),K=V(()=>f.value?l("models.deleteProvider"):z.value?l("models.disableProvider"):l("models.clearProviderCredentials"));function H(g){if(f.value)return l("models.deleteConfirm",{name:d.value});if(z.value){const T=l("models.disableProviderConfirm",{name:d.value});return g?`${T}
|
|
2
2
|
|
|
3
3
|
${g}`:T}return l("models.clearCredentialsConfirm",{name:d.value})}const A=_(!1),c=_(!1),i=_(""),h=_(""),G=_(""),Y=_(!1),Z=_(!1),j=_([]),le=_(!1),ee=_(null),m=V(()=>P.allProviders.find(g=>g.provider===t.provider.provider)),y=V(()=>t.provider.available_models?.length?t.provider.available_models:m.value?.models?.length?m.value.models:t.provider.models),U=V(()=>L.getProviderVisibility(t.provider.provider)),J=V(()=>U.value.mode==="include"),ve=V(()=>`${t.provider.models.length}/${y.value.length}`),W=V(()=>P.defaultProvider===t.provider.provider),Ie=V(()=>t.provider.models.map(g=>({label:ye(g),value:g}))),be=V(()=>W.value&&P.defaultModel||null),Le=V(()=>{const g=t.provider.models.slice(0,20),T=P.defaultModel;return W.value&&T&&t.provider.models.includes(T)&&!g.includes(T)?[T,...g.slice(0,19)]:g}),Ae=V(()=>Math.max(t.provider.models.length-Le.value.length,0));function he(g){return W.value&&P.defaultModel===g}function we(g){return L.getModelAlias(g,t.provider.provider)}function ye(g){return L.displayModelName(g,t.provider.provider)}function Se(g){i.value=t.provider.provider,h.value=g,G.value=L.getModelAlias(g,t.provider.provider),c.value=!0}async function ke(){if(!W.value){le.value=!0;try{await P.setDefaultProvider(t.provider.provider),s.success(l("models.defaultProviderUpdated"))}catch(g){s.error(g?.message||l("models.defaultProviderUpdateFailed"))}finally{le.value=!1}}}async function xe(g){if(g&&!he(g)){ee.value=g;try{await P.setDefaultModel(g,t.provider.provider),s.success(l("models.defaultModelUpdated"))}catch(T){s.error(T?.message||l("models.defaultModelUpdateFailed"))}finally{ee.value===g&&(ee.value=null)}}}async function Ce(){if(!(!h.value||!i.value))try{await L.setModelAlias(h.value,i.value,G.value),c.value=!1}catch(g){s.error(g.message||l("models.aliasSaveFailed"))}}async function Be(){G.value="",await Ce()}function De(){const g=L.getProviderVisibility(t.provider.provider);j.value=g.mode==="include"?y.value.filter(T=>g.models.includes(T)):[...y.value],Y.value=!0}async function Me(){if(j.value.length===0){s.error(l("models.visibilitySelectOne"));return}Z.value=!0;try{const g=j.value.filter(B=>y.value.includes(B)),T=g.length===y.value.length?"all":"include";await L.setModelVisibility(t.provider.provider,{mode:T,models:g}),await P.fetchProviders(),Y.value=!1,s.success(l("models.visibilitySaved"))}catch(g){s.error(g.message||l("models.visibilitySaveFailed"))}finally{Z.value=!1}}function v(){j.value=[...y.value]}function p(){j.value=[]}async function M(){let g="";if(z.value)try{const T=await Ze();T.source==="env"?g=l("models.copilotDeleteHintEnv"):T.source==="gh-cli"?g=l("models.copilotDeleteHintGhCli"):T.source==="apps-json"&&(g=l("models.copilotDeleteHintAppsJson"))}catch{}O.warning({title:K.value,content:H(g),positiveText:F.value,negativeText:l("common.cancel"),onPositiveClick:async()=>{N.value=!0;try{if(z.value?(await Ss(),x.clearProviderFromSessions("copilot"),await P.fetchProviders()):await P.removeProvider(t.provider.provider,{source:t.provider.provider_source,providerKey:t.provider.provider_key}),!L.selectedModel&&L.modelGroups.length>0){const T=L.modelGroups.find(B=>B.models.length>0);T&&await L.switchModel(T.models[0],T.provider)}s.success(f.value?l("models.providerDeleted"):z.value?l("models.providerDisabled"):l("models.providerCredentialsCleared"))}catch(T){s.error(T.message)}finally{N.value=!1}}})}return(g,T)=>(u(),b("div",oa,[a("div",ta,[a("h3",sa,o(d.value),1),a("div",ia,[W.value?(u(),b("span",na,o(e(l)("models.currentDefault")),1)):D("",!0),a("span",{class:Ve(["type-badge",S.value?"custom":"builtin"])},o(S.value?e(l)("models.customType"):e(l)("models.builtIn")),3)])]),a("div",ra,[a("div",ua,[a("span",da,o(e(l)("models.provider")),1),a("code",va,o(R.provider.provider),1)]),a("div",ca,[a("span",pa,o(e(l)("models.baseUrl")),1),a("code",_a,o(R.provider.base_url),1)]),a("div",ma,[a("span",fa,o(e(l)("models.models")),1),a("span",ha,o(J.value?ve.value:R.provider.models.length)+" "+o(e(l)("models.count")),1)]),a("div",ya,[a("span",ga,o(e(l)("models.defaultModel")),1),n(e(Pe),{class:"default-model-select",size:"tiny",filterable:"",value:be.value,options:Ie.value,placeholder:e(l)("models.selectModel"),disabled:R.provider.models.length===0,loading:ee.value!==null,"onUpdate:value":xe},null,8,["value","options","placeholder","disabled","loading"])]),a("div",ba,[(u(!0),b(_e,null,pe(Le.value,B=>(u(),b("button",{key:B,class:Ve(["model-tag model-tag-button",{default:he(B)}]),type:"button",title:e(l)("models.aliasTitleFor",{model:B}),onClick:Ge=>Se(B)},[a("span",ka,o(ye(B)),1),he(B)?(u(),b("span",xa,o(e(l)("models.defaultShort")),1)):D("",!0),we(B)?(u(),b("span",Ca,o(B),1)):D("",!0)],10,wa))),128)),Ae.value>0?(u(),b("span",Ma," +"+o(Ae.value)+" "+o(e(l)("models.more")),1)):D("",!0)])]),a("div",$a,[n(e($),{size:"tiny",quaternary:"",disabled:W.value,loading:le.value,onClick:ke},{default:r(()=>[k(o(W.value?e(l)("models.currentDefault"):e(l)("models.setDefaultProvider")),1)]),_:1},8,["disabled","loading"]),n(e($),{size:"tiny",quaternary:"",onClick:T[0]||(T[0]=B=>A.value=!0)},{default:r(()=>[k(o(e(l)("models.aliasManage")),1)]),_:1}),n(e($),{size:"tiny",quaternary:"",onClick:De},{default:r(()=>[k(o(e(l)("models.manageVisibleModels")),1)]),_:1}),n(e($),{size:"tiny",quaternary:"",type:"error",loading:N.value,onClick:M},{default:r(()=>[k(o(F.value),1)]),_:1},8,["loading"])]),n(e(ae),{show:A.value,"onUpdate:show":T[1]||(T[1]=B=>A.value=B),preset:"card",title:e(l)("models.aliasManageFor",{provider:d.value}),style:{width:"min(560px, calc(100vw - 32px))"},"mask-closable":!0},{default:r(()=>[a("div",Pa,o(e(l)("models.aliasHint")),1),a("div",La,[(u(!0),b(_e,null,pe(R.provider.models,B=>(u(),b("div",{key:B,class:"alias-row"},[a("div",Aa,[a("span",Sa,o(ye(B)),1),he(B)?(u(),b("span",Ta,o(e(l)("models.defaultShort")),1)):D("",!0),a("code",Ua,o(B),1)]),n(e($),{size:"tiny",quaternary:"",onClick:Ge=>Se(B)},{default:r(()=>[k(o(e(l)("models.aliasEdit")),1)]),_:1},8,["onClick"])]))),128))])]),_:1},8,["show","title"]),n(e(ae),{show:c.value,"onUpdate:show":T[4]||(T[4]=B=>c.value=B),preset:"card",title:h.value?e(l)("models.aliasTitleFor",{model:h.value}):e(l)("models.aliasTitle"),style:{width:"min(420px, calc(100vw - 32px))"},"mask-closable":!0},{footer:r(()=>[a("div",Na,[n(e($),{quaternary:"",disabled:!e(L).getModelAlias(h.value,i.value),onClick:Be},{default:r(()=>[k(o(e(l)("models.aliasUseOriginal")),1)]),_:1},8,["disabled"]),T[8]||(T[8]=a("div",{class:"model-alias-spacer"},null,-1)),n(e($),{onClick:T[3]||(T[3]=B=>c.value=!1)},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1}),n(e($),{type:"primary",onClick:Ce},{default:r(()=>[k(o(e(l)("common.save")),1)]),_:1})])]),default:r(()=>[n(e(me),{value:G.value,"onUpdate:value":T[2]||(T[2]=B=>G.value=B),placeholder:e(l)("models.aliasPlaceholder"),clearable:"",onKeydown:$t(Ce,["enter"])},null,8,["value","placeholder"]),h.value?(u(),b("div",Oa,o(e(l)("models.aliasCanonical",{model:h.value})),1)):D("",!0),a("div",za,o(e(l)("models.aliasHint")),1)]),_:1},8,["show","title"]),n(e(ae),{show:Y.value,"onUpdate:show":T[7]||(T[7]=B=>Y.value=B),preset:"card",title:e(l)("models.manageVisibleModelsFor",{name:d.value}),style:{width:"min(560px, calc(100vw - 32px))"},"mask-closable":!Z.value},{default:r(()=>[a("p",Ea,o(e(l)("models.visibilityHint")),1),a("div",Ia,o(j.value.length)+"/"+o(y.value.length)+" "+o(e(l)("models.count")),1),a("div",Ba,[n(e(ns),{value:j.value,"onUpdate:value":T[5]||(T[5]=B=>j.value=B)},{default:r(()=>[(u(!0),b(_e,null,pe(y.value,B=>(u(),X(e(ms),{key:B,value:B,class:"visibility-model"},{default:r(()=>[a("code",null,o(ye(B)),1),we(B)?(u(),b("code",Da,o(B),1)):D("",!0)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a("div",Fa,[n(e($),{size:"small",quaternary:"",disabled:Z.value,onClick:v},{default:r(()=>[k(o(e(l)("models.showAllModels")),1)]),_:1},8,["disabled"]),n(e($),{size:"small",quaternary:"",disabled:Z.value,onClick:p},{default:r(()=>[k(o(e(l)("models.clearVisibleModels")),1)]),_:1},8,["disabled"]),T[9]||(T[9]=a("div",{class:"visibility-action-spacer"},null,-1)),n(e($),{size:"small",disabled:Z.value,onClick:T[6]||(T[6]=B=>Y.value=!1)},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"]),n(e($),{size:"small",type:"primary",loading:Z.value,onClick:Me},{default:r(()=>[k(o(e(l)("common.save")),1)]),_:1},8,["loading"])])]),_:1},8,["show","title","mask-closable"])]))}})})),Ts=I((()=>{})),Et,Us=I((()=>{Va(),Va(),Ts(),ne(),Et=re(Nt,[["__scopeId","data-v-68ce0370"]])})),qa,Ra,It,Ga=I((()=>{oe(),Us(),Ee(),se(),qa={key:0,class:"empty-state"},Ra={key:1,class:"providers-grid"},It=te({__name:"ProvidersPanel",setup(R){const{t}=ie(),l=Ne();return(P,L)=>e(l).providers.length===0?(u(),b("div",qa,[L[0]||(L[0]=a("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1",class:"empty-icon"},[a("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),a("path",{d:"M2 17l10 5 10-5"}),a("path",{d:"M2 12l10 5 10-5"})],-1)),a("p",null,o(e(t)("models.noProviders")),1)])):(u(),b("div",Ra,[(u(!0),b(_e,null,pe(e(l).providers,x=>(u(),X(Et,{key:x.provider,provider:x},null,8,["provider"]))),128))]))}})})),Os=I((()=>{})),Bt,zs=I((()=>{Ga(),Ga(),Os(),ne(),Bt=re(It,[["__scopeId","data-v-76eec30b"]])}));async function Ns(){return Q("/api/hermes/auth/codex/start",{method:"POST"})}async function Es(R){return Q(`/api/hermes/auth/codex/poll/${R}`)}var Is=I((()=>{Ue()})),Ka,Ha,Xa,ja,Ja,Wa,Ya,Qa,Za,eo,lo,Dt,ao=I((()=>{oe(),de(),se(),Is(),Oe(),Ka={class:"codex-login"},Ha={key:0,class:"codex-login__state"},Xa={key:1,class:"codex-login__state"},ja={class:"codex-login__hint"},Ja={class:"codex-login__code-text"},Wa={key:2,class:"codex-login__state codex-login__state--success"},Ya={key:3,class:"codex-login__state"},Qa={class:"codex-login__error"},Za={key:4,class:"codex-login__state"},eo={class:"codex-login__error"},lo={class:"modal-footer"},Dt=te({__name:"CodexLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_(""),f=_("");let z=null;async function d(){s.value="loading",f.value="";try{const i=await Ns();O.value=i.user_code,C.value=i.verification_url,S.value=i.session_id,s.value="waiting",N()}catch(i){s.value="error";const h=i.message||"";try{const G=h.match(/\{[\s\S]*\}$/);G?f.value=JSON.parse(G[0]).error||h:f.value=h}catch{f.value=h}L.error(f.value)}}function N(){F(),z=setTimeout(async()=>{try{const i=await Es(S.value);i.status==="pending"?N():i.status==="approved"?(s.value="approved",L.success(l("models.codexApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):i.status==="expired"?s.value="expired":i.status==="error"&&(s.value="error",f.value=i.error||"Unknown error")}catch{N()}},3e3)}function F(){z&&(clearTimeout(z),z=null)}function K(){F(),x.value=!1,setTimeout(()=>P("close"),200)}async function H(){await ze(O.value)?L.success(l("models.codexCopyCode")):L.error(l("models.codexCopyCode")+" ✗")}function A(){window.open(C.value,"_blank")}function c(){s.value="idle",O.value="",C.value="",S.value="",f.value="",d()}return Fe(()=>{F()}),d(),(i,h)=>{const G=rs("NSpin");return u(),X(e(ae),{show:x.value,"onUpdate:show":h[0]||(h[0]=Y=>x.value=Y),preset:"card",title:e(l)("models.codexLoginTitle"),style:{width:"min(440px, calc(100vw - 32px))"},"mask-closable":s.value!=="waiting",onAfterLeave:h[1]||(h[1]=Y=>P("close"))},{footer:r(()=>[a("div",lo,[n(e($),{disabled:s.value==="waiting",onClick:K},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",Ka,[s.value==="idle"||s.value==="loading"?(u(),b("div",Ha,[n(G,{size:"small"})])):s.value==="waiting"?(u(),b("div",Xa,[a("p",ja,o(e(l)("models.codexWaiting")),1),a("div",{class:"codex-login__code",onClick:H},[a("span",Ja,o(O.value),1),h[2]||(h[2]=a("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),a("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})],-1))]),n(e($),{type:"primary",block:"",onClick:A},{icon:r(()=>[...h[3]||(h[3]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),a("polyline",{points:"15 3 21 3 21 9"}),a("line",{x1:"10",y1:"14",x2:"21",y2:"3"})],-1)])]),default:r(()=>[k(" "+o(e(l)("models.codexOpenLink")),1)]),_:1})])):s.value==="approved"?(u(),b("div",Wa,[h[4]||(h[4]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.codexApproved")),1)])):s.value==="expired"?(u(),b("div",Ya,[a("p",Qa,o(e(l)("models.codexExpired")),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",Za,[a("p",eo,o(f.value),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"])}}})})),Bs=I((()=>{})),Ft,Ds=I((()=>{ao(),ao(),Bs(),ne(),Ft=re(Dt,[["__scopeId","data-v-b8a659c8"]])}));async function Fs(){return Q("/api/hermes/auth/nous/start",{method:"POST"})}async function Vs(R){return Q(`/api/hermes/auth/nous/poll/${R}`)}var qs=I((()=>{Ue()})),oo,to,so,io,no,ro,uo,vo,co,po,_o,Vt,mo=I((()=>{oe(),de(),se(),qs(),Oe(),oo={class:"nous-login"},to={key:0,class:"nous-login__state"},so={key:1,class:"nous-login__state"},io={class:"nous-login__hint"},no={class:"nous-login__code-text"},ro={key:2,class:"nous-login__state nous-login__state--success"},uo={key:3,class:"nous-login__state"},vo={class:"nous-login__error"},co={key:4,class:"nous-login__state"},po={class:"nous-login__error"},_o={class:"modal-footer"},Vt=te({__name:"NousLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_(""),f=_("");let z=null;async function d(){s.value="loading",f.value="";try{const i=await Fs();O.value=i.user_code,C.value=i.verification_url,S.value=i.session_id,s.value="waiting",N()}catch(i){s.value="error";const h=i.message||"";try{const G=h.match(/\{[\s\S]*\}$/);G?f.value=JSON.parse(G[0]).error||h:f.value=h}catch{f.value=h}L.error(f.value)}}function N(){F(),z=setTimeout(async()=>{try{const i=await Vs(S.value);i.status==="pending"?N():i.status==="approved"?(s.value="approved",L.success(l("models.nousApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):i.status==="expired"?s.value="expired":i.status==="denied"?(s.value="error",f.value=l("models.nousDenied")):i.status==="error"&&(s.value="error",f.value=i.error||"Unknown error")}catch{N()}},3e3)}function F(){z&&(clearTimeout(z),z=null)}function K(){F(),x.value=!1,setTimeout(()=>P("close"),200)}async function H(){await ze(O.value)?L.success(l("models.nousCopyCode")):L.error(l("models.nousCopyCode")+" ✗")}function A(){window.open(C.value,"_blank")}function c(){s.value="idle",O.value="",C.value="",S.value="",f.value="",d()}return Fe(()=>{F()}),d(),(i,h)=>(u(),X(e(ae),{show:x.value,"onUpdate:show":h[0]||(h[0]=G=>x.value=G),preset:"card",title:e(l)("models.nousLoginTitle"),style:{width:"min(440px, calc(100vw - 32px))"},"mask-closable":s.value!=="waiting",onAfterLeave:h[1]||(h[1]=G=>P("close"))},{footer:r(()=>[a("div",_o,[n(e($),{disabled:s.value==="waiting",onClick:K},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",oo,[s.value==="idle"||s.value==="loading"?(u(),b("div",to,[n(e(fe),{size:"small"})])):s.value==="waiting"?(u(),b("div",so,[a("p",io,o(e(l)("models.nousWaiting")),1),a("div",{class:"nous-login__code",onClick:H},[a("span",no,o(O.value),1),h[2]||(h[2]=a("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),a("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})],-1))]),n(e($),{type:"primary",block:"",onClick:A},{icon:r(()=>[...h[3]||(h[3]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),a("polyline",{points:"15 3 21 3 21 9"}),a("line",{x1:"10",y1:"14",x2:"21",y2:"3"})],-1)])]),default:r(()=>[k(" "+o(e(l)("models.nousOpenLink")),1)]),_:1})])):s.value==="approved"?(u(),b("div",ro,[h[4]||(h[4]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.nousApproved")),1)])):s.value==="expired"?(u(),b("div",uo,[a("p",vo,o(e(l)("models.nousExpired")),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",co,[a("p",po,o(f.value),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"]))}})})),Rs=I((()=>{})),qt,Gs=I((()=>{mo(),mo(),Rs(),ne(),qt=re(Vt,[["__scopeId","data-v-13765003"]])})),fo,ho,yo,go,bo,wo,ko,xo,Co,Mo,$o,Rt,Po=I((()=>{oe(),de(),se(),Re(),Oe(),fo={class:"copilot-login"},ho={key:0,class:"copilot-login__state"},yo={key:1,class:"copilot-login__state"},go={class:"copilot-login__hint"},bo={class:"copilot-login__code-text"},wo={key:2,class:"copilot-login__state copilot-login__state--success"},ko={key:3,class:"copilot-login__state"},xo={class:"copilot-login__error"},Co={key:4,class:"copilot-login__state"},Mo={class:"copilot-login__error"},$o={class:"modal-footer"},Rt=te({__name:"CopilotLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_(""),f=_("");let z=null;async function d(){s.value="loading",f.value="";try{const i=await Ps();O.value=i.user_code,C.value=i.verification_url,S.value=i.session_id,s.value="waiting",N()}catch(i){s.value="error";const h=i?.message||"";try{const G=h.match(/\{[\s\S]*\}$/);G?f.value=JSON.parse(G[0]).error||h:f.value=h}catch{f.value=h}L.error(f.value)}}function N(){F(),z=setTimeout(async()=>{try{const i=await Ls(S.value);i.status==="pending"?N():i.status==="approved"?(s.value="approved",L.success(l("models.copilotApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):i.status==="expired"?s.value="expired":i.status==="denied"?(s.value="error",f.value=l("models.copilotDenied")):i.status==="error"&&(s.value="error",f.value=i.error||"Unknown error")}catch{N()}},3e3)}function F(){z&&(clearTimeout(z),z=null)}function K(){F(),x.value=!1,setTimeout(()=>P("close"),200)}async function H(){await ze(O.value)?L.success(l("models.copilotCopyCode")):L.error(l("models.copilotCopyCode")+" ✗")}function A(){window.open(C.value,"_blank")}function c(){s.value="idle",O.value="",C.value="",S.value="",f.value="",d()}return Fe(()=>{F()}),d(),(i,h)=>(u(),X(e(ae),{show:x.value,"onUpdate:show":h[0]||(h[0]=G=>x.value=G),preset:"card",title:e(l)("models.copilotLoginTitle"),style:{width:"min(440px, calc(100vw - 32px))"},"mask-closable":s.value!=="waiting",onAfterLeave:h[1]||(h[1]=G=>P("close"))},{footer:r(()=>[a("div",$o,[n(e($),{disabled:s.value==="waiting",onClick:K},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",fo,[s.value==="idle"||s.value==="loading"?(u(),b("div",ho,[n(e(fe),{size:"small"})])):s.value==="waiting"?(u(),b("div",yo,[a("p",go,o(e(l)("models.copilotWaiting")),1),a("div",{class:"copilot-login__code",onClick:H},[a("span",bo,o(O.value),1),h[2]||(h[2]=a("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),a("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})],-1))]),n(e($),{type:"primary",block:"",onClick:A},{icon:r(()=>[...h[3]||(h[3]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),a("polyline",{points:"15 3 21 3 21 9"}),a("line",{x1:"10",y1:"14",x2:"21",y2:"3"})],-1)])]),default:r(()=>[k(" "+o(e(l)("models.copilotOpenLink")),1)]),_:1})])):s.value==="approved"?(u(),b("div",wo,[h[4]||(h[4]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.copilotApproved")),1)])):s.value==="expired"?(u(),b("div",ko,[a("p",xo,o(e(l)("models.copilotExpired")),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",Co,[a("p",Mo,o(f.value),1),n(e($),{size:"small",onClick:c},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"]))}})})),Ks=I((()=>{})),Gt,Hs=I((()=>{Po(),Po(),Ks(),ne(),Gt=re(Rt,[["__scopeId","data-v-fe3fcc7e"]])}));async function Xs(){return Q("/api/hermes/auth/xai/start",{method:"POST"})}async function js(R){return Q(`/api/hermes/auth/xai/poll/${R}`)}var Js=I((()=>{Ue()})),Lo,Ao,So,To,Uo,Oo,zo,No,Eo,Io,Kt,Bo=I((()=>{oe(),de(),se(),Js(),Oe(),Lo={class:"xai-login"},Ao={key:0,class:"xai-login__state"},So={key:1,class:"xai-login__state"},To={class:"xai-login__hint"},Uo={key:2,class:"xai-login__state xai-login__state--success"},Oo={key:3,class:"xai-login__state"},zo={class:"xai-login__error"},No={key:4,class:"xai-login__state"},Eo={class:"xai-login__error"},Io={class:"modal-footer"},Kt=te({__name:"XaiOAuthLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_("");let f=null;async function z(){s.value="loading",S.value="";try{const c=await Xs();O.value=c.authorization_url,C.value=c.session_id,s.value="waiting",window.open(O.value,"_blank"),d()}catch(c){s.value="error",S.value=c?.message||String(c),L.error(S.value)}}function d(){N(),f=setTimeout(async()=>{try{const c=await js(C.value);c.status==="pending"?d():c.status==="approved"?(s.value="approved",L.success(l("models.xaiApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):c.status==="expired"?s.value="expired":c.status==="error"&&(s.value="error",S.value=c.error||"Unknown error")}catch{d()}},2e3)}function N(){f&&clearTimeout(f),f=null}function F(){N(),x.value=!1,setTimeout(()=>P("close"),200)}function K(){window.open(O.value,"_blank")}async function H(){await ze(O.value)?L.success(l("common.copied")):L.error(l("chat.copyFailed"))}function A(){s.value="idle",O.value="",C.value="",S.value="",z()}return Fe(N),z(),(c,i)=>(u(),X(e(ae),{show:x.value,"onUpdate:show":i[0]||(i[0]=h=>x.value=h),preset:"card",title:e(l)("models.xaiLoginTitle"),style:{width:"min(440px, calc(100vw - 32px))"},"mask-closable":s.value!=="waiting",onAfterLeave:i[1]||(i[1]=h=>P("close"))},{footer:r(()=>[a("div",Io,[n(e($),{disabled:s.value==="waiting",onClick:F},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",Lo,[s.value==="idle"||s.value==="loading"?(u(),b("div",Ao,[n(e(fe),{size:"small"})])):s.value==="waiting"?(u(),b("div",So,[a("p",To,o(e(l)("models.xaiWaiting")),1),n(e($),{type:"primary",block:"",onClick:K},{default:r(()=>[k(o(e(l)("models.xaiOpenLink")),1)]),_:1}),n(e($),{block:"",onClick:H},{default:r(()=>[k(o(e(l)("models.xaiCopyLink")),1)]),_:1})])):s.value==="approved"?(u(),b("div",Uo,[i[2]||(i[2]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.xaiApproved")),1)])):s.value==="expired"?(u(),b("div",Oo,[a("p",zo,o(e(l)("models.xaiExpired")),1),n(e($),{size:"small",onClick:A},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",No,[a("p",Eo,o(S.value),1),n(e($),{size:"small",onClick:A},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"]))}})})),Ws=I((()=>{})),Ht,Ys=I((()=>{Bo(),Bo(),Ws(),ne(),Ht=re(Kt,[["__scopeId","data-v-73a4b1b7"]])}));async function Qs(){return Q("/api/hermes/auth/anthropic/start",{method:"POST"})}async function Zs(R,t){return Q(`/api/hermes/auth/anthropic/submit/${R}`,{method:"POST",body:JSON.stringify({code:t})})}var ei=I((()=>{Ue()})),Do,Fo,Vo,qo,Ro,Go,Ko,Ho,Xo,jo,Xt,Jo=I((()=>{oe(),de(),se(),ei(),Oe(),Do={class:"oauth-login"},Fo={key:0,class:"oauth-login__state"},Vo={key:1,class:"oauth-login__state"},qo={class:"oauth-login__hint"},Ro={key:2,class:"oauth-login__state oauth-login__state--success"},Go={key:3,class:"oauth-login__state"},Ko={class:"oauth-login__error"},Ho={key:4,class:"oauth-login__state"},Xo={class:"oauth-login__error"},jo={class:"modal-footer"},Xt=te({__name:"AnthropicLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_(""),f=_("");async function z(){s.value="loading",f.value="";try{const A=await Qs();O.value=A.authorization_url,C.value=A.session_id,s.value="waiting",window.open(O.value,"_blank")}catch(A){s.value="error",f.value=A?.message||String(A),L.error(f.value)}}async function d(){if(!(!S.value.trim()||!C.value)){s.value="submitting",f.value="";try{const A=await Zs(C.value,S.value.trim());A.status==="approved"?(s.value="approved",L.success(l("models.anthropicApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):A.status==="expired"?s.value="expired":(s.value="error",f.value=A.error||"Unknown error")}catch(A){s.value="error",f.value=A?.message||String(A),L.error(f.value)}}}function N(){x.value=!1,setTimeout(()=>P("close"),200)}function F(){window.open(O.value,"_blank")}async function K(){await ze(O.value)?L.success(l("common.copied")):L.error(l("chat.copyFailed"))}function H(){O.value="",C.value="",S.value="",f.value="",z()}return z(),(A,c)=>(u(),X(e(ae),{show:x.value,"onUpdate:show":c[1]||(c[1]=i=>x.value=i),preset:"card",title:e(l)("models.anthropicLoginTitle"),style:{width:"min(460px, calc(100vw - 32px))"},"mask-closable":s.value!=="submitting",onAfterLeave:c[2]||(c[2]=i=>P("close"))},{footer:r(()=>[a("div",jo,[n(e($),{disabled:s.value==="submitting",onClick:N},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",Do,[s.value==="idle"||s.value==="loading"?(u(),b("div",Fo,[n(e(fe),{size:"small"})])):s.value==="waiting"||s.value==="submitting"?(u(),b("div",Vo,[a("p",qo,o(e(l)("models.anthropicWaiting")),1),n(e($),{type:"primary",block:"",onClick:F},{default:r(()=>[k(o(e(l)("models.anthropicOpenLink")),1)]),_:1}),n(e($),{block:"",onClick:K},{default:r(()=>[k(o(e(l)("models.anthropicCopyLink")),1)]),_:1}),n(e(me),{value:S.value,"onUpdate:value":c[0]||(c[0]=i=>S.value=i),type:"textarea",placeholder:e(l)("models.anthropicCodePlaceholder"),autosize:{minRows:2,maxRows:4}},null,8,["value","placeholder"]),n(e($),{type:"primary",block:"",loading:s.value==="submitting",disabled:!S.value.trim(),onClick:d},{default:r(()=>[k(o(e(l)("models.anthropicSubmitCode")),1)]),_:1},8,["loading","disabled"])])):s.value==="approved"?(u(),b("div",Ro,[c[3]||(c[3]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.anthropicApproved")),1)])):s.value==="expired"?(u(),b("div",Go,[a("p",Ko,o(e(l)("models.anthropicExpired")),1),n(e($),{size:"small",onClick:H},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",Ho,[a("p",Xo,o(f.value),1),n(e($),{size:"small",onClick:H},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"]))}})})),li=I((()=>{})),jt,ai=I((()=>{Jo(),Jo(),li(),ne(),jt=re(Xt,[["__scopeId","data-v-271761e2"]])}));async function oi(){return Q("/api/hermes/auth/gemini/start",{method:"POST"})}async function ti(R){return Q(`/api/hermes/auth/gemini/poll/${R}`)}var si=I((()=>{Ue()})),Wo,Yo,Qo,Zo,et,lt,at,ot,tt,st,Jt,it=I((()=>{oe(),de(),se(),si(),Oe(),Wo={class:"oauth-login"},Yo={key:0,class:"oauth-login__state"},Qo={key:1,class:"oauth-login__state"},Zo={class:"oauth-login__hint"},et={key:2,class:"oauth-login__state oauth-login__state--success"},lt={key:3,class:"oauth-login__state"},at={class:"oauth-login__error"},ot={key:4,class:"oauth-login__state"},tt={class:"oauth-login__error"},st={class:"modal-footer"},Jt=te({__name:"GeminiLoginModal",emits:["close","success"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=ue(),x=_(!0),s=_("idle"),O=_(""),C=_(""),S=_("");let f=null;async function z(){s.value="loading",S.value="";try{const c=await oi();O.value=c.authorization_url,C.value=c.session_id,s.value="waiting",window.open(O.value,"_blank"),d()}catch(c){s.value="error",S.value=c?.message||String(c),L.error(S.value)}}function d(){N(),f=setTimeout(async()=>{try{const c=await ti(C.value);c.status==="pending"?d():c.status==="approved"?(s.value="approved",L.success(l("models.geminiApproved")),setTimeout(()=>{x.value=!1,setTimeout(()=>P("success"),200)},1e3)):c.status==="expired"?s.value="expired":c.status==="error"&&(s.value="error",S.value=c.error||"Unknown error")}catch{d()}},2e3)}function N(){f&&clearTimeout(f),f=null}function F(){N(),x.value=!1,setTimeout(()=>P("close"),200)}function K(){window.open(O.value,"_blank")}async function H(){await ze(O.value)?L.success(l("common.copied")):L.error(l("chat.copyFailed"))}function A(){O.value="",C.value="",S.value="",z()}return Fe(N),z(),(c,i)=>(u(),X(e(ae),{show:x.value,"onUpdate:show":i[0]||(i[0]=h=>x.value=h),preset:"card",title:e(l)("models.geminiLoginTitle"),style:{width:"min(440px, calc(100vw - 32px))"},"mask-closable":s.value!=="waiting",onAfterLeave:i[1]||(i[1]=h=>P("close"))},{footer:r(()=>[a("div",st,[n(e($),{disabled:s.value==="waiting",onClick:F},{default:r(()=>[k(o(e(l)("common.cancel")),1)]),_:1},8,["disabled"])])]),default:r(()=>[a("div",Wo,[s.value==="idle"||s.value==="loading"?(u(),b("div",Yo,[n(e(fe),{size:"small"})])):s.value==="waiting"?(u(),b("div",Qo,[a("p",Zo,o(e(l)("models.geminiWaiting")),1),n(e($),{type:"primary",block:"",onClick:K},{default:r(()=>[k(o(e(l)("models.geminiOpenLink")),1)]),_:1}),n(e($),{block:"",onClick:H},{default:r(()=>[k(o(e(l)("models.geminiCopyLink")),1)]),_:1})])):s.value==="approved"?(u(),b("div",et,[i[2]||(i[2]=a("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M22 11.08V12a10 10 0 11-5.93-9.14"}),a("polyline",{points:"22 4 12 14.01 9 11.01"})],-1)),a("p",null,o(e(l)("models.geminiApproved")),1)])):s.value==="expired"?(u(),b("div",lt,[a("p",at,o(e(l)("models.geminiExpired")),1),n(e($),{size:"small",onClick:A},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):s.value==="error"?(u(),b("div",ot,[a("p",tt,o(S.value),1),n(e($),{size:"small",onClick:A},{default:r(()=>[k(o(e(l)("common.retry")),1)]),_:1})])):D("",!0)])]),_:1},8,["show","title","mask-closable"]))}})})),ii=I((()=>{})),Wt,ni=I((()=>{it(),it(),ii(),ne(),Wt=re(Jt,[["__scopeId","data-v-1a9d1288"]])}));function nt(R){const t=R.trim();if(!t)return!1;try{const l=new URL(t).hostname.toLowerCase();return l==="apikey.fun"||l.endsWith(".apikey.fun")}catch{return/^(?:https?:\/\/)?(?:[a-z0-9-]+\.)*apikey\.fun(?:\/|$)/i.test(t)}}function rt(R){const t=R.trim().toLowerCase();return t?t.startsWith("claude")?"fun-claude":t.startsWith("gpt")||t.includes("codex")?"fun-codex":null:null}var ri=I((()=>{})),ut,dt,vt,ct,pt,_t,mt,Xe,ft,je,Je,We,ht,Yt,yt=I((()=>{oe(),de(),Ee(),se(),Ds(),Gs(),Hs(),Ys(),ai(),ni(),Re(),hs(),ri(),ut={style:{display:"flex",gap:"12px"}},dt={key:0,class:"fun-provider-hint"},vt=["href"],ct={style:{display:"flex",gap:"8px",width:"100%"}},pt={class:"modal-footer"},_t="openai-codex",mt="nous",Xe="copilot",ft="cliproxyapi",je="xai-oauth",Je="claude-oauth",We="google-gemini-cli",ht="alibaba-coding-plan",Yt=te({__name:"ProviderFormModal",emits:["close","saved"],setup(R,{emit:t}){const{t:l}=ie(),P=t,L=Ne(),x=ue(),s=Pt(),O=_(!0),C=_(!1),S=_(!1),f=_(!1),z=_(!1),d=_(!1),N=_(!1),F=_(!1),K=_(!1),H=_(!1),A=_("preset"),c=_(null),i=_({name:"",base_url:"",api_key:"",model:"",context_length:null,api_mode:"chat_completions"}),h=_([]),G=[{label:"chat_completions (/chat/completions)",value:"chat_completions"},{label:"codex_responses (/responses)",value:"codex_responses"},{label:"anthropic_messages (/messages)",value:"anthropic_messages"},{label:"bedrock_converse (Converse API)",value:"bedrock_converse"},{label:"codex_app_server (App Server)",value:"codex_app_server"}],Y=new Set(["fun-codex","fun-claude"]),Z={intl:"https://coding-intl.dashscope.aliyuncs.com/v1",cn:"https://coding.dashscope.aliyuncs.com/v1"},j=V(()=>c.value===_t),le=V(()=>c.value===mt),ee=V(()=>c.value===Xe),m=V(()=>c.value===ft),y=V(()=>c.value===je),U=V(()=>c.value===Je),J=V(()=>c.value===We),ve=V(()=>c.value===ht),W=_("intl"),Ie=V(()=>L.allProviders.map(E=>({label:E.label,value:E.provider}))),be=V(()=>c.value?L.allProviders.find(E=>E.provider===c.value):null),Le=V(()=>!!be.value?.base_url_env),Ae=V(()=>!!i.value.base_url.trim()&&(A.value==="custom"||A.value==="preset"&&!j.value&&!le.value&&!ee.value&&!y.value&&!U.value&&!J.value)),he={"fun-codex":"https://apikey.fun/register?aff=LIBAPI","fun-claude":"https://apikey.fun/register?aff=LIBAPI"},we=V(()=>c.value&&he[c.value]||"");async function ye(E,w){const q=i.value.api_key,$e=i.value.context_length;A.value="preset",await ll(),c.value=E,await ll(),i.value.api_key=q,i.value.context_length=$e,w&&(h.value.some(Ke=>Ke.value===w)||(h.value=[{label:w,value:w},...h.value]),i.value.model=w)}async function Se(E){if(A.value!=="custom"||!nt(i.value.base_url))return;const w=rt(E);w&&await ye(w,E)}function ke(E){const w=E.replace(/^https?:\/\//,"").replace(/\/v1\/?$/,"").split("/")[0];return w.includes("localhost")||w.includes("127.0.0.1")?l("models.local",{host:w}):w.charAt(0).toUpperCase()+w.slice(1)}function xe(E){return`custom:${E.trim().toLowerCase().replace(/ /g,"-")}`}ge(c,E=>{if(i.value.model="",W.value="intl",E){const w=be.value;w&&(i.value.name=w.label,i.value.base_url=w.base_url,i.value.api_mode=w.api_mode||"chat_completions",h.value=w.models.map(q=>({label:q,value:q})),w.models.length>0&&(i.value.model=w.models[0])),E===Xe?B():E===je?N.value=!0:E===Je?F.value=!0:E===We&&(K.value=!0)}}),ge(W,E=>{ve.value&&(i.value.base_url=Z[E])}),ge(()=>i.value.base_url,E=>{A.value==="custom"&&E.trim()&&!i.value.name&&(i.value.name=ke(E.trim()))}),ge(()=>i.value.model,E=>{Se(E)}),ge(A,()=>{h.value=[],i.value={name:"",base_url:"",api_key:"",model:"",context_length:null,api_mode:"chat_completions"},c.value=null}),qe(()=>{L.providers.length===0&&L.fetchProviders()});async function Ce(){const{base_url:E}=i.value;if(!E.trim()){x.warning(l("models.enterBaseUrl"));return}S.value=!0;try{const w=A.value==="preset"?c.value&&Y.has(c.value)?xe(c.value):c.value||void 0:i.value.name.trim()?xe(i.value.name):void 0,q=A.value==="preset"?be.value?.label||w:i.value.name.trim()||w;h.value=(await fs({base_url:E.trim(),api_key:i.value.api_key.trim(),provider:w,label:q,update_cache:!!w})).models.map($e=>({label:$e,value:$e})),h.value.length>0&&!i.value.model&&(i.value.model=h.value[0].value),x.success(l("models.foundModels",{count:h.value.length}))}catch(w){x.error(l("models.fetchFailed")+": "+w.message)}finally{S.value=!1}}async function Be(){if(A.value==="preset"&&!c.value){x.warning(l("models.selectProviderRequired"));return}if(j.value){f.value=!0;return}if(le.value){z.value=!0;return}if(ee.value){B();return}if(y.value){N.value=!0;return}if(U.value){F.value=!0;return}if(J.value){K.value=!0;return}if(!i.value.base_url.trim()){x.warning(l("models.baseUrlRequired"));return}if(!i.value.api_key.trim()&&!m.value&&!y.value&&!U.value&&!J.value){x.warning(l("models.apiKeyRequired"));return}if(!i.value.model){x.warning(l("models.modelRequired"));return}C.value=!0;try{const E=i.value.context_length??void 0,w=A.value==="custom"&&nt(i.value.base_url)?rt(i.value.model):null,q=A.value==="preset"?c.value:w,$e=w?L.allProviders.find(ss=>ss.provider===w):null,Ke=$e?.base_url||i.value.base_url.trim(),ts=$e?.label||i.value.name.trim();await L.addProvider({name:ts,base_url:Ke,api_key:i.value.api_key.trim(),model:i.value.model,context_length:E,api_mode:i.value.api_mode,providerKey:q}),x.success(l("models.providerAdded")),P("saved")}catch(E){x.error(E.message)}finally{C.value=!1}}async function De(){f.value=!1,x.success(l("models.providerAdded")),P("saved")}async function Me(){z.value=!1,x.success(l("models.providerAdded")),P("saved")}async function v(){d.value=!1,x.success(l("models.providerAdded")),P("saved")}async function p(){N.value=!1,x.success(l("models.providerAdded")),P("saved")}async function M(){F.value=!1,x.success(l("models.providerAdded")),P("saved")}async function g(){K.value=!1,x.success(l("models.providerAdded")),P("saved")}function T(E){return E==="env"?l("models.copilotAddSourceEnv"):E==="gh-cli"?l("models.copilotAddSourceGhCli"):E==="apps-json"?l("models.copilotAddSourceAppsJson"):""}async function B(){if(!H.value){H.value=!0;try{const E=await Ze();if(E.has_token){const w=T(E.source);s.success({title:l("models.copilotAddDetectedTitle"),content:w?`${l("models.copilotAddDetected")}
|
|
4
4
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as b}from"./rolldown-runtime-M0oDzQ_3.js";import{An as ke,Hn as M,In as be,Kt as ue,Nn as xe,an as s,cn as d,cr as m,en as B,er as Me,fn as D,hn as ce,in as k,jn as r,on as I,ot as we,pn as O,pr as h,sn as y,t as $e,tn as E,ur as L,w as Ce,wt as Se}from"./ui-vendor-DDMfmCj2.js";import{O as de,k as me}from"./vue-vendor-BsMpqyaC.js";import{n as he,t as ge}from"./_plugin-vue_export-helper-
|
|
1
|
+
import{n as b}from"./rolldown-runtime-M0oDzQ_3.js";import{An as ke,Hn as M,In as be,Kt as ue,Nn as xe,an as s,cn as d,cr as m,en as B,er as Me,fn as D,hn as ce,in as k,jn as r,on as I,ot as we,pn as O,pr as h,sn as y,t as $e,tn as E,ur as L,w as Ce,wt as Se}from"./ui-vendor-DDMfmCj2.js";import{O as de,k as me}from"./vue-vendor-BsMpqyaC.js";import{n as he,t as ge}from"./_plugin-vue_export-helper-CvnFozKy.js";import{Dt as Te,Et as Ae,Ot as Pe,Tt as Be,kt as Ie,wt as Le}from"./index-B2IKGvbR.js";function Re(e){return e?_e[e]||e:""}function pe(e){if(!e)return"";const v=new Date(e),c=new Date;return v.toDateString()===c.toDateString()?v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):v.toLocaleDateString([],{month:"short",day:"numeric"})}function Je(e){return pe(e*1e3)}var _e,De=b((()=>{_e={telegram:"Telegram",api_server:"API Server",cli:"CLI",coding_agent:"Coding Agent",global_agent:"Global Agent",discord:"Discord",slack:"Slack",matrix:"Matrix",whatsapp:"WhatsApp",signal:"Signal",email:"Email",sms:"SMS",dingtalk:"DingTalk",feishu:"Feishu",wecom:"WeCom",weixin:"WeChat",bluebubbles:"iMessage",mattermost:"Mattermost",cron:"Cron"}})),N,U,K,q,z,G,H,V,j,Q,W,X,F,ve,Y=b((()=>{ue(),$e(),de(),Pe(),Ae(),Be(),De(),N={key:0,class:"session-item-checkbox"},U={class:"session-item-content"},K={class:"session-item-title-row"},q={class:"session-item-title-main"},z={key:0,class:"session-item-pin","aria-hidden":"true"},G={key:1,class:"session-item-unread-dot","aria-hidden":"true"},H={class:"session-item-title"},V={class:"session-item-time"},j={class:"session-item-agent-row"},Q=["src","alt"],W={key:0,class:"session-item-profile"},X={class:"session-item-profile-name"},F=["aria-label","title"],ve=ce({__name:"SessionListItem",props:{session:{},active:{type:Boolean},pinned:{type:Boolean},canDelete:{type:Boolean},streaming:{type:Boolean},completedUnread:{type:Boolean},selectable:{type:Boolean},selected:{type:Boolean},showProfile:{type:Boolean,default:!0},to:{}},emits:["select","contextmenu","delete","toggle-select"],setup(e,{emit:v}){const c=e,f=v,{t:g}=me(),w=Ie(),A=Te(),p=k(()=>c.session.profile||"default"),$=k(()=>A.profiles.find(o=>o.name===p.value)?.avatar),u=k(()=>!!w.profileModelGroups.find(o=>o.profile===p.value)?.groups?.some(o=>o.models.length>0)),t=k(()=>w.profileModelGroups.length>0&&!u.value),i=k(()=>c.session.source==="global_agent"),l=k(()=>c.session.source==="coding_agent"?c.session.codingAgentId==="codex"||c.session.agent==="codex"?{label:"Codex",src:"/coding-agents/codex-openai.png"}:{label:"Claude Code",src:"/coding-agents/claude-code.svg"}:{label:"Hermes",src:"/coding-agents/hermes.png"});let n=null;const _=Me(!1);function x(o){_.value=!1,n=setTimeout(()=>{_.value=!0;const a=o.touches[0];f("contextmenu",new MouseEvent("contextmenu",{clientX:a.clientX,clientY:a.clientY,bubbles:!0}))},500)}function C(){n&&(clearTimeout(n),n=null)}function S(){n&&(clearTimeout(n),n=null)}function T(o){return!!o&&(o.metaKey||o.ctrlKey||o.shiftKey||o.altKey||o.button!==0)}function ye(o){if(_.value){_.value=!1,o?.preventDefault();return}T(o)||(c.to&&!c.selectable&&o?.preventDefault(),f("select"))}return ke(()=>{n&&clearTimeout(n)}),(o,a)=>(r(),I(be(e.selectable||!e.to?"button":"a"),{class:L(["session-item",{active:e.active,"batch-mode":e.selectable,"missing-models":t.value}]),"aria-current":e.active?"page":void 0,href:e.selectable?void 0:e.to,type:e.selectable||!e.to?"button":void 0,onClick:ye,onContextmenu:a[4]||(a[4]=P=>f("contextmenu",P)),onTouchstart:x,onTouchend:C,onTouchmove:S},{default:M(()=>[e.selectable?(r(),d("div",N,[O(m(Se),{checked:e.selected,onClick:a[0]||(a[0]=B(P=>f("toggle-select"),["stop"]))},null,8,["checked"])])):y("",!0),s("div",U,[s("span",K,[s("span",q,[e.pinned?(r(),d("span",z,[...a[5]||(a[5]=[s("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[s("path",{d:"M12 17v5"}),s("path",{d:"M5 8l14 0"}),s("path",{d:"M8 3l8 0 0 5 3 5-14 0 3-5z"})],-1)])])):y("",!0),e.completedUnread?(r(),d("span",G)):y("",!0),s("span",H,h(e.session.title),1),t.value?(r(),I(m(we),{key:2,trigger:"click",placement:"top"},{trigger:M(()=>[s("button",{class:"session-item-warning",type:"button",onClick:a[1]||(a[1]=B(()=>{},["stop","prevent"]))}," ! ")]),default:M(()=>[D(" "+h(m(g)("chat.profileMissingModelsTip",{profile:p.value})),1)]),_:1})):y("",!0)]),s("span",V,h(m(pe)(e.session.createdAt)),1)]),s("span",j,[s("span",{class:L(["session-item-agent-logo-wrap",{streaming:e.streaming}])},[s("img",{class:"session-item-agent-logo",src:l.value.src,alt:l.value.label},null,8,Q)],2),c.showProfile?(r(),d("span",W,[O(Le,{class:"session-item-profile-avatar",name:p.value,avatar:$.value,size:16},null,8,["name","avatar"]),s("span",X,h(p.value),1)])):y("",!0)])]),i.value?(r(),d("svg",{key:1,class:"session-item-global-icon","aria-label":m(g)("sidebar.globalAgent"),title:m(g)("sidebar.globalAgent"),width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[...a[6]||(a[6]=[s("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"},null,-1),s("path",{d:"M9 1v4M15 1v4M9 19v4M15 19v4M1 9h4M1 15h4M19 9h4M19 15h4"},null,-1),s("path",{d:"M10 10h4v4h-4z"},null,-1)])],8,F)):y("",!0),e.canDelete&&!e.selectable?(r(),I(m(Ce),{key:2,onPositiveClick:a[3]||(a[3]=P=>f("delete"))},{trigger:M(()=>[s("button",{class:"session-item-delete",onClick:a[2]||(a[2]=B(()=>{},["stop","prevent"]))},[...a[7]||(a[7]=[s("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),default:M(()=>[D(" "+h(m(g)("chat.deleteSession")),1)]),_:1})):y("",!0)]),_:1},40,["class","aria-current","href","type"]))}})})),Oe=b((()=>{})),Ee,Ze=b((()=>{Y(),Y(),Oe(),he(),Ee=ge(ve,[["__scopeId","data-v-01315e13"]])})),R,J,Z,ee,te,se,ne,ie,oe,ae,le,fe,re=b((()=>{ue(),de(),R={class:"outline-panel"},J={class:"outline-header"},Z={class:"outline-title"},ee={class:"outline-content"},te=["onClick"],se={class:"user-question"},ne={class:"q-text"},ie=["onClick"],oe={class:"heading-item"},ae={class:"heading-text"},le={key:1,class:"outline-empty"},fe=ce({__name:"OutlinePanel",props:{messages:{}},emits:["navigate"],setup(e,{emit:v}){const c=e,f=v,{t:g}=me();function w(u,t){const i=[],l=u.replace(/<think>[\s\S]*?<\/think>/g,"").split(`
|
|
2
2
|
`);let n=0;for(const _ of l){const x=_.trim(),C=x.match(/^#\s+(.+)/),S=x.match(/^##\s+(.+)/),T=x.match(/^###\s+(.+)/);C?(n++,i.push({id:`outline-${t}-h${n}`,type:"outline",content:C[1].trim(),messageId:t,level:1,anchorId:`msg-${t}-heading-${n}`})):S?(n++,i.push({id:`outline-${t}-h${n}`,type:"outline",content:S[1].trim(),messageId:t,level:2,anchorId:`msg-${t}-heading-${n}`})):T&&(n++,i.push({id:`outline-${t}-h${n}`,type:"outline",content:T[1].trim(),messageId:t,level:3,anchorId:`msg-${t}-heading-${n}`}))}return i}function A(u){const t=u.replace(/<think>[\s\S]*?<\/think>/g,"").split(`
|
|
3
3
|
`)[0]||"";return t.length>50?t.slice(0,50)+"...":t||g("chat.outlineUserQuestion")}const p=k(()=>{const u=[];let t=0;const i=c.messages.filter(l=>l.role==="user"||l.role==="assistant");for(;t<i.length;){const l=i[t];if(l.role==="user"){for(u.push({id:`user-${l.id}`,type:"user",content:A(l.content||""),messageId:l.id,level:0,anchorId:`message-${l.id}`}),t++;t<i.length&&i[t].role!=="assistant";)t++;if(t<i.length){const n=i[t],_=w(n.content||"",n.id);u.push(..._)}}t++}return u});function $(u){f("navigate",{messageId:u.messageId,anchorId:u.anchorId})}return(u,t)=>(r(),d("div",R,[s("div",J,[s("span",Z,h(m(g)("chat.outlineTitle")),1)]),s("div",ee,[p.value.length>0?(r(!0),d(E,{key:0},xe(p.value,i=>(r(),d(E,{key:i.id},[i.type==="user"?(r(),d("div",{key:0,class:"outline-item user-item",onClick:l=>$(i)},[s("div",se,[t[0]||(t[0]=s("span",{class:"q-label"},"Q:",-1)),s("span",ne,h(i.content),1)])],8,te)):(r(),d("div",{key:1,class:L(["outline-item outline-heading-item",`level-${i.level}`]),onClick:l=>$(i)},[s("div",oe,[s("span",ae,h(i.content),1)])],10,ie))],64))),128)):(r(),d("div",le,h(m(g)("chat.outlineEmpty")),1))])]))}})})),Ne=b((()=>{})),Ue,et=b((()=>{re(),re(),Ne(),he(),Ue=ge(fe,[["__scopeId","data-v-5fd5256e"]])}));export{Je as a,Ze as i,et as n,Re as o,Ee as r,De as s,Ue as t};
|
package/dist/client/assets/js/{PageSidebarFooter-BPeWlPvZ.js → PageSidebarFooter-Dk-OfmNy.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as t}from"./rolldown-runtime-M0oDzQ_3.js";import{Kt as u,an as e,cn as l,cr as p,hn as d,jn as c,pn as g,pr as m}from"./ui-vendor-DDMfmCj2.js";import{M as v,O as b,P as f,k as h}from"./vue-vendor-BsMpqyaC.js";import{n as S,t as k}from"./_plugin-vue_export-helper-
|
|
1
|
+
import{n as t}from"./rolldown-runtime-M0oDzQ_3.js";import{Kt as u,an as e,cn as l,cr as p,hn as d,jn as c,pn as g,pr as m}from"./ui-vendor-DDMfmCj2.js";import{M as v,O as b,P as f,k as h}from"./vue-vendor-BsMpqyaC.js";import{n as S,t as k}from"./_plugin-vue_export-helper-CvnFozKy.js";import{n as y,t as P}from"./SettingsCircuitBadge-Eiv8LQz0.js";var r,i,n=t((()=>{u(),b(),v(),y(),r={class:"page-sidebar-bottom"},i=d({__name:"PageSidebarFooter",setup(F){const _=f(),{t:s}=h();function o(){_.push({name:"hermes.settings"})}return(A,a)=>(c(),l("div",r,[e("button",{class:"page-sidebar-menu-btn",type:"button",onClick:o},[a[0]||(a[0]=e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e("circle",{cx:"12",cy:"12",r:"3"}),e("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})],-1)),e("span",null,m(p(s)("sidebar.settings")),1)]),g(P)]))}})})),x=t((()=>{})),B,q=t((()=>{n(),n(),x(),S(),B=k(i,[["__scopeId","data-v-79aa9763"]])}));export{q as n,B as t};
|