From 075e3171a8f3b96b63fb14a4c3ea5d9217f62a28 Mon Sep 17 00:00:00 2001 From: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com> Date: Fri, 7 Feb 2025 10:52:57 -0800 Subject: [PATCH] Use LOCK_TEXT_SYMBOL --- src/core/Cline.ts | 15 +++++++-------- src/core/ignore/ClineIgnoreController.ts | 2 ++ src/core/prompts/responses.ts | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/core/Cline.ts b/src/core/Cline.ts index 81d97a087f..5b83218c14 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -9,6 +9,9 @@ import * as path from "path" import { serializeError } from "serialize-error" import * as vscode from "vscode" import { ApiHandler, buildApiHandler } from "../api" +import { OpenAiHandler } from "../api/providers/openai" +import { OpenRouterHandler } from "../api/providers/openrouter" +import { ApiStream } from "../api/transform/stream" import CheckpointTracker from "../integrations/checkpoints/CheckpointTracker" import { DIFF_VIEW_URI_SCHEME, DiffViewProvider } from "../integrations/editor/DiffViewProvider" import { findToolName, formatContentBlockToMarkdown } from "../integrations/misc/export-markdown" @@ -46,20 +49,16 @@ import { HistoryItem } from "../shared/HistoryItem" import { ClineAskResponse, ClineCheckpointRestore } from "../shared/WebviewMessage" import { calculateApiCost } from "../utils/cost" import { fileExistsAtPath } from "../utils/fs" -import { ClineIgnoreController } from "./ignore/ClineIgnoreController" import { arePathsEqual, getReadablePath } from "../utils/path" import { fixModelHtmlEscaping, removeInvalidChars } from "../utils/string" import { AssistantMessageContent, parseAssistantMessage, ToolParamName, ToolUseName } from "./assistant-message" import { constructNewFileContent } from "./assistant-message/diff" +import { ClineIgnoreController, LOCK_TEXT_SYMBOL } from "./ignore/ClineIgnoreController" import { parseMentions } from "./mentions" import { formatResponse } from "./prompts/responses" -import { ClineProvider, GlobalFileNames } from "./webview/ClineProvider" -import { OpenRouterHandler } from "../api/providers/openrouter" +import { addUserInstructions, SYSTEM_PROMPT } from "./prompts/system" import { getNextTruncationRange, getTruncatedMessages } from "./sliding-window" -import { SYSTEM_PROMPT } from "./prompts/system" -import { addUserInstructions } from "./prompts/system" -import { OpenAiHandler } from "../api/providers/openai" -import { ApiStream } from "../api/transform/stream" +import { ClineProvider, GlobalFileNames } from "./webview/ClineProvider" const cwd = vscode.workspace.workspaceFolders?.map((folder) => folder.uri.fsPath).at(0) ?? path.join(os.homedir(), "Desktop") // may or may not exist but fs checking existence would immediately ask for permission which would be bad UX, need to come up with a better solution @@ -1245,7 +1244,7 @@ export class Cline { const clineIgnoreContent = this.clineIgnoreController.clineIgnoreContent let clineIgnoreInstructions: string | undefined if (clineIgnoreContent) { - clineIgnoreInstructions = `# .clineignore\n\nThe following is provided by a root-level .clineignore file where the user has specified files and directories that should not be accessed. When using list_files, you'll notice a \u{1F512} next to files that are blocked. Attempting to access the file's contents e.g. through read_file will result in an error.\n\n${clineIgnoreContent}` + clineIgnoreInstructions = `# .clineignore\n\nThe following is provided by a root-level .clineignore file where the user has specified files and directories that should not be accessed. When using list_files, you'll notice a ${LOCK_TEXT_SYMBOL} next to files that are blocked. Attempting to access the file's contents e.g. through read_file will result in an error.\n\n${clineIgnoreContent}` } if (settingsCustomInstructions || clineRulesFileInstructions) { diff --git a/src/core/ignore/ClineIgnoreController.ts b/src/core/ignore/ClineIgnoreController.ts index 1ed8097382..925dcd189a 100644 --- a/src/core/ignore/ClineIgnoreController.ts +++ b/src/core/ignore/ClineIgnoreController.ts @@ -4,6 +4,8 @@ import fs from "fs/promises" import ignore, { Ignore } from "ignore" import * as vscode from "vscode" +export const LOCK_TEXT_SYMBOL = "\u{1F512}" + /** * Controls LLM access to files by enforcing ignore patterns. * Designed to be instantiated once in Cline.ts and passed to file manipulation services. diff --git a/src/core/prompts/responses.ts b/src/core/prompts/responses.ts index 090667d3ff..623e3d8806 100644 --- a/src/core/prompts/responses.ts +++ b/src/core/prompts/responses.ts @@ -1,7 +1,7 @@ import { Anthropic } from "@anthropic-ai/sdk" import * as diff from "diff" import * as path from "path" -import { ClineIgnoreController } from "../ignore/ClineIgnoreController" +import { ClineIgnoreController, LOCK_TEXT_SYMBOL } from "../ignore/ClineIgnoreController" export const formatResponse = { toolDenied: () => `The user denied this operation.`, @@ -95,7 +95,7 @@ Otherwise, if you have not completed the task and do not need additional informa const absoluteFilePath = path.resolve(absolutePath, filePath) const isIgnored = !clineIgnoreController.validateAccess(absoluteFilePath) if (isIgnored) { - return "\u{1F512} " + filePath + return LOCK_TEXT_SYMBOL + " " + filePath } return filePath