diff options
-rw-r--r-- | continuedev/src/continuedev/libs/llm/proxy_server.py | 2 | ||||
-rw-r--r-- | extension/package-lock.json | 4 | ||||
-rw-r--r-- | extension/package.json | 2 | ||||
-rw-r--r-- | extension/react-app/src/components/ComboBox.tsx | 4 | ||||
-rw-r--r-- | extension/react-app/src/components/StepContainer.tsx | 23 | ||||
-rw-r--r-- | extension/react-app/src/tabs/gui.tsx | 19 | ||||
-rw-r--r-- | extension/scripts/continuedev-0.1.1-py3-none-any.whl | bin | 84291 -> 84332 bytes | |||
-rw-r--r-- | extension/src/bridge.ts | 8 |
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 Binary files differindex 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 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" |