+
diff --git a/frontend/src/hooks/useGetProvidersModels.js b/frontend/src/hooks/useGetProvidersModels.js
index fb35230c9..dfd468111 100644
--- a/frontend/src/hooks/useGetProvidersModels.js
+++ b/frontend/src/hooks/useGetProvidersModels.js
@@ -26,6 +26,14 @@ const PROVIDER_DEFAULT_MODELS = {
"gemma-7b-it",
],
native: [],
+ cohere: [
+ "command-r",
+ "command-r-plus",
+ "command",
+ "command-light",
+ "command-nightly",
+ "command-light-nightly",
+ ],
};
// For togetherAi, which has a large model list - we subgroup the options
diff --git a/frontend/src/media/llmprovider/cohere.png b/frontend/src/media/llmprovider/cohere.png
new file mode 100644
index 000000000..5ec86e49b
Binary files /dev/null and b/frontend/src/media/llmprovider/cohere.png differ
diff --git a/frontend/src/media/llmprovider/koboldcpp.png b/frontend/src/media/llmprovider/koboldcpp.png
new file mode 100644
index 000000000..5724f04ab
Binary files /dev/null and b/frontend/src/media/llmprovider/koboldcpp.png differ
diff --git a/frontend/src/pages/Admin/Logging/index.jsx b/frontend/src/pages/Admin/Logging/index.jsx
index 69a81ab56..498247849 100644
--- a/frontend/src/pages/Admin/Logging/index.jsx
+++ b/frontend/src/pages/Admin/Logging/index.jsx
@@ -9,6 +9,22 @@ import showToast from "@/utils/toast";
import CTAButton from "@/components/lib/CTAButton";
export default function AdminLogs() {
+ const query = useQuery();
+ const [loading, setLoading] = useState(true);
+ const [logs, setLogs] = useState([]);
+ const [offset, setOffset] = useState(Number(query.get("offset") || 0));
+ const [canNext, setCanNext] = useState(false);
+
+ useEffect(() => {
+ async function fetchLogs() {
+ const { logs: _logs, hasPages = false } = await System.eventLogs(offset);
+ setLogs(_logs);
+ setCanNext(hasPages);
+ setLoading(false);
+ }
+ fetchLogs();
+ }, [offset]);
+
const handleResetLogs = async () => {
if (
!window.confirm(
@@ -19,13 +35,22 @@ export default function AdminLogs() {
const { success, error } = await System.clearEventLogs();
if (success) {
showToast("Event logs cleared successfully.", "success");
- setTimeout(() => {
- window.location.reload();
- }, 1000);
+ setLogs([]);
+ setCanNext(false);
+ setOffset(0);
} else {
showToast(`Failed to clear logs: ${error}`, "error");
}
};
+
+ const handlePrevious = () => {
+ setOffset(Math.max(offset - 1, 0));
+ };
+
+ const handleNext = () => {
+ setOffset(offset + 1);
+ };
+
return (
@@ -53,37 +78,28 @@ export default function AdminLogs() {
Clear Event Logs
-
+