aigetwey 1.3.9 → 1.4.0
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.
- package/CHANGELOG.md +33 -0
- package/README.md +125 -211
- package/assets/screenshot-accesskey.png +0 -0
- package/assets/screenshot-budgets.png +0 -0
- package/assets/screenshot-endpoint.png +0 -0
- package/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/app-path-routes-manifest.json +1 -0
- package/dashboard/.next/build-manifest.json +3 -3
- package/dashboard/.next/diagnostics/route-bundle-stats.json +55 -38
- package/dashboard/.next/fallback-build-manifest.json +3 -3
- package/dashboard/.next/prerender-manifest.json +24 -0
- package/dashboard/.next/routes-manifest.json +6 -0
- package/dashboard/.next/server/app/(console)/combos/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/combos/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/config/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/config/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/console/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/console/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/endpoint/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/endpoint/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/keys/page/app-paths-manifest.json +3 -0
- package/dashboard/.next/server/app/(console)/keys/page/build-manifest.json +18 -0
- package/dashboard/.next/server/app/(console)/keys/page/next-font-manifest.json +11 -0
- package/dashboard/.next/server/app/(console)/keys/page/react-loadable-manifest.json +1 -0
- package/dashboard/.next/server/app/(console)/keys/page/server-reference-manifest.json +4 -0
- package/dashboard/.next/server/app/(console)/keys/page.js +15 -0
- package/dashboard/.next/server/app/(console)/keys/page.js.map +5 -0
- package/dashboard/.next/server/app/(console)/keys/page.js.nft.json +1 -0
- package/dashboard/.next/server/app/(console)/keys/page_client-reference-manifest.js +3 -0
- package/dashboard/.next/server/app/(console)/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/providers/[id]/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/providers/[id]/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/providers/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/providers/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/quota/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/quota/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/tools/[id]/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/tools/[id]/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/tools/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/tools/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/usage/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/(console)/usage/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/_global-error.html +1 -1
- package/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/server/app/_not-found.rsc +2 -2
- package/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/combos.html +1 -1
- package/dashboard/.next/server/app/combos.rsc +5 -5
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/combos.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/combos.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/combos.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/config.html +1 -1
- package/dashboard/.next/server/app/config.rsc +5 -5
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/config.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/config.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/config.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/console.html +1 -1
- package/dashboard/.next/server/app/console.rsc +5 -5
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/console.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/console.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/console.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/endpoint.html +1 -1
- package/dashboard/.next/server/app/endpoint.rsc +5 -5
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/endpoint.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/endpoint.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/endpoint.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/server/app/index.rsc +5 -5
- package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/index.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/keys.html +1 -0
- package/dashboard/.next/server/app/keys.meta +16 -0
- package/dashboard/.next/server/app/keys.rsc +25 -0
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys/__PAGE__.segment.rsc +6 -0
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys.segment.rsc +5 -0
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp.segment.rsc +6 -0
- package/dashboard/.next/server/app/keys.segments/_full.segment.rsc +25 -0
- package/dashboard/.next/server/app/keys.segments/_head.segment.rsc +6 -0
- package/dashboard/.next/server/app/keys.segments/_index.segment.rsc +9 -0
- package/dashboard/.next/server/app/keys.segments/_tree.segment.rsc +5 -0
- package/dashboard/.next/server/app/login/page.js.nft.json +1 -1
- package/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/login.html +1 -1
- package/dashboard/.next/server/app/login.rsc +2 -2
- package/dashboard/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.html +1 -1
- package/dashboard/.next/server/app/providers.rsc +5 -5
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/providers.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/providers.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/providers.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/quota.html +1 -1
- package/dashboard/.next/server/app/quota.rsc +5 -5
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/quota.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/quota.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/quota.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app/tools.html +1 -1
- package/dashboard/.next/server/app/tools.rsc +5 -5
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp.segment.rsc +3 -3
- package/dashboard/.next/server/app/tools.segments/_full.segment.rsc +5 -5
- package/dashboard/.next/server/app/tools.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/_index.segment.rsc +2 -2
- package/dashboard/.next/server/app/tools.segments/_tree.segment.rsc +2 -2
- package/dashboard/.next/server/app-paths-manifest.json +1 -0
- package/dashboard/.next/server/chunks/[root-of-the-server]__0das32e._.js +1 -1
- package/dashboard/.next/server/chunks/[root-of-the-server]__0das32e._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__006jvp_._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/[root-of-the-server]__006jvp_._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__0x-617o._.js → [root-of-the-server]__1eeunp8._.js} +2 -2
- package/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__0x-617o._.js.map → [root-of-the-server]__1eeunp8._.js.map} +1 -1
- package/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__09pxn-h._.js → [root-of-the-server]__1t7z0yw._.js} +2 -2
- package/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__09pxn-h._.js.map → [root-of-the-server]__1t7z0yw._.js.map} +1 -1
- package/dashboard/.next/server/chunks/ssr/_0p90gyy._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/_0p90gyy._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_keys_page_actions_1--ho2b.js +3 -0
- package/dashboard/.next/server/chunks/ssr/_next-internal_server_app_(console)_keys_page_actions_1--ho2b.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-auga4.js +4 -0
- package/dashboard/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-auga4.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_13mfqac._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_13mfqac._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_16zsfd3._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_16zsfd3._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0-kkrr9._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0-kkrr9._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0dgasfb._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0dgasfb._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0q5pldo._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_0q5pldo._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_11ckzq_._.js +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_11ckzq_._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_11dtfns._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_11dtfns._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1e6kjgr._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1e6kjgr._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1eg_jit._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1eg_jit._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1pu8z89._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1pu8z89._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1z4akp5._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_1z4akp5._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_KeyManager_tsx_0r7iyz8._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_KeyManager_tsx_0r7iyz8._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js +3 -0
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js.map +1 -0
- package/dashboard/.next/server/chunks/ssr/src_components_ToolDetail_tsx_0qperd-._.js +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ToolDetail_tsx_0qperd-._.js.map +1 -1
- package/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dashboard/.next/server/next-font-manifest.js +1 -1
- package/dashboard/.next/server/next-font-manifest.json +4 -0
- package/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/static/chunks/0-qqj0_fg6ef0.js +1 -0
- package/dashboard/.next/static/chunks/0347y27liw05t.js +1 -0
- package/dashboard/.next/static/chunks/0iv69e64f1ywa.css +3 -0
- package/dashboard/.next/static/chunks/0mou1p6uwiu19.js +1 -0
- package/dashboard/.next/static/chunks/0pf-u__m67vld.js +1 -0
- package/dashboard/.next/static/chunks/0zdns9uijk264.js +1 -0
- package/dashboard/.next/static/chunks/19nfww990cvv7.js +1 -0
- package/dashboard/.next/static/chunks/1t87-rpltg53e.js +1 -0
- package/dashboard/.next/static/chunks/1wn1c2w4ibyg_.js +1 -0
- package/dashboard/.next/static/chunks/29bgf5j_v6h2z.js +1 -0
- package/dashboard/.next/static/chunks/2uvgdots59tjl.js +1 -0
- package/dashboard/.next/static/chunks/3chs_cdkdx2h9.js +1 -0
- package/dashboard/.next/static/chunks/3y0b8yet0vgwr.js +1 -0
- package/dashboard/.next/trace +1 -1
- package/dashboard/.next/trace-build +1 -1
- package/dashboard/.next/types/routes.d.ts +2 -1
- package/dashboard/.next/types/validator.ts +9 -0
- package/dashboard/package-lock.json +56 -0
- package/dashboard/package.json +3 -0
- package/dashboard/src/app/(console)/keys/page.tsx +5 -0
- package/dashboard/src/app/api/cli-detect/[tool]/route.ts +0 -1
- package/dashboard/src/app/globals.css +1 -0
- package/dashboard/src/components/Badge.tsx +2 -1
- package/dashboard/src/components/EndpointView.tsx +49 -373
- package/dashboard/src/components/KeyManager.tsx +252 -0
- package/dashboard/src/components/KeyReveal.tsx +11 -11
- package/dashboard/src/components/KeyScopeModal.tsx +184 -0
- package/dashboard/src/components/ProviderManager.tsx +136 -44
- package/dashboard/src/components/Rail.tsx +2 -1
- package/dashboard/src/components/ToolDetail.tsx +0 -1
- package/dashboard/src/components/TopBar.tsx +102 -28
- package/dashboard/src/lib/client.ts +2 -0
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/routes/admin.js +8 -1
- package/dist/routes/admin.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +12 -0
- package/src/routes/admin.ts +9 -0
- package/assets/screenshot.png +0 -0
- package/dashboard/.next/server/chunks/ssr/_1jt-_lv._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/_1jt-_lv._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_02ocd5c._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_02ocd5c._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_0az41dg._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_0az41dg._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_0nuo5yx._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_0nuo5yx._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_12gk6sc._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_12gk6sc._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_17nnhsa._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_17nnhsa._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_1kc5vh2._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_1kc5vh2._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_1zwow63._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_1zwow63._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_EndpointView_tsx_0awdzb5._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_EndpointView_tsx_0awdzb5._.js.map +0 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ModelPicker_tsx_1jisxh6._.js +0 -3
- package/dashboard/.next/server/chunks/ssr/src_components_ModelPicker_tsx_1jisxh6._.js.map +0 -1
- package/dashboard/.next/static/chunks/063d_vdu_m-g_.js +0 -1
- package/dashboard/.next/static/chunks/0tq5u12liycmg.js +0 -1
- package/dashboard/.next/static/chunks/1-r9spn081_wo.js +0 -1
- package/dashboard/.next/static/chunks/16vbdc0g5xea0.js +0 -1
- package/dashboard/.next/static/chunks/1dct1l5y9lz4l.js +0 -1
- package/dashboard/.next/static/chunks/22r7w355mazs8.js +0 -1
- package/dashboard/.next/static/chunks/2zho1fpijk0fu.js +0 -1
- package/dashboard/.next/static/chunks/3lh9dc1j-3gxi.css +0 -3
- package/dashboard/.next/static/chunks/3mhsmb2ks1vev.js +0 -1
- package/dashboard/.next/static/chunks/3nrz6v06gppob.js +0 -1
- package/dashboard/.next/static/chunks/3qigg14c4xgka.js +0 -1
- /package/dashboard/.next/static/{Qebwgk51Ssl5h3hVnQurS → WxqdtupTIrBh47rvaXxLB}/_buildManifest.js +0 -0
- /package/dashboard/.next/static/{Qebwgk51Ssl5h3hVnQurS → WxqdtupTIrBh47rvaXxLB}/_clientMiddlewareManifest.js +0 -0
- /package/dashboard/.next/static/{Qebwgk51Ssl5h3hVnQurS → WxqdtupTIrBh47rvaXxLB}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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:i}){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}),i&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:i})]})},"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),i=Math.floor(t%3600/60);if(n<24)return`${n}h ${i}m`;let a=Math.floor(n/24);return`${a}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 i({tone:e="neutral",children:a,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:a})}e.s(["Badge",0,i,"FormatBadge",0,function({format:e}){return(0,t.jsx)(i,{tone:"info",children:e})}])},69163,e=>{"use strict";var t=e.i(43476);e.s(["CardTitle",0,function({title:e,sub:n,icon:i}){return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[i,(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:i,className:a}){return(0,t.jsxs)("section",{className:`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${a?` ${a}`:""}`,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:i}),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 i={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},a={"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{...i};if(e&&s[e]?.[t])return{...i,...s[e][t]};let r=(t.includes("/")?t.split("/").pop():t)??t;if(a[r])return{...i,...a[r]};if(a[t])return{...i,...a[t]};for(let{pattern:e,caps:a}of o)if(n(e,r)||n(e,t))return{...i,...a};return{...i}}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),i=["text"];n.vision&&i.push("image"),n.pdf&&i.push("pdf"),n.audioInput&&i.push("audio"),n.videoInput&&i.push("video");let a=["text"];return n.imageOutput&&a.push("image"),n.audioOutput&&a.push("audio"),{input:i,output:a}}],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:i=15,className:a=""}){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 ${a}`,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:i,className:d[e].color})},e))})}],53854)},78347,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(51514),a=e.i(53854);e.s(["ModelPicker",0,function({title:e="Add models",note:s="Click to add, click again to remove.",searchPlaceholder:o="Search models…",groups:r,selected:l,onToggle:d,onClose:c,showThinkingHint:p=!0}){let[x,u]=(0,n.useState)(""),m=x.trim().toLowerCase(),g=r.map(e=>({...e,items:m?e.items.filter(e=>e.value.toLowerCase().includes(m)):e.items})).filter(e=>e.items.length>0),h=new Set(l);return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/60 p-6 sm:p-10",onClick:c,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-lg flex-col rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsx)("h2",{className:"text-[14px] font-semibold text-text",children:e}),(0,t.jsx)("button",{onClick:c,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(i.Icon,{name:"close",size:18})})]}),(0,t.jsxs)("div",{className:"border-b border-border-subtle px-4 py-3",children:[(0,t.jsx)("p",{className:"mb-2 text-[12px] text-text-muted",children:s}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(i.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)("input",{autoFocus:!0,value:x,onChange:e=>u(e.target.value),placeholder:o,className:"w-full rounded-brand border border-border bg-bg py-2 pl-8 pr-3 text-[13px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:0===g.length?(0,t.jsxs)("p",{className:"py-6 text-center text-[12.5px] text-text-subtle",children:["No models match “",x,"”."]}):(0,t.jsx)("div",{className:"space-y-4",children:g.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-text-subtle",children:[e.label," ",(0,t.jsxs)("span",{className:"tnum text-text-subtle/70",children:["(",e.items.length,")"]})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.items.map(e=>{let n=h.has(e.value);return(0,t.jsxs)("button",{type:"button",onClick:()=>d(e.value),className:`inline-flex items-center gap-1 rounded-brand border px-2 py-1 text-[12px] transition-colors ${n?"border-accent bg-accent-soft text-accent":"border-border bg-bg text-text-muted hover:border-text-subtle hover:text-text"}`,children:[n&&(0,t.jsx)(i.Icon,{name:"check",size:12}),(0,t.jsx)("span",{className:"tnum",children:e.label}),(0,t.jsx)(a.CapacityBadges,{model:e.value,size:13}),e.tag&&(0,t.jsx)("span",{className:"rounded bg-surface-2 px-1 text-[10px] text-text-subtle",children:e.tag})]},e.value)})})]},e.label))})}),p&&(0,t.jsxs)("div",{className:"border-t border-border-subtle px-4 py-2 text-[11px] text-text-subtle",children:[(0,t.jsx)(i.Icon,{name:"neurology",size:12,className:"mr-1 inline align-text-bottom text-warning"}),"Reasoning models accept a thinking suffix — call"," ",(0,t.jsx)("code",{className:"rounded bg-surface-2 px-1 text-text-muted",children:"model(high)"})," or"," ",(0,t.jsx)("code",{className:"rounded bg-surface-2 px-1 text-text-muted",children:"model(none)"})," (high·low·medium·minimal·auto·none·or a token budget)."]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-subtle",children:[l.length," selected"]}),(0,t.jsx)("button",{onClick:c,className:"rounded-brand bg-accent px-3.5 py-1.5 text-[13px] font-semibold text-accent-ink hover:bg-accent-hover",children:"Done"})]})]})})}])},98111,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(51514),a=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)(i.Icon,{name:o,size:13}),d<=0?"now":a.fmt.duration(d)]})}])},59678,e=>{"use strict";var t=e.i(43476),n=e.i(71645),i=e.i(29481),a=e.i(81189),s=e.i(69163),o=e.i(98111),r=e.i(38286),l=e.i(10007),d=e.i(51514),c=e.i(78347);let p=["5h","24h","7day","30day"],x=e=>`rounded-brand px-3 py-1.5 text-[13px] font-medium transition-colors ${e?"bg-accent/12 text-accent":"bg-surface-2 text-text-muted hover:text-text"}`;function u({label:e,children:n}){return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:e}),n]})}let m=[{id:"global",icon:"public",label:"Global",hint:"Cap total spend across the whole gateway."},{id:"provider",icon:"dns",label:"Per provider",hint:"Cap one provider's spend."},{id:"model",icon:"neurology",label:"Per model",hint:"Cap one upstream model's spend."}];function g({initial:e,onSaved:a,onCancel:s}){let o=null!==e,[r,h]=(0,n.useState)(e&&"key"!==e.scope.type?e.scope.type:null),[b,v]=(0,n.useState)(e&&"global"!==e.scope.type&&"key"!==e.scope.type?e.scope.id:""),[k,w]=(0,n.useState)(null),[f,j]=(0,n.useState)(!1),[N,y]=(0,n.useState)(e?.unit??"usd"),[F,W]=(0,n.useState)(String(e?.limit??"")),[C,$]=(0,n.useState)(e?.window??"30day"),[O,S]=(0,n.useState)(e?String(Math.round(100*e.alert_at)):"80"),[M,I]=(0,n.useState)(e?.note??""),[D,z]=(0,n.useState)(""),[B,A]=(0,n.useState)(!1);(0,n.useEffect)(()=>{i.adminApi.models().then(e=>{e.ok&&e.data&&w(e.data)})},[]);let q=k?.providers.length?[{label:"Providers",items:k.providers.map(e=>({value:e.id,label:e.id}))}]:[],T=(k?.providers??[]).filter(e=>e.models.length>0).map(e=>({label:e.id,items:e.models.map(e=>({value:e.id,label:e.id}))}));async function P(){let e=Number(F);if(!Number.isFinite(e)||e<=0)return z("limit must be a positive number");let t=Number(O);if(!Number.isFinite(t)||t<=0||t>100)return z("alert % must be 1–100");if("global"!==r&&!b.trim())return z(`pick a ${r}`);let n="global"===r?{type:"global"}:{type:r,id:b.trim()};A(!0),z("");try{let s=await i.adminApi.setBudget({scope:n,unit:N,limit:e,window:C,alert_at:t/100,note:M.trim()||void 0});if(!s.ok)return z(s.error??"could not save budget");a()}finally{A(!1)}}let E="mb-5 rounded-brand-lg border border-border bg-surface p-5 shadow-soft";if(null===r)return(0,t.jsxs)("div",{className:E,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-[14px] font-semibold text-text",children:"Add a budget"}),(0,t.jsx)("p",{className:"mt-0.5 text-[12.5px] text-text-muted",children:"Pick what this budget caps — the rest is one short form."})]}),(0,t.jsx)("button",{type:"button",onClick:s,className:"flex-none text-text-subtle hover:text-text","aria-label":"Cancel",children:(0,t.jsx)(d.Icon,{name:"close",size:18})})]}),(0,t.jsx)("div",{className:"mt-4 grid gap-3 sm:grid-cols-3",children:m.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{h(e.id),v("")},className:"group flex items-start gap-3 rounded-brand-lg border border-border bg-bg p-4 text-left transition-colors hover:border-accent hover:bg-accent-soft",children:[(0,t.jsx)("span",{className:"flex h-10 w-10 flex-none items-center justify-center rounded-brand bg-surface-2 text-text-muted group-hover:text-accent",children:(0,t.jsx)(d.Icon,{name:e.icon,size:20})}),(0,t.jsxs)("span",{className:"min-w-0",children:[(0,t.jsx)("span",{className:"block text-[13.5px] font-semibold text-text",children:e.label}),(0,t.jsx)("span",{className:"mt-1 block text-[11.5px] text-text-muted",children:e.hint})]})]},e.id))})]});let _=m.find(e=>e.id===r);return(0,t.jsxs)("div",{className:E,children:[(0,t.jsxs)("div",{className:"mb-4 flex items-center gap-2.5 border-b border-border-subtle pb-4",children:[(0,t.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-brand bg-surface-2 text-text-muted",children:(0,t.jsx)(d.Icon,{name:_.icon,size:17})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[13.5px] font-semibold text-text",children:o?"Edit budget":_.label}),(0,t.jsx)("div",{className:"tnum text-[11px] text-text-subtle",children:"global"===r?"whole gateway":`${r} \xb7 ${o?e.label:b||"—"}`})]}),o?null:(0,t.jsxs)("button",{type:"button",onClick:()=>{h(null),z("")},className:"ml-auto inline-flex items-center gap-1 text-[12px] text-text-subtle hover:text-text",children:[(0,t.jsx)(d.Icon,{name:"arrow_back",size:14})," change scope"]})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[!o&&"global"!==r&&(0,t.jsx)(u,{label:"provider"===r?"Provider":"model"===r?"Model":"API key",children:(0,t.jsxs)("button",{type:"button",onClick:()=>j(!0),className:"flex w-full items-center justify-between rounded-brand border border-border bg-bg px-3 py-2 text-left text-[13px] transition-colors hover:border-accent",children:[(0,t.jsx)("span",{className:b?"text-text":"text-text-subtle",children:b||("provider"===r?"Choose a provider…":"model"===r?"Choose a model…":"Choose an API key…")}),(0,t.jsx)(d.Icon,{name:"search",size:15,className:"text-text-subtle"})]})}),(0,t.jsx)(u,{label:"Unit",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>y("usd"),className:x("usd"===N),children:"USD"}),(0,t.jsx)("button",{type:"button",onClick:()=>y("tokens"),className:x("tokens"===N),children:"Tokens"})]})}),(0,t.jsx)(l.Field,{label:"Limit",hint:"usd"===N?"$":"tokens",children:(0,t.jsx)(l.Input,{value:F,onChange:e=>W(e.target.value),inputMode:"decimal",placeholder:"usd"===N?"50.00":"1000000"})}),(0,t.jsx)(u,{label:"Window",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:p.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>$(e),className:x(C===e),children:e},e))})}),(0,t.jsxs)(u,{label:"Alert at",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("input",{type:"range",min:0,max:100,step:1,value:Math.max(0,Math.min(100,Number(O)||0)),onChange:e=>S(e.target.value),className:"range-accent flex-1",style:{background:`linear-gradient(to right, var(--color-accent) ${Math.max(0,Math.min(100,Number(O)||0))}%, var(--color-surface-2) ${Math.max(0,Math.min(100,Number(O)||0))}%)`},"aria-label":"Alert threshold percent"}),(0,t.jsxs)("div",{className:"relative w-16 flex-none",children:[(0,t.jsx)(l.Input,{value:O,onChange:e=>{let t=e.target.value.replace(/[^\d]/g,"");if(""===t)return S("");S(String(Math.max(0,Math.min(100,Number(t)))))},inputMode:"numeric",className:"pr-5 text-center tnum","aria-label":"Alert threshold percent (type)"}),(0,t.jsx)("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[12px] text-text-subtle",children:"%"})]})]}),(0,t.jsx)("p",{className:"text-[11px] text-text-subtle",children:"Warn once spend crosses this share of the limit."})]}),(0,t.jsx)(l.Field,{label:"Note",hint:"optional",children:(0,t.jsx)(l.Input,{value:M,onChange:e=>I(e.target.value),maxLength:200,placeholder:"e.g. client X cap"})})]}),D&&(0,t.jsx)("div",{className:"mt-2 text-[12px] text-danger",children:D}),(0,t.jsxs)("div",{className:"mt-4 flex justify-end gap-2",children:[(0,t.jsx)(l.Button,{type:"button",variant:"ghost",onClick:s,children:"Cancel"}),(0,t.jsx)(l.Button,{type:"button",disabled:B,onClick:P,children:B?"Saving…":o?"Save changes":"Add budget"})]}),f&&"global"!==r&&(0,t.jsx)(c.ModelPicker,{title:"provider"===r?"Select a provider":"Select a model",note:`Click a ${r} to scope this budget to it.`,searchPlaceholder:"provider"===r?"Search providers…":"Search models…",groups:"provider"===r?q:T,selected:b?[b]:[],onToggle:e=>{v(e),j(!1)},onClose:()=>j(!1),showThinkingHint:"model"===r})]})}e.s(["BudgetTracker",0,function(){let[e,c]=(0,n.useState)([]),[p,x]=(0,n.useState)([]),[u,m]=(0,n.useState)(!1),[h,b]=(0,n.useState)({open:!1,initial:null}),[v,k]=(0,n.useState)(""),w=()=>{i.adminApi.budgets().then(e=>{e.ok?c(e.data?.budgets??[]):k(e.error??"could not reach the gateway"),m(!0)}),i.adminApi.keysUsage().then(e=>{e.ok&&x(e.data?.keys??[])})};return((0,n.useEffect)(()=>{w()},[]),v)?(0,t.jsx)(r.Empty,{children:v}):u?(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:"Budgets"}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-text-muted",children:"Spend caps (USD or tokens) with live reset countdowns."})]}),(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"text-[15px] font-semibold text-text",children:"Overall"}),!h.open&&(0,t.jsxs)(l.Button,{onClick:()=>b({open:!0,initial:null}),children:[(0,t.jsx)(d.Icon,{name:"add",size:16})," Add budget"]})]}),h.open&&(0,t.jsx)(g,{initial:h.initial,onSaved:()=>{b({open:!1,initial:null}),w()},onCancel:()=>b({open:!1,initial:null})},h.initial?.key??"new"),0===e.filter(e=>"key"!==e.scope.type).length?!h.open&&(0,t.jsx)(r.Empty,{children:"No budgets yet. Add one to cap spend globally, per provider, or per model."}):(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:e.filter(e=>"key"!==e.scope.type).map(e=>(0,t.jsx)(s.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.CardTitle,{title:e.label,sub:`${e.scope.type} \xb7 ${e.window}`}),(0,t.jsx)(a.Badge,{tone:e.exhausted?"down":e.alert?"warn":"live",children:e.exhausted?"exhausted":e.alert?"alert":"active"})]}),children:(0,t.jsxs)("div",{className:"space-y-2.5",children:[e.note&&(0,t.jsx)("p",{className:"text-[12px] text-text-muted",children:e.note}),(0,t.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-surface-2",children:(0,t.jsx)("div",{className:`h-full rounded-full transition-all ${e.exhausted?"bg-danger":e.alert?"bg-warning":"bg-accent"}`,style:{width:`${Math.min(100,Math.round(100*e.pct))}%`}})}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-[12px]",children:[(0,t.jsxs)("span",{className:"tnum text-text-muted",children:["usd"===e.unit?`$${e.spent.toFixed(2)} / $${e.limit.toFixed(2)}`:`${r.fmt.compact(e.spent)} / ${r.fmt.compact(e.limit)} tokens`,null!=e.est_converse?"usd"===e.unit?` \xb7 ~${r.fmt.compact(e.est_converse)} tok`:` \xb7 ~$${e.est_converse.toFixed(2)}`:" · —"]}),(0,t.jsx)(o.CooldownTimer,{ms:e.reset_in_ms,tone:"muted",icon:"restart_alt",keepZero:!0})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-t border-border-subtle pt-2.5",children:[(0,t.jsxs)(l.Button,{variant:"ghost",className:"px-2.5 py-1 text-[12px]",onClick:()=>b({open:!0,initial:e}),children:[(0,t.jsx)(d.Icon,{name:"edit",size:14})," Edit"]}),(0,t.jsxs)(l.Button,{variant:"danger",className:"px-2.5 py-1 text-[12px]",onClick:async()=>{let t=await i.adminApi.clearBudget(e.key);t.ok||k(t.error??"could not remove budget"),w()},children:[(0,t.jsx)(d.Icon,{name:"delete",size:14})," Remove"]})]})]})},e.key))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"mb-3 text-[15px] font-semibold text-text",children:"Keys"}),0===p.length?(0,t.jsx)(r.Empty,{children:"No gateway keys yet. Add one on the Endpoint page."}):(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:p.map(e=>(0,t.jsx)(s.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.CardTitle,{title:e.name,sub:e.budget?`key \xb7 ${e.budget.window}`:"key · no limit"}),e.expires&&Date.now()>e.expires?(0,t.jsx)(a.Badge,{tone:"down",children:"expired"}):e.budget?.exhausted?(0,t.jsx)(a.Badge,{tone:"down",children:"exhausted"}):(0,t.jsx)(a.Badge,{tone:"live",children:"active"})]}),children:(0,t.jsxs)("div",{className:"space-y-2.5",children:[e.budget?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-surface-2",children:(0,t.jsx)("div",{className:`h-full rounded-full transition-all ${e.budget.exhausted?"bg-danger":e.budget.alert?"bg-warning":"bg-accent"}`,style:{width:`${Math.min(100,Math.round(100*e.budget.pct))}%`}})}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-[12px]",children:[(0,t.jsx)("span",{className:"tnum text-text-muted",children:"usd"===e.budget.unit?`$${e.budget.spent.toFixed(2)} / $${e.budget.limit.toFixed(2)}`:`${r.fmt.compact(e.budget.spent)} / ${r.fmt.compact(e.budget.limit)} tokens`}),(0,t.jsx)(o.CooldownTimer,{ms:e.budget.reset_in_ms,tone:"muted",icon:"restart_alt",keepZero:!0})]})]}):(0,t.jsxs)("div",{className:"flex items-center justify-between text-[12px]",children:[(0,t.jsxs)("span",{className:"tnum text-text-muted",children:["$",e.spent.toFixed(2)," spent"]}),(0,t.jsx)("span",{className:"text-text-subtle",children:"no limit"})]}),(0,t.jsx)("div",{className:"text-[11px] text-text-subtle",children:e.expires?`expires ${r.fmt.date(e.expires)}`:"no expiry"})]})},e.fingerprint))})]})]}):(0,t.jsx)(r.Empty,{children:"Loading..."})}],59678)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,38286,t=>{"use strict";var e=t.i(43476);t.s(["Empty",0,function({children:t}){return(0,e.jsx)("div",{className:"px-1 py-8 text-center text-[13px] text-text-muted",children:t})},"Stat",0,function({label:t,value:r,sub:a}){return(0,e.jsxs)("div",{className:"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft",children:[(0,e.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:t}),(0,e.jsx)("div",{className:"mt-1 tnum text-[22px] font-semibold tracking-tight text-text",children:r}),a&&(0,e.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:a})]})},"fmt",0,{int:t=>t.toLocaleString("en-US"),compact:t=>Math.abs(t)>=1e6?`${(t/1e6).toFixed(1)}M`:Math.abs(t)>=1e3?`${(t/1e3).toFixed(1)}K`:String(Math.round(t)),cost:t=>0===t?"$0":t<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`,time:t=>new Date(t).toLocaleString("en-US",{hour12:!1}),date(t){let e=new Date(t);return`${String(e.getDate()).padStart(2,"0")}/${String(e.getMonth()+1).padStart(2,"0")}/${e.getFullYear()}`},ago(t){let e=Math.max(0,Math.round((Date.now()-t)/1e3));return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:`${Math.floor(e/86400)}d`},duration(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return`${e}s`;if(e<3600)return`${Math.floor(e/60)}m ${e%60}s`;let r=Math.floor(e/3600),a=Math.floor(e%3600/60);if(r<24)return`${r}h ${a}m`;let n=Math.floor(r/24);return`${n}d ${r%24}h`}}])},81189,t=>{"use strict";var e=t.i(43476);let r={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:t="neutral",children:n,className:i}){return(0,e.jsx)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${r[t]}${i?` ${i}`:""}`,children:n})}t.s(["Badge",0,a,"FormatBadge",0,function({format:t}){return(0,e.jsx)(a,{tone:"info",children:t})}])},49080,t=>{"use strict";var e=t.i(43476);t.s(["Lamp",0,function({state:t,title:r}){return(0,e.jsx)("span",{className:`lamp lamp-${t}`,title:r,"aria-label":t})}])},98111,t=>{"use strict";var e=t.i(43476),r=t.i(71645),a=t.i(51514),n=t.i(38286);t.s(["CooldownTimer",0,function({ms:t,tone:i="danger",icon:s="timer",keepZero:o=!1}){let[l]=(0,r.useState)(()=>Date.now()+t),[d,u]=(0,r.useState)(()=>Math.max(0,t));return((0,r.useEffect)(()=>{let t=()=>u(Math.max(0,l-Date.now()));t();let e=setInterval(t,1e3);return()=>clearInterval(e)},[l]),d<=0&&!o)?null:(0,e.jsxs)("span",{className:`inline-flex items-center gap-1 tnum text-[12px] ${"danger"===i?"text-danger":"text-text-muted"}`,children:[(0,e.jsx)(a.Icon,{name:s,size:13}),d<=0?"now":n.fmt.duration(d)]})}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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:a,sub:n}){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:a}),n&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:n})]})},"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 a=Math.floor(t/3600),n=Math.floor(t%3600/60);if(a<24)return`${a}h ${n}m`;let r=Math.floor(a/24);return`${r}d ${a%24}h`}}])},81189,e=>{"use strict";var t=e.i(43476);let a={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 n({tone:e="neutral",children:r,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 ${a[e]}${s?` ${s}`:""}`,children:r})}e.s(["Badge",0,n,"FormatBadge",0,function({format:e}){return(0,t.jsx)(n,{tone:"info",children:e})}])},70789,e=>{"use strict";let t=[{id:"claude-code",name:"Claude Code",icon:"smart_toy",format:"anthropic",blurb:"Anthropic CLI. Point its base URL + key at the gateway.",autoConfig:!0,install:"npm i -g @anthropic-ai/claude-code",slots:[{label:"Opus · heavy",alias:"claude-opus-4-1"},{label:"Sonnet · default",alias:"claude-sonnet-4-6"},{label:"Haiku · fast",alias:"claude-haiku-4-5"}],env:(e,t)=>[{name:"ANTHROPIC_BASE_URL",value:e},{name:"ANTHROPIC_API_KEY",value:t||"<your-gateway-key>"}],steps:["Export the two variables in the shell you run `claude` from.","Create a combo named like each slot above so Claude Code's model ids resolve.","The gateway translates Anthropic ↔ provider format, so any provider works behind it."]},{id:"opencode",name:"opencode",icon:"code_blocks",format:"openai",blurb:"OpenAI-compatible provider. Set base_url to /v1.",autoConfig:!0,install:"curl -fsSL https://opencode.ai/install | bash",slots:[{label:"Model",alias:"gpt-5"}],env:(e,t)=>[{name:"OPENAI_BASE_URL",value:`${e}/v1`},{name:"OPENAI_API_KEY",value:t||"<your-gateway-key>"}],steps:["Add an OpenAI-compatible provider with the gateway /v1 base URL.","Pick a combo alias as the model."]}];e.s(["CLI_TOOLS",0,t,"toolById",0,function(e){return t.find(t=>t.id===e)}])},51166,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(22016),r=e.i(81189),s=e.i(51514),o=e.i(38286),i=e.i(70789);e.s(["CliToolConfig",0,function(){let[e,l]=(0,a.useState)(null),[d,c]=(0,a.useState)("");return((0,a.useEffect)(()=>{(async()=>{let e=await fetch("/api/gw/admin/endpoint");if(!e.ok)return c("could not reach the gateway");l((await e.json()).port)})()},[]),d)?(0,t.jsx)(o.Empty,{children:d}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:"CLI Tools"}),(0,t.jsxs)("p",{className:"mt-1 text-[13px] text-text-muted",children:["Point your coding tools at the gateway. ",e?`Listening on port ${e}.`:""]})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:i.CLI_TOOLS.map(e=>(0,t.jsxs)(n.default,{href:`/tools/${e.id}`,className:"group rounded-brand-lg border border-border bg-surface p-4 shadow-soft transition-colors hover:border-text-subtle",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2.5",children:[(0,t.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-brand bg-surface-2 text-text-muted group-hover:text-text",children:(0,t.jsx)(s.Icon,{name:e.icon,size:18})}),(0,t.jsx)("span",{className:"text-[14px] font-semibold text-text",children:e.name})]}),(0,t.jsx)(r.Badge,{tone:"info",children:e.format})]}),(0,t.jsx)("p",{className:"mt-2 text-[12.5px] text-text-muted",children:e.blurb}),(0,t.jsxs)("span",{className:"mt-3 inline-flex items-center gap-1 text-[12px] text-text-subtle group-hover:text-text",children:["Setup ",(0,t.jsx)(s.Icon,{name:"arrow_forward",size:14})]})]},e.id))})]})}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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})}])},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 c={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(c).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:`${c[e].label} — ${c[e].desc}`,className:"leading-none",children:(0,t.jsx)(l.Icon,{name:c[e].icon,size:a,className:c[e].color})},e))})}],53854)},78347,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(51514),i=e.i(53854);e.s(["ModelPicker",0,function({title:e="Add models",note:s="Click to add, click again to remove.",searchPlaceholder:o="Search models…",groups:r,selected:l,onToggle:c,onClose:d,showThinkingHint:p=!0}){let[x,m]=(0,n.useState)(""),u=x.trim().toLowerCase(),g=r.map(e=>({...e,items:u?e.items.filter(e=>e.value.toLowerCase().includes(u)):e.items})).filter(e=>e.items.length>0),h=new Set(l);return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center overflow-y-auto bg-black/60 p-6 sm:p-10",onClick:d,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-lg flex-col rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsx)("h2",{className:"text-[14px] font-semibold text-text",children:e}),(0,t.jsx)("button",{onClick:d,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(a.Icon,{name:"close",size:18})})]}),(0,t.jsxs)("div",{className:"border-b border-border-subtle px-4 py-3",children:[(0,t.jsx)("p",{className:"mb-2 text-[12px] text-text-muted",children:s}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(a.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)("input",{autoFocus:!0,value:x,onChange:e=>m(e.target.value),placeholder:o,className:"w-full rounded-brand border border-border bg-bg py-2 pl-8 pr-3 text-[13px] text-text placeholder:text-text-subtle focus:border-accent focus:outline-none"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-3",children:0===g.length?(0,t.jsxs)("p",{className:"py-6 text-center text-[12.5px] text-text-subtle",children:["No models match “",x,"”."]}):(0,t.jsx)("div",{className:"space-y-4",children:g.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-text-subtle",children:[e.label," ",(0,t.jsxs)("span",{className:"tnum text-text-subtle/70",children:["(",e.items.length,")"]})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.items.map(e=>{let n=h.has(e.value);return(0,t.jsxs)("button",{type:"button",onClick:()=>c(e.value),className:`inline-flex items-center gap-1 rounded-brand border px-2 py-1 text-[12px] transition-colors ${n?"border-accent bg-accent-soft text-accent":"border-border bg-bg text-text-muted hover:border-text-subtle hover:text-text"}`,children:[n&&(0,t.jsx)(a.Icon,{name:"check",size:12}),(0,t.jsx)("span",{className:"tnum",children:e.label}),(0,t.jsx)(i.CapacityBadges,{model:e.value,size:13}),e.tag&&(0,t.jsx)("span",{className:"rounded bg-surface-2 px-1 text-[10px] text-text-subtle",children:e.tag})]},e.value)})})]},e.label))})}),p&&(0,t.jsxs)("div",{className:"border-t border-border-subtle px-4 py-2 text-[11px] text-text-subtle",children:[(0,t.jsx)(a.Icon,{name:"neurology",size:12,className:"mr-1 inline align-text-bottom text-warning"}),"Reasoning models accept a thinking suffix — call"," ",(0,t.jsx)("code",{className:"rounded bg-surface-2 px-1 text-text-muted",children:"model(high)"})," or"," ",(0,t.jsx)("code",{className:"rounded bg-surface-2 px-1 text-text-muted",children:"model(none)"})," (high·low·medium·minimal·auto·none·or a token budget)."]}),(0,t.jsxs)("div",{className:"flex items-center justify-between border-t border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-subtle",children:[l.length," selected"]}),(0,t.jsx)("button",{onClick:d,className:"rounded-brand bg-accent px-3.5 py-1.5 text-[13px] font-semibold text-accent-ink hover:bg-accent-hover",children:"Done"})]})]})})}])},49931,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(29481),i=e.i(10007),s=e.i(51514),o=e.i(81189),r=e.i(13135),l=e.i(38286),c=e.i(78347);let d={"24h":864e5,"7day":6048e5,"30day":2592e6},p=e=>`rounded-brand px-3 py-1.5 text-[13px] font-medium transition-colors ${e?"bg-accent/12 text-accent":"bg-surface-2 text-text-muted hover:text-text"}`;function x({keyIndex:e,k:o,fingerprint:r,groups:m,keyBudget:u,onClose:g,onSave:h}){let[b,v]=(0,n.useState)(o.name??""),[k,w]=(0,n.useState)(o.models??[]),[f,j]=(0,n.useState)(o.rpm?String(o.rpm):""),[y,N]=(0,n.useState)(o.expires?"keep":"never"),[W,F]=(0,n.useState)(""),[C,O]=(0,n.useState)(u?String(u.limit):""),[S,$]=(0,n.useState)(u?.window??"30day"),[D,I]=(0,n.useState)(!1),[M,z]=(0,n.useState)(!1),[A,B]=(0,n.useState)("");async function q(){z(!0),B("");let t=b.trim();if(t!==(o.name??"")){let n=await a.adminApi.editServerKey(e,t);if(!n.ok){B(n.error??"rename failed"),z(!1);return}}let n="keep"===y?void 0:"never"===y?null:"custom"===y?W?Date.now()+864e5*Number(W):null:Date.now()+d[y],i=await a.adminApi.setServerKeyScope(e,{models:k,rpm:f?Number(f):null,expires:n});if(!i.ok){B(i.error??"save failed"),z(!1);return}let s=C?Number(C):0;s>0?await a.adminApi.setBudget({scope:{type:"key",id:r},unit:"usd",limit:s,window:S}):u&&await a.adminApi.clearBudget(`key:${r}`),z(!1),h()}return(0,t.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-6",onClick:g,children:[(0,t.jsxs)("div",{className:"w-full max-w-md rounded-brand-lg border border-border bg-surface p-5 shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-[14px] font-semibold text-text",children:"Edit key scope"}),(0,t.jsxs)("p",{className:"text-[11.5px] text-text-subtle font-mono mt-0.5",children:[o.name?`${o.name} \xb7 `:"",o.key]})]}),(0,t.jsx)("button",{onClick:g,className:"text-text-subtle hover:text-text",children:(0,t.jsx)(s.Icon,{name:"close",size:17})})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:"Key name"}),(0,t.jsx)(i.Input,{value:b,onChange:e=>v(e.target.value),placeholder:"Unnamed key"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:"Allowed models"}),(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5",children:0===k.length?(0,t.jsx)("span",{className:"text-[12px] text-text-subtle",children:"All models (unrestricted)"}):k.map(e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-accent bg-accent-soft px-2 py-0.5 text-[12px] text-accent",children:[(0,t.jsx)("span",{className:"tnum",children:e}),(0,t.jsx)("button",{onClick:()=>w(t=>t.filter(t=>t!==e)),className:"hover:text-danger",children:(0,t.jsx)(s.Icon,{name:"close",size:12})})]},e))}),(0,t.jsxs)(i.Button,{type:"button",variant:"ghost",className:"mt-1.5",onClick:()=>I(!0),children:[(0,t.jsx)(s.Icon,{name:"add",size:15})," Pick models"]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:"Rate limit"}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)(i.Input,{inputMode:"numeric",value:f,onChange:e=>j(e.target.value.replace(/[^\d]/g,"")),placeholder:"req/min (blank = unlimited)",className:"flex-1"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:"Access expiry"}),o.expires&&(0,t.jsxs)("div",{className:"mb-1.5 text-[11px] text-text-subtle",children:["currently ",Date.now()>o.expires?(0,t.jsx)("span",{className:"text-danger",children:"expired"}):`expires ${l.fmt.date(o.expires)}`]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:(o.expires?["keep","never","24h","7day","30day","custom"]:["never","24h","7day","30day","custom"]).map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>N(e),className:p(y===e),children:"never"===e?"no expiry":e},e))}),"custom"===y&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5",children:[(0,t.jsx)(i.Input,{inputMode:"numeric",value:W,onChange:e=>F(e.target.value.replace(/[^\d]/g,"")),placeholder:"days",className:"w-24"}),(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"days from now"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:"Spend cap (USD)"}),(0,t.jsx)(i.Input,{inputMode:"decimal",value:C,onChange:e=>O(e.target.value.replace(/[^\d.]/g,"")),placeholder:"USD (blank = no cap)"}),C&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"resets every"}),["5h","24h","7day","30day"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>$(e),className:p(S===e),children:e},e))]})]})]}),A&&(0,t.jsx)("p",{className:"mt-3 text-[12px] text-danger",children:A}),(0,t.jsxs)("div",{className:"mt-5 flex gap-2",children:[(0,t.jsx)(i.Button,{variant:"ghost",onClick:g,className:"flex-none",children:"Cancel"}),(0,t.jsx)(i.Button,{disabled:M,onClick:q,className:"flex-1",children:M?"Saving…":"Save"})]})]}),D&&(0,t.jsx)(c.ModelPicker,{groups:m,selected:k,onToggle:e=>{w(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},onClose:()=>I(!1)})]})}function m({name:e,masked:a,reveal:i}){let[o,r]=(0,n.useState)(null),[l,c]=(0,n.useState)(!1),[d,p]=(0,n.useState)(!1),[x,u]=(0,n.useState)(!1);async function g(){if(l)return void c(!1);if(null===o){p(!0);let e=await i();if(p(!1),null===e)return;r(e)}c(!0)}return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"truncate text-[13.5px] font-semibold text-text",children:e}),(0,t.jsx)("button",{onClick:g,disabled:d,className:"flex-none text-text-subtle transition-colors hover:text-text disabled:opacity-40","aria-label":l?"Hide key":"Show key",title:l?"Hide key":"Show key",children:(0,t.jsx)(s.Icon,{name:d?"hourglass_empty":l?"visibility_off":"visibility",size:14})})]}),(0,t.jsxs)("span",{className:`flex items-center gap-1.5 text-[12px] text-text-subtle tnum ${l?"break-all":""}`,children:[(0,t.jsx)("span",{className:l?"":"truncate",children:l&&o?o:a}),l&&o&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(o),u(!0),setTimeout(()=>u(!1),1200)},className:"flex-none text-text-subtle hover:text-text",title:"Copy",children:(0,t.jsx)(s.Icon,{name:x?"check":"content_copy",size:13})})]})]})}e.s(["KeyManager",0,function(){let[e,c]=(0,n.useState)(null),[d,p]=(0,n.useState)(""),[u,g]=(0,n.useState)(""),[h,b]=(0,n.useState)(""),[v,k]=(0,n.useState)(null),[w,f]=(0,n.useState)(null),[j,y]=(0,n.useState)(null),[N,W]=(0,n.useState)([]),[F,C]=(0,n.useState)({}),O=(0,n.useCallback)(async()=>{let e=await a.adminApi.endpoint();e.ok?(p(""),c(e.data)):p(e.error??"could not reach gateway")},[]);async function S(e,t){g(e);let n=await t();g(""),n.ok?(p(""),await O()):p(n.error??"action failed")}async function $(t,n){let i=(t||"Gateway key").trim();if(e&&e.keys.some(e=>e.name===i))return void p(`Key name "${i}" already exists`);g("genkey");let s=await a.adminApi.addServerKey(n,i);(g(""),s.ok)?(p(""),b(""),k({key:n,name:i}),await O()):p(s.error??"could not add key")}if((0,n.useEffect)(()=>{O(),(async()=>{try{let e=await fetch("/api/gw/admin/config");if(!e.ok)return;let t=await e.json(),n=[];for(let e of(t.models.length&&n.push({label:"Combos",items:t.models.map(e=>({value:e.alias,label:e.alias}))}),t.providers))e.models.length&&n.push({label:e.id,items:e.models.map(t=>({value:`${e.id}/${t.id}`,label:`${e.id}/${t.id}`}))});W(n)}catch{}})(),a.adminApi.budgets().then(e=>{if(!e.ok||!e.data)return;let t={};for(let n of e.data.budgets)"key"===n.scope.type&&(t[n.scope.id]={limit:n.limit,window:n.window});C(t)})},[O]),!e)return(0,t.jsx)(l.Empty,{children:"Loading…"});let D=null!==j?e.keys[j]:null;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"mb-6 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:"Access Keys"}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-text-muted",children:"Client API keys — each can have its own models, rate limit, and budget."})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(i.Input,{value:h,onChange:e=>b(e.target.value),placeholder:"Search or name new key…",className:"w-48"}),(0,t.jsxs)(i.Button,{disabled:"genkey"===u,onClick:()=>{let e;return $(h,(e=new Uint8Array(24),crypto.getRandomValues(e),`aig-${Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}`))},className:"whitespace-nowrap",children:[(0,t.jsx)(s.Icon,{name:"add",size:16}),"genkey"===u?"Adding…":"Add key"]})]})]}),d&&(0,t.jsxs)("div",{className:"mb-4 flex items-center justify-between gap-2 rounded-brand border border-danger/30 bg-danger/8 px-4 py-2.5 text-[13px] text-danger",children:[(0,t.jsx)("span",{children:d}),(0,t.jsx)("button",{onClick:()=>p(""),className:"hover:text-text",children:(0,t.jsx)(s.Icon,{name:"close",size:15})})]}),0===e.keys.length?(0,t.jsx)(l.Empty,{children:"No keys — auth is DISABLED (localhost only). Add one above."}):(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:e.keys.map((e,n)=>{if(h&&!(e.name??"").toLowerCase().includes(h.toLowerCase())&&!e.key.toLowerCase().includes(h.toLowerCase()))return null;let i=!!e.expires&&Date.now()>e.expires,r=F[e.fingerprint];return(0,t.jsxs)("div",{className:`group rounded-brand-lg border bg-surface p-4 shadow-soft transition-colors ${i?"border-danger/35 opacity-70":"border-border hover:border-text-subtle"}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)(m,{name:e.name||"Unnamed key",masked:e.key,reveal:async()=>{let e=await a.adminApi.revealServerKey(n);return e.ok?e.data?.key??null:null}}),(0,t.jsx)(o.Badge,{tone:i?"danger":"live",children:i?"expired":"active"})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[(0,t.jsx)(o.Badge,{tone:e.models?.length?"info":"neutral",children:e.models?.length?`${e.models.length} model${e.models.length>1?"s":""}`:"all models"}),e.rpm&&(0,t.jsxs)(o.Badge,{tone:"neutral",children:[e.rpm,"/min"]}),r&&(0,t.jsxs)(o.Badge,{tone:"info",children:["$",r.limit,"/",r.window]}),e.expires&&!i&&(0,t.jsxs)(o.Badge,{tone:"neutral",children:["expires ",l.fmt.date(e.expires)]})]}),(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-2",children:[(0,t.jsxs)("button",{onClick:()=>{y(n)},className:"inline-flex items-center gap-1.5 rounded-brand border border-border px-3 py-1.5 text-[12.5px] text-text-muted hover:border-text-subtle hover:text-text",children:[(0,t.jsx)(s.Icon,{name:"edit",size:14})," Edit"]}),(0,t.jsxs)("button",{onClick:()=>f({i:n,label:e.name||e.key}),className:"inline-flex items-center gap-1.5 rounded-brand border border-border px-3 py-1.5 text-[12.5px] text-text-muted hover:border-danger/40 hover:text-danger",children:[(0,t.jsx)(s.Icon,{name:"delete",size:14})," Remove"]})]})]},n)})}),null!==j&&D&&(0,t.jsx)(x,{keyIndex:j,k:D,fingerprint:D.fingerprint,groups:N,keyBudget:F[D.fingerprint],onClose:()=>y(null),onSave:()=>{y(null),O()}}),v&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-6",onClick:()=>k(null),children:(0,t.jsxs)("div",{className:"w-full max-w-sm rounded-brand-lg border border-border bg-surface p-5 shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("h2",{className:"mb-2 text-[14px] font-semibold text-text",children:"Key created — copy it now"}),(0,t.jsx)("p",{className:"mb-3 text-[12px] text-text-muted",children:"This is the only time the full key is shown."}),(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-brand bg-bg px-3 py-2",children:[(0,t.jsx)("code",{className:"flex-1 break-all text-[11.5px] text-text",children:v.key}),(0,t.jsx)("button",{onClick:()=>void navigator.clipboard.writeText(v.key),className:"text-text-subtle hover:text-text",children:(0,t.jsx)(s.Icon,{name:"content_copy",size:14})})]}),(0,t.jsx)(i.Button,{className:"mt-4 w-full",onClick:()=>k(null),children:"Done"})]})}),w&&(0,t.jsx)(r.ConfirmModal,{title:"Remove key?",message:`"${w.label}" will stop working immediately.`,confirmLabel:"Remove",busy:u===`delkey${w.i}`,onConfirm:()=>S(`delkey${w.i}`,async()=>{let e=await a.adminApi.removeServerKey(w.i);return e.ok&&f(null),e}),onCancel:()=>f(null)})]})}],49931)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70757,e=>{"use strict";let t;var n,r,l,i,a,o,s,u,d,c,h,f,g,p,b,m,v,x,y,w=e.i(43476),C=e.i(71645),D=e.i(22016),j=e.i(74080);let E="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function S(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function k(e){return"nodeType"in e}function M(e){var t,n;return e?S(e)?e:k(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function R(e){let{Document:t}=M(e);return e instanceof t}function N(e){return!S(e)&&e instanceof M(e).HTMLElement}function T(e){return e instanceof M(e).SVGElement}function I(e){return e?S(e)?e.document:k(e)?R(e)?e:N(e)||T(e)?e.ownerDocument:document:document:document}let A=E?C.useLayoutEffect:C.useEffect;function O(e){let t=(0,C.useRef)(e);return A(()=>{t.current=e}),(0,C.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)},[])}function L(e,t){void 0===t&&(t=[e]);let n=(0,C.useRef)(e);return A(()=>{n.current!==e&&(n.current=e)},t),n}function P(e,t){let n=(0,C.useRef)();return(0,C.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function B(e){let t=O(e),n=(0,C.useRef)(null),r=(0,C.useCallback)(e=>{e!==n.current&&(null==t||t(e,n.current)),n.current=e},[]);return[n,r]}function z(e){let t=(0,C.useRef)();return(0,C.useEffect)(()=>{t.current=e},[e]),t.current}let U={};function _(e,t){return(0,C.useMemo)(()=>{if(t)return t;let n=null==U[e]?0:U[e]+1;return U[e]=n,e+"-"+n},[e,t])}function F(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),l=1;l<n;l++)r[l-1]=arguments[l];return r.reduce((t,n)=>{for(let[r,l]of Object.entries(n)){let n=t[r];null!=n&&(t[r]=n+e*l)}return t},{...t})}}let K=F(1),X=F(-1);function Y(e){if(!e)return!1;let{KeyboardEvent:t}=M(e.target);return t&&e instanceof t}function W(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=M(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let H=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[H.Translate.toString(e),H.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),$="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",q={display:"none"};function J(e){let{id:t,value:n}=e;return C.default.createElement("div",{id:t,style:q},n)}function V(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;return C.default.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},n)}let G=(0,C.createContext)(null),Q={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},Z={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function ee(e){var t;let n,{announcements:r=Z,container:l,hiddenTextDescribedById:i,screenReaderInstructions:a=Q}=e,{announce:o,announcement:s}=function(){let[e,t]=(0,C.useState)("");return{announce:(0,C.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),u=_("DndLiveRegion"),[d,c]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{c(!0)},[]),t=(0,C.useMemo)(()=>({onDragStart(e){let{active:t}=e;o(r.onDragStart({active:t}))},onDragMove(e){let{active:t,over:n}=e;r.onDragMove&&o(r.onDragMove({active:t,over:n}))},onDragOver(e){let{active:t,over:n}=e;o(r.onDragOver({active:t,over:n}))},onDragEnd(e){let{active:t,over:n}=e;o(r.onDragEnd({active:t,over:n}))},onDragCancel(e){let{active:t,over:n}=e;o(r.onDragCancel({active:t,over:n}))}}),[o,r]),n=(0,C.useContext)(G),(0,C.useEffect)(()=>{if(!n)throw Error("useDndMonitor must be used within a children of <DndContext>");return n(t)},[t,n]),!d)return null;let h=C.default.createElement(C.default.Fragment,null,C.default.createElement(J,{id:i,value:a.draggable}),C.default.createElement(V,{id:u,announcement:s}));return l?(0,j.createPortal)(h,l):h}function et(){}(n=c||(c={})).DragStart="dragStart",n.DragMove="dragMove",n.DragEnd="dragEnd",n.DragCancel="dragCancel",n.DragOver="dragOver",n.RegisterDroppable="registerDroppable",n.SetDroppableDisabled="setDroppableDisabled",n.UnregisterDroppable="unregisterDroppable";let en=Object.freeze({x:0,y:0});function er(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function el(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function ei(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}let ea=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,l=ei(t,t.left,t.top),i=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){var a;let n=(a=ei(r),Math.sqrt(Math.pow(a.x-l.x,2)+Math.pow(a.y-l.y,2)));i.push({id:t,data:{droppableContainer:e,value:n}})}}return i.sort(er)},eo=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,l=[];for(let e of r){let{id:r}=e,i=n.get(r);if(i){let n=function(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),l=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height);if(r<l&&n<i){let a=t.width*t.height,o=e.width*e.height,s=(l-r)*(i-n);return Number((s/(a+o-s)).toFixed(4))}return 0}(i,t);n>0&&l.push({id:r,data:{droppableContainer:e,value:n}})}}return l.sort(el)};function es(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:en}let eu=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((e,t)=>({...e,top:e.top+ +t.y,bottom:e.bottom+ +t.y,left:e.left+ +t.x,right:e.right+ +t.x}),{...e})},ed={ignoreTransform:!1};function ec(e,t){void 0===t&&(t=ed);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=M(e).getComputedStyle(e);t&&(n=function(e,t,n){let r=function(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}(t);if(!r)return e;let{scaleX:l,scaleY:i,x:a,y:o}=r,s=e.left-a-(1-l)*parseFloat(n),u=e.top-o-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=l?e.width/l:e.width,c=i?e.height/i:e.height;return{width:d,height:c,top:u,right:s+d,bottom:u+c,left:s}}(n,t,r))}let{top:r,left:l,width:i,height:a,bottom:o,right:s}=n;return{top:r,left:l,width:i,height:a,bottom:o,right:s}}function eh(e){return ec(e,{ignoreTransform:!0})}function ef(e,t){let n=[];return e?function r(l){var i,a;let o;if(null!=t&&n.length>=t||!l)return n;if(R(l)&&null!=l.scrollingElement&&!n.includes(l.scrollingElement))return n.push(l.scrollingElement),n;if(!N(l)||T(l)||n.includes(l))return n;let s=M(e).getComputedStyle(l);return(l!==e&&(void 0===(i=s)&&(i=M(l).getComputedStyle(l)),o=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let t=i[e];return"string"==typeof t&&o.test(t)}))&&n.push(l),void 0===(a=s)&&(a=M(l).getComputedStyle(l)),"fixed"===a.position)?n:r(l.parentNode)}(e):n}function eg(e){let[t]=ef(e,1);return null!=t?t:null}function ep(e){return E&&e?S(e)?e:k(e)?R(e)||e===I(e).scrollingElement?window:N(e)?e:null:null:null}function eb(e){return S(e)?e.scrollX:e.scrollLeft}function em(e){return S(e)?e.scrollY:e.scrollTop}function ev(e){return{x:eb(e),y:em(e)}}function ex(e){return!!E&&!!e&&e===document.scrollingElement}function ey(e){let t={x:0,y:0},n=ex(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},l=e.scrollTop<=t.y,i=e.scrollLeft<=t.x;return{isTop:l,isLeft:i,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}(r=h||(h={}))[r.Forward=1]="Forward",r[r.Backward=-1]="Backward";let ew={x:.2,y:.2};function eC(e){return e.reduce((e,t)=>K(e,ev(t)),en)}let eD=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+eb(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+em(t),0)}]];class ej{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=ef(t),r=eC(n);for(const[t,l,i]of(this.rect={...e},this.width=e.width,this.height=e.height,eD))for(const e of l)Object.defineProperty(this,e,{get:()=>{let l=i(n),a=r[t]-l;return this.rect[e]+a},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class eE{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function eS(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}function ek(e){e.preventDefault()}function eM(e){e.stopPropagation()}(l=f||(f={})).Click="click",l.DragStart="dragstart",l.Keydown="keydown",l.ContextMenu="contextmenu",l.Resize="resize",l.SelectionChange="selectionchange",l.VisibilityChange="visibilitychange",(i=g||(g={})).Space="Space",i.Down="ArrowDown",i.Right="ArrowRight",i.Left="ArrowLeft",i.Up="ArrowUp",i.Esc="Escape",i.Enter="Enter",i.Tab="Tab";let eR={start:[g.Space,g.Enter],cancel:[g.Esc],end:[g.Space,g.Enter,g.Tab]},eN=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case g.Right:return{...n,x:n.x+25};case g.Left:return{...n,x:n.x-25};case g.Down:return{...n,y:n.y+25};case g.Up:return{...n,y:n.y-25}}};class eT{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new eE(I(t)),this.windowListeners=new eE(M(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(f.Resize,this.handleCancel),this.windowListeners.add(f.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(f.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&function(e,t){if(void 0===t&&(t=ec),!e)return;let{top:n,left:r,bottom:l,right:i}=t(e);eg(e)&&(l<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(n),t(en)}handleKeyDown(e){if(Y(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:l=eR,coordinateGetter:i=eN,scrollBehavior:a="smooth"}=r,{code:o}=e;if(l.end.includes(o))return void this.handleEnd(e);if(l.cancel.includes(o))return void this.handleCancel(e);let{collisionRect:s}=n.current,u=s?{x:s.left,y:s.top}:en;this.referenceCoordinates||(this.referenceCoordinates=u);let d=i(e,{active:t,context:n.current,currentCoordinates:u});if(d){let t=X(d,u),r={x:0,y:0},{scrollableAncestors:l}=n.current;for(let n of l){let l=e.code,{isTop:i,isRight:o,isLeft:s,isBottom:u,maxScroll:c,minScroll:h}=ey(n),f=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:l}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:l,width:e.clientWidth,height:e.clientHeight}}(n),p={x:Math.min(l===g.Right?f.right-f.width/2:f.right,Math.max(l===g.Right?f.left:f.left+f.width/2,d.x)),y:Math.min(l===g.Down?f.bottom-f.height/2:f.bottom,Math.max(l===g.Down?f.top:f.top+f.height/2,d.y))},b=l===g.Right&&!o||l===g.Left&&!s,m=l===g.Down&&!u||l===g.Up&&!i;if(b&&p.x!==d.x){let e=n.scrollLeft+t.x,i=l===g.Right&&e<=c.x||l===g.Left&&e>=h.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:a});i?r.x=n.scrollLeft-e:r.x=l===g.Right?n.scrollLeft-c.x:n.scrollLeft-h.x,r.x&&n.scrollBy({left:-r.x,behavior:a});break}if(m&&p.y!==d.y){let e=n.scrollTop+t.y,i=l===g.Down&&e<=c.y||l===g.Up&&e>=h.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:a});i?r.y=n.scrollTop-e:r.y=l===g.Down?n.scrollTop-c.y:n.scrollTop-h.y,r.y&&n.scrollBy({top:-r.y,behavior:a});break}}this.handleMove(e,K(X(d,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function eI(e){return!!(e&&"distance"in e)}function eA(e){return!!(e&&"delay"in e)}eT.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=eR,onActivation:l}=t,{active:i}=n,{code:a}=e.nativeEvent;if(r.start.includes(a)){let t=i.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==l||l({event:e.nativeEvent}),!0)}return!1}}];class eO{constructor(e,t,n){var r;void 0===n&&(n=function(e){let{EventTarget:t}=M(e);return e instanceof t?e:I(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:l}=e,{target:i}=l;this.props=e,this.events=t,this.document=I(i),this.documentListeners=new eE(this.document),this.listeners=new eE(n),this.windowListeners=new eE(M(i)),this.initialCoordinates=null!=(r=W(l))?r:en,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(f.Resize,this.handleCancel),this.windowListeners.add(f.DragStart,ek),this.windowListeners.add(f.VisibilityChange,this.handleCancel),this.windowListeners.add(f.ContextMenu,ek),this.documentListeners.add(f.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(eA(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(eI(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(f.Click,eM,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(f.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:n,initialCoordinates:r,props:l}=this,{onMove:i,options:{activationConstraint:a}}=l;if(!r)return;let o=null!=(t=W(e))?t:en,s=X(r,o);if(!n&&a){if(eI(a)){if(null!=a.tolerance&&eS(s,a.tolerance))return this.handleCancel();if(eS(s,a.distance))return this.handleStart()}return eA(a)&&eS(s,a.tolerance)?this.handleCancel():void this.handlePending(a,s)}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===g.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let eL={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class eP extends eO{constructor(e){const{event:t}=e;super(e,eL,I(t.target))}}eP.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!!n.isPrimary&&0===n.button&&(null==r||r({event:n}),!0)}}];(a=p||(p={}))[a.RightClick=2]="RightClick";(o=b||(b={}))[o.Pointer=0]="Pointer",o[o.DraggableRect=1]="DraggableRect",(s=m||(m={}))[s.TreeOrder=0]="TreeOrder",s[s.ReversedTreeOrder=1]="ReversedTreeOrder";let eB={x:{[h.Backward]:!1,[h.Forward]:!1},y:{[h.Backward]:!1,[h.Forward]:!1}};(u=v||(v={}))[u.Always=0]="Always",u[u.BeforeDragging=1]="BeforeDragging",u[u.WhileDragging=2]="WhileDragging",(x||(x={})).Optimized="optimized";let ez=new Map;function eU(e,t){return P(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function e_(e){let{callback:t,disabled:n}=e,r=O(t),l=(0,C.useMemo)(()=>{if(n||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,C.useEffect)(()=>()=>null==l?void 0:l.disconnect(),[l]),l}function eF(e){return new ej(ec(e),e)}function eK(e,t,n){void 0===t&&(t=eF);let[r,l]=(0,C.useState)(null);function i(){l(r=>{if(!e)return null;if(!1===e.isConnected){var l;return null!=(l=null!=r?r:n)?l:null}let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let a=function(e){let{callback:t,disabled:n}=e,r=O(t),l=(0,C.useMemo)(()=>{if(n||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,C.useEffect)(()=>()=>null==l?void 0:l.disconnect(),[l]),l}({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){i();break}}}}),o=e_({callback:i});return A(()=>{i(),e?(null==o||o.observe(e),null==a||a.observe(document.body,{childList:!0,subtree:!0})):(null==o||o.disconnect(),null==a||a.disconnect())},[e]),r}let eX=[];function eY(e,t){void 0===t&&(t=[]);let n=(0,C.useRef)(null);return(0,C.useEffect)(()=>{n.current=null},t),(0,C.useEffect)(()=>{let t=e!==en;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?X(e,n.current):en}function eW(e){return(0,C.useMemo)(()=>{let t,n;return e?(t=e.innerWidth,{top:0,left:0,right:t,bottom:n=e.innerHeight,width:t,height:n}):null},[e])}let eH=[],e$=[{sensor:eP,options:{}},{sensor:eT,options:{}}],eq={current:{}},eJ={draggable:{measure:eh},droppable:{measure:eh,strategy:v.WhileDragging,frequency:x.Optimized},dragOverlay:{measure:ec}};class eV extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}let eG={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new eV,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:et},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:eJ,measureDroppableContainers:et,windowRect:null,measuringScheduled:!1},eQ={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:et,draggableNodes:new Map,over:null,measureDroppableContainers:et},eZ=(0,C.createContext)(eQ),e0=(0,C.createContext)(eG);function e1(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new eV}}}function e2(e,t){switch(t.type){case c.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case c.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case c.DragEnd:case c.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case c.RegisterDroppable:{let{element:n}=t,{id:r}=n,l=new eV(e.droppable.containers);return l.set(r,n),{...e,droppable:{...e.droppable,containers:l}}}case c.SetDroppableDisabled:{let{id:n,key:r,disabled:l}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new eV(e.droppable.containers);return a.set(n,{...i,disabled:l}),{...e,droppable:{...e.droppable,containers:a}}}case c.UnregisterDroppable:{let{id:n,key:r}=t,l=e.droppable.containers.get(n);if(!l||r!==l.key)return e;let i=new eV(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function e5(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:l}=(0,C.useContext)(eZ),i=z(r),a=z(null==n?void 0:n.id);return(0,C.useEffect)(()=>{if(!t&&!r&&i&&null!=a){if(!Y(i)||document.activeElement===i.target)return;let e=l.get(a);if(!e)return;let{activatorNode:t,node:n}=e;(t.current||n.current)&&requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=e.matches($)?e:e.querySelector($);if(t){t.focus();break}}})}},[r,t,l,a,i]),null}let e4=(0,C.createContext)({...en,scaleX:1,scaleY:1});(d=y||(y={}))[d.Uninitialized=0]="Uninitialized",d[d.Initializing=1]="Initializing",d[d.Initialized=2]="Initialized";let e3=(0,C.memo)(function(e){var t,n,r,l,i,a,o,s;let u,d,f,g,p,x,w,D,{id:S,accessibility:k,autoScroll:R=!0,children:T,sensors:I=e$,collisionDetection:O=eo,measuring:U,modifiers:F,...X}=e,[Y,H]=(0,C.useReducer)(e2,void 0,e1),[$,q]=function(){let[e]=(0,C.useState)(()=>new Set),t=(0,C.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,C.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),t]}(),[J,V]=(0,C.useState)(y.Uninitialized),Q=J===y.Initialized,{draggable:{active:Z,nodes:et,translate:er},droppable:{containers:el}}=Y,ei=null!=Z?et.get(Z):null,ea=(0,C.useRef)({initial:null,translated:null}),ed=(0,C.useMemo)(()=>{var e;return null!=Z?{id:Z,data:null!=(e=null==ei?void 0:ei.data)?e:eq,rect:ea}:null},[Z,ei]),eh=(0,C.useRef)(null),[eb,em]=(0,C.useState)(null),[eD,eE]=(0,C.useState)(null),eS=L(X,Object.values(X)),ek=_("DndDescribedBy",S),eM=(0,C.useMemo)(()=>el.getEnabled(),[el]),eR=(0,C.useMemo)(()=>({draggable:{...eJ.draggable,...null==U?void 0:U.draggable},droppable:{...eJ.droppable,...null==U?void 0:U.droppable},dragOverlay:{...eJ.dragOverlay,...null==U?void 0:U.dragOverlay}}),[null==U?void 0:U.draggable,null==U?void 0:U.droppable,null==U?void 0:U.dragOverlay]),{droppableRects:eN,measureDroppableContainers:eT,measuringScheduled:eI}=function(e,t){let{dragging:n,dependencies:r,config:l}=t,[i,a]=(0,C.useState)(null),{frequency:o,measure:s,strategy:u}=l,d=(0,C.useRef)(e),c=function(){switch(u){case v.Always:return!1;case v.BeforeDragging:return n;default:return!n}}(),h=L(c),f=(0,C.useCallback)(function(e){void 0===e&&(e=[]),h.current||a(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[h]),g=(0,C.useRef)(null),p=P(t=>{if(c&&!n)return ez;if(!t||t===ez||d.current!==e||null!=i){let t=new Map;for(let n of e){if(!n)continue;if(i&&i.length>0&&!i.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ej(s(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,i,n,c,s]);return(0,C.useEffect)(()=>{d.current=e},[e]),(0,C.useEffect)(()=>{c||f()},[n,c]),(0,C.useEffect)(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),(0,C.useEffect)(()=>{c||"number"!=typeof o||null!==g.current||(g.current=setTimeout(()=>{f(),g.current=null},o))},[o,c,f,...r]),{droppableRects:p,measureDroppableContainers:f,measuringScheduled:null!=i}}(eM,{dragging:Q,dependencies:[er.x,er.y],config:eR.droppable}),eA=P(e=>{var t;return null==Z?null:null!=(t=null!=p?p:e)?t:null},[p=(g=null!=Z?et.get(Z):void 0)?g.node.current:null,Z]),eO=(0,C.useMemo)(()=>eD?W(eD):null,[eD]),eL=(u=(null==eb?void 0:eb.autoScrollEnabled)===!1,d="object"==typeof R?!1===R.enabled:!1===R,f=Q&&!u&&!d,"object"==typeof R?{...R,enabled:f}:{enabled:f}),eP=eU(eA,eR.draggable.measure);!function(e){let{activeNode:t,measure:n,initialRect:r,config:l=!0}=e,i=(0,C.useRef)(!1),{x:a,y:o}="boolean"==typeof l?{x:l,y:l}:l;A(()=>{if(!a&&!o||!t){i.current=!1;return}if(i.current||!r)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let l=es(n(e),r);if(a||(l.x=0),o||(l.y=0),i.current=!0,Math.abs(l.x)>0||Math.abs(l.y)>0){let t=eg(e);t&&t.scrollBy({top:l.y,left:l.x})}},[t,a,o,r,n])}({activeNode:null!=Z?et.get(Z):null,config:eL.layoutShiftCompensation,initialRect:eP,measure:eR.draggable.measure});let eF=eK(eA,eR.draggable.measure,eP),eV=eK(eA?eA.parentElement:null),eG=(0,C.useRef)({activatorEvent:null,active:null,activeNode:eA,collisionRect:null,collisions:null,droppableRects:eN,draggableNodes:et,draggingNode:null,draggingNodeRect:null,droppableContainers:el,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eQ=el.getNodeFor(null==(t=eG.current.over)?void 0:t.id),e3=function(e){let{measure:t}=e,[n,r]=(0,C.useState)(null),l=e_({callback:(0,C.useCallback)(e=>{for(let{target:n}of e)if(N(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[i,a]=B((0,C.useCallback)(e=>{let n=function(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return N(t)?t:e}(e);null==l||l.disconnect(),n&&(null==l||l.observe(n)),r(n?t(n):null)},[t,l]));return(0,C.useMemo)(()=>({nodeRef:i,rect:n,setRef:a}),[n,i,a])}({measure:eR.dragOverlay.measure}),e7=null!=(n=e3.nodeRef.current)?n:eA,e8=Q?null!=(r=e3.rect)?r:eF:null,e6=!!(e3.nodeRef.current&&e3.rect),e9=(x=eU(i=e6?null:eF),es(i,x)),te=eW(e7?M(e7):null),tt=(a=Q?null!=eQ?eQ:eA:null,w=(0,C.useRef)(a),D=P(e=>a?e&&e!==eX&&a&&w.current&&a.parentNode===w.current.parentNode?e:ef(a):eX,[a]),(0,C.useEffect)(()=>{w.current=a},[a]),D),tn=function(e,t){void 0===t&&(t=ec);let[n]=e,r=eW(n?M(n):null),[l,i]=(0,C.useState)(eH);function a(){i(()=>e.length?e.map(e=>ex(e)?r:new ej(t(e),e)):eH)}let o=e_({callback:a});return A(()=>{null==o||o.disconnect(),a(),e.forEach(e=>null==o?void 0:o.observe(e))},[e]),l}(tt),tr=function(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}(F,{transform:{x:er.x-e9.x,y:er.y-e9.y,scaleX:1,scaleY:1},activatorEvent:eD,active:ed,activeNodeRect:eF,containerNodeRect:eV,draggingNodeRect:e8,over:eG.current.over,overlayNodeRect:e3.rect,scrollableAncestors:tt,scrollableAncestorRects:tn,windowRect:te}),tl=eO?K(eO,er):null,ti=function(e){let[t,n]=(0,C.useState)(null),r=(0,C.useRef)(e),l=(0,C.useCallback)(e=>{let t=ep(e.target);t&&n(e=>e?(e.set(t,ev(t)),new Map(e)):null)},[]);return(0,C.useEffect)(()=>{let t=r.current;if(e!==t){i(t);let a=e.map(e=>{let t=ep(e);return t?(t.addEventListener("scroll",l,{passive:!0}),[t,ev(t)]):null}).filter(e=>null!=e);n(a.length?new Map(a):null),r.current=e}return()=>{i(e),i(t)};function i(e){e.forEach(e=>{let t=ep(e);null==t||t.removeEventListener("scroll",l)})}},[l,e]),(0,C.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>K(e,t),en):eC(e):en,[e,t])}(tt),ta=eY(ti),to=eY(ti,[eF]),ts=K(tr,ta),tu=e8?eu(e8,tr):null,td=ed&&tu?O({active:ed,collisionRect:tu,droppableRects:eN,droppableContainers:eM,pointerCoordinates:tl}):null,tc=function(e){if(!e||0===e.length)return null;let[t]=e;return t.id}(td),[th,tf]=(0,C.useState)(null),tg=(o=e6?tr:K(tr,to),s=null!=(l=null==th?void 0:th.rect)?l:null,{...o,scaleX:s&&eF?s.width/eF.width:1,scaleY:s&&eF?s.height/eF.height:1}),tp=(0,C.useRef)(null),tb=(0,C.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(null==eh.current)return;let l=et.get(eh.current);if(!l)return;let i=e.nativeEvent,a=new n({active:eh.current,activeNode:l,event:i,options:r,context:eG,onAbort(e){if(!et.get(e))return;let{onDragAbort:t}=eS.current,n={id:e};null==t||t(n),$({type:"onDragAbort",event:n})},onPending(e,t,n,r){if(!et.get(e))return;let{onDragPending:l}=eS.current,i={id:e,constraint:t,initialCoordinates:n,offset:r};null==l||l(i),$({type:"onDragPending",event:i})},onStart(e){let t=eh.current;if(null==t)return;let n=et.get(t);if(!n)return;let{onDragStart:r}=eS.current,l={activatorEvent:i,active:{id:t,data:n.data,rect:ea}};(0,j.unstable_batchedUpdates)(()=>{null==r||r(l),V(y.Initializing),H({type:c.DragStart,initialCoordinates:e,active:t}),$({type:"onDragStart",event:l}),em(tp.current),eE(i)})},onMove(e){H({type:c.DragMove,coordinates:e})},onEnd:o(c.DragEnd),onCancel:o(c.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:l}=eG.current,a=null;if(t&&l){let{cancelDrop:o}=eS.current;a={activatorEvent:i,active:t,collisions:n,delta:l,over:r},e===c.DragEnd&&"function"==typeof o&&await Promise.resolve(o(a))&&(e=c.DragCancel)}eh.current=null,(0,j.unstable_batchedUpdates)(()=>{H({type:e}),V(y.Uninitialized),tf(null),em(null),eE(null),tp.current=null;let t=e===c.DragEnd?"onDragEnd":"onDragCancel";if(a){let e=eS.current[t];null==e||e(a),$({type:t,event:a})}})}}tp.current=a},[et]),tm=(0,C.useCallback)((e,t)=>(n,r)=>{let l=n.nativeEvent,i=et.get(r);null!==eh.current||!i||l.dndKit||l.defaultPrevented||!0===e(n,t.options,{active:i})&&(l.dndKit={capturedBy:t.sensor},eh.current=r,tb(n,t))},[et,tb]),tv=(0,C.useMemo)(()=>I.reduce((e,t)=>{let{sensor:n}=t;return[...e,...n.activators.map(e=>({eventName:e.eventName,handler:tm(e.handler,t)}))]},[]),[I,tm]);(0,C.useEffect)(()=>{if(!E)return;let e=I.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},I.map(e=>{let{sensor:t}=e;return t})),A(()=>{eF&&J===y.Initializing&&V(y.Initialized)},[eF,J]),(0,C.useEffect)(()=>{let{onDragMove:e}=eS.current,{active:t,activatorEvent:n,collisions:r,over:l}=eG.current;if(!t||!n)return;let i={active:t,activatorEvent:n,collisions:r,delta:{x:ts.x,y:ts.y},over:l};(0,j.unstable_batchedUpdates)(()=>{null==e||e(i),$({type:"onDragMove",event:i})})},[ts.x,ts.y]),(0,C.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:l}=eG.current;if(!e||null==eh.current||!t||!l)return;let{onDragOver:i}=eS.current,a=r.get(tc),o=a&&a.rect.current?{id:a.id,rect:a.rect.current,data:a.data,disabled:a.disabled}:null,s={active:e,activatorEvent:t,collisions:n,delta:{x:l.x,y:l.y},over:o};(0,j.unstable_batchedUpdates)(()=>{tf(o),null==i||i(s),$({type:"onDragOver",event:s})})},[tc]),A(()=>{eG.current={activatorEvent:eD,active:ed,activeNode:eA,collisionRect:tu,collisions:td,droppableRects:eN,draggableNodes:et,draggingNode:e7,draggingNodeRect:e8,droppableContainers:el,over:th,scrollableAncestors:tt,scrollAdjustedTranslate:ts},ea.current={initial:e8,translated:tu}},[ed,eA,td,tu,et,e7,e8,eN,el,th,tt,ts]),function(e){let t,{acceleration:n,activator:r=b.Pointer,canScroll:l,draggingRect:i,enabled:a,interval:o=5,order:s=m.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:c,delta:f,threshold:g}=e,p=function(e){let{delta:t,disabled:n}=e,r=z(t);return P(e=>{if(n||!r||!e)return eB;let l={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[h.Backward]:e.x[h.Backward]||-1===l.x,[h.Forward]:e.x[h.Forward]||1===l.x},y:{[h.Backward]:e.y[h.Backward]||-1===l.y,[h.Forward]:e.y[h.Forward]||1===l.y}}},[n,t,r])}({delta:f,disabled:!a}),[v,x]=(t=(0,C.useRef)(null),[(0,C.useCallback)((e,n)=>{t.current=setInterval(e,n)},[]),(0,C.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]),y=(0,C.useRef)({x:0,y:0}),w=(0,C.useRef)({x:0,y:0}),D=(0,C.useMemo)(()=>{switch(r){case b.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case b.DraggableRect:return i}},[r,i,u]),j=(0,C.useRef)(null),E=(0,C.useCallback)(()=>{let e=j.current;if(!e)return;let t=y.current.x*w.current.x,n=y.current.y*w.current.y;e.scrollBy(t,n)},[]),S=(0,C.useMemo)(()=>s===m.TreeOrder?[...d].reverse():d,[s,d]);(0,C.useEffect)(()=>{if(!a||!d.length||!D)return void x();for(let e of S){if((null==l?void 0:l(e))===!1)continue;let t=c[d.indexOf(e)];if(!t)continue;let{direction:r,speed:i}=function(e,t,n,r,l){let{top:i,left:a,right:o,bottom:s}=n;void 0===r&&(r=10),void 0===l&&(l=ew);let{isTop:u,isBottom:d,isLeft:c,isRight:f}=ey(e),g={x:0,y:0},p={x:0,y:0},b={height:t.height*l.y,width:t.width*l.x};return!u&&i<=t.top+b.height?(g.y=h.Backward,p.y=r*Math.abs((t.top+b.height-i)/b.height)):!d&&s>=t.bottom-b.height&&(g.y=h.Forward,p.y=r*Math.abs((t.bottom-b.height-s)/b.height)),!f&&o>=t.right-b.width?(g.x=h.Forward,p.x=r*Math.abs((t.right-b.width-o)/b.width)):!c&&a<=t.left+b.width&&(g.x=h.Backward,p.x=r*Math.abs((t.left+b.width-a)/b.width)),{direction:g,speed:p}}(e,t,D,n,g);for(let e of["x","y"])p[e][r[e]]||(i[e]=0,r[e]=0);if(i.x>0||i.y>0){x(),j.current=e,v(E,o),y.current=i,w.current=r;return}}y.current={x:0,y:0},w.current={x:0,y:0},x()},[n,E,l,x,a,o,JSON.stringify(D),JSON.stringify(p),v,d,S,c,JSON.stringify(g)])}({...eL,delta:er,draggingRect:tu,pointerCoordinates:tl,scrollableAncestors:tt,scrollableAncestorRects:tn});let tx=(0,C.useMemo)(()=>({active:ed,activeNode:eA,activeNodeRect:eF,activatorEvent:eD,collisions:td,containerNodeRect:eV,dragOverlay:e3,draggableNodes:et,droppableContainers:el,droppableRects:eN,over:th,measureDroppableContainers:eT,scrollableAncestors:tt,scrollableAncestorRects:tn,measuringConfiguration:eR,measuringScheduled:eI,windowRect:te}),[ed,eA,eF,eD,td,eV,e3,et,el,eN,th,eT,tt,tn,eR,eI,te]),ty=(0,C.useMemo)(()=>({activatorEvent:eD,activators:tv,active:ed,activeNodeRect:eF,ariaDescribedById:{draggable:ek},dispatch:H,draggableNodes:et,over:th,measureDroppableContainers:eT}),[eD,tv,ed,eF,H,ek,et,th,eT]);return C.default.createElement(G.Provider,{value:q},C.default.createElement(eZ.Provider,{value:ty},C.default.createElement(e0.Provider,{value:tx},C.default.createElement(e4.Provider,{value:tg},T)),C.default.createElement(e5,{disabled:(null==k?void 0:k.restoreFocus)===!1})),C.default.createElement(ee,{...k,hiddenTextDescribedById:ek}))}),e7=(0,C.createContext)(null),e8="button",e6={timeout:25},e9={position:"fixed",touchAction:"none"},te=e=>Y(e)?"transform 250ms ease":void 0;function tt(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function tn(e){return null!==e&&e>=0}(e,t)=>{let{as:n,activatorEvent:r,adjustScale:l,children:i,className:a,rect:o,style:s,transform:u,transition:d=te}=e;if(!o)return null;let c=l?u:{...u,scaleX:1,scaleY:1},h={...e9,width:o.width,height:o.height,top:o.top,left:o.left,transform:H.Transform.toString(c),transformOrigin:l&&r?function(e,t){let n=W(e);if(!n)return"0 0";let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}(r,o):void 0,transition:"function"==typeof d?d(r):d,...s};return C.default.createElement(n,{className:a,style:h,ref:t},i)},t={styles:{active:{opacity:"0"}}};let tr=e=>{let{rects:t,activeIndex:n,overIndex:r,index:l}=e,i=tt(t,r,n),a=t[l],o=i[l];return o&&a?{x:o.left-a.left,y:o.top-a.top,scaleX:o.width/a.width,scaleY:o.height/a.height}:null},tl="Sortable",ti=C.default.createContext({activeIndex:-1,containerId:tl,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:tr,disabled:{draggable:!1,droppable:!1}});function ta(e){let{children:t,id:n,items:r,strategy:l=tr,disabled:i=!1}=e,{active:a,dragOverlay:o,droppableRects:s,over:u,measureDroppableContainers:d}=(0,C.useContext)(e0),c=_(tl,n),h=null!==o.rect,f=(0,C.useMemo)(()=>r.map(e=>"object"==typeof e&&"id"in e?e.id:e),[r]),g=null!=a,p=a?f.indexOf(a.id):-1,b=u?f.indexOf(u.id):-1,m=(0,C.useRef)(f),v=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(f,m.current),x=-1!==b&&-1===p||v,y="boolean"==typeof i?{draggable:i,droppable:i}:i;A(()=>{v&&g&&d(f)},[v,f,g,d]),(0,C.useEffect)(()=>{m.current=f},[f]);let w=(0,C.useMemo)(()=>({activeIndex:p,containerId:c,disabled:y,disableTransforms:x,items:f,overIndex:b,useDragOverlay:h,sortedRects:f.reduce((e,t,n)=>{let r=s.get(t);return r&&(e[n]=r),e},Array(f.length)),strategy:l}),[p,c,y.draggable,y.droppable,x,f,b,s,h,l]);return C.default.createElement(ti.Provider,{value:w},t)}let to=e=>{let{id:t,items:n,activeIndex:r,overIndex:l}=e;return tt(n,r,l).indexOf(t)},ts=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:l,items:i,newIndex:a,previousItems:o,previousContainerId:s,transition:u}=e;return!!u&&!!r&&(o===i||l!==a)&&(!!n||a!==l&&t===s)},tu={duration:200,easing:"ease"},td="transform",tc=H.Transition.toString({property:td,duration:0,easing:"linear"}),th={roleDescription:"sortable"};g.Down,g.Right,g.Up,g.Left;var tf=e.i(29481),tg=e.i(49080),tp=e.i(81189),tb=e.i(98111),tm=e.i(10007),tv=e.i(51514),tx=e.i(38286);function ty({p:e,healthy:t,cooling:n,onDone:r}){let{attributes:l,listeners:i,setNodeRef:a,transform:o,transition:s,isDragging:u}=function(e){var t,n,r,l;let{animateLayoutChanges:i=ts,attributes:a,disabled:o,data:s,getNewIndex:u=to,id:d,strategy:h,resizeObserverConfig:f,transition:g=tu}=e,{items:p,containerId:b,activeIndex:m,disabled:v,disableTransforms:x,sortedRects:y,overIndex:w,useDragOverlay:D,strategy:j}=(0,C.useContext)(ti),E=(t=o,n=v,"boolean"==typeof t?{draggable:t,droppable:!1}:{draggable:null!=(r=null==t?void 0:t.draggable)?r:n.draggable,droppable:null!=(l=null==t?void 0:t.droppable)?l:n.droppable}),S=p.indexOf(d),k=(0,C.useMemo)(()=>({sortable:{containerId:b,index:S,items:p},...s}),[b,s,S,p]),M=(0,C.useMemo)(()=>p.slice(p.indexOf(d)),[p,d]),{rect:R,node:N,isOver:T,setNodeRef:I}=function(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:l}=e,i=_("Droppable"),{active:a,dispatch:o,over:s,measureDroppableContainers:u}=(0,C.useContext)(eZ),d=(0,C.useRef)({disabled:n}),h=(0,C.useRef)(!1),f=(0,C.useRef)(null),g=(0,C.useRef)(null),{disabled:p,updateMeasurementsFor:b,timeout:m}={...e6,...l},v=L(null!=b?b:r),x=e_({callback:(0,C.useCallback)(()=>{if(!h.current){h.current=!0;return}null!=g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{u(Array.isArray(v.current)?v.current:[v.current]),g.current=null},m)},[m]),disabled:p||!a}),[y,w]=B((0,C.useCallback)((e,t)=>{x&&(t&&(x.unobserve(t),h.current=!1),e&&x.observe(e))},[x])),D=L(t);return(0,C.useEffect)(()=>{x&&y.current&&(x.disconnect(),h.current=!1,x.observe(y.current))},[y,x]),(0,C.useEffect)(()=>(o({type:c.RegisterDroppable,element:{id:r,key:i,disabled:n,node:y,rect:f,data:D}}),()=>o({type:c.UnregisterDroppable,key:i,id:r})),[r]),(0,C.useEffect)(()=>{n!==d.current.disabled&&(o({type:c.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,o]),{active:a,rect:f,isOver:(null==s?void 0:s.id)===r,node:y,over:s,setNodeRef:w}}({id:d,data:k,disabled:E.droppable,resizeObserverConfig:{updateMeasurementsFor:M,...f}}),{active:O,activatorEvent:P,activeNodeRect:z,attributes:U,setNodeRef:F,listeners:K,isDragging:X,over:W,setActivatorNodeRef:$,transform:q}=function(e){let{id:t,data:n,disabled:r=!1,attributes:l}=e,i=_("Draggable"),{activators:a,activatorEvent:o,active:s,activeNodeRect:u,ariaDescribedById:d,draggableNodes:c,over:h}=(0,C.useContext)(eZ),{role:f=e8,roleDescription:g="draggable",tabIndex:p=0}=null!=l?l:{},b=(null==s?void 0:s.id)===t,m=(0,C.useContext)(b?e4:e7),[v,x]=B(),[y,w]=B(),D=(0,C.useMemo)(()=>a.reduce((e,n)=>{let{eventName:r,handler:l}=n;return e[r]=e=>{l(e,t)},e},{}),[a,t]),j=L(n);return A(()=>(c.set(t,{id:t,key:i,node:v,activatorNode:y,data:j}),()=>{let e=c.get(t);e&&e.key===i&&c.delete(t)}),[c,t]),{active:s,activatorEvent:o,activeNodeRect:u,attributes:(0,C.useMemo)(()=>({role:f,tabIndex:p,"aria-disabled":r,"aria-pressed":!!b&&f===e8||void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,f,p,b,g,d.draggable]),isDragging:b,listeners:r?void 0:D,node:v,over:h,setNodeRef:x,setActivatorNodeRef:w,transform:m}}({id:d,data:k,attributes:{...th,...a},disabled:E.draggable}),J=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,C.useMemo)(()=>e=>{t.forEach(t=>t(e))},t)}(I,F),V=!!O,G=V&&!x&&tn(m)&&tn(w),Q=!D&&X,Z=Q&&G?q:null,ee=G?null!=Z?Z:(null!=h?h:j)({rects:y,activeNodeRect:z,activeIndex:m,overIndex:w,index:S}):null,et=tn(m)&&tn(w)?u({id:d,items:p,activeIndex:m,overIndex:w}):S,en=null==O?void 0:O.id,er=(0,C.useRef)({activeId:en,items:p,newIndex:et,containerId:b}),el=p!==er.current.items,ei=i({active:O,containerId:b,isDragging:X,isSorting:V,id:d,index:S,items:p,newIndex:er.current.newIndex,previousItems:er.current.items,previousContainerId:er.current.containerId,transition:g,wasDragging:null!=er.current.activeId}),ea=function(e){let{disabled:t,index:n,node:r,rect:l}=e,[i,a]=(0,C.useState)(null),o=(0,C.useRef)(n);return A(()=>{if(!t&&n!==o.current&&r.current){let e=l.current;if(e){let t=ec(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&a(n)}}n!==o.current&&(o.current=n)},[t,n,r,l]),(0,C.useEffect)(()=>{i&&a(null)},[i]),i}({disabled:!ei,index:S,node:N,rect:R});return(0,C.useEffect)(()=>{V&&er.current.newIndex!==et&&(er.current.newIndex=et),b!==er.current.containerId&&(er.current.containerId=b),p!==er.current.items&&(er.current.items=p)},[V,et,b,p]),(0,C.useEffect)(()=>{if(en===er.current.activeId)return;if(null!=en&&null==er.current.activeId){er.current.activeId=en;return}let e=setTimeout(()=>{er.current.activeId=en},50);return()=>clearTimeout(e)},[en]),{active:O,activeIndex:m,attributes:U,data:k,rect:R,index:S,newIndex:et,items:p,isOver:T,isSorting:V,isDragging:X,listeners:K,node:N,overIndex:w,over:W,setNodeRef:J,setActivatorNodeRef:$,setDroppableNodeRef:I,setDraggableNodeRef:F,transform:null!=ea?ea:ee,transition:ea||el&&er.current.newIndex===S?tc:(!Q||Y(P))&&g&&(V||ei)?H.Transition.toString({...g,property:td}):void 0}}({id:e.id}),d={transform:H.Transform.toString(o),transition:s};return(0,w.jsxs)("div",{ref:a,style:d,className:`group relative rounded-brand-lg border bg-surface shadow-soft transition-colors ${u?"opacity-50 border-accent shadow-elevated z-10":""} ${e.disabled?"border-danger/35 opacity-60 hover:opacity-100 hover:border-danger/60":u?"":"border-border hover:border-text-subtle"}`,children:[(0,w.jsx)("div",{...l,...i,className:"absolute inset-x-0 top-0 flex h-5 cursor-grab items-center justify-center opacity-0 transition-opacity group-hover:opacity-100 active:cursor-grabbing",onClick:e=>e.preventDefault(),children:(0,w.jsx)("span",{className:"h-[3px] w-8 rounded-full bg-border-subtle transition-colors group-hover:bg-text-subtle"})}),(0,w.jsxs)(D.default,{href:`/providers/${encodeURIComponent(e.id)}`,className:"block px-5 py-6",draggable:!1,children:[(0,w.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,w.jsx)(tg.Lamp,{state:e.disabled?"down":t?"live":"down"}),(0,w.jsxs)("div",{className:"min-w-0",children:[(0,w.jsx)("span",{className:"block truncate text-[15px] font-semibold text-text",children:e.name||e.id}),e.name&&(0,w.jsxs)("span",{className:"block truncate text-[12px] text-text-subtle",children:[e.id,"/"]})]})]}),(0,w.jsx)(tp.FormatBadge,{format:e.format})]}),(0,w.jsx)("div",{className:"mt-3 truncate text-[13px] text-text-subtle",children:e.base_url}),(0,w.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,w.jsx)(tw,{id:e.id,disabled:!!e.disabled,onDone:r}),e.free&&(0,w.jsx)(tp.Badge,{tone:"info",children:"no auth"}),e.service_account&&(0,w.jsx)(tp.Badge,{tone:"info",children:"service-account"}),(0,w.jsx)(tp.Badge,{tone:"neutral",children:e.free||e.service_account?`${e.api_keys?.length??0} keys`:`${e.api_keys?.length??+!!e.api_key} keys`}),(0,w.jsxs)(tp.Badge,{tone:"neutral",children:[e.models.length," models"]}),n&&(0,w.jsx)(tb.CooldownTimer,{ms:n.cooldown_ms})]})]})]})}function tw({id:e,disabled:t,onDone:n}){let[r,l]=(0,C.useState)(!1);return(0,w.jsx)("button",{type:"button",onClick:i=>{i.preventDefault(),i.stopPropagation(),r||(l(!0),tf.adminApi.setProviderDisabled(e,!t).then(()=>n()).finally(()=>l(!1)))},className:`inline-flex items-center gap-1.5 text-[11px] font-medium ${t?"text-danger":"text-text-muted"}`,"aria-label":t?"Enable provider":"Disable provider",title:t?"Provider disabled — click to enable":"Provider enabled — click to disable",children:(0,w.jsx)("span",{className:`relative h-4 w-7 rounded-full transition-colors ${t?"bg-danger":"bg-accent"} ${r?"opacity-60":""}`,children:(0,w.jsx)("span",{className:`absolute left-0.5 top-0.5 h-3 w-3 rounded-full bg-white transition-transform ${t?"translate-x-0":"translate-x-[14px]"}`})})})}let tC=[{id:"openai",label:"OpenAI compatible",sub:"/v1/chat/completions",icon:"bolt",format:"openai",base_url:"https://api.openai.com/v1",hint:"Base URL ending in /v1 for any OpenAI-compatible API.",modelHint:"e.g. gpt-4o, glm-5.2"},{id:"anthropic",label:"Anthropic compatible",sub:"/v1/messages",icon:"smart_toy",format:"anthropic",base_url:"https://api.anthropic.com",hint:"Base URL of an Anthropic-compatible API; /messages is appended.",modelHint:"e.g. claude-sonnet-4-6"}];function tD({onDone:e,onClose:t}){let[n,r]=(0,C.useState)(null),[l,i]=(0,C.useState)(""),[a,o]=(0,C.useState)(""),[s,u]=(0,C.useState)(""),[d,c]=(0,C.useState)(!1),[h,f]=(0,C.useState)(""),[g,p]=(0,C.useState)(!1),[b,m]=(0,C.useState)(!1),[v,x]=(0,C.useState)(null),[y,D]=(0,C.useState)("");if(!n)return(0,w.jsxs)("div",{className:"mb-5 rounded-brand-lg border border-border bg-surface p-5 shadow-soft",children:[(0,w.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h2",{className:"text-[14px] font-semibold text-text",children:"Add a provider"}),(0,w.jsx)("p",{className:"mt-0.5 text-[12.5px] text-text-muted",children:"Pick the API your endpoint speaks — the rest is prefilled."})]}),(0,w.jsx)("button",{type:"button",onClick:t,className:"flex-none text-text-subtle hover:text-text","aria-label":"Cancel",children:(0,w.jsx)(tv.Icon,{name:"close",size:18})})]}),(0,w.jsx)("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:tC.map(e=>(0,w.jsxs)("button",{type:"button",onClick:()=>{r(e),o(e.base_url),x(null),D("")},className:"group flex items-start gap-3 rounded-brand-lg border border-border bg-bg p-4 text-left transition-colors hover:border-accent hover:bg-accent-soft",children:[(0,w.jsx)("span",{className:"flex h-10 w-10 flex-none items-center justify-center rounded-brand bg-surface-2 text-text-muted group-hover:text-accent",children:(0,w.jsx)(tv.Icon,{name:e.icon,size:20})}),(0,w.jsxs)("span",{className:"min-w-0",children:[(0,w.jsx)("span",{className:"block text-[13.5px] font-semibold text-text",children:e.label}),(0,w.jsx)("span",{className:"block tnum text-[11.5px] text-text-subtle",children:e.sub}),(0,w.jsx)("span",{className:"mt-1 block text-[11.5px] text-text-muted",children:e.hint})]})]},e.id))})]});async function j(){if(!a||!n)return;m(!0),x(null);let e=await tf.adminApi.validateProvider({format:n.format,base_url:a,api_key:s||void 0});m(!1),x(e.data??{ok:!1,reachable:!1,status:0,error:e.error})}async function E(t){if(t.preventDefault(),!n||!l||!a)return void D("name and base URL are required");p(!0),D("");let r=await tf.adminApi.addProvider({id:l,format:n.format,base_url:a,api_key:s||void 0,free:!s.trim()});if(!r.ok){p(!1),D(r.error??"failed");return}h.trim()&&await tf.adminApi.addModel(l,h.trim()),p(!1),e()}return(0,w.jsx)("div",{className:"mb-5 rounded-brand-lg border border-border bg-surface p-5 shadow-soft",children:(0,w.jsxs)("form",{onSubmit:E,children:[(0,w.jsxs)("div",{className:"mb-4 flex items-center gap-2.5 border-b border-border-subtle pb-4",children:[(0,w.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-brand bg-surface-2 text-text-muted",children:(0,w.jsx)(tv.Icon,{name:n.icon,size:17})}),(0,w.jsxs)("div",{children:[(0,w.jsx)("div",{className:"text-[13.5px] font-semibold text-text",children:n.label}),(0,w.jsx)("div",{className:"tnum text-[11px] text-text-subtle",children:n.sub})]}),(0,w.jsxs)("button",{type:"button",onClick:()=>{r(null),x(null)},className:"ml-auto inline-flex items-center gap-1 text-[12px] text-text-subtle hover:text-text",children:[(0,w.jsx)(tv.Icon,{name:"arrow_back",size:14})," change type"]})]}),(0,w.jsxs)("div",{className:"space-y-3",children:[(0,w.jsx)(tm.Field,{label:"Name",hint:"a friendly id — also the model prefix (name/model)",children:(0,w.jsx)(tm.Input,{value:l,onChange:e=>i(e.target.value),placeholder:"e.g. openai, anthropic"})}),(0,w.jsx)(tm.Field,{label:"Base URL",hint:n.hint,children:(0,w.jsx)(tm.Input,{value:a,onChange:e=>{o(e.target.value),x(null)},placeholder:n.base_url,className:"font-mono text-[12.5px]"})}),(0,w.jsx)(tm.Field,{label:"API Key",hint:"used for Check and live requests — leave blank for a free / no-auth endpoint",children:(0,w.jsxs)("div",{className:"flex gap-2",children:[(0,w.jsxs)("div",{className:"relative flex-1",children:[(0,w.jsx)(tm.Input,{type:d?"text":"password",value:s,onChange:e=>{u(e.target.value),x(null)},placeholder:"sk-…",className:"pr-9 font-mono text-[12.5px]"}),s&&(0,w.jsx)("button",{type:"button",onClick:()=>c(e=>!e),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-subtle hover:text-text","aria-label":d?"Hide key":"Show key",children:(0,w.jsx)(tv.Icon,{name:d?"visibility_off":"visibility",size:15})})]}),(0,w.jsxs)(tm.Button,{type:"button",variant:"ghost",disabled:b||!a,onClick:j,children:[(0,w.jsx)(tv.Icon,{name:b?"progress_activity":"wifi_tethering",size:15}),b?"Checking…":"Check"]})]})}),v&&(0,w.jsxs)("div",{className:"flex items-center gap-2 text-[12px]",children:[(0,w.jsx)(tp.Badge,{tone:v.ok?"live":v.reachable?"warn":"down",children:v.ok?"valid":v.reachable?`reachable (${v.status})`:"invalid"}),v.error&&(0,w.jsx)("span",{className:"text-text-subtle",children:v.error})]}),(0,w.jsx)(tm.Field,{label:"Model ID",hint:"optional — seed one if the provider has no /models endpoint",children:(0,w.jsx)(tm.Input,{value:h,onChange:e=>f(e.target.value),placeholder:n.modelHint,className:"font-mono text-[12.5px]"})})]}),y&&(0,w.jsx)("div",{className:"mt-2 text-[12px] text-danger",children:y}),(0,w.jsxs)("div",{className:"mt-4 flex justify-end gap-2",children:[(0,w.jsx)(tm.Button,{type:"button",variant:"ghost",onClick:t,children:"Cancel"}),(0,w.jsx)(tm.Button,{type:"submit",disabled:g,children:g?"Adding…":"Add provider"})]})]})})}e.s(["ProviderManager",0,function(){var e;let[t,n]=(0,C.useState)(null),[r,l]=(0,C.useState)(""),[i,a]=(0,C.useState)(!1),[o,s]=(0,C.useState)([]),u=(0,C.useCallback)(async()=>{let[e,t]=await Promise.all([fetch("/api/gw/admin/config"),tf.adminApi.providers()]);if(!e.ok||!t.ok)return void l("could not reach the gateway");l("");let r={config:await e.json(),health:t.data?.providers??[]};n(r),s(r.config.providers.map(e=>e.id))},[]);(0,C.useEffect)(()=>{u()},[u]);let d=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,C.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}((e={activationConstraint:{distance:6}},(0,C.useMemo)(()=>({sensor:eP,options:null!=e?e:{}}),[eP,e])));async function c(e){let{active:n,over:r}=e;if(!r||n.id===r.id||!t)return;let l=o.indexOf(n.id),i=o.indexOf(r.id);-1!==l&&-1!==i&&(s(tt(o,l,i)),await tf.adminApi.reorderProvider(l,i),u())}if(r)return(0,w.jsx)(tx.Empty,{children:r});if(!t)return(0,w.jsx)(tx.Empty,{children:"Loading…"});let h=new Map(t.health.map(e=>[e.id,e])),f=new Map(t.config.providers.map(e=>[e.id,e])),g=o.map(e=>f.get(e)).filter(Boolean);return(0,w.jsxs)("div",{children:[(0,w.jsxs)("div",{className:"mb-6 flex items-center justify-between gap-3",children:[(0,w.jsxs)("div",{children:[(0,w.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:"Providers & Keys"}),(0,w.jsx)("p",{className:"mt-1 text-[13px] text-text-muted",children:"Upstream providers the gateway routes to."})]}),(0,w.jsxs)(tm.Button,{onClick:()=>a(!0),children:[(0,w.jsx)(tv.Icon,{name:"add",size:17}),"Add provider"]})]}),i&&(0,w.jsx)(tD,{onClose:()=>a(!1),onDone:()=>{a(!1),u()}}),0===g.length?(0,w.jsx)(tx.Empty,{children:"No providers yet. Add one to start routing."}):(0,w.jsx)(e3,{sensors:d,collisionDetection:ea,onDragEnd:c,children:(0,w.jsx)(ta,{items:o,strategy:tr,children:(0,w.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:g.map(e=>{let t=h.get(e.id),n=!t||t.keys.some(e=>e.healthy),r=t?.keys.find(e=>!e.healthy&&e.cooldown_ms>0);return(0,w.jsx)(ty,{p:e,healthy:n,cooling:r,onDone:u},e.id)})})})})]})}],70757)}]);
|
package/dashboard/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":109,"timestamp":7636831273,"id":4,"parentId":1,"tags":{},"startTime":1782451511907,"traceId":"d945ae56c98532b8"},{"name":"load-custom-routes","duration":172,"timestamp":7636831430,"id":5,"parentId":1,"tags":{},"startTime":1782451511907,"traceId":"d945ae56c98532b8"},{"name":"create-dist-dir","duration":1036,"timestamp":7636831622,"id":6,"parentId":1,"tags":{},"startTime":1782451511907,"traceId":"d945ae56c98532b8"},{"name":"clean","duration":5985,"timestamp":7636833218,"id":7,"parentId":1,"tags":{},"startTime":1782451511909,"traceId":"d945ae56c98532b8"},{"name":"discover-routes","duration":2227,"timestamp":7636845935,"id":8,"parentId":1,"tags":{},"startTime":1782451511922,"traceId":"d945ae56c98532b8"},{"name":"create-root-mapping","duration":34,"timestamp":7636848187,"id":9,"parentId":1,"tags":{},"startTime":1782451511924,"traceId":"d945ae56c98532b8"},{"name":"generate-route-types","duration":6034,"timestamp":7636848789,"id":10,"parentId":1,"tags":{},"startTime":1782451511924,"traceId":"d945ae56c98532b8"},{"name":"public-dir-conflict-check","duration":41,"timestamp":7636854852,"id":11,"parentId":1,"tags":{},"startTime":1782451511931,"traceId":"d945ae56c98532b8"},{"name":"generate-routes-manifest","duration":1057,"timestamp":7636854931,"id":12,"parentId":1,"tags":{},"startTime":1782451511931,"traceId":"d945ae56c98532b8"},{"name":"run-turbopack","duration":1370777,"timestamp":7636857357,"id":14,"parentId":1,"tags":{},"startTime":1782451511933,"traceId":"d945ae56c98532b8"},{"name":"turbopack-build-events","duration":44,"timestamp":7636947494,"id":15,"parentId":1,"tags":{},"startTime":1782451512023,"traceId":"d945ae56c98532b8"},{"name":"run-typescript","duration":1833667,"timestamp":7638239322,"id":16,"parentId":1,"tags":{},"startTime":1782451513315,"traceId":"d945ae56c98532b8"},{"name":"generate-required-server-files","duration":423,"timestamp":7640073260,"id":18,"parentId":1,"tags":{},"startTime":1782451515149,"traceId":"d945ae56c98532b8"},{"name":"check-static-error-page","duration":1832,"timestamp":7640186454,"id":20,"parentId":19,"tags":{},"startTime":1782451515262,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":136466,"timestamp":7640188718,"id":42,"parentId":22,"tags":{},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":138099,"timestamp":7640187161,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":180311,"timestamp":7640191100,"id":46,"parentId":35,"tags":{},"startTime":1782451515267,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":183290,"timestamp":7640188166,"id":35,"parentId":19,"tags":{"page":"/api/gw/[...path]"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":182661,"timestamp":7640188868,"id":45,"parentId":39,"tags":{},"startTime":1782451515265,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":183283,"timestamp":7640188259,"id":39,"parentId":19,"tags":{"page":"/icon.svg"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":180191,"timestamp":7640193215,"id":54,"parentId":27,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":186083,"timestamp":7640187348,"id":27,"parentId":19,"tags":{"page":"/"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":186526,"timestamp":7640192765,"id":50,"parentId":23,"tags":{},"startTime":1782451515268,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":192047,"timestamp":7640187283,"id":23,"parentId":19,"tags":{"page":"/combos"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":186154,"timestamp":7640193237,"id":56,"parentId":29,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":192025,"timestamp":7640187375,"id":29,"parentId":19,"tags":{"page":"/providers"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":190596,"timestamp":7640188843,"id":44,"parentId":38,"tags":{},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":191197,"timestamp":7640188247,"id":38,"parentId":19,"tags":{"page":"/api/password"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":188125,"timestamp":7640191346,"id":47,"parentId":36,"tags":{},"startTime":1782451515267,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":191268,"timestamp":7640188208,"id":36,"parentId":19,"tags":{"page":"/api/login"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":189868,"timestamp":7640192288,"id":48,"parentId":34,"tags":{},"startTime":1782451515268,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":194129,"timestamp":7640188068,"id":34,"parentId":19,"tags":{"page":"/api/cli-detect/[tool]"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":196549,"timestamp":7640188630,"id":41,"parentId":21,"tags":{},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":198476,"timestamp":7640186742,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782451515262,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":192096,"timestamp":7640193160,"id":52,"parentId":25,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":197943,"timestamp":7640187323,"id":25,"parentId":19,"tags":{"page":"/console"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":192485,"timestamp":7640192796,"id":51,"parentId":24,"tags":{},"startTime":1782451515268,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":197977,"timestamp":7640187309,"id":24,"parentId":19,"tags":{"page":"/config"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":195424,"timestamp":7640193252,"id":59,"parentId":32,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":201280,"timestamp":7640187433,"id":32,"parentId":19,"tags":{"page":"/tools"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":198890,"timestamp":7640193256,"id":60,"parentId":33,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":204741,"timestamp":7640187445,"id":33,"parentId":19,"tags":{"page":"/usage"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":202626,"timestamp":7640192719,"id":49,"parentId":40,"tags":{},"startTime":1782451515268,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":207118,"timestamp":7640188269,"id":40,"parentId":19,"tags":{"page":"/login"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":206613,"timestamp":7640188820,"id":43,"parentId":37,"tags":{},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":207204,"timestamp":7640188235,"id":37,"parentId":19,"tags":{"page":"/api/logout"},"startTime":1782451515264,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":204210,"timestamp":7640193226,"id":55,"parentId":28,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":210118,"timestamp":7640187360,"id":28,"parentId":19,"tags":{"page":"/providers/[id]"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":204851,"timestamp":7640193241,"id":57,"parentId":30,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":210718,"timestamp":7640187394,"id":30,"parentId":19,"tags":{"page":"/quota"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":205067,"timestamp":7640193196,"id":53,"parentId":26,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":210941,"timestamp":7640187338,"id":26,"parentId":19,"tags":{"page":"/endpoint"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"is-page-static","duration":209908,"timestamp":7640193248,"id":58,"parentId":31,"tags":{},"startTime":1782451515269,"traceId":"d945ae56c98532b8"},{"name":"check-page","duration":215788,"timestamp":7640187416,"id":31,"parentId":19,"tags":{"page":"/tools/[id]"},"startTime":1782451515263,"traceId":"d945ae56c98532b8"},{"name":"static-check","duration":217059,"timestamp":7640186170,"id":19,"parentId":1,"tags":{},"startTime":1782451515262,"traceId":"d945ae56c98532b8"},{"name":"write-routes-manifest","duration":113,"timestamp":7640407086,"id":62,"parentId":1,"tags":{},"startTime":1782451515483,"traceId":"d945ae56c98532b8"},{"name":"load-dotenv","duration":11,"timestamp":7640410017,"id":65,"parentId":64,"tags":{},"startTime":1782451515486,"traceId":"d945ae56c98532b8"},{"name":"run-export-path-map","duration":165,"timestamp":7640410580,"id":66,"parentId":64,"tags":{},"startTime":1782451515486,"traceId":"d945ae56c98532b8"},{"name":"next-export","duration":114727,"timestamp":7640409597,"id":64,"parentId":1,"tags":{},"startTime":1782451515485,"traceId":"d945ae56c98532b8"},{"name":"move-exported-app-not-found-","duration":175,"timestamp":7640525039,"id":67,"parentId":63,"tags":{},"startTime":1782451515601,"traceId":"d945ae56c98532b8"},{"name":"move-exported-app-global-error-","duration":100,"timestamp":7640525241,"id":68,"parentId":63,"tags":{},"startTime":1782451515601,"traceId":"d945ae56c98532b8"},{"name":"static-generation","duration":117894,"timestamp":7640407804,"id":63,"parentId":1,"tags":{},"startTime":1782451515483,"traceId":"d945ae56c98532b8"},{"name":"write-routes-manifest","duration":94,"timestamp":7640525777,"id":69,"parentId":1,"tags":{},"startTime":1782451515601,"traceId":"d945ae56c98532b8"},{"name":"print-tree-view","duration":1305,"timestamp":7640530258,"id":70,"parentId":1,"tags":{},"startTime":1782451515606,"traceId":"d945ae56c98532b8"},{"name":"write-route-bundle-stats","duration":2988,"timestamp":7640531577,"id":71,"parentId":1,"tags":{},"startTime":1782451515607,"traceId":"d945ae56c98532b8"},{"name":"telemetry-flush","duration":491934,"timestamp":7640534582,"id":72,"parentId":1,"tags":{},"startTime":1782451515610,"traceId":"d945ae56c98532b8"},{"name":"next-build","duration":4208744,"timestamp":7636817791,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782451511893,"traceId":"d945ae56c98532b8"}]
|
|
1
|
+
[{"name":"generate-buildid","duration":94,"timestamp":16282244371,"id":4,"parentId":1,"tags":{},"startTime":1782460157320,"traceId":"1d4e898e79abe164"},{"name":"load-custom-routes","duration":158,"timestamp":16282244507,"id":5,"parentId":1,"tags":{},"startTime":1782460157320,"traceId":"1d4e898e79abe164"},{"name":"create-dist-dir","duration":1083,"timestamp":16282244680,"id":6,"parentId":1,"tags":{},"startTime":1782460157320,"traceId":"1d4e898e79abe164"},{"name":"clean","duration":6543,"timestamp":16282246021,"id":7,"parentId":1,"tags":{},"startTime":1782460157322,"traceId":"1d4e898e79abe164"},{"name":"discover-routes","duration":2467,"timestamp":16282259458,"id":8,"parentId":1,"tags":{},"startTime":1782460157335,"traceId":"1d4e898e79abe164"},{"name":"create-root-mapping","duration":32,"timestamp":16282261951,"id":9,"parentId":1,"tags":{},"startTime":1782460157338,"traceId":"1d4e898e79abe164"},{"name":"generate-route-types","duration":5325,"timestamp":16282262618,"id":10,"parentId":1,"tags":{},"startTime":1782460157338,"traceId":"1d4e898e79abe164"},{"name":"public-dir-conflict-check","duration":41,"timestamp":16282267973,"id":11,"parentId":1,"tags":{},"startTime":1782460157344,"traceId":"1d4e898e79abe164"},{"name":"generate-routes-manifest","duration":939,"timestamp":16282268051,"id":12,"parentId":1,"tags":{},"startTime":1782460157344,"traceId":"1d4e898e79abe164"},{"name":"run-turbopack","duration":1194124,"timestamp":16282270591,"id":14,"parentId":1,"tags":{},"startTime":1782460157346,"traceId":"1d4e898e79abe164"},{"name":"turbopack-build-events","duration":32,"timestamp":16282354474,"id":15,"parentId":1,"tags":{},"startTime":1782460157430,"traceId":"1d4e898e79abe164"},{"name":"run-typescript","duration":1638060,"timestamp":16283475007,"id":16,"parentId":1,"tags":{},"startTime":1782460158551,"traceId":"1d4e898e79abe164"},{"name":"generate-required-server-files","duration":422,"timestamp":16285113331,"id":18,"parentId":1,"tags":{},"startTime":1782460160189,"traceId":"1d4e898e79abe164"},{"name":"check-static-error-page","duration":1915,"timestamp":16285223926,"id":20,"parentId":19,"tags":{},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":148871,"timestamp":16285226370,"id":43,"parentId":22,"tags":{},"startTime":1782460160302,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":150708,"timestamp":16285224613,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":166092,"timestamp":16285229765,"id":55,"parentId":28,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":171098,"timestamp":16285224804,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":176984,"timestamp":16285226507,"id":45,"parentId":39,"tags":{},"startTime":1782460160302,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":177733,"timestamp":16285225798,"id":39,"parentId":19,"tags":{"page":"/api/password"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":173805,"timestamp":16285229787,"id":58,"parentId":31,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":178743,"timestamp":16285224858,"id":31,"parentId":19,"tags":{"page":"/quota"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":177159,"timestamp":16285226483,"id":44,"parentId":38,"tags":{},"startTime":1782460160302,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":177865,"timestamp":16285225784,"id":38,"parentId":19,"tags":{"page":"/api/logout"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":183889,"timestamp":16285229063,"id":47,"parentId":37,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":187234,"timestamp":16285225759,"id":37,"parentId":19,"tags":{"page":"/api/login"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":183252,"timestamp":16285229797,"id":60,"parentId":33,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":188170,"timestamp":16285224887,"id":33,"parentId":19,"tags":{"page":"/tools"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":184199,"timestamp":16285233731,"id":62,"parentId":35,"tags":{},"startTime":1782460160309,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":192402,"timestamp":16285225573,"id":35,"parentId":19,"tags":{"page":"/api/cli-detect/[tool]"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":191383,"timestamp":16285229755,"id":54,"parentId":27,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":196386,"timestamp":16285224791,"id":27,"parentId":19,"tags":{"page":"/keys"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":196501,"timestamp":16285226272,"id":42,"parentId":21,"tags":{},"startTime":1782460160302,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":198572,"timestamp":16285224232,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":201732,"timestamp":16285229697,"id":50,"parentId":23,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":206745,"timestamp":16285224723,"id":23,"parentId":19,"tags":{"page":"/combos"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":201708,"timestamp":16285229793,"id":59,"parentId":32,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":206639,"timestamp":16285224872,"id":32,"parentId":19,"tags":{"page":"/tools/[id]"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":203020,"timestamp":16285229800,"id":61,"parentId":34,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":207954,"timestamp":16285224900,"id":34,"parentId":19,"tags":{"page":"/usage"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":205077,"timestamp":16285229783,"id":57,"parentId":30,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":210061,"timestamp":16285224838,"id":30,"parentId":19,"tags":{"page":"/providers"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":208421,"timestamp":16285226527,"id":46,"parentId":40,"tags":{},"startTime":1782460160302,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":209147,"timestamp":16285225811,"id":40,"parentId":19,"tags":{"page":"/icon.svg"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":205233,"timestamp":16285229744,"id":53,"parentId":26,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":210204,"timestamp":16285224779,"id":26,"parentId":19,"tags":{"page":"/endpoint"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":210011,"timestamp":16285229670,"id":49,"parentId":41,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":213895,"timestamp":16285225822,"id":41,"parentId":19,"tags":{"page":"/login"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":210915,"timestamp":16285229732,"id":52,"parentId":25,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":215896,"timestamp":16285224762,"id":25,"parentId":19,"tags":{"page":"/console"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":217208,"timestamp":16285229715,"id":51,"parentId":24,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":222208,"timestamp":16285224747,"id":24,"parentId":19,"tags":{"page":"/config"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":217431,"timestamp":16285229773,"id":56,"parentId":29,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":222392,"timestamp":16285224818,"id":29,"parentId":19,"tags":{"page":"/providers/[id]"},"startTime":1782460160300,"traceId":"1d4e898e79abe164"},{"name":"is-page-static","duration":227202,"timestamp":16285229368,"id":48,"parentId":36,"tags":{},"startTime":1782460160305,"traceId":"1d4e898e79abe164"},{"name":"check-page","duration":230889,"timestamp":16285225706,"id":36,"parentId":19,"tags":{"page":"/api/gw/[...path]"},"startTime":1782460160301,"traceId":"1d4e898e79abe164"},{"name":"static-check","duration":232979,"timestamp":16285223632,"id":19,"parentId":1,"tags":{},"startTime":1782460160299,"traceId":"1d4e898e79abe164"},{"name":"write-routes-manifest","duration":137,"timestamp":16285459175,"id":64,"parentId":1,"tags":{},"startTime":1782460160535,"traceId":"1d4e898e79abe164"},{"name":"load-dotenv","duration":10,"timestamp":16285461873,"id":67,"parentId":66,"tags":{},"startTime":1782460160538,"traceId":"1d4e898e79abe164"},{"name":"run-export-path-map","duration":186,"timestamp":16285462607,"id":68,"parentId":66,"tags":{},"startTime":1782460160538,"traceId":"1d4e898e79abe164"},{"name":"next-export","duration":134444,"timestamp":16285461466,"id":66,"parentId":1,"tags":{},"startTime":1782460160537,"traceId":"1d4e898e79abe164"},{"name":"move-exported-app-not-found-","duration":153,"timestamp":16285596686,"id":69,"parentId":65,"tags":{},"startTime":1782460160672,"traceId":"1d4e898e79abe164"},{"name":"move-exported-app-global-error-","duration":92,"timestamp":16285596863,"id":70,"parentId":65,"tags":{},"startTime":1782460160673,"traceId":"1d4e898e79abe164"},{"name":"static-generation","duration":137557,"timestamp":16285459880,"id":65,"parentId":1,"tags":{},"startTime":1782460160536,"traceId":"1d4e898e79abe164"},{"name":"write-routes-manifest","duration":92,"timestamp":16285597518,"id":71,"parentId":1,"tags":{},"startTime":1782460160673,"traceId":"1d4e898e79abe164"},{"name":"print-tree-view","duration":1296,"timestamp":16285624352,"id":72,"parentId":1,"tags":{},"startTime":1782460160700,"traceId":"1d4e898e79abe164"},{"name":"write-route-bundle-stats","duration":3327,"timestamp":16285625664,"id":73,"parentId":1,"tags":{},"startTime":1782460160701,"traceId":"1d4e898e79abe164"},{"name":"telemetry-flush","duration":469742,"timestamp":16285629011,"id":74,"parentId":1,"tags":{},"startTime":1782460160705,"traceId":"1d4e898e79abe164"},{"name":"next-build","duration":3868069,"timestamp":16282230713,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782460157306,"traceId":"1d4e898e79abe164"}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":1194124,"timestamp":16282270591,"id":14,"parentId":1,"tags":{},"startTime":1782460157346,"traceId":"1d4e898e79abe164"},{"name":"turbopack-build-events","duration":32,"timestamp":16282354474,"id":15,"parentId":1,"tags":{},"startTime":1782460157430,"traceId":"1d4e898e79abe164"},{"name":"run-typescript","duration":1638060,"timestamp":16283475007,"id":16,"parentId":1,"tags":{},"startTime":1782460158551,"traceId":"1d4e898e79abe164"},{"name":"static-check","duration":232979,"timestamp":16285223632,"id":19,"parentId":1,"tags":{},"startTime":1782460160299,"traceId":"1d4e898e79abe164"},{"name":"static-generation","duration":137557,"timestamp":16285459880,"id":65,"parentId":1,"tags":{},"startTime":1782460160536,"traceId":"1d4e898e79abe164"},{"name":"telemetry-flush","duration":469742,"timestamp":16285629011,"id":74,"parentId":1,"tags":{},"startTime":1782460160705,"traceId":"1d4e898e79abe164"},{"name":"next-build","duration":3868069,"timestamp":16282230713,"id":1,"tags":{"buildMode":"default","version":"16.2.9","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782460157306,"traceId":"1d4e898e79abe164"}]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This file is generated automatically by Next.js
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
|
-
type AppRoutes = "/" | "/combos" | "/config" | "/console" | "/endpoint" | "/login" | "/providers" | "/providers/[id]" | "/quota" | "/tools" | "/tools/[id]" | "/usage"
|
|
4
|
+
type AppRoutes = "/" | "/combos" | "/config" | "/console" | "/endpoint" | "/keys" | "/login" | "/providers" | "/providers/[id]" | "/quota" | "/tools" | "/tools/[id]" | "/usage"
|
|
5
5
|
type AppRouteHandlerRoutes = "/api/cli-detect/[tool]" | "/api/gw/[...path]" | "/api/login" | "/api/logout" | "/api/password"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
@@ -21,6 +21,7 @@ interface ParamMap {
|
|
|
21
21
|
"/config": {}
|
|
22
22
|
"/console": {}
|
|
23
23
|
"/endpoint": {}
|
|
24
|
+
"/keys": {}
|
|
24
25
|
"/login": {}
|
|
25
26
|
"/providers": {}
|
|
26
27
|
"/providers/[id]": { "id": string; }
|
|
@@ -83,6 +83,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
83
83
|
type __Unused = __Check
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
// Validate ../../src/app/(console)/keys/page.tsx
|
|
87
|
+
{
|
|
88
|
+
type __IsExpected<Specific extends AppPageConfig<"/keys">> = Specific
|
|
89
|
+
const handler = {} as typeof import("../../src/app/(console)/keys/page.js")
|
|
90
|
+
type __Check = __IsExpected<typeof handler>
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
type __Unused = __Check
|
|
93
|
+
}
|
|
94
|
+
|
|
86
95
|
// Validate ../../src/app/(console)/page.tsx
|
|
87
96
|
{
|
|
88
97
|
type __IsExpected<Specific extends AppPageConfig<"/">> = Specific
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
"name": "aigetwey-dashboard",
|
|
9
9
|
"version": "0.1.0",
|
|
10
10
|
"dependencies": {
|
|
11
|
+
"@dnd-kit/core": "^6.3.1",
|
|
12
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
13
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
11
14
|
"next": "^16.2.9",
|
|
12
15
|
"react": "^19.0.0",
|
|
13
16
|
"react-dom": "^19.0.0",
|
|
@@ -36,6 +39,59 @@
|
|
|
36
39
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
37
40
|
}
|
|
38
41
|
},
|
|
42
|
+
"node_modules/@dnd-kit/accessibility": {
|
|
43
|
+
"version": "3.1.1",
|
|
44
|
+
"resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
|
|
45
|
+
"integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==",
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"tslib": "^2.0.0"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"react": ">=16.8.0"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"node_modules/@dnd-kit/core": {
|
|
55
|
+
"version": "6.3.1",
|
|
56
|
+
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
|
|
57
|
+
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@dnd-kit/accessibility": "^3.1.1",
|
|
61
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
62
|
+
"tslib": "^2.0.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"react": ">=16.8.0",
|
|
66
|
+
"react-dom": ">=16.8.0"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"node_modules/@dnd-kit/sortable": {
|
|
70
|
+
"version": "10.0.0",
|
|
71
|
+
"resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz",
|
|
72
|
+
"integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==",
|
|
73
|
+
"license": "MIT",
|
|
74
|
+
"dependencies": {
|
|
75
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
76
|
+
"tslib": "^2.0.0"
|
|
77
|
+
},
|
|
78
|
+
"peerDependencies": {
|
|
79
|
+
"@dnd-kit/core": "^6.3.0",
|
|
80
|
+
"react": ">=16.8.0"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"node_modules/@dnd-kit/utilities": {
|
|
84
|
+
"version": "3.2.2",
|
|
85
|
+
"resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz",
|
|
86
|
+
"integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==",
|
|
87
|
+
"license": "MIT",
|
|
88
|
+
"dependencies": {
|
|
89
|
+
"tslib": "^2.0.0"
|
|
90
|
+
},
|
|
91
|
+
"peerDependencies": {
|
|
92
|
+
"react": ">=16.8.0"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
39
95
|
"node_modules/@emnapi/runtime": {
|
|
40
96
|
"version": "1.11.1",
|
|
41
97
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
|
package/dashboard/package.json
CHANGED
|
@@ -95,7 +95,6 @@ async function claudeApply(body: { base?: string; key?: string; models?: Record<
|
|
|
95
95
|
}
|
|
96
96
|
const env: Record<string, string> = {
|
|
97
97
|
ANTHROPIC_BASE_URL: body.base,
|
|
98
|
-
API_TIMEOUT_MS: "600000",
|
|
99
98
|
};
|
|
100
99
|
if (body.key) env.ANTHROPIC_AUTH_TOKEN = body.key;
|
|
101
100
|
if (body.models?.opus) env.ANTHROPIC_DEFAULT_OPUS_MODEL = body.models.opus;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
type Tone = "live" | "down" | "warn" | "info" | "neutral";
|
|
1
|
+
type Tone = "live" | "down" | "warn" | "info" | "neutral" | "danger";
|
|
2
2
|
|
|
3
3
|
const TONES: Record<Tone, string> = {
|
|
4
4
|
live: "bg-success/12 text-success",
|
|
5
5
|
down: "bg-danger/12 text-danger",
|
|
6
|
+
danger: "bg-danger/12 text-danger",
|
|
6
7
|
warn: "bg-warning/12 text-warning",
|
|
7
8
|
info: "bg-info/12 text-info",
|
|
8
9
|
neutral: "bg-surface-2 text-text-muted",
|