+
+
+
+ {providerLabel}: {loadingLabel}
+ {extraCount > 0 ? (
+ +{extraCount}
+ ) : null}
+
+
+ {keyLabel(primary)}
+
+
+ {tokenLabel(primary, usage)}
+
+ {miniStat(
+ "Session",
+ sessionRemaining,
+ sessionWindow ? `${sessionWindow.label}: ${Math.round(sessionWindow.pct_used)}% used` : "No session usage returned",
+ )}
+ {miniStat(
+ "Models",
+ modelsRemaining,
+ modelsWindow ? `${modelsWindow.label}: ${Math.round(modelsWindow.pct_used)}% used` : "No model usage returned",
+ )}
+
+ Reset {resetLabel(sessionWindow, modelsWindow)}
+
+
+
+
+ {providerLabel}
+
+
+ {primaryRemaining == null ? "Usage —" : `${Math.round(primaryRemaining)}% left`}
+
+
+
+ );
+}
+
// ---------------------------------------------------------------------------
// Credential row
// ---------------------------------------------------------------------------
@@ -1096,11 +1288,30 @@ export default function AIProvidersSettingsPage() {
const { isSignedIn } = useAuth();
const { isAdmin } = useOrganizationMembership(isSignedIn);
const [credentials, setCredentials] = useState