diff --git a/assets/icons/pearai-agent-splash.svg b/assets/icons/pearai-agent-splash.svg new file mode 100644 index 0000000000..656e62a958 --- /dev/null +++ b/assets/icons/pearai-agent-splash.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index ca2aaad75d..1d5c8b47a8 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -4,7 +4,6 @@ import { ExtensionMessage } from "../../src/shared/ExtensionMessage" import ChatView from "./components/chat/ChatView" import HistoryView from "./components/history/HistoryView" import SettingsView from "./components/settings/SettingsView" -import WelcomeView from "./components/welcome/WelcomeView" import { ExtensionStateContextProvider, useExtensionState } from "./context/ExtensionStateContext" import { vscode } from "./utils/vscode" import McpView from "./components/mcp/McpView" @@ -73,30 +72,26 @@ const AppContent = () => { return ( <> - {showWelcome ? ( - - ) : ( - <> - {showSettings && setShowSettings(false)} />} - {showHistory && setShowHistory(false)} />} - {showMcp && setShowMcp(false)} />} - {showPrompts && setShowPrompts(false)} />} - {/* Do not conditionally load ChatView, it's expensive and there's state we don't want to lose (user input, disableInput, askResponse promise, etc.) */} - { - setShowSettings(false) - setShowMcp(false) - setShowPrompts(false) - setShowHistory(true) - }} - isHidden={showSettings || showHistory || showMcp || showPrompts} - showAnnouncement={showAnnouncement} - hideAnnouncement={() => { - setShowAnnouncement(false) - }} - /> - - )} + <> + {showSettings && setShowSettings(false)} />} + {showHistory && setShowHistory(false)} />} + {showMcp && setShowMcp(false)} />} + {showPrompts && setShowPrompts(false)} />} + {/* Do not conditionally load ChatView, it's expensive and there's state we don't want to lose (user input, disableInput, askResponse promise, etc.) */} + { + setShowSettings(false) + setShowMcp(false) + setShowPrompts(false) + setShowHistory(true) + }} + isHidden={showSettings || showHistory || showMcp || showPrompts} + showAnnouncement={false} + hideAnnouncement={() => { + true + }} + /> + ) } diff --git a/webview-ui/src/components/chat/AutoApproveMenu.tsx b/webview-ui/src/components/chat/AutoApproveMenu.tsx index 18a2ab23d5..328c69d8d1 100644 --- a/webview-ui/src/components/chat/AutoApproveMenu.tsx +++ b/webview-ui/src/components/chat/AutoApproveMenu.tsx @@ -42,21 +42,21 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { id: "readFiles", label: "Read files and directories", shortName: "Read", - enabled: alwaysAllowReadOnly ?? false, + enabled: alwaysAllowReadOnly ?? true, description: "Allows access to read any file on your computer.", }, { id: "editFiles", label: "Edit files", shortName: "Edit", - enabled: alwaysAllowWrite ?? false, + enabled: alwaysAllowWrite ?? true, description: "Allows modification of any files on your computer.", }, { id: "executeCommands", label: "Execute approved commands", shortName: "Commands", - enabled: alwaysAllowExecute ?? false, + enabled: alwaysAllowExecute ?? true, description: "Allows execution of approved terminal commands. You can configure this in the settings panel.", }, @@ -64,21 +64,21 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { id: "useBrowser", label: "Use the browser", shortName: "Browser", - enabled: alwaysAllowBrowser ?? false, + enabled: alwaysAllowBrowser ?? true, description: "Allows ability to launch and interact with any website in a headless browser.", }, { id: "useMcp", label: "Use MCP servers", shortName: "MCP", - enabled: alwaysAllowMcp ?? false, + enabled: alwaysAllowMcp ?? true, description: "Allows use of configured MCP servers which may modify filesystem or interact with APIs.", }, { id: "switchModes", label: "Switch modes & create tasks", shortName: "Modes", - enabled: alwaysAllowModeSwitch ?? false, + enabled: alwaysAllowModeSwitch ?? true, description: "Allows automatic switching between different AI modes and creating new tasks without requiring approval.", }, @@ -86,7 +86,7 @@ const AutoApproveMenu = ({ style }: AutoApproveMenuProps) => { id: "retryRequests", label: "Retry failed requests", shortName: "Retries", - enabled: alwaysApproveResubmit ?? false, + enabled: alwaysApproveResubmit ?? true, description: "Automatically retry failed API requests when the provider returns an error response.", }, ] diff --git a/webview-ui/src/components/chat/ChatView.tsx b/webview-ui/src/components/chat/ChatView.tsx index 3d657e09e3..c6756b252a 100644 --- a/webview-ui/src/components/chat/ChatView.tsx +++ b/webview-ui/src/components/chat/ChatView.tsx @@ -39,6 +39,7 @@ import { vscInputBorder, vscSidebarBorder, } from "../ui" +import splashIcon from "../../../../assets/icons/pearai-agent-splash.svg" interface ChatViewProps { isHidden: boolean @@ -982,25 +983,45 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie overflow: "hidden", }}> {messages.length === 0 && ( - handleSendMessage(inputValue, selectedImages)} - onSelectImages={selectImages} - shouldDisableImages={shouldDisableImages} - onHeightChange={() => { - if (isAtBottom) { - scrollToBottomAuto() - } - }} - mode={mode} - setMode={setMode} - /> + <> +
+
+ ... +
+
+
PearAI Agent
+
+ Powered by Roo Code / Cline +
+
+
+
+ Autonomous coding agent that has control of your development environment (with your + permission) for a feedback loop to add features, fix bugs, and more. +
+
+
+ + handleSendMessage(inputValue, selectedImages)} + onSelectImages={selectImages} + shouldDisableImages={shouldDisableImages} + onHeightChange={() => { + if (isAtBottom) { + scrollToBottomAuto() + } + }} + mode={mode} + setMode={setMode} + /> + )} {!task && (