Просмотр исходного кода

Turn Prompts tab into Modes tab and move support prompts to Settings (#4078)

Matt Rubens 7 месяцев назад
Родитель
Сommit
12669e1e64
60 измененных файлов с 364 добавлено и 259 удалено
  1. 1 1
      src/package.json
  2. 1 1
      src/package.nls.ca.json
  3. 1 1
      src/package.nls.de.json
  4. 1 1
      src/package.nls.es.json
  5. 1 1
      src/package.nls.fr.json
  6. 1 1
      src/package.nls.hi.json
  7. 1 1
      src/package.nls.it.json
  8. 1 1
      src/package.nls.ja.json
  9. 1 1
      src/package.nls.json
  10. 1 1
      src/package.nls.ko.json
  11. 1 1
      src/package.nls.nl.json
  12. 1 1
      src/package.nls.pl.json
  13. 1 1
      src/package.nls.pt-BR.json
  14. 1 1
      src/package.nls.ru.json
  15. 1 1
      src/package.nls.tr.json
  16. 1 1
      src/package.nls.vi.json
  17. 1 1
      src/package.nls.zh-CN.json
  18. 1 1
      src/package.nls.zh-TW.json
  19. 10 8
      src/services/checkpoints/__tests__/ShadowCheckpointService.test.ts
  20. 1 1
      src/services/mcp/McpHub.ts
  21. 4 4
      webview-ui/src/App.tsx
  22. 3 3
      webview-ui/src/__tests__/App.test.tsx
  23. 5 169
      webview-ui/src/components/modes/ModesView.tsx
  24. 4 22
      webview-ui/src/components/modes/__tests__/ModesView.test.tsx
  25. 193 0
      webview-ui/src/components/settings/PromptsSettings.tsx
  26. 7 0
      webview-ui/src/components/settings/SettingsView.tsx
  27. 3 2
      webview-ui/src/i18n/locales/ca/prompts.json
  28. 4 0
      webview-ui/src/i18n/locales/ca/settings.json
  29. 3 2
      webview-ui/src/i18n/locales/de/prompts.json
  30. 4 0
      webview-ui/src/i18n/locales/de/settings.json
  31. 3 2
      webview-ui/src/i18n/locales/en/prompts.json
  32. 4 0
      webview-ui/src/i18n/locales/en/settings.json
  33. 3 2
      webview-ui/src/i18n/locales/es/prompts.json
  34. 4 0
      webview-ui/src/i18n/locales/es/settings.json
  35. 3 2
      webview-ui/src/i18n/locales/fr/prompts.json
  36. 4 0
      webview-ui/src/i18n/locales/fr/settings.json
  37. 3 2
      webview-ui/src/i18n/locales/hi/prompts.json
  38. 4 0
      webview-ui/src/i18n/locales/hi/settings.json
  39. 3 2
      webview-ui/src/i18n/locales/it/prompts.json
  40. 4 0
      webview-ui/src/i18n/locales/it/settings.json
  41. 3 2
      webview-ui/src/i18n/locales/ja/prompts.json
  42. 4 0
      webview-ui/src/i18n/locales/ja/settings.json
  43. 3 2
      webview-ui/src/i18n/locales/ko/prompts.json
  44. 4 0
      webview-ui/src/i18n/locales/ko/settings.json
  45. 3 2
      webview-ui/src/i18n/locales/nl/prompts.json
  46. 4 0
      webview-ui/src/i18n/locales/nl/settings.json
  47. 3 2
      webview-ui/src/i18n/locales/pl/prompts.json
  48. 4 0
      webview-ui/src/i18n/locales/pl/settings.json
  49. 3 2
      webview-ui/src/i18n/locales/pt-BR/prompts.json
  50. 4 0
      webview-ui/src/i18n/locales/pt-BR/settings.json
  51. 3 2
      webview-ui/src/i18n/locales/ru/prompts.json
  52. 4 0
      webview-ui/src/i18n/locales/ru/settings.json
  53. 3 2
      webview-ui/src/i18n/locales/tr/prompts.json
  54. 4 0
      webview-ui/src/i18n/locales/tr/settings.json
  55. 3 2
      webview-ui/src/i18n/locales/vi/prompts.json
  56. 4 0
      webview-ui/src/i18n/locales/vi/settings.json
  57. 3 2
      webview-ui/src/i18n/locales/zh-CN/prompts.json
  58. 4 0
      webview-ui/src/i18n/locales/zh-CN/settings.json
  59. 3 2
      webview-ui/src/i18n/locales/zh-TW/prompts.json
  60. 4 0
      webview-ui/src/i18n/locales/zh-TW/settings.json

+ 1 - 1
src/package.json

@@ -83,7 +83,7 @@
 			{
 				"command": "roo-cline.promptsButtonClicked",
 				"title": "%command.prompts.title%",
-				"icon": "$(notebook)"
+				"icon": "$(organization)"
 			},
 			{
 				"command": "roo-cline.historyButtonClicked",

+ 1 - 1
src/package.nls.ca.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Servidors MCP",
-	"command.prompts.title": "Indicacions",
+	"command.prompts.title": "Modes",
 	"command.history.title": "Historial",
 	"command.openInEditor.title": "Obrir a l'Editor",
 	"command.settings.title": "Configuració",

+ 1 - 1
src/package.nls.de.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "MCP Server",
-	"command.prompts.title": "Prompts",
+	"command.prompts.title": "Modi",
 	"command.history.title": "Verlauf",
 	"command.openInEditor.title": "Im Editor Öffnen",
 	"command.settings.title": "Einstellungen",

+ 1 - 1
src/package.nls.es.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Servidores MCP",
-	"command.prompts.title": "Indicaciones",
+	"command.prompts.title": "Modos",
 	"command.history.title": "Historial",
 	"command.openInEditor.title": "Abrir en Editor",
 	"command.settings.title": "Configuración",

+ 1 - 1
src/package.nls.fr.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Serveurs MCP",
-	"command.prompts.title": "Invites",
+	"command.prompts.title": "Modes",
 	"command.history.title": "Historique",
 	"command.openInEditor.title": "Ouvrir dans l'Éditeur",
 	"command.settings.title": "Paramètres",

+ 1 - 1
src/package.nls.hi.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "एमसीपी सर्वर",
-	"command.prompts.title": "प्रॉम्प्ट्स",
+	"command.prompts.title": "मोड्स",
 	"command.history.title": "इतिहास",
 	"command.openInEditor.title": "एडिटर में खोलें",
 	"command.settings.title": "सेटिंग्स",

+ 1 - 1
src/package.nls.it.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Server MCP",
-	"command.prompts.title": "Prompt",
+	"command.prompts.title": "Modi",
 	"command.history.title": "Cronologia",
 	"command.openInEditor.title": "Apri nell'Editor",
 	"command.settings.title": "Impostazioni",

+ 1 - 1
src/package.nls.ja.json

@@ -6,7 +6,7 @@
 	"views.activitybar.title": "Roo Code",
 	"command.newTask.title": "新しいタスク",
 	"command.mcpServers.title": "MCPサーバー",
-	"command.prompts.title": "プロンプト",
+	"command.prompts.title": "モード",
 	"command.history.title": "履歴",
 	"command.openInEditor.title": "エディタで開く",
 	"command.settings.title": "設定",

+ 1 - 1
src/package.nls.json

@@ -6,7 +6,7 @@
 	"views.activitybar.title": "Roo Code",
 	"command.newTask.title": "New Task",
 	"command.mcpServers.title": "MCP Servers",
-	"command.prompts.title": "Prompts",
+	"command.prompts.title": "Modes",
 	"command.history.title": "History",
 	"command.openInEditor.title": "Open in Editor",
 	"command.settings.title": "Settings",

+ 1 - 1
src/package.nls.ko.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "MCP 서버",
-	"command.prompts.title": "프롬프트",
+	"command.prompts.title": "모드",
 	"command.history.title": "기록",
 	"command.openInEditor.title": "에디터에서 열기",
 	"command.settings.title": "설정",

+ 1 - 1
src/package.nls.nl.json

@@ -6,7 +6,7 @@
 	"views.activitybar.title": "Roo Code",
 	"command.newTask.title": "Nieuwe Taak",
 	"command.mcpServers.title": "MCP Servers",
-	"command.prompts.title": "Prompts",
+	"command.prompts.title": "Modi",
 	"command.history.title": "Geschiedenis",
 	"command.openInEditor.title": "Openen in Editor",
 	"command.settings.title": "Instellingen",

+ 1 - 1
src/package.nls.pl.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Serwery MCP",
-	"command.prompts.title": "Podpowiedzi",
+	"command.prompts.title": "Tryby",
 	"command.history.title": "Historia",
 	"command.openInEditor.title": "Otwórz w Edytorze",
 	"command.settings.title": "Ustawienia",

+ 1 - 1
src/package.nls.pt-BR.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Servidores MCP",
-	"command.prompts.title": "Prompts",
+	"command.prompts.title": "Modos",
 	"command.history.title": "Histórico",
 	"command.openInEditor.title": "Abrir no Editor",
 	"command.settings.title": "Configurações",

+ 1 - 1
src/package.nls.ru.json

@@ -6,7 +6,7 @@
 	"views.activitybar.title": "Roo Code",
 	"command.newTask.title": "Новая задача",
 	"command.mcpServers.title": "MCP серверы",
-	"command.prompts.title": "Промпты",
+	"command.prompts.title": "Режимы",
 	"command.history.title": "История",
 	"command.openInEditor.title": "Открыть в редакторе",
 	"command.settings.title": "Настройки",

+ 1 - 1
src/package.nls.tr.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "MCP Sunucuları",
-	"command.prompts.title": "Komut İstemleri",
+	"command.prompts.title": "Modlar",
 	"command.history.title": "Geçmiş",
 	"command.openInEditor.title": "Düzenleyicide Aç",
 	"command.settings.title": "Ayarlar",

+ 1 - 1
src/package.nls.vi.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "Máy Chủ MCP",
-	"command.prompts.title": "Lời Nhắc",
+	"command.prompts.title": "Chế Độ",
 	"command.history.title": "Lịch Sử",
 	"command.openInEditor.title": "Mở trong Trình Soạn Thảo",
 	"command.settings.title": "Cài Đặt",

+ 1 - 1
src/package.nls.zh-CN.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "MCP 服务器",
-	"command.prompts.title": "提示",
+	"command.prompts.title": "模式",
 	"command.history.title": "历史记录",
 	"command.openInEditor.title": "在编辑器中打开",
 	"command.settings.title": "设置",

+ 1 - 1
src/package.nls.zh-TW.json

@@ -17,7 +17,7 @@
 	"views.contextMenu.label": "Roo Code",
 	"views.terminalMenu.label": "Roo Code",
 	"command.mcpServers.title": "MCP 伺服器",
-	"command.prompts.title": "提示",
+	"command.prompts.title": "模式",
 	"command.history.title": "歷史記錄",
 	"command.openInEditor.title": "在編輯器中開啟",
 	"command.settings.title": "設定",

+ 10 - 8
src/services/checkpoints/__tests__/ShadowCheckpointService.test.ts

@@ -658,7 +658,9 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
 			it("creates checkpoint with changes regardless of allowEmpty setting", async () => {
 				await fs.writeFile(testFile, "Modified content for allowEmpty test")
 
-				const resultWithAllowEmpty = await service.saveCheckpoint("With changes and allowEmpty", { allowEmpty: true })
+				const resultWithAllowEmpty = await service.saveCheckpoint("With changes and allowEmpty", {
+					allowEmpty: true,
+				})
 				expect(resultWithAllowEmpty?.commit).toBeTruthy()
 
 				await fs.writeFile(testFile, "Another modification for allowEmpty test")
@@ -685,7 +687,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
 				// First, create a checkpoint to ensure we're not in the initial state
 				await fs.writeFile(testFile, "Setup content")
 				await service.saveCheckpoint("Setup checkpoint")
-				
+
 				// Reset the file to original state
 				await fs.writeFile(testFile, "Hello, world!")
 				await service.saveCheckpoint("Reset to original")
@@ -723,15 +725,15 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
 
 				await testService.saveCheckpoint("Test logging with allowEmpty", { allowEmpty: true })
 
-				const saveCheckpointLogs = logMessages.filter(msg =>
-					msg.includes("starting checkpoint save") && msg.includes("allowEmpty: true")
+				const saveCheckpointLogs = logMessages.filter(
+					(msg) => msg.includes("starting checkpoint save") && msg.includes("allowEmpty: true"),
 				)
 				expect(saveCheckpointLogs).toHaveLength(1)
 
 				await testService.saveCheckpoint("Test logging without allowEmpty")
 
-				const defaultLogs = logMessages.filter(msg =>
-					msg.includes("starting checkpoint save") && msg.includes("allowEmpty: false")
+				const defaultLogs = logMessages.filter(
+					(msg) => msg.includes("starting checkpoint save") && msg.includes("allowEmpty: false"),
 				)
 				expect(defaultLogs).toHaveLength(1)
 			})
@@ -776,7 +778,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
 				// Get diff between regular commit and empty commit
 				const diff = await service.getDiff({
 					from: beforeEmpty!.commit,
-					to: emptyCommit!.commit
+					to: emptyCommit!.commit,
 				})
 
 				// Should have no differences since empty commit doesn't change anything
@@ -802,7 +804,7 @@ describe.each([[RepoPerTaskCheckpointService, "RepoPerTaskCheckpointService"]])(
 
 				// Restore to the new task checkpoint
 				await service.restoreCheckpoint(newTaskCheckpoint!.commit)
-				
+
 				// File should be back to original state
 				expect(await fs.readFile(testFile, "utf-8")).toBe("Hello, world!")
 			})

+ 1 - 1
src/services/mcp/McpHub.ts

@@ -452,7 +452,7 @@ export class McpHub {
 					args: configInjected.args,
 					cwd: configInjected.cwd,
 					env: {
-					...(configInjected.env || {}),
+						...(configInjected.env || {}),
 						...(process.env.PATH ? { PATH: process.env.PATH } : {}),
 						...(process.env.HOME ? { HOME: process.env.HOME } : {}),
 					},

+ 4 - 4
webview-ui/src/App.tsx

@@ -13,15 +13,15 @@ import HistoryView from "./components/history/HistoryView"
 import SettingsView, { SettingsViewRef } from "./components/settings/SettingsView"
 import WelcomeView from "./components/welcome/WelcomeView"
 import McpView from "./components/mcp/McpView"
-import PromptsView from "./components/prompts/PromptsView"
+import ModesView from "./components/modes/ModesView"
 import { HumanRelayDialog } from "./components/human-relay/HumanRelayDialog"
 
-type Tab = "settings" | "history" | "mcp" | "prompts" | "chat"
+type Tab = "settings" | "history" | "mcp" | "modes" | "chat"
 
 const tabsByMessageAction: Partial<Record<NonNullable<ExtensionMessage["action"]>, Tab>> = {
 	chatButtonClicked: "chat",
 	settingsButtonClicked: "settings",
-	promptsButtonClicked: "prompts",
+	promptsButtonClicked: "modes",
 	mcpButtonClicked: "mcp",
 	historyButtonClicked: "history",
 }
@@ -112,7 +112,7 @@ const App = () => {
 		<WelcomeView />
 	) : (
 		<>
-			{tab === "prompts" && <PromptsView onDone={() => switchTab("chat")} />}
+			{tab === "modes" && <ModesView onDone={() => switchTab("chat")} />}
 			{tab === "mcp" && <McpView onDone={() => switchTab("chat")} />}
 			{tab === "history" && <HistoryView onDone={() => switchTab("chat")} />}
 			{tab === "settings" && (

+ 3 - 3
webview-ui/src/__tests__/App.test.tsx

@@ -56,12 +56,12 @@ jest.mock("@src/components/mcp/McpView", () => ({
 	},
 }))
 
-jest.mock("@src/components/prompts/PromptsView", () => ({
+jest.mock("@src/components/modes/ModesView", () => ({
 	__esModule: true,
-	default: function PromptsView({ onDone }: { onDone: () => void }) {
+	default: function ModesView({ onDone }: { onDone: () => void }) {
 		return (
 			<div data-testid="prompts-view" onClick={onDone}>
-				Prompts View
+				Modes View
 			</div>
 		)
 	},

+ 5 - 169
webview-ui/src/components/prompts/PromptsView.tsx → webview-ui/src/components/modes/ModesView.tsx

@@ -19,7 +19,6 @@ import {
 	getAllModes,
 	findModeBySlug as findCustomModeBySlug,
 } from "@roo/modes"
-import { supportPrompt, SupportPromptType } from "@roo/support-prompt"
 import { TOOL_GROUPS } from "@roo/tools"
 
 import { vscode } from "@src/utils/vscode"
@@ -51,7 +50,7 @@ const availableGroups = (Object.keys(TOOL_GROUPS) as ToolGroup[]).filter((group)
 
 type ModeSource = "global" | "project"
 
-type PromptsViewProps = {
+type ModesViewProps = {
 	onDone: () => void
 }
 
@@ -60,16 +59,13 @@ function getGroupName(group: GroupEntry): ToolGroup {
 	return Array.isArray(group) ? group[0] : group
 }
 
-const PromptsView = ({ onDone }: PromptsViewProps) => {
+const ModesView = ({ onDone }: ModesViewProps) => {
 	const { t } = useAppTranslation()
 
 	const {
 		customModePrompts,
-		customSupportPrompts,
 		listApiConfigMeta,
 		currentApiConfigName,
-		enhancementApiConfigId,
-		setEnhancementApiConfigId,
 		mode,
 		customInstructions,
 		setCustomInstructions,
@@ -86,15 +82,12 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 	// Memoize modes to preserve array order
 	const modes = useMemo(() => getAllModes(customModes), [customModes])
 
-	const [testPrompt, setTestPrompt] = useState("")
-	const [isEnhancing, setIsEnhancing] = useState(false)
 	const [isDialogOpen, setIsDialogOpen] = useState(false)
 	const [selectedPromptContent, setSelectedPromptContent] = useState("")
 	const [selectedPromptTitle, setSelectedPromptTitle] = useState("")
 	const [isToolsEditMode, setIsToolsEditMode] = useState(false)
 	const [showConfigMenu, setShowConfigMenu] = useState(false)
 	const [isCreateModeDialogOpen, setIsCreateModeDialogOpen] = useState(false)
-	const [activeSupportOption, setActiveSupportOption] = useState<SupportPromptType>("ENHANCE")
 	const [isSystemPromptDisclosureOpen, setIsSystemPromptDisclosureOpen] = useState(false)
 
 	// State for mode selection popover and search
@@ -380,12 +373,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 	useEffect(() => {
 		const handler = (event: MessageEvent) => {
 			const message = event.data
-			if (message.type === "enhancedPrompt") {
-				if (message.text) {
-					setTestPrompt(message.text)
-				}
-				setIsEnhancing(false)
-			} else if (message.type === "systemPrompt") {
+			if (message.type === "systemPrompt") {
 				if (message.text) {
 					setSelectedPromptContent(message.text)
 					setSelectedPromptTitle(`System Prompt (${message.mode} mode)`)
@@ -398,15 +386,6 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 		return () => window.removeEventListener("message", handler)
 	}, [])
 
-	const updateSupportPrompt = (type: SupportPromptType, value: string | undefined) => {
-		vscode.postMessage({
-			type: "updateSupportPrompt",
-			values: {
-				[type]: value,
-			},
-		})
-	}
-
 	const handleAgentReset = (modeSlug: string, type: "roleDefinition" | "whenToUse" | "customInstructions") => {
 		// Only reset for built-in modes
 		const existingPrompt = customModePrompts?.[modeSlug] as PromptComponent
@@ -420,27 +399,6 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 		})
 	}
 
-	const handleSupportReset = (type: SupportPromptType) => {
-		vscode.postMessage({
-			type: "resetSupportPrompt",
-			text: type,
-		})
-	}
-
-	const getSupportPromptValue = (type: SupportPromptType): string => {
-		return supportPrompt.get(customSupportPrompts, type)
-	}
-
-	const handleTestEnhancement = () => {
-		if (!testPrompt.trim()) return
-
-		setIsEnhancing(true)
-		vscode.postMessage({
-			type: "enhancePrompt",
-			text: testPrompt,
-		})
-	}
-
 	return (
 		<Tab>
 			<TabHeader className="flex justify-between items-center">
@@ -1078,7 +1036,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 					</div>
 				</div>
 
-				<div className="pb-5 border-b border-vscode-input-border">
+				<div className="pb-5">
 					<h3 className="text-vscode-foreground mb-3">{t("prompts:globalCustomInstructions.title")}</h3>
 
 					<div className="text-sm text-vscode-descriptionForeground mb-2">
@@ -1131,128 +1089,6 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 						/>
 					</div>
 				</div>
-
-				<div className="mt-5 pb-15 border-b border-vscode-input-border">
-					<h3 className="text-vscode-foreground mb-3">{t("prompts:supportPrompts.title")}</h3>
-					<div className="flex gap-4 items-center flex-wrap py-1">
-						<Select
-							value={activeSupportOption}
-							onValueChange={(type) => setActiveSupportOption(type as SupportPromptType)}>
-							<SelectTrigger className="w-full" data-testid="support-prompt-select-trigger">
-								<SelectValue placeholder={t("settings:common.select")} />
-							</SelectTrigger>
-							<SelectContent>
-								{Object.keys(supportPrompt.default).map((type) => (
-									<SelectItem key={type} value={type} data-testid={`${type}-option`}>
-										{t(`prompts:supportPrompts.types.${type}.label`)}
-									</SelectItem>
-								))}
-							</SelectContent>
-						</Select>
-					</div>
-
-					{/* Support prompt description */}
-					<div className="text-[13px] text-vscode-descriptionForeground my-2 mb-4">
-						{t(`prompts:supportPrompts.types.${activeSupportOption}.description`)}
-					</div>
-
-					<div key={activeSupportOption}>
-						<div className="flex justify-between items-center mb-1">
-							<div className="font-bold">{t("prompts:supportPrompts.prompt")}</div>
-							<Button
-								variant="ghost"
-								size="icon"
-								onClick={() => handleSupportReset(activeSupportOption)}
-								title={t("prompts:supportPrompts.resetPrompt", {
-									promptType: activeSupportOption,
-								})}>
-								<span className="codicon codicon-discard"></span>
-							</Button>
-						</div>
-
-						<VSCodeTextArea
-							resize="vertical"
-							value={getSupportPromptValue(activeSupportOption)}
-							onChange={(e) => {
-								const value =
-									(e as unknown as CustomEvent)?.detail?.target?.value ||
-									((e as any).target as HTMLTextAreaElement).value
-								const trimmedValue = value.trim()
-								updateSupportPrompt(activeSupportOption, trimmedValue || undefined)
-							}}
-							rows={6}
-							className="w-full"
-						/>
-
-						{activeSupportOption === "ENHANCE" && (
-							<>
-								<div>
-									<div className="text-vscode-foreground text-[13px] mb-5 mt-1.5"></div>
-									<div className="mb-3">
-										<div className="mb-2">
-											<div className="font-bold mb-1">
-												{t("prompts:supportPrompts.enhance.apiConfiguration")}
-											</div>
-											<div className="text-[13px] text-vscode-descriptionForeground">
-												{t("prompts:supportPrompts.enhance.apiConfigDescription")}
-											</div>
-										</div>
-										<Select
-											value={enhancementApiConfigId || "-"}
-											onValueChange={(value) => {
-												// normalise to empty string for empty value
-												// because we can't use it directly for the select element
-												setEnhancementApiConfigId(value === "-" ? "" : value)
-												vscode.postMessage({
-													type: "enhancementApiConfigId",
-													text: value,
-												})
-											}}>
-											<SelectTrigger data-testid="api-config-select" className="w-full">
-												<SelectValue
-													placeholder={t("prompts:supportPrompts.enhance.useCurrentConfig")}
-												/>
-											</SelectTrigger>
-											<SelectContent>
-												<SelectItem value="-">
-													{t("prompts:supportPrompts.enhance.useCurrentConfig")}
-												</SelectItem>
-												{(listApiConfigMeta || []).map((config) => (
-													<SelectItem
-														key={config.id}
-														value={config.id}
-														data-testid={`${config.id}-option`}>
-														{config.name}
-													</SelectItem>
-												))}
-											</SelectContent>
-										</Select>
-									</div>
-								</div>
-
-								<div className="mt-4">
-									<VSCodeTextArea
-										resize="vertical"
-										value={testPrompt}
-										onChange={(e) => setTestPrompt((e.target as HTMLTextAreaElement).value)}
-										placeholder={t("prompts:supportPrompts.enhance.testPromptPlaceholder")}
-										rows={3}
-										className="w-full"
-										data-testid="test-prompt-textarea"
-									/>
-									<div className="mt-2 flex justify-start items-center gap-2">
-										<Button
-											variant="default"
-											onClick={handleTestEnhancement}
-											disabled={isEnhancing}>
-											{t("prompts:supportPrompts.enhance.previewButton")}
-										</Button>
-									</div>
-								</div>
-							</>
-						)}
-					</div>
-				</div>
 			</TabContent>
 
 			{isCreateModeDialogOpen && (
@@ -1461,4 +1297,4 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
 	)
 }
 
-export default PromptsView
+export default ModesView

+ 4 - 22
webview-ui/src/components/prompts/__tests__/PromptsView.test.tsx → webview-ui/src/components/modes/__tests__/ModesView.test.tsx

@@ -1,7 +1,7 @@
 // npx jest src/components/prompts/__tests__/PromptsView.test.tsx
 
 import { render, screen, fireEvent, waitFor } from "@testing-library/react"
-import PromptsView from "../PromptsView"
+import ModesView from "../ModesView"
 import { ExtensionStateContext } from "@src/context/ExtensionStateContext"
 import { vscode } from "@src/utils/vscode"
 
@@ -48,7 +48,7 @@ const renderPromptsView = (props = {}) => {
 	const mockOnDone = jest.fn()
 	return render(
 		<ExtensionStateContext.Provider value={{ ...mockExtensionState, ...props } as any}>
-			<PromptsView onDone={mockOnDone} />
+			<ModesView onDone={mockOnDone} />
 		</ExtensionStateContext.Provider>,
 	)
 }
@@ -144,7 +144,7 @@ describe("PromptsView", () => {
 		const { unmount } = render(
 			<ExtensionStateContext.Provider
 				value={{ ...mockExtensionState, mode: "code", customModes: [customMode] } as any}>
-				<PromptsView onDone={jest.fn()} />
+				<ModesView onDone={jest.fn()} />
 			</ExtensionStateContext.Provider>,
 		)
 
@@ -167,7 +167,7 @@ describe("PromptsView", () => {
 		render(
 			<ExtensionStateContext.Provider
 				value={{ ...mockExtensionState, mode: "custom-mode", customModes: [customMode] } as any}>
-				<PromptsView onDone={jest.fn()} />
+				<ModesView onDone={jest.fn()} />
 			</ExtensionStateContext.Provider>,
 		)
 
@@ -175,24 +175,6 @@ describe("PromptsView", () => {
 		expect(screen.queryByTestId("role-definition-reset")).not.toBeInTheDocument()
 	})
 
-	it("handles API configuration selection", async () => {
-		renderPromptsView()
-
-		const trigger = screen.getByTestId("support-prompt-select-trigger")
-		fireEvent.click(trigger)
-
-		const enhanceOption = await waitFor(() => screen.getByTestId("ENHANCE-option"))
-		fireEvent.click(enhanceOption)
-
-		const apiConfig = await waitFor(() => screen.getByTestId("api-config-select"))
-		fireEvent.click(apiConfig)
-
-		const config1 = await waitFor(() => screen.getByTestId("config1-option"))
-		fireEvent.click(config1)
-
-		expect(mockExtensionState.setEnhancementApiConfigId).toHaveBeenCalledWith("config1") // Ensure this is not called by mode switch
-	})
-
 	it("handles clearing custom instructions correctly", async () => {
 		const setCustomInstructions = jest.fn()
 		renderPromptsView({

+ 193 - 0
webview-ui/src/components/settings/PromptsSettings.tsx

@@ -0,0 +1,193 @@
+import React, { useState, useEffect } from "react"
+import { VSCodeTextArea } from "@vscode/webview-ui-toolkit/react"
+
+import { supportPrompt, SupportPromptType } from "@roo/support-prompt"
+
+import { vscode } from "@src/utils/vscode"
+import { useAppTranslation } from "@src/i18n/TranslationContext"
+import { useExtensionState } from "@src/context/ExtensionStateContext"
+import { Button, Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@src/components/ui"
+import { SectionHeader } from "./SectionHeader"
+import { Section } from "./Section"
+import { MessageSquare } from "lucide-react"
+
+const PromptsSettings = () => {
+	const { t } = useAppTranslation()
+
+	const { customSupportPrompts, listApiConfigMeta, enhancementApiConfigId, setEnhancementApiConfigId } =
+		useExtensionState()
+
+	const [testPrompt, setTestPrompt] = useState("")
+	const [isEnhancing, setIsEnhancing] = useState(false)
+	const [activeSupportOption, setActiveSupportOption] = useState<SupportPromptType>("ENHANCE")
+
+	useEffect(() => {
+		const handler = (event: MessageEvent) => {
+			const message = event.data
+			if (message.type === "enhancedPrompt") {
+				if (message.text) {
+					setTestPrompt(message.text)
+				}
+				setIsEnhancing(false)
+			}
+		}
+
+		window.addEventListener("message", handler)
+		return () => window.removeEventListener("message", handler)
+	}, [])
+
+	const updateSupportPrompt = (type: SupportPromptType, value: string | undefined) => {
+		vscode.postMessage({
+			type: "updateSupportPrompt",
+			values: {
+				[type]: value,
+			},
+		})
+	}
+
+	const handleSupportReset = (type: SupportPromptType) => {
+		vscode.postMessage({
+			type: "resetSupportPrompt",
+			text: type,
+		})
+	}
+
+	const getSupportPromptValue = (type: SupportPromptType): string => {
+		return supportPrompt.get(customSupportPrompts, type)
+	}
+
+	const handleTestEnhancement = () => {
+		if (!testPrompt.trim()) return
+
+		setIsEnhancing(true)
+		vscode.postMessage({
+			type: "enhancePrompt",
+			text: testPrompt,
+		})
+	}
+
+	return (
+		<div>
+			<SectionHeader description={t("settings:prompts.description")}>
+				<div className="flex items-center gap-2">
+					<MessageSquare className="w-4" />
+					<div>{t("settings:sections.prompts")}</div>
+				</div>
+			</SectionHeader>
+
+			<Section>
+				<div>
+					<Select
+						value={activeSupportOption}
+						onValueChange={(type) => setActiveSupportOption(type as SupportPromptType)}>
+						<SelectTrigger className="w-full" data-testid="support-prompt-select-trigger">
+							<SelectValue placeholder={t("settings:common.select")} />
+						</SelectTrigger>
+						<SelectContent>
+							{Object.keys(supportPrompt.default).map((type) => (
+								<SelectItem key={type} value={type} data-testid={`${type}-option`}>
+									{t(`prompts:supportPrompts.types.${type}.label`)}
+								</SelectItem>
+							))}
+						</SelectContent>
+					</Select>
+					<div className="text-sm text-vscode-descriptionForeground mt-1">
+						{t(`prompts:supportPrompts.types.${activeSupportOption}.description`)}
+					</div>
+				</div>
+
+				<div key={activeSupportOption} className="mt-4">
+					<div className="flex justify-between items-center mb-1">
+						<label className="block font-medium">{t("prompts:supportPrompts.prompt")}</label>
+						<Button
+							variant="ghost"
+							size="icon"
+							onClick={() => handleSupportReset(activeSupportOption)}
+							title={t("prompts:supportPrompts.resetPrompt", {
+								promptType: activeSupportOption,
+							})}>
+							<span className="codicon codicon-discard"></span>
+						</Button>
+					</div>
+
+					<VSCodeTextArea
+						resize="vertical"
+						value={getSupportPromptValue(activeSupportOption)}
+						onChange={(e) => {
+							const value =
+								(e as unknown as CustomEvent)?.detail?.target?.value ||
+								((e as any).target as HTMLTextAreaElement).value
+							const trimmedValue = value.trim()
+							updateSupportPrompt(activeSupportOption, trimmedValue || undefined)
+						}}
+						rows={6}
+						className="w-full"
+					/>
+
+					{activeSupportOption === "ENHANCE" && (
+						<div className="mt-4 flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background">
+							<div>
+								<label className="block font-medium mb-1">
+									{t("prompts:supportPrompts.enhance.apiConfiguration")}
+								</label>
+								<Select
+									value={enhancementApiConfigId || "-"}
+									onValueChange={(value) => {
+										setEnhancementApiConfigId(value === "-" ? "" : value)
+										vscode.postMessage({
+											type: "enhancementApiConfigId",
+											text: value,
+										})
+									}}>
+									<SelectTrigger data-testid="api-config-select" className="w-full">
+										<SelectValue
+											placeholder={t("prompts:supportPrompts.enhance.useCurrentConfig")}
+										/>
+									</SelectTrigger>
+									<SelectContent>
+										<SelectItem value="-">
+											{t("prompts:supportPrompts.enhance.useCurrentConfig")}
+										</SelectItem>
+										{(listApiConfigMeta || []).map((config) => (
+											<SelectItem
+												key={config.id}
+												value={config.id}
+												data-testid={`${config.id}-option`}>
+												{config.name}
+											</SelectItem>
+										))}
+									</SelectContent>
+								</Select>
+								<div className="text-sm text-vscode-descriptionForeground mt-1">
+									{t("prompts:supportPrompts.enhance.apiConfigDescription")}
+								</div>
+							</div>
+
+							<div>
+								<label className="block font-medium mb-1">
+									{t("prompts:supportPrompts.enhance.testEnhancement")}
+								</label>
+								<VSCodeTextArea
+									resize="vertical"
+									value={testPrompt}
+									onChange={(e) => setTestPrompt((e.target as HTMLTextAreaElement).value)}
+									placeholder={t("prompts:supportPrompts.enhance.testPromptPlaceholder")}
+									rows={3}
+									className="w-full"
+									data-testid="test-prompt-textarea"
+								/>
+								<div className="mt-2 flex justify-start items-center gap-2">
+									<Button variant="default" onClick={handleTestEnhancement} disabled={isEnhancing}>
+										{t("prompts:supportPrompts.enhance.previewButton")}
+									</Button>
+								</div>
+							</div>
+						</div>
+					)}
+				</div>
+			</Section>
+		</div>
+	)
+}
+
+export default PromptsSettings

+ 7 - 0
webview-ui/src/components/settings/SettingsView.tsx

@@ -21,6 +21,7 @@ import {
 	AlertTriangle,
 	Globe,
 	Info,
+	MessageSquare,
 	LucideIcon,
 } from "lucide-react"
 
@@ -62,6 +63,7 @@ import { ExperimentalSettings } from "./ExperimentalSettings"
 import { LanguageSettings } from "./LanguageSettings"
 import { About } from "./About"
 import { Section } from "./Section"
+import PromptsSettings from "./PromptsSettings"
 import { cn } from "@/lib/utils"
 
 export const settingsTabsContainer = "flex flex-1 overflow-hidden [&.narrow_.tab-label]:hidden"
@@ -83,6 +85,7 @@ const sectionNames = [
 	"notifications",
 	"contextManagement",
 	"terminal",
+	"prompts",
 	"experimental",
 	"language",
 	"about",
@@ -369,6 +372,7 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
 			{ id: "notifications", icon: Bell },
 			{ id: "contextManagement", icon: Database },
 			{ id: "terminal", icon: SquareTerminal },
+			{ id: "prompts", icon: MessageSquare },
 			{ id: "experimental", icon: FlaskConical },
 			{ id: "language", icon: Globe },
 			{ id: "about", icon: Info },
@@ -635,6 +639,9 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
 						/>
 					)}
 
+					{/* Prompts Section */}
+					{activeTab === "prompts" && <PromptsSettings />}
+
 					{/* Experimental Section */}
 					{activeTab === "experimental" && (
 						<ExperimentalSettings

+ 3 - 2
webview-ui/src/i18n/locales/ca/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modes",
 	"done": "Fet",
 	"modes": {
 		"title": "Modes",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Podeu seleccionar una configuració d'API per utilitzar sempre per millorar els prompts, o simplement utilitzar la que està seleccionada actualment",
 			"useCurrentConfig": "Utilitzar la configuració d'API seleccionada actualment",
 			"testPromptPlaceholder": "Introduïu un prompt per provar la millora",
-			"previewButton": "Previsualització de la millora del prompt"
+			"previewButton": "Previsualització de la millora del prompt",
+			"testEnhancement": "Prova la millora"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/ca/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notificacions",
 		"contextManagement": "Context",
 		"terminal": "Terminal",
+		"prompts": "Indicacions",
 		"experimental": "Experimental",
 		"language": "Idioma",
 		"about": "Sobre Roo Code"
 	},
+	"prompts": {
+		"description": "Configura les indicacions de suport utilitzades per a accions ràpides com millorar indicacions, explicar codi i solucionar problemes. Aquestes indicacions ajuden Roo a proporcionar millor assistència per a tasques comunes de desenvolupament."
+	},
 	"codeIndex": {
 		"title": "Indexació de codi",
 		"enableLabel": "Habilitar indexació de codi",

+ 3 - 2
webview-ui/src/i18n/locales/de/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modi",
 	"done": "Fertig",
 	"modes": {
 		"title": "Modi",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Du kannst eine API-Konfiguration auswählen, die immer zur Verbesserung von Prompts verwendet wird, oder einfach die aktuell ausgewählte verwenden",
 			"useCurrentConfig": "Aktuell ausgewählte API-Konfiguration verwenden",
 			"testPromptPlaceholder": "Gib einen Prompt ein, um die Verbesserung zu testen",
-			"previewButton": "Vorschau der Prompt-Verbesserung"
+			"previewButton": "Vorschau der Prompt-Verbesserung",
+			"testEnhancement": "Verbesserung testen"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/de/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Benachrichtigungen",
 		"contextManagement": "Kontext",
 		"terminal": "Terminal",
+		"prompts": "Eingabeaufforderungen",
 		"experimental": "Experimentell",
 		"language": "Sprache",
 		"about": "Über Roo Code"
 	},
+	"prompts": {
+		"description": "Konfiguriere Support-Prompts, die für schnelle Aktionen wie das Verbessern von Prompts, das Erklären von Code und das Beheben von Problemen verwendet werden. Diese Prompts helfen Roo dabei, bessere Unterstützung für häufige Entwicklungsaufgaben zu bieten."
+	},
 	"codeIndex": {
 		"title": "Codebase-Indexierung",
 		"enableLabel": "Codebase-Indexierung aktivieren",

+ 3 - 2
webview-ui/src/i18n/locales/en/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modes",
 	"done": "Done",
 	"modes": {
 		"title": "Modes",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "You can select an API configuration to always use for enhancing prompts, or just use whatever is currently selected",
 			"useCurrentConfig": "Use currently selected API configuration",
 			"testPromptPlaceholder": "Enter a prompt to test the enhancement",
-			"previewButton": "Preview Prompt Enhancement"
+			"previewButton": "Preview Prompt Enhancement",
+			"testEnhancement": "Test Enhancement"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/en/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notifications",
 		"contextManagement": "Context",
 		"terminal": "Terminal",
+		"prompts": "Prompts",
 		"experimental": "Experimental",
 		"language": "Language",
 		"about": "About Roo Code"
 	},
+	"prompts": {
+		"description": "Configure support prompts that are used for quick actions like enhancing prompts, explaining code, and fixing issues. These prompts help Roo provide better assistance for common development tasks."
+	},
 	"codeIndex": {
 		"title": "Codebase Indexing",
 		"enableLabel": "Enable Codebase Indexing",

+ 3 - 2
webview-ui/src/i18n/locales/es/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Solicitudes",
+	"title": "Modos",
 	"done": "Listo",
 	"modes": {
 		"title": "Modos",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Puedes seleccionar una configuración de API para usar siempre en la mejora de solicitudes, o simplemente usar la que esté seleccionada actualmente",
 			"useCurrentConfig": "Usar la configuración de API actualmente seleccionada",
 			"testPromptPlaceholder": "Ingresa una solicitud para probar la mejora",
-			"previewButton": "Vista previa de la mejora de solicitud"
+			"previewButton": "Vista previa de la mejora de solicitud",
+			"testEnhancement": "Probar mejora"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/es/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notificaciones",
 		"contextManagement": "Contexto",
 		"terminal": "Terminal",
+		"prompts": "Indicaciones",
 		"experimental": "Experimental",
 		"language": "Idioma",
 		"about": "Acerca de Roo Code"
 	},
+	"prompts": {
+		"description": "Configura indicaciones de soporte que se utilizan para acciones rápidas como mejorar indicaciones, explicar código y solucionar problemas. Estas indicaciones ayudan a Roo a brindar mejor asistencia para tareas comunes de desarrollo."
+	},
 	"codeIndex": {
 		"title": "Indexación de código",
 		"enableLabel": "Habilitar indexación de código",

+ 3 - 2
webview-ui/src/i18n/locales/fr/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modes",
 	"done": "Terminé",
 	"modes": {
 		"title": "Modes",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Vous pouvez sélectionner une configuration API à toujours utiliser pour améliorer les prompts, ou simplement utiliser celle qui est actuellement sélectionnée",
 			"useCurrentConfig": "Utiliser la configuration API actuellement sélectionnée",
 			"testPromptPlaceholder": "Entrez un prompt pour tester l'amélioration",
-			"previewButton": "Aperçu de l'amélioration du prompt"
+			"previewButton": "Aperçu de l'amélioration du prompt",
+			"testEnhancement": "Tester l'amélioration"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/fr/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notifications",
 		"contextManagement": "Contexte",
 		"terminal": "Terminal",
+		"prompts": "Invites",
 		"experimental": "Expérimental",
 		"language": "Langue",
 		"about": "À propos de Roo Code"
 	},
+	"prompts": {
+		"description": "Configurez les invites de support utilisées pour les actions rapides comme l'amélioration des invites, l'explication du code et la résolution des problèmes. Ces invites aident Roo à fournir une meilleure assistance pour les tâches de développement courantes."
+	},
 	"codeIndex": {
 		"title": "Indexation de la base de code",
 		"enableLabel": "Activer l'indexation de la base de code",

+ 3 - 2
webview-ui/src/i18n/locales/hi/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "प्रॉम्प्ट्स",
+	"title": "मोड्स",
 	"done": "हो गया",
 	"modes": {
 		"title": "मोड्स",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "आप प्रॉम्प्ट्स को बढ़ाने के लिए हमेशा उपयोग करने के लिए एक API कॉन्फ़िगरेशन चुन सकते हैं, या बस वर्तमान में चयनित का उपयोग कर सकते हैं",
 			"useCurrentConfig": "वर्तमान में चयनित API कॉन्फ़िगरेशन का उपयोग करें",
 			"testPromptPlaceholder": "वृद्धि का परीक्षण करने के लिए एक प्रॉम्प्ट दर्ज करें",
-			"previewButton": "प्रॉम्प्ट वृद्धि का पूर्वावलोकन"
+			"previewButton": "प्रॉम्प्ट वृद्धि का पूर्वावलोकन",
+			"testEnhancement": "वृद्धि का परीक्षण करें"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/hi/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "सूचनाएँ",
 		"contextManagement": "संदर्भ",
 		"terminal": "टर्मिनल",
+		"prompts": "प्रॉम्प्ट्स",
 		"experimental": "प्रायोगिक",
 		"language": "भाषा",
 		"about": "परिचय"
 	},
+	"prompts": {
+		"description": "प्रॉम्प्ट्स को बेहतर बनाना, कोड की व्याख्या करना और समस्याओं को ठीक करना जैसी त्वरित कार्रवाइयों के लिए उपयोग किए जाने वाले सहायक प्रॉम्प्ट्स को कॉन्फ़िगर करें। ये प्रॉम्प्ट्स Roo को सामान्य विकास कार्यों के लिए बेहतर सहायता प्रदान करने में मदद करते हैं।"
+	},
 	"codeIndex": {
 		"title": "कोडबेस इंडेक्सिंग",
 		"enableLabel": "कोडबेस इंडेक्सिंग सक्षम करें",

+ 3 - 2
webview-ui/src/i18n/locales/it/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompt",
+	"title": "Modi",
 	"done": "Fatto",
 	"modes": {
 		"title": "Modalità",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Puoi selezionare una configurazione API da usare sempre per migliorare i prompt, o semplicemente usare quella attualmente selezionata",
 			"useCurrentConfig": "Usa la configurazione API attualmente selezionata",
 			"testPromptPlaceholder": "Inserisci un prompt per testare il miglioramento",
-			"previewButton": "Anteprima miglioramento prompt"
+			"previewButton": "Anteprima miglioramento prompt",
+			"testEnhancement": "Testa miglioramento"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/it/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notifiche",
 		"contextManagement": "Contesto",
 		"terminal": "Terminal",
+		"prompts": "Prompt",
 		"experimental": "Sperimentale",
 		"language": "Lingua",
 		"about": "Informazioni su Roo Code"
 	},
+	"prompts": {
+		"description": "Configura i prompt di supporto utilizzati per azioni rapide come il miglioramento dei prompt, la spiegazione del codice e la risoluzione dei problemi. Questi prompt aiutano Roo a fornire una migliore assistenza per le attività di sviluppo comuni."
+	},
 	"codeIndex": {
 		"title": "Indicizzazione del codice",
 		"enableLabel": "Abilita indicizzazione del codice",

+ 3 - 2
webview-ui/src/i18n/locales/ja/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "プロンプト",
+	"title": "モード",
 	"done": "完了",
 	"modes": {
 		"title": "モード",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "プロンプトの強化に常に使用するAPI設定を選択するか、現在選択されているものを使用できます",
 			"useCurrentConfig": "現在選択されているAPI設定を使用",
 			"testPromptPlaceholder": "強化をテストするプロンプトを入力してください",
-			"previewButton": "プロンプト強化のプレビュー"
+			"previewButton": "プロンプト強化のプレビュー",
+			"testEnhancement": "強化をテスト"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/ja/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "通知",
 		"contextManagement": "コンテキスト",
 		"terminal": "ターミナル",
+		"prompts": "プロンプト",
 		"experimental": "実験的",
 		"language": "言語",
 		"about": "Roo Codeについて"
 	},
+	"prompts": {
+		"description": "プロンプトの強化、コードの説明、問題の修正などの迅速なアクションに使用されるサポートプロンプトを設定します。これらのプロンプトは、Rooが一般的な開発タスクでより良いサポートを提供するのに役立ちます。"
+	},
 	"codeIndex": {
 		"title": "コードベースのインデックス作成",
 		"enableLabel": "コードベースのインデックス作成を有効化",

+ 3 - 2
webview-ui/src/i18n/locales/ko/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "프롬프트",
+	"title": "모드",
 	"done": "완료",
 	"modes": {
 		"title": "모드",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "프롬프트 향상에 항상 사용할 API 구성을 선택하거나, 현재 선택된 구성을 사용할 수 있습니다",
 			"useCurrentConfig": "현재 선택된 API 구성 사용",
 			"testPromptPlaceholder": "향상을 테스트할 프롬프트 입력",
-			"previewButton": "프롬프트 향상 미리보기"
+			"previewButton": "프롬프트 향상 미리보기",
+			"testEnhancement": "향상 테스트"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/ko/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "알림",
 		"contextManagement": "컨텍스트",
 		"terminal": "터미널",
+		"prompts": "프롬프트",
 		"experimental": "실험적",
 		"language": "언어",
 		"about": "Roo Code 정보"
 	},
+	"prompts": {
+		"description": "프롬프트 향상, 코드 설명, 문제 해결과 같은 빠른 작업에 사용되는 지원 프롬프트를 구성합니다. 이러한 프롬프트는 Roo가 일반적인 개발 작업에 대해 더 나은 지원을 제공하는 데 도움이 됩니다."
+	},
 	"codeIndex": {
 		"title": "코드베이스 인덱싱",
 		"enableLabel": "코드베이스 인덱싱 활성화",

+ 3 - 2
webview-ui/src/i18n/locales/nl/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modi",
 	"done": "Gereed",
 	"modes": {
 		"title": "Modi",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Je kunt een API-configuratie selecteren die altijd wordt gebruikt voor het verbeteren van prompts, of gewoon de huidige selectie gebruiken",
 			"useCurrentConfig": "Huidige API-configuratie gebruiken",
 			"testPromptPlaceholder": "Voer een prompt in om de verbetering te testen",
-			"previewButton": "Voorbeeld promptverbetering"
+			"previewButton": "Voorbeeld promptverbetering",
+			"testEnhancement": "Test verbetering"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/nl/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Meldingen",
 		"contextManagement": "Context",
 		"terminal": "Terminal",
+		"prompts": "Prompts",
 		"experimental": "Experimenteel",
 		"language": "Taal",
 		"about": "Over Roo Code"
 	},
+	"prompts": {
+		"description": "Configureer ondersteuningsprompts die worden gebruikt voor snelle acties zoals het verbeteren van prompts, het uitleggen van code en het oplossen van problemen. Deze prompts helpen Roo om betere ondersteuning te bieden voor veelvoorkomende ontwikkelingstaken."
+	},
 	"codeIndex": {
 		"title": "Codebase indexering",
 		"enableLabel": "Codebase indexering inschakelen",

+ 3 - 2
webview-ui/src/i18n/locales/pl/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Podpowiedzi",
+	"title": "Tryby",
 	"done": "Gotowe",
 	"modes": {
 		"title": "Tryby",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Możesz wybrać konfigurację API, która będzie zawsze używana do ulepszania podpowiedzi, lub po prostu użyć aktualnie wybranej",
 			"useCurrentConfig": "Użyj aktualnie wybranej konfiguracji API",
 			"testPromptPlaceholder": "Wprowadź podpowiedź, aby przetestować ulepszenie",
-			"previewButton": "Podgląd ulepszenia podpowiedzi"
+			"previewButton": "Podgląd ulepszenia podpowiedzi",
+			"testEnhancement": "Testuj ulepszenie"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/pl/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Powiadomienia",
 		"contextManagement": "Kontekst",
 		"terminal": "Terminal",
+		"prompts": "Podpowiedzi",
 		"experimental": "Eksperymentalne",
 		"language": "Język",
 		"about": "O Roo Code"
 	},
+	"prompts": {
+		"description": "Skonfiguruj podpowiedzi wsparcia używane do szybkich działań, takich jak ulepszanie podpowiedzi, wyjaśnianie kodu i rozwiązywanie problemów. Te podpowiedzi pomagają Roo zapewnić lepsze wsparcie dla typowych zadań programistycznych."
+	},
 	"codeIndex": {
 		"title": "Indeksowanie kodu",
 		"enableLabel": "Włącz indeksowanie kodu",

+ 3 - 2
webview-ui/src/i18n/locales/pt-BR/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Prompts",
+	"title": "Modos",
 	"done": "Concluído",
 	"modes": {
 		"title": "Modos",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Você pode selecionar uma configuração de API para usar sempre para aprimorar prompts, ou simplesmente use o que está atualmente selecionado",
 			"useCurrentConfig": "Usar configuração de API atualmente selecionada",
 			"testPromptPlaceholder": "Digite um prompt para testar o aprimoramento",
-			"previewButton": "Visualizar aprimoramento do prompt"
+			"previewButton": "Visualizar aprimoramento do prompt",
+			"testEnhancement": "Testar aprimoramento"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/pt-BR/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Notificações",
 		"contextManagement": "Contexto",
 		"terminal": "Terminal",
+		"prompts": "Prompts",
 		"experimental": "Experimental",
 		"language": "Idioma",
 		"about": "Sobre"
 	},
+	"prompts": {
+		"description": "Configure prompts de suporte usados para ações rápidas como melhorar prompts, explicar código e corrigir problemas. Esses prompts ajudam o Roo a fornecer melhor assistência para tarefas comuns de desenvolvimento."
+	},
 	"codeIndex": {
 		"title": "Indexação de Código",
 		"enableLabel": "Ativar Indexação de Código",

+ 3 - 2
webview-ui/src/i18n/locales/ru/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Промпты",
+	"title": "Режимы",
 	"done": "Готово",
 	"modes": {
 		"title": "Режимы",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Вы можете выбрать конфигурацию API, которая всегда будет использоваться для улучшения промптов, или использовать текущую выбранную",
 			"useCurrentConfig": "Использовать текущую конфигурацию API",
 			"testPromptPlaceholder": "Введите промпт для тестирования улучшения",
-			"previewButton": "Просмотреть улучшенный промпт"
+			"previewButton": "Просмотреть улучшенный промпт",
+			"testEnhancement": "Тестировать улучшение"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/ru/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Уведомления",
 		"contextManagement": "Контекст",
 		"terminal": "Терминал",
+		"prompts": "Промпты",
 		"experimental": "Экспериментальное",
 		"language": "Язык",
 		"about": "О Roo Code"
 	},
+	"prompts": {
+		"description": "Настройте промпты поддержки, используемые для быстрых действий, таких как улучшение промптов, объяснение кода и исправление проблем. Эти промпты помогают Roo обеспечить лучшую поддержку для общих задач разработки."
+	},
 	"codeIndex": {
 		"title": "Индексация кодовой базы",
 		"enableLabel": "Включить индексацию кодовой базы",

+ 3 - 2
webview-ui/src/i18n/locales/tr/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Promptlar",
+	"title": "Modlar",
 	"done": "Tamamlandı",
 	"modes": {
 		"title": "Modlar",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Promptları geliştirmek için her zaman kullanılacak bir API yapılandırması seçebilir veya şu anda seçili olanı kullanabilirsiniz",
 			"useCurrentConfig": "Şu anda seçili API yapılandırmasını kullan",
 			"testPromptPlaceholder": "Geliştirmeyi test etmek için bir prompt girin",
-			"previewButton": "Prompt geliştirmesini önizle"
+			"previewButton": "Prompt geliştirmesini önizle",
+			"testEnhancement": "Geliştirmeyi test et"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/tr/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Bildirimler",
 		"contextManagement": "Bağlam",
 		"terminal": "Terminal",
+		"prompts": "Promptlar",
 		"experimental": "Deneysel",
 		"language": "Dil",
 		"about": "Roo Code Hakkında"
 	},
+	"prompts": {
+		"description": "Prompt geliştirme, kod açıklama ve sorun çözme gibi hızlı eylemler için kullanılan destek promptlarını yapılandırın. Bu promptlar, Roo'nun yaygın geliştirme görevleri için daha iyi destek sağlamasına yardımcı olur."
+	},
 	"codeIndex": {
 		"title": "Kod Tabanı İndeksleme",
 		"enableLabel": "Kod Tabanı İndekslemeyi Etkinleştir",

+ 3 - 2
webview-ui/src/i18n/locales/vi/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "Lời nhắc",
+	"title": "Chế độ",
 	"done": "Hoàn thành",
 	"modes": {
 		"title": "Chế độ",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "Bạn có thể chọn cấu hình API để luôn sử dụng cho việc nâng cao lời nhắc, hoặc chỉ sử dụng bất cứ cấu hình nào hiện đang được chọn",
 			"useCurrentConfig": "Sử dụng cấu hình API hiện tại đã chọn",
 			"testPromptPlaceholder": "Nhập lời nhắc để kiểm tra việc nâng cao",
-			"previewButton": "Xem trước nâng cao lời nhắc"
+			"previewButton": "Xem trước nâng cao lời nhắc",
+			"testEnhancement": "Kiểm tra cải tiến"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/vi/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "Thông báo",
 		"contextManagement": "Ngữ cảnh",
 		"terminal": "Terminal",
+		"prompts": "Lời nhắc",
 		"experimental": "Thử nghiệm",
 		"language": "Ngôn ngữ",
 		"about": "Giới thiệu"
 	},
+	"prompts": {
+		"description": "Cấu hình các lời nhắc hỗ trợ được sử dụng cho các hành động nhanh như cải thiện lời nhắc, giải thích mã và khắc phục sự cố. Những lời nhắc này giúp Roo cung cấp hỗ trợ tốt hơn cho các tác vụ phát triển phổ biến."
+	},
 	"codeIndex": {
 		"title": "Lập chỉ mục mã nguồn",
 		"enableLabel": "Bật lập chỉ mục mã nguồn",

+ 3 - 2
webview-ui/src/i18n/locales/zh-CN/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "模型提示词设置",
+	"title": "模",
 	"done": "完成",
 	"modes": {
 		"title": "模式配置",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "您可以选择一个固定的API配置用于增强提示词,或者使用当前选择的配置",
 			"useCurrentConfig": "使用当前选择的API配置",
 			"testPromptPlaceholder": "输入提示词以测试增强效果",
-			"previewButton": "测试提示词增强"
+			"previewButton": "测试提示词增强",
+			"testEnhancement": "测试增强"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/zh-CN/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "通知",
 		"contextManagement": "上下文",
 		"terminal": "终端",
+		"prompts": "提示词",
 		"experimental": "实验性",
 		"language": "语言",
 		"about": "关于 Roo Code"
 	},
+	"prompts": {
+		"description": "配置用于快速操作的支持提示词,如增强提示词、解释代码和修复问题。这些提示词帮助 Roo 为常见开发任务提供更好的支持。"
+	},
 	"codeIndex": {
 		"title": "代码库索引",
 		"enableLabel": "启用代码库索引",

+ 3 - 2
webview-ui/src/i18n/locales/zh-TW/prompts.json

@@ -1,5 +1,5 @@
 {
-	"title": "提示詞",
+	"title": "模式",
 	"done": "完成",
 	"modes": {
 		"title": "模式",
@@ -64,7 +64,8 @@
 			"apiConfigDescription": "您可以選擇一個固定的 API 設定用於增強提示詞,或使用目前選擇的設定",
 			"useCurrentConfig": "使用目前選擇的 API 設定",
 			"testPromptPlaceholder": "輸入提示詞以測試增強效果",
-			"previewButton": "預覽提示詞增強"
+			"previewButton": "預覽提示詞增強",
+			"testEnhancement": "測試增強"
 		},
 		"types": {
 			"ENHANCE": {

+ 4 - 0
webview-ui/src/i18n/locales/zh-TW/settings.json

@@ -28,10 +28,14 @@
 		"notifications": "通知",
 		"contextManagement": "上下文",
 		"terminal": "終端機",
+		"prompts": "提示詞",
 		"experimental": "實驗性",
 		"language": "語言",
 		"about": "關於 Roo Code"
 	},
+	"prompts": {
+		"description": "設定用於快速操作的支援提示詞,如增強提示詞、解釋程式碼和修復問題。這些提示詞幫助 Roo 為常見開發工作提供更好的支援。"
+	},
 	"codeIndex": {
 		"title": "程式碼庫索引",
 		"enableLabel": "啟用程式碼庫索引",