llm-simple-router 1.1.2-beta.2 → 1.1.2

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 (124) hide show
  1. package/dist/admin/providers.js +4 -6
  2. package/dist/admin/quick-setup.js +0 -2
  3. package/dist/app/register-routes.js +0 -2
  4. package/dist/config/model-context.d.ts +0 -2
  5. package/dist/config/model-context.js +0 -4
  6. package/dist/core/concurrency/semaphore.d.ts +2 -15
  7. package/dist/core/concurrency/semaphore.js +4 -36
  8. package/dist/core/constants.d.ts +0 -1
  9. package/dist/core/constants.js +0 -3
  10. package/dist/core/monitor/request-tracker.d.ts +0 -6
  11. package/dist/core/monitor/request-tracker.js +0 -15
  12. package/dist/core/types.d.ts +1 -1
  13. package/dist/db/providers.d.ts +3 -12
  14. package/dist/db/providers.js +12 -23
  15. package/dist/index.js +0 -2
  16. package/dist/proxy/handler/iteration-setup.js +2 -3
  17. package/dist/proxy/orchestration/orchestrator.d.ts +1 -1
  18. package/dist/proxy/orchestration/orchestrator.js +11 -28
  19. package/dist/proxy/orchestration/resilience.d.ts +1 -3
  20. package/dist/proxy/orchestration/resilience.js +2 -17
  21. package/dist/proxy/orchestration/scope.d.ts +1 -1
  22. package/dist/proxy/orchestration/scope.js +2 -2
  23. package/dist/proxy/transport/http.d.ts +2 -14
  24. package/dist/proxy/transport/http.js +2 -24
  25. package/dist/proxy/transport/stream.d.ts +3 -56
  26. package/dist/proxy/transport/stream.js +44 -97
  27. package/dist/proxy/transport/transport-fn.d.ts +1 -2
  28. package/dist/proxy/transport/transport-fn.js +3 -3
  29. package/frontend-dist/assets/AuthLayout-jELzICkx.js +1 -0
  30. package/frontend-dist/assets/Card-uC_v0CEa.js +1 -0
  31. package/frontend-dist/assets/CardContent-CP3OiCj4.js +1 -0
  32. package/frontend-dist/assets/CardTitle-DGxuW5DZ.js +1 -0
  33. package/frontend-dist/assets/CascadingModelSelect-Dzk7rxIN.js +1 -0
  34. package/frontend-dist/assets/Checkbox-C1aVqGdC.js +1 -0
  35. package/frontend-dist/assets/CollapsibleContent-pBG4UkLo.js +1 -0
  36. package/frontend-dist/assets/CollapsibleTrigger-D5TkgXmz.js +1 -0
  37. package/frontend-dist/assets/ConcurrencyControl-5GweS-rY.js +1 -0
  38. package/frontend-dist/assets/Dashboard-wjd3d3qk.js +3 -0
  39. package/frontend-dist/assets/{Input-DRF4ONbF.js → Input-DMDfXTXB.js} +1 -1
  40. package/frontend-dist/assets/Label-BQXea0mo.js +1 -0
  41. package/frontend-dist/assets/Login-DNpCjxrY.js +1 -0
  42. package/frontend-dist/assets/Logs-BuL2Z0sF.js +1 -0
  43. package/frontend-dist/assets/ModelMappings-DeRhu-2N.js +1 -0
  44. package/frontend-dist/assets/Monitor-V30dnACo.js +1 -0
  45. package/frontend-dist/assets/Providers-BkkQhSTb.js +1 -0
  46. package/frontend-dist/assets/ProxyEnhancement-DjgebwfU.js +1 -0
  47. package/frontend-dist/assets/QuickSetup-BTVjEiU7.js +1 -0
  48. package/frontend-dist/assets/RetryRules-DFBHBG-B.js +1 -0
  49. package/frontend-dist/assets/RouterKeys-DZADvMfh.js +1 -0
  50. package/frontend-dist/assets/{RovingFocusItem-BIoz-v9k.js → RovingFocusItem-5H5eE6G2.js} +1 -1
  51. package/frontend-dist/assets/Schedules-DUubZ2uN.js +1 -0
  52. package/frontend-dist/assets/Separator-BqIs_Dy3.js +1 -0
  53. package/frontend-dist/assets/Settings-CO59WLOZ.js +6 -0
  54. package/frontend-dist/assets/Setup-Br7JZKNp.js +1 -0
  55. package/frontend-dist/assets/Skeleton-gVyjaP-y.js +1 -0
  56. package/frontend-dist/assets/Switch-D1ER0j6H.js +1 -0
  57. package/frontend-dist/assets/TableHeader-MqyrNSsx.js +1 -0
  58. package/frontend-dist/assets/TabsTrigger-DdjWJbUq.js +1 -0
  59. package/frontend-dist/assets/UnifiedRequestDialog-DRthlI6j.js +3 -0
  60. package/frontend-dist/assets/{VisuallyHiddenInput-Dz0c537Q.js → VisuallyHiddenInput-DrNFhnVL.js} +1 -1
  61. package/frontend-dist/assets/arrow-down-BFgGYafs.js +1 -0
  62. package/frontend-dist/assets/badge-Db4OYMEf.js +1 -0
  63. package/frontend-dist/assets/{button-DhbTyZqO.js → button-BBiWml8B.js} +2 -2
  64. package/frontend-dist/assets/chevron-right-DYwStkJr.js +1 -0
  65. package/frontend-dist/assets/dialog-DRYeWncC.js +1 -0
  66. package/frontend-dist/assets/{image-BAKOQH7r.js → image-zYdpUIEA.js} +1 -1
  67. package/frontend-dist/assets/index-DTujoAWx.js +58 -0
  68. package/frontend-dist/assets/index-DyQ39g4W.css +1 -0
  69. package/frontend-dist/assets/model-patches-DIy-rFuq.js +1 -0
  70. package/frontend-dist/assets/{pencil-CQiZ13On.js → pencil-C3-MFg-d.js} +1 -1
  71. package/frontend-dist/assets/plus-xmIDnujf.js +1 -0
  72. package/frontend-dist/assets/quickSetup-CqxQRMCR.js +1 -0
  73. package/frontend-dist/assets/quickSetup-DplqYrvf.js +1 -0
  74. package/frontend-dist/assets/search-BxNrTsG8.js +1 -0
  75. package/frontend-dist/assets/{sparkles-o5rM_OIC.js → sparkles-B5RWZZuf.js} +1 -1
  76. package/frontend-dist/assets/transform-domain-KBixlLXR.js +1 -0
  77. package/frontend-dist/assets/{trash-2-DfV00PQC.js → trash-2-Dn3T5-Z1.js} +1 -1
  78. package/frontend-dist/assets/{useClipboard-BEGcEu2g.js → useClipboard-Bx3CrPal.js} +1 -1
  79. package/frontend-dist/assets/useLogRetention-CdccNhYN.js +1 -0
  80. package/frontend-dist/assets/{useProviderGroups-CpH380OR.js → useProviderGroups-Og5FpCPe.js} +1 -1
  81. package/frontend-dist/index.html +3 -3
  82. package/package.json +1 -1
  83. package/frontend-dist/assets/AuthLayout-CNJ18LiO.js +0 -1
  84. package/frontend-dist/assets/Card-DHdWC9Sr.js +0 -1
  85. package/frontend-dist/assets/CardContent-D3XiSLZZ.js +0 -1
  86. package/frontend-dist/assets/CardTitle-ouEnIzFR.js +0 -1
  87. package/frontend-dist/assets/CascadingModelSelect-uCR_78CB.js +0 -1
  88. package/frontend-dist/assets/Checkbox-D4B5Gy-L.js +0 -1
  89. package/frontend-dist/assets/CollapsibleContent-D5uuYzAy.js +0 -1
  90. package/frontend-dist/assets/CollapsibleTrigger-7lOShWej.js +0 -1
  91. package/frontend-dist/assets/ConcurrencyControl-DSpn8cI_.js +0 -1
  92. package/frontend-dist/assets/Dashboard-DaMz3m0K.js +0 -3
  93. package/frontend-dist/assets/Label-muHpCvRx.js +0 -1
  94. package/frontend-dist/assets/Login-CuQA8bbc.js +0 -1
  95. package/frontend-dist/assets/Logs-CKO3germ.js +0 -1
  96. package/frontend-dist/assets/ModelMappings-De98UugX.js +0 -1
  97. package/frontend-dist/assets/Monitor-BzeTXX7u.js +0 -1
  98. package/frontend-dist/assets/Providers-C7TMCyLZ.js +0 -1
  99. package/frontend-dist/assets/ProxyEnhancement-CaXVxlxk.js +0 -1
  100. package/frontend-dist/assets/QuickSetup-9OsD4eib.js +0 -1
  101. package/frontend-dist/assets/RetryRules-CZtQYpr0.js +0 -1
  102. package/frontend-dist/assets/RouterKeys-WAbHBrzu.js +0 -1
  103. package/frontend-dist/assets/Schedules-DgxMv_wm.js +0 -1
  104. package/frontend-dist/assets/Separator-_gcj_6Dd.js +0 -1
  105. package/frontend-dist/assets/Settings-w33AM_0F.js +0 -6
  106. package/frontend-dist/assets/Setup-D6c5svHh.js +0 -1
  107. package/frontend-dist/assets/Skeleton-wP01Qhzi.js +0 -1
  108. package/frontend-dist/assets/Switch-BnSoCbqK.js +0 -1
  109. package/frontend-dist/assets/TableHeader-oSu5tayf.js +0 -1
  110. package/frontend-dist/assets/TabsTrigger-CzLaOeN9.js +0 -1
  111. package/frontend-dist/assets/UnifiedRequestDialog-lCG2BxB4.js +0 -3
  112. package/frontend-dist/assets/arrow-down-DBlAmBEr.js +0 -1
  113. package/frontend-dist/assets/badge-qilWWy3M.js +0 -1
  114. package/frontend-dist/assets/chevron-right-B1eJ5usR.js +0 -1
  115. package/frontend-dist/assets/dialog-J16vWuXK.js +0 -1
  116. package/frontend-dist/assets/index-BoaXEmuZ.js +0 -58
  117. package/frontend-dist/assets/index-Db9D0WPf.css +0 -1
  118. package/frontend-dist/assets/model-patches-B47btKty.js +0 -1
  119. package/frontend-dist/assets/plus-BVJPX-4z.js +0 -1
  120. package/frontend-dist/assets/quickSetup-jgJgPUcH.js +0 -1
  121. package/frontend-dist/assets/quickSetup-qTjp3Z6J.js +0 -1
  122. package/frontend-dist/assets/search-DzYxIOWW.js +0 -1
  123. package/frontend-dist/assets/transform-domain-DczpyJVT.js +0 -1
  124. package/frontend-dist/assets/useLogRetention-BT7mqSLb.js +0 -1
@@ -0,0 +1 @@
1
+ html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto}[data-sonner-toaster]{width:var(--width);--gray1:#fcfcfc;--gray2:#f8f8f8;--gray3:#f3f3f3;--gray4:#ededed;--gray5:#e8e8e8;--gray6:#e2e2e2;--gray7:#dbdbdb;--gray8:#c7c7c7;--gray9:#8f8f8f;--gray10:#858585;--gray11:#6f6f6f;--gray12:#171717;--border-radius:8px;box-sizing:border-box;z-index:999999999;outline:none;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;transition:transform .4s;position:fixed}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);opacity:0;transform:var(--y);touch-action:none;box-sizing:border-box;overflow-wrap:anywhere;outline:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;position:absolute}[data-sonner-toast][data-styled=true]{background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);width:var(--width);align-items:center;gap:6px;padding:16px;font-size:13px;display:flex;box-shadow:0 4px 12px #0000001a}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap));top:0}[data-sonner-toast][data-y-position=bottom]{--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap));bottom:0}[data-sonner-toast][data-styled=true] [data-description]{color:#3f3f3f;font-weight:400;line-height:1.4}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{color:inherit;font-weight:500;line-height:1.5}[data-sonner-toast][data-styled=true] [data-icon]{width:16px;height:16px;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end);flex-shrink:0;justify-content:flex-start;align-items:center;display:flex;position:relative}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform-origin:50%;animation:.3s forwards sonner-fade-in;transform:scale(.8)}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{flex-direction:column;gap:2px;display:flex}[data-sonner-toast][data-styled=true] [data-button]{height:24px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);cursor:pointer;border:none;border-radius:4px;outline:none;flex-shrink:0;align-items:center;padding-left:8px;padding-right:8px;font-size:12px;font-weight:500;transition:opacity .4s,box-shadow .2s;display:flex}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:#00000014}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:#ffffff4d}[data-sonner-toaster] [data-close-button-position=top-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster] [data-close-button-position=top-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster] [data-close-button-position=bottom-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(-35%, 35%)}[data-sonner-toaster] [data-close-button-position=bottom-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(35%, 35%)}[data-sonner-toast][data-styled=true] [data-close-button]{left:var(--toast-close-button-left);right:var(--toast-close-button-right);top:var(--toast-close-button-top);bottom:var(--toast-close-button-bottom);width:20px;height:20px;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .1s,background .2s,border-color .2s;display:flex;position:absolute}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";z-index:-1;height:100%;position:absolute;left:-100%;right:-100%}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3)translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3)translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]:after{content:"";height:calc(var(--gap) + 1px);width:100%;position:absolute;bottom:100%;left:0}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * .05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--toasts-before) * .05 + 1));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0px)) translateX(var(--swipe-amount-x,0px));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (width<=600px){[data-sonner-toaster]{right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%;position:fixed}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{width:calc(100% - var(--mobile-offset-left) * 2);left:0;right:0}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:calc(var(--mobile-offset-bottom) + max(env(safe-area-inset-bottom), 0px))}[data-sonner-toaster][data-y-position=top]{top:calc(var(--mobile-offset-top) + max(env(safe-area-inset-top), 0px))}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:#ecfdf3;--success-border:#bffcd9;--success-text:#008a2e;--info-bg:#f0f8ff;--info-border:#dde7fd;--info-text:#0973dc;--warning-bg:#fffcf0;--warning-border:#fbeeb1;--warning-text:#dc7609;--error-bg:#fff0f0;--error-border:#ffe0e1;--error-text:#e60000}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:#333;--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:#1f1f1f;--normal-border:#333;--normal-border-hover:#404040;--normal-text:var(--gray1);--success-bg:#001f0f;--success-border:#003d1c;--success-text:#59f3a6;--info-bg:#000d1f;--info-border:#19233e;--info-text:#5896f3;--warning-bg:#1d1f00;--warning-border:#2e2e00;--warning-text:#f3cf58;--error-bg:#2d0607;--error-border:#4d0408;--error-text:#ff9ea1}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);z-index:10;position:absolute;inset:0}.sonner-loading-wrapper[data-visible=false]{transform-origin:50%;animation:.2s forwards sonner-fade-out}.sonner-spinner{height:var(--size);width:var(--size);position:relative;top:50%;left:50%}.sonner-loading-bar{background:var(--gray11);border-radius:6px;width:24%;height:8%;animation:1.2s linear infinite sonner-spin;position:absolute;top:-3.9%;left:-10%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg)translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg)translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg)translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg)translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg)translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg)translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg)translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg)translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg)translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg)translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg)translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg)translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{transform-origin:50%;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8)translate(-50%,-50%)}:root{--color-teal-50:oklch(97% .02 175);--color-teal-100:oklch(93% .04 175);--color-teal-200:oklch(87% .07 175);--color-teal-300:oklch(78% .1 175);--color-teal-400:oklch(68% .13 175);--color-teal-500:oklch(58% .14 175);--color-teal-600:oklch(48% .12 175);--color-teal-700:oklch(40% .1 175);--color-teal-800:oklch(32% .08 175);--color-teal-900:oklch(25% .06 175);--color-success:oklch(65% .17 150);--color-success-light:oklch(92% .05 150);--color-success-dark:oklch(45% .15 150);--color-warning:oklch(78% .16 80);--color-warning-light:oklch(94% .06 80);--color-warning-dark:oklch(55% .14 80);--color-danger:oklch(58% .22 25);--color-danger-light:oklch(90% .08 25);--color-danger-dark:oklch(40% .18 25);--color-info:oklch(62% .18 250);--color-info-light:oklch(91% .06 250);--color-info-dark:oklch(43% .16 250);--color-bg-page:var(--background);--color-bg-card:var(--card);--color-bg-sidebar:oklch(20.5% 0 0);--color-text-primary:var(--foreground);--color-text-secondary:var(--muted-foreground);--color-text-tertiary:oklch(65% 0 0);--color-role-user:oklch(78% .1 175);--color-role-user-bg:oklch(97% .02 175);--color-role-assistant:oklch(65% .14 260);--color-role-assistant-bg:oklch(93% .04 260);--color-role-tool:oklch(60% .08 30);--color-role-tool-bg:oklch(96% .02 30);--color-role-thinking:oklch(58% .12 290);--color-role-thinking-bg:oklch(91% .03 290);--color-sse-message-start:oklch(68% .13 175);--color-sse-content-block-start:oklch(58% .14 175);--color-sse-content-block-delta:oklch(48% .12 175);--color-sse-message-delta:oklch(40% .1 175);--color-sse-message-stop:oklch(65% .17 150);--spacing-dense-sm:.375rem;--spacing-dense-md:.5rem;--spacing-page:1.5rem;--spacing-section:1.25rem;--spacing-card:1rem;--spacing-tight:.5rem;--gap-icon-text:.375rem;--radius-pill:9999px;--color-overlay-light:oklch(0% 0 0/.2);--color-overlay:oklch(0% 0 0/.8);--shadow-card:0 1px 3px oklch(0% 0 0/.1);--shadow-elevated:0 4px 12px oklch(0% 0 0/.12);--shadow-focus:0 0 0 2px oklch(58% .14 175);--duration-fast:.15s;--duration-normal:.2s;--ease-default:cubic-bezier(.4, 0, .2, 1);--z-modal:100;--z-dropdown:150;--z-toast:200}.dark{--color-success-light:oklch(32% .05 150);--color-warning-light:oklch(35% .06 80);--color-danger-light:oklch(30% .08 25);--color-info-light:oklch(30% .06 250);--color-bg-sidebar:oklch(14.5% 0 0);--color-text-tertiary:oklch(55.6% 0 0);--color-role-user-bg:oklch(32% .05 175);--color-role-user:oklch(72% .08 175);--color-role-assistant-bg:oklch(30% .06 260);--color-role-assistant:oklch(60% .1 260);--color-role-tool-bg:oklch(28% .04 30);--color-role-tool:oklch(65% .06 30);--color-role-thinking-bg:oklch(28% .05 290);--color-role-thinking:oklch(55% .09 290)}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--border)}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(48% .12 175);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(55% .15 25);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(58% .14 175);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.375rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 2px);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0);--font-sans:"Geist", sans-serif;--font-heading:var(--font-sans);--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(23% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(68% .13 175);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(65% .13 25);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(100% 0 0/.14);--input:oklch(100% 0 0/.14);--ring:oklch(78% .1 175);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(17.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(68% .13 175);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(22% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans)}*,:before,:after{border-color:var(--border)}.theme{--font-heading:var(--font-sans)}.page{max-width:1440px;margin-left:auto;margin-right:auto;padding:1.5rem}.dot-success{background-color:var(--color-success)}.block-thinking{background-color:var(--color-role-thinking-bg)}.block-tool-use{background-color:var(--color-role-tool-bg)}.block-tool-result{background-color:var(--color-role-user-bg)}.block-thinking-content{background-color:oklch(from var(--color-role-thinking-bg) l c h / .7);color:var(--muted-foreground)}.block-tool-use-content{background-color:oklch(from var(--color-role-tool-bg) l c h / .7)}.block-tool-result-content{background-color:oklch(from var(--color-role-user-bg) l c h / .7)}.diff-modified{background-color:var(--color-warning-light);border-color:var(--color-warning)}.diff-removed{color:var(--color-danger)}.diff-added{color:var(--color-success)}.progress-active{background-color:var(--color-success)}.progress-failed{background-color:var(--color-danger)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-2{bottom:.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-56{left:14rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-\[200\]{z-index:200}.z-\[201\]{z-index:201}.z-dropdown{z-index:var(--z-dropdown)}.z-modal{z-index:var(--z-modal)}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-8{margin-top:2rem;margin-bottom:2rem}.-mb-4{margin-bottom:-1rem}.-ml-px{margin-left:-1px}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-\[3px\]{margin-bottom:3px}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-2{width:.5rem;height:.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-\[11px\]{width:11px;height:11px}.size-\[5px\]{width:5px;height:5px}.size-full{width:100%;height:100%}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-36{height:9rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[140px\]{height:140px}.h-\[220px\]{height:220px}.h-\[22px\]{height:22px}.h-\[252px\]{height:252px}.h-\[30px\]{height:30px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(85vh-100px\)\]{height:calc(85vh - 100px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-64{max-height:16rem}.max-h-\[200px\]{max-height:200px}.max-h-\[320px\]{max-height:320px}.max-h-\[40vh\]{max-height:40vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-16{min-height:4rem}.min-h-8{min-height:2rem}.min-h-\[180px\]{min-height:180px}.min-h-\[28px\]{min-height:28px}.min-h-\[30px\]{min-height:30px}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.3333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-5\/6{width:83.3333%}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[130px\]{width:130px}.w-\[22px\]{width:22px}.w-\[280px\]{width:280px}.w-\[340px\]{width:340px}.w-\[40\%\]{width:40%}.w-\[640px\]{width:640px}.w-\[72px\]{width:72px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.min-w-4{min-width:1rem}.min-w-48{min-width:12rem}.min-w-56{min-width:14rem}.min-w-8{min-width:2rem}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[90px\]{min-width:90px}.max-w-40{max-width:10rem}.max-w-60{max-width:15rem}.max-w-\[1000px\]{max-width:1000px}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-px{gap:1px}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-4{row-gap:1rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--border)}.self-start{align-self:flex-start}.self-center{align-self:center}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-width:1px}.border-0{border-width:0}.border-\[1\.5px\]{border-width:1.5px}.border-\[1px\]{border-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-l-\[3px\]{border-left-width:3px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.\!border-dashed{border-style:dashed!important}.border-dashed{border-style:dashed}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500\/15{border-color:#3b82f626}.border-border{border-color:var(--border)}.border-danger{border-color:var(--color-danger)}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.border-green-500\/30{border-color:#22c55e4d}.border-green-500\/50{border-color:#22c55e80}.border-info{border-color:var(--color-info)}.border-input{border-color:var(--input)}.border-muted{border-color:var(--muted)}.border-orange-400\/25{border-color:#fb923c40}.border-primary{border-color:var(--primary)}.border-ring{border-color:var(--ring)}.border-role-tool{border-color:var(--color-role-tool)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-success{border-color:var(--color-success)}.border-teal-200{border-color:var(--color-teal-200)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--color-warning)}.border-white\/\[0\.06\]{border-color:#ffffff0f}.border-l-primary{border-left-color:var(--primary)}.bg-\[\#10a37f\]{--tw-bg-opacity:1;background-color:rgb(16 163 127/var(--tw-bg-opacity,1))}.bg-\[\#74AA9C\]{--tw-bg-opacity:1;background-color:rgb(116 170 156/var(--tw-bg-opacity,1))}.bg-\[\#D4976A\]{--tw-bg-opacity:1;background-color:rgb(212 151 106/var(--tw-bg-opacity,1))}.bg-\[\#D97757\]{--tw-bg-opacity:1;background-color:rgb(217 119 87/var(--tw-bg-opacity,1))}.bg-\[Canvas\]{background-color:canvas}.bg-accent{background-color:var(--accent)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-200{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.bg-background{background-color:var(--background)}.bg-black\/\[0\.03\]{background-color:#00000008}.bg-black\/\[0\.06\]{background-color:#0000000f}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.bg-blue-500\/15{background-color:#3b82f626}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-danger{background-color:var(--color-danger)}.bg-danger-light{background-color:var(--color-danger-light)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-200{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity,1))}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-foreground{background-color:var(--foreground)}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-info{background-color:var(--color-info)}.bg-info-light{background-color:var(--color-info-light)}.bg-muted{background-color:var(--muted)}.bg-orange-400\/30{background-color:#fb923c4d}.bg-orange-400\/5{background-color:#fb923c0d}.bg-overlay{background-color:var(--color-overlay)}.bg-overlay-light{background-color:var(--color-overlay-light)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-role-assistant-bg{background-color:var(--color-role-assistant-bg)}.bg-role-thinking-bg{background-color:var(--color-role-thinking-bg)}.bg-role-tool-bg{background-color:var(--color-role-tool-bg)}.bg-role-user-bg{background-color:var(--color-role-user-bg)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-primary{background-color:var(--sidebar-primary)}.bg-success{background-color:var(--color-success)}.bg-success-light{background-color:var(--color-success-light)}.bg-teal-200{background-color:var(--color-teal-200)}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-light{background-color:var(--color-warning-light)}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.stroke-\[3\]{stroke-width:3px}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[7px\]{padding-left:7px;padding-right:7px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.py-px{padding-top:1px;padding-bottom:1px}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-0\.5{padding-left:.125rem}.pl-1\.5{padding-left:.375rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[30px\]{padding-left:30px}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:var(--font-mono)}.\!text-\[11px\]{font-size:11px!important}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[CanvasText\]{color:canvastext}.text-\[var\(--color-role-thinking\)\]{color:var(--color-role-thinking)}.text-\[var\(--color-role-tool\)\]{color:var(--color-role-tool)}.text-\[var\(--color-role-user\)\]{color:var(--color-role-user)}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-background{color:var(--background)}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-500\/40{color:#3b82f666}.text-blue-500\/50{color:#3b82f680}.text-blue-500\/60{color:#3b82f699}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-danger{color:var(--color-danger)}.text-danger-dark{color:var(--color-danger-dark)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-foreground{color:var(--foreground)}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-info{color:var(--color-info)}.text-info-dark{color:var(--color-info-dark)}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-orange-400\/40{color:#fb923c66}.text-orange-400\/50{color:#fb923c80}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-role-assistant{color:var(--color-role-assistant)}.text-role-thinking{color:var(--color-role-thinking)}.text-role-tool{color:var(--color-role-tool)}.text-role-user{color:var(--color-role-user)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-sidebar-primary-foreground{color:var(--sidebar-primary-foreground)}.text-success{color:var(--color-success)}.text-success-dark{color:var(--color-success-dark)}.text-teal-200{color:var(--color-teal-200)}.text-teal-300{color:var(--color-teal-300)}.text-teal-700{color:var(--color-teal-700)}.text-teal-900{color:var(--color-teal-900)}.text-transparent{color:#0000}.text-warning{color:var(--color-warning)}.text-warning-dark{color:var(--color-warning-dark)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.bg-blend-color{background-blend-mode:color}.shadow-\[0_0_6px_var\(--color-success\)\/0\.4\]{--tw-shadow:0 0 6px var(--color-success)/.4;--tw-shadow-colored:0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_4px_16px_oklch\(0_0_0\/0\.15\)\]{--tw-shadow:0 4px 16px oklch(0% 0 0/.15);--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_2px_0_var\(--primary\)\]{--tw-shadow:inset 0 2px 0 var(--primary);--tw-shadow-colored:inset 0 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-elevated{--tw-shadow:var(--shadow-elevated);--tw-shadow-colored:var(--shadow-elevated);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-background{--tw-ring-color:var(--background)}.ring-border{--tw-ring-color:var(--border)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-background{--tw-ring-offset-color:var(--background)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[filter\]{transition-property:filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-fast{transition-duration:var(--duration-fast)}.duration-normal{transition-duration:var(--duration-normal)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-fast{animation-duration:var(--duration-fast)}.duration-normal{animation-duration:var(--duration-normal)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.\[--cell-radius\:var\(--radius-md\)\]{--cell-radius:var(--radius-md)}.\[--cell-size\:1\.75rem\]{--cell-size:1.75rem}.\[appearance\:textfield\]{appearance:textfield}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:1.5rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-x-3:after{content:var(--tw-content);left:-.75rem;right:-.75rem}.after\:-inset-y-2:after{content:var(--tw-content);top:-.5rem;bottom:-.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.first\:ml-0:first-child{margin-left:0}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.last\:border-r-0:last-child{border-right-width:0}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within,.hover\:z-20:hover{z-index:20}.hover\:border-muted-foreground:hover{border-color:var(--muted-foreground)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity,1))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-emerald-200:hover{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity,1))}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-secondary:hover{background-color:var(--secondary)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-foreground)}.hover\:text-warning:hover{color:var(--color-warning)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-75:hover{opacity:.75}.hover\:opacity-80:hover{opacity:.8}.hover\:brightness-95:hover{--tw-brightness:brightness(.95);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-\[1\.15\]:hover{--tw-brightness:brightness(1.15);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:0}.has-\[select\:disabled\]\:opacity-50:has(select:disabled){opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[size\=lg\]\:size-10[data-size=lg]{width:2.5rem;height:2.5rem}.data-\[size\=sm\]\:size-6[data-size=sm]{width:1.5rem;height:1.5rem}.data-\[orientation\=horizontal\]\:h-2\.5[data-orientation=horizontal]{height:.625rem}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[position\=popper\]\:h-\[var\(--reka-select-trigger-height\)\][data-position=popper]{height:var(--reka-select-trigger-height)}.data-\[size\=default\]\:h-6[data-size=default]{height:1.5rem}.data-\[size\=default\]\:h-7[data-size=default]{height:1.75rem}.data-\[size\=default\]\:h-8[data-size=default]{height:2rem}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=sm\]\:h-7[data-size=sm]{height:1.75rem}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-2\.5[data-orientation=vertical]{width:.625rem}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[position\=popper\]\:w-full[data-position=popper]{width:100%}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[position\=popper\]\:min-w-\[var\(--reka-select-trigger-width\)\][data-position=popper]{min-width:var(--reka-select-trigger-width)}.data-\[size\=default\]\:max-w-xs[data-size=default],.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:20rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:.75rem}.data-\[orientation\=vertical\]\:self-stretch[data-orientation=vertical]{align-self:stretch}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}.data-\[size\=sm\]\:rounded-md[data-size=sm]{border-radius:var(--radius-md)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.data-\[orientation\=horizontal\]\:border-t[data-orientation=horizontal]{border-top-width:1px}.data-\[orientation\=vertical\]\:border-l[data-orientation=vertical]{border-left-width:1px}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[orientation\=horizontal\]\:border-t-transparent[data-orientation=horizontal]{border-top-color:#0000}.data-\[orientation\=vertical\]\:border-l-transparent[data-orientation=vertical]{border-left-color:#0000}.data-\[selected\]\:bg-primary[data-selected],.data-\[selection-end\]\:bg-primary[data-selection-end],.data-\[selection-start\]\:bg-primary[data-selection-start]{background-color:var(--primary)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[size\=sm\]\:py-0\.5[data-size=sm]{padding-top:.125rem;padding-bottom:.125rem}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-top:.75rem;padding-bottom:.75rem}.data-\[disabled\]\:text-muted-foreground[data-disabled]{color:var(--muted-foreground)}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[outside-view\]\:text-muted-foreground[data-outside-view]{color:var(--muted-foreground)}.data-\[selected\]\:text-primary-foreground[data-selected],.data-\[selection-end\]\:text-primary-foreground[data-selection-end],.data-\[selection-start\]\:text-primary-foreground[data-selection-start]{color:var(--primary-foreground)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[unavailable\]\:text-destructive-foreground[data-unavailable]{color:var(--destructive-foreground)}.data-\[unavailable\]\:line-through[data-unavailable]{text-decoration-line:line-through}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[selected\]\:opacity-100[data-selected]{opacity:1}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open],.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open],.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-1\.5[data-slot=select-value]>*{gap:.375rem}.\*\:data-\[slot\=avatar\]\:ring-2[data-slot=avatar]>*{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.\*\:data-\[slot\=avatar\]\:ring-background[data-slot=avatar]>*{--tw-ring-color:var(--background)}.data-\[selected\]\:hover\:bg-primary:hover[data-selected],.data-\[selection-end\]\:hover\:bg-primary:hover[data-selection-end],.data-\[selection-start\]\:hover\:bg-primary:hover[data-selection-start]{background-color:var(--primary)}.data-\[selected\]\:hover\:text-primary-foreground:hover[data-selected],.data-\[selection-end\]\:hover\:text-primary-foreground:hover[data-selection-end],.data-\[selection-start\]\:hover\:text-primary-foreground:hover[data-selection-start]{color:var(--primary-foreground)}.data-\[selected\]\:focus\:bg-primary:focus[data-selected],.data-\[selection-end\]\:focus\:bg-primary:focus[data-selection-end],.data-\[selection-start\]\:focus\:bg-primary:focus[data-selection-start]{background-color:var(--primary)}.data-\[selected\]\:focus\:text-primary-foreground:focus[data-selected],.data-\[selection-end\]\:focus\:text-primary-foreground:focus[data-selection-end],.data-\[selection-start\]\:focus\:text-primary-foreground:focus[data-selection-start]{color:var(--primary-foreground)}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid{display:grid}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:size-2\.5{width:.625rem;height:.625rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:size-4{width:1rem;height:1rem}.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:size-3{width:.75rem;height:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:size-2{width:.5rem;height:.5rem}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:size-3{width:.75rem;height:.75rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:h-8{height:2rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:h-fit{height:fit-content}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:w-full{width:100%}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:flex-col{flex-direction:column}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:justify-start{justify-content:flex-start}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:bg-transparent{background-color:#0000}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:p-3{padding:.75rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:px-3{padding-left:.75rem;padding-right:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:text-xs{font-size:.75rem;line-height:1rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:text-sm{font-size:.875rem;line-height:1.25rem}.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:after{content:var(--tw-content);bottom:-5px}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:after{content:var(--tw-content);right:-.25rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:after{content:var(--tw-content);height:.125rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:after{content:var(--tw-content);width:.125rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.group\/tabs-list[data-variant=default] .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-\[backdrop-filter\]\:backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}.dark\:border-amber-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.dark\:border-amber-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(180 83 9/var(--tw-border-opacity,1))}.dark\:border-blue-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-emerald-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.dark\:border-emerald-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(4 120 87/var(--tw-border-opacity,1))}.dark\:border-teal-800:is(.dark *){border-color:var(--color-teal-800)}.dark\:border-white\/10:is(.dark *){border-color:#ffffff1a}.dark\:bg-amber-800\/60:is(.dark *){background-color:#92400e99}.dark\:bg-amber-900\/40:is(.dark *){background-color:#78350f66}.dark\:bg-blue-800\/60:is(.dark *){background-color:#1e40af99}.dark\:bg-blue-900\/40:is(.dark *){background-color:#1e3a8a66}.dark\:bg-emerald-800\/60:is(.dark *){background-color:#065f4699}.dark\:bg-emerald-900\/40:is(.dark *){background-color:#064e3b66}.dark\:bg-teal-600:is(.dark *){background-color:var(--color-teal-600)}.dark\:bg-teal-700:is(.dark *){background-color:var(--color-teal-700)}.dark\:bg-teal-800:is(.dark *){background-color:var(--color-teal-800)}.dark\:bg-teal-900:is(.dark *){background-color:var(--color-teal-900)}.dark\:bg-white\/\[0\.03\]:is(.dark *){background-color:#ffffff08}.dark\:bg-white\/\[0\.07\]:is(.dark *){background-color:#ffffff12}.dark\:text-amber-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-danger:is(.dark *){color:var(--color-danger)}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-info:is(.dark *){color:var(--color-info)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-success:is(.dark *){color:var(--color-success)}.dark\:text-teal-100:is(.dark *){color:var(--color-teal-100)}.dark\:text-teal-200:is(.dark *){color:var(--color-teal-200)}.dark\:text-teal-300:is(.dark *){color:var(--color-teal-300)}.dark\:text-warning:is(.dark *){color:var(--color-warning)}.dark\:shadow-\[0_4px_16px_oklch\(0_0_0\/0\.4\)\]:is(.dark *){--tw-shadow:0 4px 16px oklch(0% 0 0/.4);--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dark\:hover\:bg-amber-800\/50:hover:is(.dark *){background-color:#92400e80}.dark\:hover\:bg-blue-800\/50:hover:is(.dark *){background-color:#1e40af80}.dark\:hover\:bg-emerald-800\/50:hover:is(.dark *){background-color:#065f4680}.dark\:hover\:text-foreground:hover:is(.dark *){color:var(--foreground)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:var(--input)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:var(--foreground)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:var(--foreground)}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state=active]:is(.dark *){border-color:#0000}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]:is(.dark *){background-color:#0000}@media (width>=640px){.sm\:inline{display:inline}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:gap-y-0{row-gap:0}.sm\:rounded-lg{border-radius:var(--radius-lg)}.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:24rem}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2{grid-row:span 2/span 2}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start{place-items:start}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left{text-align:left}}@media (width>=768px){.md\:block{display:block}.md\:w-full{width:100%}.md\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.md\:text-pretty{text-wrap:pretty}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (width>=1024px){.lg\:max-w-xs{max-width:20rem}.lg\:grid-cols-\[1fr_1\.2fr\]{grid-template-columns:1fr 1.2fr}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:has\(\[data-selected\]\)\]\:rounded-md:has([data-selected]){border-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\)\]\:bg-accent:has([data-selected]){background-color:var(--accent)}.first\:\[\&\:has\(\[data-selected\]\)\]\:rounded-l-md:has([data-selected]):first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:\[\&\:has\(\[data-selected\]\)\]\:rounded-r-md:has([data-selected]):last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\[data-selection-end\]\)\]\:rounded-r-md:has([data-selected][data-selection-end]){border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\:has\(\[data-selected\]\[data-selection-start\]\)\]\:rounded-l-md:has([data-selected][data-selection-start]){border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden>svg{display:none}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2>svg,.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2>svg{width:.5rem;height:.5rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-today\]\:not\(\[data-selected\]\)\]\:bg-accent[data-today]:not([data-selected]){background-color:var(--accent)}.\[\&\[data-today\]\:not\(\[data-selected\]\)\]\:text-accent-foreground[data-today]:not([data-selected]){color:var(--accent-foreground)}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-3\.5 svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_td\]\:px-3 td{padding-left:.75rem;padding-right:.75rem}.\[\&_td\]\:px-4 td{padding-left:1rem;padding-right:1rem}.\[\&_th\]\:px-3 th{padding-left:.75rem;padding-right:.75rem}.\[\&_th\]\:px-4 th{padding-left:1rem;padding-right:1rem}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
@@ -0,0 +1 @@
1
+ import{$ as e,Ct as t,P as n,Q as r,Qt as i,R as a,St as o,U as s,X as c,Yt as l,at as u,bt as d,et as f,it as p,jt as m,n as h,nt as g,ot as _,qt as v,r as y,tt as b,vt as x,zt as S}from"./button-BBiWml8B.js";import{t as C}from"./image-zYdpUIEA.js";import{t as w}from"./plus-xmIDnujf.js";import{t as T}from"./trash-2-Dn3T5-Z1.js";import{n as E,t as D}from"./CollapsibleContent-pBG4UkLo.js";import{t as O}from"./Label-BQXea0mo.js";import{_ as k,g as A,h as j,m as M,v as N,yt as P}from"./index-DTujoAWx.js";import{t as F}from"./badge-Db4OYMEf.js";import{t as I}from"./Input-DMDfXTXB.js";var L=a(`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`}]]),R=a(`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`}]]),z=a(`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`}]]),B=[{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`}],V=[{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`}]}],H=[{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}],U=1e6,W=256e3,G=2e5,K=128e3,q=32e3,J=16e3,Y=8e3;function X(e){let t=e.toLowerCase();return t.includes(`v4`)||t.includes(`v3.2`)||t.includes(`r1`)||t.includes(`reasoner`)||t.includes(`qwen3.6`)||t.includes(`mimo-v2.5`)?U: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`)?W:t.includes(`glm-5`)||t.includes(`glm-4.7`)||t.includes(`minimax`)?G:t.includes(`128k`)?K:t.includes(`32k`)?q:t.includes(`16k`)?J:t.includes(`8k`)?Y:K}var ee={"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`]},te={class:`space-y-3`},Z={class:`mb-1.5 text-xs font-medium text-muted-foreground`},ne={class:`flex flex-wrap gap-1.5`},re=_({__name:`PatchChips`,props:{apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let{t:a}=s();function o(e){return e.replace(/-/g,`_`)}let u=t,_=n,b=r(()=>V.filter(e=>e.key===`deepseek_anthropic`?u.isDeepSeek&&u.apiType===`anthropic`:e.key===`deepseek_openai`?u.isDeepSeek&&u.apiType===`openai`:e.key===`general`?u.apiType===`openai`&&u.isNonOpenaiEndpoint:!0));function S(e){let t=o(e);_(`update:modelValue`,u.modelValue.includes(t)?u.modelValue.filter(e=>e!==t):[...u.modelValue,t])}function C(e){return u.modelValue.includes(o(e))}return(t,n)=>(x(),g(`div`,te,[(x(!0),g(c,null,d(b.value,t=>(x(),g(`div`,{key:t.key},[e(`p`,Z,i(v(a)(t.labelKey)),1),e(`div`,ne,[(x(!0),g(c,null,d(t.items,t=>(x(),f(v(h),{key:t.id,type:`button`,variant:`outline`,size:`sm`,"aria-pressed":C(t.id),title:v(a)(t.descKey),class:l(v(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(t.id)?`border-ring bg-primary/10 text-primary`:`border-border bg-transparent text-muted-foreground hover:border-muted-foreground hover:text-foreground`)),onClick:e=>S(t.id)},{default:m(()=>[e(`span`,{class:l(v(y)(`size-1.5 rounded-full transition-colors`,C(t.id)?`bg-primary`:`bg-border`))},null,2),p(` `+i(v(a)(t.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`},oe=[`title`],se={key:2,class:`flex items-center gap-0.5 shrink-0`},ce=[`title`,`onClick`],le={class:`text-[11px]`},ue={class:`pl-9 pr-3 py-2 border-t border-border space-y-2`},de={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},fe={key:0},pe={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground mb-1`},me={class:`flex items-center gap-1.5`},he={class:`text-[11px] text-muted-foreground`},Q=1e3,ge=_({__name:`ModelCard`,props:{model:{},apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},streamTimeoutMs:{},capabilities:{}},emits:[`update:model`,`remove`,`update:stream-timeout-ms`,`toggle-capability`],setup(a,{emit:h}){let _=n/Q,{t:w}=s(),O=a,P=h,B=S(!1),V=r(()=>H.find(e=>e.value===O.model.contextWindow)),U=r(()=>!!V.value);function W(e){let t=e;if(t===`__custom__`)return;let n=parseInt(t,10);isNaN(n)||P(`update:model`,{...O.model,contextWindow:n})}function G(e){let t=parseInt(e,10);!isNaN(t)&&t>0&&P(`update:model`,{...O.model,contextWindow:t})}function K(e){P(`update:model`,{...O.model,patches:e})}let q=r(()=>O.streamTimeoutMs!==void 0&&O.streamTimeoutMs!==null?Math.round(O.streamTimeoutMs/Q):_),J=r(()=>O.streamTimeoutMs===void 0),Y=[{key:`text`,icon:L,label:`text`},{key:`image`,icon:C,label:`image`},{key:`audio`,icon:z,label:`audio`},{key:`video`,icon:R,label:`video`}];function X(e){return e===`text`?!0:O.capabilities?.includes(e)??!1}return(n,r)=>{let s=o(`Button`);return x(),g(`div`,{class:l([`transition-colors group bg-card`,!a.model.enabled&&`opacity-40`])},[e(`div`,ie,[e(`div`,{class:l([`shrink-0 w-3.5 h-3.5 rounded-sm border-[1px] border-border flex items-center justify-center cursor-pointer transition-all`,a.model.enabled?`bg-primary border-primary`:`border-border hover:border-muted-foreground/50`]),onClick:r[0]||=e=>P(`update:model`,{...a.model,enabled:!a.model.enabled})},[a.model.enabled?(x(),g(`svg`,ae,[...r[6]||=[e(`path`,{d:`M18 6L9 17l-5-6`},null,-1)]])):b(``,!0)],2),e(`span`,{class:`truncate text-xs font-medium text-foreground min-w-[160px] max-w-[280px] font-mono`,title:a.model.name},i(a.model.name),9,oe),U.value?(x(),f(v(N),{key:0,"model-value":String(a.model.contextWindow),"onUpdate:modelValue":W},{default:m(()=>[u(v(j),{class:`h-6 w-16 text-[11px] font-mono px-1 gap-0 data-[size=default]:h-6`},{default:m(()=>[u(v(M),null,{default:m(()=>[p(i(V.value.label),1)]),_:1})]),_:1}),u(v(k),null,{default:m(()=>[(x(!0),g(c,null,d(v(H),e=>(x(),f(v(A),{key:e.value,value:String(e.value)},{default:m(()=>[p(i(e.label),1)]),_:2},1032,[`value`]))),128)),u(v(A),{value:`__custom__`},{default:m(()=>[p(i(v(w)(`quickSetup.model.contextCustom`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])):(x(),f(v(I),{key:1,"model-value":String(a.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":r[1]||=e=>G(e)},null,8,[`model-value`])),a.capabilities===void 0?b(``,!0):(x(),g(`div`,se,[(x(),g(c,null,d(Y,n=>e(`div`,{key:n.key,class:l([`w-5 h-5 rounded flex items-center justify-center border-[1px] transition-colors cursor-pointer`,v(y)(X(n.key)?`bg-primary/10 border-primary/30 text-primary`:`border-border text-muted-foreground/40 hover:text-muted-foreground`)]),title:n.label,onClick:e=>n.key!==`text`&&P(`toggle-capability`,n.key)},[(x(),f(t(n.icon),{class:`size-[11px]`}))],10,ce)),64))])),e(`div`,{class:l([`inline-flex items-center gap-1 h-[22px] px-2 border-[1px] border-border rounded cursor-pointer transition-colors shrink-0 select-none`,v(y)(a.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:r[2]||=e=>B.value=!B.value},[e(`span`,le,i(a.model.patches.length)+` `+i(v(w)(`quickSetup.patch.label`)),1),e(`span`,{class:l([`text-[8px] inline-block transition-transform`,B.value?`rotate-90`:``])},`▶`,2)],2),u(s,{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground hover:text-destructive`,onClick:r[3]||=e=>n.$emit(`remove`)},{default:m(()=>[u(v(T),{class:`size-3`})]),_:1})]),u(v(E),{open:B.value,"onUpdate:open":r[5]||=e=>B.value=e},{default:m(()=>[u(v(D),null,{default:m(()=>[e(`div`,ue,[e(`div`,null,[e(`div`,de,i(v(w)(`quickSetup.patch.sectionTitle`)),1),u(re,{"api-type":a.apiType,"is-deep-seek":a.isDeepSeek,"is-non-openai-endpoint":a.isNonOpenaiEndpoint,"model-value":a.model.patches,"onUpdate:modelValue":K},null,8,[`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`model-value`])]),a.streamTimeoutMs===void 0?b(``,!0):(x(),g(`div`,fe,[e(`div`,pe,i(v(w)(`quickSetup.patch.timeoutTitle`)),1),e(`div`,me,[u(v(I),{type:`number`,"model-value":q.value,"onUpdate:modelValue":r[4]||=e=>P(`update:stream-timeout-ms`,e?Number(e)*Q: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`]),e(`span`,he,i(v(w)(`quickSetup.patch.timeoutSeconds`)),1),J.value?(x(),f(v(F),{key:0,variant:`outline`,class:`text-[9px] px-1 py-0 h-4 font-normal text-muted-foreground`},{default:m(()=>[p(i(v(w)(`providers.fields.timeoutPlaceholder`)),1)]),_:1})):b(``,!0)])]))])]),_:1})]),_:1},8,[`open`])],2)}}}),_e={class:`space-y-2`},ve={class:`flex items-center justify-between`},ye={key:0,class:`flex items-center gap-1.5`},$={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=_({__name:`EndpointEditor`,props:{modelValue:{},sharedKey:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(t,{emit:n}){let{t:a}=s(),o=[`openai`,`openai-responses`,`anthropic`],_={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`},y={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=t,E=n,D=r(()=>C.modelValue.some(e=>e.api_key!==null&&e.api_key!==void 0&&e.api_key!==``)),k=S(!1),A=r(()=>k.value||D.value),j=r(()=>new Set(C.modelValue.map(e=>e.api_type)));function M(e){j.value.has(e)||E(`update:modelValue`,[...C.modelValue,{api_type:e,base_url:``,upstream_path:null,api_key:null}])}function N(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,r)=>(x(),g(`div`,_e,[e(`div`,ve,[u(v(O),{class:`text-xs text-muted-foreground`},{default:m(()=>[p(i(v(a)(`providers.endpoints.title`)),1)]),_:1}),t.readonly?b(``,!0):(x(),g(`div`,ye,[(x(),g(c,null,d(o,e=>u(v(h),{key:e,type:`button`,variant:`outline`,size:`sm`,class:l([`h-6 text-[10px] gap-0.5 px-2.5 border font-medium transition-colors`,j.value.has(e)?y[e]:_[e]]),disabled:j.value.has(e),onClick:t=>M(e)},{default:m(()=>[j.value.has(e)?(x(),f(v(P),{key:0,class:`w-3 h-3`})):(x(),f(v(w),{key:1,class:`w-3 h-3`})),p(` `+i(v(a)(`providers.endpoints.apiTypes.${e}`)),1)]),_:2},1032,[`class`,`disabled`,`onClick`])),64))]))]),t.readonly?b(``,!0):(x(),g(`div`,$,[u(v(h),{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:r[0]||=e=>k.value=!k.value},{default:m(()=>[p(i(A.value?v(a)(`providers.endpoints.hidePerEndpointKeys`):v(a)(`providers.endpoints.showPerEndpointKeys`)),1)]),_:1}),t.sharedKey&&!A.value?(x(),g(`span`,be,i(v(a)(`providers.endpoints.allUseSharedKey`)),1)):b(``,!0)])),(x(!0),g(c,null,d(t.modelValue,(n,o)=>(x(),g(`div`,{key:o,class:`rounded-md border bg-muted/30 p-2.5 space-y-2`},[e(`div`,xe,[u(v(F),{variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:m(()=>[p(i(v(a)(`providers.endpoints.apiTypes.${n.api_type}`)),1)]),_:2},1024),A.value?(x(),g(`div`,Se,[u(v(I),{"model-value":n.api_key??``,type:`password`,autocomplete:`new-password`,disabled:t.readonly,placeholder:t.sharedKey?v(a)(`providers.endpoints.useSharedKey`):v(a)(`providers.endpoints.apiKeyPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(o,`api_key`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])):n.api_key?(x(),g(`div`,Ce,i(v(a)(`providers.endpoints.customKeySet`)),1)):b(``,!0),t.readonly?b(``,!0):(x(),f(v(h),{key:2,type:`button`,variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0 shrink-0 text-muted-foreground hover:text-destructive`,disabled:t.modelValue.length<=1,onClick:e=>N(o)},{default:m(()=>[u(v(T),{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`,`onClick`]))]),e(`div`,we,[e(`div`,Te,[u(v(O),{class:`text-[10px] text-muted-foreground`},{default:m(()=>[...r[1]||=[p(`Base URL`,-1)]]),_:1}),u(v(I),{"model-value":n.base_url,type:`url`,required:``,disabled:t.readonly,placeholder:`https://api.example.com/v1`,class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(o,`base_url`,String(e))},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),e(`div`,Ee,[u(v(O),{class:`text-[10px] text-muted-foreground`},{default:m(()=>[p(i(v(a)(`providers.fields.upstreamPath`)),1)]),_:1}),u(v(I),{"model-value":n.upstream_path??``,disabled:t.readonly,placeholder:v(a)(`providers.fields.upstreamPathPlaceholder`),class:`h-6 text-xs font-mono`,"onUpdate:modelValue":e=>L(o,`upstream_path`,String(e)||null)},null,8,[`model-value`,`disabled`,`placeholder`,`onUpdate:modelValue`])])])]))),128)),e(`p`,De,i(v(a)(`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{ee as a,R as c,B as i,L as l,Oe as n,X as o,ge as r,z as s,ke as t};
@@ -1 +1 @@
1
- import{z as e}from"./button-DhbTyZqO.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{R as e}from"./button-BBiWml8B.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{R as e}from"./button-BBiWml8B.js";var t=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -0,0 +1 @@
1
+ var e=`Quick Setup`,t={selectClient:`Select Client`,claudeCode:`Claude Code`,claudeCodeDesc:`Official Anthropic CLI coding assistant`,codex:`Codex CLI`,codexDesc:`OpenAI`,pi:`Pi`,piDesc:`Universal coding Agent framework`,openaiSdk:`OpenAI SDK`,openaiSdkDesc:`Direct OpenAI API calls`,anthropicSdk:`Anthropic SDK`,anthropicSdkDesc:`Direct Anthropic API calls`,popular:`Popular`,infoBar:`{client} uses the {format}. We'll auto-map {models} to your provider models.`},n={connection:`Provider Connection`,config:`Provider Configuration`,label:`Provider`,groupLabel:`Provider`,endpoint:`Endpoint`,baseUrl:`Base URL`,upstreamPath:`Upstream Path`,select:`Select`,custom:`Custom`,customProvider:`Custom Provider`,format:`Format`,plan:`Plan`,apiKey:`API Key`,apiKeyPlaceholder:`Enter API Key`,connect:`Connect`,testing:`Testing`,connected:`Connected`,test:`Test`,autoConfigured:`Auto-configured based on your client`},r={config:`Model Configuration`,selectProviderFirst:`Please select a provider and plan first`,namePlaceholder:`Enter model name`,contextCustom:`Custom`,contextWindow:`Context Window`},i={deepseekAnthropic:`DeepSeek Compatible (Anthropic)`,thinkingConsistency:`Thinking Consistency`,thinkingConsistencyDesc:`Unified thinking param injection and missing block fill`,orphanToolResult:`Orphan Tool Result`,orphanToolResultDesc:`Clean up orphan tool_result`,deepseekOpenai:`DeepSeek Compatible (OpenAI)`,orphanToolResultOa:`Orphan Tool Result`,orphanToolResultOaDesc:`OpenAI format orphan handling`,general:`General Compatibility`,developerRole:`Developer Role`,developerRoleDesc:`Convert developer role to system`,label:`patches`,sectionTitle:`Patches`,timeoutTitle:`Timeout`,timeoutSeconds:`seconds`},a={control:`Concurrency Control`,optional:`Optional`},o={title:`Model Mappings`,count:`{count} items`},s={title:`Retry Rules`,selectedCount:`{count} selected`,allCreated:`All recommended rules have been created`,selectProviderFirst:`Select a provider to see recommended rules`,configured:`Configured`,general:`General`,fixed:`Fixed`,exponential:`Exponential`,times:`times`},c={title:`Transform Rules`,optional:`Optional`},l={models:`{count} models`,mappings:`{count} mappings`,rules:`{count} rules`,validate:`Validate`,validated:`Validated`,invalid:`Invalid`,saving:`Saving`,saveConfig:`Save Config`},u={selectProvider:`Please select a provider`,fillApiKey:`Please enter API Key`,enableOneModel:`Please enable at least one model`,validationPassed:`Configuration validated`,existingMappingDelete:`Existing mappings can only be deleted from the Model Mappings page`,fillApiKeyFirst:`Please enter API Key first`,injectHeadersJsonError:`Invalid inject headers JSON format`,requestDefaultsJsonError:`Invalid request defaults JSON format`,selectProviderAndPlan:`Please select a provider and plan`,setupCompleteWithErrors:`Quick setup complete! {count} mapping toggle(s) failed`,setupComplete:`Quick setup complete!`,setupFailed:`Quick setup failed`,loadFailed:`Failed to load recommended configuration`,connectionOk:`Connection test passed, AI responded normally`,connectionFailed:`Connection test failed`},d={selectClient:`Select Client`,configureProvider:`Configure Provider`,modelMappings:`Model Mappings`,retryRules:`Retry Rules`,optional:`Optional`},f={title:e,client:t,provider:n,model:r,patch:i,concurrency:a,mapping:o,retry:s,transform:c,footer:l,messages:u,steps:d};export{t as client,a as concurrency,f as default,l as footer,o as mapping,u as messages,r as model,i as patch,n as provider,s as retry,d as steps,e as title,c as transform};
@@ -0,0 +1 @@
1
+ var e=`快速配置`,t={selectClient:`选择客户端`,claudeCode:`Claude Code`,claudeCodeDesc:`Anthropic 官方 CLI 编程助手`,codex:`Codex CLI`,codexDesc:`OpenAI`,pi:`Pi`,piDesc:`通用编程 Agent 框架`,openaiSdk:`OpenAI SDK`,openaiSdkDesc:`OpenAI API 直接调用`,anthropicSdk:`Anthropic SDK`,anthropicSdkDesc:`Anthropic API 直接调用`,popular:`Popular`,infoBar:`{client} 使用 {format}。我们会自动映射 {models} 到你的供应商模型。`},n={connection:`供应商配置`,config:`供应商配置`,label:`供应商`,groupLabel:`供应商`,endpoint:`端点`,baseUrl:`Base URL`,upstreamPath:`Upstream Path`,select:`选择`,custom:`自定义`,customProvider:`自定义供应商`,format:`格式`,plan:`套餐`,apiKey:`API Key`,apiKeyPlaceholder:`输入 API Key`,connect:`连接`,testing:`测试中`,connected:`已连接`,test:`测试`,autoConfigured:`根据客户端自动配置`},r={config:`模型配置`,selectProviderFirst:`请先选择供应商与套餐`,namePlaceholder:`输入模型名称`,contextCustom:`自定义`,contextWindow:`上下文窗口`},i={deepseekAnthropic:`DeepSeek 兼容 (Anthropic)`,thinkingConsistency:`Thinking 一致性`,thinkingConsistencyDesc:`统一处理 thinking 参数注入和缺失补全`,orphanToolResult:`孤儿 Tool Result`,orphanToolResultDesc:`清理孤儿 tool_result`,deepseekOpenai:`DeepSeek 兼容 (OpenAI)`,orphanToolResultOa:`孤儿 Tool Result`,orphanToolResultOaDesc:`OpenAI 格式孤儿处理`,general:`通用兼容`,developerRole:`Developer Role`,developerRoleDesc:`developer role 转 system`,label:`补丁`,sectionTitle:`补丁`,timeoutTitle:`超时`,timeoutSeconds:`秒`},a={control:`并发控制`,optional:`可选`},o={title:`模型映射`,count:`{count} 条`},s={title:`重试规则`,selectedCount:`{count} 条已选`,allCreated:`所有推荐规则已创建,无需重复添加`,selectProviderFirst:`选择供应商后显示推荐规则`,configured:`已配置`,general:`通用`,fixed:`固定`,exponential:`指数退避`,times:`次`},c={title:`转换规则`,optional:`可选`},l={models:`{count} 模型`,mappings:`{count} 映射`,rules:`{count} 规则`,validate:`验证`,validated:`已验证`,invalid:`无效`,saving:`保存中`,saveConfig:`保存配置`},u={selectProvider:`请选择供应商`,fillApiKey:`请填写 API Key`,enableOneModel:`至少启用一个模型`,validationPassed:`配置验证通过`,existingMappingDelete:`已有映射请到"模型映射"页面删除`,fillApiKeyFirst:`请先填写 API Key`,injectHeadersJsonError:`注入 Headers JSON 格式错误`,requestDefaultsJsonError:`请求默认值 JSON 格式错误`,selectProviderAndPlan:`请选择供应商和套餐`,setupCompleteWithErrors:`快速配置完成!{count} 个映射状态切换失败`,setupComplete:`快速配置完成!`,setupFailed:`快速配置失败`,loadFailed:`加载推荐配置失败`,connectionOk:`连接测试成功,AI 已正常响应`,connectionFailed:`连接测试失败`},d={selectClient:`选择客户端`,configureProvider:`配置供应商`,modelMappings:`模型映射`,retryRules:`重试规则`,optional:`可选`},f={title:e,client:t,provider:n,model:r,patch:i,concurrency:a,mapping:o,retry:s,transform:c,footer:l,messages:u,steps:d};export{t as client,a as concurrency,f as default,l as footer,o as mapping,u as messages,r as model,i as patch,n as provider,s as retry,d as steps,e as title,c as transform};
@@ -0,0 +1 @@
1
+ import{R as e}from"./button-BBiWml8B.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{z as e}from"./button-DhbTyZqO.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{R as e}from"./button-BBiWml8B.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};
@@ -0,0 +1 @@
1
+ import{$ as e,Q as t,Qt as n,U as r,Yt as i,at as a,it as o,jt as s,nt as c,ot as l,qt as u,vt as d}from"./button-BBiWml8B.js";import{t as f}from"./Label-BQXea0mo.js";import{t as p}from"./Input-DMDfXTXB.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=l({__name:`TransformRulesForm`,props:{modelValue:{},compact:{type:Boolean}},emits:[`update:modelValue`],setup(l,{emit:m}){let h=l,_=m,{t:v}=r();function y(e){_(`update:modelValue`,{...h.modelValue,...e})}let b=t(()=>h.modelValue.injectHeaders??g.injectHeaders),x=t(()=>h.modelValue.dropFields??g.dropFields),S=t(()=>h.modelValue.requestDefaults??g.requestDefaults);return(t,r)=>(d(),c(`div`,{class:i(l.compact?`space-y-2`:`space-y-3`)},[e(`div`,null,[a(u(f),{class:`text-[11px] text-muted-foreground`},{default:s(()=>[o(n(u(v)(`providers.transform.injectHeaders`)),1)]),_:1}),a(u(p),{"model-value":b.value,placeholder:`{"x-custom": "value"}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[0]||=e=>y({injectHeaders:e})},null,8,[`model-value`])]),e(`div`,null,[a(u(f),{class:`text-[11px] text-muted-foreground`},{default:s(()=>[o(n(u(v)(`providers.transform.dropFields`)),1)]),_:1}),a(u(p),{"model-value":x.value,placeholder:`logprobs, frequency_penalty`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[1]||=e=>y({dropFields:e})},null,8,[`model-value`])]),e(`div`,null,[a(u(f),{class:`text-[11px] text-muted-foreground`},{default:s(()=>[o(n(u(v)(`providers.transform.requestDefaults`)),1)]),_:1}),a(u(p),{"model-value":S.value,placeholder:`{"max_tokens": 4096}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":r[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{z as e}from"./button-DhbTyZqO.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{R as e}from"./button-BBiWml8B.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{Bt as e}from"./button-DhbTyZqO.js";var t=2e3;function n(){let n=e(!1);async function i(e){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(e):r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{try{return r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{return!1}}}return{copied:n,copy:i}}function r(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 as t};
1
+ import{zt as e}from"./button-BBiWml8B.js";var t=2e3;function n(){let n=e(!1);async function i(e){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(e):r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{try{return r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{return!1}}}return{copied:n,copy:i}}function r(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 as t};
@@ -0,0 +1 @@
1
+ import{A as e,Q as t,U as n,j as r,zt as i}from"./button-BBiWml8B.js";import{a,at as o,tt as s}from"./index-DTujoAWx.js";var c=3,l=7;function u(){let{t:u}=n(),d=i(c),f=i(!1),p=i(l),m=i(!1),h=t(()=>p.value>d.value?u(`settings.retention.metricsExceedsLog`):``);async function g(){f.value=!0;try{d.value=(await e.setLogRetention(d.value)).days,a.success(u(`logs.retention.saved`))}catch(e){console.error(`logRetention.save:`,e),a.error(r(e,u(`logs.retention.updateFailed`)))}finally{f.value=!1}}async function _(){try{let{days:t}=await e.getLogRetention();d.value=t}catch(e){console.error(`logRetention.load:`,e),a.error(r(e,u(`logs.retention.loadFailed`)))}}async function v(){try{let{days:e}=await s();p.value=e}catch(e){console.error(`logRetention.loadMetricsDetail:`,e),a.error(r(e,u(`logs.retention.loadMetricsDetailFailed`)))}}async function y(){if(h.value){a.error(h.value);return}f.value=!0,m.value=!0;try{let[t,n]=await Promise.allSettled([e.setLogRetention(d.value),o(p.value)]);t.status===`fulfilled`&&(d.value=t.value.days),n.status===`fulfilled`&&(p.value=n.value.days);let i=[t,n].find(e=>e.status===`rejected`);if(i){a.error(r(i.reason,u(`logs.retention.updateFailed`)));return}a.success(u(`logs.retention.bothSaved`))}finally{f.value=!1,m.value=!1}}return{retentionDays:d,retentionSaving:f,saveRetention:g,loadRetention:_,metricsDetailDays:p,metricsDetailSaving:m,loadMetricsDetail:v,saveBoth:y,validationError:h}}export{u as t};
@@ -1 +1 @@
1
- import{N as e}from"./button-DhbTyZqO.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.nonStreamTimeoutMs=e.non_stream_timeout_ms??null),t})}))}export{t};
1
+ import{N as e}from"./button-BBiWml8B.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,9 +8,9 @@
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-BoaXEmuZ.js"></script>
12
- <link rel="modulepreload" crossorigin href="/admin/assets/button-DhbTyZqO.js">
13
- <link rel="stylesheet" crossorigin href="/admin/assets/index-Db9D0WPf.css">
11
+ <script type="module" crossorigin src="/admin/assets/index-DTujoAWx.js"></script>
12
+ <link rel="modulepreload" crossorigin href="/admin/assets/button-BBiWml8B.js">
13
+ <link rel="stylesheet" crossorigin href="/admin/assets/index-DyQ39g4W.css">
14
14
  </head>
15
15
  <body>
16
16
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-simple-router",
3
- "version": "1.1.2-beta.2",
3
+ "version": "1.1.2",
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{$t as e,Jt as t,Mt as n,St as r,et as i,n as a,ot as o,rt as s,st as c,tt as l,yt as u}from"./button-DhbTyZqO.js";import{dt as d,ft as f,r as p}from"./index-BoaXEmuZ.js";import{t as m}from"./Card-DHdWC9Sr.js";import{t as h}from"./CardContent-D3XiSLZZ.js";var g={class:`min-h-screen flex items-center justify-center bg-background relative`},_={class:`text-center mb-6`},v={class:`text-sm text-muted-foreground mt-1`},y=c({__name:`AuthLayout`,props:{subtitle:{}},setup(c){let{isDark:y,toggleTheme:b}=p();return(p,x)=>(u(),s(`div`,g,[o(t(a),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:t(b)},{default:n(()=>[t(y)?(u(),l(t(d),{key:1,class:`w-4 h-4`})):(u(),l(t(f),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),o(t(m),{class:`w-full max-w-sm shadow-lg`},{default:n(()=>[o(t(h),{class:`pt-6`},{default:n(()=>[i(`div`,_,[x[0]||=i(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[i(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[i(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])],-1),x[1]||=i(`h1`,{class:`text-xl font-semibold text-foreground`},` LLM Simple Router `,-1),i(`p`,v,e(c.subtitle),1)]),r(p.$slots,`default`)]),_:3})]),_:3})]))}});export{y as t};
@@ -1 +0,0 @@
1
- import{Jt as e,St as t,Xt as n,r,rt as i,st as a,yt as o}from"./button-DhbTyZqO.js";var s=[`data-size`,`data-flush`],c=a({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`},flush:{type:Boolean,default:!1}},setup(a){let c=a;return(l,u)=>(o(),i(`div`,{"data-slot":`card`,"data-size":a.size,"data-flush":a.flush||void 0,class:n(e(r)(`border-border bg-card text-card-foreground rounded-lg border text-sm group/card flex flex-col`,a.flush?`overflow-hidden`:`overflow-hidden gap-4 py-4 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg`,`data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0`,c.class))},[t(l.$slots,`default`)],10,s))}});export{c as t};
@@ -1 +0,0 @@
1
- import{Jt as e,St as t,Xt as n,r,rt as i,st as a,yt as o}from"./button-DhbTyZqO.js";var s=a({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(a){let s=a;return(a,c)=>(o(),i(`div`,{"data-slot":`card-content`,class:n(e(r)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[t(a.$slots,`default`)],2))}});export{s as t};
@@ -1 +0,0 @@
1
- import{Jt as e,St as t,Xt as n,r,rt as i,st as a,yt as o}from"./button-DhbTyZqO.js";var s=a({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(a){let s=a;return(a,c)=>(o(),i(`div`,{"data-slot":`card-header`,class:n(e(r)(`gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,s.class))},[t(a.$slots,`default`)],2))}}),c=a({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(a){let s=a;return(a,c)=>(o(),i(`div`,{"data-slot":`card-title`,class:n(e(r)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[t(a.$slots,`default`)],2))}});export{s as n,c as t};
@@ -1 +0,0 @@
1
- import{$ as e,$t as t,Bt as n,Jt as r,Mt as i,W as a,Xt as o,Z as s,et as c,nt as l,ot as u,rt as d,st as f,tt as p,xt as m,yt as h}from"./button-DhbTyZqO.js";import{t as g}from"./chevron-right-B1eJ5usR.js";import{b as _,vt as v,x as y,xt as b,y as x}from"./index-BoaXEmuZ.js";var S=[`onMouseenter`],C={class:`truncate max-w-40`},w={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},T=[`onMouseenter`],E=[`onClick`],D={class:`truncate`},O={key:0,class:`shrink-0 text-xs text-muted-foreground`},k={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},A=f({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(f,{emit:b}){let{t:A}=a(),j=f,M=e(()=>j.placeholder||A(`common.selectPlaceholder`)),N=b,P=n(!1),F=n(null),I=e(()=>{if(!j.modelValue)return``;let e=j.groups.find(e=>e.key===j.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===j.modelValue.value);return t?`${e.label} / ${t.label}`:``});function L(e,t){N(`update:modelValue`,{groupKey:e,value:t}),P.value=!1}function R(e){P.value=e,e||(F.value=null)}return(e,n)=>(h(),p(r(y),{open:P.value,"onUpdate:open":R},{default:i(()=>[u(r(x),{"as-child":``},{default:i(()=>[c(`div`,{class:o([`flex w-full items-center justify-between rounded-md bg-background ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[f.compact?`h-7 text-xs px-2 py-1 rounded-md`:`h-10 text-sm px-3 py-2 border border-border rounded-md`,!f.compact&&f.dashed?`border-dashed border-primary/20`:``,{"ring-2 ring-ring ring-offset-2":P.value}]])},[c(`span`,{class:o([`truncate`,f.modelValue?`text-foreground`:`text-muted-foreground`])},t(I.value||M.value),3),u(r(v),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),u(r(_),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 max-h-[80vh] overflow-y-auto p-1`},{default:i(()=>[(h(!0),d(s,null,m(f.groups,e=>(h(),d(`div`,{key:e.key,class:o([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":F.value===e.key}]),onMouseenter:t=>F.value=e.key},[c(`span`,C,t(e.label),1),e.badge?(h(),d(`span`,w,t(e.badge),1)):l(``,!0),u(r(g),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),F.value===e.key&&e.options.length>0?(h(),d(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 max-h-[80vh] overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:t=>F.value=e.key},[(h(!0),d(s,null,m(e.options,n=>(h(),d(`div`,{key:n.value,class:o([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":f.modelValue?.groupKey===e.key&&f.modelValue?.value===n.value}]),onClick:t=>L(e.key,n.value)},[c(`span`,D,t(n.label),1),n.tag?(h(),d(`span`,O,t(n.tag),1)):l(``,!0)],10,E))),128))],40,T)):l(``,!0)],42,S))),128)),f.groups.length===0?(h(),d(`div`,k,t(r(A)(`common.noOptions`)),1)):l(``,!0)]),_:1})]),_:1},8,[`open`]))}}),j=f({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(t,{emit:n}){let{t:r}=a(),i=t,o=e(()=>i.placeholder||r(`mappings.selectProviderModel`)),s=n,c=e(()=>i.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?r(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:b(e.contextWindow)}))}))),l=e(()=>i.modelValue?{groupKey:i.modelValue.provider_id,value:i.modelValue.model}:void 0);function u(e){s(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(e,n)=>(h(),p(A,{groups:c.value,"model-value":l.value,placeholder:o.value,compact:t.compact,dashed:t.dashed,"onUpdate:modelValue":u},null,8,[`groups`,`model-value`,`placeholder`,`compact`,`dashed`]))}});export{j as t};
@@ -1 +0,0 @@
1
- import{$ as e,Jt as t,Mt as n,S as r,St as i,X as a,Y as o,Zt as s,h as c,i as l,lt as u,mt as d,nt as f,o as p,ot as m,r as h,st as g,tt as _,wt as v,yt as y}from"./button-DhbTyZqO.js";import{t as b}from"./VisuallyHiddenInput-Dz0c537Q.js";import{t as x}from"./RovingFocusItem-BIoz-v9k.js";import{H as S,J as C,Q as w,W as T,X as E,yt as D,z as O}from"./index-BoaXEmuZ.js";function k(e,t){return C(e)?!1:Array.isArray(e)?e.some(e=>w(e,t)):w(e,t)}var[A,j]=E(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=E(`CheckboxRoot`),I=g({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(r,{emit:s}){let u=r,m=s,{forwardRef:h,currentElement:g}=p(),S=A(null),E=c(u,`modelValue`,m,{defaultValue:u.defaultValue??u.falseValue,passive:u.modelValue===void 0}),D=e(()=>S?.disabled.value||u.disabled),O=e(()=>w(E.value,u.trueValue)),j=e(()=>C(S?.modelValue.value)?E.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,u.value));function P(){if(C(S?.modelValue.value))E.value===`indeterminate`?E.value=u.trueValue:E.value=O.value?u.falseValue:u.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,u.value)){let t=e.findIndex(e=>w(e,u.value));e.splice(t,1)}else e.push(u.value);S.modelValue.value=e}}let I=T(g),L=e(()=>u.id&&g.value?document.querySelector(`[for="${u.id}"]`)?.innerText:void 0);return F({disabled:D,state:j}),(e,r)=>(y(),_(v(t(S)?.rovingFocus.value?t(x):t(l)),d(e.$attrs,{id:e.id,ref:t(h),role:`checkbox`,"as-child":e.asChild,as:e.as,type:e.as===`button`?`button`:void 0,"aria-checked":t(M)(j.value)?`mixed`:j.value,"aria-required":e.required,"aria-label":e.$attrs[`aria-label`]||L.value,"data-state":t(N)(j.value),"data-disabled":D.value?``:void 0,disabled:D.value,focusable:t(S)?.rovingFocus.value?!D.value:void 0,onKeydown:o(a(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:n(()=>[i(e.$slots,`default`,{modelValue:t(E),state:j.value}),t(I)&&e.name&&!t(S)?(y(),_(t(b),{key:0,type:`checkbox`,checked:!!j.value,name:e.name,value:e.value,disabled:D.value,required:e.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):f(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=g({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:r}=p(),a=P();return(e,o)=>(y(),_(t(O),{present:e.forceMount||t(M)(t(a).state.value)||t(a).state.value===!0},{default:n(()=>[m(t(l),d({ref:t(r),"data-state":t(N)(t(a).state.value),"data-disabled":t(a).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:n(()=>[i(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=g({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:a}){let o=e,c=a,l=S(r(o,`class`),c);return(e,r)=>(y(),_(t(I),d({"data-slot":`checkbox`},t(l),{class:t(h)(`border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-md border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,o.class)}),{default:n(r=>[m(t(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:n(()=>[i(e.$slots,`default`,s(u(r)),()=>[m(t(D))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
@@ -1 +0,0 @@
1
- import{$ as e,Bt as t,Gt as n,Jt as r,Mt as i,St as a,Zt as o,_t as s,f as c,h as l,ht as u,i as d,kt as f,lt as p,mt as m,nt as h,o as g,ot as _,st as v,tt as y,yt as b}from"./button-DhbTyZqO.js";import{H as x,V as S,X as C,z as w}from"./index-BoaXEmuZ.js";var[T,E]=C(`CollapsibleRoot`),D=v({__name:`CollapsibleRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:open`],setup(e,{expose:t,emit:o}){let s=e,c=l(s,`open`,o,{defaultValue:s.defaultOpen,passive:s.open===void 0}),{disabled:u,unmountOnHide:f}=n(s);return E({contentId:``,disabled:u,open:c,unmountOnHide:f,onOpenToggle:()=>{u.value||(c.value=!c.value)}}),t({open:c}),g(),(e,t)=>(b(),y(r(d),{as:e.as,"as-child":s.asChild,"data-state":r(c)?`open`:`closed`,"data-disabled":r(u)?``:void 0},{default:i(()=>[a(e.$slots,`default`,{open:r(c)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=v({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(n,{emit:o}){let l=n,p=o,v=T();v.contentId||=S(void 0,`reka-collapsible-content`);let x=t(),{forwardRef:C,currentElement:E}=g(),D=t(0),O=t(0),k=e(()=>v.open.value),A=t(k.value),j=t();f(()=>[k.value,x.value?.present],async()=>{await u();let e=E.value;if(!e)return;j.value=j.value||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();O.value=t.height,D.value=t.width,A.value||(e.style.transitionDuration=j.value.transitionDuration,e.style.animationName=j.value.animationName)},{immediate:!0});let M=e(()=>A.value&&v.open.value);return s(()=>{requestAnimationFrame(()=>{A.value=!1})}),c(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),p(`contentFound`)})}),(e,t)=>(b(),y(r(w),{ref_key:`presentRef`,ref:x,present:e.forceMount||r(v).open.value,"force-mount":!0},{default:i(({present:t})=>[_(r(d),m(e.$attrs,{id:r(v).contentId,ref:r(C),"as-child":l.asChild,as:e.as,hidden:t?void 0:r(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:r(v).open.value?`open`:`closed`,"data-disabled":r(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:i(()=>[!r(v).unmountOnHide.value||t?a(e.$slots,`default`,{key:0}):h(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=v({__name:`Collapsible`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(e,{emit:t}){let n=x(e,t);return(e,t)=>(b(),y(r(D),m({"data-slot":`collapsible`},r(n)),{default:i(t=>[a(e.$slots,`default`,o(p(t)))]),_:3},16))}}),A=v({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(b(),y(r(O),m({"data-slot":`collapsible-content`},t),{default:i(()=>[a(e.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
@@ -1 +0,0 @@
1
- import{Jt as e,Mt as t,St as n,i as r,mt as i,o as a,st as o,tt as s,yt as c}from"./button-DhbTyZqO.js";import{r as l}from"./CollapsibleContent-D5uuYzAy.js";var u=o({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(i){let o=i;a();let u=l();return(i,a)=>(c(),s(e(r),{type:i.as===`button`?`button`:void 0,as:i.as,"as-child":o.asChild,"aria-controls":e(u).contentId,"aria-expanded":e(u).open.value,"data-state":e(u).open.value?`open`:`closed`,"data-disabled":e(u).disabled?.value?``:void 0,disabled:e(u).disabled?.value,onClick:e(u).onOpenToggle},{default:t(()=>[n(i.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),d=o({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(r){let a=r;return(r,o)=>(c(),s(e(u),i({"data-slot":`collapsible-trigger`},a),{default:t(()=>[n(r.$slots,`default`)]),_:3},16))}});export{d as t};
@@ -1 +0,0 @@
1
- import{$ as e,$t as t,Bt as n,Jt as r,Mt as i,W as a,X as o,Xt as s,Y as c,Z as l,at as u,et as d,n as f,nt as p,ot as m,rt as h,st as g,tt as _,xt as v,yt as y,z as b}from"./button-DhbTyZqO.js";import{t as x}from"./plus-BVJPX-4z.js";import{t as S}from"./trash-2-DfV00PQC.js";import{t as C}from"./Label-muHpCvRx.js";import{t as ee}from"./Switch-BnSoCbqK.js";import{_ as w,ct as te,g as T,h as E,m as D,ut as ne,v as O,vt as re}from"./index-BoaXEmuZ.js";import{t as ie}from"./badge-qilWWy3M.js";import{t as k}from"./Input-DRF4ONbF.js";import{t as A}from"./CascadingModelSelect-uCR_78CB.js";import{r as j}from"./transform-domain-DczpyJVT.js";var M=b(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),N=b(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),ae=[`title`],oe={class:`flex items-center gap-1 min-w-0 flex-1 flex-wrap`},se={key:0,class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-primary/10 border border-border text-primary whitespace-nowrap`},P={key:0,class:`text-[10px] opacity-60`},F={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-muted/30 border border-border text-muted-foreground whitespace-nowrap`},I={class:`text-[10px] font-semibold`},L={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-primary/60 whitespace-nowrap`},R={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-blue-500/60 whitespace-nowrap`},z={class:`text-[10px] text-muted-foreground/30 hidden sm:inline shrink-0 whitespace-nowrap`},B={key:1,class:`space-y-2`},V={class:`flex items-center gap-2`},H={class:`text-[10px] text-muted-foreground/60 shrink-0 w-10 uppercase tracking-wider font-medium`},U={key:1,class:`flex-1 flex items-center gap-1.5`},W={class:`pt-0.5`},G={class:`flex items-center gap-1 mb-1`},K={class:`text-[10px] font-medium text-muted-foreground/70 uppercase tracking-wider`},ce={class:`flex items-center gap-2`},le={class:`flex-1`},ue={key:0,class:`flex items-center gap-1 pl-7 py-0.5`},de={class:`text-[9px] text-orange-400/50`},fe={class:`pt-2 mt-1 border-t border-dashed border-primary/15`},pe={class:`flex items-center gap-1.5 mb-1`},me={class:`text-[10px] font-medium text-primary/60 uppercase tracking-wider`},he={class:`text-[9px] text-primary/40 hidden sm:inline`},ge={key:0,class:`flex items-center gap-2`},_e={class:`flex-1`},ve={class:`pt-2 mt-1 border-t border-dashed border-blue-500/15`},ye={class:`flex items-center gap-1.5 mb-1`},be={class:`text-[10px] font-medium text-blue-500/60 uppercase tracking-wider`},xe={key:0,class:`flex items-center gap-2`},Se={class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-blue-500/6 text-blue-500/60`},Ce={class:`flex-1`},we={key:2,class:`mt-2 px-2.5 py-2 rounded border-[1px] border-orange-400/25 bg-orange-400/5 flex gap-2`},Te={class:`text-[10px] leading-relaxed space-y-0.5`},Ee={class:`text-orange-400 font-medium`},De={class:`text-muted-foreground/60`},Oe={class:`text-muted-foreground/40`},ke=6,q=g({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`,`update:multimodalFallback`,`toggle-active`,`remove`,`expand`],setup(g,{emit:b}){let{t:C}=a(),w=g,T=b,E=n(!1),D=n(``);function O(){w.editableClientModel&&(D.value=w.entry.clientModel,E.value=!0)}function j(){let e=D.value.trim();e&&e!==w.entry.clientModel&&T(`update:clientModel`,e),E.value=!1}function q(){E.value=!1}function J(e){return e===`__new__`?null:w.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,ke)}function Y(){let e=w.providerGroups[0];T(`update:targets`,[...w.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function Ae(e){w.entry.targets.length<=1||T(`update:targets`,w.entry.targets.filter((t,n)=>n!==e))}function je(e,t){let n=[...w.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},T(`update:targets`,n)}function Me(){let e=w.providerGroups[0];T(`update:targets`,w.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function X(e){T(`update:targets`,w.entry.targets.map((t,n)=>{if(n===0){if(e)return{...t,overflow_provider_id:e.provider_id,overflow_model:e.model};let{overflow_provider_id:n,overflow_model:r,...i}=t;return i}return t}))}function Z(){let e=w.providerGroups[0];T(`update:multimodalFallback`,{provider_id:e?.provider.id??``,backend_model:``})}function Ne(e){T(`update:multimodalFallback`,{provider_id:e.provider_id,backend_model:e.model})}function Pe(){T(`update:multimodalFallback`,void 0)}let Fe=e(()=>{switch(w.entry.tag){case`def`:return`bg-primary/15 text-primary`;case`auto`:return`bg-green-500/15 text-green-500`;case`cust`:return`bg-blue-500/15 text-blue-500`;case`existing`:return`bg-muted/40 text-muted-foreground`;default:return`bg-muted/40 text-muted-foreground`}}),Ie=e(()=>{switch(w.entry.tag){case`def`:return C(`providers.shared.tagDefault`);case`auto`:return C(`providers.shared.tagAuto`);case`cust`:return C(`providers.shared.tagCustom`);case`existing`:return C(`providers.shared.tagExisting`);default:return``}}),Q=e(()=>!!w.entry.targets[0]?.overflow_model),$=e(()=>!!w.entry.multimodalFallback?.backend_model);return(e,n)=>(y(),h(`div`,null,[g.expanded?(y(),h(`div`,B,[d(`div`,V,[d(`span`,H,t(r(C)(`mappings.editor.clientLabel`)),1),E.value?(y(),h(`div`,{key:0,class:`flex-1 flex items-center gap-1`,onClick:n[5]||=o(()=>{},[`stop`])},[m(r(k),{modelValue:D.value,"onUpdate:modelValue":n[4]||=e=>D.value=e,class:`h-7 flex-1 text-xs font-mono border-[1px] border-border`,placeholder:r(C)(`mappings.editor.clientInputPlaceholder`),onKeydown:[c(o(j,[`prevent`]),[`enter`]),c(o(q,[`prevent`]),[`escape`])],onBlur:j,autofocus:``},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):(y(),h(`div`,U,[d(`span`,{class:s([`font-mono text-xs font-semibold text-foreground`,{"cursor-pointer hover:text-primary transition-colors":g.editableClientModel}]),onClick:O},t(g.entry.clientModel),3),g.editableClientModel?(y(),_(r(f),{key:0,variant:`ghost`,size:`xs`,class:`text-[10px] text-muted-foreground/40`,onClick:o(O,[`stop`])},{default:i(()=>[u(t(r(C)(`mappings.editor.edit`)),1)]),_:1})):p(``,!0)]))]),d(`div`,W,[d(`div`,G,[m(r(te),{class:`size-3 text-muted-foreground/50`}),d(`span`,K,t(r(C)(`mappings.editor.failoverChain`)),1)]),(y(!0),h(l,null,v(g.entry.targets,(e,a)=>(y(),h(`div`,{key:a,class:`space-y-0`},[d(`div`,ce,[d(`span`,{class:s([`text-xs font-medium shrink-0 w-5 text-center px-0.5 py-0.5 rounded`,a===0?`bg-primary/10 text-primary`:`bg-muted/40 text-muted-foreground`])},t(a===0?`①`:a===1?`②`:a===2?`③`:`${a+1}`),3),d(`div`,le,[m(A,{providers:g.providerGroups,"model-value":{provider_id:e.provider_id,model:e.backend_model},compact:``,placeholder:r(C)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>je(a,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),a>0&&g.entry.targets.length>1?(y(),_(r(f),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>Ae(a)},{default:i(()=>[m(r(S),{class:`size-3`})]),_:1},8,[`onClick`])):p(``,!0)]),a<g.entry.targets.length-1?(y(),h(`div`,ue,[n[13]||=d(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),d(`span`,de,t(r(C)(`mappings.editor.failoverOnError`)),1)])):p(``,!0)]))),128)),m(r(f),{variant:`ghost`,class:`flex items-center justify-center gap-1 w-full py-1 mt-0.5 text-xs text-muted-foreground/40 border-[1px] border-dashed border-border rounded hover:text-primary hover:border-primary/40`,onClick:Y},{default:i(()=>[m(r(x),{class:`size-3`}),u(` `+t(r(C)(`mappings.addBackup`)),1)]),_:1})]),d(`div`,fe,[d(`div`,pe,[m(r(re),{class:`size-3 text-primary/50`}),d(`span`,me,t(r(C)(`mappings.editor.contextOverflow`)),1),d(`span`,he,t(r(C)(`mappings.editor.contextOverflowHint`)),1)]),Q.value?(y(),h(`div`,ge,[n[14]||=d(`span`,{class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-primary/6 text-primary/60`},`↓`,-1),d(`div`,_e,[m(A,{providers:g.providerGroups,"model-value":g.entry.targets[0]?.overflow_provider_id&&g.entry.targets[0]?.overflow_model?{provider_id:g.entry.targets[0].overflow_provider_id,model:g.entry.targets[0].overflow_model}:void 0,compact:``,dashed:``,placeholder:r(C)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":n[6]||=e=>X(e)},null,8,[`providers`,`model-value`,`placeholder`])]),m(r(f),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:n[7]||=e=>X(void 0)},{default:i(()=>[m(r(S),{class:`size-3`})]),_:1})])):(y(),_(r(f),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Me},{default:i(()=>[m(r(x),{class:`size-3`}),u(` `+t(r(C)(`providers.shared.addOverflow`)),1)]),_:1}))]),d(`div`,ve,[d(`div`,ye,[m(r(N),{class:`size-3 text-blue-500/50`}),d(`span`,be,t(r(C)(`mappings.editor.multimodalFallback`)),1),$.value?(y(),_(r(ie),{key:0,variant:`outline`,class:`text-[9px] px-1.5 py-0 leading-none text-primary/60 border-[1px] border-primary/20`},{default:i(()=>[u(t(r(C)(`mappings.multimodalFallback.configured`)),1)]),_:1})):p(``,!0)]),$.value?(y(),h(`div`,xe,[d(`span`,Se,[m(r(N),{class:`size-2.5`})]),d(`div`,Ce,[m(A,{providers:g.providerGroups,"model-value":{provider_id:g.entry.multimodalFallback.provider_id,model:g.entry.multimodalFallback.backend_model},compact:``,dashed:``,placeholder:r(C)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[8]||=e=>Ne(e)},null,8,[`providers`,`model-value`,`placeholder`])]),m(r(f),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:Pe},{default:i(()=>[m(r(S),{class:`size-3`})]),_:1})])):(y(),_(r(f),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Z},{default:i(()=>[m(r(x),{class:`size-3`}),u(` `+t(r(C)(`mappings.multimodalFallback.add`)),1)]),_:1})),$.value?(y(),h(`div`,we,[m(r(ne),{class:`size-3.5 text-orange-400 shrink-0 mt-0.5`}),d(`div`,Te,[d(`div`,Ee,t(r(C)(`mappings.multimodalFallback.sessionLockWarning`)),1),d(`div`,De,t(r(C)(`mappings.multimodalFallback.sessionLockReason`)),1),d(`div`,Oe,t(r(C)(`mappings.multimodalFallback.costSuggestion`)),1)])])):p(``,!0)])])):(y(),h(`div`,{key:0,class:`flex items-center gap-2 cursor-pointer select-none min-h-[28px]`,onClick:n[3]||=e=>T(`expand`)},[d(`span`,{class:`font-mono text-xs font-semibold text-foreground min-w-[90px] truncate shrink-0`,title:g.entry.clientModel},t(g.entry.clientModel),9,ae),m(r(M),{class:`size-3 text-muted-foreground/30 shrink-0`}),d(`div`,oe,[g.entry.targets.length>0?(y(),h(`span`,se,[n[9]||=d(`span`,{class:`text-[10px] font-semibold`},`①`,-1),u(` `+t(g.entry.targets[0].backend_model)+` `,1),J(g.entry.targets[0].provider_id)?(y(),h(`span`,P,t(J(g.entry.targets[0].provider_id)),1)):p(``,!0)])):p(``,!0),(y(!0),h(l,null,v(g.entry.targets.slice(1),(e,r)=>(y(),h(l,{key:`fo-`+r},[n[10]||=d(`span`,{class:`text-orange-400/40 text-xs shrink-0`},`|`,-1),d(`span`,F,[d(`span`,I,t(r===0?`②`:r===1?`③`:`${r+2}`),1),u(` `+t(e.backend_model),1)])],64))),128)),Q.value?(y(),h(l,{key:1},[n[11]||=d(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),d(`span`,L,` ↓ `+t(g.entry.targets[0].overflow_model),1)],64)):p(``,!0),$.value?(y(),h(l,{key:2},[n[12]||=d(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),d(`span`,R,[m(r(N),{class:`size-2.5`}),u(` `+t(g.entry.multimodalFallback.backend_model),1)])],64)):p(``,!0)]),d(`span`,{class:s([`text-[10px] px-1.5 py-px rounded font-medium leading-none shrink-0`,Fe.value])},t(Ie.value),3),d(`div`,{class:`shrink-0 flex items-center`,onClick:n[1]||=o(()=>{},[`stop`])},[m(r(ee),{"model-value":g.entry.active,"onUpdate:modelValue":n[0]||=e=>T(`toggle-active`),class:`scale-75`},null,8,[`model-value`])]),m(r(f),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/20 hover:text-destructive`,onClick:n[2]||=o(e=>T(`remove`),[`stop`])},{default:i(()=>[m(r(S),{class:`size-3`})]),_:1}),d(`span`,z,t(r(C)(`mappings.editor.clickToEdit`)),1)]))]))}}),J={key:1,class:`text-[10px] text-muted-foreground leading-snug`},Y=g({__name:`ConcurrencyControl`,props:{modelValue:{},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(n,{emit:o}){let{t:c}=a(),f=n,g=o;function _(e){g(`update:modelValue`,{...f.modelValue,...e})}let v=e(()=>f.modelValue.mode??j.mode),b=e(()=>f.modelValue.max_concurrency??j.max_concurrency),x=e(()=>f.modelValue.queue_timeout_ms??j.queue_timeout_ms),S=e(()=>f.modelValue.max_queue_size??j.max_queue_size);return(e,a)=>(y(),h(`div`,{class:s(n.compact?`space-y-2`:`flex items-end gap-2 flex-wrap`)},[d(`div`,{class:s([n.compact?``:`w-36`,`space-y-1`])},[m(r(C),{class:`text-xs text-muted-foreground`},{default:i(()=>[u(t(r(c)(`providers.concurrency.mode`)),1)]),_:1}),m(r(O),{"model-value":v.value,"onUpdate:modelValue":a[0]||=e=>_({mode:e})},{default:i(()=>[m(r(E),{class:`w-full text-xs data-[size=default]:h-7`},{default:i(()=>[m(r(D))]),_:1}),m(r(w),null,{default:i(()=>[m(r(T),{value:`auto`},{default:i(()=>[u(t(r(c)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),m(r(T),{value:`manual`},{default:i(()=>[u(t(r(c)(`providers.concurrency.manual`)),1)]),_:1}),m(r(T),{value:`none`},{default:i(()=>[u(t(r(c)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])],2),v.value===`none`?p(``,!0):(y(),h(l,{key:0},[d(`div`,{class:s([n.compact?``:`w-24`,`space-y-1`])},[m(r(C),{class:`text-xs text-muted-foreground`},{default:i(()=>[u(t(r(c)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),m(r(k),{"model-value":b.value,type:`number`,min:`1`,max:`100`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[1]||=e=>_({max_concurrency:Number(e)})},null,8,[`model-value`])],2),d(`div`,{class:s([n.compact?``:`w-30`,`space-y-1`])},[m(r(C),{class:`text-xs text-muted-foreground`},{default:i(()=>[u(t(r(c)(`providers.concurrency.queueTimeout`)),1)]),_:1}),m(r(k),{"model-value":x.value,type:`number`,min:`0`,placeholder:r(c)(`providers.shared.queueTimeoutPlaceholder`),class:`font-mono text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[2]||=e=>_({queue_timeout_ms:Number(e)})},null,8,[`model-value`,`placeholder`])],2),d(`div`,{class:s([n.compact?``:`w-30`,`space-y-1`])},[m(r(C),{class:`text-xs text-muted-foreground`},{default:i(()=>[u(t(r(c)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),m(r(k),{"model-value":S.value,type:`number`,min:`1`,max:`1000`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[3]||=e=>_({max_queue_size:Number(e)})},null,8,[`model-value`])],2)],64)),v.value===`auto`&&!n.compact?(y(),h(`div`,J,t(r(c)(`providers.shared.autoHint`)),1)):p(``,!0)],2))}});export{M as i,q as n,N as r,Y as t};