PageSourceSearch

https://nasenfloeten.com/assets/ChannelMonitorView-D6blikTh.js

js nasenfloeten.com collected 2026-10-10 00:46:21 UTC 77,059 bytes, 22 lines download raw bytes

1import{_ as ie,g as Ee,a as Pe,j as ae,ap as dt,aq as ct,ar as Ke}from"./index-DGTjV__i.js";import{a as se}from"./apiError-zX02PgX9.js";import{_ as ut}from"./AppLayout.vue_vue_type_script_setup_true_lang-Cgn2rYNh.js";import{T as mt}from"./TablePageLayout-CkBDcRfT.js";import{D as pt}from"./DataTable-B-lUHP8A.js";import{P as vt}from"./Pagination-DA2hJep1.js";import{_ as Je}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DJd3OdSu.js";import{_ as ht}from"./EmptyState.vue_vue_type_script_setup_true_lang-BwwsAJ-6.js";import{_ as Qe}from"./HelpTooltip.vue_vue_type_script_setup_true_lang-BV_jlVIi.js";import{_ as De}from"./Toggle.vue_vue_type_script_setup_true_lang-DRUF2Z-I.js";import{d as he,a6 as qe,a7 as je,c as U,z as c,B as e,k as P,L as q,M as G,u as o,A as K,H as z,G as a,C as s,r as V,w as ve,D as fe,K as F,F as Q,W as le,E as j,q as Ce,V as Ye,a as Ze,o as We,a1 as _t,b as Ae}from"./vendor-vue-BVJWaRIf.js";import{S as Re}from"./Select-TY0w-yGx.js";import{P as ne,a as $e,b as Fe,c as ke,d as Me,e as Te,f as Ie,g as Ue,h as Ne,i as Be,A as ge,D as He,u as Oe,j as yt,C as we,k as ue,l as Ve,m as bt,_ as gt,n as Ge,o as ft,p as xt,q as kt,r as Mt,s as $t,t as wt,v as Xe,M as Ct,w as Vt,x as Et}from"./channelMonitorV2-B5mscM68.js";import{u as _e}from"./vendor-i18n-pgwztqC8.js";import{k as Pt}from"./AppHeader.vue_vue_type_style_index_0_scoped_59fb3e77_lang-BAGlNg6f.js";import{u as Ot}from"./groups-DozaOJdp.js";import{o as St,_ as At}from"./ModelTagInput.vue_vue_type_script_setup_true_lang-I50Ga42G.js";import{_ as Dt}from"./GroupBadge.vue_vue_type_script_setup_true_lang-DD7a3biv.js";import{m as Rt}from"./maskApiKey-ClKV8GuA.js";import{g as Tt}from"./usePersistedPageSize-x0WpaIWh.js";import"./vendor-misc-WKm5Kdig.js";import"./useClipboard-DW3Oc4kG.js";import"./LocaleSwitcher-DjROr_ZE.js";/* empty css                                                                       */import"./UsageProgressBar.vue_vue_type_script_setup_true_lang-DX49Nnfh.js";import"./vendor-ui-xAOatANW.js";import"./channel-CvMwqZOU.js";import"./peak-rate-qZGUWdry.js";import"./PlatformIcon.vue_vue_type_script_setup_true_lang-Dsanj3Um.js";const It={class:"flex flex-col justify-between gap-4 lg:flex-row lg:items-start"},Ut={class:"flex flex-1 flex-wrap items-center gap-3"},Nt={class:"relative w-full sm:w-64"},Bt=["placeholder"],jt={class:"flex w-full flex-shrink-0 flex-wrap items-center justify-end gap-3 lg:w-auto"},Ht=["disabled","title"],Ft=["title"],Lt=he({__name:"MonitorFiltersBar",props:qe({loading:{type:Boolean}},{search:{required:!0},searchModifiers:{},provider:{required:!0},providerModifiers:{},enabled:{required:!0},enabledModifiers:{}}),emits:qe(["reload","create","manage-templates","search-input"],["update:search","update:provider","update:enabled"]),setup(M){const r=je(M,"search"),p=je(M,"provider"),O=je(M,"enabled"),{t}=_e(),y=U(()=>[{value:"",label:t("admin.channelMonitor.allProviders")},{value:ne,label:t("monitorCommon.providers.openai")},{value:$e,label:t("monitorCommon.providers.anthropic")},{value:Fe,label:t("monitorCommon.providers.gemini")},{value:ke,label:t("monitorCommon.providers.grok")},{value:Me,label:t("monitorCommon.providers.antigravity")},{value:Te,label:t("monitorCommon.providers.kimi")},{value:Ie,label:t("monitorCommon.providers.zhipu")},{value:Ue,label:t("monitorCommon.providers.deepseek")},{value:Ne,label:t("monitorCommon.providers.minimax")},{value:Be,label:t("monitorCommon.providers.opencode_go")}]),u=U(()=>[{value:"",label:t("admin.channelMonitor.allStatus")},{value:"true",label:t("admin.channelMonitor.onlyEnabled")},{value:"false",label:t("admin.channelMonitor.onlyDisabled")}]);return(g,v)=>(s(),c("div",It,[e("div",Ut,[e("div",Nt,[P(ie,{name:"search",size:"md",class:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),q(e("input",{"onUpdate:modelValue":v[0]||(v[0]=w=>r.value=w),type:"text",placeholder:o(t)("admin.channelMonitor.searchPlaceholder"),class:"input pl-10",onInput:v[1]||(v[1]=w=>g.$emit("search-input"))},null,40,Bt),[[G,r.value]])]),P(Re,{modelValue:p.value,"onUpdate:modelValue":v[2]||(v[2]=w=>p.value=w),options:y.value,placeholder:o(t)("admin.channelMonitor.allProviders"),class:"w-44",onChange:v[3]||(v[3]=w=>g.$emit("reload"))},null,8,["modelValue","options","placeholder"]),P(Re,{modelValue:O.value,"onUpdate:modelValue":v[4]||(v[4]=w=>O.value=w),options:u.value,placeholder:o(t)("admin.channelMonitor.enabledFilter"),class:"w-40",onChange:v[5]||(v[5]=w=>g.$emit("reload"))},null,8,["modelValue","options","placeholder"])]),e("div",jt,[e("button",{onClick:v[6]||(v[6]=w=>g.$emit("reload")),disabled:M.loading,class:"btn btn-secondary",title:o(t)("common.refresh")},[P(ie,{name:"refresh",size:"md",class:K(M.loading?"animate-spin":"")},null,8,["class"])],8,Ht),e("button",{onClick:v[7]||(v[7]=w=>g.$emit("manage-templates")),class:"btn btn-secondary",title:o(t)("admin.channelMonitor.template.manageButton")},[P(ie,{name:"cog",size:"md",class:"mr-2"}
1),z(" "+a(o(t)("admin.channelMonitor.template.manageButton")),1)],8,Ft),e("button",{onClick:v[8]||(v[8]=w=>g.$emit("create")),class:"btn btn-primary"},[P(ie,{name:"plus",size:"md",class:"mr-2"}),z(" "+a(o(t)("admin.channelMonitor.createButton")),1)])])]))}}),zt={class:"space-y-3"},Kt={class:"text-xs text-gray-500 dark:text-gray-400"},qt={class:"relative"},Gt=["placeholder"],Jt={key:0,class:"py-6 text-center text-sm text-gray-500"},Qt={key:1,class:"py-6 text-center text-sm text-gray-500"},Yt={key:2,class:"max-h-96 overflow-auto rounded-lg border border-gray-200 dark:border-dark-600"},Zt={class:"w-full text-sm"},Wt={class:"bg-gray-50 dark:bg-dark-800 sticky top-0 z-10"},Xt={class:"text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},eo={class:"px-3 py-2"},to={class:"px-3 py-2"},oo={class:"px-3 py-2"},no={class:"divide-y divide-gray-200 dark:divide-dark-700"},ao=["onClick"],ro={class:"px-3 py-2 font-medium text-gray-900 dark:text-white"},lo={class:"px-3 py-2 font-mono text-xs text-gray-500 dark:text-gray-400"},so={class:"px-3 py-2"},io={key:1,class:"text-xs text-gray-400"},co={class:"flex justify-end"},uo=he({__name:"MonitorKeyPickerDialog",props:{show:{type:Boolean},loading:{type:Boolean},keys:{},provider:{},userGroupRates:{default:()=>({})}},emits:["close","pick"],setup(M){const r=M,{t:p}=_e(),O=V("");ve(()=>r.show,y=>{y||(O.value="")}
1);const t=U(()=>{const y=O.value.trim().toLowerCase();return r.keys.filter(u=>{var g,v;return((g=u.group)==null?void 0:g.platform)!==r.provider?!1:y?u.name.toLowerCase().includes(y)||u.key.toLowerCase().includes(y)||(((v=u.group)==null?void 0:v.name)||"").toLowerCase().includes(y):!0})});return(y,u)=>(s(),fe(Ee,{show:M.show,title:o(p)("admin.channelMonitor.form.selectKeyTitle"),width:"wide",onClose:u[2]||(u[2]=g=>y.$emit("close"))},{footer:F(()=>[e("div",co,[e("button",{onClick:u[1]||(u[1]=g=>y.$emit("close")),class:"btn btn-secondary"},a(o(p)("common.cancel")),1)])]),default:F(()=>[e("div",zt,[e("p",Kt,a(o(p)("admin.channelMonitor.form.selectKeyHint")),1),e("div",qt,[q(e("input",{"onUpdate:modelValue":u[0]||(u[0]=g=>O.value=g),type:"text",class:"input pl-9",placeholder:o(p)("keys.searchPlaceholder")},null,8,Gt),[[G,O.value]]),u[3]||(u[3]=e("svg",{class:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("circle",{cx:"11",cy:"11",r:"8"}),e("path",{d:"m21 21-4.35-4.35"})],-1))]),M.loading?(s(),c("div",Jt,a(o(p)("common.loading")),1)):t.value.length===0?(s(),c("div",Qt,a(o(p)("admin.channelMonitor.form.noActiveKey")),1)):(s(),c("div",Yt,[e("table",Zt,[e("thead",Wt,[e("tr",Xt,[e("th",eo,a(o(p)("common.name")),1),e("th",to,a(o(p)("keys.apiKey")),1),e("th",oo,a(o(p)("keys.group")),1)])]),e("tbody",no,[(s(!0),c(Q,null,le(t.value,g=>(s(),c("tr",{key:g.id,class:"cursor-pointer hover:bg-gray-50 dark:hover:bg-dark-700",onClick:v=>y.$emit("pick",g)},[e("td",ro,a(g.name),1),e("td",lo,a(o(Rt)(g.key)),1),e("td",so,[g.group?(s(),fe(Dt,{key:0,name:g.group.name,platform:g.group.platform,"subscription-type":g.group.subscription_type,"rate-multiplier":g.group.rate_multiplier,"user-rate-multiplier":M.userGroupRates[g.group.id]},null,8,["name","platform","subscription-type","rate-multiplier","user-rate-multiplier"])):(s(),c("span",io,"—"))])],8,ao))),128))])])]))])]),_:1},8,["show","title"]))}}),mo={class:"space-y-4"},po={class:"input-label"},vo={class:"space-y-1.5"},ho=["onUpdate:modelValue","placeholder"],_o=["onUpdate:modelValue","placeholder"],yo=["title","onClick"],bo={key:0,class:"mt-1 text-xs text-red-500"},go={key:1,class:"mt-1 text-xs text-gray-400"},fo={class:"input-label"},xo={class:"grid grid-cols-3 gap-3"},ko=["onClick"],Mo={class:"mt-1 text-xs text-gray-400"},$o={key:0},wo={class:"mb-1 flex items-center justify-between"},Co={class:"input-label !mb-0"},Vo=["disabled"],Eo=["placeholder"],Po={key:0,class:"mt-1 text-xs text-red-500"},Oo={key:1,class:"mt-1 text-xs text-gray-400"},et=he({__name:"MonitorAdvancedRequestConfig",props:{provider:{},apiMode:{},extraHeaders:{},bodyOverrideMode:{},bodyOverride:{}},emits:["update:extraHeaders","update:bodyOverrideMode","update:bodyOverride"],setup(M,{emit:r}){const p=M,O=r,{t}=_e(),y=V(g(p.extraHeaders)),u=V("");ve(()=>p.extraHeaders,x=>{w(v(y.value),x)||(y.value=g(x)),u.value=""});function g(x){const $=Object.entries(x||{});return $.length===0?[{name:"",value:""}]:$.map(([N,B])=>({name:N,value:B}))}function v(x){const $={};for(const N of x){const B=N.name.trim();B!==""&&($[B]=N.value)}return $}function w(x,$){const N=Object.keys(x),B=Object.keys($||{});if(N.length!==B.length)return!1;for(const Y of N)if(x[Y]!==$[Y])return!1;return!0}function W(){for(const x of y.value){const $=x.name.trim();if($!==""&&($.includes(":")||/\s/.test($))){u.value=t("admin.channelMonitor.advanced.headerNameInvalid",{name:$});return}}u.value="",O("update:extraHeaders",v(y.value))}function J(){y.value.push({name:"",value:""})}function te(x){y.value.splice(x,1),y.value.length===0&&y.value.push({name:"",value:""}),W()}const I=V(S(p.bodyOverride)),n=V("");ve(()=>p.bodyOverride,x=>{I.value=S(x),n.value=""});function _(){if(p.bodyOverrideMode==="off")return;const x=I.value.trim();if(x===""){O("update:bodyOverride",null),n.value="";return}try{const $=JSON.parse(x);if($===null||typeof $!="object"||Array.isArray($)){n.value=t("admin.channelMonitor.advanced.bodyJsonObjectError");return}O("update:bodyOverride",$),n.value=""}catch($){n.value=t("admin.channelMonitor.advanced.bodyJsonError")+": "+($ instanceof Error?$.message:String($))}}function H(){const x=I.value.trim();if(x!=="")try{const $=JSON.parse(x);I.value=JSON.stringify($,null,2),n.value="",$&&typeof $=="object"&&!Array.isArray($)&&O("update:bodyOverride",$)}catch($){n.value=t("admin.channelMonitor.advanced.bodyJsonError")+": "+($ instanceof Error?$.message:String($))}}function S(x){return!x||Object.keys(x).length===0?"":JSON.stringify(x,null,2)}function A(x){O("update:bodyOverrideMode",x),x==="off"&&O("update:bodyOverride",null)}const R=U(()=>[{value:"off",label:t("admin.channelMonitor.advanced.bodyModeOff")},{value:"merge",label:t("admin.channelMonitor.advanced.bodyModeMerge")},{value:"replace",label:t("admin.channelMonitor.advanced.bodyModeReplace")}]);function X(x){return p.bodyOverrideMode===x?"border-primary-500 bg-primary-50 text-primary-700 dark:bg-primary-500/15 dark:text-primary-300 dark:border-primary-400":"border-gray-200 bg-white text-gray-600 hover:border-primary-300 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-400"}const oe=U(()=>{switch(p.bodyOverrideMode){case"merge":return t("admin.channelMonitor.advanced.bodyModeHintMerge");case"replace":return t("admin.channelMonitor.advanced.bodyModeHintReplace");default:return t("admin.channelMonitor.advanced.bodyModeHintOff")}}),de=U(()=>p.provider===ne&&p.apiMode===ge?p.bodyOverrideMode==="merge"?`{
2  "max_output_tokens": 20
3}`:`{
4  "model": "gpt-4o-mini",
5  "instructions": "You are a health check endpoint. Reply briefly.",
6  "input": "Reply with exactly: ok",
7  "max_output_tokens": 20,
8  "stream": false
9}`:p.provider===ne||p.provider===ke?p.bodyOverrideMode==="merge"?`{
10  "max_tokens": 20
11}`:`{
12  "model": "${p.provider===ke?He:"gpt-4o-mini"}",
13  "messages": [{"role":"user","content":"Reply with exactly: ok"}],
14  "max_tokens": 20,
15  "stream": false
16}`:p.bodyOverrideMode==="merge"?`{
17  "system": "You are Claude Code..."
18}`:`{
19  "model": "claude-x",
20  "messages": [{"role":"user","content":"hi"}],
21  "max_tokens": 10
22}`);return(x,$)=>(s(),c("div",mo,[e("div",null,[e("label",po,a(o(t)("admin.channelMonitor.advanced.headers")),1),e("div",vo,[(s(!0),c(Q,null,le(y.value,(N,B)=>(s(),c("div",{key:B,class:"flex items-center gap-2"},[q(e("input",{"onUpdate:modelValue":Y=>N.name=Y,type:"text",spellcheck:"false",placeholder:o(t)("admin.channelMonitor.advanced.headerNamePlaceholder"),class:"input w-52 flex-none font-mono text-xs",onBlur:W},null,40,ho),[[G,N.name]]),q(e("input",{"onUpdate:modelValue":Y=>N.value=Y,type:"text",spellcheck:"false",placeholder:o(t)("admin.channelMonitor.advanced.headerValuePlaceholder"),class:"input flex-1 font-mono text-xs",onBlur:W},null,40,_o),[[G,N.value]]),e("button",{type:"button",class:"flex-none rounded p-1 text-gray-400 hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-500/10 dark:hover:text-red-400",title:o(t)("common.delete"),onClick:Y=>te(B)},[...$[1]||($[1]=[e("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,yo)]))),128)),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded border border-dashed border-gray-300 px-2 py-1 text-xs text-gray-500 hover:border-primary-400 hover:text-primary-600 dark:border-dark-600 dark:text-gray-400 dark:hover:border-primary-500 dark:hover:text-primary-400",onClick:J},[$[2]||($[2]=e("svg",{class:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)),z(" "+a(o(t)("admin.channelMonitor.advanced.headerAddRow")),1)])]),u.value?(s(),c("p",bo,a(u.value),1)):(s(),c("p",go,a(o(t)("admin.channelMonitor.advanced.headersHint")),1))]),e("div",null,[e("label",fo,a(o(t)("admin.channelMonitor.advanced.bodyMode")),1),e("div",xo,[(s(!0),c(Q,null,le(R.value,N=>(s(),c("button",{key:N.value,type:"button",class:K(["rounded-lg border-2 px-3 py-2 text-sm font-medium transition-colors",X(N.value)]),onClick:B=>A(N.value)},a(N.label),11,ko))),128))]),e("p",Mo,a(oe.value),1)]),M.bodyOverrideMode!=="off"?(s(),c("div",$o,[e("div",w
22o,[e("label",Co,a(o(t)("admin.channelMonitor.advanced.bodyJson")),1),e("button",{type:"button",class:"text-xs text-primary-600 hover:underline disabled:cursor-not-allowed disabled:text-gray-400 disabled:no-underline dark:text-primary-400",disabled:!I.value.trim(),onClick:H},a(o(t)("admin.channelMonitor.advanced.bodyJsonFormat")),9,Vo)]),q(e("textarea",{"onUpdate:modelValue":$[0]||($[0]=N=>I.value=N),rows:"10",placeholder:de.value,class:"input font-mono text-xs",style:{"white-space":"pre","overflow-wrap":"normal","overflow-x":"auto"},spellcheck:"false",onBlur:_},null,40,Eo),[[G,I.value]]),n.value?(s(),c("p",Po,a(n.value),1)):(s(),c("p",Oo,a(o(t)("admin.channelMonitor.advanced.bodyJsonHint")),1))])):j("",!0)]))}}),So={class:"input-label"},Ao=["placeholder"],Do={class:"input-label"},Ro={class:"grid gap-3 sm:grid-cols-3","data-testid":"monitor-check-mode"},To=["data-testid","aria-pressed","disabled","onClick"],Io={class:"block text-sm font-semibold"},Uo={class:"mt-0.5 block text-xs opacity-80"},No={class:"input-label"},Bo={class:"grid grid-cols-2 gap-3 sm:grid-cols-4"},jo=["data-testid","aria-pressed","onClick"],Ho={key:0},Fo={class:"input-label"},Lo={"data-testid":"monitor-linked-account"},zo={class:"mt-1 text-xs text-gray-400"},Ko={key:0,class:"mt-1 text-xs text-amber-600 dark:text-amber-400"},qo={key:1,class:"mt-1 text-xs text-amber-600 dark:text-amber-400"},Go={key:2,class:"mt-1 text-xs text-amber-600 dark:text-amber-400"},Jo={key:1,class:"rounded-lg border border-blue-100 bg-blue-50/50 p-3 dark:border-blue-500/20 dark:bg-blue-500/10"},Qo={class:"input-label"},Yo={class:"grid gap-3 sm:grid-cols-2"},Zo=["aria-pressed","onClick"],Wo={class:"block text-sm font-semibold"},Xo={class:"mt-0.5 block text-xs opacity-80"},en={key:2},tn={class:"input-label"},on={class:"flex gap-2"},nn=["placeholder"],an={key:3},rn={class:"input-label"},ln={key:0,class:"text-red-500"},sn={class:"flex gap-2"},dn=["required","placeholder"],cn={key:0,class:"mt-1 text-xs text-gray-400"},un={key:4},mn={class:"input-label"},pn=["placeholder"],vn={key:5},hn={class:"input-label"},_n={class:"input-label"},yn=["placeholder"],bn={class:"input-label"},gn={class:"mt-1 text-xs text-gray-400"},fn={class:"input-label"},xn=["max"],kn={class:"mt-1 text-xs text-gray-400"},Mn={class:"flex items-center justify-between"},$n={class:"input-label mb-0"},wn={key:6,class:"rounded-lg border border-gray-200 bg-gray-50/50 p-3 dark:border-dark-700 dark:bg-dark-900/30"},Cn={class:"cursor-pointer text-sm font-medium text-gray-700 dark:text-gray-300"},Vn={class:"mt-1 text-xs text-gray-400"},En={class:"mt-4 space-y-4"},Pn={class:"input-label"},On={class:"mt-1 text-xs text-gray-400"},Sn={class:"flex justify-end gap-3"},An=["disabled"],Dn=he({__name:"MonitorFormDialog",props:{show:{type:Boolean},monitor:{}},emits:["close","saved"],setup(M,{emit:r}){const p=M,O=r,{t}=_e(),y=Pe(),{providerPickerClass:u}=Oe(),g=U(()=>{var l;const i=(l=y.cachedPublicSettings)==null?void 0:l.channel_monitor_default_interval_seconds;return i&&i>0?i:yt}),v=U(()=>p.monitor),w=V(!1),W=V(!1),J=V(!1),te=V([]),I=V({}),n=Ce({name:"",provider:$e,api_mode:ue,check_mode:we,account_id:null,endpoint:"",api_key:"",primary_model:"",extra_models:[],group_name:"",interval_seconds:g.value,jitter_seconds:0,enabled:!0,template_id:null,extra_headers:{},body_override_mode:"off",body_override:null}),_=U(()=>n.check_mode!==we),H=U(()=>n.check_mode!==Ve),S=U(()=>Math.max(0,(n.interval_seconds||0)-15));let A=!1;const R=V([]),X=V(!1),oe=U(()=>{const i=R.value.filter(l=>l.provider!==n.provider?!1:n.provider!==ne?!0:N(l.api_mode)===n.api_mode);return[{value:"",label:t("admin.channelMonitor.templateField.none")},...i.map(l=>({value:String(l.id),label:Y(l)}))]});async function de(){if(!(R.value.length>0)){X.value=!0;try{const{items:i}=await ae.channelMonitorTemplate.list();R.value=i}catch(i){console.warn("load monitor templates failed",i)}finally{X.value=!1}}}const x=U({get:()=>n.template_id==null?"":String(n.template_id),set:i=>{if(i===""){n.template_id=null;return}const l=Number(i);if(!Number.isFinite(l))return;n.template_id=l;const d=R.value.find(Z=>Z.id===l);d&&(A=!0,n.api_mode=N(d.api_mode),n.template_id=l,n.extra_headers={...d.extra_headers||{}},n.body_override_mode=d.body_override_mode,n.body_override=d.body_override?{...d.body_override}:null,A=!1)}}),$=U(()=>[{value:ue,label:t("admin.channelMonitor.form.apiModeChatCompletions"),hint:t("admin.channelMonitor.form.apiModeChatCompletionsHint")},{value:ge,label:t("admin.channelMonitor.form.apiModeResponses"),hint:t("admin.channelMonitor.form.apiModeResponsesHint")}]);function N(i){return i===ge?ge:ue}function B(i){return n.api_mode===i?"border-primary-500 bg-white text-primary-700 shadow-sm dark:border-primary-400 dark:bg-primary-500/15 dark:text-primary-300":"border-blue-100 bg-white/70 text-gray-600 hover:border-primary-300 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-400"}function Y(i){if(i.provider!==ne)return i.name;const l=N(i.api_mode)===ge?"admin.channelMonitor.form.apiModeResponses":"admin.channelMonitor.form.apiModeChatCompletions";return`${i.name} · ${t(l)}`}function ye(){n.template_id=null,n.extra_headers={},n.body_override_mode="off",n.body_override=null}const xe=U(()=>[{value:$e,label:t("monitorCommon.providers.anthropic")},{value:ne,label:t("monitorCommon.providers.openai")},{value:Fe,label:t("monitorCommon.providers.gemini")},{value:ke,label:t("monitorCommon.providers.grok")},{value:Me,label:t("monitorCommon.providers.antigravity")},{value:Te,label:t("monitorCommon.providers.kimi")}
22,{value:Ie,label:t("monitorCommon.providers.zhipu")},{value:Ue,label:t("monitorCommon.providers.deepseek")},{value:Ne,label:t("monitorCommon.providers.minimax")},{value:Be,label:t("monitorCommon.providers.opencode_go")}]),ee={[Te]:$t,[Ie]:Mt,[Ue]:kt,[Ne]:xt,[Be]:ft},k=U(()=>[{value:we,label:t("admin.channelMonitor.form.checkModeProbe"),hint:t("admin.channelMonitor.form.checkModeProbeHint"),disabled:n.provider===Me},{value:Ve,label:t("admin.channelMonitor.form.checkModeQuota"),hint:t("admin.channelMonitor.form.checkModeQuotaHint"),disabled:!1},{value:bt,label:t("admin.channelMonitor.form.checkModeQuotaProbe"),hint:t("admin.channelMonitor.form.checkModeQuotaProbeHint"),disabled:n.provider===Me}]);function h(i){return n.check_mode===i?"border-primary-500 bg-white text-primary-700 shadow-sm dark:border-primary-400 dark:bg-primary-500/15 dark:text-primary-300":"border-blue-100 bg-white/70 text-gray-600 hover:border-primary-300 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-400"}function L(i){var l;(l=k.value.find(d=>d.value===i))!=null&&l.disabled||(n.check_mode=i,_.value||(n.account_id=null))}const re=V([]),f=V(!1),ce=V(""),me=V(!1),m=V(null);let T=0,b=null;const pe=new Set,D=U(()=>{const i=re.value.map(d=>({value:String(d.id),label:`${d.name} (#${d.id})`})),l=m.value;return l&&!re.value.some(d=>d.id===l.id)&&i.unshift({value:String(l.id),label:`${l.name} (#${l.id})`}),i}),E=U({get:()=>n.account_id==null?"":String(n.account_id),set:i=>{if(i===""){n.account_id=null,m.value=null,me.value=!1;return}const l=Number(i);Number.isFinite(l)&&(n.account_id=l,m.value=re.value.find(d=>d.id===l)??m.value)}});async function C(i=""){if(!_.value||!p.show)return;ce.value=i;const l=++T;b==null||b.abort();const d=new AbortController;b=d,f.value=!0;try{const Z=await ae.accounts.list(1,50,{platform:n.provider,...i?{search:i}:{}},{signal:d.signal});if(l!==T)return;re.value=(Z.items||[]).map(be=>({id:be.id,name:be.name})),await Se()}catch(Z){if(d.signal.aborted)return;console.warn("load linked accounts failed",Z),i||(re.value=[])}finally{l===T&&(f.value=!1)}}async function Se(){var l;const i=n.account_id;if(!(i==null||!_.value)&&!(re.value.some(d=>d.id===i)||((l=m.value)==null?void 0:l.id)===i)&&!pe.has(i)){pe.add(i);try{const d=await ae.accounts.getById(i);if(n.account_id!==i)return;if(String(d.platform)!==n.provider){n.account_id=null,m.value=null,me.value=!0;return}m.value={id:d.id,name:d.name}}catch{n.account_id===i&&(n.account_id=null,m.value=null,me.value=!0)}}}function tt(i){C(i)}ve(()=>[p.show,n.provider,n.check_mode],([i,l],d)=>{const[Z,be]=d??[];if(!i){b==null||b.abort();return}(i!==Z||l!==be)&&(pe.clear(),me.value=!1,m.value=null),C()},{immediate:!0});function ot(i){if(n.provider===i)return;const l=n.provider,d=l===ke&&n.endpoint===Ge,Z=l===ke&&n.primary_model===He,be=!!ee[l]&&n.endpoint===ee[l];if(n.provider=i,n.account_id=null,m.value=null,me.value=!1,i===Me&&n.check_mode!==Ve&&(n.check_mode=Ve),l===Me&&n.check_mode===Ve&&(n.check_mode=we,n.primary_model.trim()==="quota"&&(n.primary_model="")),i===ke){n.endpoint.trim()||(n.endpoint=Ge),n.primary_model.trim()||(n.primary_model=He);return}(d||be)&&(n.endpoint=""),Z&&(n.primary_model="");const ze=ee[i];ze&&!n.endpoint.trim()&&(n.endpoint=ze)}ve(()=>n.provider,()=>{A||(n.api_key="",n.provider!==ne&&(n.api_mode=ue),ye())},{flush:"sync"}),ve(()=>n.api_mode,()=>{A||n.provider===ne&&ye()},{flush:"sync"});function nt(){A=!0,n.name="",n.provider=$e,n.api_mode=ue,n.check_mode=we,n.account_id=null,m.value=null,me.value=!1,n.endpoint="",n.api_key="",n.primary_model="",n.extra_models=[],n.group_name="",n.interval_seconds=g.value,n.jitter_seconds=0,n.enabled=!0,n.template_id=null,n.extra_headers={},n.body_override_mode="off",n.body_override=null,A=!1}function at(i){A=!0,n.name=i.name,n.provider=i.provider,n.api_mode=N(i.api_mode),n.check_mode=i.check_mode||we,n.account_id=i.account_id??null,n.endpoint=i.endpoint,n.api_key="",n.primary_model=i.primary_model,n.extra_models=[...i.extra_models||[]],n.group_name=i.group_name||"",n.interval_seconds=i.interval_seconds||g.value,n.jitter_seconds=i.jitter_seconds||0,n.enabled=i.enabled,n.template_id=i.template_id??null,
22n.extra_headers={...i.extra_headers||{}},n.body_override_mode=i.body_override_mode||"off",n.body_override=i.body_override?{...i.body_override}:null,A=!1}ve(()=>[p.show,p.monitor],([i,l])=>{i&&(de(),l?at(l):nt())},{immediate:!0});function rt(){n.endpoint=window.location.origin}async function lt(){if(W.value=!0,!(te.value.length>0)){J.value=!0;try{const[i,l]=await Promise.all([Pt.list(1,100,{status:"active"}),Ot.getUserGroupRates()]),d=i.items||[],Z=Date.now();te.value=d.filter(be=>be.status!=="active"?!1:be.expires_at?new Date(be.expires_at).getTime()>Z:!0),I.value=l}catch(i){y.showError(se(i,t("admin.channelMonitor.form.noActiveKey")))}finally{J.value=!1}}}function st(i){n.api_key=i.key,W.value=!1}function Le(){return{name:n.name.trim(),provider:n.provider,api_mode:n.provider===ne?n.api_mode:ue,check_mode:n.check_mode,account_id:_.value?n.account_id:null,endpoint:H.value?n.endpoint.trim():"",api_key:H.value?n.api_key.trim():"",primary_model:H.value?n.primary_model.trim():"quota",extra_models:H.value?n.extra_models:[],group_name:n.group_name.trim(),enabled:n.enabled,interval_seconds:n.interval_seconds,jitter_seconds:n.jitter_seconds||0,template_id:H.value?n.template_id:null,extra_headers:n.extra_headers,body_override_mode:n.body_override_mode,body_override:n.body_override}}async function it(){if(!w.value){if(!n.name.trim()){y.showError(t("admin.channelMonitor.nameRequired"));return}if(_.value&&n.account_id==null){y.showError(t("admin.channelMonitor.linkedAccountRequired"));return}if(H.value&&!n.primary_model.trim()){y.showError(t("admin.channelMonitor.primaryModelRequired"));return}w.value=!0;try{const i=v.value;if(i){const{api_key:l,...d}=Le(),Z={...d};l&&(Z.api_key=l),H.value&&n.template_id==null&&(Z.clear_template=!0,delete Z.template_id),_.value||(Z.account_id=0),await ae.channelMonitor.update(i.id,Z),y.showSuccess(t("admin.channelMonitor.updateSuccess"))}else await ae.channelMonitor.create(Le()),y.showSuccess(t("admin.channelMonitor.createSuccess"));O("saved"),O("close")}catch(i){y.showError(se(i,t("common.error")))}finally{w.value=!1}}}return(i,l)=>(s(),c(Q,null,[P(Ee,{show:M.show,title:v.value?o(t)("admin.channelMonitor.editTitle"):o(t)("admin.channelMonitor.createTitle"),width:"wide",onClose:l[15]||(l[15]=d=>i.$emit("close"))},{footer:F(()=>[e("div",Sn,[e("button",{onClick:l[14]||(l[14]=d=>i.$emit("close")),type:"button",class:"btn btn-secondary"},a(o(t)("common.cancel")),1),e("button",{type:"submit",form:"channel-monitor-form",disabled:w.value,class:"btn btn-primary"},a(w.value?o(t)("common.submitting"):v.value?o(t)("common.update"):o(t)("common.create")),9,An)])]),default:F(()=>[e("form",{id:"channel-monitor-form",onSubmit:Ye(it,["prevent"]),class:"space-y-5"},[e("div",null,[e("label",So,[z(a(o(t)("admin.channelMonitor.form.name"))+" ",1),l[17]||(l[17]=e("span",{class:"text-red-500"},"*",-1))]),q(e("input",{"onUpdate:modelValue":l[0]||(l[0]=d=>n.name=d),type:"text",required:"",class:"input",placeholder:o(t)("admin.channelMonitor.form.namePlaceholder")},null,8,Ao),[[G,n.name]])]),e("div",null,[e("label",Do,a(o(t)("admin.channelMonitor.form.checkMode")),1),e("div",Ro,[(s(!0),c(Q,null,le(k.value,d=>(s(),c("button",{key:d.value,type:"button","data-testid":`monitor-check-mode-${d.value}`,"aria-pressed":n.check_mode===d.value,disabled:d.disabled,class:K(["rounded-lg border-2 px-3 py-2 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-50",h(d.value)]),onClick:Z=>L(d.value)},[e("span",Io,a(d.label),1),e("span",Uo,a(d.hint),1)],10,To))),128))])]),e("div",null,[e("label",No,[z(a(o(t)("admin.channelMonitor.form.provider"))+" ",1),l[18]||(l[18]=e("span",{class:"text-red-500"},"*",-1))]),e("div",Bo,[(s(!0),c(Q,null,le(xe.value,d=>(s(),c("button",{key:d.value,type:"button","data-testid":`monitor-provider-${d.value}`,"aria-pressed":n.provider===d.value,class:K(["flex items-center justify-center gap-2 rounded-lg border-2 px-3 py-2.5 text-sm font-medium transition-colors",o(u)(d.value,n.provider===d.value)]),onClick:Z=>ot(d.value)},[P(gt,{provider:d.value,size:18},null,8,["provider"]),e("span",null,a(d.label),1)],10,jo))),128))])]),_.value?(s(),c("div",Ho,[e("label",Fo,[z(a(o(t)("admin.channelMonitor.form.linkedAccount"))+" ",1),l[19]||(l[19]=e("span",{class:"text-red-500"},"*",-1))]),e("div",Lo,[P(Re,{modelValue:E.value,"onUpdate:modelValue":l[1]||(l[1]=d=>E.value=d),options:D.value,placeholder:o(t)("admin.channelMonitor.form.linkedAccountPlaceholder"),remote:"",loading:f.value,onSearch:tt},null,8,["modelValue","options","placeholder","loading"])]),e("p",zo,a(o(t)("admin.channelMonitor.form.linkedAccountHint")),1),n.provider===o(ne)?(s(),c("p",Ko,a(o(t)("admin.channelMonitor.form.openAIQuotaProbeHint")),1)):j("",!0),me.value?(s(),c("p",qo,a(o(t)("admin.channelMonitor.form.linkedAccountMissing")),1)):j("",!0),D.value.length===0&&!f.value&&!ce.value?(s(),c("p",Go,a(o(t)("admin.channelMonitor.form.linkedAccountEmpty")),1)):j("",!0)])):j("",!0),n.provider===o(ne)&&H.value?(s(),c("div",Jo,[e("label",Qo,a(o(t)("admin.channelMonitor.form.apiMode")),1),e("div",Yo,[(s(!0),c(Q,null,le($.value,d=>(s(),c("button",{key:d.value,type:"button","aria-pressed":n.api_mode===d.value,class:K(["rounded-lg border-2 px-3 py-2 text-left transition-colors",B(d.value)]),onClick:Z=>n.api_mode=d.value}
22,[e("span",Wo,a(d.label),1),e("span",Xo,a(d.hint),1)],10,Zo))),128))])])):j("",!0),H.value?(s(),c("div",en,[e("label",tn,[z(a(o(t)("admin.channelMonitor.form.endpoint"))+" ",1),l[20]||(l[20]=e("span",{class:"text-red-500"},"*",-1))]),e("div",on,[q(e("input",{"onUpdate:modelValue":l[2]||(l[2]=d=>n.endpoint=d),"data-testid":"monitor-endpoint",type:"text",required:"",class:"input flex-1",placeholder:o(t)("admin.channelMonitor.form.endpointPlaceholder")},null,8,nn),[[G,n.endpoint]]),e("button",{type:"button",onClick:rt,class:"btn btn-secondary whitespace-nowrap"},a(o(t)("admin.channelMonitor.form.useCurrentDomain")),1)])])):j("",!0),H.value?(s(),c("div",an,[e("label",rn,[z(a(o(t)("admin.channelMonitor.form.apiKey")),1),v.value?j("",!0):(s(),c("span",ln," *"))]),e("div",sn,[q(e("input",{"onUpdate:modelValue":l[3]||(l[3]=d=>n.api_key=d),type:"password",required:!v.value,class:"input flex-1",placeholder:v.value?o(t)("admin.channelMonitor.form.apiKeyEditPlaceholder"):o(t)("admin.channelMonitor.form.apiKeyPlaceholder")},null,8,dn),[[G,n.api_key]]),e("button",{type:"button",onClick:lt,class:"btn btn-secondary whitespace-nowrap"},a(o(t)("admin.channelMonitor.form.useMyKey")),1)]),v.value&&v.value.a
22pi_key_masked?(s(),c("p",cn,a(v.value.api_key_masked),1)):j("",!0)])):j("",!0),H.value?(s(),c("div",un,[e("label",mn,[z(a(o(t)("admin.channelMonitor.form.primaryModel"))+" ",1),l[21]||(l[21]=e("span",{class:"text-red-500"},"*",-1))]),q(e("input",{"onUpdate:modelValue":l[4]||(l[4]=d=>n.primary_model=d),"data-testid":"monitor-primary-model",type:"text",required:"",class:K(["input font-medium",o(St)(n.provider)]),placeholder:o(t)("admin.channelMonitor.form.primaryModelPlaceholder")},null,10,pn),[[G,n.primary_model]])])):j("",!0),H.value?(s(),c("div",vn,[e("label",hn,a(o(t)("admin.channelMonitor.form.extraModels")),1),P(At,{models:n.extra_models,platform:n.provider,placeholder:o(t)("admin.channelMonitor.form.extraModelsPlaceholder"),"onUpdate:models":l[5]||(l[5]=d=>n.extra_models=d)},null,8,["models","platform","placeholder"])])):j("",!0),e("div",null,[e("label",_n,a(o(t)("admin.channelMonitor.form.groupName")),1),q(e("input",{"onUpdate:modelValue":l[6]||(l[6]=d=>n.group_name=d),type:"text",class:"input",placeholder:o(t)("admin.channelMonitor.form.groupNamePlaceholder")},null,8,yn),[[G,n.group_name]])]),e("div",null,[e("label",bn,[z(a(o(t)("admin.channelMonitor.form.intervalSeconds"))+" ",1),l[22]||(l[22]=e("span",{class:"text-red-500"},"*",-1))]),q(e("input",{"onUpdate:modelValue":l[7]||(l[7]=d=>n.interval_seconds=d),type:"number",min:"15",max:"3600",required:"",class:"input"},null,512),[[G,n.interval_seconds,void 0,{number:!0}]]),e("p",gn,a(o(t)("admin.channelMonitor.form.intervalSecondsHint")),1)]),e("div",null,[e("label",fn,a(o(t)("admin.channelMonitor.form.jitterSeconds")),1),q(e("input",{"onUpdate:modelValue":l[8]||(l[8]=d=>n.jitter_seconds=d),type:"number",min:"0",max:S.value,class:"input"},null,8,xn),[[G,n.jitter_seconds,void 0,{number:!0}]]),e("p",kn,a(o(t)("admin.channelMonitor.form.jitterSecondsHint")),1)]),e("div",Mn,[e("label",$n,a(o(t)("admin.channelMonitor.form.enabled")),1),P(De,{modelValue:n.enabled,"onUpdate:modelValue":l[9]||(l[9]=d=>n.enabled=d)},null,8,["modelValue"])]),H.value?(s(),c("details",wn,[e("summary",Cn,a(o(t)("admin.channelMonitor.advanced.section")),1),e("p",Vn,a(o(t)("admin.channelMonitor.advanced.sectionHint")),1),e("div",En,[e("div",null,[e("label",Pn,a(o(t)("admin.channelMonitor.templateField.label")),1),P(Re,{modelValue:x.value,"onUpdate:modelValue":l[10]||(l[10]=d=>x.value=d),options:oe.value,placeholder:o(t)("admin.channelMonitor.templateField.placeholder")},null,8,["modelValue","options","placeholder"]),e("p",On,a(o(t)("admin.channelMonitor.templateField.applyHint")),1)]),P(et,{provider:n.provider,"api-mode":n.api_mode,"extra-headers":n.extra_headers,"body-override-mode":n.body_override_mode,"body-override":n.body_override,"onUpdate:extraHeaders":l[11]||(l[11]=d=>n.extra_headers=d),"onUpdate:bodyOverrideMode":l[12]||(l[12]=d=>n.body_override_mode=d),"onUpdate:bodyOverride":l[13]||(l[13]=d=>n.body_override=d)},null,8,["provider","api-mode","extra-headers","body-override-mode","body-override"])])])):j("",!0)],32)]),_:1},8,["show","title"]),P(uo,{show:W.value,loading:J.value,keys:te.value,provider:n.provider,"user-group-rates":I.value,onClose:l[16]||(l[16]=d=>W.value=!1),onPick:st},null,8,["show","loading","keys","provider","user-group-rates"])],64))}}),Rn={class:"mb-3 text-sm text-gray-600 dark:text-gray-400"},Tn={key:0,class:"py-6 text-center text-sm text-gray-400"},In={key:1,class:"py-6 text-center text-sm text-gray-400"},Un={key:2},Nn={class:"mb-2 flex items-center gap-3 text-xs"},Bn={class:"ml-auto text-gray-500 dark:text-gray-400"},jn={class:"max-h-80 divide-y divide-gray-100 overflow-y-auto rounded-lg border border-gray-200 dark:divide-dark-700 dark:border-dark-700"},Hn=["onClick"],Fn=["checked","onClick"],Ln={class:"font-medium text-gray-900 dark:text-white"},zn={class:"text-xs text-gray-400"},Kn={key:0,class:"text-xs text-gray-400"},qn={key:1,class:"ml-auto rounded bg-gray-100 px-1.5 py-0.5 text-xs text-gray-500 dark:bg-dark-700 dark:text-gray-400"},Gn={class:"flex justify-end gap-2"},Jn=["disabled"],Qn=he({__name:"MonitorTemplateApplyPickerDialog",props:{show:{type:Boolean},templateId:{},templateName:{}},emits:["close","applied"],setup(M,{emit:r}){const p=M,O=r,{t}=_e(),y=Pe(),u=V(!1),g=V(!1),v=V([]),w=V([]),W=U(()=>new Set(w.value));let J=0;Ze(()=>{J++}),ve(()=>[p.show,p.templateId],([S,A])=>{const R=++J;!S||A==null||te(A,R)},{immediate:!0});async function te(S,A){u.value=!0,v.value=[],w.value=[];try{const{items:R}=await ae.channelMonitorTemplate.listAssociatedMonitors(S);if(A!==J)return;v.value=R,w.value=R.map(X=>X.id)}catch(R){if(A!==J)return;y.showError(se(R,t("common.error")))}finally{A===J&&(u.value=!1)}}function I(S){const A=w.value.indexOf(S);A>=0?w.value.splice(A,1):w.value.push(S)}function n(){w.value=v.value.map(S=>S.id)}function _(){w.value=[]}
22async function H(){if(!(p.templateId==null||w.value.length===0||g.value)){g.value=!0;try{const{affected:S}=await ae.channelMonitorTemplate.apply(p.templateId,[...w.value]);y.showSuccess(t("admin.channelMonitor.template.applySuccess",{n:S})),O("applied",S),O("close")}catch(S){y.showError(se(S,t("common.error")))}finally{g.value=!1}}}return(S,A)=>(s(),fe(Ee,{show:M.show,title:o(t)("admin.channelMonitor.template.applyPickerTitle",{name:M.templateName}),onClose:A[1]||(A[1]=R=>S.$emit("close"))},{footer:F(()=>[e("div",Gn,[e("button",{class:"btn btn-secondary",onClick:A[0]||(A[0]=R=>S.$emit("close"))},a(o(t)("common.cancel")),1),e("button",{class:"btn btn-primary",disabled:g.value||w.value.length===0,onClick:H},a(g.value?o(t)("common.submitting"):o(t)("admin.channelMonitor.template.applyPickerConfirm",{n:w.value.length})),9,Jn)])]),default:F(()=>[e("p",Rn,a(o(t)("admin.channelMonitor.template.applyPickerHint")),1),u.value?(s(),c("div",Tn,a(o(t)("common.loading")),1)):v.value.length===0?(s(),c("div",In,a(o(t)("admin.channelMonitor.template.applyPickerEmpty")),1)):(s(),c("div",Un,[e("div",Nn,[e("button",{type:"button",class:"text-primary-600 hover:underline dark:text-primary-400",onClick:n},a(o(t)("common.selectAll")),1),e("button",{type:"button",class:"text-gray-500 hover:underline dark:text-gray-400",onClick:_},a(o(t)("admin.channelMonitor.template.selectNone")),1),e("span",Bn,a(o(t)("admin.channelMonitor.template.selectedCount",{n:w.value.length,total:v.value.length})),1)]),e("ul",jn,[(s(!0),c(Q,null,le(v.value,R=>(s(),c("li",{key:R.id,class:"flex cursor-pointer items-center gap-3 px-3 py-2 hover:bg-gray-50 dark:hover:bg-dark-800",onClick:X=>I(R.id)},[e("input",{type:"checkbox",checked:W.value.has(R.id),class:"h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500",onClick:Ye(X=>I(R.id),["stop"])},null,8,Fn),e("span",Ln,a(R.name),1),e("span",zn,a(R.provider),1),R.provider==="openai"?(s(),c("span",Kn,a(R.api_mode),1)):j("",!0),R.enabled?j("",!0):(s(),c("span",qn,a(o(t)("admin.channelMonitor.onlyDisabled").replace(/^仅|^Only /,"")),1))],8,Hn))),128))])]))]),_:1},8,["show","title"]))}}),Yn={class:"mb-4 border-b border-gray-200 dark:border-dark-700"},Zn={role:"tablist",class:"flex flex-wrap gap-1"},Wn=["aria-selected","onClick"],Xn={key:0,class:"ml-1.5 rounded-full bg-gray-100 px-2 py-0.5 text-xs dark:bg-dark-700"},ea={key:0,class:"space-y-2"},ta={class:"flex justify-end"},oa={key:0,class:"py-8 text-center text-sm text-gray-400"},na={key:1,class:"py-8 text-center text-sm text-gray-400"},aa={class:"flex items-start justify-between gap-3"},ra={class:"min-w-0 flex-1"},la={class:"flex items-center gap-2"},sa={class:"font-medium text-gray-900 dark:text-white"},ia={key:1,class:"text-xs text-gray-500 dark:text-gray-400"},da={key:0,class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},ca={class:"mt-1 text-xs text-gray-400"},ua={class:"flex flex-shrink-0 gap-2"},ma=["disabled","title","onClick"],pa=["onClick"],va=["onClick"],ha={key:1,class:"space-y-4"},_a={class:"input-label"},ya=["placeholder"],ba={key:0},ga={class:"input-label"},fa={class:"grid grid-cols-2 gap-3 sm:grid-cols-4"},xa=["onClick"],ka={key:1,class:"rounded-lg border border-blue-100 bg-blue-50/50 p-3 dark:border-blue-500/20 dark:bg-blue-500/10"},Ma={class:"input-label"},$a={class:"grid gap-3 sm:grid-cols-2"},wa=["onClick"],Ca={class:"block text-sm font-semibold"},Va={class:"mt-0.5 block text-xs opacity-80"},Ea={class:"input-label"},Pa=["placeholder"],Oa={class:"flex w-full items-center justify-between"},Sa={class:"flex gap-2"},Aa=["disabled"],Da=he({__name:"MonitorTemplateManagerDialog",props:{show:{type:Boolean}},emits:["close","updated"],setup(M,{emit:r}){const p=M,O=r,{t}=_e(),y=Pe(),{providerPickerClass:u}=Oe(),g=U(()=>[{value:$e,label:t("monitorCommon.providers.anthropic")},{value:ne,label:t("monitorCommon.providers.openai")},{value:Fe,label:t("monitorCommon.providers.gemini")},{value:ke,label:t("monitorCommon.providers.grok")},{value:Me,label:t("monitorCommon.providers.antigravity")},{value:Te,label:t("monitorCommon.providers.kimi")},{value:Ie,label:t("monitorCommon.providers.zhipu")},{value:Ue,label:t("monitorCommon.providers.deepseek")},{value:Ne,label:t("monitorCommon.providers.minimax")},{value:Be,label:t("monitorCommon.providers.opencode_go")}]),v=V($e),w=V([]),W=V(!1),J=U(()=>w.value.filter(m=>m.provider===v.value)),te=U(()=>{const m=Object.fromEntries(wt.map(T=>[T,0]));for(const T of w.value)m[T.provider]++;return m}),I=V(null),n=V(!1),_=Ce(H($e));function H(m){return{id:null,name:"",provider:m,api_mode:ue,description:"",extra_headers:{},body_override_mode:"off",body_override:null}}function S(m){_.id=m.id,_.name=m.name,_.provider=m.provider,_.api_mode=re(m.api_mode),_.description=m.description,_.extra_headers={...m.extra_headers||{}},_.body_override_mode=m.body_override_mode,_.body_override=m.body_override?{...m.body_override}:null}function A(){Object.assign(_,H(v.value)),I.value="new"}function R(m){S(m),I.value=m.id}function X(){I.value=null}async function oe(){W.value=!0;try{const{items:m}=await ae.channelMonitorTemplate.list();w.value=m}catch(m){y.showError(se(m,t("common.error")))}finally{W.value=!1}}ve(()=>p.show,m=>{m&&(I.value=null,oe())},{immediate:!0});async function de(){if(!n.value){if(!_.name.trim()){y.showError(t("admin.channelMonitor.template.missingName"));return}n.value=!0;try{I.value==="new"?(await ae.channelMonitorTemplate.create({name:_.n
22ame.trim(),provider:_.provider,api_mode:_.provider===ne?_.api_mode:ue,description:_.description.trim(),extra_headers:_.extra_headers,body_override_mode:_.body_override_mode,body_override:_.body_override}),y.showSuccess(t("admin.channelMonitor.template.createSuccess"))):typeof I.value=="number"&&(await ae.channelMonitorTemplate.update(I.value,{name:_.name.trim(),api_mode:_.provider===ne?_.api_mode:ue,description:_.description.trim(),extra_headers:_.extra_headers,body_override_mode:_.body_override_mode,body_override:_.body_override}),y.showSuccess(t("admin.channelMonitor.template.updateSuccess"))),await oe(),O("updated"),I.value=null}catch(m){y.showError(se(m,t("common.error")))}finally{n.value=!1}}}const x=Ce({show:!1,tpl:null});function $(m){x.tpl=m,x.show=!0}async function N(m){await oe(),O("updated")}const B=Ce({show:!1,tpl:null});function Y(m){B.tpl=m,B.show=!0}const ye=U(()=>{const m=B.tpl;return m?t("admin.channelMonitor.template.deleteConfirm",{name:m.name,n:m.associated_monitors}):""});async function xe(){const m=B.tpl;if(B.show=!1,!!m)try{await ae.channelMonitorTemplate.del(m.id),y.showSuccess(t("admin.channelMonitor.template.deleteSuccess")),await oe(),O("updated")}catch(T){y.showError(se(T,t("common.error")))}}function ee(m){return v.value===m?"border-b-2 border-primary-500 text-primary-600 dark:text-primary-400":"border-b-2 border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"}function k(m){switch(m){case"merge":return"bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300";case"replace":return"bg-purple-100 text-purple-700 dark:bg-purple-500/15 dark:text-purple-300";default:return"bg-gray-100 text-gray-600 dark:bg-dark-700 dark:text-gray-300"}}function h(m){return t(`admin.channelMonitor.advanced.bodyMode${m.charAt(0).toUpperCase()}${m.slice(1)}`)}const L=U(()=>[{value:ue,label:t("admin.channelMonitor.form.apiModeChatCompletions"),hint:t("admin.channelMonitor.form.apiModeChatCompletionsHint")},{value:ge,label:t("admin.channelMonitor.form.apiModeResponses"),hint:t("admin.channelMonitor.form.apiModeResponsesHint")}]);ve(()=>_.provider,m=>{m!==ne&&(_.api_mode=ue)});function re(m){return m===ge?ge:ue}function f(m){return _.api_mode===m?"border-primary-500 bg-white text-primary-700 shadow-sm dark:border-primary-400 dark:bg-primary-500/15 dark:text-primary-300":"border-blue-100 bg-white/70 text-gray-600 hover:border-primary-300 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-400"}function ce(m){return re(m)===ge?t("admin.channelMonitor.form.apiModeResponses"):t("admin.channelMonitor.form.apiModeChatCompletions")}function me(m){return re(m)===ge?"bg-blue-100 text-blue-700 dark:bg-blue-500/15 dark:text-blue-300":"bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300"}return(m,T)=>(s(),c(Q,null,[P(Ee,{show:M.show,title:o(t)("admin.channelMonitor.template.managerTitle"),width:"wide",onClose:T[6]||(T[6]=b=>m.$emit("close"))},{footer:F(()=>[e("div",Oa,[e("div",null,[I.value?(s(),c("button",{key:0,class:"btn btn-secondary",onClick:X},a(o(t)("common.back")),1)):j("",!0)]),e("div",Sa,[e("button",{class:"btn btn-secondary",onClick:T[5]||(T[5]=b=>m.$emit("close"))},a(o(t)("common.close")),1),I.value?(s(),c("button",{key:0,class:"btn btn-primary",disabled:n.value,onClick:de},a(n.value?o(t)("common.submitting"):I.value==="new"?o(t)("common.create"):o(t)("common.update")),9,Aa)):j("",!0)])])]),default:F(()=>[e("div",Yn,[e("div",Zn,[(s(!0),c(Q,null,le(g.value,b=>(s(),c("button",{key:b.value,type:"button",role:"tab","aria-selected":v.value===b.value,class:K(["px-4 py-2 text-sm font-medium transition-colors",ee(b.value)]),onClick:pe=>v.value=b.value},[z(a(b.label)+" ",1),te.value[b.value]>0?(s(),c("span",Xn,a(te.value[b.value]),1)):j("",!0)],10,Wn))),128))])]),I.value?(s(),c("div",ha,[e("div",null,[e("label",_a,[z(a(o(t)("admin.channelMonitor.template.form.name"))+" ",1),T[9]||(T[9]=e("span",{class:"text-red-500"},"*",-1))]),q(e("input",{"onUpdate:modelValue":T[0]||(T[0]=b=>_.name=b),type:"text",required:"",class:"input",placeholder:o(t)("admin.channelMonitor.template.form.namePlaceholder")},null,8,ya),[[G,_.name]])]),I.value==="new"?(s(),c("div",ba,[e("label",ga,[z(a(o(t)("admin.channelMonitor.form.provider"))+" ",1),T[10]||(T[10]=e("span",{class:"text-red-500"},"*",-1))]),e("div",fa,[(s(!0),c(Q,null,le(g.value,b=>(s(),c("button",{key:b.value,type:"button",class:K(["rounded-lg border-2 px-3 py-2 text-sm font-medium transition-colors",o(u)(b.value,_.provider===b.value)]),onClick:pe=>_.provider=b.value},a(b.label),11,xa))),128))])])):j("",!0),_.provider===o(ne)?(s(),c("div",ka,[e("label",Ma,a(o(t)("admin.channelMonitor.form.apiMode")),1),e("div",$a,[(s(!0),c(Q,null,le(L.value,b=>(s(),c("button",{key:b.value,type:"button",class:K(["rounded-lg border-2 px-3 py-2 text-left transition-colors",f(b.value)]),onClick:pe=>_.api_mode=b.value},[e("span",Ca,a(b.label),1),e("span",Va,a(b.hint),1)],10,wa))),128))])])):j("",!0),e("div",null,[e("label",Ea,a(o(t)("admin.channelMonitor.template.form.description")),1),q(e("input",{"onUpdate:modelValue":T[1]||(T[1]=b=>_.description=b),type:"text",class:"input",placeholder:o(t)("admin.channelMonitor.template.form.descriptionPlaceholder")},null,8,Pa),[[G,_.description]])]),P(et,{provider:_.provider,"api-mode":_.api_mode,"extra-headers":_.extra_headers,"body-override-mode":_.body_override_mode,"body-override":_.body_override,"onUpdate:extraHeaders":T[2]||(T[2]=b=>_.extra_headers=b),"onUpdate:bodyOverrideMode":T[3]||(T[3]=b=>_.body_override_mode=b),"onUpdate:bodyOverride":T[4]||(T[4]=b=>_.body_override=b)},null,8,["provider","api-mode","extra-headers","body-override-mode","body-override"])])):(s(),c("div",ea,[e("div",ta,[e("button",{class:"btn btn-primary btn-sm",onClick:A},[P(ie,{name:"plus",size:"sm",class:"mr-1"}
22),z(" "+a(o(t)("admin.channelMonitor.template.createButton")),1)])]),W.value?(s(),c("div",oa,a(o(t)("common.loading")),1)):J.value.length===0?(s(),c("div",na,a(o(t)("admin.channelMonitor.template.emptyState")),1)):(s(!0),c(Q,{key:2},le(J.value,b=>(s(),c("div",{key:b.id,class:"rounded-lg border border-gray-200 bg-white p-4 dark:border-dark-700 dark:bg-dark-800"},[e("div",aa,[e("div",ra,[e("div",la,[e("span",sa,a(b.name),1),e("span",{class:K(["inline-flex items-center rounded-md px-1.5 py-0.5 text-xs",k(b.body_override_mode)])},a(h(b.body_override_mode)),3),b.provider===o(ne)?(s(),c("span",{key:0,class:K(["inline-flex items-center rounded-md px-1.5 py-0.5 text-xs",me(b.api_mode)])},a(ce(b.api_mode)),3)):j("",!0),b.associated_monitors>0?(s(),c("span",ia,a(o(t)("admin.channelMonitor.template.associatedCount",{n:b.associated_monitors})),1)):j("",!0)]),b.description?(s(),c("p",da,a(b.description),1)):j("",!0),e("p",ca,a(o(t)("admin.channelMonitor.template.headersSummary",{n:Object.keys(b.extra_headers||{}).length})),1)]),e("div",ua,[e("button",{class:"btn btn-secondary btn-sm",disabled:b.associated_monitors===0,title:o(t)("admin.channelMonitor.template.applyTooltip"),onClick:pe=>$(b)},[P(ie,{name:"refresh",size:"sm",class:"mr-1"}),z(" "+a(o(t)("admin.channelMonitor.template.applyButton")),1)],8,ma),e("button",{class:"btn btn-secondary btn-sm",onClick:pe=>R(b)},a(o(t)("common.edit")),9,pa),e("button",{class:"btn btn-secondary btn-sm text-red-600",onClick:pe=>Y(b)},a(o(t)("common.delete")),9,va)])])]))),128))]))]),_:1},8,["show","title"]),P(Qn,{show:x.show,"template-id":x.tpl?x.tpl.id:null,"template-name":x.tpl?x.tpl.name:"",onClose:T[7]||(T[7]=b=>x.show=!1),onApplied:N},null,8,["show","template-id","template-name"]),P(Je,{show:B.show,title:o(t)("common.delete"),message:ye.value,"confirm-text":o(t)("common.delete"),"cancel-text":o(t)("common.cancel"),danger:!0,onConfirm:xe,onCancel:T[8]||(T[8]=b=>B.show=!1)},null,8,["show","title","message","confirm-text","cancel-text"])],64))}}),Ra={class:"space-y-2"},Ta={class:"flex flex-col"},Ia={class:"font-medium text-gray-900 dark:text-white"},Ua={key:0,class:"text-xs text-gray-500 dark:text-gray-400"},Na={class:"flex items-center gap-2"},Ba={class:"text-xs text-gray-500 dark:text-gray-400"},ja={class:"flex justify-end"},Ha=he({__name:"MonitorRunResultDialog",props:{show:{type:Boolean},results:{}},emits:["close"],setup(M){const{t:r}=_e(),{statusLabel:p,statusBadgeClass:O,formatLatency:t,formatMonitorModel:y}=Oe();return(u,g)=>(s(),fe(Ee,{show:M.show,title:o(r)("admin.channelMonitor.runResultTitle"),width:"normal",onClose:g[1]||(g[1]=v=>u.$emit("close"))},{footer:F(()=>[e("div",ja,[e("button",{onClick:g[0]||(g[0]=v=>u.$emit("close")),class:"btn btn-primary"},a(o(r)("common.close")),1)])]),default:F(()=>[e("div",Ra,[(s(!0),c(Q,null,le(M.results,v=>(s(),c("div",{key:v.model,class:"flex items-center justify-between rounded-lg border border-gray-200 px-3 py-2 text-sm dark:border-dark-600"},[e("div",Ta,[e("span",Ia,a(o(y)(v.model)),1),v.message?(s(),c("span",Ua,a(v.message),1)):j("",!0),P(Xe,{snapshot:v.quota,class:"mt-1"},null,8,["snapshot"])]),e("div",Na,[e("span",{class:K(["inline-flex items-center rounded-full px-2 py-0.5 text-[11px]",o(O)(v.status)])},a(o(p)(v.status)),3),e("span",Ba,a(o(t)(v.latency_ms))+" ms",1)])]))),128))])]),_:1},8,["show","title"]))}}),Fa={class:"flex flex-col gap-0.5"},La={class:"flex items-center gap-2"},za={class:"text-sm text-gray-900 dark:text-gray-100"},Ka={class:"space-y-2"},qa={class:"text-xs font-semibold text-gray-100"},Ga={key:0,class:"text-[11px] text-gray-300"},Ja={key:1,class:"space-y-1"},Qa={class:"text-[11px] font-semibold uppercase tracking-wide text-gray-400"},Ya={class:"w-full text-left text-[11px]"},Za={class:"text-gray-400"},Wa={class:"py-0.5 pr-2 font-medium"},Xa={class:"py-0.5 pr-2 font-medium"},er={class:"py-0.5 font-medium"},tr={class:"py-0.5 pr-2 text-gray-100"},or={class:"py-0.5 pr-2"},nr={class:"py-0.5 text-gray-100"},ar=he({__name:"MonitorPrimaryModelCell",props:{row:{}},setup(M){const{t:r}=_e(),{statusLabel:p,statusBadgeClass:O,formatLatency:t,formatMonitorModel:y}=Oe();return(u,g)=>(s(),c("div",Fa,[e("div",La,[e("span",za,a(o(y)(M.row.primary_model)),1),P(Qe,null,{trigger:F(()=>[e("span",{class:K(["inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium",o(O)(M.row.primary_status)])},a(o(p)(M.row.primary_status)),3)]),default:F(()=>{var v;return[e("div",Ka,[e("div",qa,[z(a(o(y)(M.row.primary_model))+" ",1),e("span",{class:K(["ml-1 inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px] font-medium",o(O)(M.row.primary_status)])},a(o(p)(M.row.primary_status)),3)]),(((v=M.row.extra_models)==null?void 0:v.length)??0)===0?(s(),c("div",Ga,a(o(r)("monitorCommon.extraModelsEmpty")),1)):(s(),c("div",Ja,[e("div",Qa,a(o(r)("monitorCommon.extraModelsHeader")),1),e("table",Ya,[e("thead",null,[e("tr",Za,[e("th",Wa,a(o(r)("admin.channelMonitor.columns.primaryModel")),1),e("th",Xa,a(o(r)("admin.channelMonitor.columns.actions")),1),e("th",er,a(o(r)("admin.channelMonitor.columns.latency")),1)])]),e("tbody",null,[(s(!0),c(Q,null,le(M.row.extra_models_status||[],w=>(s(),c("tr",{key:w.model},[e("td",tr,a(w.model),1),e("td",or,[e("span",{class:K(["inline-flex items-center rounded-full px-1.5 py-0.5 text-[10px]",o(O)(w.status)])},a(o(p)(w.status)),3)]),e("td",nr,a(o(t)(w.latency_ms)),1)]))),128))])])]))])]}),_:1})]),P(Xe,{snapshot:M.row.latest_quota}
22,null,8,["snapshot"])]))}}),rr={class:"flex items-center gap-1"},lr=["disabled"],sr={class:"text-xs"},ir=["title","disabled"],dr={class:"text-xs"},cr={class:"text-xs"},ur={class:"text-xs"},mr=he({__name:"MonitorActionsCell",props:{row:{},running:{type:Boolean},duplicating:{type:Boolean}},emits:["run","duplicate","edit","delete"],setup(M){const r=M,{t:p}=_e(),O=U(()=>r.row.api_key_decrypt_failed?p("admin.channelMonitor.duplicateKeyUnavailable"):r.duplicating?p("admin.channelMonitor.duplicating"):p("admin.channelMonitor.duplicate"));return(t,y)=>(s(),c("div",rr,[e("button",{onClick:y[0]||(y[0]=u=>t.$emit("run",M.row)),disabled:M.running,class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-primary-600 dark:hover:bg-dark-700 dark:hover:text-primary-400"},[P(ie,{name:"refresh",size:"sm",class:K(M.running?"animate-spin":"")},null,8,["class"]),e("span",sr,a(o(p)("admin.channelMonitor.runNow")),1)],8,lr),e("button",{"data-testid":"monitor-duplicate",title:O.value,disabled:M.duplicating||!!M.row.api_key_decrypt_failed,onClick:y[1]||(y[1]=u=>t.$emit("duplicate",M.row)),class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-primary-600 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-dark-700 dark:hover:text-primary-400"},[P(ie,{name:"copy",size:"sm"}),e("span",dr,a(M.duplicating?o(p)("admin.channelMonitor.duplicating"):o(p)("admin.channelMonitor.duplicate")),1)],8,ir),e("button",{onClick:y[2]||(y[2]=u=>t.$emit("edit",M.row)),class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-primary-600 dark:hover:bg-dark-700 dark:hover:text-primary-400"},[P(ie,{name:"edit",size:"sm"}),e("span",cr,a(o(p)("common.edit")),1)]),e("button",{onClick:y[3]||(y[3]=u=>t.$emit("delete",M.row)),class:"flex flex-col items-center gap-0.5 rounded-lg p-1.5 text-gray-500 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20 dark:hover:text-red-400"},[P(ie,{name:"trash",size:"sm"}),e("span",ur,a(o(p)("common.delete")),1)])]))}}),pr={class:"mx-auto w-full max-w-6xl space-y-5 px-1 py-2 sm:px-2"},vr={class:"page-header mb-0 flex flex-wrap items-center justify-between gap-3 rounded-3xl bg-white p-5 shadow-sm ring-1 ring-gray-900/5 dark:bg-dark-800 dark:ring-dark-700 sm:p-6"},hr={class:"min-w-0"},_r={class:"page-title flex items-center gap-2 text-xl font-black text-gray-900 dark:text-white"},yr={class:"inline-flex h-8 w-8 items-center justify-center rounded-xl bg-blue-50 text-blue-500 dark:bg-blue-900/30 dark:text-blue-400"},br={class:"page-description mt-1.5 text-xs text-gray-500 dark:text-gray-400"},gr=["disabled"],fr={key:0,class:"rounded-2xl border border-amber-200 bg-amber-50/90 px-4 py-3 text-sm text-amber-900 dark:border-amber-800/50 dark:bg-amber-900/20 dark:text-amber-100",role:"status"},xr={key:1,class:"card flex min-h-[200px] items-center justify-center !rounded-3xl !border-0 text-sm text-gray-400 shadow-sm ring-1 ring-gray-900/5 dark:ring-dark-700"},kr={class:"animate-pulse"},Mr={class:"card divide-y divide-gray-100 !rounded-3xl !border-0 shadow-sm ring-1 ring-gray-900/5 dark:divide-dark-700 dark:!bg-dark-800 dark:ring-dark-700"},$r={class:"flex flex-wrap items-center justify-between gap-4 px-5 py-4"},wr={class:"text-sm font-semibold text-gray-900 dark:text-white"},Cr={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},Vr={class:"flex flex-wrap items-center justify-between gap-4 px-5 py-4"},Er={class:"text-sm font-semibold text-gray-900 dark:text-white"},Pr={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},Or=["aria-label"],Sr={class:"card overflow-hidden !rounded-3xl !border-0 shadow-sm ring-1 ring-gray-900/5 dark:!bg-dark-800 dark:ring-dark-700"},Ar={class:"card-header !py-3"},Dr={class:"text-sm font-semibold text-gray-900 dark:text-white"},Rr={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},Tr={class:"divide-y divide-gray-100 dark:divide-dark-700"},Ir={class:"text-sm font-medium text-gray-900 dark:text-white"},Ur=["value","placeholder","onChange"],Nr={class:"card overflow-hidden !rounded-3xl !border-0 shadow-sm ring-1 ring-gray-900/5 dark:!bg-dark-800 dark:ring-dark-700"},Br={class:"card-header flex flex-wrap items-center justify-between gap-2 !py-3"},jr={class:"text-sm font-semibold text-gray-900 dark:text-white"},Hr={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},Fr={class:"max-h-[min(40vh,280px)] overflow-y-auto px-3 py-2 sm:px-4"},Lr={class:"grid grid-cols-1 gap-1 sm:grid-cols-2"},zr=["checked","onChange"],Kr={class:"min-w-0 flex-1 truncate font-medium text-gray-800 dark:text-gray-100"},qr={class:"shrink-0 text-xs text-gray-400"},Gr={key:0,class:"empty-state py-8 text-sm text-gray-400"},Jr={class:"card overflow-hidden !rounded-3xl !border-0 shadow-sm ring-1 ring-gray-900/5 dark:!bg-dark-800 dark:ring-dark-700"},Qr={class:"card-header !py-3"},Yr={class:"text-sm font-semibold text-gray-900 dark:text-white"},Zr={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},Wr={class:"max-h-[min(40vh,320px)] overflow-y-auto px-3 py-2 sm:px-4"},Xr={class:"grid grid-cols-1 gap-1 sm:grid-cols-2"},el=["checked","onChange"],tl={class:"min-w-0 flex-1 truncate font-medium text-gray-800 dark:text-gray-100"},ol={class:"shrink-0 font-mono text-[10px] text-gray-400"},nl={class:"border-t border-gray-100 px-5 py-3 text-xs text-gray-500 dark:border-dark-700 dark:text-dark-400"},al={class:"card overflow-hidden !rounded-3xl !border-0 shadow-sm ring-1 ring-gray-900/5 dark:!bg-dark-800 dark:ring-dark-700"},rl={class:"card-header !py-3"},ll={class:"text-sm font-semibold text-gray-900 dark:text-white"},sl={class:"mt-0.5 text-xs text-gray-500 dark:text-dark-400"},il={class:"grid grid-cols-1 gap-4 px-5 py-4 sm:grid-cols-2 lg:grid-cols-4"},dl={class:"block"},cl={class:"input-label"},ul={class:"block"},ml={class:"input-label"},pl={class:"block"},vl={class:"input-label"},hl={class:"block"},_l={class:"input-label"},yl={class:"block"},bl={class:"input-label"},gl={class:"block"},fl={class:"input-label"},xl={class:"block"},kl={class:"input-label"},Ml={class:"block"},$l={class:"input-label"},wl={class:"space-y-2"},Cl={class:"rounded-2xl border border-primary-200 bg-primary-50/80 px-4 py-3 text-sm text-primary-900 dark:border-primary-800/50 dark:bg-primary-900/20 dark:text-primary-100"},Vl={class:"rounded-2xl border border-gray-200 bg-gray-50/80 px-4 py-3 text-xs text-gray-600 dark:border-dark-600 dark:bg-dark-800/50 dark:text-gray-300"},El={class:"font-medium text-gray-800 dark:text-gray-100"},Pl={class:"mt-1.5 list-disc space-y-0.5 pl-4"},Ol=he({__name:"MonitorSettingsPanel",setup(M){const{t:r,te:p}=_e(),O=Pe(),t=V(!0),y=V(!1),u=V(null),g=V(""),v=V([]),w=U(()=>u.value?JSON.stringify(u.value)!==g.value:!1),W=U(()=>{var k;return((k=u.value)==null?void 0:k.platforms.filter(h=>h.enabled).reduce((h,L)=>h+L.models.length,0))||0}),J=Ct,te=U(()=>{var k,h;return J.length-(((h=(k=u.value)==null?void 0:k.ignored_error_categories)==null?void 0:h.length)||0)}),I=U(()=>dt()),n=U(()=>{var k;return(k=O.cachedPublicSettings)!=null&&k.channel_monitor_enabled?ct()==="v1"?r("channelMonitorV2.settings.modeV1"):r("channelMonitorV2.settings.modeV2"):r("channelMonitorV2.settings.modeClosed")}),_={minimum_sample:50,warning_error_rate:.05,critical_error_rate:.2,target_ttft_ms:3e3,warning_ttft_ms:3e3,critical_ttft_ms:1e4,warning_cache_rate:.85,critical_cache_rate:.6,error_weight:.6,ttft_weight:.2,cache_weight:.2},H=["authentication","client_cancelled","content_policy","context_limit","group_access","model_unsupported","not_found","quota_or_balance"];function S(k){return U({get:()=>{var h,L;return(((L=(h=u.value)==null?void 0:h.health_thresholds)==null?void 0:L[k])??_[k])*100},set:h=>{u.value&&(u.value.health_thresholds[k]=Math.max(0,Math.min(100,Number(h)||0))/100)}})}const A=S("warning_error_rate"),R=S("critical_error_rate"),X=S("warning_cache_rate"),oe=S("critical_cache_rate");function de(k,h){k.models=[...new Set(h.target.value.split(",").map(L=>
22L.trim()).filter(Boolean))].sort()}function x(k){u.value&&(u.value.group_ids=u.value.group_ids.includes(k)?u.value.group_ids.filter(h=>h!==k):[...u.value.group_ids,k].sort((h,L)=>h-L))}function $(k){var h,L;return!!((L=(h=u.value)==null?void 0:h.ignored_error_categories)!=null&&L.includes(k))}function N(k){if(!u.value)return;const h=new Set(u.value.ignored_error_categories||[]);h.has(k)?h.delete(k):h.add(k),u.value.ignored_error_categories=[...h].sort()}function B(k){const h=`channelMonitorV2.errorCategories.${k}`;return p(h)?r(h):k}function Y(k){return{anthropic:"Claude",openai:"OpenAI",grok:"Grok",kiro:"Kiro",gemini:"Gemini",antigravity:"Antigravity",kimi:"Kimi",zhipu:"Zhipu GLM",deepseek:"DeepSeek",minimax:"MiniMax",composite:"Composite"}[k]||k}function ye(k){const h=k.ignored_error_categories;return{...k,health_thresholds:{..._,...k.health_thresholds||{}},ignored_error_categories:[...h??[...H]].sort()}}async function xe(){t.value=!0;try{const[k,h]=await Promise.all([Vt(),ae.groups.getAllIncludingInactive()]),L=ye(k);u.value=structuredClone(L),v.value=h,g.value=JSON.stringify(L)}catch(k){O.showError(se(k,r("channelMonitorV2.settings.loadFailed")))}finally{t.value=!1}}async function ee(){if(u.value){y.value=!0;try{const k=ye(u.value),h=await Et(k),L=ye(h);u.value=structuredClone(L),g.value=JSON.stringify(L),O.showSuccess(r("channelMonitorV2.settings.saveSuccess"))}catch(k){O.showError(se(k,r("channelMonitorV2.settings.saveFailed"))),await xe()}finally{y.value=!1}}}return We(xe),(k,h)=>{var re;const L=_t("router-link");return s(),c("section",pr,[e("header",vr,[e("div",hr,[e("h2",_r,[e("span",yr,[P(ie,{name:"chart",size:"sm"})]),z(" "+a(o(r)("channelMonitorV2.settings.title")),1)]),e("p",br,a(o(r)("channelMonitorV2.settings.description")),1)]),e("button",{type:"button",class:"btn btn-primary",disabled:y.value||!w.value,onClick:ee},[P(ie,{name:"check",size:"sm"}),z(" "+a(o(r)("channelMonitorV2.settings.save")),1)],8,gr)]),I.value?j("",!0):(s(),c("div",fr,[z(a(o(r)("channelMonitorV2.settings.modeBanner",{mode:n.value,modeV2:o(r)("channelMonitorV2.settings.modeV2")}))+" ",1),P(L,{class:"ml-1 font-medium underline",to:"/admin/settings"},{default:F(()=>[z(a(o(r)("admin.settings.tabs.features")),1)]),_:1})])),t.value?(s(),c("div",xr,[e("span",kr,a(o(r)("channelMonitorV2.settings.loading")),1)])):u.value?(s(),c(Q,{key:2},[e("div",Mr,[e("div",$r,[e("div",null,[e("strong",wr,a(o(r)("channelMonitorV2.settings.enableTitle")),1),e("p",Cr,a(o(r)("channelMonitorV2.settings.enableHint")),1)]),P(De,{modelValue:u.value.enabled,"onUpdate:modelValue":h[0]||(h[0]=f=>u.value.enabled=f)},null,8,["modelValue"])]),e("div",Vr,[e("div",null,[e("strong",Er,a(o(r)("channelMonitorV2.settings.refreshTitle")),1),e("p",Pr,a(o(r)("channelMonitorV2.settings.refreshHint")),1)]),e("div",{class:"tabs inline-flex w-auto",role:"group","aria-label":o(r)("channelMonitorV2.settings.refreshAria")},[e("button",{type:"button",class:K(["tab",u.value.refresh_interval_seconds===60?"tab-active":""]),onClick:h[1]||(h[1]=f=>u.value.refresh_interval_seconds=60)}," 1 min ",2),e("button",{type:"button",class:K(["tab",u.value.refresh_interval_seconds===300?"tab-active":""]),onClick:h[2]||(h[2]=f=>u.value.refresh_interval_seconds=300)}," 5 min ",2)],8,Or)])]),e("div",Sr,[e("div",Ar,[e("h3",Dr,a(o(r)("channelMonitorV2.settings.platformsTitle")),1),e("p",Rr,a(o(r)("channelMonitorV2.settings.platformsHint")),1)]),e("div",Tr,[(s(!0),c(Q,null,le(u.value.platforms,f=>(s(),c("div",{key:f.platform,class:"grid grid-cols-1 items-center gap-3 px-5 py-3 sm:grid-cols-[auto_7rem_minmax(0,1fr)_auto]"},[P(De,{modelValue:f.enabled,"onUpdate:modelValue":ce=>f.enabled=ce},null,8,["modelValue","onUpdate:modelValue"]),e("strong",Ir,a(Y(f.platform)),1),e("input",{class:"input",value:f.models.join(", "),type:"text",placeholder:o(r)("channelMonitorV2.settings.modelsPlaceholder"),onChange:ce=>de(f,ce)},null,40,Ur),e("span",{class:K(["badge justify-self-start sm:justify-self-end",f.models.length?"badge-gray":"badge badge-primary"])},a(f.models.length?o(r)("channelMonitorV2.settings.badgeOther"):o(r)("channelMonitorV2.settings.badgeAllModels")),3)]
22))),128))])]),e("div",Nr,[e("div",Br,[e("div",null,[e("h3",jr,a(o(r)("channelMonitorV2.settings.groupsTitle")),1),e("p",Hr,a(u.value.group_ids.length?o(r)("channelMonitorV2.settings.groupsSelected",{count:u.value.group_ids.length}):o(r)("channelMonitorV2.settings.groupsAll")),1)]),u.value.group_ids.length?(s(),c("button",{key:0,type:"button",class:"btn btn-ghost btn-sm",onClick:h[3]||(h[3]=f=>u.value.group_ids=[])},a(o(r)("channelMonitorV2.settings.groupsAll")),1)):j("",!0)]),e("div",Fr,[e("div",Lr,[(s(!0),c(Q,null,le(v.value,f=>(s(),c("label",{key:f.id,class:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-sm transition hover:bg-gray-50 dark:hover:bg-dark-800/60"},[e("input",{type:"checkbox",class:"h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500/40",checked:u.value.group_ids.includes(f.id),onChange:ce=>x(f.id)},null,40,zr),e("span",Kr,a(f.name),1),e("small",qr,a(Y(f.platform))+" · #"+a(f.id),1)]))),128))]),v.value.length===0?(s(),c("p",Gr,a(o(r)("channelMonitorV2.settings.groupsEmpty")),1)):j("",!0)])]),e("div",Jr,[e("div",Qr,[e("h3",Yr,a(o(r)("channelMonitorV2.settings.errorsTitle")),1),e("p",Zr,a(o(r)("channelMonitorV2.settings.errorsHint")),1)]),e("div",Wr,[e("div",Xr,[(s(!0),c(Q,null,le(o(J),f=>(s(),c("label",{key:f,class:"flex cursor-pointer items-center gap-3 rounded-xl px-3 py-2.5 text-sm transition hover:bg-gray-50 dark:hover:bg-dark-800/60"},[e("input",{type:"checkbox",class:"h-4 w-4 rounded border-gray-300 text-primary-600 focus:ring-primary-500/40",checked:$(f),onChange:ce=>N(f)},null,40,el),e("span",tl,a(B(f)),1),e("small",ol,a(f),1)]))),128))])]),e("div",nl,a(o(r)("channelMonitorV2.settings.ignoredSummary",{ignored:((re=u.value.ignored_error_categories)==null?void 0:re.length)||0,counted:te.value})),1)]),e("div",al,[e("div",rl,[e("h3",ll,a(o(r)("channelMonitorV2.settings.healthTitle")),1),e("p",sl,a(o(r)("channelMonitorV2.settings.healthHint")),1)]),e("div",il,[e("label",dl,[e("span",cl,a(o(r)("channelMonitorV2.settings.fields.minimumSample")),1),q(e("input",{"onUpdate:modelValue":h[4]||(h[4]=f=>u.value.health_thresholds.minimum_sample=f),class:"input",type:"number",min:"1",max:"10000"},null,512),[[G,u.value.health_thresholds.minimum_sample,void 0,{number:!0}]])]),e("label",ul,[e("span",ml,a(o(r)("channelMonitorV2.settings.fields.warningError")),1),q(e("input",{"onUpdate:modelValue":h[5]||(h[5]=f=>Ae(A)?A.value=f:null),class:"input",type:"number",min:"0",max:"100",step:"0.1"},null,512),[[G,o(A),void 0,{number:!0}]])]),e("label",pl,[e("span",vl,a(o(r)("channelMonitorV2.settings.fields.criticalError")),1),q(e("input",{"onUpdate:modelValue":h[6]||(h[6]=f=>Ae(R)?R.value=f:null),class:"input",type:"number",min:"0",max:"100",step:"0.1"},null,512),[[G,o(R),void 0,{number:!0}]])]),e("label",hl,[e("span",_l,a(o(r)("channelMonitorV2.settings.fields.targetTtft")),1),q(e("input",{"onUpdate:modelValue":h[7]||(h[7]=f=>u.value.health_thresholds.target_ttft_ms=f),class:"input",type:"number",min:"1",step:"100"},null,512),[[G,u.value.health_thresholds.target_ttft_ms,void 0,{number:!0}]])]),e("label",yl,[e("span",bl,a(o(r)("channelMonitorV2.settings.fields.warningTtft")),1),q(e("input",{"onUpdate:modelValue":h[8]||(h[8]=f=>u.value.health_thresholds.warning_ttft_ms=f),class:"input",type:"number",min:"1",step:"100"},null,512),[[G,u.value.health_thresholds.warning_ttft_ms,void 0,{number:!0}]])]),e("label",gl,[e("span",fl,a(o(r)("channelMonitorV2.settings.fields.criticalTtft")),1),q(e("input",{"onUpdate:modelValue":h[9]||(h[9]=f=>u.value.health_thresholds.critical_ttft_ms=f),class:"input",type:"number",min:"1",step:"100"},null,512),[[G,u.value.health_thresholds.critical_ttft_ms,void 0,{number:!0}]])]),e("label",xl,[e("span",kl,a(o(r)("channelMonitorV2.settings.fields.warningCache")),1),q(e("input",{"onUpdate:modelValue":h[10]||(h[10]=f=>Ae(X)?X.value=f:null),class:"input",type:"number",min:"0",max:"100",step:"0.1"},null,512),[[G,o(X),void 0,{number:!0}]])]),e("label",Ml,[e("span",$l,a(o(r)("channelMonitorV2.settings.fields.criticalCache")),1),q(e("input",{"onUpdate:modelValue":h[11]||(h[11]=f=>Ae(oe)?oe.value=f:null),class:"input",type:"number",min:"0",max:"100",step:"0.1"},null,512),[[G,o(oe),void 0,{number:!0}]])])])]),e("div",wl,[e("div",Cl,[W.value===0?(s(),c(Q,{key:0},[z(a(o(r)("channelMonitorV2.settings.namedModelsEmpty")),1)],64)):(s(),c(Q,{key:1},[z(a(o(r)("channelMonitorV2.settings.namedModelsCount",{count:W.value})),1)],64))]),e("div",Vl,[e("p",El,a(o(r)("channelMonitorV2.settings.userContractTitle")),1),e("ul",Pl,[e("li",null,a(o(r)("channelMonitorV2.settings.userContract.health")),1),e("li",null,a(o(r)("channelMonitorV2.settings.userContract.trend")),1),e("li",null,a(o(r)("channelMonitorV2.settings.userContract.latency")),1),e("li",null,a(o(r)("channelMonitorV2.settings.userContract.models")),1)])])])],64)):j("",!0)])}}}),Sl={class:"w-full min-w-0 space-y-6 pb-8"},Al={class:"page-header mb-0 rounded-3xl bg-white p-5 shadow-sm ring-1 ring-gray-900/5 dark:bg-dark-800 dark:ring-dark-700 sm:p-6"},Dl={class:"page-title flex items-center gap-2 text-xl font-black text-gray-900 dark:text-white"},Rl={class:"inline-flex h-8 w-8 items-center justify-center rounded-xl bg-blue-50 text-blue-500 dark:bg-blue-900/30 dark:text-blue-400"},Tl={class:"page-description mt-1.5 text-xs text-gray-500 dark:text-gray-400"},Il={class:"mt-4 border-t border-gray-100 pt-4 dark:border-dark-700"},Ul=["aria-label"],Nl=["aria-selected"],Bl=["aria-selected"],jl={class:"flex items-center gap-1.5"},Hl={class:"font-medium text-gray-900 dark:text-white"}
22,Fl={class:"text-sm text-gray-900 dark:text-gray-100"},Ll={class:"text-sm text-gray-900 dark:text-gray-100"},gs=he({__name:"ChannelMonitorView",setup(M){const{t:r}=_e(),p=Pe(),O=U(()=>Ke()),t=V(Ke()?"legacy":"v2"),{providerLabel:y,providerBadgeClass:u,checkModeLabel:g,checkModeBadgeClass:v,formatLatency:w,formatAvailability:W}=Oe(),J=V([]),te=V(!1),I=V(null),n=V(""),_=V(""),H=V(""),S=Ce({page:1,page_size:Tt(),total:0}),A=V(!1),R=V(!1),X=V(null),oe=V(!1),de=V(null),x=V(!1),$=V([]),N=Ce(new Set);let B=null,Y=null;const ye=U(()=>[{key:"name",label:r("admin.channelMonitor.columns.name"),sortable:!1},{key:"provider",label:r("admin.channelMonitor.columns.provider"),sortable:!1},{key:"primary_model",label:r("admin.channelMonitor.columns.primaryModel"),sortable:!1},{key:"availability_7d",label:r("admin.channelMonitor.columns.availability7d"),sortable:!1},{key:"latency",label:r("admin.channelMonitor.columns.latency"),sortable:!1},{key:"enabled",label:r("admin.channelMonitor.columns.enabled"),sortable:!1},{key:"actions",label:r("admin.channelMonitor.columns.actions"),sortable:!1}]),xe=U(()=>{var E;const D=((E=de.value)==null?void 0:E.name)||"";return r("admin.channelMonitor.deleteConfirm",{name:D})});async function ee(){B&&B.abort();const D=new AbortController;B=D,te.value=!0;try{const E={page:S.page,page_size:S.page_size};_.value&&(E.provider=_.value),H.value==="true"&&(E.enabled=!0),H.value==="false"&&(E.enabled=!1),n.value.trim()&&(E.search=n.value.trim());const C=await ae.channelMonitor.list(E,{signal:D.signal});if(D.signal.aborted||B!==D)return;J.value=C.items||[],S.total=C.total}catch(E){const C=E;if((C==null?void 0:C.name)==="AbortError"||(C==null?void 0:C.code)==="ERR_CANCELED")return;p.showError(se(E,r("admin.channelMonitor.loadError")))}finally{B===D&&(te.value=!1,B=null)}}function k(){Y&&clearTimeout(Y),Y=setTimeout(()=>{S.page=1,ee()},300)}function h(D){S.page=D,ee()}function L(D){S.page_size=D,S.page=1,ee()}function re(){X.value=null,A.value=!0}function f(D){X.value=D,A.value=!0}function ce(){A.value=!1,X.value=null}async function me(D){const E=!D.enabled;try{await ae.channelMonitor.update(D.id,{enabled:E}),D.enabled=E}catch(C){p.showError(se(C,r("common.error")))}}async function m(D){if(!O.value){p.showError(r("admin.channelMonitor.runFailed"));return}if(I.value==null){I.value=D.id;try{const E=await ae.channelMonitor.runNow(D.id);$.value=E.results||[],x.value=!0,p.showSuccess(r("admin.channelMonitor.runSuccess")),ee()}catch(E){p.showError(se(E,r("admin.channelMonitor.runFailed")))}finally{I.value=null}}}async function T(D){if(D.api_key_decrypt_failed){p.showError(r("admin.channelMonitor.duplicateKeyUnavailable"));return}if(!N.has(D.id)){N.add(D.id);try{const E=await ae.channelMonitor.duplicate(D.id);p.showSuccess(r("admin.channelMonitor.duplicateSuccess",{name:E.name})),await ee()}catch(E){p.showError(se(E,r("admin.channelMonitor.duplicateFailed")))}finally{N.delete(D.id)}}}function b(D){de.value=D,oe.value=!0}async function pe(){if(de.value)try{await ae.channelMonitor.del(de.value.id),p.showSuccess(r("admin.channelMonitor.deleteSuccess")),oe.value=!1,de.value=null,ee()}catch(D){p.showError(se(D,r("common.error")))}}return ve(t,D=>{D==="legacy"&&J.value.length===0&&ee()}),We(()=>{t.value==="legacy"&&ee()}),Ze(()=>{Y&&clearTimeout(Y),B==null||B.abort()}),(D,E)=>(s(),fe(ut,null,{default:F(()=>[e("div",Sl,[e("header",Al,[e("h1",Dl,[e("span",Rl,[P(ie,{name:"chart",size:"sm"})]),z(" "+a(o(r)("admin.channelMonitor.title")),1)]),e("p",Tl,a(O.value?o(r)("channelMonitorV2.admin.descriptionV1"):o(r)("channelMonitorV2.admin.descriptionV2")),1),e("div",Il,[e("div",{class:"tabs inline-flex w-full max-w-xl flex-wrap sm:w-auto",role:"tablist","aria-label":o(r)("channelMonitorV2.admin.tabAria")},[e("button",{type:"button",role:"tab",class:K(["tab flex-1 sm:flex-none",t.value==="v2"?"tab-active":""]),"aria-selected":t.value==="v2",onClick:E[0]||(E[0]=C=>t.value="v2")},a(o(r)("channelMonitorV2.admin.tabV2")),11,Nl),e("button",{type:"button",role:"tab",class:K(["tab flex-1 sm:flex-none",t.value==="legacy"?"tab-active":""]),"aria-selected":t.value==="legacy",onClick:E[1]||(E[1]=C=>t.value="legacy")},a(O.value?o(r)("channelMonitorV2.admin.tabV1Active"):o(r)("channelMonitorV2.admin.tabV1History")),11,Bl)],8,Ul)])]),t.value==="v2"?(s(),fe(Ol,{key:0})):(s(),fe(mt,{key:1},{filters:F(()=>[P(Lt,{search:n.value,"onUpdate:search":E[2]||(E[2]=C=>n.value=C),provider:_.value,"onUpdate:provider":E[3]||(E[3]=C=>_.value=C),enabled:H.value,"onUpdate:enabled":E[4]||(E[4]=C=>H.value=C),loading:te.value,onReload:ee,onCreate:re,onManageTemplates:E[5]||(E[5]=C=>R.value=!0),onSearchInput:k},null,8,["search","provider","enabled","loading"])]),table:F(()=>[P(pt,{columns:ye.value,data:J.value,loading:te.value},{"cell-name":F(({row:C,value:Se})=>[e("div",jl,[e("span",Hl,a(Se),1),C.api_key_decrypt_failed?(s(),fe(Qe,{key:0,content:o(r)("admin.channelMonitor.apiKeyDecryptFailed")},{default:F(()=>[P(ie,{name:"exclamationTriangle",size:"sm",class:"text-red-500"})]),_:1},8,["content"])):j("",!0)])]),"cell-provider":F(({row:C})=>[e("span",{class:K(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium",o(u)(C.provider)])},a(o(y)(C.provider)),3),e("span",{class:K(["ml-1 inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium",o(v)(C.check_mode)])},a(o(g)(C.check_mode)),3)]),"cell-primary_model":F(({row:C})=>[P(ar,{row:C},null,8,["row"])]),"cell-availability_7d":F(({row:C})=>[e("span",Fl,a(o(W)(C)),1)]),"cell-latency":F(({row:C})=>[e("span",Ll,a(o(w)(C.primary_latency_ms)),1)]),"cell-enabled":F(({row:C})=>[P(De,{modelValue:C.enabled,"onUpdate:modelValue":Se=>me(C)},null,8,["modelValue","onUpdate:modelValue"])]),"cell-actions":F(({row:C})=>[P(mr,{row:C,running:I.value===C.id,duplicating:N.has(C.id),onRun:m,onDuplicate:T,onEdit:f,onDelete:b},null,8,["row","running","duplicating"])]),empty:F(()=>[P(ht,{title:o(r)("admin.channelMonitor.noMonitorsYet"),description:o(r)("admin.channelMonitor.createFirstMonitor"),"action-text":o(r)("admin.channelMonitor.createButton"),onAction:re},null,8,["title","description","action-text"])]),_:1},8,["columns","data","loading"])]),pagination:F(()=>[S.total>0?(s(),fe(vt,{key:0,page:S.page,total:S.total,"page-size":S.page_size,"onUpdate:page":h,"onUpdate:pageSize":L},null,8,["page","total","page-size"])):j("",!0)]),_:1}))]),P(Dn,{show:A.value,monitor:X.value,onClose:ce,onSaved:ee},null,8,["show","monitor"]),P(Da,{show:R.value,onClose:E[6]||(E[6]=C=>R.value=!1),onUpdated:ee},null,8,["show"]),P(Ha,{show:x.value,results:$.value,onClose:E[7]||(E[7]=C=>x.value=!1)}
22,null,8,["show","results"]),P(Je,{show:oe.value,title:o(r)("common.delete"),message:xe.value,"confirm-text":o(r)("common.delete"),"cancel-text":o(r)("common.cancel"),danger:!0,onConfirm:pe,onCancel:E[8]||(E[8]=C=>oe.value=!1)},null,8,["show","title","message","confirm-text","cancel-text"])]),_:1}))}});export{gs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.