- OD
+
+
),
};
@@ -303,8 +332,8 @@ function KnowledgeSourcesPage() {
// Initialize connectors list with metadata from backend
const initialConnectors = connectorTypes
- .filter(type => connectorsResult.connectors[type].available) // Only show available connectors
- .map(type => ({
+ .filter((type) => connectorsResult.connectors[type].available) // Only show available connectors
+ .map((type) => ({
id: type,
name: connectorsResult.connectors[type].name,
description: connectorsResult.connectors[type].description,
@@ -312,7 +341,7 @@ function KnowledgeSourcesPage() {
status: "not_connected" as const,
type: type,
}));
-
+ console.log({ initialConnectors });
setConnectors(initialConnectors);
// Check status for each connector type
@@ -327,8 +356,8 @@ function KnowledgeSourcesPage() {
);
const isConnected = activeConnection !== undefined;
- setConnectors(prev =>
- prev.map(c =>
+ setConnectors((prev) =>
+ prev.map((c) =>
c.type === connectorType
? {
...c,
@@ -347,7 +376,7 @@ function KnowledgeSourcesPage() {
const handleConnect = async (connector: Connector) => {
setIsConnecting(connector.id);
- setSyncResults(prev => ({ ...prev, [connector.id]: null }));
+ setSyncResults((prev) => ({ ...prev, [connector.id]: null }));
try {
// Use the shared auth callback URL, same as connectors page
@@ -453,34 +482,13 @@ function KnowledgeSourcesPage() {
const getStatusBadge = (status: Connector["status"]) => {
switch (status) {
case "connected":
- return (
-
- Connected
-
- );
+ return
;
case "connecting":
- return (
-
- Connecting...
-
- );
+ return
;
case "error":
- return
Error;
+ return
;
default:
- return (
-
- Not Connected
-
- );
+ return
;
}
};
@@ -508,9 +516,9 @@ function KnowledgeSourcesPage() {
// Watch for task completions and refresh stats
useEffect(() => {
// Find newly completed tasks by comparing with previous state
- const newlyCompletedTasks = tasks.filter(task => {
+ const newlyCompletedTasks = tasks.filter((task) => {
const wasCompleted =
- prevTasks.find(prev => prev.task_id === task.task_id)?.status ===
+ prevTasks.find((prev) => prev.task_id === task.task_id)?.status ===
"completed";
return task.status === "completed" && !wasCompleted;
});
@@ -564,7 +572,7 @@ function KnowledgeSourcesPage() {
fetch(`/api/reset-flow/retrieval`, {
method: "POST",
})
- .then(response => {
+ .then((response) => {
if (response.ok) {
return response.json();
}
@@ -577,7 +585,7 @@ function KnowledgeSourcesPage() {
handleModelChange(DEFAULT_AGENT_SETTINGS.llm_model);
closeDialog(); // Close after successful completion
})
- .catch(error => {
+ .catch((error) => {
console.error("Error restoring retrieval flow:", error);
closeDialog(); // Close even on error (could show error toast instead)
});
@@ -587,7 +595,7 @@ function KnowledgeSourcesPage() {
fetch(`/api/reset-flow/ingest`, {
method: "POST",
})
- .then(response => {
+ .then((response) => {
if (response.ok) {
return response.json();
}
@@ -602,7 +610,7 @@ function KnowledgeSourcesPage() {
setPictureDescriptions(false);
closeDialog(); // Close after successful completion
})
- .catch(error => {
+ .catch((error) => {
console.error("Error restoring ingest flow:", error);
closeDialog(); // Close even on error (could show error toast instead)
});
@@ -613,7 +621,7 @@ function KnowledgeSourcesPage() {
{/* Connectors Section */}
-
+
Cloud Connectors
@@ -700,73 +708,85 @@ function KnowledgeSourcesPage() {
{/* Connectors Grid */}
- {connectors.map(connector => (
-
-
-
-
- {connector.icon}
-
-
+ {DEFAULT_CONNECTORS.map((connector) => {
+ const actualConnector = connectors.find(
+ (c) => c.id === connector.id
+ );
+ return (
+
+
+
+
+
+
{connector.name}
+ {actualConnector &&
+ getStatusBadge(actualConnector.status)}
-
- {connector.description}
+
+ {actualConnector?.description
+ ? `${actualConnector.name} is configured.`
+ : connector.description}
- {getStatusBadge(connector.status)}
-
-
-
- {connector.status === "connected" ? (
-
-
+
+
+ {actualConnector?.status === "connected" ? (
+
+
- {syncResults[connector.id] && (
-
-
- Processed: {syncResults[connector.id]?.processed || 0}
+ {syncResults[connector.id] && (
+
+
+ Processed:{" "}
+ {syncResults[connector.id]?.processed || 0}
+
+
+ Added: {syncResults[connector.id]?.added || 0}
+
+ {syncResults[connector.id]?.errors && (
+
+ Errors: {syncResults[connector.id]?.errors}
+
+ )}
-
- Added: {syncResults[connector.id]?.added || 0}
-
- {syncResults[connector.id]?.errors && (
-
Errors: {syncResults[connector.id]?.errors}
- )}
-
- )}
-
- ) : (
-
- )}
-
-
- ))}
+ )}
+
+ ) : (
+
+
+ See our{" "}
+
+ Cloud Connectors installation guide
+ {" "}
+ for more detail.
+
+
+ )}
+
+
+ );
+ })}
{/* Agent Behavior Section */}
@@ -834,7 +854,7 @@ function KnowledgeSourcesPage() {
}
confirmText="Proceed"
confirmIcon={
}
- onConfirm={closeDialog =>
+ onConfirm={(closeDialog) =>
handleEditInLangflow("chat", closeDialog)
}
variant="warning"
@@ -854,7 +874,8 @@ function KnowledgeSourcesPage() {
-
-