Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Agent Mode #4743

Merged
merged 73 commits into from
Mar 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
cde4057
organize the input box folder
sestinj Mar 21, 2025
03d8982
organize TipTapEditor.tsx
sestinj Mar 21, 2025
ccd1933
organize keyHandlers
sestinj Mar 21, 2025
d72005b
refactor out webview listeners
sestinj Mar 21, 2025
15b6ccf
add tooltip delay
sestinj Mar 21, 2025
a1d8429
lump v1
sestinj Mar 21, 2025
a2dcf1c
toggle sections
sestinj Mar 21, 2025
db05eea
highlights
sestinj Mar 21, 2025
c3f9204
styles
sestinj Mar 21, 2025
46f4665
style
sestinj Mar 21, 2025
25f8264
refactor sections
sestinj Mar 21, 2025
1aca061
remove editorInset
sestinj Mar 21, 2025
bbff4f8
move model roles to lump
sestinj Mar 21, 2025
91873a9
Merge branch 'main' into nate/blocks-front-and-center
sestinj Mar 21, 2025
b527942
remove imports
sestinj Mar 21, 2025
f613b43
tool lump section
sestinj Mar 21, 2025
a49ac7b
styling of lump icons
sestinj Mar 21, 2025
171aa08
make tabs tabbable
sestinj Mar 21, 2025
a03eab7
styling dropdown
sestinj Mar 21, 2025
078b1e7
small screen breakpoint
sestinj Mar 21, 2025
0380675
listbox styling for models
sestinj Mar 21, 2025
d3fc2e5
ui polish in the models lump section
sestinj Mar 21, 2025
e49c276
height transition animation on lump
sestinj Mar 21, 2025
d4bf45b
move docs management to lump
sestinj Mar 21, 2025
35400e6
adjust docs ui
sestinj Mar 21, 2025
83dce65
make docs more compact
sestinj Mar 21, 2025
3b0cc0e
docs indexing style
sestinj Mar 21, 2025
cd5cbfd
action buttons on docs view
sestinj Mar 21, 2025
4081730
move more things around
sestinj Mar 22, 2025
03d608e
open link for add docs
sestinj Mar 22, 2025
804edc6
prompts section in lump
sestinj Mar 22, 2025
c7873fc
Merge branch 'pe/conversation-starters' into nate/blocks-front-and-ce…
sestinj Mar 22, 2025
77110a3
update placeholder
sestinj Mar 22, 2025
0090e4c
consolidate org switcher ui
sestinj Mar 22, 2025
12a347b
remove more page
sestinj Mar 22, 2025
a8555ef
refactor config page sections
sestinj Mar 22, 2025
64bf9cf
tabs
sestinj Mar 22, 2025
7ab3a06
nicer tab styling on settings page
sestinj Mar 22, 2025
01e40a9
sticky tabs
sestinj Mar 22, 2025
fb86531
styling of settings again
sestinj Mar 22, 2025
3b006df
move bookmarks to lump
sestinj Mar 22, 2025
debe6b8
condense MCP preview
sestinj Mar 22, 2025
21804ad
reorder mcp row
sestinj Mar 22, 2025
fdcd27c
clean up tool view
sestinj Mar 22, 2025
107a388
fix horizontal scroll in tools section
sestinj Mar 22, 2025
745d450
padding
sestinj Mar 22, 2025
bb37638
hover message on status dot for docs
sestinj Mar 22, 2025
193bd88
edit button in docs section
sestinj Mar 22, 2025
fca8f23
status dot to left to balance
sestinj Mar 22, 2025
9af934d
edit button for prompts
sestinj Mar 22, 2025
bc5ec28
mode select
sestinj Mar 22, 2025
45bbb79
fontSize function
sestinj Mar 23, 2025
0984398
font size
sestinj Mar 23, 2025
7672a05
agent mode use tools
sestinj Mar 23, 2025
1494b49
agent mode not supported
sestinj Mar 23, 2025
4be325e
style updates for rules
sestinj Mar 23, 2025
d0339ec
add block buttons
sestinj Mar 23, 2025
7cd8105
move cancel button to lump
sestinj Mar 23, 2025
1cc811b
bold modes
sestinj Mar 23, 2025
ec53073
style model select to match modeselect
sestinj Mar 23, 2025
dec06cb
no edit mode on jb
sestinj Mar 23, 2025
03e08d1
top toolbar experiment
sestinj Mar 23, 2025
fdb7e80
refactor block settings
sestinj Mar 23, 2025
15b4576
ellipsis
sestinj Mar 23, 2025
ee13913
persist block settings toolbar expanded and adjust padding to match l…
sestinj Mar 23, 2025
5ba06c5
remove max height on code blocks to make scrolling easier
sestinj Mar 23, 2025
7617cd1
adjust code block styles
sestinj Mar 23, 2025
fcf38c5
details
sestinj Mar 23, 2025
aa20cd9
save after accept/reject
sestinj Mar 23, 2025
5402453
blur old input boxes
sestinj Mar 23, 2025
62f3f7f
fix blur
sestinj Mar 23, 2025
657842e
bump
sestinj Mar 23, 2025
7ccf9d8
Merge branch 'main' into nate/blocks-front-and-center
sestinj Mar 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ export interface PromptLog {
completion: string;
}

export type MessageModes = "chat" | "edit";
export type MessageModes = "chat" | "edit" | "agent";

export type ToolStatus =
| "generating"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,3 @@ class OpenConfigAction : AnAction() {
continuePluginService.sendToWebview("navigateTo", params)
}
}

class OpenMorePageAction : AnAction() {
override fun actionPerformed(e: AnActionEvent) {
val continuePluginService = getContinuePluginService(e.project) ?: return
continuePluginService.continuePluginWindow?.content?.components?.get(0)?.requestFocus()
val params = mapOf("path" to "/more", "toggle" to true)
continuePluginService.sendToWebview("navigateTo", params)
}
}
9 changes: 0 additions & 9 deletions extensions/intellij/src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -140,19 +140,10 @@
<override-text place="GoToAction" text="Continue Config"/>
</action>

<action id="continue.openMorePage"
class="com.github.continuedev.continueintellijextension.actions.OpenMorePageAction"
icon="AllIcons.Actions.MoreHorizontal"
text="More"
description="More">
<override-text place="GoToAction" text="More"/>
</action>

<group id="ContinueSidebarActionsGroup">
<reference ref="continue.newContinueSession"/>
<reference ref="continue.viewHistory"/>
<reference ref="continue.openConfigPage"/>
<reference ref="continue.openMorePage"/>
</group>

<action id="continue.focusContinueInput"
Expand Down
14 changes: 1 addition & 13 deletions extensions/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "continue",
"icon": "media/icon.png",
"author": "Continue Dev, Inc",
"version": "1.1.13",
"version": "1.1.14",
"repository": {
"type": "git",
"url": "https://github.com/continuedev/continue"
Expand Down Expand Up @@ -258,13 +258,6 @@
"title": "Navigate to a path",
"group": "Continue"
},
{
"command": "continue.openMorePage",
"category": "Continue",
"title": "More",
"icon": "$(ellipsis)",
"group": "Continue"
},
{
"command": "continue.writeCommentsForCode",
"category": "Continue",
Expand Down Expand Up @@ -512,11 +505,6 @@
"command": "continue.openConfigPage",
"group": "navigation@4",
"when": "view == continue.continueGUIView"
},
{
"command": "continue.openMorePage",
"group": "navigation@6",
"when": "view == continue.continueGUIView"
}
],
"editor/title": [
Expand Down
9 changes: 3 additions & 6 deletions extensions/vscode/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
setupStatusBar,
StatusBarStatus,
} from "./autocomplete/statusBar";
import { ContinueGUIWebviewViewProvider } from "./ContinueGUIWebviewViewProvider";

Check warning on line 30 in extensions/vscode/src/commands.ts

View workflow job for this annotation

GitHub Actions / vscode-checks

There should be no empty line within import group

import { VerticalDiffManager } from "./diff/vertical/manager";
import EditDecorationManager from "./quickEdit/EditDecorationManager";
Expand All @@ -36,9 +36,9 @@
import { getMetaKeyLabel } from "./util/util";
import { VsCodeIde } from "./VsCodeIde";

import { LOCAL_DEV_DATA_VERSION } from "core/data/log";

Check warning on line 39 in extensions/vscode/src/commands.ts

View workflow job for this annotation

GitHub Actions / vscode-checks

`core/data/log` import should occur before import of `core/indexing/walkDir`
import { isModelInstaller } from "core/llm";

Check warning on line 40 in extensions/vscode/src/commands.ts

View workflow job for this annotation

GitHub Actions / vscode-checks

`core/llm` import should occur before import of `core/util/paths`
import { startLocalOllama } from "core/util/ollamaHelper";

Check warning on line 41 in extensions/vscode/src/commands.ts

View workflow job for this annotation

GitHub Actions / vscode-checks

There should be at least one empty line between import groups
import type { VsCodeWebviewProtocol } from "./webviewProtocol";

let fullScreenPanel: vscode.WebviewPanel | undefined;
Expand Down Expand Up @@ -284,6 +284,9 @@
}

await sidebar.webviewProtocol.request("exitEditMode", undefined);

// Save the file
await ide.saveFile(newOrCurrentUri);
}

function waitForSidebarReady(
Expand Down Expand Up @@ -991,9 +994,6 @@
vscode.commands.executeCommand("continue.focusContinueInput");
} else if (selectedOption === "$(screen-full) Open full screen chat") {
vscode.commands.executeCommand("continue.toggleFullScreen");
} else if (selectedOption === "$(question) Open help center") {
focusGUI();
vscode.commands.executeCommand("continue.navigateTo", "/more", true);
}
quickPick.dispose();
});
Expand All @@ -1016,9 +1016,6 @@
client.sendFeedback(feedback, lastLines);
}
},
"continue.openMorePage": () => {
vscode.commands.executeCommand("continue.navigateTo", "/more", true);
},
"continue.navigateTo": (path: string, toggle: boolean) => {
sidebar.webviewProtocol?.request("navigateTo", { path, toggle });
focusGUI();
Expand Down
13 changes: 0 additions & 13 deletions gui/editorInset/index.html

This file was deleted.

19 changes: 0 additions & 19 deletions gui/editorInset/vite.config.ts

This file was deleted.

15 changes: 2 additions & 13 deletions gui/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
import { useDispatch } from "react-redux";
import { RouterProvider, createMemoryRouter } from "react-router-dom";
import Layout from "./components/Layout";
import { SubmenuContextProvidersProvider } from "./context/SubmenuContextProviders";
import { VscThemeProvider } from "./context/VscTheme";
import useSetup from "./hooks/useSetup";
import { AddNewModel, ConfigureProvider } from "./pages/AddNewModel";
import ConfigPage from "./pages/config";
import ConfigErrorPage from "./pages/config-error";
import ErrorPage from "./pages/error";
import Chat from "./pages/gui";
import History from "./pages/history";
import MigrationPage from "./pages/migration";
import MorePage from "./pages/More";
import Stats from "./pages/stats";
import { ROUTES } from "./util/navigation";
import { SubmenuContextProvidersProvider } from "./context/SubmenuContextProviders";
import ConfigPage from "./pages/config";

const router = createMemoryRouter([
{
Expand Down Expand Up @@ -45,10 +42,6 @@ const router = createMemoryRouter([
path: "/addModel/provider/:providerName",
element: <ConfigureProvider />,
},
{
path: "/more",
element: <MorePage />,
},
{
path: ROUTES.CONFIG_ERROR,
element: <ConfigErrorPage />,
Expand All @@ -57,10 +50,6 @@ const router = createMemoryRouter([
path: ROUTES.CONFIG,
element: <ConfigPage />,
},
{
path: "/migration",
element: <MigrationPage />,
},
],
},
]);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,62 +1,37 @@
import { BookmarkIcon, ChatBubbleLeftIcon } from "@heroicons/react/24/outline";
import { BookmarkIcon as BookmarkIconSolid } from "@heroicons/react/24/solid";
import { ChatBubbleLeftIcon } from "@heroicons/react/24/outline";
import { SlashCommandDescription } from "core";
import { useState } from "react";
import { defaultBorderRadius, GhostButton, vscInputBackground } from "..";
import { defaultBorderRadius, vscInputBackground } from "..";

interface ConversationStarterCardProps {
command: SlashCommandDescription;
onClick: (command: SlashCommandDescription) => void;
onBookmark: (command: SlashCommandDescription) => void;
isBookmarked: boolean;
}

export function ConversationStarterCard({
command,
onClick,
onBookmark,
isBookmarked = false,
}: ConversationStarterCardProps) {
const [isHovered, setIsHovered] = useState(false);

return (
<div
className="mb-2 w-full shadow-md hover:brightness-110"
className="mb-2 w-full shadow-md hover:cursor-pointer hover:brightness-110"
style={{
borderRadius: defaultBorderRadius,
backgroundColor: vscInputBackground,
}}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
onClick={() => onClick(command)}
>
<div className="flex items-center px-3 py-1.5">
<div className="mr-3 flex-shrink-0">
<div className="flex px-3 py-1.5">
<div className="mr-3 flex-shrink-0 self-start pt-0.5">
<ChatBubbleLeftIcon className="text-lightgray h-5 w-5" />
</div>
<div
onClick={() => onClick(command)}
className="flex flex-1 flex-col hover:cursor-pointer"
>
<div className="font-medium">{command.name}</div>
<div className="text-lightgray text-sm">{command.description}</div>
</div>
<div className="flex items-center">
<GhostButton
onClick={(e) => {
e.stopPropagation();
onBookmark(command);
}}
aria-label={
isBookmarked ? "Remove bookmarked prompt" : "Bookmark prompt"
}
className={isHovered || isBookmarked ? "opacity-100" : "opacity-0"}
>
{isBookmarked ? (
<BookmarkIconSolid className="h-4 w-4" />
) : (
<BookmarkIcon className="h-4 w-4" />
)}
</GhostButton>
<div className="flex flex-1 flex-col">
<div className="text-xs font-medium">{command.name}</div>
<div className="text-lightgray text-xs">{command.description}</div>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ const NUM_CARDS_TO_RENDER = 3;

export function ConversationStarterCards() {
const dispatch = useAppDispatch();
const { cmdsSortedByBookmark, bookmarkStatuses, toggleBookmark } =
useBookmarkedSlashCommands();
const { cmdsSortedByBookmark } = useBookmarkedSlashCommands();

function onClick(command: SlashCommandDescription) {
if (command.prompt) {
Expand All @@ -31,8 +30,6 @@ export function ConversationStarterCards() {
key={command.name + i}
command={command}
onClick={onClick}
onBookmark={() => toggleBookmark(command)}
isBookmarked={bookmarkStatuses[command.name]}
/>
))}
</div>
Expand Down
7 changes: 2 additions & 5 deletions gui/src/components/Layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
import { setShowDialog } from "../redux/slices/uiSlice";
import { exitEditMode } from "../redux/thunks";
import { loadLastSession, saveCurrentSession } from "../redux/thunks/session";
import { getFontSize, isMetaEquivalentKeyPressed } from "../util";
import { fontSize, isMetaEquivalentKeyPressed } from "../util";
import { incrementFreeTrialCount } from "../util/freeTrial";
import { ROUTES } from "../util/navigation";
import TextDialog from "./dialogs";
Expand Down Expand Up @@ -305,10 +305,7 @@ const Layout = () => {
<Footer />
</GridDiv>
</div>
<div
style={{ fontSize: `${getFontSize() - 4}px` }}
id="tooltip-portal-div"
/>
<div style={{ fontSize: fontSize(-4) }} id="tooltip-portal-div" />
</LayoutTopDiv>
</AuthProvider>
);
Expand Down
12 changes: 9 additions & 3 deletions gui/src/components/PageHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ArrowLeftIcon } from "@heroicons/react/24/outline";
import { fontSize } from "../util";

export interface PageHeaderProps {
onTitleClick?: () => void;
Expand All @@ -15,7 +16,7 @@ export default function PageHeader({
}: PageHeaderProps) {
return (
<div
className={`bg-vsc-background sticky top-0 z-20 m-0 flex items-center justify-between bg-inherit py-0.5 ${
className={`bg-vsc-background sticky top-0 z-20 m-0 flex items-center justify-between bg-inherit ${
showBorder
? "border-0 border-b-[1px] border-solid border-b-zinc-700"
: ""
Expand All @@ -25,11 +26,16 @@ export default function PageHeader({
{title && (
<>
<div
className="cursor-pointer transition-colors duration-200 hover:text-zinc-100"
className="flex cursor-pointer items-center transition-colors duration-200 hover:text-zinc-100"
onClick={onTitleClick}
>
<ArrowLeftIcon className="ml-3 inline-block h-3 w-3" />
<span className="m-2 inline-block text-base font-bold">
<span
className="mx-2 inline-block text-base font-bold"
style={{
fontSize: fontSize(-2),
}}
>
{title}
</span>
</div>
Expand Down
6 changes: 4 additions & 2 deletions gui/src/components/StepContainer/StepContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ interface StepContainerProps {
}

const ContentDiv = styled.div<{ fontSize?: number }>`
padding-top: 4px;
padding-bottom: 4px;
padding: 4px;
padding-left: 6px;
padding-right: 6px;

background-color: ${vscBackground};
font-size: ${getFontSize()}px;
overflow: hidden;
Expand Down
2 changes: 1 addition & 1 deletion gui/src/components/dialogs/AddDocsDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { useAppSelector } from "../../redux/hooks";
import { updateIndexingStatus } from "../../redux/slices/indexingSlice";
import { setDialogMessage, setShowDialog } from "../../redux/slices/uiSlice";
import { ToolTip } from "../gui/Tooltip";
import DocsIndexingPeeks from "../indexing/DocsIndexingPeeks";
import DocsIndexingPeeks from "../mainInput/Lump/sections/docs/DocsIndexingPeeks";

function AddDocsDialog() {
const posthog = usePostHog();
Expand Down
6 changes: 3 additions & 3 deletions gui/src/components/gui/Tooltip.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import ReactDOM from "react-dom";
import { Tooltip } from "react-tooltip";
import { vscBackground, vscForeground, vscInputBorder } from "..";
import { getFontSize } from "../../util";
import { fontSize } from "../../util";

const TooltipStyles = {
fontSize: `${getFontSize() - 2}px`,
fontSize: fontSize(-2),
backgroundColor: vscBackground,
outline: `0.5px solid ${vscInputBorder}`,
color: vscForeground,
Expand All @@ -25,7 +25,7 @@ export function ToolTip(props: any) {
return (
tooltipPortalDiv &&
ReactDOM.createPortal(
<Tooltip {...props} style={combinedStyles} opacity={1} />,
<Tooltip {...props} style={combinedStyles} opacity={1} delayShow={400} />,
tooltipPortalDiv,
)
);
Expand Down
1 change: 1 addition & 0 deletions gui/src/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export const vscListActiveForeground = `var(${VSC_LIST_ACTIVE_FOREGROUND_VAR}, $
export const vscInputBorder = `var(${VSC_INPUT_BORDER_VAR}, ${lightGray})`;
export const vscInputBorderFocus = `var(${VSC_FOCUS_BORDER_VAR}, ${lightGray})`;
export const vscBadgeBackground = `var(${VSC_BADGE_BACKGROUND_VAR}, #1bbe84)`;
export const vscBadgeForeground = `var(${VSC_BADGE_FOREGROUND_VAR}, #ffffff)`;
export const vscCommandCenterActiveBorder = `var(${VSC_COMMAND_CENTER_ACTIVE_BORDER_VAR}, #1bbe84)`;
export const vscCommandCenterInactiveBorder = `var(${VSC_COMMAND_CENTER_INACTIVE_BORDER_VAR}, #1bbe84)`;
export const vscFindMatchSelected = `var(${VSC_FIND_MATCH_SELECTED_VAR}, rgba(255, 223, 0))`;
Expand Down
Loading
Loading