hermes-web-ui 0.5.10 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/client/assets/css/HistoryView-5xOXYim3.css +1 -0
  2. package/dist/client/assets/js/{ChannelsView-BVGtIgV3.js → ChannelsView-DnMeuR7S.js} +1 -1
  3. package/dist/client/assets/js/ChatView-CdDGpvW7.js +3 -0
  4. package/dist/client/assets/js/{FileRenameModal-DViZv3Vv.js → FileRenameModal-B-3uRS-J.js} +1 -1
  5. package/dist/client/assets/js/{FilesView-CgzcLn2B.js → FilesView-DmrSgPP3.js} +1 -1
  6. package/dist/client/assets/js/{GatewaysView-DOUiZdJb.js → GatewaysView-DwZlbGqo.js} +1 -1
  7. package/dist/client/assets/js/{GroupChatView-Cq0A9JlZ.js → GroupChatView-DgTXZz9G.js} +1 -1
  8. package/dist/client/assets/js/HistoryView-CurtHZTg.js +1 -0
  9. package/dist/client/assets/js/{JobsView-C9ZFP-ww.js → JobsView-BdAHQpSk.js} +1 -1
  10. package/dist/client/assets/js/{LoginView-CqhR8O7J.js → LoginView-DvhbhONG.js} +1 -1
  11. package/dist/client/assets/js/{LogsView-YicQMaaA.js → LogsView-C0XZo0on.js} +1 -1
  12. package/dist/client/assets/js/{MarkdownRenderer-eIZ6RPJa.js → MarkdownRenderer-WzQKCjLH.js} +1 -1
  13. package/dist/client/assets/js/{MemoryView-QyNx-CVB.js → MemoryView-BcR7AF0A.js} +1 -1
  14. package/dist/client/assets/js/{ModelsView-CLuWHRTG.js → ModelsView-tZBI3qn7.js} +1 -1
  15. package/dist/client/assets/js/{ProfilesView-DStjSZgL.js → ProfilesView-CaDMP-1g.js} +1 -1
  16. package/dist/client/assets/js/{SessionListItem-CD6NguTa.js → SessionListItem-DsZoXdqg.js} +4 -4
  17. package/dist/client/assets/js/{SettingsView-DK83tvzo.js → SettingsView-D2xhfomf.js} +1 -1
  18. package/dist/client/assets/js/{SkillsView-DWkhauen.js → SkillsView-wwvdXRLU.js} +1 -1
  19. package/dist/client/assets/js/{TerminalView-CuQ0TkMt.js → TerminalView-DKaeoMbR.js} +1 -1
  20. package/dist/client/assets/js/{UsageView-6QFBOLxP.js → UsageView-lqH936bZ.js} +1 -1
  21. package/dist/client/assets/js/app-BO56HpgO.js +1 -0
  22. package/dist/client/assets/js/{app-6ooXRc2x.js → app-POg4Gsmx.js} +1 -1
  23. package/dist/client/assets/js/{auth-2m0YcJEm.js → auth-DJW7BzEG.js} +1 -1
  24. package/dist/client/assets/js/{chat-D8Xqbnqx.js → chat-DccL9rk5.js} +2 -2
  25. package/dist/client/assets/js/{index-B_DF_Ac4.js → index-BMKM_7vF.js} +1 -1
  26. package/dist/client/assets/js/{models-ukQxwwua.js → models-FI0HrZnB.js} +1 -1
  27. package/dist/client/assets/js/{router-nXWafNiW.js → router-CdmwEnE9.js} +2 -2
  28. package/dist/client/assets/js/{session-browser-prefs-BirrZrt2.js → session-browser-prefs-WkaI5xGq.js} +1 -1
  29. package/dist/client/assets/js/{sessions-Dd0_JeFv.js → sessions-CnkxZ9zT.js} +1 -1
  30. package/dist/client/assets/js/{settings-HjviOVYc.js → settings-BZHeT7MR.js} +1 -1
  31. package/dist/client/assets/js/{skills-Bjy1eNh6.js → skills-BPmK7HTX.js} +1 -1
  32. package/dist/client/index.html +5 -5
  33. package/dist/server/index.js +2 -2
  34. package/package.json +1 -1
  35. package/dist/client/assets/css/HistoryView-CX3n57Fx.css +0 -1
  36. package/dist/client/assets/js/ChatView-BEVYaez-.js +0 -3
  37. package/dist/client/assets/js/HistoryView-CvZ4E1pY.js +0 -1
  38. package/dist/client/assets/js/app-DZBneEi9.js +0 -1
@@ -0,0 +1 @@
1
+ [data-v-04301324]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-04301324]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message-list[data-v-04301324]{background-color:var(--bg-card);flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.dark .message-list[data-v-04301324]{background-color:#333}.empty-state[data-v-04301324]{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .empty-logo[data-v-04301324]{opacity:.25;width:48px;height:48px}.empty-state p[data-v-04301324]{font-size:14px}.fade-enter-active[data-v-04301324],.fade-leave-active[data-v-04301324]{transition:opacity .4s}.fade-enter-from[data-v-04301324],.fade-leave-to[data-v-04301324]{opacity:0}[data-v-484f91a9]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-484f91a9]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.history-panel[data-v-484f91a9]{height:100%;display:flex;position:relative}.session-list[data-v-484f91a9]{border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:220px;transition:width .25s,opacity .25s;display:flex;overflow:hidden}.session-list.collapsed[data-v-484f91a9]{opacity:0;pointer-events:none;border-right:none;width:0}@media (max-width:768px){.session-list[data-v-484f91a9]{z-index:10;background:var(--bg-card);width:280px;height:100%;position:absolute;top:0;left:0;box-shadow:2px 0 8px #0000001a}.session-list.collapsed[data-v-484f91a9]{opacity:0;transform:translate(-100%)}.session-close-btn[data-v-484f91a9]{display:flex}.session-backdrop[data-v-484f91a9]{z-index:9;opacity:0;pointer-events:none;background:#0006;transition:opacity .15s;position:absolute;top:0;bottom:0;left:0;right:0}.session-backdrop.active[data-v-484f91a9]{opacity:1;pointer-events:auto}}.session-list-header[data-v-484f91a9]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.session-list-actions[data-v-484f91a9]{align-items:center;gap:4px;display:flex}.session-close-btn[data-v-484f91a9]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:4px;display:none}.session-close-btn[data-v-484f91a9]:hover{background:rgba(var(--accent-primary), .06)}.session-list-title[data-v-484f91a9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.session-scope-note[data-v-484f91a9]{border:1px solid rgba(var(--accent-primary), .16);background:rgba(var(--accent-primary), .06);color:var(--text-secondary);border-radius:6px;margin:0 12px 10px;padding:8px 10px;font-size:11px;line-height:1.45}.session-group-header[data-v-484f91a9]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:6px 10px 4px;display:flex}.session-group-header--static[data-v-484f91a9]{cursor:default}.group-chevron[data-v-484f91a9]{flex-shrink:0;transition:transform .15s;transform:rotate(90deg)}.group-chevron.collapsed[data-v-484f91a9]{transform:rotate(0)}.session-group-label[data-v-484f91a9]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.session-group-count[data-v-484f91a9]{color:var(--text-muted);font-size:10px;font-weight:400}.session-items[data-v-484f91a9]{flex:1;padding:0 6px 12px;overflow-y:auto}.session-loading[data-v-484f91a9],.session-empty[data-v-484f91a9]{color:var(--text-muted);text-align:center;padding:16px 10px;font-size:12px}[data-v-484f91a9] .session-item{cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}[data-v-484f91a9] .session-item:hover{background:rgba(var(--accent-primary), .06);color:var(--text-primary)}[data-v-484f91a9] .session-item:hover .session-item-delete{opacity:1}[data-v-484f91a9] .session-item.active{background:rgba(var(--accent-primary-rgb), .12);color:var(--text-primary);font-weight:500}[data-v-484f91a9] .session-item.active .session-item-title{color:var(--accent-primary)}[data-v-484f91a9] .session-item-content{flex:1;overflow:hidden}[data-v-484f91a9] .session-item-title-row{align-items:center;gap:6px;min-width:0;display:flex}[data-v-484f91a9] .session-item-title{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:13px;display:block;overflow:hidden}[data-v-484f91a9] .session-item-streaming{vertical-align:middle;color:var(--accent-primary);flex-shrink:0;margin-right:4px;animation:1.2s linear infinite spin-484f91a9;display:inline-block}@keyframes spin-484f91a9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-484f91a9] .session-item-pin{color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}[data-v-484f91a9] .session-item-time{color:var(--text-muted);font-size:11px}[data-v-484f91a9] .session-item-meta{align-items:center;gap:6px;margin-top:2px;display:flex}[data-v-484f91a9] .session-item-model{color:var(--accent-primary);background:rgba(var(--accent-primary), .08);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;flex-shrink:0;max-width:100px;padding:0 5px;font-size:10px;line-height:16px;overflow:hidden}[data-v-484f91a9] .session-item-delete{opacity:.5;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;transition:all .15s}[data-v-484f91a9] .session-item-delete:hover{color:var(--error);background:rgba(var(--error), .1)}.chat-main[data-v-484f91a9]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header[data-v-484f91a9]{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:21px 20px;display:flex}.header-left[data-v-484f91a9]{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header-session-title[data-v-484f91a9]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.source-badge[data-v-484f91a9]{color:var(--text-muted);background:rgba(var(--text-muted), .12);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:1px 7px;font-size:10px;line-height:16px}.header-actions[data-v-484f91a9]{flex-shrink:0;align-items:center;gap:4px;display:flex}@media (max-width:768px){.chat-header[data-v-484f91a9]{padding:16px 12px 16px 52px}}.workspace-badge[data-v-484f91a9]{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;cursor:default;background:#ffffff0d;border-radius:4px;max-width:160px;padding:2px 8px;font-size:11px;overflow:hidden}
@@ -1 +1 @@
1
- import{n as C}from"./rolldown-runtime-iJLb3ux7.js";import{$ as h,A as ve,Dt as ge,F as be,It as H,K as x,N as p,Nt as e,Ot as P,P as ke,Pt as G,Q as g,R as V,X as w,Y as xe,Z as U,c as b,dt as we,ft as c,g as Ce,gt as ye,ht as ze,l as qe,mt as He,nt as t,rt as L,t as $,tt as I,ut as Se,yt as o}from"./ui-vendor-CwabjOwn.js";import{n as W,r as N}from"./vue-vendor-DN3TBS7r.js";import{n as D,t as F}from"./_plugin-vue_export-helper-JVWBimuG.js";import{a as Me,i as Te,n as se,o as Re,r as Be,s as Pe,t as de}from"./settings-HjviOVYc.js";import{n as Ae,t as r}from"./SettingRow-BI_ydgAW.js";var j,K,O,X,ue,Y=C((()=>{V(),$(),W(),j={class:"platform-info"},K=["innerHTML"],O={class:"platform-name"},X={key:0,class:"platform-card-body"},ue=L({__name:"PlatformCard",props:{name:{},icon:{},config:{},credentials:{},exclusive:{type:Boolean}},setup(S){const s=S,k=P(!0),{t:a}=N(),y=xe(()=>{const z=s.credentials;if(!z)return!1;const i=["token","api_key","app_id","client_id","secret","app_secret","client_secret","access_token","bot_id","account_id","enabled"];return[z,z.extra].filter(Boolean).some(M=>i.some(u=>{const f=M[u];return f!=null&&f!==""&&f!==!1}))});return(z,i)=>(c(),h("div",{class:G(["platform-card",{configured:y.value}])},[w("div",{class:"platform-card-header",onClick:i[0]||(i[0]=M=>k.value=!k.value)},[w("div",j,[w("span",{class:"platform-icon",innerHTML:S.icon},null,8,K),w("span",O,H(S.name),1),t(e(be),{type:y.value?"success":"default",size:"small",round:""},{default:o(()=>[I(H(y.value?e(a)("common.configured"):e(a)("common.notConfigured")),1)]),_:1},8,["type"])]),w("span",{class:G(["expand-icon",{expanded:k.value}])},"▾",2)]),k.value?(c(),h("div",X,[S.exclusive?(c(),U(e(ke),{key:0,type:"warning","show-icon":!0,class:"exclusive-alert"},{default:o(()=>[I(H(e(a)("platform.exclusiveTokenWarning")),1)]),_:1})):g("",!0),ze(z.$slots,"default",{},void 0,!0)])):g("",!0)],2))}})})),Ie=C((()=>{})),pe,Ve=C((()=>{Y(),Y(),Ie(),D(),pe=F(ue,[["__scopeId","data-v-e27ecbbe"]])})),Z,J,ee,ae,me,le=C((()=>{V(),$(),W(),de(),Te(),Ve(),Ae(),Z={class:"settings-section"},J={class:"weixin-qr-section"},ee={key:1,class:"weixin-qr-loading"},ae={key:2,class:"weixin-qr-hint"},me=L({__name:"PlatformSettings",setup(S){const s=se(),k=Ce(),{t:a}=N(),y=ge({});function z(d,l){return`${d}.${l}`}function i(d,l){return!!y[z(d,l)]}async function M(d,l,q){const _=z(d,l);y[_]=!0;try{await q(),k.success(a("settings.saved"))}catch{k.error(a("settings.saveFailed"))}finally{y[_]=!1}}async function u(d,l,q){M(d,l,()=>s.saveSection(d,q))}async function f(d,l,q){M(d,l,async()=>{await Re(d,q),await s.fetchSettings()})}function m(d){return s.platforms[d]||{}}const Q=P(""),T=P(""),v=P("idle");let R=null;async function _e(){v.value="loading",Q.value="",T.value="",E();try{const d=await Be();T.value=d.qrcode,Q.value=d.qrcode_url,window.open(d.qrcode_url,"_blank"),v.value="waiting",B()}catch(d){v.value="error",k.error(d.message||a("platform.qrFetching"))}}function B(){T.value&&(R=setTimeout(async()=>{try{const d=await Me(T.value);d.status==="wait"?B():d.status==="scaned"?(v.value="scaned",B()):d.status==="expired"?v.value="expired":d.status==="confirmed"&&(v.value="confirmed",await Pe({account_id:d.account_id,token:d.token,base_url:d.base_url}),await s.fetchSettings(),k.success(a("settings.saved")))}catch{B()}},3e3))}function E(){R&&(clearTimeout(R),R=null)}we(()=>{E()});const he=[{key:"telegram",name:"Telegram",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.479.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>'},{key:"discord",name:"Discord",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189z"/></svg>'},{key:"slack",name:"Slack",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 0a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V5.042zm-1.27 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.27a2.527 2.527 0 0 1 2.523-2.52h6.313A2.528 2.528 0 0 1 24 18.956a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>'},{key:"whatsapp",name:"WhatsApp",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg>'},{key:"matrix",name:"Matrix",icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.48.324.448.217.786.619 1.017 1.205.24-.376.558-.702.956-.98.398-.277.872-.414 1.424-.414.41 0 .784.065 1.122.194.34.13.629.325.87.588.241.263.428.59.56.984.132.393.198.85.198 1.368v5.89h-2.49v-4.893c0-.268-.016-.525-.048-.77a1.627 1.627 0 00-.2-.63 1.028 1.028 0 00-.392-.426 1.294 1.294 0 00-.616-.134c-.277 0-.508.05-.693.15a1.043 1.043 0 00-.43.41 1.768 1.768 0 00-.214.616 4.15 4.15 0 00-.06.74v4.937H9.29v-4.937c0-.25-.01-.498-.032-.742a1.84 1.84 0 00-.166-.638.998.998 0 00-.363-.448 1.206 1.206 0 00-.624-.154c-.26 0-.483.048-.67.144a1.055 1.055 0 00-.436.402 1.744 1.744 0 00-.227.616 4.108 4.108 0 00-.063.74v4.937H5.21V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg>'},{key:"feishu",name:"Feishu",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.59 3.41a2.25 2.25 0 0 1 3.182 0L13.5 7.14l-3.182 3.182L6.59 7.59a2.25 2.25 0 0 1 0-3.182zm5.303 5.303L15.075 5.53a2.25 2.25 0 0 1 3.182 3.182L15.075 11.894 11.893 8.713zM3.41 6.59a2.25 2.25 0 0 1 3.182 0l3.182 3.182-3.182 3.182a2.25 2.25 0 0 1-3.182-3.182L3.41 6.59zm5.303 5.303L11.894 15.075a2.25 2.25 0 0 1-3.182 3.182L5.53 15.075 8.713 11.893zm5.303-5.303L17.478 9.778a2.25 2.25 0 0 1-3.182 3.182L10.53 10.075l3.182-3.182 0 .023z"/></svg>'},{key:"weixin",name:"Weixin",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>'},{key:"wecom",name:"WeCom",icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>'}];return(d,l)=>{const q=ye("NSpin");return c(),h("section",Z,[(c(),h(x,null,He(he,_=>t(pe,{key:_.key,name:_.name,icon:_.icon,exclusive:_.exclusive,config:e(s)[_.key],credentials:m(_.key)},{default:o(()=>[_.key==="telegram"?(c(),h(x,{key:0},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("telegram").token||"",loading:i("telegram","token"),clearable:"",size:"small",class:"input-lg",placeholder:"123456:ABC-DEF...",onChange:l[0]||(l[0]=n=>f("telegram","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).telegram.require_mention,loading:i("telegram","require_mention"),"onUpdate:value":l[1]||(l[1]=n=>u("telegram","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.reactions"),hint:e(a)("platform.reactionsHint")},{default:o(()=>[t(e(b),{value:e(s).telegram.reactions,loading:i("telegram","reactions"),"onUpdate:value":l[2]||(l[2]=n=>u("telegram","reactions",{reactions:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).telegram.free_response_chats||"",loading:i("telegram","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[3]||(l[3]=n=>u("telegram","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.mentionPatterns"),hint:e(a)("platform.mentionPatternsHint")},{default:o(()=>[t(e(p),{"default-value":(e(s).telegram.mention_patterns||[]).join(", "),loading:i("telegram","mention_patterns"),size:"small",placeholder:"pattern1, pattern2",onChange:l[4]||(l[4]=n=>u("telegram","mention_patterns",{mention_patterns:n?n.split(",").map(A=>A.trim()):[]}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="discord"?(c(),h(x,{key:1},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("discord").token||"",loading:i("discord","token"),clearable:"",size:"small",class:"input-lg",placeholder:"Bot token...",onChange:l[5]||(l[5]=n=>f("discord","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionChannel")},{default:o(()=>[t(e(b),{value:e(s).discord.require_mention,loading:i("discord","require_mention"),"onUpdate:value":l[6]||(l[6]=n=>u("discord","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.autoThread"),hint:e(a)("platform.autoThreadHint")},{default:o(()=>[t(e(b),{value:e(s).discord.auto_thread,loading:i("discord","auto_thread"),"onUpdate:value":l[7]||(l[7]=n=>u("discord","auto_thread",{auto_thread:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.reactions"),hint:e(a)("platform.reactionsHint")},{default:o(()=>[t(e(b),{value:e(s).discord.reactions,loading:i("discord","reactions"),"onUpdate:value":l[8]||(l[8]=n=>u("discord","reactions",{reactions:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChannels"),hint:e(a)("platform.freeResponseChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.free_response_channels||"",loading:i("discord","free_response_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[9]||(l[9]=n=>u("discord","free_response_channels",{free_response_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.allowedChannels"),hint:e(a)("platform.allowedChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.allowed_channels||"",loading:i("discord","allowed_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[10]||(l[10]=n=>u("discord","allowed_channels",{allowed_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.ignoredChannels"),hint:e(a)("platform.ignoredChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.ignored_channels||"",loading:i("discord","ignored_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[11]||(l[11]=n=>u("discord","ignored_channels",{ignored_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.noThreadChannels"),hint:e(a)("platform.noThreadChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.no_thread_channels||"",loading:i("discord","no_thread_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[12]||(l[12]=n=>u("discord","no_thread_channels",{no_thread_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="slack"?(c(),h(x,{key:2},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("slack").token||"",loading:i("slack","token"),clearable:"",size:"small",class:"input-lg",placeholder:"xoxb-...",onChange:l[13]||(l[13]=n=>f("slack","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionChannel")},{default:o(()=>[t(e(b),{value:e(s).slack.require_mention,loading:i("slack","require_mention"),"onUpdate:value":l[14]||(l[14]=n=>u("slack","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.allowBots"),hint:e(a)("platform.allowBotsHint")},{default:o(()=>[t(e(b),{value:e(s).slack.allow_bots,loading:i("slack","allow_bots"),"onUpdate:value":l[15]||(l[15]=n=>u("slack","allow_bots",{allow_bots:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChannels"),hint:e(a)("platform.freeResponseChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).slack.free_response_channels||"",loading:i("slack","free_response_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[16]||(l[16]=n=>u("slack","free_response_channels",{free_response_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="whatsapp"?(c(),h(x,{key:3},[t(r,{label:e(a)("platform.waEnabled"),hint:e(a)("platform.waEnabledHint")},{default:o(()=>[t(e(b),{value:m("whatsapp").enabled,loading:i("whatsapp","enabled"),"onUpdate:value":l[17]||(l[17]=n=>f("whatsapp","enabled",{enabled:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).whatsapp.require_mention,loading:i("whatsapp","require_mention"),"onUpdate:value":l[18]||(l[18]=n=>u("whatsapp","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).whatsapp.free_response_chats||"",loading:i("whatsapp","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[19]||(l[19]=n=>u("whatsapp","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.mentionPatterns"),hint:e(a)("platform.mentionPatternsHint")},{default:o(()=>[t(e(p),{"default-value":(e(s).whatsapp.mention_patterns||[]).join(", "),loading:i("whatsapp","mention_patterns"),size:"small",placeholder:"pattern1, pattern2",onChange:l[20]||(l[20]=n=>u("whatsapp","mention_patterns",{mention_patterns:n?n.split(",").map(A=>A.trim()):[]}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="matrix"?(c(),h(x,{key:4},[t(r,{label:e(a)("platform.accessToken"),hint:e(a)("platform.accessTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("matrix").token||"",loading:i("matrix","token"),clearable:"",size:"small",class:"input-lg",placeholder:"syt_...",onChange:l[21]||(l[21]=n=>f("matrix","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.homeserver"),hint:e(a)("platform.homeserverHint")},{default:o(()=>[t(e(p),{"default-value":m("matrix").extra?.homeserver||"",loading:i("matrix","homeserver"),clearable:"",size:"small",class:"input-lg",placeholder:"https://matrix.org",onChange:l[22]||(l[22]=n=>f("matrix","homeserver",{extra:{...m("matrix").extra,homeserver:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionRoom")},{default:o(()=>[t(e(b),{value:e(s).matrix.require_mention,loading:i("matrix","require_mention"),"onUpdate:value":l[23]||(l[23]=n=>u("matrix","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.autoThread"),hint:e(a)("platform.autoThreadHintRoom")},{default:o(()=>[t(e(b),{value:e(s).matrix.auto_thread,loading:i("matrix","auto_thread"),"onUpdate:value":l[24]||(l[24]=n=>u("matrix","auto_thread",{auto_thread:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.dmMentionThreads"),hint:e(a)("platform.dmMentionThreadsHint")},{default:o(()=>[t(e(b),{value:e(s).matrix.dm_mention_threads,loading:i("matrix","dm_mention_threads"),"onUpdate:value":l[25]||(l[25]=n=>u("matrix","dm_mention_threads",{dm_mention_threads:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseRooms"),hint:e(a)("platform.freeResponseRoomsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).matrix.free_response_rooms||"",loading:i("matrix","free_response_rooms"),size:"small",placeholder:"room_id1,room_id2",onChange:l[26]||(l[26]=n=>u("matrix","free_response_rooms",{free_response_rooms:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="feishu"?(c(),h(x,{key:5},[t(r,{label:e(a)("platform.appId"),hint:e(a)("platform.appIdHint")},{default:o(()=>[t(e(p),{"default-value":m("feishu").extra?.app_id||"",loading:i("feishu","app_id"),clearable:"",size:"small",class:"input-lg",placeholder:"cli_...",onChange:l[27]||(l[27]=n=>f("feishu","app_id",{extra:{...m("feishu").extra,app_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.appSecret"),hint:e(a)("platform.appSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("feishu").extra?.app_secret||"",loading:i("feishu","app_secret"),clearable:"",size:"small",class:"input-lg",placeholder:"App Secret",onChange:l[28]||(l[28]=n=>f("feishu","app_secret",{extra:{...m("feishu").extra,app_secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).feishu.require_mention,loading:i("feishu","require_mention"),"onUpdate:value":l[29]||(l[29]=n=>u("feishu","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).feishu.free_response_chats||"",loading:i("feishu","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[30]||(l[30]=n=>u("feishu","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="dingtalk"?(c(),h(x,{key:6},[t(r,{label:e(a)("platform.clientId"),hint:e(a)("platform.clientIdHint")},{default:o(()=>[t(e(p),{"default-value":m("dingtalk").extra?.client_id||"",loading:i("dingtalk","client_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Client ID",onChange:l[31]||(l[31]=n=>f("dingtalk","client_id",{extra:{...m("dingtalk").extra,client_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.clientSecret"),hint:e(a)("platform.clientSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("dingtalk").extra?.client_secret||"",loading:i("dingtalk","client_secret"),clearable:"",size:"small",class:"input-lg",placeholder:"Client Secret",onChange:l[32]||(l[32]=n=>f("dingtalk","client_secret",{extra:{...m("dingtalk").extra,client_secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).dingtalk.require_mention,loading:i("dingtalk","require_mention"),"onUpdate:value":l[33]||(l[33]=n=>u("dingtalk","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).dingtalk.free_response_chats||"",loading:i("dingtalk","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[34]||(l[34]=n=>u("dingtalk","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="weixin"?(c(),h(x,{key:7},[w("div",J,[v.value==="idle"||v.value==="error"||v.value==="expired"||v.value==="confirmed"?(c(),U(e(ve),{key:0,type:"primary",size:"small",onClick:_e},{default:o(()=>[I(H(v.value==="confirmed"?e(a)("platform.qrRelogin"):e(a)("platform.qrLogin")),1)]),_:1})):g("",!0),v.value==="loading"?(c(),h("div",ee,[t(q,{size:"small"}),w("span",null,H(e(a)("platform.qrFetching")),1)])):g("",!0),v.value==="waiting"||v.value==="scaned"?(c(),h("div",ae,H(v.value==="scaned"?e(a)("platform.qrScanedHint"):e(a)("platform.qrScanHint")),1)):g("",!0)]),t(r,{label:e(a)("platform.weixinToken"),hint:e(a)("platform.weixinTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("weixin").token||"",loading:i("weixin","token"),clearable:"",size:"small",class:"input-lg",placeholder:"Token",onChange:l[35]||(l[35]=n=>f("weixin","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.accountId"),hint:e(a)("platform.accountIdHint")},{default:o(()=>[t(e(p),{"default-value":m("weixin").extra?.account_id||"",loading:i("weixin","account_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Account ID",onChange:l[36]||(l[36]=n=>f("weixin","account_id",{extra:{...m("weixin").extra,account_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="wecom"?(c(),h(x,{key:8},[t(r,{label:e(a)("platform.botId"),hint:e(a)("platform.botIdHint")},{default:o(()=>[t(e(p),{"default-value":m("wecom").extra?.bot_id||"",loading:i("wecom","bot_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Bot ID",onChange:l[37]||(l[37]=n=>f("wecom","bot_id",{extra:{...m("wecom").extra,bot_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.appSecret"),hint:e(a)("platform.wecomSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("wecom").extra?.secret||"",loading:i("wecom","secret"),clearable:"",size:"small",class:"input-lg",placeholder:"Secret",onChange:l[38]||(l[38]=n=>f("wecom","secret",{extra:{...m("wecom").extra,secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0)]),_:2},1032,["name","icon","exclusive","config","credentials"])),64))])}}})})),Ue=C((()=>{})),fe,Le=C((()=>{le(),le(),Ue(),D(),fe=F(me,[["__scopeId","data-v-ee52227d"]])})),te,ne,ie,oe,ce,re=C((()=>{V(),$(),W(),de(),Le(),te={class:"channels-view"},ne={class:"page-header"},ie={class:"header-title"},oe={class:"channels-content"},ce=L({__name:"ChannelsView",setup(S){const s=se(),{t:k}=N();return Se(()=>{s.fetchSettings()}),(a,y)=>(c(),h("div",te,[w("header",ne,[w("h2",ie,H(e(k)("sidebar.channels")),1)]),w("div",oe,[t(e(qe),{show:e(s).loading||e(s).saving,size:"large",description:e(k)("common.loading")},{default:o(()=>[e(s).loading?g("",!0):(c(),U(fe,{key:0}))]),_:1},8,["show","description"])])]))}})})),$e=C((()=>{})),We,Ne=C((()=>{re(),re(),$e(),D(),We=F(ce,[["__scopeId","data-v-e25dbf6c"]])}));Ne();export{We as default};
1
+ import{n as C}from"./rolldown-runtime-iJLb3ux7.js";import{$ as h,A as ve,Dt as ge,F as be,It as H,K as x,N as p,Nt as e,Ot as P,P as ke,Pt as G,Q as g,R as V,X as w,Y as xe,Z as U,c as b,dt as we,ft as c,g as Ce,gt as ye,ht as ze,l as qe,mt as He,nt as t,rt as L,t as $,tt as I,ut as Se,yt as o}from"./ui-vendor-CwabjOwn.js";import{n as W,r as N}from"./vue-vendor-DN3TBS7r.js";import{n as D,t as F}from"./_plugin-vue_export-helper-JVWBimuG.js";import{a as Me,i as Te,n as se,o as Re,r as Be,s as Pe,t as de}from"./settings-BZHeT7MR.js";import{n as Ae,t as r}from"./SettingRow-BI_ydgAW.js";var j,K,O,X,ue,Y=C((()=>{V(),$(),W(),j={class:"platform-info"},K=["innerHTML"],O={class:"platform-name"},X={key:0,class:"platform-card-body"},ue=L({__name:"PlatformCard",props:{name:{},icon:{},config:{},credentials:{},exclusive:{type:Boolean}},setup(S){const s=S,k=P(!0),{t:a}=N(),y=xe(()=>{const z=s.credentials;if(!z)return!1;const i=["token","api_key","app_id","client_id","secret","app_secret","client_secret","access_token","bot_id","account_id","enabled"];return[z,z.extra].filter(Boolean).some(M=>i.some(u=>{const f=M[u];return f!=null&&f!==""&&f!==!1}))});return(z,i)=>(c(),h("div",{class:G(["platform-card",{configured:y.value}])},[w("div",{class:"platform-card-header",onClick:i[0]||(i[0]=M=>k.value=!k.value)},[w("div",j,[w("span",{class:"platform-icon",innerHTML:S.icon},null,8,K),w("span",O,H(S.name),1),t(e(be),{type:y.value?"success":"default",size:"small",round:""},{default:o(()=>[I(H(y.value?e(a)("common.configured"):e(a)("common.notConfigured")),1)]),_:1},8,["type"])]),w("span",{class:G(["expand-icon",{expanded:k.value}])},"▾",2)]),k.value?(c(),h("div",X,[S.exclusive?(c(),U(e(ke),{key:0,type:"warning","show-icon":!0,class:"exclusive-alert"},{default:o(()=>[I(H(e(a)("platform.exclusiveTokenWarning")),1)]),_:1})):g("",!0),ze(z.$slots,"default",{},void 0,!0)])):g("",!0)],2))}})})),Ie=C((()=>{})),pe,Ve=C((()=>{Y(),Y(),Ie(),D(),pe=F(ue,[["__scopeId","data-v-e27ecbbe"]])})),Z,J,ee,ae,me,le=C((()=>{V(),$(),W(),de(),Te(),Ve(),Ae(),Z={class:"settings-section"},J={class:"weixin-qr-section"},ee={key:1,class:"weixin-qr-loading"},ae={key:2,class:"weixin-qr-hint"},me=L({__name:"PlatformSettings",setup(S){const s=se(),k=Ce(),{t:a}=N(),y=ge({});function z(d,l){return`${d}.${l}`}function i(d,l){return!!y[z(d,l)]}async function M(d,l,q){const _=z(d,l);y[_]=!0;try{await q(),k.success(a("settings.saved"))}catch{k.error(a("settings.saveFailed"))}finally{y[_]=!1}}async function u(d,l,q){M(d,l,()=>s.saveSection(d,q))}async function f(d,l,q){M(d,l,async()=>{await Re(d,q),await s.fetchSettings()})}function m(d){return s.platforms[d]||{}}const Q=P(""),T=P(""),v=P("idle");let R=null;async function _e(){v.value="loading",Q.value="",T.value="",E();try{const d=await Be();T.value=d.qrcode,Q.value=d.qrcode_url,window.open(d.qrcode_url,"_blank"),v.value="waiting",B()}catch(d){v.value="error",k.error(d.message||a("platform.qrFetching"))}}function B(){T.value&&(R=setTimeout(async()=>{try{const d=await Me(T.value);d.status==="wait"?B():d.status==="scaned"?(v.value="scaned",B()):d.status==="expired"?v.value="expired":d.status==="confirmed"&&(v.value="confirmed",await Pe({account_id:d.account_id,token:d.token,base_url:d.base_url}),await s.fetchSettings(),k.success(a("settings.saved")))}catch{B()}},3e3))}function E(){R&&(clearTimeout(R),R=null)}we(()=>{E()});const he=[{key:"telegram",name:"Telegram",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.479.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>'},{key:"discord",name:"Discord",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189z"/></svg>'},{key:"slack",name:"Slack",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 0a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V5.042zm-1.27 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.27a2.527 2.527 0 0 1 2.523-2.52h6.313A2.528 2.528 0 0 1 24 18.956a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>'},{key:"whatsapp",name:"WhatsApp",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg>'},{key:"matrix",name:"Matrix",icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.48.324.448.217.786.619 1.017 1.205.24-.376.558-.702.956-.98.398-.277.872-.414 1.424-.414.41 0 .784.065 1.122.194.34.13.629.325.87.588.241.263.428.59.56.984.132.393.198.85.198 1.368v5.89h-2.49v-4.893c0-.268-.016-.525-.048-.77a1.627 1.627 0 00-.2-.63 1.028 1.028 0 00-.392-.426 1.294 1.294 0 00-.616-.134c-.277 0-.508.05-.693.15a1.043 1.043 0 00-.43.41 1.768 1.768 0 00-.214.616 4.15 4.15 0 00-.06.74v4.937H9.29v-4.937c0-.25-.01-.498-.032-.742a1.84 1.84 0 00-.166-.638.998.998 0 00-.363-.448 1.206 1.206 0 00-.624-.154c-.26 0-.483.048-.67.144a1.055 1.055 0 00-.436.402 1.744 1.744 0 00-.227.616 4.108 4.108 0 00-.063.74v4.937H5.21V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg>'},{key:"feishu",name:"Feishu",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.59 3.41a2.25 2.25 0 0 1 3.182 0L13.5 7.14l-3.182 3.182L6.59 7.59a2.25 2.25 0 0 1 0-3.182zm5.303 5.303L15.075 5.53a2.25 2.25 0 0 1 3.182 3.182L15.075 11.894 11.893 8.713zM3.41 6.59a2.25 2.25 0 0 1 3.182 0l3.182 3.182-3.182 3.182a2.25 2.25 0 0 1-3.182-3.182L3.41 6.59zm5.303 5.303L11.894 15.075a2.25 2.25 0 0 1-3.182 3.182L5.53 15.075 8.713 11.893zm5.303-5.303L17.478 9.778a2.25 2.25 0 0 1-3.182 3.182L10.53 10.075l3.182-3.182 0 .023z"/></svg>'},{key:"weixin",name:"Weixin",exclusive:!0,icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>'},{key:"wecom",name:"WeCom",icon:'<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>'}];return(d,l)=>{const q=ye("NSpin");return c(),h("section",Z,[(c(),h(x,null,He(he,_=>t(pe,{key:_.key,name:_.name,icon:_.icon,exclusive:_.exclusive,config:e(s)[_.key],credentials:m(_.key)},{default:o(()=>[_.key==="telegram"?(c(),h(x,{key:0},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("telegram").token||"",loading:i("telegram","token"),clearable:"",size:"small",class:"input-lg",placeholder:"123456:ABC-DEF...",onChange:l[0]||(l[0]=n=>f("telegram","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).telegram.require_mention,loading:i("telegram","require_mention"),"onUpdate:value":l[1]||(l[1]=n=>u("telegram","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.reactions"),hint:e(a)("platform.reactionsHint")},{default:o(()=>[t(e(b),{value:e(s).telegram.reactions,loading:i("telegram","reactions"),"onUpdate:value":l[2]||(l[2]=n=>u("telegram","reactions",{reactions:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).telegram.free_response_chats||"",loading:i("telegram","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[3]||(l[3]=n=>u("telegram","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.mentionPatterns"),hint:e(a)("platform.mentionPatternsHint")},{default:o(()=>[t(e(p),{"default-value":(e(s).telegram.mention_patterns||[]).join(", "),loading:i("telegram","mention_patterns"),size:"small",placeholder:"pattern1, pattern2",onChange:l[4]||(l[4]=n=>u("telegram","mention_patterns",{mention_patterns:n?n.split(",").map(A=>A.trim()):[]}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="discord"?(c(),h(x,{key:1},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("discord").token||"",loading:i("discord","token"),clearable:"",size:"small",class:"input-lg",placeholder:"Bot token...",onChange:l[5]||(l[5]=n=>f("discord","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionChannel")},{default:o(()=>[t(e(b),{value:e(s).discord.require_mention,loading:i("discord","require_mention"),"onUpdate:value":l[6]||(l[6]=n=>u("discord","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.autoThread"),hint:e(a)("platform.autoThreadHint")},{default:o(()=>[t(e(b),{value:e(s).discord.auto_thread,loading:i("discord","auto_thread"),"onUpdate:value":l[7]||(l[7]=n=>u("discord","auto_thread",{auto_thread:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.reactions"),hint:e(a)("platform.reactionsHint")},{default:o(()=>[t(e(b),{value:e(s).discord.reactions,loading:i("discord","reactions"),"onUpdate:value":l[8]||(l[8]=n=>u("discord","reactions",{reactions:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChannels"),hint:e(a)("platform.freeResponseChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.free_response_channels||"",loading:i("discord","free_response_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[9]||(l[9]=n=>u("discord","free_response_channels",{free_response_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.allowedChannels"),hint:e(a)("platform.allowedChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.allowed_channels||"",loading:i("discord","allowed_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[10]||(l[10]=n=>u("discord","allowed_channels",{allowed_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.ignoredChannels"),hint:e(a)("platform.ignoredChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.ignored_channels||"",loading:i("discord","ignored_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[11]||(l[11]=n=>u("discord","ignored_channels",{ignored_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.noThreadChannels"),hint:e(a)("platform.noThreadChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).discord.no_thread_channels||"",loading:i("discord","no_thread_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[12]||(l[12]=n=>u("discord","no_thread_channels",{no_thread_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="slack"?(c(),h(x,{key:2},[t(r,{label:e(a)("platform.botToken"),hint:e(a)("platform.botTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("slack").token||"",loading:i("slack","token"),clearable:"",size:"small",class:"input-lg",placeholder:"xoxb-...",onChange:l[13]||(l[13]=n=>f("slack","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionChannel")},{default:o(()=>[t(e(b),{value:e(s).slack.require_mention,loading:i("slack","require_mention"),"onUpdate:value":l[14]||(l[14]=n=>u("slack","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.allowBots"),hint:e(a)("platform.allowBotsHint")},{default:o(()=>[t(e(b),{value:e(s).slack.allow_bots,loading:i("slack","allow_bots"),"onUpdate:value":l[15]||(l[15]=n=>u("slack","allow_bots",{allow_bots:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChannels"),hint:e(a)("platform.freeResponseChannelsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).slack.free_response_channels||"",loading:i("slack","free_response_channels"),size:"small",placeholder:"channel_id1,channel_id2",onChange:l[16]||(l[16]=n=>u("slack","free_response_channels",{free_response_channels:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="whatsapp"?(c(),h(x,{key:3},[t(r,{label:e(a)("platform.waEnabled"),hint:e(a)("platform.waEnabledHint")},{default:o(()=>[t(e(b),{value:m("whatsapp").enabled,loading:i("whatsapp","enabled"),"onUpdate:value":l[17]||(l[17]=n=>f("whatsapp","enabled",{enabled:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).whatsapp.require_mention,loading:i("whatsapp","require_mention"),"onUpdate:value":l[18]||(l[18]=n=>u("whatsapp","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).whatsapp.free_response_chats||"",loading:i("whatsapp","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[19]||(l[19]=n=>u("whatsapp","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.mentionPatterns"),hint:e(a)("platform.mentionPatternsHint")},{default:o(()=>[t(e(p),{"default-value":(e(s).whatsapp.mention_patterns||[]).join(", "),loading:i("whatsapp","mention_patterns"),size:"small",placeholder:"pattern1, pattern2",onChange:l[20]||(l[20]=n=>u("whatsapp","mention_patterns",{mention_patterns:n?n.split(",").map(A=>A.trim()):[]}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="matrix"?(c(),h(x,{key:4},[t(r,{label:e(a)("platform.accessToken"),hint:e(a)("platform.accessTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("matrix").token||"",loading:i("matrix","token"),clearable:"",size:"small",class:"input-lg",placeholder:"syt_...",onChange:l[21]||(l[21]=n=>f("matrix","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.homeserver"),hint:e(a)("platform.homeserverHint")},{default:o(()=>[t(e(p),{"default-value":m("matrix").extra?.homeserver||"",loading:i("matrix","homeserver"),clearable:"",size:"small",class:"input-lg",placeholder:"https://matrix.org",onChange:l[22]||(l[22]=n=>f("matrix","homeserver",{extra:{...m("matrix").extra,homeserver:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionRoom")},{default:o(()=>[t(e(b),{value:e(s).matrix.require_mention,loading:i("matrix","require_mention"),"onUpdate:value":l[23]||(l[23]=n=>u("matrix","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.autoThread"),hint:e(a)("platform.autoThreadHintRoom")},{default:o(()=>[t(e(b),{value:e(s).matrix.auto_thread,loading:i("matrix","auto_thread"),"onUpdate:value":l[24]||(l[24]=n=>u("matrix","auto_thread",{auto_thread:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.dmMentionThreads"),hint:e(a)("platform.dmMentionThreadsHint")},{default:o(()=>[t(e(b),{value:e(s).matrix.dm_mention_threads,loading:i("matrix","dm_mention_threads"),"onUpdate:value":l[25]||(l[25]=n=>u("matrix","dm_mention_threads",{dm_mention_threads:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseRooms"),hint:e(a)("platform.freeResponseRoomsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).matrix.free_response_rooms||"",loading:i("matrix","free_response_rooms"),size:"small",placeholder:"room_id1,room_id2",onChange:l[26]||(l[26]=n=>u("matrix","free_response_rooms",{free_response_rooms:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="feishu"?(c(),h(x,{key:5},[t(r,{label:e(a)("platform.appId"),hint:e(a)("platform.appIdHint")},{default:o(()=>[t(e(p),{"default-value":m("feishu").extra?.app_id||"",loading:i("feishu","app_id"),clearable:"",size:"small",class:"input-lg",placeholder:"cli_...",onChange:l[27]||(l[27]=n=>f("feishu","app_id",{extra:{...m("feishu").extra,app_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.appSecret"),hint:e(a)("platform.appSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("feishu").extra?.app_secret||"",loading:i("feishu","app_secret"),clearable:"",size:"small",class:"input-lg",placeholder:"App Secret",onChange:l[28]||(l[28]=n=>f("feishu","app_secret",{extra:{...m("feishu").extra,app_secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).feishu.require_mention,loading:i("feishu","require_mention"),"onUpdate:value":l[29]||(l[29]=n=>u("feishu","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).feishu.free_response_chats||"",loading:i("feishu","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[30]||(l[30]=n=>u("feishu","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="dingtalk"?(c(),h(x,{key:6},[t(r,{label:e(a)("platform.clientId"),hint:e(a)("platform.clientIdHint")},{default:o(()=>[t(e(p),{"default-value":m("dingtalk").extra?.client_id||"",loading:i("dingtalk","client_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Client ID",onChange:l[31]||(l[31]=n=>f("dingtalk","client_id",{extra:{...m("dingtalk").extra,client_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.clientSecret"),hint:e(a)("platform.clientSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("dingtalk").extra?.client_secret||"",loading:i("dingtalk","client_secret"),clearable:"",size:"small",class:"input-lg",placeholder:"Client Secret",onChange:l[32]||(l[32]=n=>f("dingtalk","client_secret",{extra:{...m("dingtalk").extra,client_secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.requireMention"),hint:e(a)("platform.requireMentionGroup")},{default:o(()=>[t(e(b),{value:e(s).dingtalk.require_mention,loading:i("dingtalk","require_mention"),"onUpdate:value":l[33]||(l[33]=n=>u("dingtalk","require_mention",{require_mention:n}))},null,8,["value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.freeResponseChats"),hint:e(a)("platform.freeResponseChatsHint")},{default:o(()=>[t(e(p),{"default-value":e(s).dingtalk.free_response_chats||"",loading:i("dingtalk","free_response_chats"),size:"small",placeholder:"chat_id1,chat_id2",onChange:l[34]||(l[34]=n=>u("dingtalk","free_response_chats",{free_response_chats:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="weixin"?(c(),h(x,{key:7},[w("div",J,[v.value==="idle"||v.value==="error"||v.value==="expired"||v.value==="confirmed"?(c(),U(e(ve),{key:0,type:"primary",size:"small",onClick:_e},{default:o(()=>[I(H(v.value==="confirmed"?e(a)("platform.qrRelogin"):e(a)("platform.qrLogin")),1)]),_:1})):g("",!0),v.value==="loading"?(c(),h("div",ee,[t(q,{size:"small"}),w("span",null,H(e(a)("platform.qrFetching")),1)])):g("",!0),v.value==="waiting"||v.value==="scaned"?(c(),h("div",ae,H(v.value==="scaned"?e(a)("platform.qrScanedHint"):e(a)("platform.qrScanHint")),1)):g("",!0)]),t(r,{label:e(a)("platform.weixinToken"),hint:e(a)("platform.weixinTokenHint")},{default:o(()=>[t(e(p),{"default-value":m("weixin").token||"",loading:i("weixin","token"),clearable:"",size:"small",class:"input-lg",placeholder:"Token",onChange:l[35]||(l[35]=n=>f("weixin","token",{token:n}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.accountId"),hint:e(a)("platform.accountIdHint")},{default:o(()=>[t(e(p),{"default-value":m("weixin").extra?.account_id||"",loading:i("weixin","account_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Account ID",onChange:l[36]||(l[36]=n=>f("weixin","account_id",{extra:{...m("weixin").extra,account_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0),_.key==="wecom"?(c(),h(x,{key:8},[t(r,{label:e(a)("platform.botId"),hint:e(a)("platform.botIdHint")},{default:o(()=>[t(e(p),{"default-value":m("wecom").extra?.bot_id||"",loading:i("wecom","bot_id"),clearable:"",size:"small",class:"input-lg",placeholder:"Bot ID",onChange:l[37]||(l[37]=n=>f("wecom","bot_id",{extra:{...m("wecom").extra,bot_id:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"]),t(r,{label:e(a)("platform.appSecret"),hint:e(a)("platform.wecomSecretHint")},{default:o(()=>[t(e(p),{"default-value":m("wecom").extra?.secret||"",loading:i("wecom","secret"),clearable:"",size:"small",class:"input-lg",placeholder:"Secret",onChange:l[38]||(l[38]=n=>f("wecom","secret",{extra:{...m("wecom").extra,secret:n}}))},null,8,["default-value","loading"])]),_:1},8,["label","hint"])],64)):g("",!0)]),_:2},1032,["name","icon","exclusive","config","credentials"])),64))])}}})})),Ue=C((()=>{})),fe,Le=C((()=>{le(),le(),Ue(),D(),fe=F(me,[["__scopeId","data-v-ee52227d"]])})),te,ne,ie,oe,ce,re=C((()=>{V(),$(),W(),de(),Le(),te={class:"channels-view"},ne={class:"page-header"},ie={class:"header-title"},oe={class:"channels-content"},ce=L({__name:"ChannelsView",setup(S){const s=se(),{t:k}=N();return Se(()=>{s.fetchSettings()}),(a,y)=>(c(),h("div",te,[w("header",ne,[w("h2",ie,H(e(k)("sidebar.channels")),1)]),w("div",oe,[t(e(qe),{show:e(s).loading||e(s).saving,size:"large",description:e(k)("common.loading")},{default:o(()=>[e(s).loading?g("",!0):(c(),U(fe,{key:0}))]),_:1},8,["show","description"])])]))}})})),$e=C((()=>{})),We,Ne=C((()=>{re(),re(),$e(),D(),We=F(ce,[["__scopeId","data-v-e25dbf6c"]])}));Ne();export{We as default};
@@ -0,0 +1,3 @@
1
+ import{n as T}from"./rolldown-runtime-iJLb3ux7.js";import{$ as a,A as Y,B as vn,C as ye,E as hn,Ft as Es,G as _n,H as fn,It as c,K as V,N as pn,Nt as n,Ot as m,Pt as q,Q as g,R as ee,U as Pe,W as mn,X as e,Y as E,Z as j,_t as G,bt as $e,c as gn,ct as ge,dt as Ie,ft as i,g as zs,gt as yn,mt as Q,nt as S,q as wn,rt as te,t as ke,tt as H,u as kn,ut as oe,x as bn,y as Te,yt as I}from"./ui-vendor-CwabjOwn.js";import{n as le,r as re}from"./vue-vendor-DN3TBS7r.js";import{d as Me,i as Sn,l as Us,o as Ns,r as xn,s as Vs}from"./router-CdmwEnE9.js";import{t as Cn}from"./logo-BnHwDXCu.js";import{n as $n,t as Mn}from"./useTheme-Drzcf0eS.js";import{n as Ws,t as Hs}from"./app-POg4Gsmx.js";import{n as se,t as ne}from"./_plugin-vue_export-helper-JVWBimuG.js";import{n as be,t as Se}from"./chat-DccL9rk5.js";import{c as qs,d as In,l as Pn,n as Tn}from"./sessions-CnkxZ9zT.js";import{n as Bn,t as Fn}from"./session-browser-prefs-WkaI5xGq.js";import{a as Rn,c as we,i as Ln,l as Ks,n as Dn,o as An,r as On,s as Be,t as Fe}from"./SessionListItem-DsZoXdqg.js";import{n as En,t as zn}from"./clipboard-D3SeHW1n.js";import{a as Un,i as Nn,n as Vn,o as Wn,r as Hn,s as qn,t as Kn}from"./xterm-Bov7T25g.js";import{_ as Gn,a as Yn,b as jn,c as Jn,d as Xn,f as Qn,g as Zn,h as ei,i as ti,l as si,m as ni,n as ii,o as ai,p as oi,r as li,s as ri,t as ui,u as ci,v as di,y as vi}from"./FileRenameModal-B-3uRS-J.js";var Re,Le,De,Ae,Oe,Ee,ze,Ue,Ne,Ve,We,He,qe,Gs,Ke=T((()=>{ee(),Se(),Hs(),Us(),qs(),ke(),le(),Re={class:"chat-input-area"},Le={class:"input-top-bar"},De={class:"auto-play-speech-switch"},Ae={key:1,class:"context-bar"},Oe={key:0,class:"attachment-previews"},Ee=["src","alt"],ze={key:1,class:"attachment-file"},Ue={class:"file-name"},Ne={class:"file-size"},Ve=["onClick"],We=["placeholder"],He={class:"input-actions"},qe=2e5,Gs=te({__name:"ChatInput",setup(A){const t=be(),{t:y}=re(),b=m(""),r=m(),p=m(),w=m([]),$=m(!1),_=m(0),B=m(!1),P=m(!1);oe(()=>{const s=localStorage.getItem("autoPlaySpeech");s!==null&&(P.value=s==="true",t.setAutoPlaySpeech(P.value))}),G(P,s=>{localStorage.setItem("autoPlaySpeech",String(s)),t.setAutoPlaySpeech(s)});const M=E(()=>b.value.trim()||w.value.length>0),d=m(2e5);async function h(){try{d.value=await Tn(Me().activeProfileName||void 0)}catch{d.value=qe}}oe(h),G(()=>Me().activeProfileName,h),G(()=>Ws().selectedModel,h);const v=E(()=>(t.activeSession?.inputTokens??0)+(t.activeSession?.outputTokens??0)),R=E(()=>Math.max(0,d.value-v.value)),z=E(()=>Math.min(v.value/d.value*100,100));function L(s){return s>=1e6?(s/1e6).toFixed(1)+"M":s>=1e3?(s/1e3).toFixed(1)+"k":String(s)}function F(s){if(w.value.find(J=>J.name===s.name))return;const l=Date.now().toString(36)+Math.random().toString(36).slice(2,8),x=URL.createObjectURL(s);w.value.push({id:l,name:s.name,type:s.type,size:s.size,url:x,file:s})}function O(){p.value?.click()}function k(s){const l=s.target;if(l.files){for(const x of l.files)F(x);l.value=""}}function U(s){const l=Array.from(s.clipboardData?.items||[]).filter(x=>x.type.startsWith("image/"));if(l.length){s.preventDefault();for(const x of l){const J=x.getAsFile();if(!J)continue;const he=x.type.split("/")[1]||"png";F(new File([J],`pasted-${Date.now()}.${he}`,{type:x.type}))}}}function K(s){s.preventDefault()}function fe(s){s.preventDefault(),s.dataTransfer?.types.includes("Files")&&(_.value++,$.value=!0)}function ie(){_.value--,_.value<=0&&(_.value=0,$.value=!1)}function ue(s){s.preventDefault(),_.value=0,$.value=!1;const l=Array.from(s.dataTransfer?.files||[]);if(l.length){for(const x of l)F(x);r.value?.focus()}}function X(){const s=b.value.trim();!s&&w.value.length===0||(t.sendMessage(s,w.value.length>0?w.value:void 0),b.value="",w.value=[],r.value&&(r.value.style.height="auto"))}function ce(){B.value=!0}function de(){requestAnimationFrame(()=>{B.value=!1})}function W(s){return B.value||s.isComposing||s.keyCode===229}function ae(s){s.key!=="Enter"||s.shiftKey||W(s)||(s.preventDefault(),X())}function pe(s){const l=s.target;l.style.height="auto",l.style.height=Math.min(l.scrollHeight,100)+"px"}function ve(s){const l=w.value.findIndex(x=>x.id===s);l!==-1&&(URL.revokeObjectURL(w.value[l].url),w.value.splice(l,1))}function Z(s){return s<1024?s+" B":s<1024*1024?(s/1024).toFixed(1)+" KB":(s/(1024*1024)).toFixed(1)+" MB"}function u(s){return s.startsWith("image/")}return(s,l)=>(i(),a("div",Re,[e("div",Le,[S(n(ye),{trigger:"hover"},{trigger:I(()=>[S(n(Y),{quaternary:"",size:"tiny",onClick:O,circle:""},{icon:I(()=>[...l[3]||(l[3]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})],-1)])]),_:1})]),default:I(()=>[H(" "+c(n(y)("chat.attachFiles")),1)]),_:1}),e("div",De,[S(n(ye),{trigger:"hover"},{trigger:I(()=>[...l[4]||(l[4]=[e("div",{class:"switch-label"},[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("polygon",{points:"5 3 19 12 5 21 5 3"})])],-1)])]),default:I(()=>[H(" "+c(n(y)("chat.autoPlaySpeech")),1)]),_:1}),S(n(gn),{size:"small",value:P.value,"onUpdate:value":l[0]||(l[0]=x=>P.value=x),round:!1},null,8,["value"])]),v.value>0?(i(),a("span",{key:0,class:q(["context-info",{"context-warning":z.value>80}])},c(L(v.value))+" / "+c(L(d.value))+" · "+c(n(y)("chat.contextRemaining"))+" "+c(L(R.value)),3)):g("",!0),v.value>0?(i(),a("div",Ae,[e("div",{class:q(["context-bar-fill",{"context-bar-warn":z.value>60&&z.value<=80,"context-bar-danger":z.value>80}]),style:Es({width:`${z.value}%`})},null,6)])):g("",!0)]),w.value.length>0?(i(),a("div",Oe,[(i(!0),a(V,null,Q(w.value,x=>(i(),a("div",{key:x.id,class:q(["attachment-preview",{image:u(x.type)}])},[u(x.type)?(i(),a("img",{key:0,src:x.url,alt:x.name,class:"attachment-thumb"},null,8,Ee)):(i(),a("div",ze,[l[5]||(l[5]=e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e("polyline",{points:"14 2 14 8 20 8"})],-1)),e("span",Ue,c(x.name),1),e("span",Ne,c(Z(x.size)),1)])),e("button",{class:"attachment-remove",onClick:J=>ve(x.id)},[...l[6]||(l[6]=[e("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])],8,Ve)],2))),128))])):g("",!0),e("div",{class:q(["input-wrapper",{"drag-over":$.value}]),onDragover:K,onDragenter:fe,onDragleave:ie,onDrop:ue},[e("input",{ref_key:"fileInputRef",ref:p,type:"file",multiple:"",class:"file-input-hidden",onChange:k},null,544),$e(e("textarea",{ref_key:"textareaRef",ref:r,"onUpdate:modelValue":l[1]||(l[1]=x=>b.value=x),class:"input-textarea",placeholder:n(y)("chat.inputPlaceholder"),rows:"1",onKeydown:ae,onCompositionstart:ce,onCompositionend:de,onInput:pe,onPaste:U},null,40,We),[[fn,b.value]]),e("div",He,[n(t).isStreaming?(i(),j(n(Y),{key:0,size:"small",type:"error",disabled:n(t).isAborting,onClick:l[2]||(l[2]=x=>n(t).stopStreaming())},{default:I(()=>[H(c(n(y)("chat.stop")),1)]),_:1},8,["disabled"])):g("",!0),S(n(Y),{size:"small",type:"primary",disabled:!M.value||n(t).isStreaming,onClick:X},{icon:I(()=>[...l[7]||(l[7]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),e("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})],-1)])]),default:I(()=>[H(" "+c(n(y)("chat.send")),1)]),_:1},8,["disabled"])])],34)]))}})})),hi=T((()=>{})),Ys,_i=T((()=>{Ke(),Ke(),hi(),se(),Ys=ne(Gs,[["__scopeId","data-v-7499bd47"]])}));async function fi(A={}){const t=new URLSearchParams;return A.humanOnly===!1&&t.set("humanOnly","false"),A.source&&t.set("source",A.source),A.limit!=null&&t.set("limit",String(A.limit)),(await Vs(`/api/hermes/sessions/conversations${t.toString()?`?${t.toString()}`:""}`)).sessions}async function pi(A,t={}){const y=new URLSearchParams;t.humanOnly===!1&&y.set("humanOnly","false"),t.source&&y.set("source",t.source);const b=y.toString()?`?${y.toString()}`:"";return Vs(`/api/hermes/sessions/conversations/${encodeURIComponent(A)}/messages${b}`)}var mi=T((()=>{Ns()})),Ge,Ye,je,Je,Xe,Qe,Ze,et,tt,st,nt,it,at,ot,lt,rt,ut,ct,dt,vt,ht,js,_t=T((()=>{ee(),mi(),Ks(),le(),Ge={class:"conversation-monitor"},Ye={class:"conversation-monitor__sidebar"},je={key:0,class:"conversation-monitor__empty"},Je={key:1,class:"conversation-monitor__empty"},Xe=["aria-pressed","onClick"],Qe={class:"conversation-monitor__session-title-row"},Ze={class:"conversation-monitor__session-title"},et={key:0,class:"conversation-monitor__session-live"},tt={class:"conversation-monitor__session-meta"},st={key:0,class:"conversation-monitor__session-preview"},nt={class:"conversation-monitor__detail"},it={key:0,class:"conversation-monitor__detail-header"},at={class:"conversation-monitor__detail-title"},ot={class:"conversation-monitor__detail-meta"},lt={key:1,class:"conversation-monitor__empty conversation-monitor__empty--error"},rt={key:2,class:"conversation-monitor__empty"},ut={key:3,class:"conversation-monitor__empty"},ct={key:4,class:"conversation-monitor__messages"},dt={class:"conversation-monitor__message-meta"},vt={class:"conversation-monitor__message-content"},ht=15e3,js=te({__name:"ConversationMonitorPane",props:{humanOnly:{type:Boolean}},setup(A){const t=A,{t:y}=re(),b=m([]),r=m(null),p=m(null),w=m(!1),$=m(!1),_=m("");let B=null,P=0,M=0;const d=E(()=>b.value.find(F=>F.id===r.value)||null);function h(F){return y(F==="user"?"chat.monitorRoleUser":"chat.monitorRoleAssistant")}function v(F){return y("chat.linkedSessions",{count:F})}function R(){P+=1,M+=1}async function z(F=!1){const O=++P;F||(w.value=!0,_.value="");try{const k=await fi({humanOnly:t.humanOnly});if(O!==P)return;if(b.value=k,!k.length){r.value=null,p.value=null;return}(!r.value||!k.some(U=>U.id===r.value))&&(r.value=k[0].id)}catch(k){if(O!==P||F)return;_.value=k?.message||String(k),b.value=[],r.value=null,p.value=null}finally{!F&&O===P&&(w.value=!1)}}async function L(F,O=!1){const k=++M;if(!F){p.value=null;return}const U=t.humanOnly;O||($.value=!0,_.value="");try{const K=await pi(F,{humanOnly:U});if(k!==M||F!==r.value||U!==t.humanOnly)return;p.value=K}catch(K){if(k!==M||O)return;_.value=K?.message||String(K),p.value=null}finally{!O&&k===M&&($.value=!1)}}return G(r,async F=>{await L(F,!1)}),G(()=>t.humanOnly,async()=>{R(),r.value=null,p.value=null,await z(!1)}),oe(async()=>{await z(!1),B=setInterval(async()=>{await z(!0),r.value&&await L(r.value,!0)},ht)}),Ie(()=>{R(),B&&clearInterval(B)}),(F,O)=>(i(),a("div",Ge,[e("aside",Ye,[w.value&&b.value.length===0?(i(),a("div",je,c(n(y)("common.loading")),1)):b.value.length===0?(i(),a("div",Je,c(n(y)("chat.noSessions")),1)):g("",!0),(i(!0),a(V,null,Q(b.value,k=>(i(),a("button",{key:k.id,class:q(["conversation-monitor__session",{active:k.id===r.value}]),"aria-pressed":k.id===r.value,onClick:U=>r.value=k.id},[e("div",Qe,[e("span",Ze,c(k.title||k.preview||k.id),1),k.is_active?(i(),a("span",et,c(n(y)("chat.recentBadge")),1)):g("",!0)]),e("div",tt,c(n(we)(k.source))+" · "+c(n(Be)(k.last_active)),1),k.preview?(i(),a("div",st,c(k.preview),1)):g("",!0)],10,Xe))),128))]),e("section",nt,[d.value?(i(),a("header",it,[e("div",at,c(d.value.title||d.value.preview||d.value.id),1),e("div",ot,[e("span",null,c(n(we)(d.value.source)),1),O[0]||(O[0]=e("span",null,"·",-1)),e("span",null,c(d.value.model),1),O[1]||(O[1]=e("span",null,"·",-1)),e("span",null,c(v(d.value.thread_session_count)),1)])])):g("",!0),_.value?(i(),a("div",lt,c(_.value),1)):$.value&&!p.value?(i(),a("div",rt,c(n(y)("common.loading")),1)):!p.value||p.value.messages.length===0?(i(),a("div",ut,c(n(y)("chat.noVisibleMessages")),1)):(i(),a("div",ct,[(i(!0),a(V,null,Q(p.value.messages,k=>(i(),a("article",{key:`${k.session_id}-${k.id}`,class:q(["conversation-monitor__message",`role-${k.role}`])},[e("div",dt,c(h(k.role))+" · "+c(n(Be)(k.timestamp)),1),e("div",vt,c(k.content),1)],2))),128))]))])]))}})})),gi=T((()=>{})),Js,yi=T((()=>{_t(),_t(),gi(),se(),Js=ne(js,[["__scopeId","data-v-be298d0d"]])})),Xs,wi=T((()=>{Xs="/assets/mp4/thinking-light-BjeGd2gJ.mp4"})),Qs,ki=T((()=>{Qs="/assets/mp4/thinking-dark-yYkYRZLs.mp4"})),ft,pt,mt,gt,yt,wt,kt,bt,St,xt,Ct,$t,Mt,It,Pt,Tt,Bt,Ft,Rt,Lt,Zs,Dt=T((()=>{ee(),Cn(),le(),Ln(),Se(),wi(),ki(),Mn(),ft={key:0,class:"empty-state"},pt={key:0,class:"streaming-indicator"},mt=["src"],gt={key:0,class:"tool-calls-panel"},yt={key:0,class:"tool-call-item compression-item"},wt={key:0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},kt={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},bt={class:"tool-call-name"},St={key:2,class:"tool-call-spinner"},xt={key:1,class:"tool-call-item compression-item"},Ct={key:0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},$t={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},Mt={class:"tool-call-name"},It={key:2,class:"tool-call-spinner"},Pt={class:"tool-call-name"},Tt={key:0,class:"tool-call-preview"},Bt=["title"],Ft={key:2,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"tool-call-success-icon"},Rt={key:3,class:"tool-call-spinner"},Lt={key:4,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"tool-call-error-icon"},Zs=te({__name:"MessageList",setup(A){const t=be(),{t:y}=re(),{isDark:b}=$n(),r=m();function p(d){return d>=1e6?(d/1e6).toFixed(1)+"M":d>=1e3?(d/1e3).toFixed(1)+"K":String(d)}function w(d){return d<1?`${Math.round(d*1e3)}ms`:d<60?`${Math.round(d*10)/10}s`:`${Math.floor(d/60)}m ${Math.round(d%60)}s`}const $=E(()=>t.messages.filter(d=>d.role!=="tool")),_=E(()=>{const d=t.messages;let h=-1;for(let v=d.length-1;v>=0;v--)if(d[v].role==="user"){h=v;break}return[...d.filter((v,R)=>v.role==="tool"&&R>h)].reverse()});function B(d=200){const h=r.value;return h?h.scrollHeight-h.scrollTop-h.clientHeight<d:!0}function P(){ge(()=>{r.value&&(r.value.scrollTop=r.value.scrollHeight)})}function M(d){ge(()=>{const h=document.getElementById(`message-${d}`);h&&h.scrollIntoView({block:"center"})})}return G(()=>t.activeSessionId,d=>{if(d){if(t.focusMessageId){ge(()=>M(t.focusMessageId));return}ge(()=>P())}},{immediate:!0}),G(()=>t.focusMessageId,d=>{d&&M(d)}),G(()=>t.isRunActive,d=>{d&&P()}),G(()=>t.messages[t.messages.length-1]?.content,()=>{if(t.focusMessageId){M(t.focusMessageId);return}B()&&P()}),G(_,()=>{if(t.focusMessageId){M(t.focusMessageId);return}B()&&P()}),(d,h)=>(i(),a("div",{ref_key:"listRef",ref:r,class:"message-list"},[n(t).messages.length===0?(i(),a("div",ft,[h[0]||(h[0]=e("img",{src:"/logo.png",alt:"Hermes",class:"empty-logo"},null,-1)),e("p",null,c(n(y)("chat.emptyState")),1)])):g("",!0),(i(!0),a(V,null,Q($.value,v=>(i(),j(On,{key:v.id,message:v,highlight:n(t).focusMessageId===v.id},null,8,["message","highlight"]))),128)),S(vn,{name:"fade"},{default:I(()=>[n(t).isRunActive||n(t).abortState?(i(),a("div",pt,[e("video",{src:n(b)?n(Qs):n(Xs),autoplay:"",loop:"",muted:"",playsinline:"",class:"thinking-video"},null,8,mt),_.value.length>0||n(t).compressionState||n(t).abortState?(i(),a("div",gt,[n(t).abortState?(i(),a("div",yt,[n(t).abortState.aborting?(i(),a("svg",wt,[...h[1]||(h[1]=[e("path",{d:"M10 9v6m4-6v6M5 5h14v14H5z"},null,-1)])])):(i(),a("svg",kt,[...h[2]||(h[2]=[e("path",{d:"M5 13l4 4L19 7"},null,-1)])])),e("span",bt,c(n(t).abortState.aborting?"Pausing... waiting for the run to stop and sync":n(t).abortState.synced?"Paused and synced":"Paused"),1),n(t).abortState.aborting?(i(),a("span",St)):g("",!0)])):g("",!0),n(t).compressionState?(i(),a("div",xt,[n(t).compressionState.compressing?(i(),a("svg",Ct,[...h[3]||(h[3]=[e("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)])])):n(t).compressionState.compressed?(i(),a("svg",$t,[...h[4]||(h[4]=[e("path",{d:"M5 13l4 4L19 7"},null,-1)])])):g("",!0),e("span",Mt,c(n(t).compressionState.compressing?`Compressing... (${n(t).compressionState.messageCount} msgs, ~${p(n(t).compressionState.beforeTokens)} tokens)`:n(t).compressionState.compressed?`Compressed ${n(t).compressionState.messageCount} msgs: ~${p(n(t).compressionState.beforeTokens)} → ~${p(n(t).compressionState.afterTokens)} tokens`:"Compression skipped"),1),n(t).compressionState.compressing?(i(),a("span",It)):g("",!0)])):g("",!0),(i(!0),a(V,null,Q(_.value,v=>(i(),a("div",{key:v.id,class:"tool-call-item"},[h[7]||(h[7]=e("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-call-icon"},[e("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)),e("span",Pt,c(v.toolName),1),v.toolPreview?(i(),a("span",Tt,c(v.toolPreview),1)):g("",!0),v.toolDuration&&v.toolStatus!=="running"?(i(),a("span",{key:1,class:"tool-call-duration",title:d.$t("chat.executionDuration")},c(w(v.toolDuration)),9,Bt)):g("",!0),v.toolStatus==="done"?(i(),a("svg",Ft,[...h[5]||(h[5]=[e("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor","fill-opacity":"0.15"},null,-1),e("path",{d:"M8 12L11 15L16 9",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,-1)])])):g("",!0),v.toolStatus==="running"?(i(),a("span",Rt)):g("",!0),v.toolStatus==="error"?(i(),a("svg",Lt,[...h[6]||(h[6]=[e("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor","fill-opacity":"0.15"},null,-1),e("path",{d:"M15 9L9 15M9 9L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"},null,-1)])])):g("",!0)]))),128))])):g("",!0)])):g("",!0)]),_:1})],512))}})})),bi=T((()=>{})),en,Si=T((()=>{Dt(),Dt(),bi(),se(),en=ne(Zs,[["__scopeId","data-v-cf22d274"]])})),At,Ot,Et,zt,Ut,Nt,Vt,Wt,Ht,qt,Kt,Gt,Yt,jt,Jt,Xt,Qt,Zt,Ce,es,tn,ts=T((()=>{ee(),qn(),Nn(),Hn(),Kn(),Ns(),ke(),le(),At={class:"terminal-panel-drawer"},Ot={class:"sidebar-header"},Et={class:"sidebar-title"},zt={class:"session-list"},Ut={key:0,class:"session-error"},Nt={key:1,class:"session-empty"},Vt=["onClick"],Wt={class:"session-item-content"},Ht={class:"session-item-title"},qt={class:"session-item-meta"},Kt={class:"session-item-shell"},Gt={key:0,class:"session-item-status"},Yt={key:1,class:"session-item-time"},jt={class:"terminal-main"},Jt={class:"terminal-header"},Xt={key:0,class:"header-session-title"},Qt={class:"header-actions"},Zt={class:"terminal-container"},Ce="hermes_terminal_theme",es=3,tn=te({__name:"TerminalPanel",setup(A){const{t}=re(),y=zs(),b={default:{label:"Default",theme:{background:"#1a1a2e",foreground:"#e0e0e0",cursor:"#4cc9f0",cursorAccent:"#1a1a2e",selectionBackground:"rgba(76, 201, 240, 0.3)",black:"#000000",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},"solarized-dark":{label:"Solarized Dark",theme:{background:"#002b36",foreground:"#839496",cursor:"#93a1a1",cursorAccent:"#002b36",selectionBackground:"rgba(147, 161, 161, 0.3)",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#002b36",brightRed:"#cb4b16",brightGreen:"#586e75",brightYellow:"#657b83",brightBlue:"#839496",brightMagenta:"#6c71c4",brightCyan:"#93a1a1",brightWhite:"#fdf6e3"}},"tokyo-night":{label:"Tokyo Night",theme:{background:"#1a1b26",foreground:"#a9b1d6",cursor:"#c0caf5",cursorAccent:"#1a1b26",selectionBackground:"rgba(192, 202, 245, 0.2)",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}},"github-dark":{label:"GitHub Dark",theme:{background:"#0d1117",foreground:"#c9d1d9",cursor:"#58a6ff",cursorAccent:"#0d1117",selectionBackground:"rgba(88, 166, 255, 0.25)",black:"#484f58",red:"#ff7b72",green:"#7ee787",yellow:"#ffa657",blue:"#79c0ff",magenta:"#d2a8ff",cyan:"#a5d6ff",white:"#c9d1d9",brightBlack:"#6e7681",brightRed:"#ffa198",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#58a6ff",brightMagenta:"#bc8cff",brightCyan:"#79c0ff",brightWhite:"#f0f6fc"}}},r=m(null),p=m([]),w=m(null),$=m(localStorage.getItem(Ce)||"default"),_=m(null),B=m(!1),P=m(!1);let M=null;const d=new Map;let h=null,v=null,R=null,z=0;const L=E(()=>p.value.find(u=>u.id===w.value)||null),F=E(()=>Object.entries(b).map(([u,s])=>({label:s.label,value:u}))),O=E(()=>b[$.value]?.theme.background??"#1a1a2e");function k(){const u=xn(),s=Sn(),l=s?s.startsWith("https")?"wss:":"ws:":location.protocol==="https:"?"wss:":"ws:";return s?`${l}//${new URL(s).host}/api/hermes/terminal${u?`?token=${encodeURIComponent(u)}`:""}`:`${l}//${location.host}/api/hermes/terminal${u?`?token=${encodeURIComponent(u)}`:""}`}function U(){if(z>=es){_.value=t("terminal.connectionFailed"),B.value=!1;return}const u=k();_.value=null,B.value=!0,z++,M=new WebSocket(u),M.onopen=()=>{z=0,B.value=!1,_.value=null},M.onmessage=s=>{const l=typeof s.data=="string"?s.data:"";if(l.charCodeAt(0)===123)try{fe(JSON.parse(l))}catch{}else h?.write(l)},M.onclose=s=>{if(B.value=!1,s.code===1e3||s.code===1003||s.code===1008){_.value=t("terminal.connectionClosed");return}setTimeout(U,3e3)},M.onerror=s=>{console.error("[Terminal] WebSocket error:",s),_.value=t("terminal.connectionError")}}function K(u){!M||M.readyState!==WebSocket.OPEN||M.send(typeof u=="string"?u:JSON.stringify(u))}function fe(u){switch(u.type){case"created":p.value.push({id:u.id,shell:u.shell,pid:u.pid,title:`${u.shell} #${p.value.length+1}`,createdAt:Date.now(),exited:!1}),X(u.id);break;case"exited":{const s=p.value.find(l=>l.id===u.id);s&&(s.exited=!0,w.value===u.id&&h?.write(`\r
2
+ \x1B[90m[${t("terminal.processExited",{code:u.exitCode})}]\x1B[0m\r
3
+ `));break}case"error":y.error(u.message);break}}function ie(){K({type:"create"})}function ue(u){let s=d.get(u);if(!s){const l=new Wn({cursorBlink:!0,fontSize:14,fontFamily:'Menlo, Monaco, "Courier New", monospace',theme:{...b[$.value].theme}}),x=new Un;l.loadAddon(x),l.loadAddon(new Vn),l.onData(J=>{M?.readyState===WebSocket.OPEN&&M.send(J)}),s={term:l,fitAddon:x,opened:!1},d.set(u,s)}return s}function X(u){if(w.value===u)return;w.value=u;const s=ue(u);h=s.term,v=s.fitAddon,de(),K({type:"switch",sessionId:u})}function ce(u){K({type:"close",sessionId:u}),p.value=p.value.filter(l=>l.id!==u);const s=d.get(u);s&&(s.term.dispose(),d.delete(u)),w.value===u&&(w.value=p.value.length>0?p.value[0].id:null,h=null,v=null,w.value?X(w.value):(W(),ie()))}function de(){if(!r.value)return;const u=r.value;for(;u.firstChild;)u.removeChild(u.firstChild);const s=d.get(w.value);if(s){if(!s.opened)s.term.open(u),s.opened=!0;else{const l=s.term.element;l&&u.appendChild(l)}R?.disconnect(),R=new ResizeObserver(()=>{ae(),pe()}),R.observe(r.value),setTimeout(()=>ae(),50),setTimeout(()=>ae(),200)}}function W(){if(!r.value)return;const u=r.value;for(;u.firstChild;)u.removeChild(u.firstChild)}function ae(){if(v)try{v.fit()}catch{}}function pe(){if(!(!h||!M||M.readyState!==WebSocket.OPEN))try{K({type:"resize",cols:h.cols,rows:h.rows})}catch{}}function ve(u){$.value=u,localStorage.setItem(Ce,u);const s=b[u]?.theme;if(s)for(const l of d.values())l.term.options.theme={...s}}function Z(u){return new Date(u).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}return oe(()=>{U()}),Ie(()=>{W();for(const u of d.values())u.term.dispose();d.clear(),h=null,v=null,M?.close(),M=null}),(u,s)=>(i(),a("div",At,[P.value?(i(),a("div",{key:0,class:"sidebar-overlay",onClick:s[0]||(s[0]=l=>P.value=!1)})):g("",!0),e("div",{class:q(["terminal-sidebar",{"mobile-visible":P.value}])},[e("div",Ot,[e("span",Et,c(n(t)("terminal.sessions")),1),S(n(ye),{trigger:"hover"},{trigger:I(()=>[S(n(Y),{quaternary:"",size:"tiny",onClick:ie,circle:""},{icon:I(()=>[...s[3]||(s[3]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),_:1})]),default:I(()=>[H(" "+c(n(t)("terminal.newTab")),1)]),_:1})]),e("div",zt,[_.value?(i(),a("div",Ut,[s[4]||(s[4]=e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("circle",{cx:"12",cy:"12",r:"10"}),e("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),e("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})],-1)),e("span",null,c(_.value),1),S(n(Y),{size:"tiny",onClick:U},{default:I(()=>[H(c(n(t)("common.retry")),1)]),_:1})])):p.value.length===0?(i(),a("div",Nt,[B.value?(i(),a(V,{key:0},[H(c(n(t)("common.loading")),1)],64)):(i(),a(V,{key:1},[H(c(n(t)("terminal.noSessions")),1)],64))])):g("",!0),(i(!0),a(V,null,Q(p.value,l=>(i(),a("button",{key:l.id,class:q(["session-item",{active:l.id===w.value,exited:l.exited}]),onClick:x=>X(l.id)},[e("div",Wt,[e("span",Ht,c(l.title),1),e("span",qt,[e("span",Kt,c(l.shell),1),l.exited?(i(),a("span",Gt,c(n(t)("terminal.sessionExited")),1)):(i(),a("span",Yt,c(Z(l.createdAt)),1))])]),p.value.length>1?(i(),j(n(kn),{key:0,onPositiveClick:x=>ce(l.id)},{trigger:I(()=>[e("button",{class:"session-item-delete",onClick:s[1]||(s[1]=_n(()=>{},["stop"]))},[...s[5]||(s[5]=[e("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),default:I(()=>[H(" "+c(n(t)("terminal.closeSession")),1)]),_:1},8,["onPositiveClick"])):g("",!0)],10,Vt))),128))])],2),e("div",jt,[e("header",Jt,[L.value?(i(),a("span",Xt,c(L.value.title),1)):g("",!0),e("div",Qt,[S(n(Y),{size:"small",onClick:s[2]||(s[2]=l=>P.value=!P.value),class:"sidebar-toggle"},{icon:I(()=>[...s[6]||(s[6]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e("line",{x1:"9",y1:"3",x2:"9",y2:"21"})],-1)])]),default:I(()=>[H(" "+c(n(t)("terminal.sessions")),1)]),_:1}),S(n(hn),{value:$.value,options:F.value,size:"small","consistent-menu-width":!1,class:"theme-select","onUpdate:value":ve},null,8,["value","options"]),S(n(Y),{size:"small",onClick:ie},{icon:I(()=>[...s[7]||(s[7]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:I(()=>[H(" "+c(n(t)("terminal.newTab")),1)]),_:1})])]),e("div",Zt,[e("div",{ref_key:"terminalRef",ref:r,class:"terminal-xterm",style:Es({backgroundColor:O.value})},null,4)])])]))}})})),xi=T((()=>{})),sn,Ci=T((()=>{ts(),ts(),xi(),se(),sn=ne(tn,[["__scopeId","data-v-53ffdd40"]])})),ss,ns,is,as,nn,os=T((()=>{ee(),vi(),le(),ke(),di(),Zn(),ni(),Qn(),ci(),Jn(),ai(),ti(),ii(),ss={class:"files-panel-drawer"},ns={class:"files-main-panel"},is={class:"main-toolbar"},as={class:"files-content"},nn=te({__name:"FilesPanel",setup(A){const t=jn(),{t:y}=re(),b=m(null),r=m(!1),p=m(!1),w=m("newFile"),$=m(null),_=m(!1);function B(h,v){b.value?.show(h,v)}function P(){w.value="newFile",$.value=null,p.value=!0}function M(){w.value="newFolder",$.value=null,p.value=!0}function d(h){w.value="rename",$.value=h,p.value=!0}return oe(()=>{t.fetchEntries("")}),(h,v)=>(i(),a("div",ss,[_.value?(i(),a("div",{key:0,class:"sidebar-overlay",onClick:v[0]||(v[0]=R=>_.value=!1)})):g("",!0),e("div",{class:q(["files-tree-panel",{"mobile-visible":_.value}])},[S(Gn)],2),e("div",ns,[e("div",is,[S(n(Y),{size:"small",onClick:v[1]||(v[1]=R=>_.value=!_.value),class:"sidebar-toggle"},{icon:I(()=>[...v[5]||(v[5]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e("line",{x1:"9",y1:"3",x2:"9",y2:"21"})],-1)])]),default:I(()=>[H(" "+c(n(y)("files.fileTree")),1)]),_:1}),S(oi,{onShowNewFile:P,onShowNewFolder:M,onShowUpload:v[2]||(v[2]=R=>r.value=!0)})]),S(ei),e("div",as,[n(t).editingFile?(i(),j(ri,{key:0})):n(t).previewFile?(i(),j(Yn,{key:1})):(i(),j(Xn,{key:2,onContextmenuEntry:B}))])]),S(si,{ref_key:"contextMenuRef",ref:b,onRename:d},null,512),S(li,{show:r.value,"onUpdate:show":v[3]||(v[3]=R=>r.value=R)},null,8,["show"]),S(ui,{show:p.value,"onUpdate:show":v[4]||(v[4]=R=>p.value=R),mode:w.value,entry:$.value},null,8,["show","mode","entry"])]))}})})),$i=T((()=>{})),an,Mi=T((()=>{os(),os(),$i(),se(),an=ne(nn,[["__scopeId","data-v-efc529cd"]])})),ls,rs,us,cs,ds,on,vs=T((()=>{ee(),le(),Ci(),Mi(),ls={class:"drawer-header"},rs={class:"drawer-tabs"},us={class:"drawer-content"},cs={class:"drawer-pane"},ds={class:"drawer-pane"},on=te({__name:"DrawerPanel",props:{show:{type:Boolean},activeTab:{default:"files"}},emits:["update:show"],setup(A,{emit:t}){const y=A,b=t,{t:r}=re(),p=m(y.activeTab);G(()=>y.activeTab,$=>{$&&(p.value=$)});function w(){b("update:show",!1)}return($,_)=>(i(),j(wn,{to:"body"},[A.show?(i(),a("div",{key:0,class:"drawer-overlay",onClick:w})):g("",!0),e("div",{class:q(["drawer-panel",{show:A.show}])},[e("div",ls,[e("div",rs,[e("button",{class:q(["tab-button",{active:p.value==="files"}]),onClick:_[0]||(_[0]=B=>p.value="files")},c(n(r)("drawer.files")),3),e("button",{class:q(["tab-button",{active:p.value==="terminal"}]),onClick:_[1]||(_[1]=B=>p.value="terminal")},c(n(r)("drawer.terminal")),3)]),e("button",{class:"close-button",onClick:w},[..._[2]||(_[2]=[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),e("div",us,[$e(e("div",cs,[S(an)],512),[[Pe,p.value==="files"]]),$e(e("div",ds,[S(sn)],512),[[Pe,p.value==="terminal"]])])],2)]))}})})),Ii=T((()=>{})),ln,Pi=T((()=>{vs(),vs(),Ii(),se(),ln=ne(on,[["__scopeId","data-v-730aaf6b"]])})),hs,_s,fs,ps,ms,gs,ys,ws,ks,bs,Ss,xs,Cs,$s,Ms,Is,Ps,Ts,Bs,Fs,Rs,Ls,rn,Ds=T((()=>{ee(),qs(),Se(),Fn(),ke(),le(),Ks(),En(),An(),_i(),yi(),Si(),Dn(),Pi(),hs={class:"chat-panel"},_s={class:"session-list-header"},fs={key:0,class:"session-list-title"},ps={class:"session-list-actions"},ms={key:0,class:"session-scope-note"},gs={key:1,class:"session-items"},ys={key:0,class:"session-loading"},ws={key:1,class:"session-empty"},ks={class:"session-group-header session-group-header--static"},bs={class:"session-group-label"},Ss={class:"session-group-count"},xs=["onClick"],Cs={class:"session-group-label"},$s={class:"session-group-count"},Ms={class:"chat-main"},Is={class:"chat-header"},Ps={class:"header-left"},Ts={class:"header-session-title"},Bs={key:1,class:"source-badge"},Fs=["title"],Rs={class:"header-actions"},Ls={class:"drawer-button-wrapper"},rn=te({__name:"ChatPanel",setup(A){const t=be(),y=Bn(),b=zs(),{t:r}=re(),p=m(!1),w=m("files"),$=m("chat"),_=m(typeof window>"u"||!window.matchMedia("(max-width: 768px)").matches);let B=null;const P=m(!1);function M(f){t.switchSession(f),B?.matches&&(_.value=!1)}function d(f){P.value=f.matches,f.matches&&_.value&&(_.value=!1)}oe(()=>{B=window.matchMedia("(max-width: 768px)"),d(B),B.addEventListener("change",d)}),Ie(()=>{B?.removeEventListener("change",d)});const h=m(!1),v=m(""),R=m(null),z=m(null),L=m(new Set(JSON.parse(localStorage.getItem("hermes_collapsed_groups")||"[]")));function F(f){return f==="api_server"?-1:f==="cron"?999:0}function O(f){return[...f].sort((o,D)=>(D.updatedAt||0)-(o.updatedAt||0))}const k=E(()=>O(t.sessions.filter(f=>y.isPinned(f.id)))),U=E(()=>{const f=new Map;for(const o of t.sessions){if(y.isPinned(o.id))continue;const D=o.source||"";f.has(D)||f.set(D,[]),f.get(D).push(o)}return[...f.keys()].sort((o,D)=>{const C=F(o),N=F(D);return C!==N?C-N:o.localeCompare(D)}).map(o=>({source:o,label:o?we(o):r("chat.other"),sessions:O(f.get(o))}))});function K(f){if(!L.value.has(f))L.value=new Set([...L.value,f]);else{L.value=new Set(U.value.map(D=>D.source).filter(D=>D!==f));const o=U.value.find(D=>D.source===f);o?.sessions.length&&t.switchSession(o.sessions[0].id)}localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...L.value]))}G(U,f=>{if(localStorage.getItem("hermes_collapsed_groups")!==null){const o=t.activeSession?.source;o&&L.value.has(o)&&(L.value=new Set([...L.value].filter(D=>D!==o)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...L.value])));return}L.value=new Set(f.slice(1).map(o=>o.source)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...L.value]))},{once:!0}),G(()=>[t.sessionsLoaded,...t.sessions.map(f=>f.id)],f=>{const o=f.slice(1);!f[0]||o.length===0||y.pruneMissingSessions(o)},{immediate:!0});const fe=E(()=>t.activeSession?.title||r("chat.newChat")),ie=E(()=>$.value==="live"?r("chat.liveSessions"):fe.value),ue=E(()=>$.value==="chat"&&t.activeSession?.source||"");function X(){t.newChat()}async function ce(f){const o=f||t.activeSessionId;o&&(await zn(o)?b.success(r("common.copied")):b.error(r("common.copied")+" ✗"))}function de(f){y.removePinned(f),t.deleteSession(f),b.success(r("chat.sessionDeleted"))}const W=m(null),ae=E(()=>W.value?y.isPinned(W.value):!1),pe=E(()=>[{label:r(ae.value?"chat.unpin":"chat.pin"),key:"pin"},{label:r("chat.rename"),key:"rename"},{label:r("chat.setWorkspace"),key:"workspace"},{label:r("chat.copySessionId"),key:"copy-id"}]);function ve(f,o){f.preventDefault(),W.value=o,Z.value=!0,u.value=f.clientX,s.value=f.clientY}const Z=m(!1),u=m(0),s=m(0);function l(f){if(Z.value=!1,!!W.value){if(f==="pin"){y.togglePinned(W.value);return}if(f==="copy-id")ce(W.value);else if(f==="workspace"){const o=t.sessions.find(D=>D.id===W.value);me.value=W.value,_e.value=o?.workspace||"",he.value=!0}else if(f==="rename"){const o=t.sessions.find(D=>D.id===W.value);R.value=W.value,v.value=o?.title||"",h.value=!0,ge(()=>{z.value?.focus()})}}}function x(){Z.value=!1}async function J(){if(!(!R.value||!v.value.trim())){if(await Pn(R.value,v.value.trim())){const f=t.sessions.find(o=>o.id===R.value);f&&(f.title=v.value.trim()),t.activeSession?.id===R.value&&(t.activeSession.title=v.value.trim()),b.success(r("chat.renamed"))}else b.error(r("chat.renameFailed"));h.value=!1}}const he=m(!1),_e=m(""),me=m(null);async function dn(){if(me.value){if(await In(me.value,_e.value||null)){const f=t.sessions.find(o=>o.id===me.value);f&&(f.workspace=_e.value||null),t.activeSession?.id===me.value&&(t.activeSession.workspace=_e.value||null),b.success(r("chat.workspaceSet"))}else b.error(r("chat.workspaceSetFailed"));he.value=!1}}return(f,o)=>{const D=yn("RouterLink");return i(),a("div",hs,[$.value==="chat"?(i(),a("div",{key:0,class:q(["session-backdrop",{active:_.value}]),onClick:o[0]||(o[0]=C=>_.value=!1)},null,2)):g("",!0),$.value==="chat"?(i(),a("aside",{key:1,class:q(["session-list",{collapsed:!_.value}])},[e("div",_s,[_.value?(i(),a("span",fs,c(n(r)("chat.webUiSessions")),1)):g("",!0),e("div",ps,[e("button",{class:"session-close-btn",onClick:o[1]||(o[1]=C=>_.value=!1)},[...o[10]||(o[10]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),S(n(Y),{quaternary:"",size:"tiny",onClick:X,circle:""},{icon:I(()=>[...o[11]||(o[11]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),_:1})])]),_.value?(i(),a("div",ms,[e("span",null,c(n(r)("chat.sessionScopeHint")),1),S(D,{class:"session-scope-link",to:{name:"hermes.history"}},{default:I(()=>[H(c(n(r)("chat.openHistory")),1)]),_:1})])):g("",!0),_.value?(i(),a("div",gs,[n(t).isLoadingSessions&&n(t).sessions.length===0?(i(),a("div",ys,c(n(r)("common.loading")),1)):n(t).sessions.length===0?(i(),a("div",ws,c(n(r)("chat.noSessions")),1)):g("",!0),k.value.length>0?(i(),a(V,{key:2},[e("div",ks,[e("span",bs,c(n(r)("chat.pinned")),1),e("span",Ss,c(k.value.length),1)]),(i(!0),a(V,null,Q(k.value,C=>(i(),j(Fe,{key:`pinned-${C.id}`,session:C,active:C.id===n(t).activeSessionId,pinned:!0,"can-delete":C.id!==n(t).activeSessionId||n(t).sessions.length>1,streaming:n(t).isSessionLive(C.id),onSelect:N=>M(C.id),onContextmenu:N=>ve(N,C.id),onDelete:N=>de(C.id)},null,8,["session","active","can-delete","streaming","onSelect","onContextmenu","onDelete"]))),128))],64)):g("",!0),(i(!0),a(V,null,Q(U.value,C=>(i(),a(V,{key:C.source},[e("div",{class:"session-group-header",onClick:N=>K(C.source)},[(i(),a("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:q(["group-chevron",{collapsed:L.value.has(C.source)}])},[...o[12]||(o[12]=[e("polyline",{points:"9 18 15 12 9 6"},null,-1)])],2)),e("span",Cs,c(C.label),1),e("span",$s,c(C.sessions.length),1)],8,xs),L.value.has(C.source)?g("",!0):(i(!0),a(V,{key:0},Q(C.sessions,N=>(i(),j(Fe,{key:N.id,session:N,active:N.id===n(t).activeSessionId,pinned:!1,"can-delete":N.id!==n(t).activeSessionId||n(t).sessions.length>1,streaming:n(t).isSessionLive(N.id),onSelect:xe=>M(N.id),onContextmenu:xe=>ve(xe,N.id),onDelete:xe=>de(N.id)},null,8,["session","active","can-delete","streaming","onSelect","onContextmenu","onDelete"]))),128))],64))),128))])):g("",!0)],2)):g("",!0),S(n(bn),{placement:"bottom-start",trigger:"manual",x:u.value,y:s.value,options:pe.value,show:Z.value,onSelect:l,onClickoutside:x},null,8,["x","y","options","show"]),S(n(Te),{show:h.value,"onUpdate:show":o[3]||(o[3]=C=>h.value=C),preset:"dialog",title:n(r)("chat.renameSession"),"positive-text":n(r)("common.ok"),"negative-text":n(r)("common.cancel"),onPositiveClick:J},{default:I(()=>[S(n(pn),{ref_key:"renameInputRef",ref:z,value:v.value,"onUpdate:value":o[2]||(o[2]=C=>v.value=C),placeholder:n(r)("chat.enterNewTitle"),onKeydown:mn(J,["enter"])},null,8,["value","placeholder"])]),_:1},8,["show","title","positive-text","negative-text"]),S(n(Te),{show:he.value,"onUpdate:show":o[5]||(o[5]=C=>he.value=C),preset:"dialog",title:n(r)("chat.setWorkspaceTitle"),"positive-text":n(r)("common.ok"),"negative-text":n(r)("common.cancel"),style:{width:"520px"},onPositiveClick:dn},{default:I(()=>[S(Rn,{modelValue:_e.value,"onUpdate:modelValue":o[4]||(o[4]=C=>_e.value=C)},null,8,["modelValue"])]),_:1},8,["show","title","positive-text","negative-text"]),e("div",Ms,[e("header",Is,[e("div",Ps,[$.value==="chat"?(i(),j(n(Y),{key:0,quaternary:"",size:"small",onClick:o[6]||(o[6]=C=>_.value=!_.value),circle:""},{icon:I(()=>[...o[13]||(o[13]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("rect",{x:"3",y:"3",width:"7",height:"7"}),e("rect",{x:"14",y:"3",width:"7",height:"7"}),e("rect",{x:"3",y:"14",width:"7",height:"7"}),e("rect",{x:"14",y:"14",width:"7",height:"7"})],-1)])]),_:1})):g("",!0),e("span",Ts,c(ie.value),1),ue.value?(i(),a("span",Bs,c(n(we)(ue.value)),1)):g("",!0),n(t).activeSession?.workspace?(i(),a("span",{key:2,class:"workspace-badge",title:n(t).activeSession.workspace},"📁 "+c(n(t).activeSession.workspace.split("/").pop()||n(t).activeSession.workspace),9,Fs)):g("",!0)]),e("div",Rs,[$.value==="chat"?(i(),a(V,{key:0},[S(n(ye),{trigger:"hover"},{trigger:I(()=>[S(n(Y),{quaternary:"",size:"small",onClick:o[7]||(o[7]=C=>ce()),circle:""},{icon:I(()=>[...o[14]||(o[14]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),e("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),_:1})]),default:I(()=>[H(" "+c(n(r)("chat.copySessionId")),1)]),_:1}),S(n(Y),{size:"small",circle:P.value,onClick:X},{icon:I(()=>[...o[15]||(o[15]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:I(()=>[P.value?g("",!0):(i(),a(V,{key:0},[H(c(n(r)("chat.newChat")),1)],64))]),_:1},8,["circle"])],64)):g("",!0)])]),$.value==="chat"?(i(),a(V,{key:0},[S(en),S(Ys)],64)):(i(),j(Js,{key:1,"human-only":n(y).humanOnly},null,8,["human-only"]))]),e("div",Ls,[e("div",{class:"drawer-button",onClick:o[8]||(o[8]=C=>p.value=!0)},[...o[16]||(o[16]=[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),e("line",{x1:"9",y1:"3",x2:"9",y2:"21"}),e("line",{x1:"15",y1:"3",x2:"15",y2:"21"})],-1)])])]),S(ln,{show:p.value,"onUpdate:show":o[9]||(o[9]=C=>p.value=C),"active-tab":w.value},null,8,["show","active-tab"])])}}})})),Ti=T((()=>{})),un,Bi=T((()=>{Ds(),Ds(),Ti(),se(),un=ne(rn,[["__scopeId","data-v-7e31555f"]])})),As,cn,Os=T((()=>{ee(),Bi(),Hs(),Se(),Us(),As={class:"chat-view"},cn=te({__name:"ChatView",setup(A){const t=Ws(),y=be(),b=Me();return oe(async()=>{t.loadModels(),await b.fetchProfiles(),y.loadSessions()}),(r,p)=>(i(),a("div",As,[S(un)]))}})})),Fi=T((()=>{})),Ri,Li=T((()=>{Os(),Os(),Fi(),se(),Ri=ne(cn,[["__scopeId","data-v-6dae3628"]])}));Li();export{Ri as default};
@@ -1 +1 @@
1
- import{n as g}from"./rolldown-runtime-iJLb3ux7.js";import{$,A as E,G as te,It as m,K as Oe,L as pt,M as _t,N as ft,Nt as e,Ot as C,Q as O,R as M,S as vt,W as mt,X as y,Y as J,Z as R,_t as ht,a as wt,at as ae,b as Re,ct as gt,ft as b,g as V,j as ie,l as yt,lt as Ft,m as X,mt as Ke,nt as F,r as kt,rt as B,t as P,tt as x,ut as qe,x as bt,y as Ae,yt as h}from"./ui-vendor-CwabjOwn.js";import{d as Ct,n as U,r as L,u as xt}from"./vue-vendor-DN3TBS7r.js";import{i as Ve,o as St,r as Je,s as K}from"./router-nXWafNiW.js";import{n as q,t as A}from"./_plugin-vue_export-helper-JVWBimuG.js";import{Mi as $t,Ni as Tt,Pi as Et,t as Dt}from"./monaco-editor-ChpUf3z2.js";import{n as Mt,t as zt}from"./clipboard-D3SeHW1n.js";import{c as We,n as Bt,s as Xe,t as Pt}from"./MarkdownRenderer-eIZ6RPJa.js";async function Ge(i=""){const s=new URLSearchParams;i&&s.set("path",i);const t=s.toString();return K(`/api/hermes/files/list${t?`?${t}`:""}`)}async function se(i){return K(`/api/hermes/files/read?path=${encodeURIComponent(i)}`)}async function le(i,s){await K("/api/hermes/files/write",{method:"PUT",body:JSON.stringify({path:i,content:s})})}async function Ut(i,s=!1){await K("/api/hermes/files/delete",{method:"DELETE",body:JSON.stringify({path:i,recursive:s})})}async function Lt(i,s){await K("/api/hermes/files/rename",{method:"POST",body:JSON.stringify({oldPath:i,newPath:s})})}async function jt(i){await K("/api/hermes/files/mkdir",{method:"POST",body:JSON.stringify({path:i})})}async function It(i,s){await K("/api/hermes/files/copy",{method:"POST",body:JSON.stringify({srcPath:i,destPath:s})})}async function Nt(i,s){const t=Ve(),n=new FormData;for(const w of s)n.append("file",w);const a=new URLSearchParams;i&&a.set("path",i);const l=a.toString(),r=`${t}/api/hermes/files/upload${l?`?${l}`:""}`,c={},_=Je();_&&(c.Authorization=`Bearer ${_}`);const u=await fetch(r,{method:"POST",headers:c,body:n});if(!u.ok){const w=await u.json().catch(()=>({error:`HTTP ${u.status}`}));throw new Error(w.error||`Upload failed: ${u.status}`)}return(await u.json()).files}function Ot(i,s){const t=Ve(),n=new URLSearchParams({path:i});s&&n.set("name",s);const a=Je();return a&&n.set("token",a),`${t}/api/hermes/download?${n.toString()}`}var Y=g((()=>{St()}));function Rt(i){const s=i.split("/").pop()||"";return s==="Dockerfile"?"dockerfile":s==="Makefile"?"makefile":He["."+s.split(".").pop()?.toLowerCase()]||"plaintext"}function Q(i){const s=i.lastIndexOf(".");return s>=0?i.slice(s).toLowerCase():""}function Z(i){return Ye.has(Q(i))}function ee(i){const s=Q(i);return s===".md"||s===".markdown"}function H(i){return!new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".zip",".gz",".tar",".7z",".rar",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".mp3",".mp4",".wav",".webm",".avi",".mov",".exe",".dll",".so",".dylib",".bin",".dat",".db",".sqlite"]).has(Q(i))}function W(i,s,t){return!!(i===s||t&&i.startsWith(s+"/"))}var He,Ye,z,j=g((()=>{Ct(),M(),Y(),He={".js":"javascript",".jsx":"javascript",".ts":"typescript",".tsx":"typescript",".json":"json",".jsonc":"json",".html":"html",".htm":"html",".css":"css",".scss":"scss",".less":"less",".md":"markdown",".markdown":"markdown",".py":"python",".yaml":"yaml",".yml":"yaml",".xml":"xml",".sh":"shell",".bash":"shell",".zsh":"shell",".sql":"sql",".go":"go",".rs":"rust",".java":"java",".c":"c",".h":"c",".cpp":"cpp",".hpp":"cpp",".toml":"ini",".ini":"ini",".env":"ini",".vue":"html",".dockerfile":"dockerfile",".graphql":"graphql",".lua":"lua",".r":"r",".rb":"ruby",".php":"php",".swift":"swift",".kt":"kotlin"},Ye=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".bmp",".ico"]),z=xt("files",()=>{const i=C(""),s=C([]),t=C(!1),n=C("name"),a=C("asc"),l=C(null),r=C(null),c=J(()=>i.value?i.value.split("/").filter(Boolean):[]),_=J(()=>{const o=[...s.value];return o.sort((k,I)=>{if(k.isDir!==I.isDir)return k.isDir?-1:1;let N=0;switch(n.value){case"name":N=k.name.localeCompare(I.name);break;case"size":N=k.size-I.size;break;case"modTime":N=k.modTime.localeCompare(I.modTime);break}return a.value==="asc"?N:-N}),o});async function u(o){o!==void 0&&o!==i.value&&(r.value=null),o!==void 0&&(i.value=o),t.value=!0;try{s.value=(await Ge(i.value)).entries}catch(k){throw console.error("Failed to fetch files:",k),k}finally{t.value=!1}}function w(o){return u(o)}function S(){const o=i.value.split("/").filter(Boolean);return o.pop(),u(o.join("/"))}async function d(o){const k=await se(o);l.value={path:o,content:k.content,originalContent:k.content,language:Rt(o)}}async function p(){l.value&&(await le(l.value.path,l.value.content),l.value.originalContent=l.value.content)}function f(){l.value=null}async function D(o){if(Z(o.name))r.value={path:o.path,type:"image"};else if(ee(o.name)){const k=await se(o.path);r.value={path:o.path,type:"markdown",content:k.content}}}function T(){r.value=null}async function v(o){const k=i.value?`${i.value}/${o}`:o;await jt(k),await u()}async function G(o){const k=i.value?`${i.value}/${o}`:o;await le(k,""),await u()}async function ot(o){await Ut(o.path,o.isDir),r.value&&W(r.value.path,o.path,o.isDir)&&(r.value=null),l.value&&W(l.value.path,o.path,o.isDir)&&(l.value=null),await u()}async function rt(o,k){const I=o.path.includes("/")?o.path.slice(0,o.path.lastIndexOf("/")):"",N=I?`${I}/${k}`:k;await Lt(o.path,N),r.value&&W(r.value.path,o.path,o.isDir)&&(r.value=null),l.value&&W(l.value.path,o.path,o.isDir)&&(l.value=null),await u()}async function ut(o,k){await It(o.path,k),await u()}async function ct(o){await Nt(i.value,o),await u()}function dt(o){n.value===o?a.value=a.value==="asc"?"desc":"asc":(n.value=o,a.value="asc")}return{currentPath:i,entries:s,loading:t,sortBy:n,sortOrder:a,editingFile:l,previewFile:r,pathSegments:c,sortedEntries:_,hasUnsavedChanges:J(()=>l.value?l.value.content!==l.value.originalContent:!1),fetchEntries:u,navigateTo:w,navigateUp:S,openEditor:d,saveEditor:p,closeEditor:f,openPreview:D,closePreview:T,createDir:v,createFile:G,deleteEntry:ot,renameEntry:rt,copyEntry:ut,uploadFiles:ct,setSort:dt}})})),ne,Qe,oe=g((()=>{M(),P(),U(),j(),Y(),ne={class:"file-tree"},Qe=B({__name:"FileTree",setup(i){const{t:s}=L(),t=z(),n=C([]),a=C([]);async function l(u){try{return(await Ge(u)).entries.filter(w=>w.isDir).sort((w,S)=>w.name.localeCompare(S.name)).map(w=>({key:w.path,label:w.name,isLeaf:!1}))}catch{return[]}}async function r(u){u.children=await l(u.key)}function c(u){u.length>0&&(a.value=u,t.navigateTo(u[0]))}function _(){a.value=[],t.navigateTo("")}return qe(async()=>{n.value=await l("")}),(u,w)=>(b(),$("div",ne,[y("div",{class:"tree-header",onClick:_},[w[0]||(w[0]=y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},[y("path",{d:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),y("polyline",{points:"9 22 9 12 15 12 15 22"})],-1)),y("span",null,m(e(s)("files.breadcrumbRoot")),1)]),F(e(wt),{data:n.value,"selected-keys":a.value,"on-load":r,"expand-on-click":"","block-line":"","onUpdate:selectedKeys":c},null,8,["data","selected-keys"])]))}})})),Kt=g((()=>{})),qt,pa=g((()=>{oe(),oe(),Kt(),q(),qt=A(Qe,[["__scopeId","data-v-7f00b3bc"]])})),re,Ze,ue=g((()=>{M(),U(),P(),j(),re={class:"file-breadcrumb"},Ze=B({__name:"FileBreadcrumb",setup(i){const{t:s}=L(),t=z();function n(a){if(a<0)t.navigateTo("");else{const l=t.pathSegments.slice(0,a+1).join("/");t.navigateTo(l)}}return(a,l)=>(b(),$("div",re,[F(e(_t),null,{default:h(()=>[F(e(ie),{onClick:l[0]||(l[0]=r=>n(-1))},{default:h(()=>[x(m(e(s)("files.breadcrumbRoot")),1)]),_:1}),(b(!0),$(Oe,null,Ke(e(t).pathSegments,(r,c)=>(b(),R(e(ie),{key:c,onClick:_=>n(c)},{default:h(()=>[x(m(r),1)]),_:2},1032,["onClick"]))),128))]),_:1})]))}})})),At=g((()=>{})),Vt,_a=g((()=>{ue(),ue(),At(),q(),Vt=A(Ze,[["__scopeId","data-v-061302de"]])})),ce,et,de=g((()=>{M(),P(),U(),j(),ce={class:"file-toolbar"},et=B({__name:"FileToolbar",emits:["showNewFile","showNewFolder","showUpload"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=s;async function r(){try{await a.fetchEntries()}catch{n.error(t("files.backendError"))}}return(c,_)=>(b(),$("div",ce,[F(e(X),{size:8,wrap:!0,class:"toolbar-space"},{default:h(()=>[F(e(E),{size:"small",onClick:_[0]||(_[0]=u=>l("showNewFile")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.newFile")),1)]),_:1}),F(e(E),{size:"small",onClick:_[1]||(_[1]=u=>l("showNewFolder")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.newFolder")),1)]),_:1}),F(e(E),{size:"small",onClick:_[2]||(_[2]=u=>l("showUpload")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.upload")),1)]),_:1}),F(e(E),{size:"small",onClick:r,class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.refresh")),1)]),_:1})]),_:1})]))}})})),Jt=g((()=>{})),Wt,fa=g((()=>{de(),de(),Jt(),q(),Wt=A(et,[["__scopeId","data-v-ec79e90c"]])})),pe,_e,fe,ve,me,he,we,ge,ye,Fe,ke,be,tt,Ce=g((()=>{M(),P(),U(),j(),We(),pe={class:"file-list"},_e={key:1,class:"file-list-items"},fe={class:"file-list-header"},ve={key:0,class:"sort-indicator"},me={key:0,class:"sort-indicator"},he={key:0,class:"sort-indicator"},we=["onDblclick","onContextmenu"],ge={class:"file-name"},ye={class:"file-icon"},Fe={class:"file-size"},ke={class:"file-date"},be={class:"file-actions"},tt=B({__name:"FileList",emits:["contextmenu-entry"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=s;function r(d){if(d===0)return"—";const p=["B","KB","MB","GB"];let f=0,D=d;for(;D>=1024&&f<p.length-1;)D/=1024,f++;return`${D.toFixed(f===0?0:1)} ${p[f]}`}function c(d){return d?new Date(d).toLocaleString():"—"}function _(d){return d.isDir?"📁":{yaml:"⚙️",yml:"⚙️",json:"📋",toml:"⚙️",md:"📝",txt:"📄",log:"📄",py:"🐍",js:"📜",ts:"📜",vue:"💚",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",svg:"🖼️",webp:"🖼️",zip:"📦",gz:"📦",tar:"📦",sh:"⚡",bash:"⚡"}[d.name.split(".").pop()?.toLowerCase()||""]||"📄"}function u(d){d.isDir?a.navigateTo(d.path):H(d.name)?a.openEditor(d.path):(Z(d.name)||ee(d.name))&&a.openPreview(d)}function w(d,p){d.preventDefault(),l("contextmenu-entry",d,p)}async function S(d){try{await Xe(d.path,d.name)}catch(p){n.error(p.message||t("files.backendError"))}}return(d,p)=>(b(),$("div",pe,[F(e(yt),{show:e(a).loading},{default:h(()=>[!e(a).loading&&e(a).sortedEntries.length===0?(b(),R(e(pt),{key:0,description:e(t)("files.emptyDir")},null,8,["description"])):(b(),$("div",_e,[y("div",fe,[y("div",{class:"file-name sort-header",onClick:p[0]||(p[0]=f=>e(a).setSort("name"))},[x(m(e(t)("files.name"))+" ",1),e(a).sortBy==="name"?(b(),$("span",ve,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),y("div",{class:"file-size sort-header",onClick:p[1]||(p[1]=f=>e(a).setSort("size"))},[x(m(e(t)("files.size"))+" ",1),e(a).sortBy==="size"?(b(),$("span",me,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),y("div",{class:"file-date sort-header",onClick:p[2]||(p[2]=f=>e(a).setSort("modTime"))},[x(m(e(t)("files.modified"))+" ",1),e(a).sortBy==="modTime"?(b(),$("span",he,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),p[3]||(p[3]=y("div",{class:"file-actions-placeholder"},null,-1))]),(b(!0),$(Oe,null,Ke(e(a).sortedEntries,f=>(b(),$("div",{key:f.path,class:"file-list-row",onDblclick:D=>u(f),onContextmenu:D=>w(D,f)},[y("div",ge,[y("span",ye,m(_(f)),1),y("span",null,m(f.name),1)]),y("div",Fe,m(f.isDir?"—":r(f.size)),1),y("div",ke,m(c(f.modTime)),1),y("div",be,[e(H)(f.name)&&!f.isDir?(b(),R(e(E),{key:0,size:"tiny",quaternary:"",onClick:te(D=>e(a).openEditor(f.path),["stop"]),title:e(t)("files.edit")},{default:h(()=>[...p[4]||(p[4]=[x("✏️",-1)])]),_:1},8,["onClick","title"])):O("",!0),f.isDir?O("",!0):(b(),R(e(E),{key:1,size:"tiny",quaternary:"",onClick:te(D=>S(f),["stop"]),title:e(t)("files.download")},{default:h(()=>[...p[5]||(p[5]=[x("⬇️",-1)])]),_:1},8,["onClick","title"]))])],40,we))),128))]))]),_:1},8,["show"])]))}})})),Xt=g((()=>{})),Gt,va=g((()=>{Ce(),Ce(),Xt(),q(),Gt=A(tt,[["__scopeId","data-v-ab2593c7"]])})),at,xe=g((()=>{M(),P(),U(),j(),We(),Mt(),at=B({__name:"FileContextMenu",emits:["rename"],setup(i,{expose:s,emit:t}){const{t:n}=L(),a=V(),l=Re(),r=z(),c=C(!1),_=C(0),u=C(0),w=C(null),S=t;function d(T,v){w.value=v,_.value=T.clientX,u.value=T.clientY,c.value=!1,gt(()=>{c.value=!0})}function p(){const T=w.value;if(!T)return[];const v=[];return T.isDir?v.push({label:n("files.open"),key:"open"}):(H(T.name)&&v.push({label:n("files.edit"),key:"edit"}),(Z(T.name)||ee(T.name))&&v.push({label:n("files.preview"),key:"preview"}),v.push({label:n("files.download"),key:"download"})),v.push({type:"divider",key:"d1"}),v.push({label:n("files.copyPath"),key:"copyPath"}),v.push({label:n("files.rename"),key:"rename"}),v.push({type:"divider",key:"d2"}),v.push({label:n("files.delete"),key:"delete"}),v}async function f(T){c.value=!1;const v=w.value;if(v)switch(T){case"open":r.navigateTo(v.path);break;case"edit":try{await r.openEditor(v.path)}catch{a.error(n("files.backendError"))}break;case"preview":try{await r.openPreview(v)}catch{a.error(n("files.backendError"))}break;case"download":try{await Xe(v.path,v.name)}catch(G){a.error(G.message)}break;case"copyPath":await zt(v.path)?a.success(n("files.pathCopied")):a.error(n("files.pathCopied")+" ✗");break;case"rename":S("rename",v);break;case"delete":l.warning({title:n("files.delete"),content:v.isDir?n("files.confirmDeleteDir",{name:v.name}):n("files.confirmDelete",{name:v.name}),positiveText:n("common.delete"),negativeText:n("common.cancel"),onPositiveClick:async()=>{try{await r.deleteEntry(v),a.success(n("files.deleted"))}catch{a.error(n("files.deleteFailed"))}}});break}}function D(){c.value=!1}return s({show:d}),(T,v)=>(b(),R(e(bt),{show:c.value,x:_.value,y:u.value,options:p(),placement:"bottom-start",trigger:"manual",onSelect:f,onClickoutside:D},null,8,["show","x","y","options"]))}})})),Ht,ma=g((()=>{xe(),xe(),Ht=at})),Se,$e,Te,it,Ee=g((()=>{M(),P(),U(),j(),Dt(),Se={class:"file-editor"},$e={class:"editor-header"},Te={class:"editor-filename"},it=B({__name:"FileEditor",setup(i){self.MonacoEnvironment={getWorker(w,S){return new Worker(new URL("/assets/editor.worker-JF2IK1uK.js",""+import.meta.url),{type:"module"})}};const{t:s}=L(),t=V(),n=Re(),a=z(),l=C(null);let r=null;const c=C(!1);qe(()=>{!l.value||!a.editingFile||(r=Et.create(l.value,{value:a.editingFile.content,language:a.editingFile.language,theme:document.documentElement.classList.contains("dark")?"vs-dark":"vs",minimap:{enabled:!1},fontSize:13,lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,wordWrap:"on"}),r.onDidChangeModelContent(()=>{a.editingFile&&(a.editingFile.content=r.getValue())}),r.addCommand(Tt.CtrlCmd|$t.KeyS,()=>{_()}))}),Ft(()=>{r?.dispose(),r=null});async function _(){c.value=!0;try{await a.saveEditor(),t.success(s("files.saved"))}catch{t.error(s("files.saveFailed"))}finally{c.value=!1}}function u(){a.hasUnsavedChanges?n.warning({title:s("files.unsavedChanges"),positiveText:s("common.ok"),negativeText:s("common.cancel"),onPositiveClick:()=>{a.closeEditor()}}):a.closeEditor()}return(w,S)=>(b(),$("div",Se,[y("div",$e,[y("span",Te,m(e(a).editingFile?.path),1),F(e(X),null,{default:h(()=>[F(e(E),{size:"small",type:"primary",loading:c.value,onClick:_},{default:h(()=>[x(m(e(s)("files.saveFile")),1)]),_:1},8,["loading"]),F(e(E),{size:"small",onClick:u},{default:h(()=>[x(m(e(s)("files.closeEditor")),1)]),_:1})]),_:1})]),y("div",{ref_key:"editorContainer",ref:l,class:"editor-container"},null,512)]))}})})),Yt=g((()=>{})),Qt,ha=g((()=>{Ee(),Ee(),Yt(),q(),Qt=A(it,[["__scopeId","data-v-1ae26b53"]])})),De,Me,ze,Be,Pe,Ue,st,Le=g((()=>{M(),P(),U(),j(),Y(),Bt(),De={key:0,class:"file-preview"},Me={class:"preview-header"},ze={class:"preview-filename"},Be={class:"preview-content"},Pe=["src","alt"],Ue={key:1,class:"preview-markdown"},st=B({__name:"FilePreview",setup(i){const{t:s}=L(),t=z();function n(){return t.previewFile?Ot(t.previewFile.path):""}const a=()=>ae("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[ae("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})]);return(l,r)=>e(t).previewFile?(b(),$("div",De,[y("div",Me,[y("span",ze,m(e(t).previewFile.path),1),F(e(E),{size:"small",quaternary:"",onClick:r[0]||(r[0]=c=>e(t).closePreview())},{icon:h(()=>[F(e(vt),null,{default:h(()=>[F(a)]),_:1})]),default:h(()=>[x(" "+m(e(s)("files.closePreview")),1)]),_:1})]),y("div",Be,[e(t).previewFile.type==="image"?(b(),$("img",{key:0,src:n(),class:"preview-image",alt:e(t).previewFile.path},null,8,Pe)):e(t).previewFile.type==="markdown"?(b(),$("div",Ue,[F(Pt,{content:e(t).previewFile.content||""},null,8,["content"])])):O("",!0)])])):O("",!0)}})})),Zt=g((()=>{})),ea,wa=g((()=>{Le(),Le(),Zt(),q(),ea=A(st,[["__scopeId","data-v-a9f9eb37"]])})),je,lt,Ie=g((()=>{M(),P(),U(),j(),je={class:"upload-dragger"},lt=B({__name:"FileUploadModal",props:{show:{type:Boolean}},emits:["update:show"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=i,r=s,c=C(!1),_=C([]);function u(d){_.value=d.fileList.map(p=>p.file).filter(p=>p!=null)}async function w(){if(_.value.length!==0){c.value=!0;try{await a.uploadFiles(_.value),n.success(t("files.uploadSuccess",{count:_.value.length})),_.value=[],r("update:show",!1)}catch(d){n.error(d.message||t("files.uploadFailed"))}finally{c.value=!1}}}function S(){_.value=[],r("update:show",!1)}return(d,p)=>(b(),R(e(Ae),{show:l.show,preset:"dialog",title:e(t)("files.upload"),"onUpdate:show":S,style:{width:"500px"}},{action:h(()=>[F(e(X),null,{default:h(()=>[F(e(E),{onClick:S},{default:h(()=>[x(m(e(t)("common.cancel")),1)]),_:1}),F(e(E),{type:"primary",loading:c.value,disabled:_.value.length===0,onClick:w},{default:h(()=>[x(m(e(t)("files.upload"))+" ("+m(_.value.length)+") ",1)]),_:1},8,["loading","disabled"])]),_:1})]),default:h(()=>[F(e(kt),{multiple:"","directory-dnd":"","default-upload":!1,onChange:u},{default:h(()=>[y("div",je,[y("p",null,m(e(t)("files.dragDropHint")),1)])]),_:1})]),_:1},8,["show","title"]))}})})),ta=g((()=>{})),aa,ga=g((()=>{Ie(),Ie(),ta(),q(),aa=A(lt,[["__scopeId","data-v-e54e68b1"]])})),nt,Ne=g((()=>{M(),P(),U(),j(),nt=B({__name:"FileRenameModal",props:{show:{type:Boolean},mode:{},entry:{}},emits:["update:show"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=i,r=s,c=C(""),_=C(!1);ht(()=>l.show,d=>{d&&(l.mode==="rename"&&l.entry?c.value=l.entry.name:c.value="")});const u=J(()=>{switch(l.mode){case"newFile":return t("files.newFile");case"newFolder":return t("files.newFolder");case"rename":return t("files.rename")}}),w=J(()=>{switch(l.mode){case"newFile":return t("files.newFileName");case"newFolder":return t("files.newFolderName");case"rename":return t("files.renameTo")}});async function S(){if(c.value.trim()){_.value=!0;try{switch(l.mode){case"newFile":await a.createFile(c.value.trim()),n.success(t("files.created"));break;case"newFolder":await a.createDir(c.value.trim()),n.success(t("files.created"));break;case"rename":l.entry&&(await a.renameEntry(l.entry,c.value.trim()),n.success(t("files.renamed")));break}r("update:show",!1)}catch(d){const p=l.mode==="rename"?t("files.renameFailed"):t("files.createFailed");n.error(d.message||p)}finally{_.value=!1}}}return(d,p)=>(b(),R(e(Ae),{show:l.show,preset:"dialog",title:u.value,"onUpdate:show":p[2]||(p[2]=f=>r("update:show",!1)),style:{width:"400px"}},{action:h(()=>[F(e(X),null,{default:h(()=>[F(e(E),{onClick:p[1]||(p[1]=f=>r("update:show",!1))},{default:h(()=>[x(m(e(t)("common.cancel")),1)]),_:1}),F(e(E),{type:"primary",loading:_.value,disabled:!c.value.trim(),onClick:S},{default:h(()=>[x(m(e(t)("common.ok")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:h(()=>[F(e(ft),{value:c.value,"onUpdate:value":p[0]||(p[0]=f=>c.value=f),placeholder:w.value,onKeydown:mt(S,["enter"]),autofocus:""},null,8,["value","placeholder"])]),_:1},8,["show","title"]))}})})),ia,ya=g((()=>{Ne(),Ne(),ia=nt}));export{qt as _,ea as a,z as b,ha as c,Gt as d,va as f,_a as g,Vt as h,ga as i,Ht as l,fa as m,ya as n,wa as o,Wt as p,aa as r,Qt as s,ia as t,ma as u,pa as v,j as y};
1
+ import{n as g}from"./rolldown-runtime-iJLb3ux7.js";import{$,A as E,G as te,It as m,K as Oe,L as pt,M as _t,N as ft,Nt as e,Ot as C,Q as O,R as M,S as vt,W as mt,X as y,Y as J,Z as R,_t as ht,a as wt,at as ae,b as Re,ct as gt,ft as b,g as V,j as ie,l as yt,lt as Ft,m as X,mt as Ke,nt as F,r as kt,rt as B,t as P,tt as x,ut as qe,x as bt,y as Ae,yt as h}from"./ui-vendor-CwabjOwn.js";import{d as Ct,n as U,r as L,u as xt}from"./vue-vendor-DN3TBS7r.js";import{i as Ve,o as St,r as Je,s as K}from"./router-CdmwEnE9.js";import{n as q,t as A}from"./_plugin-vue_export-helper-JVWBimuG.js";import{Mi as $t,Ni as Tt,Pi as Et,t as Dt}from"./monaco-editor-ChpUf3z2.js";import{n as Mt,t as zt}from"./clipboard-D3SeHW1n.js";import{c as We,n as Bt,s as Xe,t as Pt}from"./MarkdownRenderer-WzQKCjLH.js";async function Ge(i=""){const s=new URLSearchParams;i&&s.set("path",i);const t=s.toString();return K(`/api/hermes/files/list${t?`?${t}`:""}`)}async function se(i){return K(`/api/hermes/files/read?path=${encodeURIComponent(i)}`)}async function le(i,s){await K("/api/hermes/files/write",{method:"PUT",body:JSON.stringify({path:i,content:s})})}async function Ut(i,s=!1){await K("/api/hermes/files/delete",{method:"DELETE",body:JSON.stringify({path:i,recursive:s})})}async function Lt(i,s){await K("/api/hermes/files/rename",{method:"POST",body:JSON.stringify({oldPath:i,newPath:s})})}async function jt(i){await K("/api/hermes/files/mkdir",{method:"POST",body:JSON.stringify({path:i})})}async function It(i,s){await K("/api/hermes/files/copy",{method:"POST",body:JSON.stringify({srcPath:i,destPath:s})})}async function Nt(i,s){const t=Ve(),n=new FormData;for(const w of s)n.append("file",w);const a=new URLSearchParams;i&&a.set("path",i);const l=a.toString(),r=`${t}/api/hermes/files/upload${l?`?${l}`:""}`,c={},_=Je();_&&(c.Authorization=`Bearer ${_}`);const u=await fetch(r,{method:"POST",headers:c,body:n});if(!u.ok){const w=await u.json().catch(()=>({error:`HTTP ${u.status}`}));throw new Error(w.error||`Upload failed: ${u.status}`)}return(await u.json()).files}function Ot(i,s){const t=Ve(),n=new URLSearchParams({path:i});s&&n.set("name",s);const a=Je();return a&&n.set("token",a),`${t}/api/hermes/download?${n.toString()}`}var Y=g((()=>{St()}));function Rt(i){const s=i.split("/").pop()||"";return s==="Dockerfile"?"dockerfile":s==="Makefile"?"makefile":He["."+s.split(".").pop()?.toLowerCase()]||"plaintext"}function Q(i){const s=i.lastIndexOf(".");return s>=0?i.slice(s).toLowerCase():""}function Z(i){return Ye.has(Q(i))}function ee(i){const s=Q(i);return s===".md"||s===".markdown"}function H(i){return!new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".zip",".gz",".tar",".7z",".rar",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".mp3",".mp4",".wav",".webm",".avi",".mov",".exe",".dll",".so",".dylib",".bin",".dat",".db",".sqlite"]).has(Q(i))}function W(i,s,t){return!!(i===s||t&&i.startsWith(s+"/"))}var He,Ye,z,j=g((()=>{Ct(),M(),Y(),He={".js":"javascript",".jsx":"javascript",".ts":"typescript",".tsx":"typescript",".json":"json",".jsonc":"json",".html":"html",".htm":"html",".css":"css",".scss":"scss",".less":"less",".md":"markdown",".markdown":"markdown",".py":"python",".yaml":"yaml",".yml":"yaml",".xml":"xml",".sh":"shell",".bash":"shell",".zsh":"shell",".sql":"sql",".go":"go",".rs":"rust",".java":"java",".c":"c",".h":"c",".cpp":"cpp",".hpp":"cpp",".toml":"ini",".ini":"ini",".env":"ini",".vue":"html",".dockerfile":"dockerfile",".graphql":"graphql",".lua":"lua",".r":"r",".rb":"ruby",".php":"php",".swift":"swift",".kt":"kotlin"},Ye=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".bmp",".ico"]),z=xt("files",()=>{const i=C(""),s=C([]),t=C(!1),n=C("name"),a=C("asc"),l=C(null),r=C(null),c=J(()=>i.value?i.value.split("/").filter(Boolean):[]),_=J(()=>{const o=[...s.value];return o.sort((k,I)=>{if(k.isDir!==I.isDir)return k.isDir?-1:1;let N=0;switch(n.value){case"name":N=k.name.localeCompare(I.name);break;case"size":N=k.size-I.size;break;case"modTime":N=k.modTime.localeCompare(I.modTime);break}return a.value==="asc"?N:-N}),o});async function u(o){o!==void 0&&o!==i.value&&(r.value=null),o!==void 0&&(i.value=o),t.value=!0;try{s.value=(await Ge(i.value)).entries}catch(k){throw console.error("Failed to fetch files:",k),k}finally{t.value=!1}}function w(o){return u(o)}function S(){const o=i.value.split("/").filter(Boolean);return o.pop(),u(o.join("/"))}async function d(o){const k=await se(o);l.value={path:o,content:k.content,originalContent:k.content,language:Rt(o)}}async function p(){l.value&&(await le(l.value.path,l.value.content),l.value.originalContent=l.value.content)}function f(){l.value=null}async function D(o){if(Z(o.name))r.value={path:o.path,type:"image"};else if(ee(o.name)){const k=await se(o.path);r.value={path:o.path,type:"markdown",content:k.content}}}function T(){r.value=null}async function v(o){const k=i.value?`${i.value}/${o}`:o;await jt(k),await u()}async function G(o){const k=i.value?`${i.value}/${o}`:o;await le(k,""),await u()}async function ot(o){await Ut(o.path,o.isDir),r.value&&W(r.value.path,o.path,o.isDir)&&(r.value=null),l.value&&W(l.value.path,o.path,o.isDir)&&(l.value=null),await u()}async function rt(o,k){const I=o.path.includes("/")?o.path.slice(0,o.path.lastIndexOf("/")):"",N=I?`${I}/${k}`:k;await Lt(o.path,N),r.value&&W(r.value.path,o.path,o.isDir)&&(r.value=null),l.value&&W(l.value.path,o.path,o.isDir)&&(l.value=null),await u()}async function ut(o,k){await It(o.path,k),await u()}async function ct(o){await Nt(i.value,o),await u()}function dt(o){n.value===o?a.value=a.value==="asc"?"desc":"asc":(n.value=o,a.value="asc")}return{currentPath:i,entries:s,loading:t,sortBy:n,sortOrder:a,editingFile:l,previewFile:r,pathSegments:c,sortedEntries:_,hasUnsavedChanges:J(()=>l.value?l.value.content!==l.value.originalContent:!1),fetchEntries:u,navigateTo:w,navigateUp:S,openEditor:d,saveEditor:p,closeEditor:f,openPreview:D,closePreview:T,createDir:v,createFile:G,deleteEntry:ot,renameEntry:rt,copyEntry:ut,uploadFiles:ct,setSort:dt}})})),ne,Qe,oe=g((()=>{M(),P(),U(),j(),Y(),ne={class:"file-tree"},Qe=B({__name:"FileTree",setup(i){const{t:s}=L(),t=z(),n=C([]),a=C([]);async function l(u){try{return(await Ge(u)).entries.filter(w=>w.isDir).sort((w,S)=>w.name.localeCompare(S.name)).map(w=>({key:w.path,label:w.name,isLeaf:!1}))}catch{return[]}}async function r(u){u.children=await l(u.key)}function c(u){u.length>0&&(a.value=u,t.navigateTo(u[0]))}function _(){a.value=[],t.navigateTo("")}return qe(async()=>{n.value=await l("")}),(u,w)=>(b(),$("div",ne,[y("div",{class:"tree-header",onClick:_},[w[0]||(w[0]=y("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},[y("path",{d:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),y("polyline",{points:"9 22 9 12 15 12 15 22"})],-1)),y("span",null,m(e(s)("files.breadcrumbRoot")),1)]),F(e(wt),{data:n.value,"selected-keys":a.value,"on-load":r,"expand-on-click":"","block-line":"","onUpdate:selectedKeys":c},null,8,["data","selected-keys"])]))}})})),Kt=g((()=>{})),qt,pa=g((()=>{oe(),oe(),Kt(),q(),qt=A(Qe,[["__scopeId","data-v-7f00b3bc"]])})),re,Ze,ue=g((()=>{M(),U(),P(),j(),re={class:"file-breadcrumb"},Ze=B({__name:"FileBreadcrumb",setup(i){const{t:s}=L(),t=z();function n(a){if(a<0)t.navigateTo("");else{const l=t.pathSegments.slice(0,a+1).join("/");t.navigateTo(l)}}return(a,l)=>(b(),$("div",re,[F(e(_t),null,{default:h(()=>[F(e(ie),{onClick:l[0]||(l[0]=r=>n(-1))},{default:h(()=>[x(m(e(s)("files.breadcrumbRoot")),1)]),_:1}),(b(!0),$(Oe,null,Ke(e(t).pathSegments,(r,c)=>(b(),R(e(ie),{key:c,onClick:_=>n(c)},{default:h(()=>[x(m(r),1)]),_:2},1032,["onClick"]))),128))]),_:1})]))}})})),At=g((()=>{})),Vt,_a=g((()=>{ue(),ue(),At(),q(),Vt=A(Ze,[["__scopeId","data-v-061302de"]])})),ce,et,de=g((()=>{M(),P(),U(),j(),ce={class:"file-toolbar"},et=B({__name:"FileToolbar",emits:["showNewFile","showNewFolder","showUpload"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=s;async function r(){try{await a.fetchEntries()}catch{n.error(t("files.backendError"))}}return(c,_)=>(b(),$("div",ce,[F(e(X),{size:8,wrap:!0,class:"toolbar-space"},{default:h(()=>[F(e(E),{size:"small",onClick:_[0]||(_[0]=u=>l("showNewFile")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.newFile")),1)]),_:1}),F(e(E),{size:"small",onClick:_[1]||(_[1]=u=>l("showNewFolder")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.newFolder")),1)]),_:1}),F(e(E),{size:"small",onClick:_[2]||(_[2]=u=>l("showUpload")),class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.upload")),1)]),_:1}),F(e(E),{size:"small",onClick:r,class:"toolbar-btn"},{default:h(()=>[x(m(e(t)("files.refresh")),1)]),_:1})]),_:1})]))}})})),Jt=g((()=>{})),Wt,fa=g((()=>{de(),de(),Jt(),q(),Wt=A(et,[["__scopeId","data-v-ec79e90c"]])})),pe,_e,fe,ve,me,he,we,ge,ye,Fe,ke,be,tt,Ce=g((()=>{M(),P(),U(),j(),We(),pe={class:"file-list"},_e={key:1,class:"file-list-items"},fe={class:"file-list-header"},ve={key:0,class:"sort-indicator"},me={key:0,class:"sort-indicator"},he={key:0,class:"sort-indicator"},we=["onDblclick","onContextmenu"],ge={class:"file-name"},ye={class:"file-icon"},Fe={class:"file-size"},ke={class:"file-date"},be={class:"file-actions"},tt=B({__name:"FileList",emits:["contextmenu-entry"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=s;function r(d){if(d===0)return"—";const p=["B","KB","MB","GB"];let f=0,D=d;for(;D>=1024&&f<p.length-1;)D/=1024,f++;return`${D.toFixed(f===0?0:1)} ${p[f]}`}function c(d){return d?new Date(d).toLocaleString():"—"}function _(d){return d.isDir?"📁":{yaml:"⚙️",yml:"⚙️",json:"📋",toml:"⚙️",md:"📝",txt:"📄",log:"📄",py:"🐍",js:"📜",ts:"📜",vue:"💚",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",svg:"🖼️",webp:"🖼️",zip:"📦",gz:"📦",tar:"📦",sh:"⚡",bash:"⚡"}[d.name.split(".").pop()?.toLowerCase()||""]||"📄"}function u(d){d.isDir?a.navigateTo(d.path):H(d.name)?a.openEditor(d.path):(Z(d.name)||ee(d.name))&&a.openPreview(d)}function w(d,p){d.preventDefault(),l("contextmenu-entry",d,p)}async function S(d){try{await Xe(d.path,d.name)}catch(p){n.error(p.message||t("files.backendError"))}}return(d,p)=>(b(),$("div",pe,[F(e(yt),{show:e(a).loading},{default:h(()=>[!e(a).loading&&e(a).sortedEntries.length===0?(b(),R(e(pt),{key:0,description:e(t)("files.emptyDir")},null,8,["description"])):(b(),$("div",_e,[y("div",fe,[y("div",{class:"file-name sort-header",onClick:p[0]||(p[0]=f=>e(a).setSort("name"))},[x(m(e(t)("files.name"))+" ",1),e(a).sortBy==="name"?(b(),$("span",ve,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),y("div",{class:"file-size sort-header",onClick:p[1]||(p[1]=f=>e(a).setSort("size"))},[x(m(e(t)("files.size"))+" ",1),e(a).sortBy==="size"?(b(),$("span",me,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),y("div",{class:"file-date sort-header",onClick:p[2]||(p[2]=f=>e(a).setSort("modTime"))},[x(m(e(t)("files.modified"))+" ",1),e(a).sortBy==="modTime"?(b(),$("span",he,m(e(a).sortOrder==="asc"?"↑":"↓"),1)):O("",!0)]),p[3]||(p[3]=y("div",{class:"file-actions-placeholder"},null,-1))]),(b(!0),$(Oe,null,Ke(e(a).sortedEntries,f=>(b(),$("div",{key:f.path,class:"file-list-row",onDblclick:D=>u(f),onContextmenu:D=>w(D,f)},[y("div",ge,[y("span",ye,m(_(f)),1),y("span",null,m(f.name),1)]),y("div",Fe,m(f.isDir?"—":r(f.size)),1),y("div",ke,m(c(f.modTime)),1),y("div",be,[e(H)(f.name)&&!f.isDir?(b(),R(e(E),{key:0,size:"tiny",quaternary:"",onClick:te(D=>e(a).openEditor(f.path),["stop"]),title:e(t)("files.edit")},{default:h(()=>[...p[4]||(p[4]=[x("✏️",-1)])]),_:1},8,["onClick","title"])):O("",!0),f.isDir?O("",!0):(b(),R(e(E),{key:1,size:"tiny",quaternary:"",onClick:te(D=>S(f),["stop"]),title:e(t)("files.download")},{default:h(()=>[...p[5]||(p[5]=[x("⬇️",-1)])]),_:1},8,["onClick","title"]))])],40,we))),128))]))]),_:1},8,["show"])]))}})})),Xt=g((()=>{})),Gt,va=g((()=>{Ce(),Ce(),Xt(),q(),Gt=A(tt,[["__scopeId","data-v-ab2593c7"]])})),at,xe=g((()=>{M(),P(),U(),j(),We(),Mt(),at=B({__name:"FileContextMenu",emits:["rename"],setup(i,{expose:s,emit:t}){const{t:n}=L(),a=V(),l=Re(),r=z(),c=C(!1),_=C(0),u=C(0),w=C(null),S=t;function d(T,v){w.value=v,_.value=T.clientX,u.value=T.clientY,c.value=!1,gt(()=>{c.value=!0})}function p(){const T=w.value;if(!T)return[];const v=[];return T.isDir?v.push({label:n("files.open"),key:"open"}):(H(T.name)&&v.push({label:n("files.edit"),key:"edit"}),(Z(T.name)||ee(T.name))&&v.push({label:n("files.preview"),key:"preview"}),v.push({label:n("files.download"),key:"download"})),v.push({type:"divider",key:"d1"}),v.push({label:n("files.copyPath"),key:"copyPath"}),v.push({label:n("files.rename"),key:"rename"}),v.push({type:"divider",key:"d2"}),v.push({label:n("files.delete"),key:"delete"}),v}async function f(T){c.value=!1;const v=w.value;if(v)switch(T){case"open":r.navigateTo(v.path);break;case"edit":try{await r.openEditor(v.path)}catch{a.error(n("files.backendError"))}break;case"preview":try{await r.openPreview(v)}catch{a.error(n("files.backendError"))}break;case"download":try{await Xe(v.path,v.name)}catch(G){a.error(G.message)}break;case"copyPath":await zt(v.path)?a.success(n("files.pathCopied")):a.error(n("files.pathCopied")+" ✗");break;case"rename":S("rename",v);break;case"delete":l.warning({title:n("files.delete"),content:v.isDir?n("files.confirmDeleteDir",{name:v.name}):n("files.confirmDelete",{name:v.name}),positiveText:n("common.delete"),negativeText:n("common.cancel"),onPositiveClick:async()=>{try{await r.deleteEntry(v),a.success(n("files.deleted"))}catch{a.error(n("files.deleteFailed"))}}});break}}function D(){c.value=!1}return s({show:d}),(T,v)=>(b(),R(e(bt),{show:c.value,x:_.value,y:u.value,options:p(),placement:"bottom-start",trigger:"manual",onSelect:f,onClickoutside:D},null,8,["show","x","y","options"]))}})})),Ht,ma=g((()=>{xe(),xe(),Ht=at})),Se,$e,Te,it,Ee=g((()=>{M(),P(),U(),j(),Dt(),Se={class:"file-editor"},$e={class:"editor-header"},Te={class:"editor-filename"},it=B({__name:"FileEditor",setup(i){self.MonacoEnvironment={getWorker(w,S){return new Worker(new URL("/assets/editor.worker-JF2IK1uK.js",""+import.meta.url),{type:"module"})}};const{t:s}=L(),t=V(),n=Re(),a=z(),l=C(null);let r=null;const c=C(!1);qe(()=>{!l.value||!a.editingFile||(r=Et.create(l.value,{value:a.editingFile.content,language:a.editingFile.language,theme:document.documentElement.classList.contains("dark")?"vs-dark":"vs",minimap:{enabled:!1},fontSize:13,lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,wordWrap:"on"}),r.onDidChangeModelContent(()=>{a.editingFile&&(a.editingFile.content=r.getValue())}),r.addCommand(Tt.CtrlCmd|$t.KeyS,()=>{_()}))}),Ft(()=>{r?.dispose(),r=null});async function _(){c.value=!0;try{await a.saveEditor(),t.success(s("files.saved"))}catch{t.error(s("files.saveFailed"))}finally{c.value=!1}}function u(){a.hasUnsavedChanges?n.warning({title:s("files.unsavedChanges"),positiveText:s("common.ok"),negativeText:s("common.cancel"),onPositiveClick:()=>{a.closeEditor()}}):a.closeEditor()}return(w,S)=>(b(),$("div",Se,[y("div",$e,[y("span",Te,m(e(a).editingFile?.path),1),F(e(X),null,{default:h(()=>[F(e(E),{size:"small",type:"primary",loading:c.value,onClick:_},{default:h(()=>[x(m(e(s)("files.saveFile")),1)]),_:1},8,["loading"]),F(e(E),{size:"small",onClick:u},{default:h(()=>[x(m(e(s)("files.closeEditor")),1)]),_:1})]),_:1})]),y("div",{ref_key:"editorContainer",ref:l,class:"editor-container"},null,512)]))}})})),Yt=g((()=>{})),Qt,ha=g((()=>{Ee(),Ee(),Yt(),q(),Qt=A(it,[["__scopeId","data-v-1ae26b53"]])})),De,Me,ze,Be,Pe,Ue,st,Le=g((()=>{M(),P(),U(),j(),Y(),Bt(),De={key:0,class:"file-preview"},Me={class:"preview-header"},ze={class:"preview-filename"},Be={class:"preview-content"},Pe=["src","alt"],Ue={key:1,class:"preview-markdown"},st=B({__name:"FilePreview",setup(i){const{t:s}=L(),t=z();function n(){return t.previewFile?Ot(t.previewFile.path):""}const a=()=>ae("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[ae("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})]);return(l,r)=>e(t).previewFile?(b(),$("div",De,[y("div",Me,[y("span",ze,m(e(t).previewFile.path),1),F(e(E),{size:"small",quaternary:"",onClick:r[0]||(r[0]=c=>e(t).closePreview())},{icon:h(()=>[F(e(vt),null,{default:h(()=>[F(a)]),_:1})]),default:h(()=>[x(" "+m(e(s)("files.closePreview")),1)]),_:1})]),y("div",Be,[e(t).previewFile.type==="image"?(b(),$("img",{key:0,src:n(),class:"preview-image",alt:e(t).previewFile.path},null,8,Pe)):e(t).previewFile.type==="markdown"?(b(),$("div",Ue,[F(Pt,{content:e(t).previewFile.content||""},null,8,["content"])])):O("",!0)])])):O("",!0)}})})),Zt=g((()=>{})),ea,wa=g((()=>{Le(),Le(),Zt(),q(),ea=A(st,[["__scopeId","data-v-a9f9eb37"]])})),je,lt,Ie=g((()=>{M(),P(),U(),j(),je={class:"upload-dragger"},lt=B({__name:"FileUploadModal",props:{show:{type:Boolean}},emits:["update:show"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=i,r=s,c=C(!1),_=C([]);function u(d){_.value=d.fileList.map(p=>p.file).filter(p=>p!=null)}async function w(){if(_.value.length!==0){c.value=!0;try{await a.uploadFiles(_.value),n.success(t("files.uploadSuccess",{count:_.value.length})),_.value=[],r("update:show",!1)}catch(d){n.error(d.message||t("files.uploadFailed"))}finally{c.value=!1}}}function S(){_.value=[],r("update:show",!1)}return(d,p)=>(b(),R(e(Ae),{show:l.show,preset:"dialog",title:e(t)("files.upload"),"onUpdate:show":S,style:{width:"500px"}},{action:h(()=>[F(e(X),null,{default:h(()=>[F(e(E),{onClick:S},{default:h(()=>[x(m(e(t)("common.cancel")),1)]),_:1}),F(e(E),{type:"primary",loading:c.value,disabled:_.value.length===0,onClick:w},{default:h(()=>[x(m(e(t)("files.upload"))+" ("+m(_.value.length)+") ",1)]),_:1},8,["loading","disabled"])]),_:1})]),default:h(()=>[F(e(kt),{multiple:"","directory-dnd":"","default-upload":!1,onChange:u},{default:h(()=>[y("div",je,[y("p",null,m(e(t)("files.dragDropHint")),1)])]),_:1})]),_:1},8,["show","title"]))}})})),ta=g((()=>{})),aa,ga=g((()=>{Ie(),Ie(),ta(),q(),aa=A(lt,[["__scopeId","data-v-e54e68b1"]])})),nt,Ne=g((()=>{M(),P(),U(),j(),nt=B({__name:"FileRenameModal",props:{show:{type:Boolean},mode:{},entry:{}},emits:["update:show"],setup(i,{emit:s}){const{t}=L(),n=V(),a=z(),l=i,r=s,c=C(""),_=C(!1);ht(()=>l.show,d=>{d&&(l.mode==="rename"&&l.entry?c.value=l.entry.name:c.value="")});const u=J(()=>{switch(l.mode){case"newFile":return t("files.newFile");case"newFolder":return t("files.newFolder");case"rename":return t("files.rename")}}),w=J(()=>{switch(l.mode){case"newFile":return t("files.newFileName");case"newFolder":return t("files.newFolderName");case"rename":return t("files.renameTo")}});async function S(){if(c.value.trim()){_.value=!0;try{switch(l.mode){case"newFile":await a.createFile(c.value.trim()),n.success(t("files.created"));break;case"newFolder":await a.createDir(c.value.trim()),n.success(t("files.created"));break;case"rename":l.entry&&(await a.renameEntry(l.entry,c.value.trim()),n.success(t("files.renamed")));break}r("update:show",!1)}catch(d){const p=l.mode==="rename"?t("files.renameFailed"):t("files.createFailed");n.error(d.message||p)}finally{_.value=!1}}}return(d,p)=>(b(),R(e(Ae),{show:l.show,preset:"dialog",title:u.value,"onUpdate:show":p[2]||(p[2]=f=>r("update:show",!1)),style:{width:"400px"}},{action:h(()=>[F(e(X),null,{default:h(()=>[F(e(E),{onClick:p[1]||(p[1]=f=>r("update:show",!1))},{default:h(()=>[x(m(e(t)("common.cancel")),1)]),_:1}),F(e(E),{type:"primary",loading:_.value,disabled:!c.value.trim(),onClick:S},{default:h(()=>[x(m(e(t)("common.ok")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:h(()=>[F(e(ft),{value:c.value,"onUpdate:value":p[0]||(p[0]=f=>c.value=f),placeholder:w.value,onKeydown:mt(S,["enter"]),autofocus:""},null,8,["value","placeholder"])]),_:1},8,["show","title"]))}})})),ia,ya=g((()=>{Ne(),Ne(),ia=nt}));export{qt as _,ea as a,z as b,ha as c,Gt as d,va as f,_a as g,Vt as h,ga as i,Ht as l,fa as m,ya as n,wa as o,Wt as p,aa as r,Qt as s,ia as t,ma as u,pa as v,j as y};
@@ -1 +1 @@
1
- import{n as f}from"./rolldown-runtime-iJLb3ux7.js";import{$ as k,Nt as F,Ot as a,R as N,X as d,Z as v,ft as u,nt as l,rt as S,ut as b}from"./ui-vendor-CwabjOwn.js";import{n as B,t as E}from"./_plugin-vue_export-helper-JVWBimuG.js";import{_ as U,a as C,b as T,c as L,d as P,f as $,g as I,h as O,i as X,l as Z,m as j,n as q,o as z,p as A,r as D,s as G,t as H,u as J,v as K,y as Q}from"./FileRenameModal-DViZv3Vv.js";var w,m,c,h,M,y=f((()=>{N(),Q(),K(),I(),j(),$(),J(),L(),z(),X(),q(),w={class:"files-view"},m={class:"files-tree-panel"},c={class:"files-main-panel"},h={class:"files-content"},M=S({__name:"FilesView",setup(le){const _=T(),p=a(null),r=a(!1),t=a(!1),i=a("newFile"),n=a(null);function x(s,e){p.value?.show(s,e)}function R(){i.value="newFile",n.value=null,t.value=!0}function V(){i.value="newFolder",n.value=null,t.value=!0}function g(s){i.value="rename",n.value=s,t.value=!0}return b(()=>{_.fetchEntries("")}),(s,e)=>(u(),k("div",w,[d("div",m,[l(U)]),d("div",c,[l(A,{onShowNewFile:R,onShowNewFolder:V,onShowUpload:e[0]||(e[0]=o=>r.value=!0)}),l(O),d("div",h,[F(_).editingFile?(u(),v(G,{key:0})):F(_).previewFile?(u(),v(C,{key:1})):(u(),v(P,{key:2,onContextmenuEntry:x}))])]),l(Z,{ref_key:"contextMenuRef",ref:p,onRename:g},null,512),l(D,{show:r.value,"onUpdate:show":e[1]||(e[1]=o=>r.value=o)},null,8,["show"]),l(H,{show:t.value,"onUpdate:show":e[2]||(e[2]=o=>t.value=o),mode:i.value,entry:n.value},null,8,["show","mode","entry"])]))}})})),W=f((()=>{})),Y,ee=f((()=>{y(),y(),W(),B(),Y=E(M,[["__scopeId","data-v-4513759a"]])}));ee();export{Y as default};
1
+ import{n as f}from"./rolldown-runtime-iJLb3ux7.js";import{$ as k,Nt as F,Ot as a,R as N,X as d,Z as v,ft as u,nt as l,rt as S,ut as b}from"./ui-vendor-CwabjOwn.js";import{n as B,t as E}from"./_plugin-vue_export-helper-JVWBimuG.js";import{_ as U,a as C,b as T,c as L,d as P,f as $,g as I,h as O,i as X,l as Z,m as j,n as q,o as z,p as A,r as D,s as G,t as H,u as J,v as K,y as Q}from"./FileRenameModal-B-3uRS-J.js";var w,m,c,h,M,y=f((()=>{N(),Q(),K(),I(),j(),$(),J(),L(),z(),X(),q(),w={class:"files-view"},m={class:"files-tree-panel"},c={class:"files-main-panel"},h={class:"files-content"},M=S({__name:"FilesView",setup(le){const _=T(),p=a(null),r=a(!1),t=a(!1),i=a("newFile"),n=a(null);function x(s,e){p.value?.show(s,e)}function R(){i.value="newFile",n.value=null,t.value=!0}function V(){i.value="newFolder",n.value=null,t.value=!0}function g(s){i.value="rename",n.value=s,t.value=!0}return b(()=>{_.fetchEntries("")}),(s,e)=>(u(),k("div",w,[d("div",m,[l(U)]),d("div",c,[l(A,{onShowNewFile:R,onShowNewFolder:V,onShowUpload:e[0]||(e[0]=o=>r.value=!0)}),l(O),d("div",h,[F(_).editingFile?(u(),v(G,{key:0})):F(_).previewFile?(u(),v(C,{key:1})):(u(),v(P,{key:2,onContextmenuEntry:x}))])]),l(Z,{ref_key:"contextMenuRef",ref:p,onRename:g},null,512),l(D,{show:r.value,"onUpdate:show":e[1]||(e[1]=o=>r.value=o)},null,8,["show"]),l(H,{show:t.value,"onUpdate:show":e[2]||(e[2]=o=>t.value=o),mode:i.value,entry:n.value},null,8,["show","mode","entry"])]))}})})),W=f((()=>{})),Y,ee=f((()=>{y(),y(),W(),B(),Y=E(M,[["__scopeId","data-v-4513759a"]])}));ee();export{Y as default};
@@ -1 +1 @@
1
- import{n as d}from"./rolldown-runtime-iJLb3ux7.js";import{$ as l,A as M,F as P,It as o,K as b,Nt as s,Ot as g,Q as F,R as z,X as _,ft as u,g as j,l as q,mt as E,nt as p,rt as K,t as L,tt as m,ut as Q,yt as f}from"./ui-vendor-CwabjOwn.js";import{d as R,n as X,r as H,u as J}from"./vue-vendor-DN3TBS7r.js";import{o as U,s as w}from"./router-nXWafNiW.js";import{n as W,t as Y}from"./_plugin-vue_export-helper-JVWBimuG.js";async function Z(){return(await w("/api/hermes/gateways")).gateways}async function aa(i){return(await w(`/api/hermes/gateways/${i}/start`,{method:"POST"})).gateway}async function ea(i){await w(`/api/hermes/gateways/${i}/stop`,{method:"POST"})}var ta=d((()=>{U()})),A,sa=d((()=>{R(),z(),ta(),A=J("gateways",()=>{const i=g([]),e=g(!1);async function c(){e.value=!0;try{const t=await Z();i.value=Array.isArray(t)?t:Object.values(t||{})}finally{e.value=!1}}async function r(t){e.value=!0;try{const n=await aa(t),a=i.value.findIndex(v=>v.profile===t);a>=0?i.value[a]=n:i.value.push(n)}finally{e.value=!1}}async function y(t){e.value=!0;try{await ea(t);const n=i.value.find(a=>a.profile===t);n&&(n.running=!1,n.pid=void 0)}finally{e.value=!1}}return{gateways:i,loading:e,fetchStatus:c,start:r,stop:y}})})),h,G,V,x,S,$,k,C,I,N,T,B,D,O=d((()=>{z(),L(),X(),sa(),h={class:"gateways-view"},G={class:"page-header"},V={class:"header-title"},x={class:"gateways-content"},S={key:0,class:"empty-state"},$={key:1,class:"gateway-list"},k={class:"gateway-info"},C={class:"gateway-name"},I={class:"gateway-meta"},N={class:"meta-item"},T={key:0,class:"meta-item"},B={class:"gateway-actions"},D=K({__name:"GatewaysView",setup(i){const{t:e}=H(),c=j(),r=A();Q(()=>{r.fetchStatus()});async function y(t,n){try{n?(await r.stop(t),c.success(`${e("gateways.stopped")}: ${t}`)):(await r.start(t),c.success(`${e("gateways.started")}: ${t}`))}catch(a){c.error(a.message)}}return(t,n)=>(u(),l("div",h,[_("header",G,[_("h2",V,o(s(e)("gateways.title")),1)]),_("div",x,[p(s(q),{show:s(r).loading,size:"large"},{default:f(()=>[s(r).gateways.length===0?(u(),l("div",S,o(s(e)("common.noData")),1)):(u(),l("div",$,[(u(!0),l(b,null,E(s(r).gateways,a=>(u(),l("div",{key:a.profile,class:"gateway-card"},[_("div",k,[_("div",C,o(a.profile),1),_("div",I,[_("span",N,o(a.host)+":"+o(a.port),1),a.pid?(u(),l("span",T,"PID: "+o(a.pid),1)):F("",!0)])]),_("div",B,[p(s(P),{type:a.running?"success":"default",size:"small",round:""},{default:f(()=>[m(o(a.running?s(e)("gateways.running"):s(e)("gateways.stopped")),1)]),_:2},1032,["type"]),p(s(M),{size:"small",type:a.running?"warning":"primary",round:"",onClick:v=>y(a.profile,a.running)},{default:f(()=>[m(o(a.running?s(e)("common.stop"):s(e)("common.start")),1)]),_:2},1032,["type","onClick"])])]))),128))]))]),_:1},8,["show"])])]))}})})),ia=d((()=>{})),na,ra=d((()=>{O(),O(),ia(),W(),na=Y(D,[["__scopeId","data-v-d70aa8a3"]])}));ra();export{na as default};
1
+ import{n as d}from"./rolldown-runtime-iJLb3ux7.js";import{$ as l,A as M,F as P,It as o,K as b,Nt as s,Ot as g,Q as F,R as z,X as _,ft as u,g as j,l as q,mt as E,nt as p,rt as K,t as L,tt as m,ut as Q,yt as f}from"./ui-vendor-CwabjOwn.js";import{d as R,n as X,r as H,u as J}from"./vue-vendor-DN3TBS7r.js";import{o as U,s as w}from"./router-CdmwEnE9.js";import{n as W,t as Y}from"./_plugin-vue_export-helper-JVWBimuG.js";async function Z(){return(await w("/api/hermes/gateways")).gateways}async function aa(i){return(await w(`/api/hermes/gateways/${i}/start`,{method:"POST"})).gateway}async function ea(i){await w(`/api/hermes/gateways/${i}/stop`,{method:"POST"})}var ta=d((()=>{U()})),A,sa=d((()=>{R(),z(),ta(),A=J("gateways",()=>{const i=g([]),e=g(!1);async function c(){e.value=!0;try{const t=await Z();i.value=Array.isArray(t)?t:Object.values(t||{})}finally{e.value=!1}}async function r(t){e.value=!0;try{const n=await aa(t),a=i.value.findIndex(v=>v.profile===t);a>=0?i.value[a]=n:i.value.push(n)}finally{e.value=!1}}async function y(t){e.value=!0;try{await ea(t);const n=i.value.find(a=>a.profile===t);n&&(n.running=!1,n.pid=void 0)}finally{e.value=!1}}return{gateways:i,loading:e,fetchStatus:c,start:r,stop:y}})})),h,G,V,x,S,$,k,C,I,N,T,B,D,O=d((()=>{z(),L(),X(),sa(),h={class:"gateways-view"},G={class:"page-header"},V={class:"header-title"},x={class:"gateways-content"},S={key:0,class:"empty-state"},$={key:1,class:"gateway-list"},k={class:"gateway-info"},C={class:"gateway-name"},I={class:"gateway-meta"},N={class:"meta-item"},T={key:0,class:"meta-item"},B={class:"gateway-actions"},D=K({__name:"GatewaysView",setup(i){const{t:e}=H(),c=j(),r=A();Q(()=>{r.fetchStatus()});async function y(t,n){try{n?(await r.stop(t),c.success(`${e("gateways.stopped")}: ${t}`)):(await r.start(t),c.success(`${e("gateways.started")}: ${t}`))}catch(a){c.error(a.message)}}return(t,n)=>(u(),l("div",h,[_("header",G,[_("h2",V,o(s(e)("gateways.title")),1)]),_("div",x,[p(s(q),{show:s(r).loading,size:"large"},{default:f(()=>[s(r).gateways.length===0?(u(),l("div",S,o(s(e)("common.noData")),1)):(u(),l("div",$,[(u(!0),l(b,null,E(s(r).gateways,a=>(u(),l("div",{key:a.profile,class:"gateway-card"},[_("div",k,[_("div",C,o(a.profile),1),_("div",I,[_("span",N,o(a.host)+":"+o(a.port),1),a.pid?(u(),l("span",T,"PID: "+o(a.pid),1)):F("",!0)])]),_("div",B,[p(s(P),{type:a.running?"success":"default",size:"small",round:""},{default:f(()=>[m(o(a.running?s(e)("gateways.running"):s(e)("gateways.stopped")),1)]),_:2},1032,["type"]),p(s(M),{size:"small",type:a.running?"warning":"primary",round:"",onClick:v=>y(a.profile,a.running)},{default:f(()=>[m(o(a.running?s(e)("common.stop"):s(e)("common.start")),1)]),_:2},1032,["type","onClick"])])]))),128))]))]),_:1},8,["show"])])]))}})})),ia=d((()=>{})),na,ra=d((()=>{O(),O(),ia(),W(),na=Y(D,[["__scopeId","data-v-d70aa8a3"]])}));ra();export{na as default};