+
+
+ {indexingStatus.systemStatus}
+ {indexingStatus.message ? ` - ${indexingStatus.message}` : ""}
+
+
+ {indexingStatus.systemStatus === "Indexing" && (
+
+ )}
+
+
+ {t("settings:codeIndex.providerLabel")}
+
+
+
+
+
+ {codebaseIndexConfig?.codebaseIndexEmbedderProvider === "openai" && (
+
+ setApiConfigurationField("codeIndexOpenAiKey", e.target.value)}
+ style={{ width: "100%" }}>
+ {t("settings:codeIndex.openaiKeyLabel")}
+
+
+ )}
+
+
+ {t("settings:codeIndex.modelLabel")}
+
+
+
+
+
+ {codebaseIndexConfig?.codebaseIndexEmbedderProvider === "ollama" && (
+ <>
+
+
+ setCachedStateField("codebaseIndexConfig", {
+ ...codebaseIndexConfig,
+ codebaseIndexEmbedderBaseUrl: e.target.value,
+ })
+ }
+ style={{ width: "100%" }}>
+ {t("settings:codeIndex.ollamaUrlLabel")}
+
+
+ >
+ )}
+
+
+
+ setCachedStateField("codebaseIndexConfig", {
+ ...codebaseIndexConfig,
+ codebaseIndexQdrantUrl: e.target.value,
+ })
+ }
+ style={{ width: "100%" }}>
+ {t("settings:codeIndex.qdrantUrlLabel")}
+
+
+
+
+ setApiConfigurationField("codeIndexQdrantApiKey", e.target.value)}
+ style={{ width: "100%" }}>
+ {t("settings:codeIndex.qdrantKeyLabel")}
+
+
+
+
+ {(indexingStatus.systemStatus === "Error" || indexingStatus.systemStatus === "Standby") && (
+
vscode.postMessage({ type: "startIndexing" })}
+ disabled={
+ !areSettingsCommitted ||
+ !validateIndexingConfig(codebaseIndexConfig, apiConfiguration)
+ }>
+ {t("settings:codeIndex.startIndexingButton")}
+
+ )}
+ {(indexingStatus.systemStatus === "Indexed" || indexingStatus.systemStatus === "Error") && (
+
+
+
+ {t("settings:codeIndex.clearIndexDataButton")}
+
+
+
+
+
+ {t("settings:codeIndex.clearDataDialog.title")}
+
+
+ {t("settings:codeIndex.clearDataDialog.description")}
+
+
+
+
+ {t("settings:codeIndex.clearDataDialog.cancelButton")}
+
+ vscode.postMessage({ type: "clearIndexData" })}>
+ {t("settings:codeIndex.clearDataDialog.confirmButton")}
+
+
+
+
+ )}
+
+
+ )}
+ >
+ )
+}
diff --git a/webview-ui/src/components/settings/ExperimentalSettings.tsx b/webview-ui/src/components/settings/ExperimentalSettings.tsx
index 4094a10de6..36b5c86a97 100644
--- a/webview-ui/src/components/settings/ExperimentalSettings.tsx
+++ b/webview-ui/src/components/settings/ExperimentalSettings.tsx
@@ -13,6 +13,9 @@ import { Section } from "./Section"
import { ExperimentalFeature } from "./ExperimentalFeature"
import { Button, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider } from "@/components/ui/"
import { VSCodeTextArea } from "@vscode/webview-ui-toolkit/react"
+import { CodebaseIndexConfig, CodebaseIndexModels, ProviderSettings } from "../../../../src/schemas"
+import { CodeIndexSettings } from "./CodeIndexSettings"
+import { ExtensionStateContextType } from "../../context/ExtensionStateContext"
const SUMMARY_PROMPT = `\
Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
@@ -58,12 +61,18 @@ type ExperimentalSettingsProps = HTMLAttributes