PageSourceSearch

https://mintminer.com/assets/RiskControlView-D6CeNzn8.js

js mintminer.com collected 2026-10-06 08:10:34 UTC 82,952 bytes, 2 lines download raw bytes

1import{d as Va,r as v,q as Be,c as m,o as Ha,a as Ba,D as ge,K as de,B as e,z as u,k,E as g,G as o,u as l,H as S,A as y,F as M,V as F,S as xe,Q as f,W as C,Y as ja,U as gt,C as d}from"./vendor-vue-Dzwqm9Y9.js";import{_ as Pa}from"./AppLayout.vue_vue_type_script_setup_true_lang-DU-NXSvm.js";import{a as Ua,_ as x,g as xt,j as B,h as Da}from"./index-BB-1BiLf.js";import{S as be}from"./Select-unWSiPwC.js";import{_ as X}from"./Toggle.vue_vue_type_script_setup_true_lang-CwidWQzY.js";import{P as Ia}from"./Pagination-BuZWDbKf.js";import{_ as $a}from"./ModelWhitelistSelector.vue_vue_type_script_setup_true_lang-CpTbfwSp.js";import{P as Ra}from"./ProxySelector-0Febhil4.js";import{b as $}from"./apiError-BcAuv_LF.js";import{u as Na}from"./vendor-i18n-BuoWFzps.js";import"./AppHeader.vue_vue_type_style_index_0_scoped_80f3916c_lang-CWJeTQGo.js";import"./vendor-misc-B-nM3tYW.js";import"./useClipboard-00CrFCqB.js";import"./featureFlags-DuhANbyz.js";import"./LocaleSwitcher-DwqRgoPh.js";/* empty css                                                                       */import"./usePersistedPageSize-x0WpaIWh.js";const La={class:"space-y-6"},Ea={key:0,class:"flex items-center justify-center py-16"},Oa={class:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between"},qa={class:"text-2xl font-semibold text-gray-900 dark:text-white"},Wa={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ga={class:"flex flex-wrap items-center gap-2"},Qa=["disabled"],Ya={class:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-4"},Ja={class:"flex min-w-0 items-center gap-3"},Xa={class:"min-w-0 flex-1"},Za={class:"flex min-w-0 items-center justify-between gap-2"},es={class:"truncate text-xs font-medium text-gray-500 dark:text-gray-400"},ts={class:"mt-1 flex min-w-0 items-baseline gap-2"},as={class:"truncate text-xl font-semibold leading-7 text-gray-900 dark:text-white"},ss={key:0,class:"truncate text-xs text-gray-500 dark:text-gray-400"},rs={key:0,"data-test":"pre-block-runtime-cards",class:"grid grid-cols-1 gap-6 xl:grid-cols-[minmax(0,520px)_minmax(0,1fr)]"},os={"data-test":"pre-block-sync-card",class:"card"},ls={class:"flex flex-col gap-4 border-b border-gray-100 px-6 py-4 dark:border-dark-700 lg:flex-row lg:items-center lg:justify-between"},ns={class:"text-lg font-semibold text-gray-900 dark:text-white"},is={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},ds={class:"inline-flex w-fit items-center rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600 dark:bg-dark-700 dark:text-gray-300"},us={class:"p-6"},cs={"data-test":"pre-block-metric-grid",class:"grid grid-cols-2 gap-3 md:grid-cols-3"},ms={class:"text-xs text-gray-500 dark:text-gray-400"},ps={key:0,class:"mt-1 truncate text-xs text-gray-500 dark:text-gray-400"},ks={"data-test":"pre-block-api-key-load-card",class:"card"},_s={class:"flex flex-col gap-4 border-b border-gray-100 px-6 py-4 dark:border-dark-700 lg:flex-row lg:items-center lg:justify-between"},ys={class:"text-lg font-semibold text-gray-900 dark:text-white"},gs={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},xs={class:"inline-flex w-fit items-center rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600 dark:bg-dark-700 dark:text-gray-300"},bs={class:"p-6"},hs={key:0,"data-test":"pre-block-api-key-load-list",class:"max-h-[280px] space-y-3 overflow-y-auto pr-1"},vs={class:"flex min-w-0 flex-col gap-2 sm:flex-row sm:items-center sm:justify-between"},fs={class:"min-w-0"},Cs={class:"flex min-w-0 items-center gap-2"},ws={class:"font-mono text-sm font-semibold text-gray-900 dark:text-white"},Ks={class:"truncate font-mono text-sm text-gray-700 dark:text-gray-200"},As={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Ss={class:"grid grid-cols-4 gap-2 text-right text-xs text-gray-500 dark:text-gray-400 sm:min-w-[280px]"},Ts={class:"mt-1 text-sm font-semibold text-sky-700 dark:text-sky-300"},Ms={class:"mt-1 text-sm font-semibold text-gray-900 dark:text-white"},zs={class:"mt-1 text-sm font-semibold text-gray-900 dark:text-white"},Fs={class:"mt-1 text-sm font-semibold text-gray-900 dark:text-white"},Vs={class:"mt-3 h-1.5 overflow-hidden rounded-full bg-white dark:bg-dark-900"}
vendor: 12,520 bytes, line 1
1,Hs={key:1,class:"rounded-lg bg-gray-50 p-4 text-sm text-gray-500 dark:bg-dark-700/50 dark:text-gray-400"},Bs={key:1,class:"card"},js={class:"flex flex-col gap-4 border-b border-gray-100 px-6 py-4 dark:border-dark-700 lg:flex-row lg:items-center lg:justify-between"},Ps={class:"text-lg font-semibold text-gray-900 dark:text-white"},Us={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Ds={class:"flex flex-wrap items-center gap-2 text-sm text-gray-500 dark:text-gray-400"},Is={key:0},$s={class:"grid grid-cols-1 gap-6 p-6 xl:grid-cols-[minmax(0,360px)_1fr]"},Rs={class:"space-y-4"},Ns={class:"rounded-lg border border-gray-100 p-4 dark:border-dark-700"},Ls={class:"flex items-center justify-between gap-3"},Es={class:"text-sm font-medium text-gray-900 dark:text-white"},Os={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},qs={class:"text-sm font-semibold text-gray-900 dark:text-white"},Ws={class:"mt-4 h-2 overflow-hidden rounded-full bg-gray-100 dark:bg-dark-700"},Gs={class:"grid grid-cols-2 gap-3"},Qs={class:"rounded-lg bg-gray-50 p-4 dark:bg-dark-700/50"},Ys={class:"text-xs text-gray-500 dark:text-gray-400"},Js={class:"mt-2 text-2xl font-semibold text-gray-900 dark:text-white"},Xs={class:"rounded-lg bg-emerald-50 p-4 dark:bg-emerald-900/10"},Zs={class:"text-xs text-gray-500 dark:text-gray-400"},er={class:"mt-2 text-2xl font-semibold text-emerald-700 dark:text-emerald-300"},tr={class:"rounded-lg bg-gray-50 p-4 dark:bg-dark-700/50"},ar={class:"text-xs text-gray-500 dark:text-gray-400"},sr={class:"mt-2 text-2xl font-semibold text-gray-900 dark:text-white"},rr={class:"rounded-lg bg-gray-50 p-4 dark:bg-dark-700/50"},or={class:"text-xs text-gray-500 dark:text-gray-400"},lr={class:"mt-2 text-2xl font-semibold text-gray-900 dark:text-white"},nr={class:"mb-3 flex items-center justify-between gap-3"},ir={class:"text-sm font-medium text-gray-900 dark:text-white"},dr={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ur={class:"inline-flex items-center rounded-full bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600 dark:bg-dark-700 dark:text-gray-300"},cr={class:"grid grid-cols-2 gap-2 sm:grid-cols-4 md:grid-cols-6 xl:grid-cols-8 2xl:grid-cols-10"},mr=["title"],pr={class:"text-sm font-semibold"},kr={class:"card"},_r={class:"flex flex-col gap-4 border-b border-gray-100 px-6 py-4 dark:border-dark-700"},yr={class:"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between"},gr={class:"text-lg font-semibold text-gray-900 dark:text-white"},xr={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},br=["disabled"],hr={class:"flex flex-col gap-2 rounded-lg border border-gray-100 bg-gray-50 px-3 py-2 dark:border-dark-700 dark:bg-dark-900/30 sm:flex-row sm:items-center sm:justify-between"},vr={class:"flex min-w-0 items-center gap-2 text-sm text-gray-700 dark:text-gray-200"},fr={class:"font-medium"},Cr={class:"truncate text-gray-500 dark:text-gray-400"},wr={key:0,class:"flex flex-wrap gap-1.5"},Kr={key:0,class:"inline-flex rounded-md bg-white px-2 py-1 text-xs text-gray-500 shadow-sm dark:bg-dark-800 dark:text-gray-400"},Ar={class:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-6"},Sr=["placeholder"],Tr=["title"],Mr=["title"],zr={class:"overflow-x-auto"},Fr={class:"min-w-full divide-y divide-gray-200 dark:divide-dark-700"},Vr={class:"bg-gray-50 dark:bg-dark-800"},Hr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Br={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},jr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Pr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Ur={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Dr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Ir={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},$r={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Rr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Nr={class:"px-5 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-400"},Lr={class:"divide-y divide-gray-100 bg-white dark:divide-dark-800 dark:bg-dark-800"},Er={key:0},Or={colspan:"10",class:"px-5 py-12 text-center text-sm text-gray-500 dark:text-gray-400"},qr={key:1},Wr={colspan:"10",class:"px-5 py-12 text-center text-sm text-gray-500 dark:text-gray-400"},Gr={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},Qr={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},Yr={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},Jr={key:0,class:"text-xs text-gray-400"},Xr={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},Zr={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},eo={class:"text-xs text-gray-400"},to={class:"whitespace-nowrap px-5 py-4"},ao={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},so={class:"text-xs text-gray-400"},ro=["title"],oo={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},lo={class:"text-xs text-gray-400"},no={key:0},io=["disabled","onClick"],uo={class:"whitespace-nowrap px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},co={key:0,class:"text-xs text-gray-400"},mo={class:"w-[320px] max-w-sm px-5 py-4 text-sm text-gray-700 dark:text-gray-300"},po=["title","onClick"],ko={class:"min-w-0 flex-1 truncate"},_o={class:"space-y-6"},yo={class:"flex gap-2 overflow-x-auto border-b border-gray-100 pb-3 dark:border-dark-700"},go=["onClick"],xo={key:0,class:"space-y-5"},bo={class:"grid grid-cols-1 gap-5 lg:grid-cols-2"},ho={class:"flex items-center justify-between rounded-lg border border-gray-100 p-4 dark:border-dark-700"},vo={class:"text-sm font-medium text-gray-900 dark:text-white"},fo={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Co={class:"input-label"},wo={class:"mt-2 text-xs leading-5 text-gray-500 dark:text-gray-400"},Ko={class:"input-label"},Ao={class:"input-label"},So={class:"input-label"},To={class:"input-label"},Mo={class:"input-label"},zo={class:"relative"},Fo={class:"input-label"},Vo={class:"mt-2 text-xs leading-5 text-gray-500 dark:text-gray-400"},Ho={class:"overflow-hidden rounded-xl border border-gray-100 bg-white shadow-sm dark:border-dark-700 dark:bg-dark-800"},Bo={class:"flex flex-col gap-4 border-b border-gray-100 bg-gray-50 px-4 py-4 dark:border-dark-700 dark:bg-dark-800/60 lg:flex-row lg:items-center lg:justify-between"},jo={class:"flex items-start gap-3"},Po={class:"mt-0.5 flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg bg-primary-50 text-primary-600 dark:bg-primary-900/30 dark:text-primary-300"},Uo={class:"text-sm font-semibold text-gray-900 dark:text-white"},Do={class:"mt-1 max-w-3xl text-xs leading-5 text-gray-500 dark:text-gray-400"},Io={class:"flex flex-wrap items-center gap-2"},$o=["disabled"],Ro=["disabled"],No={class:"grid grid-cols-1 gap-4 p-4 xl:grid-cols-[minmax(0,1fr)_minmax(360px,440px)]"},Lo={class:"space-y-3"},Eo={class:"flex flex-col gap-2 rounded-lg border border-gray-100 bg-gray-50 p-2 dark:border-dark-700 dark:bg-dark-900/30 sm:flex-row sm:items-center sm:justify-between"},Oo={class:"text-xs leading-5 text-gray-500 dark:text-gray-400"},qo={class:"font-medium text-gray-700 dark:text-gray-200"},Wo={class:"ml-2"},Go={class:"inline-flex rounded-lg bg-white p-1 shadow-sm dark:bg-dark-800"},Qo=["disabled"],Yo=["disabled"],Jo=["placeholder","disabled"],Xo={class:"flex flex-wrap items-center gap-2 text-xs text-gray-500 dark:text-gray-400"},Zo={class:"inline-flex rounded-md bg-gray-100 px-2 py-1 dark:bg-dark-700"},el={key:0,class:"inline-flex rounded-md bg-gray-100 px-2 py-1 dark:bg-dark-700"},tl={key:1,class:"inline-flex rounded-md bg-red-50 px-2 py-1 text-red-700 dark:bg-red-900/20 dark:text-red-300"},al={key:2,class:"inline-flex rounded-md bg-amber-50 px-2 py-1 text-amber-700 dark:bg-amber-900/20 dark:text-amber-300"},sl={key:3,class:"inline-flex rounded-md bg-amber-50 px-2 py-1 text-amber-700 dark:bg-amber-900/20 dark:text-amber-300"},rl={class:"mb-3 flex items-center justify-between gap-3"},ol={class:"text-sm font-semibold text-gray-900 dark:text-white"},ll={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},nl=["placeholder"],il={class:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},dl={class:"flex items-start gap-2"},ul={class:"text-sm font-medium text-gray-800 dark:text-gray-100"},cl={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ml={class:"btn btn-secondary inline-flex cursor-pointer items-center gap-2"},pl={key:0,class:"mt-3 grid grid-cols-2 gap-2 sm:grid-cols-4"},kl=["src"],_l=["onClick"],yl={class:"rounded-lg border border-gray-100 bg-gray-50 p-3 dark:border-dark-700 dark:bg-dark-900/30"},gl={class:"mb-3 flex items-start justify-between gap-3"},xl={class:"min-w-0"},bl={class:"text-sm font-semibold text-gray-900 dark:text-white"},hl={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},vl={class:"inline-flex shrink-0 items-center whitespace-nowrap rounded-full bg-white px-2 py-0.5 text-[11px] font-medium leading-5 text-gray-600 shadow-sm dark:bg-dark-800 dark:text-gray-300"},fl={key:0,class:"flex min-h-32 flex-col items-center justify-center rounded-lg border border-dashed border-gray-200 bg-white px-4 py-6 text-center dark:border-dark-700 dark:bg-dark-800"},Cl={class:"mt-2 text-sm font-medium text-gray-700 dark:text-gray-200"},wl={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Kl={key:1,class:"space-y-2"},Al={class:"flex items-start justify-between gap-2"},Sl={class:"min-w-0"},Tl={class:"flex min-w-0 flex-wrap items-center gap-2"},Ml={class:"truncate font-mono text-sm font-semibold text-gray-900 dark:text-white"},zl={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Fl={class:"flex flex-shrink-0 items-center gap-1.5"},Vl=["title","onClick"],Hl={key:0,class:"mt-1.5 rounded-md bg-amber-50 px-2 py-1.5 text-xs leading-5 text-amber-700 dark:bg-amber-900/20 dark:text-amber-300"},Bl={key:0,class:"flex items-center justify-between gap-3 rounded-lg border border-dashed border-gray-200 bg-white px-3 py-2 text-xs text-gray-500 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-400"},jl={class:"min-w-0 truncate"},Pl={key:2,class:"mt-4 rounded-lg border border-gray-100 bg-white p-3 dark:border-dark-700 dark:bg-dark-800"},Ul={class:"flex items-start justify-between gap-3"},Dl={class:"text-sm font-semibold text-gray-900 dark:text-white"},Il={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},$l={class:"mt-3"},Rl={class:"mb-2 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"},Nl={class:"font-semibold text-gray-900 dark:text-white"},Ll={class:"h-2 overflow-hidden rounded-full bg-gray-100 dark:bg-dark-700"},El={class:"mt-3 max-h-52 space-y-2 overflow-y-auto pr-1"},Ol={class:"mb-1 flex items-center justify-between gap-3 text-xs"},ql={class:"truncate text-gray-600 dark:text-gray-300"},Wl={class:"font-mono text-gray-500 dark:text-gray-400"},Gl={class:"h-1.5 overflow-hidden rounded-full bg-gray-100 dark:bg-dark-700"},Ql={key:1,class:"space-y-5"},Yl={class:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between"},Jl={class:"text-base font-semibold text-gray-900 dark:text-white"},Xl={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},Zl={class:"inline-flex rounded-lg bg-gray-100 p-1 dark:bg-dark-700"},en={key:0,class:"space-y-4"},tn={class:"relative"},an=["placeholder"],sn={class:"grid max-h-[420px] grid-cols-1 gap-3 overflow-y-auto pr-1 md:grid-cols-2 xl:grid-cols-3"},rn=["onClick"],on={class:"min-w-0"},ln={class:"block truncate text-sm font-semibold text-gray-900 dark:text-white"},nn={class:"mt-1 inline-flex rounded-md bg-gray-100 px-2 py-0.5 text-xs text-gray-500 dark:bg-dark-700 dark:text-gray-400"},dn={key:0,class:"text-sm text-gray-500 dark:text-gray-400"},un={class:"space-y-4 rounded-lg border border-gray-100 p-4 dark:border-dark-700"},cn={class:"flex flex-col gap-2 lg:flex-row lg:items-center lg:justify-between"},mn={class:"text-base font-semibold text-gray-900 dark:text-white"},pn={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"}
1,kn={class:"inline-flex w-fit rounded-md bg-gray-100 px-2.5 py-1 text-xs font-medium text-gray-600 dark:bg-dark-700 dark:text-gray-300"},_n={class:"grid grid-cols-1 gap-2 md:grid-cols-3"},yn=["onClick"],gn={class:"flex items-center justify-between gap-2"},xn={class:"text-sm font-semibold"},bn={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},hn={key:0,class:"space-y-2"},vn={class:"input-label"},fn={class:"text-xs text-gray-500 dark:text-gray-400"},Cn={key:2,class:"grid grid-cols-1 gap-5 lg:grid-cols-2"},wn={class:"input-label"},Kn={class:"input-label"},An={class:"flex items-center justify-between rounded-lg border border-gray-100 p-4 dark:border-dark-700 lg:col-span-2"},Sn={class:"text-sm font-medium text-gray-900 dark:text-white"},Tn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Mn={class:"space-y-4 rounded-lg border border-gray-100 p-4 dark:border-dark-700 lg:col-span-2"},zn={class:"flex items-center justify-between gap-4"},Fn={class:"text-sm font-medium text-gray-900 dark:text-white"},Vn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Hn={class:"rounded-lg bg-gray-50 p-3 dark:bg-dark-900/30"},Bn={class:"flex flex-col gap-3 xl:flex-row xl:items-center xl:justify-between"},jn={class:"text-sm font-medium text-gray-900 dark:text-white"},Pn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Un=["disabled"],Dn={class:"mt-3 flex flex-col gap-2 sm:flex-row"},In=["placeholder"],$n=["disabled"],Rn={key:3,class:"space-y-5"},Nn={class:"grid grid-cols-1 gap-5 lg:grid-cols-2"},Ln={class:"input-label"},En={class:"input-label"},On={class:"flex items-center justify-between rounded-lg border border-gray-100 p-4 dark:border-dark-700"},qn={class:"text-sm font-medium text-gray-900 dark:text-white"},Wn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Gn={class:"flex items-center justify-between rounded-lg border border-gray-100 p-4 dark:border-dark-700"},Qn={class:"text-sm font-medium text-gray-900 dark:text-white"},Yn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},Jn={class:"flex items-center justify-between rounded-lg border border-gray-100 p-4 dark:border-dark-700 lg:col-span-2"},Xn={class:"text-sm font-medium text-gray-900 dark:text-white"},Zn={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ei={class:"input-label"},ti={class:"input-label"},ai={key:4,class:"space-y-5"},si={class:"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between"},ri={class:"text-base font-semibold text-gray-900 dark:text-white"},oi={class:"mt-1 text-sm text-gray-500 dark:text-gray-400"},li={class:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3"},ni={class:"flex items-start justify-between gap-3"},ii={class:"min-w-0"},di=["for"],ui={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},ci={class:"inline-flex shrink-0 rounded-md bg-white px-2 py-1 font-mono text-xs font-medium text-gray-600 shadow-sm dark:bg-dark-800 dark:text-gray-300"},mi={class:"mt-3"},pi=["for"],ki={class:"relative"},_i=["id","onUpdate:modelValue","data-test"],yi={key:5,class:"space-y-5"},gi={class:"text-sm leading-6"},xi={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"},bi={class:"space-y-2"},hi={class:"input-label"},vi={class:"grid grid-cols-1 gap-2 sm:grid-cols-3"},fi=["onClick"],Ci={class:"flex items-center justify-between gap-2"},wi={class:"text-sm font-semibold"},Ki={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Ai={class:"mb-2 flex items-center justify-between"},Si={class:"input-label mb-0"},Ti={class:"inline-flex rounded-md bg-gray-100 px-2 py-1 text-xs text-gray-500 dark:bg-dark-700 dark:text-gray-300"},Mi=["placeholder","disabled"],zi={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Fi={key:6,class:"grid grid-cols-1 gap-5 lg:grid-cols-2"},Vi={class:"input-label"},Hi={class:"input-label"},Bi={class:"rounded-lg border border-gray-100 p-4 text-sm text-gray-500 dark:border-dark-700 dark:text-gray-400 lg:col-span-2"},ji={class:"flex flex-wrap items-center gap-3"},Pi={class:"flex justify-end gap-2"},Ui=["disabled"],Di={key:0,class:"space-y-5"},Ii={class:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4"},$i={class:"rounded-lg border border-gray-100 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/70"},Ri={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Ni={class:"mt-1 truncate text-sm font-semibold text-gray-900 dark:text-white"},Li={class:"rounded-lg border border-gray-100 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/70"},Ei={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Oi={class:"mt-1 truncate text-sm font-semibold text-gray-900 dark:text-white"},qi={class:"rounded-lg border border-gray-100 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/70"},Wi={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Gi={class:"rounded-lg border border-gray-100 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-800/70"},Qi={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Yi={class:"mt-1 truncate text-sm font-semibold text-gray-900 dark:text-white"},Ji={key:0,class:"rounded-lg border border-red-100 bg-red-50 p-4 dark:border-red-900/60 dark:bg-red-900/20"},Xi={class:"text-xs font-medium text-red-500 dark:text-red-300"},Zi=["title"],ed={class:"rounded-xl border border-gray-100 bg-white p-4 shadow-sm dark:border-dark-700 dark:bg-dark-800"},td={class:"flex flex-wrap items-center justify-between gap-3"},ad={class:"text-sm font-semibold text-gray-900 dark:text-white"},sd={class:"mt-1 text-xs text-gray-500 dark:text-gray-400"}
1,rd={key:0,class:"inline-flex rounded-md bg-sky-50 px-2.5 py-1 text-xs font-medium text-sky-700 dark:bg-sky-900/20 dark:text-sky-300"},od={class:"mt-4 max-h-[420px] overflow-auto whitespace-pre-wrap break-words rounded-lg bg-gray-950 p-4 text-sm leading-6 text-gray-100 shadow-inner dark:bg-black/50"},ld={class:"flex justify-end"},bt=1,nd=8*1024*1024,ht=3,id=1e4,Sd=Va({__name:"RiskControlView",setup(dd){const L={harassment:98,"harassment/threatening":90,hate:65,"hate/threatening":65,illicit:95,"illicit/violent":95,"self-harm":65,"self-harm/intent":85,"self-harm/instructions":65,sexual:65,"sexual/minors":65,violence:95,"violence/graphic":95},he=Object.keys(L),{t:a}=Na(),K=Ua(),ve=()=>a("admin.riskControl.defaultBlockMessage"),fe=v(!0),Z=v(!1),ee=v(!1),ue=v(!1),R=v(!1),P=v(!1),E=v(null),te=v(!1),U=v("basic"),Ce=v(""),ae=v(""),ce=v([]),je=v([]),se=v([]),p=v(null),re=v([]),V=v([]),I=v(!1),O=v(""),D=v([]),H=v(null),w=v(null);let me=null;const r=Be({enabled:!1,mode:"pre_block",base_url:"https://api.openai.com",model:"omni-moderation-latest",proxy_id:null,api_keys_text:"",api_key_configured:!1,api_key_masked:"",api_key_count:0,api_key_masks:[],api_key_statuses:[],api_keys_mode:"append",clear_api_key:!1,timeout_ms:3e3,retry_count:2,sample_rate:100,all_groups:!0,group_ids:[],record_non_hits:!1,worker_count:4,queue_size:32768,block_status:403,block_message:ve(),email_on_hit:!0,auto_ban_enabled:!0,cyber_policy_exclude_from_ban_count:!1,ban_threshold:10,violation_window_hours:720,hit_retention_days:180,non_hit_retention_days:3,pre_hash_check_enabled:!1,thresholds:{...L},blocked_keywords_text:"",keyword_blocking_mode:"keyword_and_api",model_filter_type:"all",model_filter_models:[]}),T=Be({page:1,page_size:20,total:0,pages:1}),A=Be({result:"",group_id:0,endpoint:"",search:"",from:"",to:""}),vt=m(()=>[{id:"basic",label:a("admin.riskControl.tabs.basic")},{id:"scope",label:a("admin.riskControl.tabs.scope")},{id:"runtime",label:a("admin.riskControl.tabs.runtime")},{id:"response",label:a("admin.riskControl.tabs.response")},{id:"riskThresholds",label:a("admin.riskControl.tabs.riskThresholds")},{id:"keywords",label:a("admin.riskControl.tabs.keywords")},{id:"retention",label:a("admin.riskControl.tabs.retention")}]),Pe=m(()=>[{value:"pre_block",label:a("admin.riskControl.modePreBlock")},{value:"observe",label:a("admin.riskControl.modeObserve")},{value:"off",label:a("admin.riskControl.modeOff")}]),ft=m(()=>[{value:"keyword_and_api",label:a("admin.riskControl.keywordModeKeywordAndApi"),description:a("admin.riskControl.keywordModeKeywordAndApiDesc")},{value:"keyword_only",label:a("admin.riskControl.keywordModeKeywordOnly"),description:a("admin.riskControl.keywordModeKeywordOnlyDesc")},{value:"api_only",label:a("admin.riskControl.keywordModeApiOnly"),description:a("admin.riskControl.keywordModeApiOnlyDesc")}]),Ct=m(()=>[{value:"all",label:a("admin.riskControl.modelFilterAll"),description:a("admin.riskControl.modelFilterAllDesc")},{value:"include",label:a("admin.riskControl.modelFilterInclude"),description:a("admin.riskControl.modelFilterIncludeDesc")},{value:"exclude",label:a("admin.riskControl.modelFilterExclude"),description:a("admin.riskControl.modelFilterExcludeDesc")}]),pe={info:{icon:"infoCircle",toneClass:"border-primary-100 bg-primary-50/60 dark:border-primary-900/40 dark:bg-primary-900/10",iconClass:"mt-0.5 flex-shrink-0 text-primary-500 dark:text-primary-300",titleClass:"text-primary-700 dark:text-primary-200"},warning:{icon:"exclamationTriangle",toneClass:"border-amber-200 bg-amber-50 dark:border-amber-900/40 dark:bg-amber-900/20",iconClass:"mt-0.5 flex-shrink-0 text-amber-500 dark:text-amber-300",titleClass:"text-amber-700 dark:text-amber-200"}},q=m(()=>{const t=r.keyword_blocking_mode;return t==="api_only"?{...pe.info,title:a("admin.riskControl.keywordModeApiOnlyNotice"),description:a("admin.riskControl.keywordModeApiOnlyDesc")}:r.mode!=="pre_block"?{...pe.warning,title:a("admin.riskControl.blockedKeywordsModeWarning",{mode:_e(r.mode)}),description:a("admin.riskControl.blockedKeywordsDescription")}
1:t==="keyword_only"?{...pe.info,title:a("admin.riskControl.keywordModeKeywordOnlyNotice"),description:a("admin.riskControl.keywordModeKeywordOnlyDesc")}:{...pe.info,title:a("admin.riskControl.blockedKeywordsPreBlockHint"),description:a("admin.riskControl.blockedKeywordsDescription")}}),wt=m(()=>[{value:"",label:a("admin.riskControl.result.all")},{value:"hit",label:a("admin.riskControl.result.hit")},{value:"blocked",label:a("admin.riskControl.result.blocked")},{value:"pass",label:a("admin.riskControl.result.pass")},{value:"error",label:a("admin.riskControl.result.error")}]),Kt=m(()=>[{value:"",label:a("admin.riskControl.filters.allEndpoints")},{value:"/v1/messages",label:"/v1/messages"},{value:"/v1/responses",label:"/v1/responses"},{value:"/v1/chat/completions",label:"/v1/chat/completions"},{value:"/v1beta/models",label:"/v1beta/models"},{value:"/v1/images/generations",label:"/v1/images/generations"},{value:"/v1/images/edits",label:"/v1/images/edits"}]),At=m(()=>[{value:0,label:a("admin.riskControl.filters.allGroups")},...ce.value.map(t=>({value:t.id,label:`${t.name} (${t.platform})`}))]),St=m(()=>String(r.group_ids.length)),we=m(()=>r.model_filter_models.length),Ke=m(()=>r.model_filter_type==="include"?a("admin.riskControl.modelFilterIncludeSummary",{count:we.value}):r.model_filter_type==="exclude"?a("admin.riskControl.modelFilterExcludeSummary",{count:we.value}):a("admin.riskControl.modelFilterAllSummary")),Ae=m(()=>r.model_filter_models.slice(0,6)),Ue=m(()=>Math.max(0,r.model_filter_models.length-Ae.value.length)),De=m(()=>{const t=Ce.value.trim().toLowerCase();return t?ce.value.filter(s=>s.name.toLowerCase().includes(t)||String(s.platform).toLowerCase().includes(t)):ce.value}),Ie=m(()=>Fe(r.api_keys_text).length),$e=m(()=>Ma(r.blocked_keywords_text)),Tt=m(()=>$e.value.length),ke=m(()=>V.value.length),Se=m(()=>Math.max(0,r.api_key_count-ke.value)),Mt=m(()=>r.api_keys_mode==="replace"?a("admin.riskControl.apiKeysPlaceholderReplace"):a("admin.riskControl.apiKeysPlaceholder")),zt=m(()=>r.api_keys_mode==="replace"?a("admin.riskControl.apiKeysModeReplaceHint"):a("admin.riskControl.apiKeysModeAppendHint")),Re=m(()=>O.value.trim()!==""||D.value.length>0),Ne=m(()=>/^[a-fA-F0-9]{64}$/.test(ae.value.trim())),Ft=m(()=>R.value?a("admin.riskControl.testingApiKeys"):Re.value?a("admin.riskControl.testContentWithStoredApiKey"):a("admin.riskControl.testStoredApiKeys")),Te=m(()=>{var s,c;const t=(c=(s=p.value)==null?void 0:s.api_key_statuses)!=null&&c.length?p.value.api_key_statuses:r.api_key_statuses;return Array.isArray(t)?t:[]}),N=m(()=>[...Te.value,...re.value]),Le=m(()=>I.value?N.value:N.value.slice(0,ht)),Vt=m(()=>Math.max(0,N.value.length-Le.value.length)),Ht=m(()=>N.value.length>ht),Ee=m(()=>Te.value.filter(t=>!oe(t))),Oe=m(()=>{const t={ok:0,error:0,frozen:0,unknown:0};for(const s of Ee.value)t[s.status]=(t[s.status]??0)+1;return Ee.value.length===0&&Se.value>0&&(t.unknown=Se.value),["ok","frozen","error","unknown"].map(s=>({status:s,count:t[s]})).filter(s=>s.count>0)}),Bt=m(()=>r.api_key_configured?Oe.value.length===0?a("admin.riskControl.apiKeyStatusUnknown"):Oe.value.map(t=>`${rt(t.status)} ${t.count}`).join(" · "):""),jt=m(()=>[{key:"status",label:a("admin.riskControl.overview.status"),value:r.enabled?a("admin.riskControl.overview.enabled"):a("admin.riskControl.overview.disabled"),meta:_e(r.mode),icon:"shield",iconClass:r.enabled?"bg-emerald-50 text-emerald-600 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-gray-100 text-gray-500 dark:bg-dark-700 dark:text-gray-400",badge:Wt.value,badgeClass:Gt.value},{key:"api-key",label:a("admin.riskControl.overview.apiKey"),value:r.api_key_configured?a("admin.riskControl.apiKeyCount",{count:r.api_key_count}):a("admin.riskControl.notConfigured"),meta:r.api_key_configured?Bt.value||r.model||"-":r.model||"-",icon:"key",iconClass:"bg-sky-50 text-sky-600 dark:bg-sky-900/20 dark:text-sky-300"},{key:"scope",label:a("admin.riskControl.overview.groupScope"),value:r.all_groups?a("admin.riskControl.allGroups"):St.value,meta:Ke.value,icon:"users",iconClass:"bg-violet-50 text-violet-600 dark:bg-violet-900/20 dark:text-violet-300"}
1,{key:"logs",label:a("admin.riskControl.overview.logs"),value:b(T.total),meta:a("admin.riskControl.overview.currentFilter"),icon:"document",iconClass:"bg-amber-50 text-amber-600 dark:bg-amber-900/20 dark:text-amber-300"}]),Pt=m(()=>{const t=H.value;return t?Object.entries(t.category_scores||{}).map(([s,c])=>{var h;const _=((h=t.thresholds)==null?void 0:h[s])??1;return{category:s,score:c,threshold:_,hit:c>=_}}).sort((s,c)=>c.score-s.score):[]}),Ut=m(()=>he.map(t=>({category:t,value:r.thresholds[t]??L[t],defaultValue:L[t]}))),Dt=m(()=>w.value&&(w.value.input_excerpt||w.value.error)||"-"),qe=m(()=>{var t;return`${Math.min(100,Math.max(0,((t=p.value)==null?void 0:t.queue_usage_percent)??0)).toFixed(1)}%`}),It=m(()=>({width:qe.value})),We=m(()=>{var t;return((t=p.value)==null?void 0:t.mode)??r.mode}),$t=m(()=>We.value==="pre_block"),Rt=m(()=>We.value==="observe"),Nt=m(()=>{var t,s,c,_,h,z;return[{key:"active",label:a("admin.riskControl.preBlockActive"),value:b(((t=p.value)==null?void 0:t.pre_block_active)??0),meta:a("admin.riskControl.preBlockActiveHint"),class:"bg-sky-50 dark:bg-sky-900/10",valueClass:"text-sky-700 dark:text-sky-300"},{key:"checked",label:a("admin.riskControl.preBlockChecked"),value:b(((s=p.value)==null?void 0:s.pre_block_checked)??0),meta:a("admin.riskControl.preBlockCheckedHint"),class:"bg-gray-50 dark:bg-dark-700/50",valueClass:"text-gray-900 dark:text-white"},{key:"allowed",label:a("admin.riskControl.preBlockAllowed"),value:b(((c=p.value)==null?void 0:c.pre_block_allowed)??0),meta:a("admin.riskControl.preBlockAllowedHint"),class:"bg-emerald-50 dark:bg-emerald-900/10",valueClass:"text-emerald-700 dark:text-emerald-300"},{key:"blocked",label:a("admin.riskControl.preBlockBlocked"),value:b(((_=p.value)==null?void 0:_.pre_block_blocked)??0),meta:a("admin.riskControl.preBlockBlockedHint"),class:"bg-rose-50 dark:bg-rose-900/10",valueClass:"text-rose-700 dark:text-rose-300"},{key:"errors",label:a("admin.riskControl.preBlockErrors"),value:b(((h=p.value)==null?void 0:h.pre_block_errors)??0),meta:a("admin.riskControl.preBlockErrorsHint"),class:"bg-amber-50 dark:bg-amber-900/10",valueClass:"text-amber-700 dark:text-amber-300"},{key:"latency",label:a("admin.riskControl.preBlockAvgLatency"),value:`${b(((z=p.value)==null?void 0:z.pre_block_avg_latency_ms)??0)} ms`,meta:a("admin.riskControl.preBlockAvgLatencyHint"),class:"bg-violet-50 dark:bg-violet-900/10",valueClass:"text-violet-700 dark:text-violet-300"}]}),Me=m(()=>{var t;return[...((t=p.value)==null?void 0:t.pre_block_api_key_loads)??[]].sort((s,c)=>s.index-c.index)}),Lt=m(()=>Math.max(1,...Me.value.map(t=>t.total||0))),Et=m(()=>{var t,s,c,_,h;return a("admin.riskControl.preBlockAPIKeyLoadSummary",{active:b(((t=p.value)==null?void 0:t.pre_block_api_key_active)??0),available:b(((s=p.value)==null?void 0:s.pre_block_api_key_available_count)??0),total:b(((c=p.value)==null?void 0:c.pre_block_api_key_total_calls)??0),workerActive:b(((_=p.value)==null?void 0:_.active_workers)??0),workerTotal:b(((h=p.value)==null?void 0:h.worker_count)??r.worker_count)})});function Ot(t){return`${Math.min(100,Math.max(0,t/Lt.value*100)).toFixed(1)}%`}const qt=m(()=>{var _,h,z,ne,ie;const t=Math.max(0,((_=p.value)==null?void 0:_.worker_count)??r.worker_count),s=Math.max(0,((h=p.value)==null?void 0:h.active_workers)??0),c=!!((z=p.value)!=null&&z.risk_control_enabled&&((ne=p.value)!=null&&ne.enabled)&&((ie=p.value)==null?void 0:ie.mode)!=="off");return Array.from({length:t},(He,J)=>({id:J+1,state:c?J<s?"active":"idle":"disabled",label:c?J<s?a("admin.riskControl.workerActive"):a("admin.riskControl.workerIdle"):a("admin.riskControl.workerDisabled")}))}),Wt=m(()=>{var t;return(t=p.value)!=null&&t.risk_control_enabled?!r.enabled||r.mode==="off"?a("admin.riskControl.overview.disabled"):a("admin.riskControl.overview.enabled"):a("admin.riskControl.riskSwitchOff")}),Gt=m(()=>{var t;return!((t=p.value)!=null&&t.risk_control_enabled)||!r.enabled||r.mode==="off"?"bg-gray-100 text-gray-600 dark:bg-dark-700 dark:text-gray-300":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-300"});function Ge(t){r.enabled=t.enabled,r.mode=t.mode,r.base_url=t.base_url||"https://api.openai.com",r.model=t.model||"omni-moderation-latest",r.proxy_id=t.proxy_id||null,r.api_keys_text="",r.api_key_configured=t.api_key_configured,r.api_key_masked=t.api_key_masked||"",r.api_key_count=t.api_key_count||0,r.api_key_masks=Array.isArray(t.api_key_masks)?[...t.api_key_masks]:[],r.api_key_statuses=Array.isArray(t.api_key_statuses)?[...t.api_key_statuses]:[],r.api_keys_mode="append",r.clear_api_key=!1,V.value=[],re.value=[],I.value=!1,r.timeout_ms=t.timeout_ms||3e3,r.retry_count=t.retry_count??2,r.sample_rate=t.sample_rate??100,r.all_groups=t.all_groups,r.group_ids=Array.isArray(t.group_ids)?[...t.group_ids]:[],r.record_non_hits=t.record_non_hits,r.worker_count=t.worker_count||4,r.queue_size=t.queue_size||32768,r.block_status=t.block_status||403,r.block_message=t.block_message||ve(),r.email_on_hit=t.email_on_hit??!0,r.auto_ban_enabled=t.auto_ban_enabled??!0,r.cyber_policy_exclude_from_ban_count=t.cyber_policy_exclude_from_ban_count??!1,r.ban_threshold=t.ban_threshold||10,r.violation_window_hours=t.violation_window_hours||720,r.hit_retention_days=t.hit_retention_days||180,r.non_hit_retention_days=Math.min(Math.max(t.non_hit_retention_days||3,1),3),r.pre_hash_check_enabled=t.pre_hash_check_enabled??!1,r.thresholds=Aa(t.thresholds),r.blocked_keywords_text=Array.isArray(t.blocked_keywords)?t.blocked_keywords.join(`
2`):"",r.keyword_blocking_mode=Ca(t.keyword_blocking_mode);const s=wa(t.model_filter);r.model_filter_type=s.type,r.model_filter_models=s.models}async function Qt(){fe.value=!0;try{const[t,s,c,_]=await Promise.all([B.riskControl.getConfig(),B.groups.getAll(),B.riskControl.getStatus(),B.proxies.getAll().catch(()=>[])]);Ge(t),ce.value=s,p.value=c,je.value=_,Array.isArray(c.api_key_statuses)&&(r.api_key_statuses=[...c.api_key_statuses],Ze()),await G()}
2catch(t){K.showError($(t,a("admin.riskControl.loadFailed")))}finally{fe.value=!1}}async function W(t=!0){ue.value=!0;try{const s=await B.riskControl.getStatus();p.value=s,Array.isArray(s.api_key_statuses)&&(r.api_key_statuses=[...s.api_key_statuses],Ze())}catch(s){t||K.showError($(s,a("admin.riskControl.statusFailed")))}finally{ue.value=!1}}async function Yt(){Z.value=!0;try{const t=Ka();if(t.type!=="all"&&t.models.length===0){K.showError(a("admin.riskControl.modelFilterModelsRequired"));return}const s={enabled:r.enabled,mode:r.mode,base_url:r.base_url,model:r.model,proxy_id:r.proxy_id??0,timeout_ms:Number(r.timeout_ms)||3e3,retry_count:Number(r.retry_count)||0,sample_rate:Number(r.sample_rate)||0,all_groups:r.all_groups,group_ids:r.all_groups?[]:[...r.group_ids],record_non_hits:r.record_non_hits,clear_api_key:r.clear_api_key,worker_count:Number(r.worker_count)||4,queue_size:Number(r.queue_size)||32768,block_status:Number(r.block_status)||403,block_message:r.block_message||ve(),email_on_hit:r.email_on_hit,auto_ban_enabled:r.auto_ban_enabled,cyber_policy_exclude_from_ban_count:r.cyber_policy_exclude_from_ban_count,ban_threshold:Number(r.ban_threshold)||10,violation_window_hours:Number(r.violation_window_hours)||720,hit_retention_days:Number(r.hit_retention_days)||180,non_hit_retention_days:Math.min(Math.max(Number(r.non_hit_retention_days)||3,1),3),pre_hash_check_enabled:r.pre_hash_check_enabled,thresholds:Sa(),blocked_keywords:$e.value,keyword_blocking_mode:r.keyword_blocking_mode,model_filter:t},c=Fe(r.api_keys_text);if(!s.clear_api_key&&r.api_keys_mode==="replace"&&c.length===0){K.showError(a("admin.riskControl.apiKeysReplaceNoInput"));return}c.length>0&&(s.api_keys=c,s.api_keys_mode=r.api_keys_mode,s.clear_api_key=!1),!s.clear_api_key&&r.api_keys_mode!=="replace"&&V.value.length>0&&(s.delete_api_key_hashes=[...V.value]);const _=await B.riskControl.updateConfig(s);Ge(_),te.value=!1,K.showSuccess(a("admin.riskControl.saved")),await Promise.all([W(!0),G()])}catch(t){K.showError($(t,a("admin.riskControl.saveFailed")))}finally{Z.value=!1}}async function G(){ee.value=!0;try{const t={page:T.page,page_size:T.page_size,result:A.result||void 0,group_id:A.group_id||void 0,endpoint:A.endpoint||void 0,search:A.search||void 0,from:dt(A.from),to:dt(A.to)},s=await B.riskControl.listLogs(t);se.value=s.items,T.total=s.total,T.page=s.page,T.page_size=s.page_size,T.pages=s.pages}catch(t){K.showError($(t,a("admin.riskControl.logsFailed")))}finally{ee.value=!1}}function Jt(t){return!!(t.auto_banned&&t.user_id&&t.user_status==="disabled")}function Qe(t){return t.input_excerpt||t.error||"-"}function Xt(t){w.value=t}function Ye(){w.value=null}async function Zt(t){if(!(!t.user_id||E.value!==null)){E.value=t.user_id;try{const s=await B.riskControl.unbanUser(t.user_id);se.value=se.value.map(c=>c.user_id!==t.user_id?c:{...c,user_status:s.status}),K.showSuccess(a("admin.riskControl.unbanSuccess"))}catch(s){K.showError($(s,a("admin.riskControl.unbanFailed")))}finally{E.value=null}}}async function ea(){if(!(!Ne.value||P.value)){P.value=!0;try{const t=await B.riskControl.deleteFlaggedHash(ae.value);ae.value="",await W(!0),K.showSuccess(t.deleted?a("admin.riskControl.flaggedHashDeleted"):a("admin.riskControl.flaggedHashNotFound"))}catch(t){K.showError($(t,a("admin.riskControl.flaggedHashDeleteFailed")))}finally{P.value=!1}}}async function ta(){if(!(P.value||!window.confirm(a("admin.riskControl.clearFlaggedHashesConfirm")))){P.value=!0;try{const s=await B.riskControl.clearFlaggedHashes();await W(!0),K.showSuccess(a("admin.riskControl.flaggedHashesCleared",{count:s.deleted}))}catch(s){K.showError($(s,a("admin.riskControl.flaggedHashesClearFailed")))}finally{P.value=!1}}}function aa(){U.value="basic",te.value=!0}function Q(){T.page=1,G()}function sa(t){T.page=t,G()}function ra(t){T.page=1,T.page_size=t,G()}function oa(){r.clear_api_key=!r.clear_api_key,r.clear_api_key&&(r.api_keys_text="",r.api_keys_mode="append",re.value=[],V.value=[])}function Je(t){r.api_keys_mode=t,t==="replace"&&(V.value=[])}function la(t){r.model_filter_type=t,t==="all"&&(r.model_filter_models=[])}async function Xe(t){const s=t?Fe(r.api_keys_text):[];
2if(t&&s.length===0){K.showError(a("admin.riskControl.apiKeyTestNoInput"));return}R.value=!0;try{const c=await B.riskControl.testAPIKeys({api_keys:s,base_url:r.base_url,model:r.model,timeout_ms:Number(r.timeout_ms)||3e3,proxy_id:r.proxy_id??0,prompt:O.value,images:D.value});H.value=c.audit_result??null,t?re.value=c.items.map(_=>({..._,configured:!1})):(na(c.items),re.value=[],await W(!0)),K.showSuccess(a("admin.riskControl.apiKeyTestDone",{count:c.items.length}))}catch(c){K.showError($(c,a("admin.riskControl.apiKeyTestFailed")))}finally{R.value=!1}}function na(t){if(!Re.value||r.api_key_statuses.length===0){r.api_key_statuses=t;return}const s=new Map(t.map(c=>[c.key_hash,c]));r.api_key_statuses=r.api_key_statuses.map(c=>s.get(c.key_hash)??c)}function ia(t){if(!t.configured||!t.key_hash)return;const s=V.value.indexOf(t.key_hash);if(s>=0){V.value.splice(s,1);return}V.value.push(t.key_hash)}function oe(t){return t.configured&&t.key_hash!==""&&V.value.includes(t.key_hash)}function Ze(){const t=new Set(Te.value.map(s=>s.key_hash).filter(Boolean));V.value=V.value.filter(s=>t.has(s))}function da(){O.value="",D.value=[],H.value=null}function ua(t){D.value.splice(t,1)}async function ca(t){const s=t.target;await ze(s.files),s.value=""}async function ma(t){var s;await ze(((s=t.dataTransfer)==null?void 0:s.files)??null)}async function pa(t){var c;const s=Array.from(((c=t.clipboardData)==null?void 0:c.files)??[]).filter(_=>_.type.startsWith("image/"));s.length!==0&&(t.preventDefault(),await ze(s))}async function ze(t){if(!t)return;const s=Array.from(t).filter(c=>c.type.startsWith("image/"));for(const c of s){if(D.value.length>=bt){K.showError(a("admin.riskControl.auditTestImageLimit",{count:bt}));return}if(c.size>nd){K.showError(a("admin.riskControl.auditTestImageTooLarge"));continue}try{D.value.push(await ka(c))}catch{K.showError(a("admin.riskControl.auditTestImageReadFailed"))}}}function ka(t){return new Promise((s,c)=>{const _=new FileReader;_.onload=()=>s(String(_.result||"")),_.onerror=()=>c(_.error),_.readAsDataURL(t)})}function _a(t){const s=r.group_ids.indexOf(t);s>=0?r.group_ids.splice(s,1):r.group_ids.push(t)}function et(t){return r.group_ids.includes(t)}function _e(t){const s=Pe.value.find(c=>c.value===t);return(s==null?void 0:s.label)??t}function ya(t){return{pre_block:a("admin.riskControl.modePreBlockDesc"),observe:a("admin.riskControl.modeObserveDesc"),off:a("admin.riskControl.modeOffDesc")}[t]??""}function tt(t){return t.action==="cyber_policy"?a("admin.riskControl.action.cyberPolicy"):t.action==="keyword_block"?a("admin.riskControl.action.keywordBlock"):t.action==="block"?a("admin.riskControl.action.block"):t.action==="error"||t.error?a("admin.riskControl.action.error"):t.flagged?a("admin.riskControl.result.hit"):a("admin.riskControl.result.pass")}function at(t){return t.action==="block"||t.action==="keyword_block"||t.action==="cyber_policy"?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300":t.action==="error"||t.error?"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300":t.flagged?"bg-pink-100 text-pink-700 dark:bg-pink-900/30 dark:text-pink-300":"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300"}function ga(t){return t==="active"?"border-sky-200 bg-sky-50 text-sky-700 dark:border-sky-900/60 dark:bg-sky-900/20 dark:text-sky-300":t==="idle"?"border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-900/60 dark:bg-emerald-900/20 dark:text-emerald-300":"border-gray-100 bg-white text-gray-400 dark:border-dark-700 dark:bg-dark-800 dark:text-gray-500"}function xa(t){return t==="active"?"bg-sky-500":t==="idle"?"bg-emerald-500":"bg-gray-300 dark:bg-dark-500"}function Y(t){return Number.isFinite(t)?`${(t*100).toFixed(1)}%`:"-"}function st(t){return Number.isFinite(t)?`${Math.min(100,Math.max(0,t*100)).toFixed(1)}%`:"0%"}function ba(t){return t==null?"-":`${t} ms`}function ha(t,s){return`${t.configured?"saved":"test"}-${t.key_hash||s}`}function rt(t){const s={ok:a("admin.riskControl.apiKeyStatusOk"),error:a("admin.riskControl.apiKeyStatusError"),frozen:a("admin.riskControl.apiKeyStatusFrozen"),unknown:a("admin.r
2iskControl.apiKeyStatusUnknown")};return s[t]??s.unknown}function va(t){const s={ok:"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-300",error:"bg-amber-50 text-amber-700 dark:bg-amber-900/20 dark:text-amber-300",frozen:"bg-red-50 text-red-700 dark:bg-red-900/20 dark:text-red-300",unknown:"bg-gray-100 text-gray-600 dark:bg-dark-700 dark:text-gray-300"};return s[t]??s.unknown}function ot(t){const s={ok:"bg-emerald-500",error:"bg-amber-500",frozen:"bg-red-500",unknown:"bg-gray-400"};return s[t]??s.unknown}function fa(t){const s=[];return s.push(a("admin.riskControl.apiKeyFailureCount",{count:t.failure_count||0})),t.last_latency_ms>0&&s.push(a("admin.riskControl.apiKeyLatency",{ms:t.last_latency_ms})),t.last_http_status>0&&s.push(a("admin.riskControl.apiKeyHTTPStatus",{status:t.last_http_status})),t.frozen_until?s.push(a("admin.riskControl.apiKeyFrozenUntil",{time:le(t.frozen_until)})):t.last_checked_at?s.push(a("admin.riskControl.apiKeyLastChecked",{time:le(t.last_checked_at)})):s.push(a("admin.riskControl.apiKeyNotTested")),s.join(" / ")}function Fe(t){return t.split(/\r?\n/).map(s=>s.trim()).filter((s,c,_)=>s&&_.indexOf(s)===c)}function Ca(t){return t==="keyword_only"||t==="api_only"||t==="keyword_and_api"?t:"keyword_and_api"}function wa(t){if(!t||typeof t!="object")return{type:"all",models:[]};const s=t,c=lt(s.type),_=c==="all"?[]:nt(s.models);return{type:c,models:_}}function lt(t){return t==="include"||t==="exclude"||t==="all"?t:"all"}function nt(t){if(!Array.isArray(t))return[];const s=new Set,c=[];for(const _ of t){const h=String(_??"").trim();if(!h)continue;const z=h.toLowerCase();s.has(z)||(s.add(z),c.push(h))}return c}function Ka(){const t=lt(r.model_filter_type);return t==="all"?{type:"all",models:[]}:{type:t,models:nt(r.model_filter_models)}}function Aa(t){const s={...L};for(const c of he){const _=t==null?void 0:t[c];Number.isFinite(_)&&(s[c]=Ve(Number(_)*100))}return s}function Sa(){const t={};for(const s of he)t[s]=Number((Ve(r.thresholds[s])/100).toFixed(4));return t}function Ta(){r.thresholds={...L}}function Ve(t){const s=Number(t);return Number.isFinite(s)?Math.min(100,Math.max(0,s)):0}function it(t){return`${Ve(t).toFixed(1)}%`}function Ma(t){const s=new Set,c=[];for(const _ of t.split(/\r?\n/)){const h=_.trim();if(!h)continue;const z=h.toLowerCase();s.has(z)||(s.add(z),c.push(h))}return c}function za(t){return t.flagged?t.violation_count===0?a("admin.riskControl.violationNotCounted"):a("admin.riskControl.violationCount",{count:t.violation_count||1}):"-"}function dt(t){if(!t)return;const s=new Date(t);if(!Number.isNaN(s.getTime()))return s.toISOString()}function le(t){return Da(t)||"-"}function b(t){return new Intl.NumberFormat().format(t)}return Ha(()=>{Qt(),me=window.setInterval(()=>{W(!0)},15e3)}),Ba(()=>{me!==null&&(window.clearInterval(me),me=null)}),(t,s)=>(d(),ge(Pa,null,{default:de(()=>{var c,_,h,z,ne,ie,He,J,ut,ct,mt,pt,kt;return[e("div",La,[fe.value?(d(),u("div",Ea,[...s[44]||(s[44]=[e("div",{class:"h-8 w-8 animate-spin rounded-full border-b-2 border-primary-600"},null,-1)])])):(d(),u(M,{key:1},[e("div",Oa,[e("div",null,[e("h1",qa,o(l(a)("admin.riskControl.title")),1),e("p",Wa,o(l(a)("admin.riskControl.description")),1)]),e("div",Ga,[e("button",{type:"button",class:"btn btn-secondary inline-flex items-center gap-2",disabled:ue.value,onClick:s[0]||(s[0]=i=>W(!1))},[k(x,{name:"refresh",size:"sm",class:y(ue.value?"animate-spin":"")},null,8,["class"]),S(" "+o(l(a)("admin.riskControl.refreshStatus")),1)],8,Qa),e("button",{type:"button",class:"btn btn-primary inline-flex items-center gap-2",onClick:aa},[k(x,{name:"cog",size:"sm"}),S(" "+o(l(a)("admin.riskControl.openSettings")),1)])])]),e("div",Ya,[(d(!0),u(M,null,F(jt.value,i=>(d(),u("div",{key:i.key,class:"rounded-lg border border-gray-100 bg-white px-4 py-3 shadow-sm dark:border-dark-700 dark:bg-dark-800"},[e("div",Ja,[e("div",{class:y(["flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-lg",i.iconClass])},[k(x,{name:i.icon,size:"sm"},null,8,["name"])],2),e("div",Xa,[e("div",Za,[e("p",es,o(i.label),1),i.badge?(d(),u("span",{key:0,class:y(["inline-flex flex-shrink-0 items-center rounded-full px-2 py-0.5 text-xs font-medium",i.badgeClass])},o(i.badge),3)):g("",!0)]),e("div",ts,[e("p",as,o(i.value),1),i.meta?(d(),u("p",ss,o(i.meta),1)):g("",!0)])])])]))),128))]),$t.value?(d(),u("div",rs,[e("div",os,[e("div",ls,[e("div",null,[e("h2",ns,o(l(a)("admin.r
2iskControl.preBlockSyncStatus")),1),e("p",is,o(l(a)("admin.riskControl.preBlockSyncHint")),1)]),e("span",ds,o(_e(((c=p.value)==null?void 0:c.mode)??r.mode)),1)]),e("div",us,[e("div",cs,[(d(!0),u(M,null,F(Nt.value,i=>(d(),u("div",{key:i.key,class:y(["rounded-lg p-4",i.class])},[e("p",ms,o(i.label),1),e("p",{class:y(["mt-2 truncate text-2xl font-semibold leading-8",i.valueClass])},o(i.value),3),i.meta?(d(),u("p",ps,o(i.meta),1)):g("",!0)],2))),128))])])]),e("div",ks,[e("div",_s,[e("div",null,[e("h2",ys,o(l(a)("admin.riskControl.preBlockAPIKeyLoad")),1),e("p",gs,o(l(a)("admin.riskControl.preBlockAPIKeyLoadHint")),1)]),e("span",xs,o(Et.value),1)]),e("div",bs,[Me.value.length>0?(d(),u("div",hs,[(d(!0),u(M,null,F(Me.value,i=>(d(),u("div",{key:i.key_hash||i.index,class:"rounded-lg bg-gray-50 p-3 dark:bg-dark-700/50"},[e("div",vs,[e("div",fs,[e("div",Cs,[e("span",ws,"#"+o(i.index+1),1),e("span",Ks,o(i.masked||"-"),1),e("span",{class:y(["h-2 w-2 flex-shrink-0 rounded-full",ot(i.status)])},null,2)]),e("p",As,o(l(a)("admin.riskControl.preBlockAPIKeyTotals",{total:b(i.total),success:b(i.success),errors:b(i.errors)})),1)]),e("div",Ss,[e("div",null,[e("p",null,o(l(a)("admin.riskControl.preBlockKeyActiveShort")),1),e("p",Ts,o(b(i.active)),1)]),e("div",null,[e("p",null,o(l(a)("admin.riskControl.preBlockKeyTotalShort")),1),e("p",Ms,o(b(i.total)),1)]),e("div",null,[e("p",null,o(l(a)("admin.riskControl.preBlockKeyAvgShort")),1),e("p",zs,o(b(i.avg_latency_ms))+" ms",1)]),e("div",null,[e("p",null,o(l(a)("admin.riskControl.preBlockKeyLastShort")),1),e("p",Fs,o(b(i.last_latency_ms))+" ms",1)])])]),e("div",Vs,[e("div",{class:"h-full rounded-full bg-sky-500",style:xe({width:Ot(i.total)})},null,4)])]))),128))])):(d(),u("p",Hs,o(l(a)("admin.riskControl.preBlockAPIKeyLoadEmpty")),1))])])])):g("",!0),Rt.value?(d(),u("div",Bs,[e("div",js,[e("div",null,[e("h2",Ps,o(l(a)("admin.riskControl.workerStatus")),1),e("p",Us,o(l(a)("admin.riskControl.workerStatusHint")),1)]),e("div",Ds,[e("span",null,o(l(a)("admin.riskControl.autoRefresh")),1),(_=p.value)!=null&&_.last_cleanup_at?(d(),u("span",Is,o(l(a)("admin.riskControl.lastCleanup",{time:le(p.value.last_cleanup_at)})),1)):g("",!0)])]),e("div",$s,[e("div",Rs,[e("div",Ns,[e("div",Ls,[e("div",null,[e("p",Es,o(l(a)("admin.riskControl.queueUsage")),1),e("p",Os,o(b(((h=p.value)==null?void 0:h.queue_length)??0))+" / "+o(b(((z=p.value)==null?void 0:z.queue_size)??r.queue_size)),1)]),e("span",qs,o(qe.value),1)]),e("div",Ws,[e("div",{class:"h-full rounded-full bg-primary-500 transition-all duration-300",style:xe(It.value)},null,4)])]),e("div",Gs,[e("div",Qs,[e("p",Ys,o(l(a)("admin.riskControl.activeWorkers")),1),e("p",Js,o(((ne=p.value)==null?void 0:ne.active_workers)??0),1)]),e("div",Xs,[e("p",Zs,o(l(a)("admin.riskControl.idleWorkers")),1),e("p",er,o(((ie=p.value)==null?void 0:ie.idle_workers)??r.worker_count),1)]),e("div",tr,[e("p",ar,o(l(a)("admin.riskControl.processed")),1),e("p",sr,o(b(((He=p.value)==null?void 0:He.processed)??0)),1)]),e("div",rr,[e("p",or,o(l(a)("admin.riskControl.droppedErrors")),1),e("p",lr,o(b((((J=p.value)==null?void 0:J.dropped)??0)+(((ut=p.value)==null?void 0:ut.errors)??0))),1)])])]),e("div",null,[e("div",nr,[e("div",null,[e("p",ir,o(l(a)("admin.riskControl.workerPool")),1),e("p",dr,o(l(a)("admin.riskControl.workerPoolMeta",{active:((ct=p.value)==null?void 0:ct.active_workers)??0,idle:((mt=p.value)==null?void 0:mt.idle_workers)??r.worker_count,total:((pt=p.value)==null?void 0:pt.worker_count)??r.worker_count})),1)]),e("span",ur,o(_e(((kt=p.value)==null?void 0:kt.mode)??r.mode)),1)]),e("div",cr,[(d(!0),u(M,null,F(qt.value,i=>(d(),u("div",{key:i.id,class:y(["flex h-12 items-center justify-between rounded-lg border px-3 transition-colors",ga(i.state)]),title:i.label},[e("span",pr,"#"+o(i.id),1),e("span",{class:y(["h-2.5 w-2.5 rounded-full",xa(i.state)])},null,2)],10,mr))),128))])])])])):g("",!0),e("div",kr,[e("div",_r,[e("div",yr,[e("div",null,[e("h2",gr,o(l(a)("admin.riskControl.records")),1),e("p",xr,o(l(a)("admin.riskControl.recordsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary inline-flex items-center gap-2",disabled:ee.value,onClick:G},[k(x,{name:"refresh",size:"sm",class:y(ee.value?"animate-spin":"")}
2,null,8,["class"]),S(" "+o(l(a)("admin.riskControl.refresh")),1)],8,br)]),e("div",hr,[e("div",vr,[k(x,{name:"filter",size:"sm",class:"flex-shrink-0 text-gray-400"}),e("span",fr,o(l(a)("admin.riskControl.modelFilter")),1),e("span",Cr,o(Ke.value),1)]),Ae.value.length>0?(d(),u("div",wr,[(d(!0),u(M,null,F(Ae.value,i=>(d(),u("span",{key:i,class:"inline-flex max-w-[180px] items-center truncate rounded-md bg-white px-2 py-1 font-mono text-xs text-gray-600 shadow-sm dark:bg-dark-800 dark:text-gray-300"},o(i),1))),128)),Ue.value>0?(d(),u("span",Kr," +"+o(Ue.value),1)):g("",!0)])):g("",!0)]),e("div",Ar,[k(be,{modelValue:A.result,"onUpdate:modelValue":s[1]||(s[1]=i=>A.result=i),options:wt.value,onChange:Q},null,8,["modelValue","options"]),k(be,{modelValue:A.group_id,"onUpdate:modelValue":s[2]||(s[2]=i=>A.group_id=i),options:At.value,onChange:Q},null,8,["modelValue","options"]),k(be,{modelValue:A.endpoint,"onUpdate:modelValue":s[3]||(s[3]=i=>A.endpoint=i),options:Kt.value,onChange:Q},null,8,["modelValue","options"]),f(e("input",{"onUpdate:modelValue":s[4]||(s[4]=i=>A.search=i),type:"search",class:"input",placeholder:l(a)("admin.riskControl.filters.search"),onKeyup:ja(Q,["enter"])},null,40,Sr),[[C,A.search,void 0,{trim:!0}]]),f(e("input",{"onUpdate:modelValue":s[5]||(s[5]=i=>A.from=i),type:"datetime-local",class:"input",title:l(a)("admin.riskControl.filters.from"),onChange:Q},null,40,Tr),[[C,A.from]]),f(e("input",{"onUpdate:modelValue":s[6]||(s[6]=i=>A.to=i),type:"datetime-local",class:"input",title:l(a)("admin.riskControl.filters.to"),onChange:Q},null,40,Mr),[[C,A.to]])])]),e("div",zr,[e("table",Fr,[e("thead",Vr,[e("tr",null,[e("th",Hr,o(l(a)("admin.riskControl.table.time")),1),e("th",Br,o(l(a)("admin.riskControl.table.group")),1),e("th",jr,o(l(a)("admin.riskControl.table.user")),1),e("th",Pr,o(l(a)("admin.riskControl.table.apiKey")),1),e("th",Ur,o(l(a)("admin.riskControl.table.endpoint")),1),e("th",Dr,o(l(a)("admin.riskControl.table.result")),1),e("th",Ir,o(l(a)("admin.riskControl.table.highest")),1),e("th",$r,o(l(a)("admin.riskControl.table.actionMeta")),1),e("th",Rr,o(l(a)("admin.riskControl.table.latency")),1),e("th",Nr,o(l(a)("admin.riskControl.table.input")),1)])]),e("tbody",Lr,[ee.value?(d(),u("tr",Er,[e("td",Or,o(l(a)("common.loading")),1)])):se.value.length===0?(d(),u("tr",qr,[e("td",Wr,o(l(a)("admin.riskControl.emptyLogs")),1)])):(d(!0),u(M,{key:2},F(se.value,i=>(d(),u("tr",{key:i.id,class:"hover:bg-gray-50 dark:hover:bg-dark-700/60"},[e("td",Gr,o(le(i.created_at)),1),e("td",Qr,o(i.group_name||"-"),1),e("td",Yr,[e("div",null,o(i.user_email||"-"),1),i.user_id?(d(),u("div",Jr,"UID "+o(i.user_id),1)):g("",!0)]),e("td",Xr,o(i.api_key_name||"-"),1),e("td",Zr,[e("div",null,o(i.endpoint||"-"),1),e("div",eo,o(i.provider||"-")+" / "+o(i.model||"-"),1)]),e("td",to,[e("span",{class:y(["inline-flex rounded-md px-2 py-1 text-xs font-medium",at(i)])},o(tt(i)),3)]),e("td",ao,[e("div",null,o(i.highest_category||"-"),1),e("div",so,o(Y(i.highest_score)),1),i.matched_keyword?(d(),u("div",{key:0,class:"mt-0.5 text-xs font-medium text-red-600 dark:text-red-300",title:l(a)("admin.riskControl.matchedKeyword")+": "+i.matched_keyword},o(l(a)("admin.riskControl.matchedKeyword"))+": "+o(i.matched_keyword),9,ro)):g("",!0)]),e("td",oo,[e("div",null,o(za(i)),1),e("div",lo,[S(o(i.email_sent?l(a)("admin.riskControl.emailSent"):l(a)("admin.riskControl.emailNotSent"))+" ",1),i.auto_banned?(d(),u("span",no," / "+o(l(a)("admin.riskControl.autoBanned")),1)):g("",!0)]),Jt(i)?(d(),u("button",{key:0,type:"button",class:"mt-2 inline-flex items-center gap-1 rounded-md border border-emerald-200 bg-emerald-50 px-2 py-1 text-xs font-medium text-emerald-700 transition-colors hover:bg-emerald-100 disabled:cursor-not-allowed disabled:opacity-60 dark:border-emerald-900/60 dark:bg-emerald-900/20 dark:text-emerald-300 dark:hover:bg-emerald-900/30",disabled:E.value===i.user_id,onClick:ye=>Zt(i)},[k(x,{name:"checkCircle",size:"xs",class:y(E.value===i.user_id?"animate-spin":"")},null,8,["class"]),S(" "+o(E.value===i.user_id?l(a)("common.processing"):l(a)("admin.riskControl.unbanUser")),1)],8,io)):g("",!0)]),e("td",uo,[e("div",null,o(ba(i.upstream_latency_ms)),1),i.queue_delay_ms!==null&&i.queue_delay_ms!==void 0?(d(),u("div",co,o(l(a)("admin.r
2iskControl.queueDelay",{ms:i.queue_delay_ms})),1)):g("",!0)]),e("td",mo,[e("button",{type:"button",class:"group flex w-full min-w-0 items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors hover:bg-gray-100 dark:hover:bg-dark-700",title:Qe(i),onClick:ye=>Xt(i)},[e("span",ko,o(Qe(i)),1),k(x,{name:"eye",size:"xs",class:"flex-shrink-0 text-gray-300 transition-colors group-hover:text-primary-500 dark:text-gray-500"})],8,po)])]))),128))])])]),T.total>0?(d(),ge(Ia,{key:0,page:T.page,total:T.total,"page-size":T.page_size,"onUpdate:page":sa,"onUpdate:pageSize":ra},null,8,["page","total","page-size"])):g("",!0)])],64)),k(xt,{show:te.value,title:l(a)("admin.riskControl.settingsTitle"),width:"extra-wide",onClose:s[43]||(s[43]=i=>te.value=!1)},{footer:de(()=>[e("div",Pi,[e("button",{type:"button",class:"btn btn-secondary",onClick:s[42]||(s[42]=i=>te.value=!1)},o(l(a)("common.cancel")),1),e("button",{type:"button",class:"btn btn-primary inline-flex items-center gap-2",disabled:Z.value,onClick:Yt},[Z.value?(d(),ge(x,{key:0,name:"refresh",size:"sm",class:"animate-spin"})):(d(),ge(x,{key:1,name:"check",size:"sm"})),S(" "+o(Z.value?l(a)("common.saving"):l(a)("admin.riskControl.saveConfig")),1)],8,Ui)])]),default:de(()=>{var i,ye,_t,yt;return[e("div",_o,[e("div",yo,[(d(!0),u(M,null,F(vt.value,n=>(d(),u("button",{key:n.id,type:"button",class:y(["inline-flex whitespace-nowrap rounded-lg px-3 py-2 text-sm font-medium transition-colors",U.value===n.id?"bg-primary-50 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300":"text-gray-500 hover:bg-gray-50 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-dark-700 dark:hover:text-white"]),onClick:j=>U.value=n.id},o(n.label),11,go))),128))]),U.value==="basic"?(d(),u("div",xo,[e("div",bo,[e("div",ho,[e("div",null,[e("p",vo,o(l(a)("admin.riskControl.enabled")),1),e("p",fo,o(l(a)("admin.riskControl.enabledHint")),1)]),k(X,{modelValue:r.enabled,"onUpdate:modelValue":s[7]||(s[7]=n=>r.enabled=n)},null,8,["modelValue"])]),e("div",null,[e("label",Co,o(l(a)("admin.riskControl.mode")),1),k(be,{modelValue:r.mode,"onUpdate:modelValue":s[8]||(s[8]=n=>r.mode=n),options:Pe.value},null,8,["modelValue","options"]),e("p",wo,o(ya(r.mode)),1)]),e("div",null,[e("label",Ko,o(l(a)("admin.riskControl.baseUrl")),1),f(e("input",{"onUpdate:modelValue":s[9]||(s[9]=n=>r.base_url=n),type:"url",class:"input",placeholder:"https://api.openai.com"},null,512),[[C,r.base_url,void 0,{trim:!0}]])]),e("div",null,[e("label",Ao,o(l(a)("admin.riskControl.model")),1),f(e("input",{"onUpdate:modelValue":s[10]||(s[10]=n=>r.model=n),type:"text",class:"input",placeholder:"omni-moderation-latest"},null,512),[[C,r.model,void 0,{trim:!0}]])]),e("div",null,[e("label",So,o(l(a)("admin.riskControl.timeoutMs")),1),f(e("input",{"onUpdate:modelValue":s[11]||(s[11]=n=>r.timeout_ms=n),type:"number",min:"500",max:"30000",class:"input"},null,512),[[C,r.timeout_ms,void 0,{number:!0}]])]),e("div",null,[e("label",To,o(l(a)("admin.riskControl.retryCount")),1),f(e("input",{"onUpdate:modelValue":s[12]||(s[12]=n=>r.retry_count=n),type:"number",min:"0",max:"5",class:"input"},null,512),[[C,r.retry_count,void 0,{number:!0}]])]),e("div",null,[e("label",Mo,o(l(a)("admin.riskControl.sampleRate")),1),e("div",zo,[f(e("input",{"onUpdate:modelValue":s[13]||(s[13]=n=>r.sample_rate=n),type:"number",min:"0",max:"100",step:"1",class:"input pr-8"},null,512),[[C,r.sample_rate,void 0,{number:!0}]]),s[45]||(s[45]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))])]),e("div",null,[e("label",Fo,o(l(a)("admin.riskControl.proxy")),1),k(Ra,{modelValue:r.proxy_id,"onUpdate:modelValue":s[14]||(s[14]=n=>r.proxy_id=n),proxies:je.value},null,8,["modelValue","proxies"]),e("p",Vo,o(l(a)("admin.riskControl.proxyHint")),1)])]),e("div",Ho,[e("div",Bo,[e("div",jo,[e("span",Po,[k(x,{name:"key",size:"md"})]),e("div",null,[e("label",Uo,o(l(a)("admin.riskControl.apiKeys")),1),e("p",Do,o(l(a)("admin.riskControl.apiKeysHint",{count:r.api_key_count})),1)])]),e("div",Io,[e("button",{type:"button",class:"btn btn-secondary inline-flex items-center gap-2",disabled:R.value||Ie.value===0||r.clear_api_key,onClick:s[15]||(s[15]=n=>Xe(!0))},[k(x,{name:"beaker",size:"sm",class:y(R.value?"animate-pulse":"")}
2,null,8,["class"]),S(" "+o(R.value?l(a)("admin.riskControl.testingApiKeys"):l(a)("admin.riskControl.testInputApiKeys")),1)],8,$o),e("button",{type:"button",class:"btn btn-secondary inline-flex items-center gap-2",disabled:R.value||Se.value===0||ke.value>0||r.clear_api_key||r.api_keys_mode==="replace",onClick:s[16]||(s[16]=n=>Xe(!1))},[k(x,{name:"shield",size:"sm"}),S(" "+o(Ft.value),1)],8,Ro),r.api_key_configured?(d(),u("button",{key:0,type:"button",class:"btn btn-secondary inline-flex items-center gap-2",onClick:oa},[k(x,{name:r.clear_api_key?"x":"trash",size:"sm"},null,8,["name"]),S(" "+o(r.clear_api_key?l(a)("admin.riskControl.keepApiKey"):l(a)("admin.riskControl.clearApiKey")),1)])):g("",!0)])]),e("div",No,[e("div",Lo,[e("div",Eo,[e("div",Oo,[e("span",qo,o(l(a)("admin.riskControl.apiKeysWriteMode")),1),e("span",Wo,o(zt.value),1)]),e("div",Go,[e("button",{type:"button",class:y(["rounded-md px-3 py-1.5 text-xs font-medium transition-colors",r.api_keys_mode==="append"?"bg-primary-500 text-white shadow-sm":"text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-dark-700"]),disabled:r.clear_api_key,onClick:s[17]||(s[17]=n=>Je("append"))},o(l(a)("admin.riskControl.apiKeysModeAppend")),11,Qo),e("button",{type:"button",class:y(["rounded-md px-3 py-1.5 text-xs font-medium transition-colors",r.api_keys_mode==="replace"?"bg-amber-500 text-white shadow-sm":"text-gray-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-dark-700"]),disabled:r.clear_api_key,onClick:s[18]||(s[18]=n=>Je("replace"))},o(l(a)("admin.riskControl.apiKeysModeReplace")),11,Yo)])]),f(e("textarea",{"onUpdate:modelValue":s[19]||(s[19]=n=>r.api_keys_text=n),class:"input min-h-44 resize-y font-mono text-sm",placeholder:Mt.value,autocomplete:"new-password",disabled:r.clear_api_key},null,8,Jo),[[C,r.api_keys_text]]),e("div",Xo,[e("span",Zo,o(l(a)("admin.riskControl.inputApiKeyCount",{count:Ie.value})),1),r.api_key_configured?(d(),u("span",el,o(l(a)("admin.riskControl.storedApiKeyCount",{count:r.api_key_count})),1)):g("",!0),r.clear_api_key?(d(),u("span",tl,o(l(a)("admin.riskControl.apiKeyWillClear")),1)):ke.value>0?(d(),u("span",al,o(l(a)("admin.riskControl.apiKeyPendingDeleteCount",{count:ke.value})),1)):g("",!0),r.api_keys_mode==="replace"?(d(),u("span",sl,o(l(a)("admin.riskControl.apiKeysReplaceWarning")),1)):g("",!0)]),e("div",{class:"rounded-lg border border-gray-100 bg-gray-50 p-3 dark:border-dark-700 dark:bg-dark-900/30",onPaste:pa},[e("div",rl,[e("div",null,[e("p",ol,o(l(a)("admin.riskControl.auditTestInput")),1),e("p",ll,o(l(a)("admin.riskControl.auditTestInputHint")),1)]),O.value||D.value.length>0||H.value?(d(),u("button",{key:0,type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-gray-500 hover:bg-white hover:text-gray-900 dark:text-gray-400 dark:hover:bg-dark-800 dark:hover:text-white",onClick:da},[k(x,{name:"x",size:"xs"}),S(" "+o(l(a)("admin.riskControl.clearAuditTest")),1)])):g("",!0)]),f(e("textarea",{"onUpdate:modelValue":s[20]||(s[20]=n=>O.value=n),class:"input min-h-24 resize-y text-sm",placeholder:l(a)("admin.riskControl.auditTestPromptPlaceholder")},null,8,nl),[[C,O.value]]),e("div",{class:"mt-3 rounded-lg border border-dashed border-gray-200 bg-white p-3 dark:border-dark-700 dark:bg-dark-800",onDragover:s[21]||(s[21]=gt(()=>{},["prevent"])),onDrop:gt(ma,["prevent"])},[e("div",il,[e("div",dl,[k(x,{name:"upload",size:"md",class:"mt-0.5 text-gray-400"}),e("div",null,[e("p",ul,o(l(a)("admin.riskControl.auditTestImages")),1),e("p",cl,o(l(a)("admin.riskControl.auditTestImagesHint")),1)])]),e("label",ml,[k(x,{name:"plus",size:"sm"}),S(" "+o(l(a)("admin.riskControl.addAuditTestImage"))+" ",1),e("input",{type:"file",accept:"image/*",multiple:"",class:"sr-only",onChange:ca},null,32)])]),D.value.length>0?(d(),u("div",pl,[(d(!0),u(M,null,F(D.value,(n,j)=>(d(),u("div",{key:n.slice(0,64)+j,class:"group relative aspect-square overflow-hidden rounded-lg border border-gray-100 bg-gray-100 dark:border-dark-700 dark:bg-dark-700"},[e("img",{src:n,alt:"",class:"h-full w-full object-cover"},null,8,kl),e("button",{type:"button",class:"absolute right-1.5 top-1.5 flex h-7 w-7 items-center justify-center rounded-full bg-black/60 text-white opacity-0 transition-opacity group-hover:opacity-100",onClick:Fa=>ua(j)},[k(x,{name:"x",size:"xs","stroke-width":2})],8,_l)]))),128))])):g("",!0)],32)],32)]),e("div",yl,[e("div",gl,[e("div",xl,[e
2("p",bl,o(l(a)("admin.riskControl.apiKeyHealth")),1),e("p",hl,o(l(a)("admin.riskControl.apiKeyFreezeRule")),1)]),e("span",vl,o(l(a)("admin.riskControl.apiKeyRows",{count:N.value.length})),1)]),N.value.length===0?(d(),u("div",fl,[k(x,{name:"infoCircle",size:"lg",class:"text-gray-300 dark:text-dark-500"}),e("p",Cl,o(l(a)("admin.riskControl.apiKeyHealthEmpty")),1),e("p",wl,o(l(a)("admin.riskControl.apiKeyHealthEmptyHint")),1)])):(d(),u("div",Kl,[e("div",{class:y(["space-y-2",I.value?"max-h-72 overflow-y-auto pr-1":""])},[(d(!0),u(M,null,F(Le.value,(n,j)=>(d(),u("div",{key:ha(n,j),class:y(["rounded-lg border bg-white p-2.5 shadow-sm dark:bg-dark-800",oe(n)?"border-amber-200 opacity-70 dark:border-amber-800/60":"border-gray-100 dark:border-dark-700"])},[e("div",Al,[e("div",Sl,[e("div",Tl,[e("span",Ml,o(n.masked||"-"),1),e("span",{class:y(["inline-flex rounded-md px-1.5 py-0.5 text-[11px] font-medium",n.configured?"bg-primary-50 text-primary-700 dark:bg-primary-900/30 dark:text-primary-300":"bg-purple-50 text-purple-700 dark:bg-purple-900/30 dark:text-purple-300"])},o(oe(n)?l(a)("admin.riskControl.apiKeyPendingDelete"):n.configured?l(a)("admin.riskControl.apiKeyConfigured"):l(a)("admin.riskControl.apiKeyTemporary")),3)]),e("p",zl,o(fa(n)),1)]),e("div",Fl,[e("span",{class:y(["inline-flex items-center gap-1.5 whitespace-nowrap rounded-full px-2 py-0.5 text-xs font-medium",va(n.status)])},[e("span",{class:y(["h-1.5 w-1.5 rounded-full",ot(n.status)])},null,2),S(" "+o(rt(n.status)),1)],2),n.configured&&!r.clear_api_key?(d(),u("button",{key:0,type:"button",class:"inline-flex h-7 w-7 items-center justify-center rounded-md text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-dark-700 dark:hover:text-gray-200",title:oe(n)?l(a)("admin.riskControl.undoDeleteApiKey"):l(a)("admin.riskControl.deleteApiKey"),onClick:Fa=>ia(n)},[k(x,{name:oe(n)?"refresh":"trash",size:"xs"},null,8,["name"])],8,Vl)):g("",!0)])]),n.last_error?(d(),u("p",Hl,o(n.last_error),1)):g("",!0)],2))),128))],2),Ht.value?(d(),u("div",Bl,[e("span",jl,o(I.value?l(a)("admin.riskControl.apiKeyRowsExpanded",{count:N.value.length}):l(a)("admin.riskControl.apiKeyRowsCollapsed",{count:Vt.value})),1),e("button",{type:"button",class:"inline-flex shrink-0 items-center gap-1 rounded-md px-2 py-1 font-medium text-primary-600 transition-colors hover:bg-primary-50 hover:text-primary-700 dark:text-primary-300 dark:hover:bg-primary-900/20",onClick:s[22]||(s[22]=n=>I.value=!I.value)},[k(x,{name:I.value?"chevronUp":"chevronDown",size:"xs"},null,8,["name"]),S(" "+o(I.value?l(a)("admin.riskControl.collapseApiKeyRows"):l(a)("admin.riskControl.expandApiKeyRows")),1)])])):g("",!0)])),H.value?(d(),u("div",Pl,[e("div",Ul,[e("div",null,[e("p",Dl,o(l(a)("admin.riskControl.auditTestResult")),1),e("p",Il,o(l(a)("admin.riskControl.auditTestHighest",{category:H.value.highest_category||"-",score:Y(H.value.highest_score)})),1)]),e("span",{class:y(["inline-flex rounded-full px-2 py-1 text-xs font-medium",H.value.flagged?"bg-red-50 text-red-700 dark:bg-red-900/20 dark:text-red-300":"bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-300"])},o(H.value.flagged?l(a)("admin.riskControl.auditTestFlagged"):l(a)("admin.riskControl.auditTestPassed")),3)]),e("div",$l,[e("div",Rl,[e("span",null,o(l(a)("admin.riskControl.auditTestComposite")),1),e("span",Nl,o(Y(H.value.composite_score)),1)]),e("div",Ll,[e("div",{class:y(["h-full rounded-full",H.value.flagged?"bg-red-500":"bg-emerald-500"]),style:xe({width:st(H.value.composite_score)})},null,6)])]),e("div",El,[(d(!0),u(M,null,F(Pt.value,n=>(d(),u("div",{key:n.category},[e("div",Ol,[e("span",ql,o(n.category),1),e("span",Wl,o(Y(n.score))+" / "+o(Y(n.threshold)),1)]),e("div",Gl,[e("div",{class:y(["h-full rounded-full",n.hit?"bg-red-500":"bg-primary-500"]),style:xe({width:st(n.score)})},null,6)])]))),128))])])):g("",!0)])])])])):U.value==="scope"?(d(),u("div",Ql,[e("div",Yl,[e("div",null,[e("h3",Jl,o(l(a)("admin.riskControl.groupScope")),1),e("p",Xl,o(l(a)("admin.riskControl.groupScopeHint")),1)]),e("div",Zl,[e("button",{type:"button",class:y(["rounded-md px-3 py-1.5 text-sm font-medium transition-colors",r.all_groups?"bg-white text-gray-900 shadow-sm dark:bg-dark-800 dark:text-white":"text-gray-500 dark:text-gray-400"]),onClick:s[23]||(s[23]=n=>r.all_groups=!0)}
2,o(l(a)("admin.riskControl.allGroups")),3),e("button",{type:"button",class:y(["rounded-md px-3 py-1.5 text-sm font-medium transition-colors",r.all_groups?"text-gray-500 dark:text-gray-400":"bg-white text-gray-900 shadow-sm dark:bg-dark-800 dark:text-white"]),onClick:s[24]||(s[24]=n=>r.all_groups=!1)},o(l(a)("admin.riskControl.selectedGroups")),3)])]),r.all_groups?g("",!0):(d(),u("div",en,[e("div",tn,[k(x,{name:"search",size:"sm",class:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-gray-400"}),f(e("input",{"onUpdate:modelValue":s[25]||(s[25]=n=>Ce.value=n),type:"search",class:"input pl-9",placeholder:l(a)("admin.riskControl.searchGroups")},null,8,an),[[C,Ce.value,void 0,{trim:!0}]])]),e("div",sn,[(d(!0),u(M,null,F(De.value,n=>(d(),u("button",{key:n.id,type:"button",class:y(["flex min-h-20 items-center justify-between rounded-lg border p-4 text-left transition-colors",et(n.id)?"border-primary-300 bg-primary-50 dark:border-primary-700 dark:bg-primary-900/20":"border-gray-100 hover:bg-gray-50 dark:border-dark-700 dark:hover:bg-dark-700/60"]),onClick:j=>_a(n.id)},[e("span",on,[e("span",ln,o(n.name),1),e("span",nn,o(n.platform),1)]),e("span",{class:y(["flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full border",et(n.id)?"border-primary-500 bg-primary-500 text-white":"border-gray-300 text-transparent dark:border-dark-500"])},[k(x,{name:"check",size:"xs","stroke-width":2})],2)],10,rn))),128)),De.value.length===0?(d(),u("p",dn,o(l(a)("admin.riskControl.noGroups")),1)):g("",!0)])])),e("div",un,[e("div",cn,[e("div",null,[e("h3",mn,o(l(a)("admin.riskControl.modelFilter")),1),e("p",pn,o(l(a)("admin.riskControl.modelFilterHint")),1)]),e("span",kn,o(Ke.value),1)]),e("div",_n,[(d(!0),u(M,null,F(Ct.value,n=>(d(),u("button",{key:n.value,type:"button",class:y(["rounded-lg border p-3 text-left transition-colors",r.model_filter_type===n.value?"border-primary-300 bg-primary-50 text-primary-900 shadow-sm dark:border-primary-700 dark:bg-primary-900/20 dark:text-primary-100":"border-gray-100 hover:bg-gray-50 dark:border-dark-700 dark:hover:bg-dark-700/60"]),onClick:j=>la(n.value)},[e("div",gn,[e("span",xn,o(n.label),1),e("span",{class:y(["flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-full border",r.model_filter_type===n.value?"border-primary-500 bg-primary-500 text-white":"border-gray-300 text-transparent dark:border-dark-500"])},[k(x,{name:"check",size:"xs","stroke-width":2})],2)]),e("p",bn,o(n.description),1)],10,yn))),128))]),r.model_filter_type!=="all"?(d(),u("div",hn,[e("label",vn,o(l(a)("admin.riskControl.modelFilterModels")),1),k($a,{modelValue:r.model_filter_models,"onUpdate:modelValue":s[26]||(s[26]=n=>r.model_filter_models=n)},null,8,["modelValue"]),e("p",fn,o(l(a)("admin.riskControl.modelFilterModelCount",{count:we.value})),1)])):g("",!0)])])):U.value==="runtime"?(d(),u("div",Cn,[e("div",null,[e("label",wn,o(l(a)("admin.riskControl.workerCount")),1),f(e("input",{"onUpdate:modelValue":s[27]||(s[27]=n=>r.worker_count=n),type:"number",min:"1",max:"32",class:"input"},null,512),[[C,r.worker_count,void 0,{number:!0}]])]),e("div",null,[e("label",Kn,o(l(a)("admin.riskControl.queueSize")),1),f(e("input",{"onUpdate:modelValue":s[28]||(s[28]=n=>r.queue_size=n),type:"number",min:"100",max:"100000",class:"input"},null,512),[[C,r.queue_size,void 0,{number:!0}]])]),e("div",An,[e("div",null,[e("p",Sn,o(l(a)("admin.riskControl.recordNonHits")),1),e("p",Tn,o(l(a)("admin.riskControl.recordNonHitsHint")),1)]),k(X,{modelValue:r.record_non_hits,"onUpdate:modelValue":s[29]||(s[29]=n=>r.record_non_hits=n)},null,8,["modelValue"])]),e("div",Mn,[e("div",zn,[e("div",null,[e("p",Fn,o(l(a)("admin.riskControl.preHashCheck")),1),e("p",Vn,o(l(a)("admin.riskControl.preHashCheckHint")),1)]),k(X,{modelValue:r.pre_hash_check_enabled,"onUpdate:modelValue":s[30]||(s[30]=n=>r.pre_hash_check_enabled=n)},null,8,["modelValue"])]),e("div",Hn,[e("div",Bn,[e("div",null,[e("p",jn,o(l(a)("admin.riskControl.flaggedHashCount",{count:b(((i=p.value)==null?void 0:i.flagged_hash_count)??0)})),1),e("p",Pn,o(l(a)("admin.riskControl.flaggedHashHint")),1)]),e("button",{type:"button",class:"btn btn-secondary inline-flex items-center justify-center gap-2 text-red-600 hover:text-red-700 dark:text-red-300",disabled:P.value||(((ye=p.value)==null?void 0:ye.flagged_hash_count)??0)===0,onClick:ta},[k(x,{name:"trash",size:"sm",class:y(P.value?"animate-pulse":"")}
2,null,8,["class"]),S(" "+o(l(a)("admin.riskControl.clearFlaggedHashes")),1)],8,Un)]),e("div",Dn,[f(e("input",{"onUpdate:modelValue":s[31]||(s[31]=n=>ae.value=n),type:"text",class:"input font-mono text-sm",placeholder:l(a)("admin.riskControl.flaggedHashPlaceholder")},null,8,In),[[C,ae.value,void 0,{trim:!0}]]),e("button",{type:"button",class:"btn btn-secondary inline-flex items-center justify-center gap-2",disabled:P.value||!Ne.value,onClick:ea},[k(x,{name:"trash",size:"sm"}),S(" "+o(l(a)("admin.riskControl.deleteFlaggedHash")),1)],8,$n)])])])])):U.value==="response"?(d(),u("div",Rn,[e("div",Nn,[e("div",null,[e("label",Ln,o(l(a)("admin.riskControl.blockStatus")),1),f(e("input",{"onUpdate:modelValue":s[32]||(s[32]=n=>r.block_status=n),type:"number",min:"400",max:"599",class:"input"},null,512),[[C,r.block_status,void 0,{number:!0}]])]),e("div",null,[e("label",En,o(l(a)("admin.riskControl.blockMessage")),1),f(e("input",{"onUpdate:modelValue":s[33]||(s[33]=n=>r.block_message=n),type:"text",class:"input"},null,512),[[C,r.block_message,void 0,{trim:!0}]])]),e("div",On,[e("div",null,[e("p",qn,o(l(a)("admin.riskControl.emailOnHit")),1),e("p",Wn,o(l(a)("admin.riskControl.emailOnHitHint")),1)]),k(X,{modelValue:r.email_on_hit,"onUpdate:modelValue":s[34]||(s[34]=n=>r.email_on_hit=n)},null,8,["modelValue"])]),e("div",Gn,[e("div",null,[e("p",Qn,o(l(a)("admin.riskControl.autoBan")),1),e("p",Yn,o(l(a)("admin.riskControl.autoBanHint")),1)]),k(X,{modelValue:r.auto_ban_enabled,"onUpdate:modelValue":s[35]||(s[35]=n=>r.auto_ban_enabled=n)},null,8,["modelValue"])]),e("div",Jn,[e("div",null,[e("p",Xn,o(l(a)("admin.riskControl.cyberPolicyExcludeBan")),1),e("p",Zn,o(l(a)("admin.riskControl.cyberPolicyExcludeBanHint")),1)]),k(X,{modelValue:r.cyber_policy_exclude_from_ban_count,"onUpdate:modelValue":s[36]||(s[36]=n=>r.cyber_policy_exclude_from_ban_count=n)},null,8,["modelValue"])]),e("div",null,[e("label",ei,o(l(a)("admin.riskControl.banThreshold")),1),f(e("input",{"onUpdate:modelValue":s[37]||(s[37]=n=>r.ban_threshold=n),type:"number",min:"1",max:"1000",class:"input"},null,512),[[C,r.ban_threshold,void 0,{number:!0}]])]),e("div",null,[e("label",ti,o(l(a)("admin.riskControl.violationWindowHours")),1),f(e("input",{"onUpdate:modelValue":s[38]||(s[38]=n=>r.violation_window_hours=n),type:"number",min:"1",max:"8760",class:"input"},null,512),[[C,r.violation_window_hours,void 0,{number:!0}]])])])])):U.value==="riskThresholds"?(d(),u("div",ai,[e("div",si,[e("div",null,[e("h3",ri,o(l(a)("admin.riskControl.riskThresholds")),1),e("p",oi,o(l(a)("admin.riskControl.riskThresholdsHint")),1)]),e("button",{type:"button",class:"btn btn-secondary inline-flex items-center justify-center gap-2",onClick:Ta},[k(x,{name:"refresh",size:"sm"}),S(" "+o(l(a)("admin.riskControl.riskThresholdReset")),1)])]),e("div",li,[(d(!0),u(M,null,F(Ut.value,n=>(d(),u("div",{key:n.category,class:"rounded-lg border border-gray-100 bg-gray-50 p-4 dark:border-dark-700 dark:bg-dark-900/30"},[e("div",ni,[e("div",ii,[e("label",{class:"block truncate text-sm font-semibold text-gray-900 dark:text-white",for:`risk-threshold-${n.category}`},o(n.category),9,di),e("p",ui,o(l(a)("admin.riskControl.riskThresholdDefault",{value:it(n.defaultValue)})),1)]),e("span",ci,o(it(n.value)),1)]),e("div",mi,[e("label",{class:"sr-only",for:`risk-threshold-${n.category}`},o(l(a)("admin.riskControl.riskThresholdPercent")),9,pi),e("div",ki,[f(e("input",{id:`risk-threshold-${n.category}`,"onUpdate:modelValue":j=>r.thresholds[n.category]=j,"data-test":`risk-threshold-${n.category}`,type:"number",min:"0",max:"100",step:"0.1",class:"input pr-8 font-mono"},null,8,_i),[[C,r.thresholds[n.category],void 0,{number:!0}]]),s[46]||(s[46]=e("span",{class:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-gray-400"},"%",-1))])])]))),128))])])):U.value==="keywords"?(d(),u("div",yi,[e("div",{class:y(["flex items-start gap-3 rounded-lg border p-4",q.value.toneClass])},[k(x,{name:q.value.icon,size:"md",class:y(q.value.iconClass)},null,8,["name","class"]),e("div",gi,[e("p",{class:y(["font-medium",q.value.titleClass])},o(q.value.title),3),e("p",xi,o(q.value.description),1)])],2),e("div",bi,[e("label",hi,o(l(a)("admin.r
2iskControl.keywordBlockingMode")),1),e("div",vi,[(d(!0),u(M,null,F(ft.value,n=>(d(),u("button",{key:n.value,type:"button",class:y(["rounded-lg border p-3 text-left transition-colors",r.keyword_blocking_mode===n.value?"border-primary-300 bg-primary-50 text-primary-900 shadow-sm dark:border-primary-700 dark:bg-primary-900/20 dark:text-primary-100":"border-gray-100 hover:bg-gray-50 dark:border-dark-700 dark:hover:bg-dark-700/60"]),onClick:j=>r.keyword_blocking_mode=n.value},[e("div",Ci,[e("span",wi,o(n.label),1),e("span",{class:y(["flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-full border",r.keyword_blocking_mode===n.value?"border-primary-500 bg-primary-500 text-white":"border-gray-300 text-transparent dark:border-dark-500"])},[k(x,{name:"check",size:"xs","stroke-width":2})],2)]),e("p",Ki,o(n.description),1)],10,fi))),128))])]),e("div",null,[e("div",Ai,[e("label",Si,o(l(a)("admin.riskControl.blockedKeywords")),1),e("span",Ti,o(l(a)("admin.riskControl.blockedKeywordCount",{count:Tt.value})),1)]),f(e("textarea",{"onUpdate:modelValue":s[39]||(s[39]=n=>r.blocked_keywords_text=n),class:"input min-h-52 resize-y font-mono text-sm",placeholder:l(a)("admin.riskControl.blockedKeywordsPlaceholder"),disabled:r.keyword_blocking_mode==="api_only"},null,8,Mi),[[C,r.blocked_keywords_text]]),e("p",zi,o(l(a)("admin.riskControl.blockedKeywordsLimit",{max:id})),1)])])):(d(),u("div",Fi,[e("div",null,[e("label",Vi,o(l(a)("admin.riskControl.hitRetentionDays")),1),f(e("input",{"onUpdate:modelValue":s[40]||(s[40]=n=>r.hit_retention_days=n),type:"number",min:"1",max:"3650",class:"input"},null,512),[[C,r.hit_retention_days,void 0,{number:!0}]])]),e("div",null,[e("label",Hi,o(l(a)("admin.riskControl.nonHitRetentionDays")),1),f(e("input",{"onUpdate:modelValue":s[41]||(s[41]=n=>r.non_hit_retention_days=n),type:"number",min:"1",max:"3",class:"input"},null,512),[[C,r.non_hit_retention_days,void 0,{number:!0}]])]),e("div",Bi,[e("div",ji,[k(x,{name:"database",size:"md",class:"text-gray-400"}),e("span",null,o(l(a)("admin.riskControl.cleanupStats",{hit:((_t=p.value)==null?void 0:_t.last_cleanup_deleted_hit)??0,nonHit:((yt=p.value)==null?void 0:yt.last_cleanup_deleted_non_hit)??0})),1)])])]))])]}),_:1},8,["show","title"]),k(xt,{show:w.value!==null,title:l(a)("admin.riskControl.inputDetailTitle"),width:"wide",onClose:Ye},{footer:de(()=>[e("div",ld,[e("button",{type:"button",class:"btn btn-secondary",onClick:Ye},o(l(a)("common.close")),1)])]),default:de(()=>[w.value?(d(),u("div",Di,[e("div",Ii,[e("div",$i,[e("p",Ri,o(l(a)("admin.riskControl.table.time")),1),e("p",Ni,o(le(w.value.created_at)),1)]),e("div",Li,[e("p",Ei,o(l(a)("admin.riskControl.table.user")),1),e("p",Oi,o(w.value.user_email||"-"),1)]),e("div",qi,[e("p",Wi,o(l(a)("admin.riskControl.table.result")),1),e("span",{class:y(["mt-1 inline-flex rounded-md px-2 py-1 text-xs font-medium",at(w.value)])},o(tt(w.value)),3)]),e("div",Gi,[e("p",Qi,o(l(a)("admin.riskControl.table.highest")),1),e("p",Yi,o(w.value.highest_category||"-")+" / "+o(Y(w.value.highest_score)),1)]),w.value.matched_keyword?(d(),u("div",Ji,[e("p",Xi,o(l(a)("admin.riskControl.matchedKeyword")),1),e("p",{class:"mt-1 truncate text-sm font-semibold text-red-700 dark:text-red-200",title:w.value.matched_keyword},o(w.value.matched_keyword),9,Zi)])):g("",!0)]),e("div",ed,[e("div",td,[e("div",null,[e("p",ad,o(l(a)("admin.riskControl.inputDetailContent")),1),e("p",sd,o(w.value.endpoint||"-")+" · "+o(w.value.provider||"-")+" / "+o(w.value.model||"-"),1)]),w.value.group_name?(d(),u("span",rd,o(w.value.group_name),1)):g("",!0)]),e("pre",od,o(Dt.value),1)])])):g("",!0)]),_:1},8,["show","title"])])]}),_:1}))}});export{Sd 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.