From e2f6a9b3ea8c900f7af2a77895cf9fc99196ba45 Mon Sep 17 00:00:00 2001 From: Tin Chi Lo Date: Tue, 29 Sep 2026 14:47:02 -0700 Subject: [PATCH] refactor(auto-router): move Nimble dashboard controls to UI PR --- .../AutoRouters/autoRouterRows.test.ts | 2 +- .../components/AutoRouters/autoRouterRows.ts | 2 +- ...oRouterClassifierTabs.integration.test.tsx | 2 +- .../add_model/AutoRouterClassifierTabs.tsx | 2 +- .../add_model/ClassificationMethodConfig.tsx | 4 +- .../add_model/ClassifierTypeRadios.tsx | 4 +- .../add_model/ComplexityRouterConfig.tsx | 2 +- .../JevClassifierConfig.integration.test.tsx | 79 +--------------- .../add_model/JevClassifierConfig.tsx | 93 ++----------------- .../JevConnectionTest.integration.test.tsx | 35 ------- .../add_auto_router_tab.integration.test.tsx | 33 +++---- .../add_model/auto_router_connection_test.tsx | 14 +-- .../build_complexity_router_config.test.ts | 2 +- .../build_complexity_router_config.ts | 6 +- .../add_model/jev_classifier_config.test.ts | 44 --------- .../add_model/jev_classifier_config.ts | 24 +---- ...d_updated_complexity_router_config.test.ts | 29 ------ .../RoutingDecisionCard.test.tsx | 9 -- .../LogDetailsDrawer/RoutingDecisionCard.tsx | 2 +- 19 files changed, 44 insertions(+), 344 deletions(-) delete mode 100644 ui/litellm-dashboard/src/components/add_model/jev_classifier_config.test.ts diff --git a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.test.ts b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.test.ts index 2c433263c0f..79c4243271e 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.test.ts +++ b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.test.ts @@ -85,7 +85,7 @@ describe("autoRouterRows", () => { it.each([ ["llm", "LLM Classifier"], - ["jev", "Decision Model"], + ["jev", "JEV Classifier"], ])("labels a router using the %s classifier", (classifierType, label) => { const row = toAutoRouterRow( { diff --git a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.ts b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.ts index 429bca3ab6f..1faf3408c23 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.ts +++ b/ui/litellm-dashboard/src/app/(dashboard)/models-and-endpoints/components/AutoRouters/autoRouterRows.ts @@ -57,7 +57,7 @@ const dedupe = (models: string[]): string[] => Array.from(new Set(models)); const COMPLEXITY_TYPE_LABELS: Record = { llm: "LLM Classifier", - jev: "Decision Model", + jev: "JEV Classifier", capability: "Capability", llm_v2: "Fuse v2", heuristic_first: "Heuristic first", diff --git a/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.integration.test.tsx b/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.integration.test.tsx index 137ba954f32..f843a472d15 100644 --- a/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.integration.test.tsx +++ b/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.integration.test.tsx @@ -68,7 +68,7 @@ describe("Auto-router classifier selection", () => { llm: "LLM", heuristic_first: "LLM", hybrid: "LLM", - jev: "Decision Model", + jev: "Jev", }[classifier_type]; expect(screen.getByRole("radio", { name: new RegExp(`^${family}$`) })).toBeChecked(); fireEvent.click(screen.getByRole("radio", { name: new RegExp(`^${family}$`) })); diff --git a/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.tsx b/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.tsx index b6997c3d4c4..92fc8d2a335 100644 --- a/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.tsx +++ b/ui/litellm-dashboard/src/components/add_model/AutoRouterClassifierTabs.tsx @@ -164,7 +164,7 @@ const AutoRouterClassifierTabs: React.FC = ({ val {[ { value: "heuristics", label: "Heuristics", description: "Classify locally, with no API call" }, { value: "llm", label: "LLM", description: "Use a judge model to choose a solver" }, - { value: "jev", label: "Decision Model", description: "Use Jev or open-source Nimble to choose a tier" }, + { value: "jev", label: "Jev", description: "Use TypeSafe System One Choice to choose a tier" }, ].map((option) => (