aigetwey 1.4.7 → 1.4.8

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 (179) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +46 -25
  3. package/dashboard/.next/standalone/.next/BUILD_ID +1 -1
  4. package/dashboard/.next/standalone/.next/build-manifest.json +3 -3
  5. package/dashboard/.next/standalone/.next/server/app/(console)/combos/page.js.nft.json +1 -1
  6. package/dashboard/.next/standalone/.next/server/app/(console)/combos/page_client-reference-manifest.js +1 -1
  7. package/dashboard/.next/standalone/.next/server/app/(console)/config/page.js.nft.json +1 -1
  8. package/dashboard/.next/standalone/.next/server/app/(console)/config/page_client-reference-manifest.js +1 -1
  9. package/dashboard/.next/standalone/.next/server/app/(console)/console/page.js.nft.json +1 -1
  10. package/dashboard/.next/standalone/.next/server/app/(console)/console/page_client-reference-manifest.js +1 -1
  11. package/dashboard/.next/standalone/.next/server/app/(console)/endpoint/page.js.nft.json +1 -1
  12. package/dashboard/.next/standalone/.next/server/app/(console)/endpoint/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/standalone/.next/server/app/(console)/keys/page.js.nft.json +1 -1
  14. package/dashboard/.next/standalone/.next/server/app/(console)/keys/page_client-reference-manifest.js +1 -1
  15. package/dashboard/.next/standalone/.next/server/app/(console)/page.js.nft.json +1 -1
  16. package/dashboard/.next/standalone/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
  17. package/dashboard/.next/standalone/.next/server/app/(console)/providers/[id]/page.js.nft.json +1 -1
  18. package/dashboard/.next/standalone/.next/server/app/(console)/providers/[id]/page_client-reference-manifest.js +1 -1
  19. package/dashboard/.next/standalone/.next/server/app/(console)/providers/page.js.nft.json +1 -1
  20. package/dashboard/.next/standalone/.next/server/app/(console)/providers/page_client-reference-manifest.js +1 -1
  21. package/dashboard/.next/standalone/.next/server/app/(console)/quota/page.js.nft.json +1 -1
  22. package/dashboard/.next/standalone/.next/server/app/(console)/quota/page_client-reference-manifest.js +1 -1
  23. package/dashboard/.next/standalone/.next/server/app/(console)/tools/[id]/page.js.nft.json +1 -1
  24. package/dashboard/.next/standalone/.next/server/app/(console)/tools/[id]/page_client-reference-manifest.js +1 -1
  25. package/dashboard/.next/standalone/.next/server/app/(console)/tools/page.js.nft.json +1 -1
  26. package/dashboard/.next/standalone/.next/server/app/(console)/tools/page_client-reference-manifest.js +1 -1
  27. package/dashboard/.next/standalone/.next/server/app/(console)/usage/page.js.nft.json +1 -1
  28. package/dashboard/.next/standalone/.next/server/app/(console)/usage/page_client-reference-manifest.js +1 -1
  29. package/dashboard/.next/standalone/.next/server/app/_global-error.html +1 -1
  30. package/dashboard/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  31. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  32. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  33. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  34. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  35. package/dashboard/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/dashboard/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  37. package/dashboard/.next/standalone/.next/server/app/_not-found.html +1 -1
  38. package/dashboard/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  39. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  40. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  41. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  42. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  43. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  44. package/dashboard/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  45. package/dashboard/.next/standalone/.next/server/app/combos.html +1 -1
  46. package/dashboard/.next/standalone/.next/server/app/combos.rsc +5 -5
  47. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos/__PAGE__.segment.rsc +2 -2
  48. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos.segment.rsc +1 -1
  49. package/dashboard/.next/standalone/.next/server/app/combos.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  50. package/dashboard/.next/standalone/.next/server/app/combos.segments/_full.segment.rsc +5 -5
  51. package/dashboard/.next/standalone/.next/server/app/combos.segments/_head.segment.rsc +1 -1
  52. package/dashboard/.next/standalone/.next/server/app/combos.segments/_index.segment.rsc +2 -2
  53. package/dashboard/.next/standalone/.next/server/app/combos.segments/_tree.segment.rsc +2 -2
  54. package/dashboard/.next/standalone/.next/server/app/config.html +1 -1
  55. package/dashboard/.next/standalone/.next/server/app/config.rsc +5 -5
  56. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp/config/__PAGE__.segment.rsc +2 -2
  57. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp/config.segment.rsc +1 -1
  58. package/dashboard/.next/standalone/.next/server/app/config.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  59. package/dashboard/.next/standalone/.next/server/app/config.segments/_full.segment.rsc +5 -5
  60. package/dashboard/.next/standalone/.next/server/app/config.segments/_head.segment.rsc +1 -1
  61. package/dashboard/.next/standalone/.next/server/app/config.segments/_index.segment.rsc +2 -2
  62. package/dashboard/.next/standalone/.next/server/app/config.segments/_tree.segment.rsc +2 -2
  63. package/dashboard/.next/standalone/.next/server/app/console.html +1 -1
  64. package/dashboard/.next/standalone/.next/server/app/console.rsc +5 -5
  65. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp/console/__PAGE__.segment.rsc +2 -2
  66. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp/console.segment.rsc +1 -1
  67. package/dashboard/.next/standalone/.next/server/app/console.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  68. package/dashboard/.next/standalone/.next/server/app/console.segments/_full.segment.rsc +5 -5
  69. package/dashboard/.next/standalone/.next/server/app/console.segments/_head.segment.rsc +1 -1
  70. package/dashboard/.next/standalone/.next/server/app/console.segments/_index.segment.rsc +2 -2
  71. package/dashboard/.next/standalone/.next/server/app/console.segments/_tree.segment.rsc +2 -2
  72. package/dashboard/.next/standalone/.next/server/app/endpoint.html +1 -1
  73. package/dashboard/.next/standalone/.next/server/app/endpoint.rsc +5 -5
  74. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint/__PAGE__.segment.rsc +2 -2
  75. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint.segment.rsc +1 -1
  76. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  77. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_full.segment.rsc +5 -5
  78. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_head.segment.rsc +1 -1
  79. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_index.segment.rsc +2 -2
  80. package/dashboard/.next/standalone/.next/server/app/endpoint.segments/_tree.segment.rsc +2 -2
  81. package/dashboard/.next/standalone/.next/server/app/index.html +1 -1
  82. package/dashboard/.next/standalone/.next/server/app/index.rsc +5 -5
  83. package/dashboard/.next/standalone/.next/server/app/index.segments/!KGNvbnNvbGUp/__PAGE__.segment.rsc +2 -2
  84. package/dashboard/.next/standalone/.next/server/app/index.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  85. package/dashboard/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  86. package/dashboard/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  87. package/dashboard/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  88. package/dashboard/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  89. package/dashboard/.next/standalone/.next/server/app/keys.html +1 -1
  90. package/dashboard/.next/standalone/.next/server/app/keys.rsc +5 -5
  91. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys/__PAGE__.segment.rsc +2 -2
  92. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys.segment.rsc +1 -1
  93. package/dashboard/.next/standalone/.next/server/app/keys.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  94. package/dashboard/.next/standalone/.next/server/app/keys.segments/_full.segment.rsc +5 -5
  95. package/dashboard/.next/standalone/.next/server/app/keys.segments/_head.segment.rsc +1 -1
  96. package/dashboard/.next/standalone/.next/server/app/keys.segments/_index.segment.rsc +2 -2
  97. package/dashboard/.next/standalone/.next/server/app/keys.segments/_tree.segment.rsc +2 -2
  98. package/dashboard/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  99. package/dashboard/.next/standalone/.next/server/app/login.html +1 -1
  100. package/dashboard/.next/standalone/.next/server/app/login.rsc +3 -3
  101. package/dashboard/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +3 -3
  102. package/dashboard/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  103. package/dashboard/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  104. package/dashboard/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  105. package/dashboard/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  106. package/dashboard/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  107. package/dashboard/.next/standalone/.next/server/app/providers.html +1 -1
  108. package/dashboard/.next/standalone/.next/server/app/providers.rsc +5 -5
  109. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers/__PAGE__.segment.rsc +2 -2
  110. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers.segment.rsc +1 -1
  111. package/dashboard/.next/standalone/.next/server/app/providers.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  112. package/dashboard/.next/standalone/.next/server/app/providers.segments/_full.segment.rsc +5 -5
  113. package/dashboard/.next/standalone/.next/server/app/providers.segments/_head.segment.rsc +1 -1
  114. package/dashboard/.next/standalone/.next/server/app/providers.segments/_index.segment.rsc +2 -2
  115. package/dashboard/.next/standalone/.next/server/app/providers.segments/_tree.segment.rsc +2 -2
  116. package/dashboard/.next/standalone/.next/server/app/quota.html +1 -1
  117. package/dashboard/.next/standalone/.next/server/app/quota.rsc +5 -5
  118. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota/__PAGE__.segment.rsc +2 -2
  119. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota.segment.rsc +1 -1
  120. package/dashboard/.next/standalone/.next/server/app/quota.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  121. package/dashboard/.next/standalone/.next/server/app/quota.segments/_full.segment.rsc +5 -5
  122. package/dashboard/.next/standalone/.next/server/app/quota.segments/_head.segment.rsc +1 -1
  123. package/dashboard/.next/standalone/.next/server/app/quota.segments/_index.segment.rsc +2 -2
  124. package/dashboard/.next/standalone/.next/server/app/quota.segments/_tree.segment.rsc +2 -2
  125. package/dashboard/.next/standalone/.next/server/app/tools.html +1 -1
  126. package/dashboard/.next/standalone/.next/server/app/tools.rsc +5 -5
  127. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools/__PAGE__.segment.rsc +2 -2
  128. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools.segment.rsc +1 -1
  129. package/dashboard/.next/standalone/.next/server/app/tools.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
  130. package/dashboard/.next/standalone/.next/server/app/tools.segments/_full.segment.rsc +5 -5
  131. package/dashboard/.next/standalone/.next/server/app/tools.segments/_head.segment.rsc +1 -1
  132. package/dashboard/.next/standalone/.next/server/app/tools.segments/_index.segment.rsc +2 -2
  133. package/dashboard/.next/standalone/.next/server/app/tools.segments/_tree.segment.rsc +2 -2
  134. package/dashboard/.next/standalone/.next/server/chunks/[root-of-the-server]__0das32e._.js +1 -1
  135. package/dashboard/.next/standalone/.next/server/chunks/ssr/_0g1n0z2._.js +1 -1
  136. package/dashboard/.next/standalone/.next/server/chunks/ssr/_1jt-_lv._.js +3 -0
  137. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_13mfqac._.js +1 -1
  138. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_0dgasfb._.js +1 -1
  139. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_1z4akp5._.js +1 -1
  140. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js +1 -1
  141. package/dashboard/.next/standalone/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js +1 -1
  142. package/dashboard/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  143. package/dashboard/.next/standalone/.next/server/pages/404.html +1 -1
  144. package/dashboard/.next/standalone/.next/server/pages/500.html +1 -1
  145. package/dashboard/.next/standalone/.next/static/chunks/{1o3ruivohs5gd.js → 0a2dpmmnxcati.js} +1 -1
  146. package/dashboard/.next/standalone/.next/static/chunks/{0zdns9uijk264.js → 0v6gyc7bvg8qn.js} +1 -1
  147. package/dashboard/.next/standalone/.next/static/chunks/0x7oom3qi0g1v.js +1 -0
  148. package/dashboard/.next/standalone/.next/static/chunks/{16g5ijkdzzgmk.js → 1b8cxegje1-0s.js} +1 -1
  149. package/dashboard/.next/standalone/.next/static/chunks/1gz48b5ucrqx3.css +3 -0
  150. package/dashboard/.next/standalone/.next/static/chunks/28vuqx9hjn8z7.js +1 -0
  151. package/dashboard/.next/standalone/.next/static/chunks/2ppfeqv-8bdjp.js +1 -0
  152. package/dashboard/.next/standalone/.next/static/chunks/{29u15x0h3zg8t.js → 3cwf_8nn90yl2.js} +1 -1
  153. package/dist/cli/tray/trayWin.js +67 -0
  154. package/dist/cli/tray/trayWin.js.map +1 -0
  155. package/dist/config.js +38 -4
  156. package/dist/config.js.map +1 -1
  157. package/dist/core/embeddings.js +156 -0
  158. package/dist/core/embeddings.js.map +1 -0
  159. package/dist/providers/capabilities.js +1 -1
  160. package/dist/providers/capabilities.js.map +1 -1
  161. package/dist/routes/admin.js +28 -1
  162. package/dist/routes/admin.js.map +1 -1
  163. package/dist/routes/v1.js +54 -0
  164. package/dist/routes/v1.js.map +1 -1
  165. package/package.json +1 -1
  166. package/src/cli/tray/trayWin.ts +85 -0
  167. package/src/config.ts +51 -5
  168. package/src/core/embeddings.ts +194 -0
  169. package/src/providers/capabilities.ts +1 -1
  170. package/src/routes/admin.ts +32 -0
  171. package/src/routes/v1.ts +45 -0
  172. package/dashboard/.next/standalone/.next/server/chunks/ssr/_0p90gyy._.js +0 -3
  173. package/dashboard/.next/standalone/.next/static/chunks/08-n5lb85_j1a.css +0 -3
  174. package/dashboard/.next/standalone/.next/static/chunks/0anfgqf1k-eo4.js +0 -1
  175. package/dashboard/.next/standalone/.next/static/chunks/0qzv-tyyzo7kl.js +0 -1
  176. package/dashboard/.next/standalone/.next/static/chunks/3mauivz8vrva9.js +0 -1
  177. /package/dashboard/.next/standalone/.next/static/{SYmUHnzWs5TL-n0AY-k0m → 4LgzWtISJ5Fy5C7TcKCJm}/_buildManifest.js +0 -0
  178. /package/dashboard/.next/standalone/.next/static/{SYmUHnzWs5TL-n0AY-k0m → 4LgzWtISJ5Fy5C7TcKCJm}/_clientMiddlewareManifest.js +0 -0
  179. /package/dashboard/.next/standalone/.next/static/{SYmUHnzWs5TL-n0AY-k0m → 4LgzWtISJ5Fy5C7TcKCJm}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49080,e=>{"use strict";var t=e.i(43476);e.s(["Lamp",0,function({state:e,title:n}){return(0,t.jsx)("span",{className:`lamp lamp-${e}`,title:n,"aria-label":e})}])},38286,e=>{"use strict";var t=e.i(43476);e.s(["Empty",0,function({children:e}){return(0,t.jsx)("div",{className:"px-1 py-8 text-center text-[13px] text-text-muted",children:e})},"Stat",0,function({label:e,value:n,sub:a}){return(0,t.jsxs)("div",{className:"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft",children:[(0,t.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:e}),(0,t.jsx)("div",{className:"mt-1 tnum text-[22px] font-semibold tracking-tight text-text",children:n}),a&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:a})]})},"fmt",0,{int:e=>e.toLocaleString("en-US"),compact:e=>Math.abs(e)>=1e6?`${(e/1e6).toFixed(1)}M`:Math.abs(e)>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e)),cost:e=>0===e?"$0":e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`,time:e=>new Date(e).toLocaleString("en-US",{hour12:!1}),date(e){let t=new Date(e);return`${String(t.getDate()).padStart(2,"0")}/${String(t.getMonth()+1).padStart(2,"0")}/${t.getFullYear()}`},ago(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`},duration(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m ${t%60}s`;let n=Math.floor(t/3600),a=Math.floor(t%3600/60);if(n<24)return`${n}h ${a}m`;let i=Math.floor(n/24);return`${i}d ${n%24}h`}}])},81189,e=>{"use strict";var t=e.i(43476);let n={live:"bg-success/12 text-success",down:"bg-danger/12 text-danger",danger:"bg-danger/12 text-danger",warn:"bg-warning/12 text-warning",info:"bg-info/12 text-info",neutral:"bg-surface-2 text-text-muted"};function a({tone:e="neutral",children:i,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${n[e]}${s?` ${s}`:""}`,children:i})}e.s(["Badge",0,a,"FormatBadge",0,function({format:e}){return(0,t.jsx)(a,{tone:"info",children:e})}])},69163,e=>{"use strict";var t=e.i(43476);e.s(["CardTitle",0,function({title:e,sub:n,icon:a}){return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[a,(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate text-[14px] font-semibold tracking-tight text-text",children:e}),n&&(0,t.jsx)("div",{className:"truncate text-[12px] text-text-muted",children:n})]})]})},"RichCard",0,function({header:e,footer:n,children:a,className:i}){return(0,t.jsxs)("section",{className:`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${i?` ${i}`:""}`,children:[e&&(0,t.jsx)("header",{className:"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3",children:e}),(0,t.jsx)("div",{className:"p-4",children:a}),n&&(0,t.jsx)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:n})]})}])},53854,45570,e=>{"use strict";var t=e.i(43476);function n(e,t){return RegExp("^"+e.split("*").map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(t)}let a={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},i={"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},s={"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}}},o=[{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(e,t){if(!t)return{...a};if(e&&s[e]?.[t])return{...a,...s[e][t]};let r=(t.includes("/")?t.split("/").pop():t)??t;if(i[r])return{...a,...i[r]};if(i[t])return{...a,...i[t]};for(let{pattern:e,caps:i}of o)if(n(e,r)||n(e,t))return{...a,...i};return{...a}}e.s(["getCapabilitiesForModel",0,r,"modalitiesForModel",0,function(e){let t=e.indexOf("/"),n=r(t>0?e.slice(0,t):null,t>0?e.slice(t+1):e),a=["text"];n.vision&&a.push("image"),n.pdf&&a.push("pdf"),n.audioInput&&a.push("audio"),n.videoInput&&a.push("video");let i=["text"];return n.imageOutput&&i.push("image"),n.audioOutput&&i.push("audio"),{input:a,output:i}}],45570);var l=e.i(51514);let d={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-info"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-warning"}};e.s(["CapacityBadges",0,function({model:e,provider:n=null,size:a=15,className:i=""}){let s=r(n,e),o=Object.keys(d).filter(e=>s[e]);return 0===o.length?null:(0,t.jsx)("span",{className:`inline-flex flex-none items-center gap-0.5 ${i}`,children:o.map(e=>(0,t.jsx)("span",{title:`${d[e].label} — ${d[e].desc}`,className:"leading-none",children:(0,t.jsx)(l.Icon,{name:d[e].icon,size:a,className:d[e].color})},e))})}],53854)},98111,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(51514),i=e.i(38286);e.s(["CooldownTimer",0,function({ms:e,tone:s="danger",icon:o="timer",keepZero:r=!1}){let[l]=(0,n.useState)(()=>Date.now()+e),[d,c]=(0,n.useState)(()=>Math.max(0,e));return((0,n.useEffect)(()=>{let e=()=>c(Math.max(0,l-Date.now()));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[l]),d<=0&&!r)?null:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 tnum text-[12px] ${"danger"===s?"text-danger":"text-text-muted"}`,children:[(0,t.jsx)(a.Icon,{name:o,size:13}),d<=0?"now":i.fmt.duration(d)]})}])},97793,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(18566),i=e.i(29481),s=e.i(49080),o=e.i(81189),r=e.i(98111),l=e.i(69163),d=e.i(10007),c=e.i(51514),x=e.i(38286);function p({checked:e,indeterminate:n,onChange:a,className:i,ariaLabel:s}){let o=e||n;return(0,t.jsx)("button",{type:"button",role:"checkbox","aria-checked":n?"mixed":e,"aria-label":s,onClick:e=>{e.stopPropagation(),a()},className:`flex h-[18px] w-[18px] flex-none items-center justify-center rounded-[5px] border transition-colors ${o?"border-accent bg-accent text-accent-ink":"border-border bg-bg text-transparent hover:border-text-subtle"}${i?` ${i}`:""}`,children:(0,t.jsx)(c.Icon,{name:n?"remove":"check",size:13})})}function u({models:e,busy:a,onAdd:i,onClose:s}){let[o,r]=(0,n.useState)(""),[l,x]=(0,n.useState)(()=>new Set(e.filter(e=>!e.added).map(e=>e.id))),m=(0,n.useMemo)(()=>{let t=o.trim().toLowerCase();return t?e.filter(e=>e.id.toLowerCase().includes(t)):e},[e,o]);function g(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let h=m.filter(e=>l.has(e.id)).length,b=m.length>0&&h===m.length;function v(){x(e=>{let t=new Set(e);return b?m.forEach(e=>t.delete(e.id)):m.forEach(e=>t.add(e.id)),t})}return(0,t.jsx)("div",{className:"fixed inset-0 z-50 grid place-items-center bg-black/50 p-6",onClick:s,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-[480px] flex-col overflow-hidden rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("header",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"text-[14px] font-semibold text-text",children:[e.length," models found"]}),(0,t.jsx)("button",{onClick:s,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(c.Icon,{name:"close",size:18})})]}),(0,t.jsx)("div",{className:"border-b border-border-subtle px-4 py-2.5",children:(0,t.jsx)(d.Input,{value:o,onChange:e=>r(e.target.value),placeholder:"filter…",autoFocus:!0})}),m.length>0&&(0,t.jsxs)("button",{onClick:v,className:"flex items-center gap-2.5 border-b border-border-subtle px-4 py-2 text-left hover:bg-surface-2",children:[(0,t.jsx)(p,{checked:b,indeterminate:h>0&&!b,onChange:v,ariaLabel:"Select all"}),(0,t.jsxs)("span",{className:"text-[12.5px] font-medium text-text",children:["Select all",o?" (filtered)":""]}),(0,t.jsxs)("span",{className:"ml-auto tnum text-[11px] text-text-subtle",children:[h,"/",m.length]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-2 py-2",children:0===m.length?(0,t.jsx)("div",{className:"px-2 py-6 text-center text-[13px] text-text-muted",children:"No matches."}):m.map(e=>{let n=l.has(e.id);return(0,t.jsxs)("button",{onClick:()=>g(e.id),className:`flex w-full items-center gap-2.5 rounded-brand border px-2.5 py-2 text-left transition-colors ${n?"border-accent/40 bg-accent-soft":"border-transparent hover:bg-surface-2"}`,children:[(0,t.jsx)(p,{checked:n,onChange:()=>g(e.id),ariaLabel:e.id}),(0,t.jsx)("span",{className:"flex-1 truncate text-[12.5px] text-text",children:e.id}),e.added&&(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"in catalog"})]},e.id)})}),(0,t.jsxs)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-muted",children:[l.size," selected"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:s,children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:0===l.size||a,onClick:()=>i([...l]),children:a?"Adding…":`Add ${l.size}`})]})]})]})})}var m=e.i(53854),g=e.i(13135);e.s(["ProviderDetail",0,function({id:e}){let p=(0,a.useRouter)(),[h,b]=(0,n.useState)(null),[v,k]=(0,n.useState)(null),[f,j]=(0,n.useState)(""),[w,y]=(0,n.useState)(""),[N,C]=(0,n.useState)(null),[F,W]=(0,n.useState)(""),[$,O]=(0,n.useState)(""),[S,I]=(0,n.useState)(""),[A,z]=(0,n.useState)(null),[_,D]=(0,n.useState)(!1),[M,B]=(0,n.useState)(""),[R,T]=(0,n.useState)(null),[L,q]=(0,n.useState)(""),[K,P]=(0,n.useState)(""),[E,U]=(0,n.useState)(""),[H,V]=(0,n.useState)(""),[Y,G]=(0,n.useState)(null),[J,Q]=(0,n.useState)({}),[X,Z]=(0,n.useState)({}),[ee,et]=(0,n.useState)(!1),[en,ea]=(0,n.useState)(null),ei=(0,n.useRef)(!1),[es,eo]=(0,n.useState)(!1),[er,el]=(0,n.useState)(""),[ed,ec]=(0,n.useState)(""),[ex,ep]=(0,n.useState)(""),[eu,em]=(0,n.useState)({}),[eg,eh]=(0,n.useState)(!1);async function eb(t){Q(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testModel(e,t);Q(e=>({...e,[t]:n.ok&&n.data?.ok?"ok":"fail"}))}async function ev(t){Z(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testKey(e,t);Z(e=>({...e,[t]:n.data??{ok:!1,reachable:!1,status:0,error:n.error}}))}async function ek(t){ei.current=!1,et(!0),ea(null),Z({});let n=0,a=0;for(let s=0;s<t&&!ei.current;s++){Z(e=>({...e,[s]:"testing"}));let o=await i.adminApi.testKey(e,s),r=o.data??{ok:!1,reachable:!1,status:0,error:o.error};Z(e=>({...e,[s]:r})),r.ok?n++:a++,s<t-1&&!ei.current&&await new Promise(e=>setTimeout(e,500))}et(!1),ea({total:t,passed:n,failed:a})}let ef=(0,n.useCallback)(async()=>{let[t,n]=await Promise.all([fetch("/api/gw/admin/config"),i.adminApi.providers()]);if(!t.ok)return void j("could not reach the gateway");let a=(await t.json()).providers.find(t=>t.id===e)??null;a?(j(""),b(a),k(n.data?.providers.find(t=>t.id===e)??null)):j(`provider "${e}" not found`)},[e]);if((0,n.useEffect)(()=>{ef()},[ef]),f)return(0,t.jsx)(x.Empty,{children:f});if(!h)return(0,t.jsx)(x.Empty,{children:"Loading…"});let ej=h.api_keys??(h.api_key?[h.api_key]:[]),ew=H.trim().toLowerCase(),ey=ew?h.models.filter(e=>e.id.toLowerCase().includes(ew)):h.models;async function eN(e,t){W(e),y("");let n=await t();W(""),n.ok?(y(""),await ef()):y(n.error??"action failed")}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/providers"),className:"mb-4 inline-flex items-center gap-1 text-[12px] text-text-muted hover:text-text",children:[(0,t.jsx)(c.Icon,{name:"arrow_back",size:15})," Providers"]}),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(s.Lamp,{state:h.disabled?"idle":v?.keys.some(e=>e.healthy)??!0?"live":"down"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:h.name||h.id}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-text-subtle",children:[(0,t.jsxs)("span",{className:"font-mono",children:[h.id,"/"]}),(0,t.jsx)("span",{children:"—"}),(0,t.jsx)("span",{className:"font-mono",children:h.base_url})]})]}),h.disabled&&(0,t.jsx)(o.Badge,{tone:"down",children:"disabled"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{eo(!0),el(h.base_url),ec(h.id),ep(h.name??"")},children:[(0,t.jsx)(c.Icon,{name:"edit",size:15})," Edit"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"test"===F,onClick:()=>eN("test",async()=>{let t=await i.adminApi.testProvider(e);return t.ok&&C(t.data),t}),children:[(0,t.jsx)(c.Icon,{name:"wifi_tethering",size:16})," ","test"===F?"Testing…":"Test connection"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"discover"===F,onClick:()=>eN("discover",async()=>{let t=await i.adminApi.discoverModels(e);return t.ok&&G(t.data?.models??[]),t}),children:[(0,t.jsx)(c.Icon,{name:"sync",size:16})," ","discover"===F?"Fetching…":"Fetch models"]})]})]}),N&&(0,t.jsx)("div",{className:`mt-2 rounded-brand border px-3 py-2 text-[12px] ${N.ok?"border-live/30 bg-live/5 text-live":"border-danger/30 bg-danger/5 text-danger"}`,children:N.ok?`connected (${N.status})`:N.error||(N.reachable?`server returned ${N.status}`:"could not reach the endpoint")}),w&&(0,t.jsx)("div",{className:"mt-2 rounded-brand border border-danger/30 bg-danger/5 px-3 py-2 text-[12px] text-danger",children:w}),es&&(0,t.jsxs)("div",{className:"mt-4 space-y-3 rounded-brand border border-border bg-surface p-4",children:[(0,t.jsx)(d.Field,{label:"Label",hint:"display name in dashboard (optional, does not affect routing)",children:(0,t.jsx)(d.Input,{value:ex,onChange:e=>ep(e.target.value),placeholder:ed||"e.g. My Provider",className:"text-[12.5px]"})}),(0,t.jsx)(d.Field,{label:"ID / Prefix",hint:"the call prefix (id/model) — changing this breaks CLI tools",children:(0,t.jsx)(d.Input,{value:ed,onChange:e=>ec(e.target.value),placeholder:"e.g. openai",className:"font-mono text-[12.5px]"})}),ed.trim()&&ed.trim()!==e&&(0,t.jsxs)("p",{className:"flex items-start gap-1.5 rounded-brand border border-warning/40 bg-warning/8 px-2.5 py-2 text-[11.5px] text-warning",children:[(0,t.jsx)(c.Icon,{name:"warning",size:14,className:"mt-0.5 flex-none"}),(0,t.jsxs)("span",{children:["Renaming rewrites the call string. CLI tools pointing at"," ",(0,t.jsxs)("code",{className:"tnum",children:[e,"/…"]})," will break until repointed; combos that target it are updated automatically."]})]}),(0,t.jsx)(d.Field,{label:"Base URL",children:(0,t.jsx)(d.Input,{value:er,onChange:e=>el(e.target.value),placeholder:"https://...",className:"font-mono text-[12.5px]"})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>eo(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:"editconn"===F||!ed.trim(),onClick:()=>eN("editconn",async()=>{let t=ed.trim(),n=e;if(t&&t!==e){let a=await i.adminApi.renameProvider(e,t);if(!a.ok)return a;n=t}let a=ex.trim(),s=await i.adminApi.editProvider(n,{base_url:er.trim()||void 0,name:a});return s.ok&&(eo(!1),n!==e&&p.push(`/providers/${encodeURIComponent(n)}`)),s}),children:"Save"})]})]})]}),(0,t.jsxs)("div",{className:`space-y-4 transition-opacity ${h.disabled?"opacity-50":""}`,children:[(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Keys",sub:`${ej.length} configured`}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[ej.length>1&&(0,t.jsxs)(d.Button,{variant:"ghost",disabled:ee,onClick:()=>ek(ej.length),children:[(0,t.jsx)(c.Icon,{name:ee?"progress_activity":"sync",size:15}),ee?"Testing…":"Test All"]}),ee&&(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{ei.current=!0},children:[(0,t.jsx)(c.Icon,{name:"stop",size:15})," Stop"]}),"round-robin"===h.strategy&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",title:"Requests per key before rotating to the next one",children:"Sticky:"}),(0,t.jsxs)("div",{className:"flex items-center rounded-brand border border-border-subtle",children:[(0,t.jsx)("button",{type:"button",disabled:(h.sticky??1)<=1,onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",Math.max(1,(h.sticky??1)-1)).then(()=>ef()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text disabled:opacity-30","aria-label":"Decrease sticky",children:(0,t.jsx)(c.Icon,{name:"remove",size:13})}),(0,t.jsx)("span",{className:"tnum w-6 text-center text-[11px] text-text",children:h.sticky??1}),(0,t.jsx)("button",{type:"button",onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",(h.sticky??1)+1).then(()=>ef()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text","aria-label":"Increase sticky",children:(0,t.jsx)(c.Icon,{name:"add",size:13})})]})]}),(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Round Robin"}),(0,t.jsx)("button",{onClick:()=>{let t="round-robin"===h.strategy?null:"round-robin";i.adminApi.setProviderStrategy(e,t,h.sticky??1).then(()=>ef())},className:`relative h-5 w-9 rounded-full transition-colors ${"round-robin"===h.strategy?"bg-accent":"bg-border-subtle"}`,"aria-label":"Toggle round-robin",children:(0,t.jsx)("span",{className:`absolute left-0.5 top-0.5 h-4 w-4 rounded-full bg-white transition-transform ${"round-robin"===h.strategy?"translate-x-[18px]":"translate-x-0"}`})})]})]}),children:[en&&(0,t.jsx)("div",{className:"mb-3 flex items-center gap-2 text-[11.5px]",children:(0,t.jsxs)(o.Badge,{tone:0===en.failed?"live":"warn",children:[en.total," tested: ",en.passed," valid, ",en.failed," failed"]})}),0===ej.length?(0,t.jsx)(x.Empty,{children:"No keys (free / service-account provider)."}):(0,t.jsx)("div",{className:"max-h-[400px] space-y-1.5 overflow-y-auto",children:ej.map((n,a)=>{let l=v?.keys[a],x=X[a],p=x&&"testing"!==x?x:null,u=p?p.ok?"live":p.reachable?"idle":"down":l?l.healthy?"live":"down":"idle",m=h.key_names?.[n],g=h.disabled_keys?.includes(a)??!1;return R===a?(0,t.jsxs)("div",{className:"space-y-2 rounded-brand border border-accent bg-accent-soft/40 px-3 py-2.5",children:[(0,t.jsx)(d.Input,{value:L,onChange:e=>q(e.target.value),placeholder:"key name (optional)"}),(0,t.jsx)(d.Input,{value:K,onChange:e=>P(e.target.value),placeholder:"new key value (leave blank to keep)",className:"font-mono text-[12.5px]"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>T(null),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:F===`editkey${a}`,onClick:()=>eN(`editkey${a}`,async()=>{let t=await i.adminApi.editKey(e,a,{name:L,key:K.trim()||void 0});return t.ok&&T(null),t}),children:"Save"})]})]},a):(0,t.jsxs)("div",{className:`rounded-brand border border-border-subtle px-3 py-2${g?" opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("button",{onClick:()=>eN(`reorder${a}up`,()=>i.adminApi.reorderKey(e,a,a-1)),disabled:0===a,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move up",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_up",size:14})}),(0,t.jsx)("button",{onClick:()=>eN(`reorder${a}dn`,()=>i.adminApi.reorderKey(e,a,a+1)),disabled:a===ej.length-1,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move down",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_down",size:14})})]}),(0,t.jsx)(s.Lamp,{state:u}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[m&&(0,t.jsx)("div",{className:"text-[12px] font-semibold text-text-muted",children:m}),(0,t.jsx)("span",{className:"block truncate font-mono text-[12.5px] text-text",children:eu[a]??n})]}),eu[a]&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(eu[a])},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":"Copy key",title:"Copy to clipboard",children:(0,t.jsx)(c.Icon,{name:"content_copy",size:14})}),l&&l.cooldown_ms>0&&(0,t.jsx)(r.CooldownTimer,{ms:l.cooldown_ms}),(0,t.jsx)("button",{onClick:async()=>{if(eu[a])return void em(e=>{let t={...e};return delete t[a],t});let t=await i.adminApi.revealKey(e,a);t.ok&&t.data?.key&&em(e=>({...e,[a]:t.data.key}))},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":eu[a]?"Hide key":"Show key",title:eu[a]?"Hide key":"Show key",children:(0,t.jsx)(c.Icon,{name:eu[a]?"visibility_off":"visibility",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`toggle${a}`,()=>i.adminApi.toggleKey(e,a,g)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":g?"Enable key":"Disable key",title:g?"Enable this key":"Disable this key",children:(0,t.jsx)(c.Icon,{name:g?"toggle_off":"toggle_on",size:20,className:g?"text-text-subtle":"text-success"})}),(0,t.jsx)("button",{onClick:()=>ev(a),disabled:"testing"===x,className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text disabled:opacity-60","aria-label":`Check key ${a+1}`,title:"Check this key against the base URL",children:(0,t.jsx)(c.Icon,{name:"testing"===x?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>{T(a),q(m??""),P("")},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":`Edit key ${a+1}`,title:"Rename or replace this key",children:(0,t.jsx)(c.Icon,{name:"edit",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`rmkey${a}`,()=>i.adminApi.removeKey(e,a)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-danger","aria-label":"Remove key",children:(0,t.jsx)(c.Icon,{name:"delete",size:15})})]}),p&&(0,t.jsxs)("div",{className:"mt-1.5 pl-8 text-[11.5px]",children:[(0,t.jsx)(o.Badge,{tone:p.ok?"live":p.reachable?"warn":"down",children:p.ok?"valid":p.reachable?`reachable (${p.status})`:"invalid"}),p.error&&(0,t.jsx)("p",{className:"mt-0.5 text-danger",children:p.error})]}),!p&&l?.last_error&&(0,t.jsxs)("div",{className:"mt-1.5 pl-8 text-[11.5px]",children:[(0,t.jsxs)("p",{className:"text-danger",children:[l.last_error.status?`${l.last_error.status}: `:"",l.last_error.message]}),(0,t.jsx)("span",{className:"text-text-subtle",children:new Date(l.last_error.at).toLocaleTimeString()})]})]},a)})}),(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)(d.Input,{value:S,onChange:e=>I(e.target.value),placeholder:"key name (optional, e.g. primary)"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:$,onChange:e=>{O(e.target.value),z(null)},placeholder:"add a key…",className:"font-mono text-[12.5px]"}),(0,t.jsx)(d.Button,{variant:"ghost",disabled:!$||"checkkey"===F,onClick:()=>eN("checkkey",async()=>{let t=await i.adminApi.checkKey(e,$);return z(t.data??{ok:!1,reachable:!1,status:0,error:t.error}),t}),children:"Check"}),(0,t.jsx)(d.Button,{disabled:!$||"addkey"===F,onClick:()=>eN("addkey",async()=>{let t=await i.adminApi.addKey(e,$,S.trim()||void 0);return t.ok&&(O(""),I(""),z(null)),t}),children:"Add"}),(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>D(!0),children:"Bulk"})]}),A&&(0,t.jsx)("div",{className:`rounded-brand border px-3 py-2 text-[12px] ${A.ok?"border-live/30 bg-live/5 text-live":"border-danger/30 bg-danger/5 text-danger"}`,children:A.ok?`valid (${A.status})`:A.error||`server returned ${A.status}`})]}),_&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:()=>D(!1),children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-brand border border-border bg-surface p-5 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("h3",{className:"mb-1 text-[14px] font-semibold text-text",children:"Bulk Add Keys"}),(0,t.jsxs)("p",{className:"mb-3 text-[12px] text-text-subtle",children:["Format: ",(0,t.jsx)("code",{className:"text-text-muted",children:"name|apiKey"})," or just ",(0,t.jsx)("code",{className:"text-text-muted",children:"apiKey"})," (one per line)"]}),(0,t.jsx)("textarea",{value:M,onChange:e=>B(e.target.value),placeholder:"primary|sk-abc123\nbackup|sk-xyz789\nsk-anonymous-key",rows:8,className:"w-full rounded-brand border border-border bg-bg px-3 py-2 font-mono text-[12.5px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none",autoFocus:!0}),(0,t.jsxs)("div",{className:"mt-3 flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>D(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:!M.trim()||"bulkkeys"===F,onClick:()=>eN("bulkkeys",async()=>{for(let t of M.split("\n").map(e=>e.trim()).filter(Boolean)){let n=t.indexOf("|"),a=n>0?t.slice(0,n).trim():void 0,s=n>0?t.slice(n+1).trim():t;if(!s)continue;let o=await i.adminApi.addKey(e,s,a);if(!o.ok)return o}return B(""),D(!1),{ok:!0}}),children:"bulkkeys"===F?"Adding…":`Add ${M.split("\n").filter(e=>e.trim()).length} keys`})]})]})})]}),(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Models served",sub:`${h.models.length} in catalog`}),h.models.length>0&&(0,t.jsx)("button",{onClick:()=>eN("clear",()=>i.adminApi.clearModels(e)),disabled:"clear"===F,className:"text-[12px] text-text-subtle hover:text-danger",children:"Clear all"})]}),children:[0===h.models.length?(0,t.jsx)(x.Empty,{children:"No models. Add one below, or fetch them for a free/auto provider."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-2.5 text-[12px] text-text-subtle",children:["Call any of these as ",(0,t.jsxs)("span",{className:"tnum text-text-muted",children:[h.id,"/<model>"]}),", as a combo alias, or by the bare id."]}),h.models.length>8&&(0,t.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(c.Icon,{name:"search",size:15,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle"}),(0,t.jsx)(d.Input,{value:H,onChange:e=>V(e.target.value),placeholder:"filter models…",className:"pl-8"})]}),(0,t.jsx)("span",{className:"tnum whitespace-nowrap text-[12px] text-text-subtle",children:ew?`${ey.length} of ${h.models.length}`:`${h.models.length}`})]}),0===ey.length?(0,t.jsxs)(x.Empty,{children:["No model matches “",H,"”."]}):(0,t.jsx)("div",{className:"max-h-[280px] divide-y divide-border-subtle overflow-y-auto rounded-brand border border-border-subtle",children:ey.map(n=>{let a=J[n.id];return(0,t.jsxs)("div",{className:"group flex items-center justify-between gap-3 px-3 py-2 hover:bg-bg",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(c.Icon,{name:"ok"===a?"check_circle":"fail"===a?"cancel":"smart_toy",size:15,className:`flex-none ${"ok"===a?"text-success":"fail"===a?"text-danger":"text-text-subtle"}`}),(0,t.jsxs)("span",{className:"tnum truncate text-[12.5px]",children:[(0,t.jsxs)("span",{className:"text-text-subtle",children:[h.id,"/"]}),(0,t.jsx)("span",{className:"text-text",children:n.id})]}),(0,t.jsx)(m.CapacityBadges,{model:n.id,provider:h.id}),(void 0!==n.price_in||void 0!==n.price_out)&&(0,t.jsxs)("span",{className:"tnum whitespace-nowrap text-[11px] text-text-subtle",children:[x.fmt.cost(n.price_in??0),"/",x.fmt.cost(n.price_out??0)," per 1M"]})]}),(0,t.jsxs)("div",{className:"flex flex-none items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:()=>eb(n.id),disabled:"testing"===a,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-accent disabled:opacity-60","aria-label":`Test ${n.id}`,title:"fail"===a?"Test failed — click to retry":"Test this model",children:(0,t.jsx)(c.Icon,{name:"testing"===a?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`rmmodel${n.id}`,()=>i.adminApi.removeModel(e,n.id)),disabled:F===`rmmodel${n.id}`,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-danger disabled:opacity-40","aria-label":`Remove ${n.id}`,children:(0,t.jsx)(c.Icon,{name:"delete",size:16})})]})]},n.id)})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(d.Input,{value:E,onChange:e=>U(e.target.value),placeholder:"add a model id…"}),(0,t.jsx)(d.Button,{disabled:!E||"addmodel"===F,onClick:()=>eN("addmodel",async()=>{let t=await i.adminApi.addModel(e,E);return t.ok&&U(""),t}),children:"Add"})]})]})]}),Y&&(0,t.jsx)(u,{models:Y,busy:"addmodels"===F,onClose:()=>G(null),onAdd:t=>eN("addmodels",async()=>{let n=await i.adminApi.addModels(e,t);return n.ok&&G(null),n})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(d.Button,{variant:"danger",onClick:()=>eh(!0),children:[(0,t.jsx)(c.Icon,{name:"delete",size:16})," Remove provider"]})}),eg&&(0,t.jsx)(g.ConfirmModal,{title:"Remove provider",message:`Delete "${h.name??e}"? All keys and model associations will be lost.`,confirmLabel:"Remove",busy:"rmprov"===F,onCancel:()=>eh(!1),onConfirm:()=>eN("rmprov",async()=>{let t=await i.adminApi.removeProvider(e);return t.ok?p.push("/providers"):eh(!1),t})})]})}],97793)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49080,e=>{"use strict";var t=e.i(43476);e.s(["Lamp",0,function({state:e,title:n}){return(0,t.jsx)("span",{className:`lamp lamp-${e}`,title:n,"aria-label":e})}])},38286,e=>{"use strict";var t=e.i(43476);e.s(["Empty",0,function({children:e}){return(0,t.jsx)("div",{className:"px-1 py-8 text-center text-[13px] text-text-muted",children:e})},"Stat",0,function({label:e,value:n,sub:a}){return(0,t.jsxs)("div",{className:"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft",children:[(0,t.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:e}),(0,t.jsx)("div",{className:"mt-1 tnum text-[22px] font-semibold tracking-tight text-text",children:n}),a&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:a})]})},"fmt",0,{int:e=>e.toLocaleString("en-US"),compact:e=>Math.abs(e)>=1e6?`${(e/1e6).toFixed(1)}M`:Math.abs(e)>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e)),cost:e=>0===e?"$0":e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`,time:e=>new Date(e).toLocaleString("en-US",{hour12:!1}),date(e){let t=new Date(e);return`${String(t.getDate()).padStart(2,"0")}/${String(t.getMonth()+1).padStart(2,"0")}/${t.getFullYear()}`},ago(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`},duration(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m ${t%60}s`;let n=Math.floor(t/3600),a=Math.floor(t%3600/60);if(n<24)return`${n}h ${a}m`;let i=Math.floor(n/24);return`${i}d ${n%24}h`}}])},81189,e=>{"use strict";var t=e.i(43476);let n={live:"bg-success/12 text-success",down:"bg-danger/12 text-danger",danger:"bg-danger/12 text-danger",warn:"bg-warning/12 text-warning",info:"bg-info/12 text-info",neutral:"bg-surface-2 text-text-muted"};function a({tone:e="neutral",children:i,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${n[e]}${s?` ${s}`:""}`,children:i})}e.s(["Badge",0,a,"FormatBadge",0,function({format:e}){return(0,t.jsx)(a,{tone:"info",children:e})}])},69163,e=>{"use strict";var t=e.i(43476);e.s(["CardTitle",0,function({title:e,sub:n,icon:a}){return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[a,(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate text-[14px] font-semibold tracking-tight text-text",children:e}),n&&(0,t.jsx)("div",{className:"truncate text-[12px] text-text-muted",children:n})]})]})},"RichCard",0,function({header:e,footer:n,children:a,className:i}){return(0,t.jsxs)("section",{className:`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${i?` ${i}`:""}`,children:[e&&(0,t.jsx)("header",{className:"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3",children:e}),(0,t.jsx)("div",{className:"p-4",children:a}),n&&(0,t.jsx)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:n})]})}])},53854,45570,e=>{"use strict";var t=e.i(43476);function n(e,t){return RegExp("^"+e.split("*").map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(t)}let a={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},i={"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},s={"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}}},o=[{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(e,t){if(!t)return{...a};if(e&&s[e]?.[t])return{...a,...s[e][t]};let r=(t.includes("/")?t.split("/").pop():t)??t;if(i[r])return{...a,...i[r]};if(i[t])return{...a,...i[t]};for(let{pattern:e,caps:i}of o)if(n(e,r)||n(e,t))return{...a,...i};return{...a}}e.s(["getCapabilitiesForModel",0,r,"modalitiesForModel",0,function(e){let t=e.indexOf("/"),n=r(t>0?e.slice(0,t):null,t>0?e.slice(t+1):e),a=["text"];n.vision&&a.push("image"),n.pdf&&a.push("pdf"),n.audioInput&&a.push("audio"),n.videoInput&&a.push("video");let i=["text"];return n.imageOutput&&i.push("image"),n.audioOutput&&i.push("audio"),{input:a,output:i}}],45570);var l=e.i(51514);let d={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-info"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-warning"}};e.s(["CapacityBadges",0,function({model:e,provider:n=null,size:a=15,className:i=""}){let s=r(n,e),o=Object.keys(d).filter(e=>s[e]);return 0===o.length?null:(0,t.jsx)("span",{className:`inline-flex flex-none items-center gap-0.5 ${i}`,children:o.map(e=>(0,t.jsx)("span",{title:`${d[e].label} — ${d[e].desc}`,className:"leading-none",children:(0,t.jsx)(l.Icon,{name:d[e].icon,size:a,className:d[e].color})},e))})}],53854)},98111,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(51514),i=e.i(38286);e.s(["CooldownTimer",0,function({ms:e,tone:s="danger",icon:o="timer",keepZero:r=!1}){let[l]=(0,n.useState)(()=>Date.now()+e),[d,c]=(0,n.useState)(()=>Math.max(0,e));return((0,n.useEffect)(()=>{let e=()=>c(Math.max(0,l-Date.now()));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[l]),d<=0&&!r)?null:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 tnum text-[12px] ${"danger"===s?"text-danger":"text-text-muted"}`,children:[(0,t.jsx)(a.Icon,{name:o,size:13}),d<=0?"now":i.fmt.duration(d)]})}])},97793,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(18566),i=e.i(29481),s=e.i(49080),o=e.i(81189),r=e.i(98111),l=e.i(69163),d=e.i(10007),c=e.i(51514),x=e.i(38286);function p({checked:e,indeterminate:n,onChange:a,className:i,ariaLabel:s}){let o=e||n;return(0,t.jsx)("button",{type:"button",role:"checkbox","aria-checked":n?"mixed":e,"aria-label":s,onClick:e=>{e.stopPropagation(),a()},className:`flex h-[18px] w-[18px] flex-none items-center justify-center rounded-[5px] border transition-colors ${o?"border-accent bg-accent text-accent-ink":"border-border bg-bg text-transparent hover:border-text-subtle"}${i?` ${i}`:""}`,children:(0,t.jsx)(c.Icon,{name:n?"remove":"check",size:13})})}function u({models:e,busy:a,onAdd:i,onClose:s}){let[o,r]=(0,n.useState)(""),[l,x]=(0,n.useState)(()=>new Set(e.filter(e=>!e.added).map(e=>e.id))),m=(0,n.useMemo)(()=>{let t=o.trim().toLowerCase();return t?e.filter(e=>e.id.toLowerCase().includes(t)):e},[e,o]);function g(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let h=m.filter(e=>l.has(e.id)).length,b=m.length>0&&h===m.length;function v(){x(e=>{let t=new Set(e);return b?m.forEach(e=>t.delete(e.id)):m.forEach(e=>t.add(e.id)),t})}return(0,t.jsx)("div",{className:"fixed inset-0 z-50 grid place-items-center bg-black/50 p-6",onClick:s,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-[480px] flex-col overflow-hidden rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("header",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"text-[14px] font-semibold text-text",children:[e.length," models found"]}),(0,t.jsx)("button",{onClick:s,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(c.Icon,{name:"close",size:18})})]}),(0,t.jsx)("div",{className:"border-b border-border-subtle px-4 py-2.5",children:(0,t.jsx)(d.Input,{value:o,onChange:e=>r(e.target.value),placeholder:"filter…",autoFocus:!0})}),m.length>0&&(0,t.jsxs)("button",{onClick:v,className:"flex items-center gap-2.5 border-b border-border-subtle px-4 py-2 text-left hover:bg-surface-2",children:[(0,t.jsx)(p,{checked:b,indeterminate:h>0&&!b,onChange:v,ariaLabel:"Select all"}),(0,t.jsxs)("span",{className:"text-[12.5px] font-medium text-text",children:["Select all",o?" (filtered)":""]}),(0,t.jsxs)("span",{className:"ml-auto tnum text-[11px] text-text-subtle",children:[h,"/",m.length]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-2 py-2",children:0===m.length?(0,t.jsx)("div",{className:"px-2 py-6 text-center text-[13px] text-text-muted",children:"No matches."}):m.map(e=>{let n=l.has(e.id);return(0,t.jsxs)("button",{onClick:()=>g(e.id),className:`flex w-full items-center gap-2.5 rounded-brand border px-2.5 py-2 text-left transition-colors ${n?"border-accent/40 bg-accent-soft":"border-transparent hover:bg-surface-2"}`,children:[(0,t.jsx)(p,{checked:n,onChange:()=>g(e.id),ariaLabel:e.id}),(0,t.jsx)("span",{className:"flex-1 truncate text-[12.5px] text-text",children:e.id}),e.added&&(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"in catalog"})]},e.id)})}),(0,t.jsxs)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-muted",children:[l.size," selected"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:s,children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:0===l.size||a,onClick:()=>i([...l]),children:a?"Adding…":`Add ${l.size}`})]})]})]})})}var m=e.i(53854),g=e.i(13135);e.s(["ProviderDetail",0,function({id:e}){let p=(0,a.useRouter)(),[h,b]=(0,n.useState)(null),[v,k]=(0,n.useState)(null),[f,j]=(0,n.useState)(""),[w,y]=(0,n.useState)(""),[N,C]=(0,n.useState)(null),[F,W]=(0,n.useState)(""),[$,O]=(0,n.useState)(""),[S,I]=(0,n.useState)(""),[z,A]=(0,n.useState)(null),[_,D]=(0,n.useState)(!1),[M,B]=(0,n.useState)(""),[R,T]=(0,n.useState)(null),[L,q]=(0,n.useState)(""),[K,P]=(0,n.useState)(""),[E,U]=(0,n.useState)(""),[H,V]=(0,n.useState)(""),[Y,G]=(0,n.useState)(null),[J,Q]=(0,n.useState)({}),[X,Z]=(0,n.useState)({}),[ee,et]=(0,n.useState)(!1),[en,ea]=(0,n.useState)(null),ei=(0,n.useRef)(!1),[es,eo]=(0,n.useState)(!1),[er,el]=(0,n.useState)(""),[ed,ec]=(0,n.useState)(""),[ex,ep]=(0,n.useState)(""),[eu,em]=(0,n.useState)({}),[eg,eh]=(0,n.useState)(!1);async function eb(t){Q(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testModel(e,t);Q(e=>({...e,[t]:n.ok&&n.data?.ok?"ok":"fail"}))}async function ev(t){Z(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testKey(e,t);Z(e=>({...e,[t]:n.data??{ok:!1,reachable:!1,status:0,error:n.error}}))}async function ek(t){ei.current=!1,et(!0),ea(null),Z({});let n=0,a=0;for(let s=0;s<t&&!ei.current;s++){Z(e=>({...e,[s]:"testing"}));let o=await i.adminApi.testKey(e,s),r=o.data??{ok:!1,reachable:!1,status:0,error:o.error};Z(e=>({...e,[s]:r})),r.ok?n++:a++,s<t-1&&!ei.current&&await new Promise(e=>setTimeout(e,500))}et(!1),ea({total:t,passed:n,failed:a})}let ef=(0,n.useCallback)(async()=>{let[t,n]=await Promise.all([fetch("/api/gw/admin/config"),i.adminApi.providers()]);if(!t.ok)return void j("could not reach the gateway");let a=(await t.json()).providers.find(t=>t.id===e)??null;a?(j(""),b(a),k(n.data?.providers.find(t=>t.id===e)??null)):j(`provider "${e}" not found`)},[e]);if((0,n.useEffect)(()=>{ef()},[ef]),f)return(0,t.jsx)(x.Empty,{children:f});if(!h)return(0,t.jsx)(x.Empty,{children:"Loading…"});let ej=h.api_keys??(h.api_key?[h.api_key]:[]),ew=H.trim().toLowerCase(),ey=ew?h.models.filter(e=>e.id.toLowerCase().includes(ew)):h.models;async function eN(e,t){W(e),y("");let n=await t();W(""),n.ok?(y(""),await ef()):y(n.error??"action failed")}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/providers"),className:"mb-4 inline-flex items-center gap-1 text-[12px] text-text-muted hover:text-text",children:[(0,t.jsx)(c.Icon,{name:"arrow_back",size:15})," Providers"]}),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(s.Lamp,{state:h.disabled?"idle":v?.keys.some(e=>e.healthy)??!0?"live":"down"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:h.name||h.id}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[12px] text-text-subtle",children:[(0,t.jsxs)("span",{className:"font-mono",children:[h.id,"/"]}),(0,t.jsx)("span",{children:"—"}),(0,t.jsx)("span",{className:"font-mono",children:h.base_url})]})]}),h.disabled&&(0,t.jsx)(o.Badge,{tone:"down",children:"disabled"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{eo(!0),el(h.base_url),ec(h.id),ep(h.name??"")},children:[(0,t.jsx)(c.Icon,{name:"edit",size:15})," Edit"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"test"===F,onClick:()=>eN("test",async()=>{let t=await i.adminApi.testProvider(e);return t.ok&&C(t.data),t}),children:[(0,t.jsx)(c.Icon,{name:"wifi_tethering",size:16})," ","test"===F?"Testing…":"Test connection"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"discover"===F,onClick:()=>eN("discover",async()=>{let t=await i.adminApi.discoverModels(e);return t.ok&&G(t.data?.models??[]),t}),children:[(0,t.jsx)(c.Icon,{name:"sync",size:16})," ","discover"===F?"Fetching…":"Fetch models"]})]})]}),N&&(0,t.jsx)("div",{className:`mt-2 rounded-brand border px-3 py-2 text-[12px] ${N.ok?"border-live/30 bg-live/5 text-live":"border-danger/30 bg-danger/5 text-danger"}`,children:N.ok?`connected (${N.status})`:N.error||(N.reachable?`server returned ${N.status}`:"could not reach the endpoint")}),w&&(0,t.jsx)("div",{className:"mt-2 rounded-brand border border-danger/30 bg-danger/5 px-3 py-2 text-[12px] text-danger",children:w}),es&&(0,t.jsxs)("div",{className:"mt-4 space-y-3 rounded-brand border border-border bg-surface p-4",children:[(0,t.jsx)(d.Field,{label:"Label",hint:"display name in dashboard (optional, does not affect routing)",children:(0,t.jsx)(d.Input,{value:ex,onChange:e=>ep(e.target.value),placeholder:ed||"e.g. My Provider",className:"text-[12.5px]"})}),(0,t.jsx)(d.Field,{label:"ID / Prefix",hint:"the call prefix (id/model) — changing this breaks CLI tools",children:(0,t.jsx)(d.Input,{value:ed,onChange:e=>ec(e.target.value),placeholder:"e.g. openai",className:"font-mono text-[12.5px]"})}),ed.trim()&&ed.trim()!==e&&(0,t.jsxs)("p",{className:"flex items-start gap-1.5 rounded-brand border border-warning/40 bg-warning/8 px-2.5 py-2 text-[11.5px] text-warning",children:[(0,t.jsx)(c.Icon,{name:"warning",size:14,className:"mt-0.5 flex-none"}),(0,t.jsxs)("span",{children:["Renaming rewrites the call string. CLI tools pointing at"," ",(0,t.jsxs)("code",{className:"tnum",children:[e,"/…"]})," will break until repointed; combos that target it are updated automatically."]})]}),(0,t.jsx)(d.Field,{label:"Base URL",children:(0,t.jsx)(d.Input,{value:er,onChange:e=>el(e.target.value),placeholder:"https://...",className:"font-mono text-[12.5px]"})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>eo(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:"editconn"===F||!ed.trim(),onClick:()=>eN("editconn",async()=>{let t=ed.trim(),n=e;if(t&&t!==e){let a=await i.adminApi.renameProvider(e,t);if(!a.ok)return a;n=t}let a=ex.trim(),s=await i.adminApi.editProvider(n,{base_url:er.trim()||void 0,name:a});return s.ok&&(eo(!1),n!==e&&p.push(`/providers/${encodeURIComponent(n)}`)),s}),children:"Save"})]})]})]}),(0,t.jsxs)("div",{className:`space-y-4 transition-opacity ${h.disabled?"opacity-50":""}`,children:[(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Keys",sub:`${ej.length} configured`}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[ej.length>1&&(0,t.jsxs)(d.Button,{variant:"ghost",disabled:ee,onClick:()=>ek(ej.length),children:[(0,t.jsx)(c.Icon,{name:ee?"progress_activity":"sync",size:15}),ee?"Testing…":"Test All"]}),ee&&(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{ei.current=!0},children:[(0,t.jsx)(c.Icon,{name:"stop",size:15})," Stop"]}),"round-robin"===h.strategy&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",title:"Requests per key before rotating to the next one",children:"Sticky:"}),(0,t.jsxs)("div",{className:"flex items-center rounded-brand border border-border-subtle",children:[(0,t.jsx)("button",{type:"button",disabled:(h.sticky??1)<=1,onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",Math.max(1,(h.sticky??1)-1)).then(()=>ef()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text disabled:opacity-30","aria-label":"Decrease sticky",children:(0,t.jsx)(c.Icon,{name:"remove",size:13})}),(0,t.jsx)("span",{className:"tnum w-6 text-center text-[11px] text-text",children:h.sticky??1}),(0,t.jsx)("button",{type:"button",onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",(h.sticky??1)+1).then(()=>ef()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text","aria-label":"Increase sticky",children:(0,t.jsx)(c.Icon,{name:"add",size:13})})]})]}),(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Round Robin"}),(0,t.jsx)("button",{onClick:()=>{let t="round-robin"===h.strategy?null:"round-robin";i.adminApi.setProviderStrategy(e,t,h.sticky??1).then(()=>ef())},className:`relative h-5 w-9 rounded-full transition-colors ${"round-robin"===h.strategy?"bg-accent":"bg-border-subtle"}`,"aria-label":"Toggle round-robin",children:(0,t.jsx)("span",{className:`absolute left-0.5 top-0.5 h-4 w-4 rounded-full bg-white transition-transform ${"round-robin"===h.strategy?"translate-x-[18px]":"translate-x-0"}`})})]})]}),children:[en&&(0,t.jsx)("div",{className:"mb-3 flex items-center gap-2 text-[11.5px]",children:(0,t.jsxs)(o.Badge,{tone:0===en.failed?"live":"warn",children:[en.total," tested: ",en.passed," valid, ",en.failed," failed"]})}),0===ej.length?(0,t.jsx)(x.Empty,{children:"No keys (free / service-account provider)."}):(0,t.jsx)("div",{className:"max-h-[400px] space-y-1.5 overflow-y-auto",children:ej.map((n,a)=>{let l=v?.keys[a],x=X[a],p=x&&"testing"!==x?x:null,u=h.disabled_keys?.includes(a)??!1,m=u?"down":p?p.ok?"live":p.reachable?"idle":"down":l?l.healthy?"live":"down":"idle",g=h.key_names?.[n];return R===a?(0,t.jsxs)("div",{className:"space-y-2 rounded-brand border border-accent bg-accent-soft/40 px-3 py-2.5",children:[(0,t.jsx)(d.Input,{value:L,onChange:e=>q(e.target.value),placeholder:"key name (optional)"}),(0,t.jsx)(d.Input,{value:K,onChange:e=>P(e.target.value),placeholder:"new key value (leave blank to keep)",className:"font-mono text-[12.5px]"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>T(null),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:F===`editkey${a}`,onClick:()=>eN(`editkey${a}`,async()=>{let t=await i.adminApi.editKey(e,a,{name:L,key:K.trim()||void 0});return t.ok&&T(null),t}),children:"Save"})]})]},a):(0,t.jsxs)("div",{className:`rounded-brand border border-border-subtle px-3 py-2${u?" opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("button",{onClick:()=>eN(`reorder${a}up`,()=>i.adminApi.reorderKey(e,a,a-1)),disabled:0===a,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move up",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_up",size:14})}),(0,t.jsx)("button",{onClick:()=>eN(`reorder${a}dn`,()=>i.adminApi.reorderKey(e,a,a+1)),disabled:a===ej.length-1,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move down",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_down",size:14})})]}),(0,t.jsx)(s.Lamp,{state:m}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[g&&(0,t.jsx)("div",{className:"text-[12px] font-semibold text-text-muted",children:g}),(0,t.jsx)("span",{className:"block truncate font-mono text-[12.5px] text-text",children:eu[a]??n})]}),eu[a]&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(eu[a])},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":"Copy key",title:"Copy to clipboard",children:(0,t.jsx)(c.Icon,{name:"content_copy",size:14})}),l&&l.cooldown_ms>0&&(0,t.jsx)(r.CooldownTimer,{ms:l.cooldown_ms}),(0,t.jsx)("button",{onClick:async()=>{if(eu[a])return void em(e=>{let t={...e};return delete t[a],t});let t=await i.adminApi.revealKey(e,a);t.ok&&t.data?.key&&em(e=>({...e,[a]:t.data.key}))},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":eu[a]?"Hide key":"Show key",title:eu[a]?"Hide key":"Show key",children:(0,t.jsx)(c.Icon,{name:eu[a]?"visibility_off":"visibility",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`toggle${a}`,()=>i.adminApi.toggleKey(e,a,u)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":u?"Enable key":"Disable key",title:u?"Enable this key":"Disable this key",children:(0,t.jsx)(c.Icon,{name:u?"toggle_off":"toggle_on",size:20,className:u?"text-danger":"text-success"})}),(0,t.jsx)("button",{onClick:()=>ev(a),disabled:"testing"===x,className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text disabled:opacity-60","aria-label":`Check key ${a+1}`,title:"Check this key against the base URL",children:(0,t.jsx)(c.Icon,{name:"testing"===x?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>{T(a),q(g??""),P("")},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":`Edit key ${a+1}`,title:"Rename or replace this key",children:(0,t.jsx)(c.Icon,{name:"edit",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`rmkey${a}`,()=>i.adminApi.removeKey(e,a)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-danger","aria-label":"Remove key",children:(0,t.jsx)(c.Icon,{name:"delete",size:15})})]}),p&&(0,t.jsxs)("div",{className:"mt-1.5 pl-8 text-[11.5px]",children:[(0,t.jsx)(o.Badge,{tone:p.ok?"live":p.reachable?"warn":"down",children:p.ok?"valid":p.reachable?`reachable (${p.status})`:"invalid"}),p.error&&(0,t.jsx)("p",{className:"mt-0.5 text-danger",children:p.error})]}),!p&&l?.last_error&&(0,t.jsxs)("div",{className:"mt-1.5 pl-8 text-[11.5px]",children:[(0,t.jsxs)("p",{className:"text-danger",children:[l.last_error.status?`${l.last_error.status}: `:"",l.last_error.message]}),(0,t.jsx)("span",{className:"text-text-subtle",children:new Date(l.last_error.at).toLocaleTimeString()})]})]},a)})}),(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)(d.Input,{value:S,onChange:e=>I(e.target.value),placeholder:"key name (optional, e.g. primary)"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:$,onChange:e=>{O(e.target.value),A(null)},placeholder:"add a key…",className:"font-mono text-[12.5px]"}),(0,t.jsx)(d.Button,{variant:"ghost",disabled:!$||"checkkey"===F,onClick:()=>eN("checkkey",async()=>{let t=await i.adminApi.checkKey(e,$);return A(t.data??{ok:!1,reachable:!1,status:0,error:t.error}),t}),children:"Check"}),(0,t.jsx)(d.Button,{disabled:!$||"addkey"===F,onClick:()=>eN("addkey",async()=>{let t=await i.adminApi.addKey(e,$,S.trim()||void 0);return t.ok&&(O(""),I(""),A(null)),t}),children:"Add"}),(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>D(!0),children:"Bulk"})]}),z&&(0,t.jsx)("div",{className:`rounded-brand border px-3 py-2 text-[12px] ${z.ok?"border-live/30 bg-live/5 text-live":"border-danger/30 bg-danger/5 text-danger"}`,children:z.ok?`valid (${z.status})`:z.error||`server returned ${z.status}`})]}),_&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:()=>D(!1),children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-brand border border-border bg-surface p-5 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("h3",{className:"mb-1 text-[14px] font-semibold text-text",children:"Bulk Add Keys"}),(0,t.jsxs)("p",{className:"mb-3 text-[12px] text-text-subtle",children:["Format: ",(0,t.jsx)("code",{className:"text-text-muted",children:"name|apiKey"})," or just ",(0,t.jsx)("code",{className:"text-text-muted",children:"apiKey"})," (one per line)"]}),(0,t.jsx)("textarea",{value:M,onChange:e=>B(e.target.value),placeholder:"primary|sk-abc123\nbackup|sk-xyz789\nsk-anonymous-key",rows:8,className:"w-full rounded-brand border border-border bg-bg px-3 py-2 font-mono text-[12.5px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none",autoFocus:!0}),(0,t.jsxs)("div",{className:"mt-3 flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>D(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:!M.trim()||"bulkkeys"===F,onClick:()=>eN("bulkkeys",async()=>{for(let t of M.split("\n").map(e=>e.trim()).filter(Boolean)){let n=t.indexOf("|"),a=n>0?t.slice(0,n).trim():void 0,s=n>0?t.slice(n+1).trim():t;if(!s)continue;let o=await i.adminApi.addKey(e,s,a);if(!o.ok)return o}return B(""),D(!1),{ok:!0}}),children:"bulkkeys"===F?"Adding…":`Add ${M.split("\n").filter(e=>e.trim()).length} keys`})]})]})})]}),(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Models served",sub:`${h.models.length} in catalog`}),h.models.length>0&&(0,t.jsx)("button",{onClick:()=>eN("clear",()=>i.adminApi.clearModels(e)),disabled:"clear"===F,className:"text-[12px] text-text-subtle hover:text-danger",children:"Clear all"})]}),children:[0===h.models.length?(0,t.jsx)(x.Empty,{children:"No models. Add one below, or fetch them for a free/auto provider."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-2.5 text-[12px] text-text-subtle",children:["Call any of these as ",(0,t.jsxs)("span",{className:"tnum text-text-muted",children:[h.id,"/<model>"]}),", as a combo alias, or by the bare id."]}),h.models.length>8&&(0,t.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(c.Icon,{name:"search",size:15,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle"}),(0,t.jsx)(d.Input,{value:H,onChange:e=>V(e.target.value),placeholder:"filter models…",className:"pl-8"})]}),(0,t.jsx)("span",{className:"tnum whitespace-nowrap text-[12px] text-text-subtle",children:ew?`${ey.length} of ${h.models.length}`:`${h.models.length}`})]}),0===ey.length?(0,t.jsxs)(x.Empty,{children:["No model matches “",H,"”."]}):(0,t.jsx)("div",{className:"max-h-[280px] divide-y divide-border-subtle overflow-y-auto rounded-brand border border-border-subtle",children:ey.map(n=>{let a=J[n.id];return(0,t.jsxs)("div",{className:"group flex items-center justify-between gap-3 px-3 py-2 hover:bg-bg",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(c.Icon,{name:"ok"===a?"check_circle":"fail"===a?"cancel":"smart_toy",size:15,className:`flex-none ${"ok"===a?"text-success":"fail"===a?"text-danger":"text-text-subtle"}`}),(0,t.jsxs)("span",{className:"tnum truncate text-[12.5px]",children:[(0,t.jsxs)("span",{className:"text-text-subtle",children:[h.id,"/"]}),(0,t.jsx)("span",{className:"text-text",children:n.id})]}),(0,t.jsx)(m.CapacityBadges,{model:n.id,provider:h.id}),(void 0!==n.price_in||void 0!==n.price_out)&&(0,t.jsxs)("span",{className:"tnum whitespace-nowrap text-[11px] text-text-subtle",children:[x.fmt.cost(n.price_in??0),"/",x.fmt.cost(n.price_out??0)," per 1M"]})]}),(0,t.jsxs)("div",{className:"flex flex-none items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(`${h.id}/${n.id}`)},className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-accent","aria-label":`Copy ${h.id}/${n.id}`,title:"Copy model name",children:(0,t.jsx)(c.Icon,{name:"content_copy",size:15})}),(0,t.jsx)("button",{onClick:()=>eb(n.id),disabled:"testing"===a,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-accent disabled:opacity-60","aria-label":`Test ${n.id}`,title:"fail"===a?"Test failed — click to retry":"Test this model",children:(0,t.jsx)(c.Icon,{name:"testing"===a?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>eN(`rmmodel${n.id}`,()=>i.adminApi.removeModel(e,n.id)),disabled:F===`rmmodel${n.id}`,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-danger disabled:opacity-40","aria-label":`Remove ${n.id}`,children:(0,t.jsx)(c.Icon,{name:"delete",size:16})})]})]},n.id)})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(d.Input,{value:E,onChange:e=>U(e.target.value),placeholder:"add a model id…"}),(0,t.jsx)(d.Button,{disabled:!E||"addmodel"===F,onClick:()=>eN("addmodel",async()=>{let t=await i.adminApi.addModel(e,E);return t.ok&&U(""),t}),children:"Add"})]})]})]}),Y&&(0,t.jsx)(u,{models:Y,busy:"addmodels"===F,onClose:()=>G(null),onAdd:t=>eN("addmodels",async()=>{let n=await i.adminApi.addModels(e,t);return n.ok&&G(null),n})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(d.Button,{variant:"danger",onClick:()=>eh(!0),children:[(0,t.jsx)(c.Icon,{name:"delete",size:16})," Remove provider"]})}),eg&&(0,t.jsx)(g.ConfirmModal,{title:"Remove provider",message:`Delete "${h.name??e}"? All keys and model associations will be lost.`,confirmLabel:"Remove",busy:"rmprov"===F,onCancel:()=>eh(!1),onConfirm:()=>eN("rmprov",async()=>{let t=await i.adminApi.removeProvider(e);return t.ok?p.push("/providers"):eh(!1),t})})]})}],97793)}]);
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Windows system tray via PowerShell NotifyIcon. No native binary needed —
3
+ * uses the .NET System.Windows.Forms.NotifyIcon available on every Windows
4
+ * install. A long-running PowerShell process hosts the icon + menu and
5
+ * communicates via stdout (menu-click events).
6
+ */
7
+ import { spawn } from "node:child_process";
8
+ import { TRAY_ICON_PNG_BASE64 } from "./icon.js";
9
+ export function initWinTray(cfg) {
10
+ const tooltip = cfg.tooltip.replace(/"/g, '`"');
11
+ const itemsJson = JSON.stringify(cfg.items.map((it) => ({ title: it.title, enabled: it.enabled })));
12
+ const script = `
13
+ Add-Type -AssemblyName System.Windows.Forms
14
+ Add-Type -AssemblyName System.Drawing
15
+ $icon = [System.Convert]::FromBase64String("${TRAY_ICON_PNG_BASE64}")
16
+ $ms = New-Object System.IO.MemoryStream(,$icon)
17
+ $bmp = [System.Drawing.Image]::FromStream($ms)
18
+ $ni = New-Object System.Windows.Forms.NotifyIcon
19
+ $ni.Icon = [System.Drawing.Icon]::FromHandle($bmp.GetHicon())
20
+ $ni.Visible = $true
21
+ $ni.Text = "${tooltip}"
22
+ $menu = New-Object System.Windows.Forms.ContextMenuStrip
23
+ $items = @()
24
+ ${itemsJson} | ForEach-Object {
25
+ $item = $menu.Items.Add($_.title)
26
+ $item.Enabled = $_.enabled
27
+ $item.Tag = $items.Count
28
+ $items += $item
29
+ $item.add_Click({
30
+ param($s)
31
+ Write-Output $s.Tag
32
+ [Console]::Out.Flush()
33
+ })
34
+ }
35
+ $ni.ContextMenuStrip = $menu
36
+ while ($true) { Start-Sleep -Milliseconds 200 }
37
+ `;
38
+ const proc = spawn("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script], { windowsHide: true });
39
+ let buffer = "";
40
+ proc.stdout.on("data", (data) => {
41
+ buffer += data.toString();
42
+ const lines = buffer.split("\n");
43
+ buffer = lines.pop() ?? "";
44
+ for (const line of lines) {
45
+ const trimmed = line.trim();
46
+ if (trimmed && /^\d+$/.test(trimmed)) {
47
+ cfg.onClick(parseInt(trimmed, 10));
48
+ }
49
+ }
50
+ });
51
+ proc.stderr.on("data", (data) => {
52
+ process.stderr.write(`[tray-win] ${data}`);
53
+ });
54
+ return {
55
+ kill() {
56
+ try {
57
+ proc.kill();
58
+ }
59
+ catch { /* gone */ }
60
+ },
61
+ updateItem(i, title, enabled) {
62
+ // PowerShell doesn't support live menu updates without IPC; re-launch
63
+ // is overkill for the autostart toggle — the menu refreshes on next start.
64
+ },
65
+ };
66
+ }
67
+ //# sourceMappingURL=trayWin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trayWin.js","sourceRoot":"","sources":["../../../src/cli/tray/trayWin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAajD,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG;;;8CAG6B,oBAAoB;;;;;;cAMpD,OAAO;;;EAGnB,SAAS;;;;;;;;;;;;;CAaV,CAAC;IAEA,MAAM,IAAI,GAAmC,KAAK,CAChD,gBAAgB,EAChB,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,EACrD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;IAEF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;YACF,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QACD,UAAU,CAAC,CAAS,EAAE,KAAa,EAAE,OAAgB;YACnD,sEAAsE;YACtE,2EAA2E;QAC7E,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/config.js CHANGED
@@ -16,7 +16,7 @@ const ProviderModelSchema = z.object({
16
16
  price_in: z.number().nonnegative().optional(),
17
17
  price_out: z.number().nonnegative().optional(),
18
18
  });
19
- const ProviderSchema = z
19
+ export const ProviderSchema = z
20
20
  .object({
21
21
  id: z.string().min(1),
22
22
  name: z.string().optional(),
@@ -63,6 +63,8 @@ const ModelRouteSchema = z.object({
63
63
  // fallback: try targets in order. round-robin: rotate the first target tried
64
64
  // per request to spread load across the chain.
65
65
  strategy: z.enum(["fallback", "round-robin"]).default("fallback"),
66
+ // round-robin sticky: N consecutive requests to the same model before rotating.
67
+ sticky: z.number().int().positive().default(1),
66
68
  price_in: z.number().nonnegative().optional(),
67
69
  price_out: z.number().nonnegative().optional(),
68
70
  });
@@ -141,7 +143,7 @@ export class GatewayConfig {
141
143
  raw;
142
144
  providers;
143
145
  routes;
144
- /** per-alias rotation cursor for the round-robin strategy */
146
+ /** per-alias rotation state for the round-robin strategy (index + sticky count) */
145
147
  rrCursor = new Map();
146
148
  constructor(raw) {
147
149
  this.raw = raw;
@@ -192,8 +194,16 @@ export class GatewayConfig {
192
194
  ];
193
195
  });
194
196
  if (route.strategy === "round-robin" && built.length > 1) {
195
- const start = (this.rrCursor.get(name) ?? 0) % built.length;
196
- this.rrCursor.set(name, start + 1);
197
+ const state = this.rrCursor.get(name) ?? { index: 0, count: 0 };
198
+ const sticky = route.sticky ?? 1;
199
+ const start = state.index % built.length;
200
+ const nextCount = state.count + 1;
201
+ if (nextCount >= sticky) {
202
+ this.rrCursor.set(name, { index: (state.index + 1) % built.length, count: 0 });
203
+ }
204
+ else {
205
+ this.rrCursor.set(name, { index: state.index, count: nextCount });
206
+ }
197
207
  return [...built.slice(start), ...built.slice(0, start)];
198
208
  }
199
209
  return built;
@@ -431,6 +441,29 @@ export function removeProvider(config, id) {
431
441
  next.providers.splice(idx, 1);
432
442
  return next;
433
443
  }
444
+ export function importProviders(config, incoming) {
445
+ const next = cloneConfig(config);
446
+ const result = { added: [], merged: [], skipped: [] };
447
+ for (const imp of incoming) {
448
+ const existing = next.providers.find((p) => p.id === imp.id);
449
+ if (!existing) {
450
+ next.providers.push(imp);
451
+ result.added.push(imp.id);
452
+ continue;
453
+ }
454
+ const existingKeys = new Set(realKeysOf(existing));
455
+ const impKeys = realKeysOf(imp);
456
+ const newKeys = impKeys.filter((k) => !existingKeys.has(k));
457
+ if (newKeys.length === 0) {
458
+ result.skipped.push({ id: imp.id, reason: "all keys already exist" });
459
+ continue;
460
+ }
461
+ existing.api_keys = [...realKeysOf(existing), ...newKeys];
462
+ delete existing.api_key;
463
+ result.merged.push({ id: imp.id, newKeys: newKeys.length });
464
+ }
465
+ return { config: next, result };
466
+ }
434
467
  export function addProviderKey(config, id, key, name) {
435
468
  const next = cloneConfig(config);
436
469
  const p = next.providers.find((x) => x.id === id);
@@ -673,6 +706,7 @@ export function setRoute(config, route) {
673
706
  alias,
674
707
  target: route.target,
675
708
  strategy: route.strategy ?? "fallback",
709
+ sticky: route.sticky && route.sticky > 0 ? route.sticky : 1,
676
710
  ...(route.model !== undefined ? { model: route.model } : {}),
677
711
  ...(route.price_in !== undefined ? { price_in: route.price_in } : {}),
678
712
  ...(route.price_out !== undefined ? { price_out: route.price_out } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}