diff --git a/web-app/src/containers/ChatInput.tsx b/web-app/src/containers/ChatInput.tsx index a8ce87866..564e295c4 100644 --- a/web-app/src/containers/ChatInput.tsx +++ b/web-app/src/containers/ChatInput.tsx @@ -108,7 +108,6 @@ const ChatInput = ({ const [connectedServers, setConnectedServers] = useState([]) const [isDragOver, setIsDragOver] = useState(false) const [hasMmproj, setHasMmproj] = useState(false) - const [hasProactive, setHasProactive] = useState(false) const [hasActiveModels, setHasActiveModels] = useState(false) const attachmentsEnabled = useAttachments((s) => s.enabled) // Determine whether to show the Attach documents button (simple gating) @@ -207,26 +206,6 @@ const ChatInput = ({ checkMmprojSupport() }, [selectedModel, selectedModel?.capabilities, selectedProvider, serviceHub]) - // Check for proactive capability when model changes - useEffect(() => { - const checkProactiveSupport = () => { - if (selectedModel && selectedModel?.id) { - // Proactive mode requires both tools and vision capabilities - const hasTools = selectedModel?.capabilities?.includes('tools') - const hasVision = selectedModel?.capabilities?.includes('vision') - const hasProactiveCapability = selectedModel?.capabilities?.includes('proactive') - - if (hasTools && hasVision && hasProactiveCapability) { - setHasProactive(true) - } else { - setHasProactive(false) - } - } - } - - checkProactiveSupport() - }, [selectedModel, selectedModel?.capabilities]) - // Check if there are active MCP servers const hasActiveMCPServers = connectedServers.length > 0 || tools.length > 0 diff --git a/web-app/src/lib/completion.ts b/web-app/src/lib/completion.ts index 8b511f942..12febfb31 100644 --- a/web-app/src/lib/completion.ts +++ b/web-app/src/lib/completion.ts @@ -488,6 +488,7 @@ const filterOldProactiveScreenshots = (builder: CompletionMessagesBuilder) => { // Reconstruct builder with filtered messages // Note: This is a workaround since CompletionMessagesBuilder doesn't have a setter // We'll need to access the private messages array + // eslint-disable-next-line no-extra-semi ;(builder as any).messages = filteredMessages } @@ -518,8 +519,6 @@ export const postMessageProcessing = async ( ) => { // Handle completed tool calls if (calls.length) { - // Track if any browser MCP tool was called - let hasBrowserMCPToolCall = false // Fetch RAG tool names from RAG service let ragToolNames = new Set() try { @@ -663,11 +662,6 @@ export const postMessageProcessing = async ( } builder.addToolMessage(result as ToolResult, toolCall.id) - // Mark if we used a browser tool (for proactive mode) - if (isBrowserTool) { - hasBrowserMCPToolCall = true - } - // Proactive mode: Capture screenshot/snapshot after browser tool execution if (isProactiveMode && isBrowserTool && !abortController.signal.aborted) { console.log('Proactive mode: Capturing screenshots after browser tool call') diff --git a/web-app/src/locales/de-DE/common.json b/web-app/src/locales/de-DE/common.json index 699c15a08..f79883980 100644 --- a/web-app/src/locales/de-DE/common.json +++ b/web-app/src/locales/de-DE/common.json @@ -80,6 +80,7 @@ "tools": "Werkzeuge", "webSearch": "Web Suche", "reasoning": "Argumentation", + "proactive": "Proaktiv", "selectAModel": "Wähle ein Modell", "noToolsAvailable": "Keine Werkzeuge verfügbar", "noModelsFoundFor": "Keine Modelle gefunden zu \"{{searchValue}}\"", diff --git a/web-app/src/locales/en/common.json b/web-app/src/locales/en/common.json index 026f430e8..950879bf6 100644 --- a/web-app/src/locales/en/common.json +++ b/web-app/src/locales/en/common.json @@ -81,6 +81,7 @@ "tools": "Tools", "webSearch": "Web Search", "reasoning": "Reasoning", + "proactive": "Proactive", "selectAModel": "Select a model", "noToolsAvailable": "No tools available", "noModelsFoundFor": "No models found for \"{{searchValue}}\"", diff --git a/web-app/src/locales/id/common.json b/web-app/src/locales/id/common.json index 77af93d31..7f9bfaeea 100644 --- a/web-app/src/locales/id/common.json +++ b/web-app/src/locales/id/common.json @@ -80,6 +80,7 @@ "tools": "Alat", "webSearch": "Pencarian Web", "reasoning": "Penalaran", + "proactive": "Proaktif", "selectAModel": "Pilih model", "noToolsAvailable": "Tidak ada alat yang tersedia", "noModelsFoundFor": "Tidak ada model yang ditemukan untuk \"{{searchValue}}\"", diff --git a/web-app/src/locales/pl/common.json b/web-app/src/locales/pl/common.json index ee25f6068..0676a8be3 100644 --- a/web-app/src/locales/pl/common.json +++ b/web-app/src/locales/pl/common.json @@ -80,6 +80,7 @@ "tools": "Narzędzia", "webSearch": "Szukanie w Sieci", "reasoning": "Rozumowanie", + "proactive": "Proaktywny", "selectAModel": "Wybierz Model", "noToolsAvailable": "Brak narzędzi", "noModelsFoundFor": "Brak modeli dla \"{{searchValue}}\"", diff --git a/web-app/src/locales/vn/common.json b/web-app/src/locales/vn/common.json index 28ddd29a7..6239d9686 100644 --- a/web-app/src/locales/vn/common.json +++ b/web-app/src/locales/vn/common.json @@ -80,6 +80,7 @@ "tools": "Công cụ", "webSearch": "Tìm kiếm trên web", "reasoning": "Lý luận", + "proactive": "Chủ động", "selectAModel": "Chọn một mô hình", "noToolsAvailable": "Không có công cụ nào", "noModelsFoundFor": "Không tìm thấy mô hình nào cho \"{{searchValue}}\"", diff --git a/web-app/src/locales/zh-CN/common.json b/web-app/src/locales/zh-CN/common.json index 69b15ac90..7ba859f09 100644 --- a/web-app/src/locales/zh-CN/common.json +++ b/web-app/src/locales/zh-CN/common.json @@ -80,6 +80,7 @@ "tools": "工具", "webSearch": "网页搜索", "reasoning": "推理", + "proactive": "主动模式", "selectAModel": "选择一个模型", "noToolsAvailable": "无可用工具", "noModelsFoundFor": "未找到“{{searchValue}}”的模型", diff --git a/web-app/src/locales/zh-TW/common.json b/web-app/src/locales/zh-TW/common.json index 809ac0cd4..3caf19258 100644 --- a/web-app/src/locales/zh-TW/common.json +++ b/web-app/src/locales/zh-TW/common.json @@ -80,6 +80,7 @@ "tools": "工具", "webSearch": "網路搜尋", "reasoning": "推理", + "proactive": "主動模式", "selectAModel": "選擇一個模型", "noToolsAvailable": "沒有可用的工具", "noModelsFoundFor": "找不到符合「{{searchValue}}」的模型",