mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-10-07 02:58:15 +00:00
Make experimental settings more visually consistent (#3923)
This commit is contained in:
parent
ff50a47b5b
commit
b655c0d2e9
19 changed files with 117 additions and 117 deletions
|
|
@ -140,23 +140,27 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
|
|||
|
||||
return (
|
||||
<>
|
||||
<VSCodeCheckbox
|
||||
checked={codebaseIndexConfig?.codebaseIndexEnabled}
|
||||
onChange={(e: any) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEnabled: e.target.checked,
|
||||
})
|
||||
}>
|
||||
⚠️ {t("settings:codeIndex.enableLabel")}
|
||||
</VSCodeCheckbox>
|
||||
<div className="text-vscode-descriptionForeground text-sm mt-1 pl-6">
|
||||
{t("settings:codeIndex.enableDescription")}
|
||||
<div>
|
||||
<div className="flex items-center gap-2">
|
||||
<VSCodeCheckbox
|
||||
checked={codebaseIndexConfig?.codebaseIndexEnabled}
|
||||
onChange={(e: any) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEnabled: e.target.checked,
|
||||
})
|
||||
}>
|
||||
<span className="font-medium">{t("settings:codeIndex.enableLabel")}</span>
|
||||
</VSCodeCheckbox>
|
||||
</div>
|
||||
<p className="text-vscode-descriptionForeground text-sm mt-0">
|
||||
{t("settings:codeIndex.enableDescription")}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{codebaseIndexConfig?.codebaseIndexEnabled && (
|
||||
<div className="mt-4 space-y-4">
|
||||
<div className="text-sm text-vscode-descriptionForeground mt-4">
|
||||
<div className="flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
|
||||
<div className="text-sm text-vscode-descriptionForeground">
|
||||
<span
|
||||
className={`
|
||||
inline-block w-3 h-3 rounded-full mr-2
|
||||
|
|
@ -177,7 +181,7 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
|
|||
</div>
|
||||
|
||||
{indexingStatus.systemStatus === "Indexing" && (
|
||||
<div className="mt-4 space-y-1">
|
||||
<div className="space-y-1">
|
||||
<ProgressPrimitive.Root
|
||||
className="relative h-2 w-full overflow-hidden rounded-full bg-secondary"
|
||||
value={progressPercentage}>
|
||||
|
|
@ -191,76 +195,86 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
|
|||
</div>
|
||||
)}
|
||||
|
||||
<div style={{ fontWeight: "normal", marginBottom: "4px" }}>
|
||||
{t("settings:codeIndex.providerLabel")}
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.providerLabel")}</div>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Select
|
||||
value={codebaseIndexConfig?.codebaseIndexEmbedderProvider || "openai"}
|
||||
onValueChange={(value) => {
|
||||
const newProvider = value as EmbedderProvider
|
||||
const models = codebaseIndexModels?.[newProvider]
|
||||
const modelIds = models ? Object.keys(models) : []
|
||||
const defaultModelId = modelIds.length > 0 ? modelIds[0] : "" // Use empty string if no models
|
||||
<div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Select
|
||||
value={codebaseIndexConfig?.codebaseIndexEmbedderProvider || "openai"}
|
||||
onValueChange={(value) => {
|
||||
const newProvider = value as EmbedderProvider
|
||||
const models = codebaseIndexModels?.[newProvider]
|
||||
const modelIds = models ? Object.keys(models) : []
|
||||
const defaultModelId = modelIds.length > 0 ? modelIds[0] : "" // Use empty string if no models
|
||||
|
||||
if (codebaseIndexConfig) {
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEmbedderProvider: newProvider,
|
||||
codebaseIndexEmbedderModelId: defaultModelId,
|
||||
})
|
||||
}
|
||||
}}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={t("settings:codeIndex.selectProviderPlaceholder")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="openai">{t("settings:codeIndex.openaiProvider")}</SelectItem>
|
||||
<SelectItem value="ollama">{t("settings:codeIndex.ollamaProvider")}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
if (codebaseIndexConfig) {
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEmbedderProvider: newProvider,
|
||||
codebaseIndexEmbedderModelId: defaultModelId,
|
||||
})
|
||||
}
|
||||
}}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={t("settings:codeIndex.selectProviderPlaceholder")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="openai">{t("settings:codeIndex.openaiProvider")}</SelectItem>
|
||||
<SelectItem value="ollama">{t("settings:codeIndex.ollamaProvider")}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{codebaseIndexConfig?.codebaseIndexEmbedderProvider === "openai" && (
|
||||
<div className="space-y-2">
|
||||
<VSCodeTextField
|
||||
type="password"
|
||||
value={apiConfiguration.codeIndexOpenAiKey || ""}
|
||||
onInput={(e: any) => setApiConfigurationField("codeIndexOpenAiKey", e.target.value)}
|
||||
style={{ width: "100%" }}>
|
||||
{t("settings:codeIndex.openaiKeyLabel")}
|
||||
</VSCodeTextField>
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.openaiKeyLabel")}</div>
|
||||
</div>
|
||||
<div>
|
||||
<VSCodeTextField
|
||||
type="password"
|
||||
value={apiConfiguration.codeIndexOpenAiKey || ""}
|
||||
onInput={(e: any) => setApiConfigurationField("codeIndexOpenAiKey", e.target.value)}
|
||||
style={{ width: "100%" }}></VSCodeTextField>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div style={{ fontWeight: "normal", marginBottom: "4px" }}>
|
||||
{t("settings:codeIndex.modelLabel")}
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.modelLabel")}</div>
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Select
|
||||
value={codebaseIndexConfig?.codebaseIndexEmbedderModelId || ""}
|
||||
onValueChange={(value) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEmbedderModelId: value,
|
||||
})
|
||||
}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={t("settings:codeIndex.selectModelPlaceholder")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{availableModelIds.map((modelId) => (
|
||||
<SelectItem key={modelId} value={modelId}>
|
||||
{modelId}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Select
|
||||
value={codebaseIndexConfig?.codebaseIndexEmbedderModelId || ""}
|
||||
onValueChange={(value) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexEmbedderModelId: value,
|
||||
})
|
||||
}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={t("settings:codeIndex.selectModelPlaceholder")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{availableModelIds.map((modelId) => (
|
||||
<SelectItem key={modelId} value={modelId}>
|
||||
{modelId}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{codebaseIndexConfig?.codebaseIndexEmbedderProvider === "ollama" && (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.ollamaUrlLabel")}</div>
|
||||
</div>
|
||||
<div>
|
||||
<VSCodeTextField
|
||||
value={codebaseIndexConfig.codebaseIndexEmbedderBaseUrl || ""}
|
||||
onInput={(e: any) =>
|
||||
|
|
@ -269,38 +283,42 @@ export const CodeIndexSettings: React.FC<CodeIndexSettingsProps> = ({
|
|||
codebaseIndexEmbedderBaseUrl: e.target.value,
|
||||
})
|
||||
}
|
||||
style={{ width: "100%" }}>
|
||||
{t("settings:codeIndex.ollamaUrlLabel")}
|
||||
</VSCodeTextField>
|
||||
style={{ width: "100%" }}></VSCodeTextField>
|
||||
</div>
|
||||
</>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="space-y-2">
|
||||
<VSCodeTextField
|
||||
value={codebaseIndexConfig.codebaseIndexQdrantUrl}
|
||||
onInput={(e: any) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexQdrantUrl: e.target.value,
|
||||
})
|
||||
}
|
||||
style={{ width: "100%" }}>
|
||||
{t("settings:codeIndex.qdrantUrlLabel")}
|
||||
</VSCodeTextField>
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.qdrantUrlLabel")}</div>
|
||||
</div>
|
||||
<div>
|
||||
<VSCodeTextField
|
||||
value={codebaseIndexConfig.codebaseIndexQdrantUrl}
|
||||
onInput={(e: any) =>
|
||||
setCachedStateField("codebaseIndexConfig", {
|
||||
...codebaseIndexConfig,
|
||||
codebaseIndexQdrantUrl: e.target.value,
|
||||
})
|
||||
}
|
||||
style={{ width: "100%" }}></VSCodeTextField>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<VSCodeTextField
|
||||
type="password"
|
||||
value={apiConfiguration.codeIndexQdrantApiKey}
|
||||
onInput={(e: any) => setApiConfigurationField("codeIndexQdrantApiKey", e.target.value)}
|
||||
style={{ width: "100%" }}>
|
||||
{t("settings:codeIndex.qdrantKeyLabel")}
|
||||
</VSCodeTextField>
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="flex items-center gap-4 font-bold">
|
||||
<div>{t("settings:codeIndex.qdrantKeyLabel")}</div>
|
||||
</div>
|
||||
<div>
|
||||
<VSCodeTextField
|
||||
type="password"
|
||||
value={apiConfiguration.codeIndexQdrantApiKey}
|
||||
onInput={(e: any) => setApiConfigurationField("codeIndexQdrantApiKey", e.target.value)}
|
||||
style={{ width: "100%" }}></VSCodeTextField>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex gap-2 mt-4">
|
||||
<div className="flex gap-2">
|
||||
{(indexingStatus.systemStatus === "Error" || indexingStatus.systemStatus === "Standby") && (
|
||||
<VSCodeButton
|
||||
onClick={() => vscode.postMessage({ type: "startIndexing" })}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ export const ExperimentalFeature = ({ enabled, onChange, experimentKey }: Experi
|
|||
return (
|
||||
<div>
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="text-vscode-errorForeground">{t("settings:experimental.warning")}</span>
|
||||
<VSCodeCheckbox checked={enabled} onChange={(e: any) => onChange(e.target.checked)}>
|
||||
<span className="font-medium">{t(nameKey)}</span>
|
||||
</VSCodeCheckbox>
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "Llindar per activar la condensació intel·ligent de context",
|
||||
"description": "Quan la finestra de context assoleix aquest llindar, Roo la condensarà automàticament."
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "Schwellenwert für intelligente Kontextkomprimierung",
|
||||
"description": "Wenn das Kontextfenster diesen Schwellenwert erreicht, wird Roo es automatisch komprimieren."
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
},
|
||||
"codeIndex": {
|
||||
"title": "Codebase Indexing",
|
||||
"enableLabel": "Enable Codebase Indexing",
|
||||
"enableLabel": "Enable codebase indexing",
|
||||
"enableDescription": "Enabling this feature will index your codebase. This might consume system resources and take some time depending on the size of your project.",
|
||||
"providerLabel": "Embeddings Provider",
|
||||
"selectProviderPlaceholder": "Select provider",
|
||||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "Threshold to trigger intelligent context condensing",
|
||||
"description": "When the context window reaches this threshold, Roo will automatically condense it."
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "Umbral para activar la condensación inteligente de contexto",
|
||||
"description": "Cuando la ventana de contexto alcanza este umbral, Roo la condensará automáticamente."
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "Seuil pour déclencher la condensation intelligente du contexte",
|
||||
"description": "Lorsque la fenêtre de contexte atteint ce seuil, Roo la condensera automatiquement."
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "インテリジェントなコンテキスト圧縮をトリガーするしきい値",
|
||||
"description": "コンテキストウィンドウがこのしきい値に達すると、Rooは自動的に圧縮します。"
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"autoCondenseContextPercent": {
|
||||
"label": "触发智能上下文压缩的阈值",
|
||||
"description": "当上下文窗口达到此阈值时,Roo 将自动压缩它。"
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"condensingApiConfiguration": {
|
||||
"label": "API Configuration for Context Condensing",
|
||||
"description": "Select which API configuration to use for context condensing operations. Leave unselected to use the current active configuration.",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue