summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--continuedev/src/continuedev/libs/llm/proxy_server.py2
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json2
-rw-r--r--extension/react-app/src/components/ComboBox.tsx4
-rw-r--r--extension/react-app/src/components/StepContainer.tsx23
-rw-r--r--extension/react-app/src/tabs/gui.tsx19
-rw-r--r--extension/scripts/continuedev-0.1.1-py3-none-any.whlbin84291 -> 84332 bytes
-rw-r--r--extension/src/bridge.ts8
8 files changed, 48 insertions, 14 deletions
diff --git a/continuedev/src/continuedev/libs/llm/proxy_server.py b/continuedev/src/continuedev/libs/llm/proxy_server.py
index dd0d3aca..84c94d62 100644
--- a/continuedev/src/continuedev/libs/llm/proxy_server.py
+++ b/continuedev/src/continuedev/libs/llm/proxy_server.py
@@ -23,12 +23,14 @@ SERVER_URL = "https://proxy-server-l6vsfbzhba-uw.a.run.app"
class ProxyServer(LLM):
unique_id: str
+ name: str
default_model: Literal["gpt-3.5-turbo", "gpt-4"]
def __init__(self, unique_id: str, default_model: Literal["gpt-3.5-turbo", "gpt-4"], system_message: str = None):
self.unique_id = unique_id
self.default_model = default_model
self.system_message = system_message
+ self.name = default_model
@cached_property
def __encoding_for_model(self):
diff --git a/extension/package-lock.json b/extension/package-lock.json
index 92df6a4f..64fa3660 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.50",
+ "version": "0.0.52",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.50",
+ "version": "0.0.52",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index a875c82d..bf4f5eb3 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,7 @@
"displayName": "Continue",
"pricing": "Free",
"description": "Refine code 10x faster",
- "version": "0.0.50",
+ "version": "0.0.52",
"publisher": "Continue",
"engines": {
"vscode": "^1.74.0"
diff --git a/extension/react-app/src/components/ComboBox.tsx b/extension/react-app/src/components/ComboBox.tsx
index 29f8a53b..e855ebe5 100644
--- a/extension/react-app/src/components/ComboBox.tsx
+++ b/extension/react-app/src/components/ComboBox.tsx
@@ -124,11 +124,11 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
} else if (event.key === "Tab" && items.length > 0) {
setInputValue(items[0].name);
event.preventDefault();
- } else if (event.key === "ArrowUp" && !isOpen) {
+ } else if (event.key === "ArrowUp") {
if (positionInHistory == 0) return;
setInputValue(history[positionInHistory - 1]);
setPositionInHistory((prev) => prev - 1);
- } else if (event.key === "ArrowDown" && !isOpen) {
+ } else if (event.key === "ArrowDown") {
if (positionInHistory >= history.length - 1) {
setInputValue("");
} else {
diff --git a/extension/react-app/src/components/StepContainer.tsx b/extension/react-app/src/components/StepContainer.tsx
index 7adbd7c2..4c98b04d 100644
--- a/extension/react-app/src/components/StepContainer.tsx
+++ b/extension/react-app/src/components/StepContainer.tsx
@@ -31,7 +31,9 @@ interface StepContainerProps {
onUserInput: (input: string) => void;
onRetry: () => void;
onDelete: () => void;
- open?: boolean;
+ open: boolean;
+ onToggleAll: () => void;
+ onToggle: () => void;
}
const MainDiv = styled.div<{ stepDepth: number; inFuture: boolean }>`
@@ -81,9 +83,6 @@ const MarkdownPre = styled.pre`
const MarkdownCode = styled.code``;
function StepContainer(props: StepContainerProps) {
- const [open, setOpen] = useState(
- typeof props.open === "undefined" ? true : props.open
- );
const [isHovered, setIsHovered] = useState(false);
const naturalLanguageInputRef = useRef<HTMLTextAreaElement>(null);
const userInputRef = useRef<HTMLInputElement>(null);
@@ -119,19 +118,25 @@ function StepContainer(props: StepContainerProps) {
}}
hidden={props.historyNode.step.hide as any}
>
- <StepContainerDiv open={open}>
+ <StepContainerDiv open={props.open}>
<GradientBorder
borderColor={
props.historyNode.observation?.error ? "#f00" : undefined
}
className="overflow-hidden cursor-pointer"
- onClick={() => setOpen((prev) => !prev)}
+ onClick={(e) => {
+ if (props.open && e.metaKey) {
+ props.onToggleAll();
+ } else {
+ props.onToggle();
+ }
+ }}
>
<HeaderDiv
error={props.historyNode.observation?.error ? true : false}
>
<h4 className="m-2">
- {open ? (
+ {props.open ? (
<ChevronDown size="1.4em" />
) : (
<ChevronRight size="1.4em" />
@@ -174,8 +179,8 @@ function StepContainer(props: StepContainerProps) {
</>
</HeaderDiv>
</GradientBorder>
- <ContentDiv hidden={!open}>
- {open && false && (
+ <ContentDiv hidden={!props.open}>
+ {props.open && false && (
<>
<pre className="overflow-x-scroll">
Step Details:
diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx
index 63da595f..6aa20e0e 100644
--- a/extension/react-app/src/tabs/gui.tsx
+++ b/extension/react-app/src/tabs/gui.tsx
@@ -54,6 +54,7 @@ function GUI(props: GUIProps) {
const [availableSlashCommands, setAvailableSlashCommands] = useState<
{ name: string; description: string }[]
>([]);
+ const [stepsOpen, setStepsOpen] = useState<boolean[]>([]);
const [history, setHistory] = useState<History | undefined>();
// {
// timeline: [
@@ -212,6 +213,15 @@ function GUI(props: GUIProps) {
setWaitingForSteps(state.active);
setHistory(state.history);
setUserInputQueue(state.user_input_queue);
+ const nextStepsOpen = [...stepsOpen];
+ for (
+ let i = nextStepsOpen.length;
+ i < state.history.timeline.length;
+ i++
+ ) {
+ nextStepsOpen.push(true);
+ }
+ setStepsOpen(nextStepsOpen);
if (shouldScrollToBottom) {
scrollToBottom();
@@ -321,6 +331,15 @@ function GUI(props: GUIProps) {
{history?.timeline.map((node: HistoryNode, index: number) => {
return (
<StepContainer
+ open={stepsOpen[index]}
+ onToggle={() => {
+ const nextStepsOpen = [...stepsOpen];
+ nextStepsOpen[index] = !nextStepsOpen[index];
+ setStepsOpen(nextStepsOpen);
+ }}
+ onToggleAll={() => {
+ setStepsOpen((prev) => prev.map(() => !prev[index]));
+ }}
key={index}
onUserInput={(input: string) => {
onStepUserInput(input, index);
diff --git a/extension/scripts/continuedev-0.1.1-py3-none-any.whl b/extension/scripts/continuedev-0.1.1-py3-none-any.whl
index b0b84230..2e45a933 100644
--- a/extension/scripts/continuedev-0.1.1-py3-none-any.whl
+++ b/extension/scripts/continuedev-0.1.1-py3-none-any.whl
Binary files differ
diff --git a/extension/src/bridge.ts b/extension/src/bridge.ts
index 3e21a205..b0fdafa7 100644
--- a/extension/src/bridge.ts
+++ b/extension/src/bridge.ts
@@ -10,6 +10,7 @@ import {
} from "./client";
import { convertSingleToDoubleQuoteJSON } from "./util/util";
import { getExtensionUri } from "./util/vscode";
+import { extensionContext } from "./activation/activate";
const axios = require("axios").default;
const util = require("util");
const exec = util.promisify(require("child_process").exec);
@@ -52,6 +53,13 @@ export function get_api_url() {
const API_URL = get_api_url();
export function getContinueServerUrl() {
+ // If in debug mode, always use 8001
+ if (
+ extensionContext &&
+ extensionContext.extensionMode === vscode.ExtensionMode.Development
+ ) {
+ return "http://localhost:8001";
+ }
return (
vscode.workspace.getConfiguration("continue").get<string>("serverUrl") ||
"http://localhost:8000"