llm-simple-router 0.12.0-dev.7cf31a2 → 0.12.0-dev.f87eb90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/frontend-dist/assets/{AuthLayout-AvTL8TD9.js → AuthLayout-Bslx9IPG.js} +1 -1
  2. package/frontend-dist/assets/{Card-_-Rsez1Z.js → Card-C0QaikdA.js} +1 -1
  3. package/frontend-dist/assets/{CardContent-CXB0aTQX.js → CardContent-D-xjcCcG.js} +1 -1
  4. package/frontend-dist/assets/{CardTitle-DEgSNH9O.js → CardTitle-Cqd2ZS9u.js} +1 -1
  5. package/frontend-dist/assets/{CascadingModelSelect-vGUnj1X-.js → CascadingModelSelect-B9IkY9--.js} +1 -1
  6. package/frontend-dist/assets/{Checkbox-Bwhfqxux.js → Checkbox-Cj8TDc_L.js} +1 -1
  7. package/frontend-dist/assets/{CollapsibleContent-DDzm_Bxn.js → CollapsibleContent-C0Rxw6wr.js} +1 -1
  8. package/frontend-dist/assets/{CollapsibleTrigger-CWUxEdhm.js → CollapsibleTrigger-586e05hX.js} +1 -1
  9. package/frontend-dist/assets/{ConcurrencyControl-DXIrmfyy.js → ConcurrencyControl-ZltmAAxK.js} +1 -1
  10. package/frontend-dist/assets/{Dashboard-Gzd7h17f.js → Dashboard-DHJLH3AY.js} +1 -1
  11. package/frontend-dist/assets/{Input-Qz28j7do.js → Input-DKQPXwUF.js} +1 -1
  12. package/frontend-dist/assets/{Label-CgLYbqNp.js → Label-CNOhLq_3.js} +1 -1
  13. package/frontend-dist/assets/{Login-Dds3B1xs.js → Login-DbvJa21l.js} +1 -1
  14. package/frontend-dist/assets/{Logs-OknLq4IX.js → Logs-BrIjIxTk.js} +1 -1
  15. package/frontend-dist/assets/{ModelMappings-BBOSIVlU.js → ModelMappings-CksAoAdY.js} +1 -1
  16. package/frontend-dist/assets/{Monitor-BN6VeuSD.js → Monitor-BNp3F-hZ.js} +1 -1
  17. package/frontend-dist/assets/{Providers-C6v2RKW1.js → Providers-CUacJ6lO.js} +1 -1
  18. package/frontend-dist/assets/{ProxyEnhancement-Bs_ocCbv.js → ProxyEnhancement-C1BWq4eB.js} +1 -1
  19. package/frontend-dist/assets/{QuickSetup-CG1X-HWo.js → QuickSetup-Dz-JTQP4.js} +1 -1
  20. package/frontend-dist/assets/{RetryRules-DCXYuPl-.js → RetryRules-DzZnVf-a.js} +1 -1
  21. package/frontend-dist/assets/{RouterKeys-4hYMVOwN.js → RouterKeys-BTEa1EeM.js} +1 -1
  22. package/frontend-dist/assets/{RovingFocusItem-CCbZ7_un.js → RovingFocusItem-Bk3QRNEc.js} +1 -1
  23. package/frontend-dist/assets/{Schedules-C0Kf-gvS.js → Schedules-2KkxKtdV.js} +1 -1
  24. package/frontend-dist/assets/{Settings-u7_Vhsqi.js → Settings-CeTgyzrR.js} +1 -1
  25. package/frontend-dist/assets/{Setup-BXxAhB7r.js → Setup-DsLM4kDX.js} +1 -1
  26. package/frontend-dist/assets/{Skeleton-QesVeTCW.js → Skeleton-DIG8lwJi.js} +1 -1
  27. package/frontend-dist/assets/{Switch-D2xEGYqH.js → Switch-dgWE9bDh.js} +1 -1
  28. package/frontend-dist/assets/{TableHeader-CHaThXAU.js → TableHeader-kQSpzxQi.js} +1 -1
  29. package/frontend-dist/assets/{TabsTrigger-Cl1kx8BK.js → TabsTrigger-DPF-VL1C.js} +1 -1
  30. package/frontend-dist/assets/{TooltipTrigger-8hiSB2Rk.js → TooltipTrigger-BCsU6f7y.js} +1 -1
  31. package/frontend-dist/assets/{UnifiedRequestDialog-Cm6Ao45M.js → UnifiedRequestDialog-ClL8gV9p.js} +1 -1
  32. package/frontend-dist/assets/{VisuallyHiddenInput-Lv6BsAIS.js → VisuallyHiddenInput-14kB__gD.js} +1 -1
  33. package/frontend-dist/assets/arrow-down-Zsj_WDot.js +1 -0
  34. package/frontend-dist/assets/{badge-C82CIl1p.js → badge-Bum9aDrS.js} +1 -1
  35. package/frontend-dist/assets/{button-DXlWUlLe.js → button-DevtSBpi.js} +2 -2
  36. package/frontend-dist/assets/chevron-right-vwla8i2r.js +1 -0
  37. package/frontend-dist/assets/{dialog-DN2mvc9h.js → dialog-BuvfBfGv.js} +1 -1
  38. package/frontend-dist/assets/{image-8GxBtf66.js → image-DIN-IofS.js} +1 -1
  39. package/frontend-dist/assets/{index-FYAc4GSw.js → index-DEJ5Pc35.js} +2 -2
  40. package/frontend-dist/assets/{model-patches-Dr6eEIuK.js → model-patches-DDvxdCoe.js} +1 -1
  41. package/frontend-dist/assets/{pencil-BzLz9HuE.js → pencil-QkCKvy6F.js} +1 -1
  42. package/frontend-dist/assets/plus-FFgNtGhY.js +1 -0
  43. package/frontend-dist/assets/search-D6y9xAsv.js +1 -0
  44. package/frontend-dist/assets/{sparkles-B2aVxqID.js → sparkles-xgcOSzLg.js} +1 -1
  45. package/frontend-dist/assets/{transform-domain-BGh_oMvU.js → transform-domain-DykpJ4v7.js} +1 -1
  46. package/frontend-dist/assets/{trash-2-BFS2nrZH.js → trash-2-B2oPWZPv.js} +1 -1
  47. package/frontend-dist/assets/{useClipboard-D_fR9Erj.js → useClipboard-Yb8WJWCH.js} +1 -1
  48. package/frontend-dist/assets/{useLogRetention-CLvwmbya.js → useLogRetention-3W7F6jDA.js} +1 -1
  49. package/frontend-dist/assets/{useProviderGroups-DYlN-TXY.js → useProviderGroups-DTiMgZHZ.js} +1 -1
  50. package/frontend-dist/index.html +2 -2
  51. package/package.json +1 -1
  52. package/frontend-dist/assets/arrow-down-C7Be80wb.js +0 -1
  53. package/frontend-dist/assets/chevron-right-DJE8HF-i.js +0 -1
  54. package/frontend-dist/assets/plus-DghQKiGV.js +0 -1
  55. package/frontend-dist/assets/search-BvelBk-g.js +0 -1
@@ -1 +1 @@
1
- import{$ as e,Gt as t,H as n,J as r,L as i,Lt as a,N as o,Q as s,X as c,Xt as l,Z as u,bt as d,et as f,gt as p,it as m,kt as h,n as g,nt as _,qt as v,r as y,rt as b,vt as x,xt as S}from"./button-DXlWUlLe.js";import{t as C}from"./image-8GxBtf66.js";import{t as w}from"./plus-DghQKiGV.js";import{t as T}from"./trash-2-BFS2nrZH.js";import{n as E,t as D}from"./CollapsibleContent-DDzm_Bxn.js";import{t as O}from"./Label-CgLYbqNp.js";import{_ as k,g as A,gt as j,h as M,m as N,v as P}from"./index-FYAc4GSw.js";import{t as F}from"./badge-C82CIl1p.js";import{t as I}from"./Input-Qz28j7do.js";var L=i(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),ee=i(`video`,[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]),te=i(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),R=[{id:`claude-code`,name:`Claude Code`,icon:`C`,iconClass:`cc`,iconSvg:`claude`,brandBg:`bg-[#D97757]`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.claudeCodeDesc`,popular:!0},{id:`codex`,name:`Codex CLI`,icon:`CX`,iconClass:`cx`,iconSvg:`codex`,brandBg:`bg-[#74AA9C]`,format:`openai-responses`,defaultProvider:`DeepSeek`,defaultPlan:`OpenAI`,descriptionKey:`quickSetup.client.codexDesc`,popular:!0},{id:`pi`,name:`Pi`,icon:`P`,iconClass:`pi`,iconSvg:`pi`,brandBg:`bg-emerald-600`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.piDesc`},{id:`openai-sdk`,name:`OpenAI SDK`,icon:`OA`,iconClass:`oa`,iconSvg:`openai`,brandBg:`bg-[#10a37f]`,format:`openai`,defaultProvider:`DeepSeek`,defaultPlan:`OpenAI`,descriptionKey:`quickSetup.client.openaiSdkDesc`},{id:`anthropic-sdk`,name:`Anthropic SDK`,icon:`AN`,iconClass:`an`,iconSvg:`anthropic`,brandBg:`bg-[#D4976A]`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.anthropicSdkDesc`}],z=[{key:`deepseek_anthropic`,labelKey:`quickSetup.patch.deepseekAnthropic`,items:[{id:`thinking_consistency`,nameKey:`quickSetup.patch.thinkingConsistency`,descKey:`quickSetup.patch.thinkingConsistencyDesc`},{id:`orphan_tool_results`,nameKey:`quickSetup.patch.orphanToolResult`,descKey:`quickSetup.patch.orphanToolResultDesc`}]},{key:`deepseek_openai`,labelKey:`quickSetup.patch.deepseekOpenai`,items:[{id:`thinking_consistency`,nameKey:`quickSetup.patch.thinkingConsistency`,descKey:`quickSetup.patch.thinkingConsistencyDesc`},{id:`orphan_tool_results_oa`,nameKey:`quickSetup.patch.orphanToolResultOa`,descKey:`quickSetup.patch.orphanToolResultOaDesc`}]},{key:`general`,labelKey:`quickSetup.patch.general`,items:[{id:`developer_role`,nameKey:`quickSetup.patch.developerRole`,descKey:`quickSetup.patch.developerRoleDesc`}]}],B=[{label:`8K`,value:8e3},{label:`16K`,value:16e3},{label:`32K`,value:32e3},{label:`64K`,value:64e3},{label:`128K`,value:128e3},{label:`160K`,value:16e4},{label:`200K`,value:2e5},{label:`256K`,value:256e3},{label:`1M`,value:1e6}],V=1e6,H=256e3,U=2e5,W=128e3,G=32e3,K=16e3,q=8e3;function J(e){let t=e.toLowerCase();return t.includes(`v4`)||t.includes(`v3.2`)||t.includes(`r1`)||t.includes(`reasoner`)||t.includes(`qwen3.6`)?V:t.includes(`kimi`)||t.includes(`moonshotai`)||t.includes(`hunyuan-2.0`)||t.includes(`hunyuan-a13b`)||t.includes(`hunyuan-t1`)||t.includes(`step-3.5`)||t.includes(`step-3`)||t.includes(`qwen3.5-plus`)||t.includes(`qwen3-max`)||t.includes(`doubao`)||t.includes(`ark-code`)||t.includes(`tc-code`)?H:t.includes(`glm-5`)||t.includes(`glm-4.7`)||t.includes(`minimax`)?U:t.includes(`128k`)?W:t.includes(`32k`)?G:t.includes(`16k`)?K:t.includes(`8k`)?q:W}var ne={"claude-code":[`sonnet`,`opus`,`haiku`],codex:[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`,`gpt-5.2`],"openai-sdk":[`gpt-5.1`,`gpt-4.1`,`o3`,`o4-mini`],"anthropic-sdk":[`claude-sonnet-4-20250514`,`claude-opus-4-20250116`,`claude-haiku-4-20250414`]},Y={class:`space-y-3`},X={class:`mb-1.5 text-xs font-medium text-muted-foreground`},Z={class:`flex flex-wrap gap-1.5`},re=m({__name:`PatchChips`,props:{apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},modelValue:{}},emits:[`update:modelValue`],setup(e,{emit:i}){let{t:a}=n();function o(e){return e.replace(/-/g,`_`)}let d=e,m=i,b=c(()=>z.filter(e=>e.key===`deepseek_anthropic`?d.isDeepSeek&&d.apiType===`anthropic`:e.key===`deepseek_openai`?d.isDeepSeek&&d.apiType===`openai`:e.key===`general`?d.apiType===`openai`&&d.isNonOpenaiEndpoint:!0));function S(e){let t=o(e);m(`update:modelValue`,d.modelValue.includes(t)?d.modelValue.filter(e=>e!==t):[...d.modelValue,t])}function C(e){return d.modelValue.includes(o(e))}return(e,n)=>(p(),f(`div`,Y,[(p(!0),f(r,null,x(b.value,e=>(p(),f(`div`,{key:e.key},[u(`p`,X,l(t(a)(e.labelKey)),1),u(`div`,Z,[(p(!0),f(r,null,x(e.items,e=>(p(),s(t(g),{key:e.id,type:`button`,variant:`outline`,size:`sm`,"aria-pressed":C(e.id),title:t(a)(e.descKey),class:v(t(y)(`inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs font-medium transition-all cursor-pointer select-none`,C(e.id)?`border-ring bg-primary/10 text-primary`:`border-border bg-transparent text-muted-foreground hover:border-muted-foreground hover:text-foreground`)),onClick:t=>S(e.id)},{default:h(()=>[u(`span`,{class:v(t(y)(`size-1.5 rounded-full transition-colors`,C(e.id)?`bg-primary`:`bg-border`))},null,2),_(` `+l(t(a)(e.nameKey)),1)]),_:2},1032,[`aria-pressed`,`title`,`class`,`onClick`]))),128))])]))),128))]))}}),ie={class:`flex items-center gap-2.5 px-3 min-h-8 py-1.5`},ae={key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`,class:`text-primary-foreground`},Q=[`title`],oe={key:2,class:`flex items-center gap-0.5 shrink-0`},se=[`title`,`onClick`],ce={class:`text-[11px]`},le={class:`pl-9 pr-3 py-2 border-t border-border space-y-2`},ue={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},de={key:0},fe={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},pe={class:`flex items-center gap-1.5`},me={class:`text-[11px] text-muted-foreground`},$=1e3,he=m({__name:`ModelCard`,props:{model:{},apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},streamTimeoutMs:{},capabilities:{}},emits:[`update:model`,`remove`,`update:stream-timeout-ms`,`toggle-capability`],setup(i,{emit:m}){let g=o/$,{t:w}=n(),O=i,j=m,R=a(!1),z=c(()=>B.find(e=>e.value===O.model.contextWindow)),V=c(()=>!!z.value);function H(e){let t=e;if(t===`__custom__`)return;let n=parseInt(t,10);isNaN(n)||j(`update:model`,{...O.model,contextWindow:n})}function U(e){let t=parseInt(e,10);!isNaN(t)&&t>0&&j(`update:model`,{...O.model,contextWindow:t})}function W(e){j(`update:model`,{...O.model,patches:e})}let G=c(()=>O.streamTimeoutMs!==void 0&&O.streamTimeoutMs!==null?Math.round(O.streamTimeoutMs/$):g),K=c(()=>O.streamTimeoutMs===void 0),q=[{key:`text`,icon:L,label:`text`},{key:`image`,icon:C,label:`image`},{key:`audio`,icon:te,label:`audio`},{key:`video`,icon:ee,label:`video`}];function J(e){return e===`text`?!0:O.capabilities?.includes(e)??!1}return(n,a)=>{let o=d(`Button`);return p(),f(`div`,{class:v([`transition-colors group bg-card`,!i.model.enabled&&`opacity-40`])},[u(`div`,ie,[u(`div`,{class:v([`shrink-0 w-3.5 h-3.5 rounded-sm border-[1px] border-border flex items-center justify-center cursor-pointer transition-all`,i.model.enabled?`bg-primary border-primary`:`border-border hover:border-muted-foreground/50`]),onClick:a[0]||=e=>j(`update:model`,{...i.model,enabled:!i.model.enabled})},[i.model.enabled?(p(),f(`svg`,ae,[...a[6]||=[u(`path`,{d:`M18 6L9 17l-5-6`},null,-1)]])):e(``,!0)],2),u(`span`,{class:`truncate text-xs font-medium text-foreground min-w-[160px] max-w-[280px] font-mono`,title:i.model.name},l(i.model.name),9,Q),V.value?(p(),s(t(P),{key:0,"model-value":String(i.model.contextWindow),"onUpdate:modelValue":H},{default:h(()=>[b(t(M),{class:`h-6 w-16 text-[11px] font-mono px-1 gap-0 data-[size=default]:h-6`},{default:h(()=>[b(t(N),null,{default:h(()=>[_(l(z.value.label),1)]),_:1})]),_:1}),b(t(k),null,{default:h(()=>[(p(!0),f(r,null,x(t(B),e=>(p(),s(t(A),{key:e.value,value:String(e.value)},{default:h(()=>[_(l(e.label),1)]),_:2},1032,[`value`]))),128)),b(t(A),{value:`__custom__`},{default:h(()=>[_(l(t(w)(`quickSetup.model.contextCustom`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])):(p(),s(t(I),{key:1,"model-value":String(i.model.contextWindow),type:`number`,min:`1`,class:`h-6 w-16 !text-[11px] text-center font-mono px-1.5 py-0 rounded [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,"onUpdate:modelValue":a[1]||=e=>U(e)},null,8,[`model-value`])),i.capabilities===void 0?e(``,!0):(p(),f(`div`,oe,[(p(),f(r,null,x(q,e=>u(`div`,{key:e.key,class:v([`w-5 h-5 rounded flex items-center justify-center border-[1px] transition-colors cursor-pointer`,t(y)(J(e.key)?`bg-primary/10 border-primary/30 text-primary`:`border-border text-muted-foreground/40 hover:text-muted-foreground`)]),title:e.label,onClick:t=>e.key!==`text`&&j(`toggle-capability`,e.key)},[(p(),s(S(e.icon),{class:`size-[11px]`}))],10,se)),64))])),u(`div`,{class:v([`inline-flex items-center gap-1 h-[22px] px-2 border-[1px] border-border rounded cursor-pointer transition-colors shrink-0 select-none`,t(y)(i.model.patches.length>0?`bg-primary/10 border-primary/25 text-primary`:`border-border text-muted-foreground hover:border-foreground/20 hover:text-foreground`)]),onClick:a[2]||=e=>R.value=!R.value},[u(`span`,ce,l(i.model.patches.length)+` `+l(t(w)(`quickSetup.patch.label`)),1),u(`span`,{class:v([`text-[8px] inline-block transition-transform`,R.value?`rotate-90`:``])},`▶`,2)],2),b(o,{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground hover:text-destructive`,onClick:a[3]||=e=>n.$emit(`remove`)},{default:h(()=>[b(t(T),{class:`size-3`})]),_:1})]),b(t(E),{open:R.value,"onUpdate:open":a[5]||=e=>R.value=e},{default:h(()=>[b(t(D),null,{default:h(()=>[u(`div`,le,[u(`div`,null,[u(`div`,ue,l(t(w)(`quickSetup.patch.sectionTitle`)),1),b(re,{"api-type":i.apiType,"is-deep-seek":i.isDeepSeek,"is-non-openai-endpoint":i.isNonOpenaiEndpoint,"model-value":i.model.patches,"onUpdate:modelValue":W},null,8,[`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`model-value`])]),i.streamTimeoutMs===void 0?e(``,!0):(p(),f(`div`,de,[u(`div`,fe,l(t(w)(`quickSetup.patch.timeoutTitle`)),1),u(`div`,pe,[b(t(I),{type:`number`,"model-value":G.value,"onUpdate:modelValue":a[4]||=e=>j(`update:stream-timeout-ms`,e?Number(e)*$:void 0),class:`h-6 w-[72px] !text-[11px] font-mono text-right px-1.5 py-0 rounded [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:`1`},null,8,[`model-value`]),u(`span`,me,l(t(w)(`quickSetup.patch.timeoutSeconds`)),1),K.value?(p(),s(t(F),{key:0,variant:`outline`,class:`text-[9px] px-1 py-0 h-4 font-normal text-muted-foreground`},{default:h(()=>[_(l(t(w)(`providers.fields.timeoutPlaceholder`)),1)]),_:1})):e(``,!0)])]))])]),_:1})]),_:1},8,[`open`])],2)}}}),ge={class:`space-y-2`},_e={class:`flex items-center justify-between`},ve={key:0,class:`flex items-center gap-1.5`},ye={key:0,class:`flex items-center gap-2 text-[11px] text-muted-foreground`},be={key:0,class:`opacity-70`},xe={class:`flex items-center gap-2`},Se={key:0,class:`flex-1 min-w-0`},Ce={key:1,class:`flex-1 text-[10px] text-muted-foreground`},we={class:`flex items-end gap-2`},Te={class:`min-w-0 space-y-0.5`,style:{flex:`6`}},Ee={class:`space-y-0.5`,style:{flex:`4`}},De={class:`text-xs text-muted-foreground`},Oe=m({__name:`EndpointEditor`,props:{modelValue:{},sharedKey:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:o}){let{t:d}=n(),m=[`openai`,`openai-responses`,`anthropic`],y={openai:`bg-emerald-100 text-emerald-700 border-emerald-300 hover:bg-emerald-200 dark:bg-emerald-900/40 dark:text-emerald-400 dark:border-emerald-700 dark:hover:bg-emerald-800/50`,"openai-responses":`bg-blue-100 text-blue-700 border-blue-300 hover:bg-blue-200 dark:bg-blue-900/40 dark:text-blue-400 dark:border-blue-700 dark:hover:bg-blue-800/50`,anthropic:`bg-amber-100 text-amber-700 border-amber-300 hover:bg-amber-200 dark:bg-amber-900/40 dark:text-amber-400 dark:border-amber-700 dark:hover:bg-amber-800/50`},S={openai:`bg-emerald-200 text-emerald-800 border-emerald-400 dark:bg-emerald-800/60 dark:text-emerald-300 dark:border-emerald-500`,"openai-responses":`bg-blue-200 text-blue-800 border-blue-400 dark:bg-blue-800/60 dark:text-blue-300 dark:border-blue-500`,anthropic:`bg-amber-200 text-amber-800 border-amber-400 dark:bg-amber-800/60 dark:text-amber-300 dark:border-amber-500`},C=i,E=o,D=c(()=>C.modelValue.some(e=>e.api_key!==null&&e.api_key!==void 0&&e.api_key!==``)),k=a(!1),A=c(()=>k.value||D.value),M=c(()=>new Set(C.modelValue.map(e=>e.api_type)));function N(e){M.value.has(e)||E(`update:modelValue`,[...C.modelValue,{api_type:e,base_url:``,upstream_path:null,api_key:null}])}function P(e){let t=[...C.modelValue];t.splice(e,1),E(`update:modelValue`,t)}function L(e,t,n){let r=[...C.modelValue];r[e]={...r[e],[t]:n},E(`update:modelValue`,r)}return(n,a)=>(p(),f(`div`,ge,[u(`div`,_e,[b(t(O),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(t(d)(`providers.endpoints.title`)),1)]),_:1}),i.readonly?e(``,!0):(p(),f(`div`,ve,[(p(),f(r,null,x(m,e=>b(t(g),{key:e,type:`button`,variant:`outline`,size:`sm`,class:v([`h-6 text-[10px] gap-0.5 px-2.5 border font-medium transition-colors`,M.value.has(e)?S[e]:y[e]]),disabled:M.value.has(e),onClick:t=>N(e)},{default:h(()=>[M.value.has(e)?(p(),s(t(j),{key:0,class:`w-3 h-3`})):(p(),s(t(w),{key:1,class:`w-3 h-3`})),_(` `+l(t(d)(`providers.endpoints.apiTypes.${e}`)),1)]),_:2},1032,[`class`,`disabled`,`onClick`])),64))]))]),i.readonly?e(``,!0):(p(),f(`div`,ye,[b(t(g),{type:`button`,variant:`link`,size:`sm`,class:`h-auto p-0 text-[11px] text-muted-foreground underline decoration-dotted underline-offset-2 hover:text-foreground`,onClick:a[0]||=e=>k.value=!k.value},{default:h(()=>[_(l(A.value?t(d)(`providers.endpoints.hidePerEndpointKeys`):t(d)(`providers.endpoints.showPerEndpointKeys`)),1)]),_:1}),i.sharedKey&&!A.value?(p(),f(`span`,be,l(t(d)(`providers.endpoints.allUseSharedKey`)),1)):e(``,!0)])),(p(!0),f(r,null,x(i.modelValue,(n,r)=>(p(),f(`div`,{key:r,class:`rounded-md border bg-muted/30 p-2.5 space-y-2`},[u(`div`,xe,[b(t(F),{variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:h(()=>[_(l(t(d)(`providers.endpoints.apiTypes.${n.api_type}`)),1)]),_:2},1024),A.value?(p(),f(`div`,Se,[b(t(I),{"model-value":n.api_key??``,type:`password`,disabled:i.readonly,placeholder:i.sharedKey?t(d)(`providers.endpoints.useSharedKey`):t(d)(`providers.endpoints.apiKeyPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`api_key`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])):n.api_key?(p(),f(`div`,Ce,l(t(d)(`providers.endpoints.customKeySet`)),1)):e(``,!0),i.readonly?e(``,!0):(p(),s(t(g),{key:2,type:`button`,variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0 shrink-0 text-muted-foreground hover:text-destructive`,disabled:i.modelValue.length<=1,onClick:e=>P(r)},{default:h(()=>[b(t(T),{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`,`onClick`]))]),u(`div`,we,[u(`div`,Te,[b(t(O),{class:`text-[10px] text-muted-foreground`},{default:h(()=>[...a[1]||=[_(`Base URL`,-1)]]),_:1}),b(t(I),{"model-value":n.base_url,type:`url`,required:``,disabled:i.readonly,placeholder:`https://api.example.com/v1`,class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`base_url`,String(e))},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),u(`div`,Ee,[b(t(O),{class:`text-[10px] text-muted-foreground`},{default:h(()=>[_(l(t(d)(`providers.fields.upstreamPath`)),1)]),_:1}),b(t(I),{"model-value":n.upstream_path??``,disabled:i.readonly,placeholder:t(d)(`providers.fields.upstreamPathPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`upstream_path`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])])]))),128)),u(`p`,De,l(t(d)(`providers.endpoints.hint`)),1)]))}});function ke(e,t,n){let r=[];return e.toLowerCase().includes(`deepseek`)&&(r.push(`thinking_consistency`),t===`anthropic`?r.push(`orphan_tool_results`):r.push(`orphan_tool_results_oa`)),t===`openai`&&n&&r.push(`developer_role`),r}export{ne as a,R as i,Oe as n,J as o,he as r,ke as t};
1
+ import{$ as e,Gt as t,H as n,J as r,L as i,Lt as a,N as o,Q as s,X as c,Xt as l,Z as u,bt as d,et as f,gt as p,it as m,kt as h,n as g,nt as _,qt as v,r as y,rt as b,vt as x,xt as S}from"./button-DevtSBpi.js";import{t as C}from"./image-DIN-IofS.js";import{t as w}from"./plus-FFgNtGhY.js";import{t as T}from"./trash-2-B2oPWZPv.js";import{n as E,t as D}from"./CollapsibleContent-C0Rxw6wr.js";import{t as O}from"./Label-CNOhLq_3.js";import{_ as k,g as A,gt as j,h as M,m as N,v as P}from"./index-DEJ5Pc35.js";import{t as F}from"./badge-Bum9aDrS.js";import{t as I}from"./Input-DKQPXwUF.js";var L=i(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),ee=i(`video`,[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]),te=i(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),R=[{id:`claude-code`,name:`Claude Code`,icon:`C`,iconClass:`cc`,iconSvg:`claude`,brandBg:`bg-[#D97757]`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.claudeCodeDesc`,popular:!0},{id:`codex`,name:`Codex CLI`,icon:`CX`,iconClass:`cx`,iconSvg:`codex`,brandBg:`bg-[#74AA9C]`,format:`openai-responses`,defaultProvider:`DeepSeek`,defaultPlan:`OpenAI`,descriptionKey:`quickSetup.client.codexDesc`,popular:!0},{id:`pi`,name:`Pi`,icon:`P`,iconClass:`pi`,iconSvg:`pi`,brandBg:`bg-emerald-600`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.piDesc`},{id:`openai-sdk`,name:`OpenAI SDK`,icon:`OA`,iconClass:`oa`,iconSvg:`openai`,brandBg:`bg-[#10a37f]`,format:`openai`,defaultProvider:`DeepSeek`,defaultPlan:`OpenAI`,descriptionKey:`quickSetup.client.openaiSdkDesc`},{id:`anthropic-sdk`,name:`Anthropic SDK`,icon:`AN`,iconClass:`an`,iconSvg:`anthropic`,brandBg:`bg-[#D4976A]`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.anthropicSdkDesc`}],z=[{key:`deepseek_anthropic`,labelKey:`quickSetup.patch.deepseekAnthropic`,items:[{id:`thinking_consistency`,nameKey:`quickSetup.patch.thinkingConsistency`,descKey:`quickSetup.patch.thinkingConsistencyDesc`},{id:`orphan_tool_results`,nameKey:`quickSetup.patch.orphanToolResult`,descKey:`quickSetup.patch.orphanToolResultDesc`}]},{key:`deepseek_openai`,labelKey:`quickSetup.patch.deepseekOpenai`,items:[{id:`thinking_consistency`,nameKey:`quickSetup.patch.thinkingConsistency`,descKey:`quickSetup.patch.thinkingConsistencyDesc`},{id:`orphan_tool_results_oa`,nameKey:`quickSetup.patch.orphanToolResultOa`,descKey:`quickSetup.patch.orphanToolResultOaDesc`}]},{key:`general`,labelKey:`quickSetup.patch.general`,items:[{id:`developer_role`,nameKey:`quickSetup.patch.developerRole`,descKey:`quickSetup.patch.developerRoleDesc`}]}],B=[{label:`8K`,value:8e3},{label:`16K`,value:16e3},{label:`32K`,value:32e3},{label:`64K`,value:64e3},{label:`128K`,value:128e3},{label:`160K`,value:16e4},{label:`200K`,value:2e5},{label:`256K`,value:256e3},{label:`1M`,value:1e6}],V=1e6,H=256e3,U=2e5,W=128e3,G=32e3,K=16e3,q=8e3;function J(e){let t=e.toLowerCase();return t.includes(`v4`)||t.includes(`v3.2`)||t.includes(`r1`)||t.includes(`reasoner`)||t.includes(`qwen3.6`)?V:t.includes(`kimi`)||t.includes(`moonshotai`)||t.includes(`hunyuan-2.0`)||t.includes(`hunyuan-a13b`)||t.includes(`hunyuan-t1`)||t.includes(`step-3.5`)||t.includes(`step-3`)||t.includes(`qwen3.5-plus`)||t.includes(`qwen3-max`)||t.includes(`doubao`)||t.includes(`ark-code`)||t.includes(`tc-code`)?H:t.includes(`glm-5`)||t.includes(`glm-4.7`)||t.includes(`minimax`)?U:t.includes(`128k`)?W:t.includes(`32k`)?G:t.includes(`16k`)?K:t.includes(`8k`)?q:W}var ne={"claude-code":[`sonnet`,`opus`,`haiku`],codex:[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`,`gpt-5.2`],"openai-sdk":[`gpt-5.1`,`gpt-4.1`,`o3`,`o4-mini`],"anthropic-sdk":[`claude-sonnet-4-20250514`,`claude-opus-4-20250116`,`claude-haiku-4-20250414`]},Y={class:`space-y-3`},X={class:`mb-1.5 text-xs font-medium text-muted-foreground`},Z={class:`flex flex-wrap gap-1.5`},re=m({__name:`PatchChips`,props:{apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},modelValue:{}},emits:[`update:modelValue`],setup(e,{emit:i}){let{t:a}=n();function o(e){return e.replace(/-/g,`_`)}let d=e,m=i,b=c(()=>z.filter(e=>e.key===`deepseek_anthropic`?d.isDeepSeek&&d.apiType===`anthropic`:e.key===`deepseek_openai`?d.isDeepSeek&&d.apiType===`openai`:e.key===`general`?d.apiType===`openai`&&d.isNonOpenaiEndpoint:!0));function S(e){let t=o(e);m(`update:modelValue`,d.modelValue.includes(t)?d.modelValue.filter(e=>e!==t):[...d.modelValue,t])}function C(e){return d.modelValue.includes(o(e))}return(e,n)=>(p(),f(`div`,Y,[(p(!0),f(r,null,x(b.value,e=>(p(),f(`div`,{key:e.key},[u(`p`,X,l(t(a)(e.labelKey)),1),u(`div`,Z,[(p(!0),f(r,null,x(e.items,e=>(p(),s(t(g),{key:e.id,type:`button`,variant:`outline`,size:`sm`,"aria-pressed":C(e.id),title:t(a)(e.descKey),class:v(t(y)(`inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs font-medium transition-all cursor-pointer select-none`,C(e.id)?`border-ring bg-primary/10 text-primary`:`border-border bg-transparent text-muted-foreground hover:border-muted-foreground hover:text-foreground`)),onClick:t=>S(e.id)},{default:h(()=>[u(`span`,{class:v(t(y)(`size-1.5 rounded-full transition-colors`,C(e.id)?`bg-primary`:`bg-border`))},null,2),_(` `+l(t(a)(e.nameKey)),1)]),_:2},1032,[`aria-pressed`,`title`,`class`,`onClick`]))),128))])]))),128))]))}}),ie={class:`flex items-center gap-2.5 px-3 min-h-8 py-1.5`},ae={key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`,class:`text-primary-foreground`},Q=[`title`],oe={key:2,class:`flex items-center gap-0.5 shrink-0`},se=[`title`,`onClick`],ce={class:`text-[11px]`},le={class:`pl-9 pr-3 py-2 border-t border-border space-y-2`},ue={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},de={key:0},fe={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},pe={class:`flex items-center gap-1.5`},me={class:`text-[11px] text-muted-foreground`},$=1e3,he=m({__name:`ModelCard`,props:{model:{},apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},streamTimeoutMs:{},capabilities:{}},emits:[`update:model`,`remove`,`update:stream-timeout-ms`,`toggle-capability`],setup(i,{emit:m}){let g=o/$,{t:w}=n(),O=i,j=m,R=a(!1),z=c(()=>B.find(e=>e.value===O.model.contextWindow)),V=c(()=>!!z.value);function H(e){let t=e;if(t===`__custom__`)return;let n=parseInt(t,10);isNaN(n)||j(`update:model`,{...O.model,contextWindow:n})}function U(e){let t=parseInt(e,10);!isNaN(t)&&t>0&&j(`update:model`,{...O.model,contextWindow:t})}function W(e){j(`update:model`,{...O.model,patches:e})}let G=c(()=>O.streamTimeoutMs!==void 0&&O.streamTimeoutMs!==null?Math.round(O.streamTimeoutMs/$):g),K=c(()=>O.streamTimeoutMs===void 0),q=[{key:`text`,icon:L,label:`text`},{key:`image`,icon:C,label:`image`},{key:`audio`,icon:te,label:`audio`},{key:`video`,icon:ee,label:`video`}];function J(e){return e===`text`?!0:O.capabilities?.includes(e)??!1}return(n,a)=>{let o=d(`Button`);return p(),f(`div`,{class:v([`transition-colors group bg-card`,!i.model.enabled&&`opacity-40`])},[u(`div`,ie,[u(`div`,{class:v([`shrink-0 w-3.5 h-3.5 rounded-sm border-[1px] border-border flex items-center justify-center cursor-pointer transition-all`,i.model.enabled?`bg-primary border-primary`:`border-border hover:border-muted-foreground/50`]),onClick:a[0]||=e=>j(`update:model`,{...i.model,enabled:!i.model.enabled})},[i.model.enabled?(p(),f(`svg`,ae,[...a[6]||=[u(`path`,{d:`M18 6L9 17l-5-6`},null,-1)]])):e(``,!0)],2),u(`span`,{class:`truncate text-xs font-medium text-foreground min-w-[160px] max-w-[280px] font-mono`,title:i.model.name},l(i.model.name),9,Q),V.value?(p(),s(t(P),{key:0,"model-value":String(i.model.contextWindow),"onUpdate:modelValue":H},{default:h(()=>[b(t(M),{class:`h-6 w-16 text-[11px] font-mono px-1 gap-0 data-[size=default]:h-6`},{default:h(()=>[b(t(N),null,{default:h(()=>[_(l(z.value.label),1)]),_:1})]),_:1}),b(t(k),null,{default:h(()=>[(p(!0),f(r,null,x(t(B),e=>(p(),s(t(A),{key:e.value,value:String(e.value)},{default:h(()=>[_(l(e.label),1)]),_:2},1032,[`value`]))),128)),b(t(A),{value:`__custom__`},{default:h(()=>[_(l(t(w)(`quickSetup.model.contextCustom`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])):(p(),s(t(I),{key:1,"model-value":String(i.model.contextWindow),type:`number`,min:`1`,class:`h-6 w-16 !text-[11px] text-center font-mono px-1.5 py-0 rounded [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,"onUpdate:modelValue":a[1]||=e=>U(e)},null,8,[`model-value`])),i.capabilities===void 0?e(``,!0):(p(),f(`div`,oe,[(p(),f(r,null,x(q,e=>u(`div`,{key:e.key,class:v([`w-5 h-5 rounded flex items-center justify-center border-[1px] transition-colors cursor-pointer`,t(y)(J(e.key)?`bg-primary/10 border-primary/30 text-primary`:`border-border text-muted-foreground/40 hover:text-muted-foreground`)]),title:e.label,onClick:t=>e.key!==`text`&&j(`toggle-capability`,e.key)},[(p(),s(S(e.icon),{class:`size-[11px]`}))],10,se)),64))])),u(`div`,{class:v([`inline-flex items-center gap-1 h-[22px] px-2 border-[1px] border-border rounded cursor-pointer transition-colors shrink-0 select-none`,t(y)(i.model.patches.length>0?`bg-primary/10 border-primary/25 text-primary`:`border-border text-muted-foreground hover:border-foreground/20 hover:text-foreground`)]),onClick:a[2]||=e=>R.value=!R.value},[u(`span`,ce,l(i.model.patches.length)+` `+l(t(w)(`quickSetup.patch.label`)),1),u(`span`,{class:v([`text-[8px] inline-block transition-transform`,R.value?`rotate-90`:``])},`▶`,2)],2),b(o,{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground hover:text-destructive`,onClick:a[3]||=e=>n.$emit(`remove`)},{default:h(()=>[b(t(T),{class:`size-3`})]),_:1})]),b(t(E),{open:R.value,"onUpdate:open":a[5]||=e=>R.value=e},{default:h(()=>[b(t(D),null,{default:h(()=>[u(`div`,le,[u(`div`,null,[u(`div`,ue,l(t(w)(`quickSetup.patch.sectionTitle`)),1),b(re,{"api-type":i.apiType,"is-deep-seek":i.isDeepSeek,"is-non-openai-endpoint":i.isNonOpenaiEndpoint,"model-value":i.model.patches,"onUpdate:modelValue":W},null,8,[`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`model-value`])]),i.streamTimeoutMs===void 0?e(``,!0):(p(),f(`div`,de,[u(`div`,fe,l(t(w)(`quickSetup.patch.timeoutTitle`)),1),u(`div`,pe,[b(t(I),{type:`number`,"model-value":G.value,"onUpdate:modelValue":a[4]||=e=>j(`update:stream-timeout-ms`,e?Number(e)*$:void 0),class:`h-6 w-[72px] !text-[11px] font-mono text-right px-1.5 py-0 rounded [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:`1`},null,8,[`model-value`]),u(`span`,me,l(t(w)(`quickSetup.patch.timeoutSeconds`)),1),K.value?(p(),s(t(F),{key:0,variant:`outline`,class:`text-[9px] px-1 py-0 h-4 font-normal text-muted-foreground`},{default:h(()=>[_(l(t(w)(`providers.fields.timeoutPlaceholder`)),1)]),_:1})):e(``,!0)])]))])]),_:1})]),_:1},8,[`open`])],2)}}}),ge={class:`space-y-2`},_e={class:`flex items-center justify-between`},ve={key:0,class:`flex items-center gap-1.5`},ye={key:0,class:`flex items-center gap-2 text-[11px] text-muted-foreground`},be={key:0,class:`opacity-70`},xe={class:`flex items-center gap-2`},Se={key:0,class:`flex-1 min-w-0`},Ce={key:1,class:`flex-1 text-[10px] text-muted-foreground`},we={class:`flex items-end gap-2`},Te={class:`min-w-0 space-y-0.5`,style:{flex:`6`}},Ee={class:`space-y-0.5`,style:{flex:`4`}},De={class:`text-xs text-muted-foreground`},Oe=m({__name:`EndpointEditor`,props:{modelValue:{},sharedKey:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:o}){let{t:d}=n(),m=[`openai`,`openai-responses`,`anthropic`],y={openai:`bg-emerald-100 text-emerald-700 border-emerald-300 hover:bg-emerald-200 dark:bg-emerald-900/40 dark:text-emerald-400 dark:border-emerald-700 dark:hover:bg-emerald-800/50`,"openai-responses":`bg-blue-100 text-blue-700 border-blue-300 hover:bg-blue-200 dark:bg-blue-900/40 dark:text-blue-400 dark:border-blue-700 dark:hover:bg-blue-800/50`,anthropic:`bg-amber-100 text-amber-700 border-amber-300 hover:bg-amber-200 dark:bg-amber-900/40 dark:text-amber-400 dark:border-amber-700 dark:hover:bg-amber-800/50`},S={openai:`bg-emerald-200 text-emerald-800 border-emerald-400 dark:bg-emerald-800/60 dark:text-emerald-300 dark:border-emerald-500`,"openai-responses":`bg-blue-200 text-blue-800 border-blue-400 dark:bg-blue-800/60 dark:text-blue-300 dark:border-blue-500`,anthropic:`bg-amber-200 text-amber-800 border-amber-400 dark:bg-amber-800/60 dark:text-amber-300 dark:border-amber-500`},C=i,E=o,D=c(()=>C.modelValue.some(e=>e.api_key!==null&&e.api_key!==void 0&&e.api_key!==``)),k=a(!1),A=c(()=>k.value||D.value),M=c(()=>new Set(C.modelValue.map(e=>e.api_type)));function N(e){M.value.has(e)||E(`update:modelValue`,[...C.modelValue,{api_type:e,base_url:``,upstream_path:null,api_key:null}])}function P(e){let t=[...C.modelValue];t.splice(e,1),E(`update:modelValue`,t)}function L(e,t,n){let r=[...C.modelValue];r[e]={...r[e],[t]:n},E(`update:modelValue`,r)}return(n,a)=>(p(),f(`div`,ge,[u(`div`,_e,[b(t(O),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(t(d)(`providers.endpoints.title`)),1)]),_:1}),i.readonly?e(``,!0):(p(),f(`div`,ve,[(p(),f(r,null,x(m,e=>b(t(g),{key:e,type:`button`,variant:`outline`,size:`sm`,class:v([`h-6 text-[10px] gap-0.5 px-2.5 border font-medium transition-colors`,M.value.has(e)?S[e]:y[e]]),disabled:M.value.has(e),onClick:t=>N(e)},{default:h(()=>[M.value.has(e)?(p(),s(t(j),{key:0,class:`w-3 h-3`})):(p(),s(t(w),{key:1,class:`w-3 h-3`})),_(` `+l(t(d)(`providers.endpoints.apiTypes.${e}`)),1)]),_:2},1032,[`class`,`disabled`,`onClick`])),64))]))]),i.readonly?e(``,!0):(p(),f(`div`,ye,[b(t(g),{type:`button`,variant:`link`,size:`sm`,class:`h-auto p-0 text-[11px] text-muted-foreground underline decoration-dotted underline-offset-2 hover:text-foreground`,onClick:a[0]||=e=>k.value=!k.value},{default:h(()=>[_(l(A.value?t(d)(`providers.endpoints.hidePerEndpointKeys`):t(d)(`providers.endpoints.showPerEndpointKeys`)),1)]),_:1}),i.sharedKey&&!A.value?(p(),f(`span`,be,l(t(d)(`providers.endpoints.allUseSharedKey`)),1)):e(``,!0)])),(p(!0),f(r,null,x(i.modelValue,(n,r)=>(p(),f(`div`,{key:r,class:`rounded-md border bg-muted/30 p-2.5 space-y-2`},[u(`div`,xe,[b(t(F),{variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:h(()=>[_(l(t(d)(`providers.endpoints.apiTypes.${n.api_type}`)),1)]),_:2},1024),A.value?(p(),f(`div`,Se,[b(t(I),{"model-value":n.api_key??``,type:`password`,disabled:i.readonly,placeholder:i.sharedKey?t(d)(`providers.endpoints.useSharedKey`):t(d)(`providers.endpoints.apiKeyPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`api_key`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])):n.api_key?(p(),f(`div`,Ce,l(t(d)(`providers.endpoints.customKeySet`)),1)):e(``,!0),i.readonly?e(``,!0):(p(),s(t(g),{key:2,type:`button`,variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0 shrink-0 text-muted-foreground hover:text-destructive`,disabled:i.modelValue.length<=1,onClick:e=>P(r)},{default:h(()=>[b(t(T),{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`,`onClick`]))]),u(`div`,we,[u(`div`,Te,[b(t(O),{class:`text-[10px] text-muted-foreground`},{default:h(()=>[...a[1]||=[_(`Base URL`,-1)]]),_:1}),b(t(I),{"model-value":n.base_url,type:`url`,required:``,disabled:i.readonly,placeholder:`https://api.example.com/v1`,class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`base_url`,String(e))},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),u(`div`,Ee,[b(t(O),{class:`text-[10px] text-muted-foreground`},{default:h(()=>[_(l(t(d)(`providers.fields.upstreamPath`)),1)]),_:1}),b(t(I),{"model-value":n.upstream_path??``,disabled:i.readonly,placeholder:t(d)(`providers.fields.upstreamPathPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(r,`upstream_path`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])])]))),128)),u(`p`,De,l(t(d)(`providers.endpoints.hint`)),1)]))}});function ke(e,t,n){let r=[];return e.toLowerCase().includes(`deepseek`)&&(r.push(`thinking_consistency`),t===`anthropic`?r.push(`orphan_tool_results`):r.push(`orphan_tool_results_oa`)),t===`openai`&&n&&r.push(`developer_role`),r}export{ne as a,R as i,Oe as n,J as o,he as r,ke as t};
@@ -1 +1 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]);export{t};
1
+ import{L as e}from"./button-DevtSBpi.js";var t=e(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{L as e}from"./button-DevtSBpi.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{L as e}from"./button-DevtSBpi.js";var t=e(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]);export{t};
@@ -1 +1 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]);export{t};
1
+ import{L as e}from"./button-DevtSBpi.js";var t=e(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]);export{t};
@@ -1 +1 @@
1
- import{Gt as e,H as t,X as n,Xt as r,Z as i,et as a,gt as o,it as s,kt as c,nt as l,qt as u,rt as d}from"./button-DXlWUlLe.js";import{t as f}from"./Label-CgLYbqNp.js";import{t as p}from"./Input-Qz28j7do.js";var m={mode:`auto`,max_concurrency:10,queue_timeout_ms:12e4,max_queue_size:100},h={mode:`manual`,max_concurrency:3,queue_timeout_ms:12e4,max_queue_size:10},g={injectHeaders:``,dropFields:``,requestDefaults:``},_={proxyType:``,proxyUrl:``,proxyUsername:``,proxyPassword:``},v=s({__name:`TransformRulesForm`,props:{modelValue:{},compact:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:m}){let h=s,_=m,{t:v}=t();function y(e){_(`update:modelValue`,{...h.modelValue,...e})}let b=n(()=>h.modelValue.injectHeaders??g.injectHeaders),x=n(()=>h.modelValue.dropFields??g.dropFields),S=n(()=>h.modelValue.requestDefaults??g.requestDefaults);return(t,n)=>(o(),a(`div`,{class:u(s.compact?`space-y-2`:`space-y-3`)},[i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.injectHeaders`)),1)]),_:1}),d(e(p),{"model-value":b.value,placeholder:`{"x-custom": "value"}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[0]||=e=>y({injectHeaders:e})},null,8,[`model-value`])]),i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.dropFields`)),1)]),_:1}),d(e(p),{"model-value":x.value,placeholder:`logprobs, frequency_penalty`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[1]||=e=>y({dropFields:e})},null,8,[`model-value`])]),i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.requestDefaults`)),1)]),_:1}),d(e(p),{"model-value":S.value,placeholder:`{"max_tokens": 4096}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[2]||=e=>y({requestDefaults:e})},null,8,[`model-value`])])],2))}});function y(e){let{injectHeaders:t,dropFields:n,requestDefaults:r}=e;if(!t.trim()&&!n.trim()&&!r.trim())return{rule:null,errorKey:null};let i=n?n.split(`,`).map(e=>e.trim()).filter(Boolean):null,a=null;if(r.trim())try{a=JSON.parse(r)}catch{return{rule:null,errorKey:`requestDefaultsJsonError`}}let o=null;if(t.trim())try{o=JSON.parse(t)}catch{return{rule:null,errorKey:`injectHeadersJsonError`}}return{rule:JSON.stringify({drop_fields:i,request_defaults:a,inject_headers:o}),errorKey:null}}export{_ as a,h as i,v as n,g as o,m as r,y as t};
1
+ import{Gt as e,H as t,X as n,Xt as r,Z as i,et as a,gt as o,it as s,kt as c,nt as l,qt as u,rt as d}from"./button-DevtSBpi.js";import{t as f}from"./Label-CNOhLq_3.js";import{t as p}from"./Input-DKQPXwUF.js";var m={mode:`auto`,max_concurrency:10,queue_timeout_ms:12e4,max_queue_size:100},h={mode:`manual`,max_concurrency:3,queue_timeout_ms:12e4,max_queue_size:10},g={injectHeaders:``,dropFields:``,requestDefaults:``},_={proxyType:``,proxyUrl:``,proxyUsername:``,proxyPassword:``},v=s({__name:`TransformRulesForm`,props:{modelValue:{},compact:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:m}){let h=s,_=m,{t:v}=t();function y(e){_(`update:modelValue`,{...h.modelValue,...e})}let b=n(()=>h.modelValue.injectHeaders??g.injectHeaders),x=n(()=>h.modelValue.dropFields??g.dropFields),S=n(()=>h.modelValue.requestDefaults??g.requestDefaults);return(t,n)=>(o(),a(`div`,{class:u(s.compact?`space-y-2`:`space-y-3`)},[i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.injectHeaders`)),1)]),_:1}),d(e(p),{"model-value":b.value,placeholder:`{"x-custom": "value"}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[0]||=e=>y({injectHeaders:e})},null,8,[`model-value`])]),i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.dropFields`)),1)]),_:1}),d(e(p),{"model-value":x.value,placeholder:`logprobs, frequency_penalty`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[1]||=e=>y({dropFields:e})},null,8,[`model-value`])]),i(`div`,null,[d(e(f),{class:`text-[11px] text-muted-foreground`},{default:c(()=>[l(r(e(v)(`providers.transform.requestDefaults`)),1)]),_:1}),d(e(p),{"model-value":S.value,placeholder:`{"max_tokens": 4096}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":n[2]||=e=>y({requestDefaults:e})},null,8,[`model-value`])])],2))}});function y(e){let{injectHeaders:t,dropFields:n,requestDefaults:r}=e;if(!t.trim()&&!n.trim()&&!r.trim())return{rule:null,errorKey:null};let i=n?n.split(`,`).map(e=>e.trim()).filter(Boolean):null,a=null;if(r.trim())try{a=JSON.parse(r)}catch{return{rule:null,errorKey:`requestDefaultsJsonError`}}let o=null;if(t.trim())try{o=JSON.parse(t)}catch{return{rule:null,errorKey:`injectHeadersJsonError`}}return{rule:JSON.stringify({drop_fields:i,request_defaults:a,inject_headers:o}),errorKey:null}}export{_ as a,h as i,v as n,g as o,m as r,y as t};
@@ -1 +1 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
1
+ import{L as e}from"./button-DevtSBpi.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
@@ -1 +1 @@
1
- import{L as e,Lt as t}from"./button-DXlWUlLe.js";var n=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),r=2e3;function i(){let e=t(!1);async function n(t){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(t):a(t),e.value=!0,setTimeout(()=>{e.value=!1},r),!0}catch{try{return a(t),e.value=!0,setTimeout(()=>{e.value=!1},r),!0}catch{return!1}}}return{copied:e,copy:n}}function a(e){let t=document.createElement(`textarea`);if(t.value=e,t.style.cssText=`position:fixed;left:-9999px;opacity:0`,document.body.appendChild(t),t.select(),!document.execCommand(`copy`))throw Error(`execCommand copy failed`);document.body.removeChild(t)}export{n,i as t};
1
+ import{L as e,Lt as t}from"./button-DevtSBpi.js";var n=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),r=2e3;function i(){let e=t(!1);async function n(t){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(t):a(t),e.value=!0,setTimeout(()=>{e.value=!1},r),!0}catch{try{return a(t),e.value=!0,setTimeout(()=>{e.value=!1},r),!0}catch{return!1}}}return{copied:e,copy:n}}function a(e){let t=document.createElement(`textarea`);if(t.value=e,t.style.cssText=`position:fixed;left:-9999px;opacity:0`,document.body.appendChild(t),t.select(),!document.execCommand(`copy`))throw Error(`execCommand copy failed`);document.body.removeChild(t)}export{n,i as t};
@@ -1 +1 @@
1
- import{A as e,H as t,Lt as n,k as r}from"./button-DXlWUlLe.js";import{a as i}from"./index-FYAc4GSw.js";var a=3;function o(){let{t:o}=t(),s=n(a),c=n(!1);async function l(){c.value=!0;try{s.value=(await r.setLogRetention(s.value)).days,i.success(o(`logs.retention.saved`))}catch(t){console.error(`logRetention.save:`,t),i.error(e(t,o(`logs.retention.updateFailed`)))}finally{c.value=!1}}async function u(){try{let{days:e}=await r.getLogRetention();s.value=e}catch(t){console.error(`logRetention.load:`,t),i.error(e(t,o(`logs.retention.loadFailed`)))}}return{retentionDays:s,retentionSaving:c,saveRetention:l,loadRetention:u}}export{o as t};
1
+ import{A as e,H as t,Lt as n,k as r}from"./button-DevtSBpi.js";import{a as i}from"./index-DEJ5Pc35.js";var a=3;function o(){let{t:o}=t(),s=n(a),c=n(!1);async function l(){c.value=!0;try{s.value=(await r.setLogRetention(s.value)).days,i.success(o(`logs.retention.saved`))}catch(t){console.error(`logRetention.save:`,t),i.error(e(t,o(`logs.retention.updateFailed`)))}finally{c.value=!1}}async function u(){try{let{days:e}=await r.getLogRetention();s.value=e}catch(t){console.error(`logRetention.load:`,t),i.error(e(t,o(`logs.retention.loadFailed`)))}}return{retentionDays:s,retentionSaving:c,saveRetention:l,loadRetention:u}}export{o as t};
@@ -1 +1 @@
1
- import{M as e}from"./button-DXlWUlLe.js";function t(t,n){let{activeOnly:r=!1,includeStreamTimeout:i=!0,defaultContextWindow:a=e}=n??{};return(r?t.filter(e=>e.is_active):t).map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>{let t={name:e.name,contextWindow:e.context_window??a};return i&&(t.streamTimeoutMs=e.stream_timeout_ms??null),t})}))}export{t};
1
+ import{M as e}from"./button-DevtSBpi.js";function t(t,n){let{activeOnly:r=!1,includeStreamTimeout:i=!0,defaultContextWindow:a=e}=n??{};return(r?t.filter(e=>e.is_active):t).map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>{let t={name:e.name,contextWindow:e.context_window??a};return i&&(t.streamTimeoutMs=e.stream_timeout_ms??null),t})}))}export{t};
@@ -8,8 +8,8 @@
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=optional" rel="stylesheet" />
10
10
  <title>LLM Simple Router</title>
11
- <script type="module" crossorigin src="/admin/assets/index-FYAc4GSw.js"></script>
12
- <link rel="modulepreload" crossorigin href="/admin/assets/button-DXlWUlLe.js">
11
+ <script type="module" crossorigin src="/admin/assets/index-DEJ5Pc35.js"></script>
12
+ <link rel="modulepreload" crossorigin href="/admin/assets/button-DevtSBpi.js">
13
13
  <link rel="stylesheet" crossorigin href="/admin/assets/index-BcYqgllr.css">
14
14
  </head>
15
15
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-simple-router",
3
- "version": "0.12.0-dev.7cf31a2",
3
+ "version": "0.12.0-dev.f87eb90",
4
4
  "description": "LLM API proxy router with OpenAI/Anthropic support, model mapping, retry strategies, and admin dashboard",
5
5
  "license": "MIT",
6
6
  "author": "ZZzzswszzZZ",
@@ -1 +0,0 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]);export{t};
@@ -1 +0,0 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]);export{t};
@@ -1 +0,0 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -1 +0,0 @@
1
- import{L as e}from"./button-DXlWUlLe.js";var t=e(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]);export{t};