diff --git a/core/tools/implementations/createNewFile.ts b/core/tools/implementations/createNewFile.ts
index b5d5e6c1b9..cf87463284 100644
--- a/core/tools/implementations/createNewFile.ts
+++ b/core/tools/implementations/createNewFile.ts
@@ -1,6 +1,7 @@
import { inferResolvedUriFromRelativePath } from "../../util/ideUtils";
import { ToolImpl } from ".";
+import { getCleanUriPath, getUriPathBasename } from "../../util/uri";
export const createNewFileImpl: ToolImpl = async (args, extras) => {
const resolvedFileUri = await inferResolvedUriFromRelativePath(
@@ -8,8 +9,26 @@ export const createNewFileImpl: ToolImpl = async (args, extras) => {
extras.ide,
);
if (resolvedFileUri) {
+ const exists = await extras.ide.fileExists(resolvedFileUri);
+ if (exists) {
+ throw new Error(
+ `File ${args.filepath} already exists. Use the edit too to edit this file`,
+ );
+ }
await extras.ide.writeFile(resolvedFileUri, args.contents);
await extras.ide.openFile(resolvedFileUri);
+ return [
+ {
+ name: getUriPathBasename(resolvedFileUri),
+ description: getCleanUriPath(resolvedFileUri),
+ content: "File created successfuly",
+ uri: {
+ type: "file",
+ value: resolvedFileUri,
+ },
+ },
+ ];
+ } else {
+ throw new Error("Failed to resolve path");
}
- return [];
};
diff --git a/extensions/vscode/package-lock.json b/extensions/vscode/package-lock.json
index c01a1eb12d..a26290f1ae 100644
--- a/extensions/vscode/package-lock.json
+++ b/extensions/vscode/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "1.1.18",
+ "version": "1.1.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "1.1.18",
+ "version": "1.1.19",
"license": "Apache-2.0",
"dependencies": {
"@continuedev/fetch": "^1.0.3",
diff --git a/gui/src/components/markdown/StepContainerPreToolbar/StepContainerPreToolbar.tsx b/gui/src/components/markdown/StepContainerPreToolbar/StepContainerPreToolbar.tsx
index 46fa90d683..9d333a6e01 100644
--- a/gui/src/components/markdown/StepContainerPreToolbar/StepContainerPreToolbar.tsx
+++ b/gui/src/components/markdown/StepContainerPreToolbar/StepContainerPreToolbar.tsx
@@ -210,17 +210,16 @@ export default function StepContainerPreToolbar(
{!isGeneratingCodeBlock && (
<>
- {props.hideApply ||
- (isTerminalCodeBlock(props.language, props.codeBlockContent) ? (
-
- ) : (
-
- ))}
+ {isTerminalCodeBlock(props.language, props.codeBlockContent) ? (
+
+ ) : props.hideApply ? null : (
+
+ )}
>
)}
diff --git a/gui/src/components/markdown/StyledMarkdownPreview.tsx b/gui/src/components/markdown/StyledMarkdownPreview.tsx
index d968101d07..d4f14b89dc 100644
--- a/gui/src/components/markdown/StyledMarkdownPreview.tsx
+++ b/gui/src/components/markdown/StyledMarkdownPreview.tsx
@@ -130,6 +130,7 @@ interface StyledMarkdownPreviewProps {
scrollLocked?: boolean;
itemIndex?: number;
useParentBackgroundColor?: boolean;
+ hideApply?: boolean;
}
const HLJS_LANGUAGE_CLASSNAME_PREFIX = "language-";
@@ -316,6 +317,7 @@ const StyledMarkdownPreview = memo(function StyledMarkdownPreview(
relativeFilepath={relativeFilePath}
isGeneratingCodeBlock={isGeneratingCodeBlock}
range={range}
+ hideApply={props.hideApply}
>
diff --git a/gui/src/pages/gui/ToolCallDiv/CreateFile.tsx b/gui/src/pages/gui/ToolCallDiv/CreateFile.tsx
index bca805f453..9829ef64b9 100644
--- a/gui/src/pages/gui/ToolCallDiv/CreateFile.tsx
+++ b/gui/src/pages/gui/ToolCallDiv/CreateFile.tsx
@@ -7,9 +7,13 @@ interface CreateFileToolCallProps {
}
export function CreateFile(props: CreateFileToolCallProps) {
- const src = `\`\`\`${getMarkdownLanguageTagForFile(props.relativeFilepath ?? "test.txt")} ${props.relativeFilepath}\n${props.fileContents ?? ""}\n\`\`\``;
+ const src = `\`\`\`${getMarkdownLanguageTagForFile(props.relativeFilepath ?? "output.txt")} ${props.relativeFilepath}\n${props.fileContents ?? ""}\n\`\`\``;
return props.relativeFilepath ? (
-
+
) : null;
}