-
- {heuristicScoringRole(value) === "never"
- ? "The complexity router classifies each request with your classifier model and routes it to that tier. Configure which model(s) handle each tier."
- : "The complexity router automatically classifies requests by complexity using rule-based scoring (no API calls, <1ms latency). Configure which model(s) handle each tier."}
-
-
-
- {restrictedBy(value, "displayNames")?.reason ??
- "Rename a tier to use your own vocabulary in the dashboard and your spend logs. Renaming doesn't change how requests are classified, and callers never see these names."}
- {!customTierSet &&
- usesLlmClassifier(value.classifier_type) &&
- " Your classifier model reads these names, so clearer ones can sharpen its choices."}
-
+
{tierRows.map((row, index) => {
- const builtIn = TIER_ORDER.find((tier) => tier === row.id);
- const tierInfo = builtIn ? TIER_DESCRIPTIONS[builtIn] : undefined;
+ const tierInfo = builtInTierInfo(row.id);
const label = tierRowLabel(row, value.tier_labels);
const tierMissing = showValidationErrors && row.models.length === 0;
- const definitionMissing =
- showValidationErrors && Boolean(customTierSet) && !row.definition.trim() && !isBuiltInTierName(row.name);
+ const needsDefinition = Boolean(customTierSet) && !row.definition.trim() && !isBuiltInTierName(row.name);
+ const definitionMissing = showValidationErrors && needsDefinition;
+ const showsDisplayName = !customTierSet && !editingTiers;
return (