dotfiles/dot_config/JetBrains/CLion2025.3/options/ConversationToolStoreService.xml
2026-04-29 11:50:42 +08:00

5 lines
No EOL
22 KiB
XML

<application>
<component name="ConversationToolStoreService">
<option name="builtInTools" value="[{&quot;name&quot;:&quot;insert_edit_into_file&quot;,&quot;description&quot;:&quot;Edit a file in the workspace. Use this tool once per file that needs to be modified, even if there are multiple changes for a file. Generate the \&quot;explanation\&quot; property first.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\treturn this.age;\n\t}\n}&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePath&quot;:{&quot;description&quot;:&quot;The absolute path of the file to edit.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;code&quot;:{&quot;description&quot;:&quot;The code change to apply to the file.\nThe system is very smart and can understand how to apply your edits to the files, you just need to provide minimal hints.\nAvoid repeating existing code, instead use comments to represent regions of unchanged code. Be as concise as possible. For example:\n// ...existing code...\n{ changed code }\n// ...existing code...\n{ changed code }\n// ...existing code...\n\nHere is an example of how you should use format an edit to an existing Person class:\nclass Person {\n\t// ...existing code...\n\tage: number;\n\t// ...existing code...\n\tgetAge() {\n\t\treturn this.age;\n\t}\n}&quot;,&quot;type&quot;:&quot;string&quot;},&quot;explanation&quot;:{&quot;description&quot;:&quot;A short explanation of the edit being made.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;filePath&quot;,&quot;code&quot;,&quot;explanation&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;replace_string_in_file&quot;,&quot;description&quot;:&quot;Replace a specific string in a file with new content. Use this tool when you need to make precise text replacements. For best results, include sufficient context (3-5 lines before and after) to make the old string unique. The system will try multiple matching strategies if exact matching fails.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePath&quot;:{&quot;description&quot;:&quot;The absolute path of the file to edit.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;oldString&quot;:{&quot;description&quot;:&quot;The exact literal text to replace. Must uniquely identify the single instance to change. Include at least 3 lines of context BEFORE and AFTER the target text, matching whitespace and indentation precisely.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;newString&quot;:{&quot;description&quot;:&quot;The exact literal text to replace oldString with.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;explanation&quot;:{&quot;description&quot;:&quot;A short explanation of the string replacement being made.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;filePath&quot;,&quot;oldString&quot;,&quot;newString&quot;,&quot;explanation&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;create_file&quot;,&quot;description&quot;:&quot;Create a new file in the workspace with the specified content. Use this tool to create new files.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePath&quot;:{&quot;description&quot;:&quot;The absolute path of the file to create.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;content&quot;:{&quot;description&quot;:&quot;The content to write to the new file.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;filePath&quot;,&quot;content&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;apply_patch&quot;,&quot;description&quot;:&quot;Use the `apply_patch` tool to edit files.\nYour patch language is a stripped-down, file-oriented diff format designed to be easy to parse and safe to apply. You can think of it as a high-level envelope:\n\n*** Begin Patch\n[ one file section ]\n*** End Patch\n\nIMPORTANT RESTRICTIONS:\n- Each apply_patch call can only operate on ONE file. If you need to modify multiple files, use separate apply_patch tool calls for each file.\n- Delete File operation is NOT supported. Use other methods to delete files if needed.\n\nWithin that envelope, you specify ONE file operation.\nYou MUST include a header to specify the action you are taking.\nThe operation starts with one of two headers:\n\n*** Add File: \u003cpath\u003e - create a new file. Every following line is a + line (the initial contents).\n*** Update File: \u003cpath\u003e - patch an existing file in place (optionally with a rename).\n\nMay be immediately followed by *** Move to: \u003cnew path\u003e if you want to rename the file.\nThen one or more \&quot;hunks\&quot;, each introduced by @@ (optionally followed by a hunk header).\nWithin a hunk each line starts with:\n\nFor instructions on [context_before] and [context_after]:\n- By default, show 3 lines of code immediately above and 3 lines immediately below each change. If a change is within 3 lines of a previous change, do NOT duplicate the first change\u0027s [context_after] lines in the second change\u0027s [context_before] lines.\n- If 3 lines of context is insufficient to uniquely identify the snippet of code within the file, use the @@ operator to indicate the class or function to which the snippet belongs. For instance, we might have:\n@@ class BaseClass\n[3 lines of pre-context]\n- [old_code]\n+ [new_code]\n[3 lines of post-context]\n\n- If a code block is repeated so many times in a class or function such that even a single `@@` statement and 3 lines of context cannot uniquely identify the snippet of code, you can use multiple `@@` statements to jump to the right context. For instance:\n\n@@ class BaseClass\n@@ \t def method():\n[3 lines of pre-context]\n- [old_code]\n+ [new_code]\n[3 lines of post-context]\n\nThe full grammar definition is below:\nPatch :\u003d Begin FileOp End\nBegin :\u003d \&quot;*** Begin Patch\&quot; NEWLINE\nEnd :\u003d \&quot;*** End Patch\&quot; NEWLINE\nFileOp :\u003d AddFile | UpdateFile\nAddFile :\u003d \&quot;*** Add File: \&quot; path NEWLINE { \&quot;+\&quot; line NEWLINE }\nUpdateFile :\u003d \&quot;*** Update File: \&quot; path NEWLINE [ MoveTo ] { Hunk }\nMoveTo :\u003d \&quot;*** Move to: \&quot; newPath NEWLINE\nHunk :\u003d \&quot;@@\&quot; [ header ] NEWLINE { HunkLine } [ \&quot;*** End of File\&quot; NEWLINE ]\nHunkLine :\u003d (\&quot; \&quot; | \&quot;-\&quot; | \&quot;+\&quot;) text NEWLINE\n\nExample of updating a file with multiple changes:\n\n*** Begin Patch\n*** Update File: src/app.py\n@@ def greet():\n-print(\&quot;Hi\&quot;)\n+print(\&quot;Hello, world!\&quot;)\n@@ def farewell():\n-print(\&quot;Bye\&quot;)\n+print(\&quot;Goodbye!\&quot;)\n*** End Patch\n\nIt is important to remember:\n\n- Each apply_patch call operates on ONE file only. For multiple files, use multiple tool calls.\n- Delete File is NOT supported.\n- You must include a header with your intended action (Add/Update)\n- You must prefix new lines with `+` even when creating a new file\n- File references must be ABSOLUTE, NEVER RELATIVE.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;input&quot;:{&quot;description&quot;:&quot;The patch content following the apply_patch format specification.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;explanation&quot;:{&quot;description&quot;:&quot;A brief explanation of what the patch accomplishes.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;input&quot;,&quot;explanation&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;run_in_terminal&quot;,&quot;description&quot;:&quot; This tool allows you to execute shell commands in a persistent terminal session, preserving environment variables, working directory, and other context across multiple commands.\n \n Shell: fish\n \n Command Execution:\n- Supports chaining with \u0026\u0026 or ; (e.g., npm install \u0026\u0026 npm start).\n- Supports multi-line commands\n\nDirectory Management:\n- Use absolute paths to avoid navigation issues.\n\nProgram Execution:\n- Supports Python, Node.js, and other executables.\n- Install dependencies via pip, npm, etc.\n- Install packages via package managers (brew, apt, etc.)\n\nBackground Processes:\n- For long-running tasks (e.g., servers), set isBackground\u003dtrue.\n- Returns a terminal ID for checking status and runtime later.\n\nOutput Management:\n- Use head, tail, grep, awk to filter and limit output size\n\nBest Practices:\n- If a command may use a pager, you must add something to disable it. For example, you can use `git --no-pager`. Otherwise you should add something like ` | cat`. Examples: git, less, man, etc.\n- For Python commands, if you get empty or incomplete output unexpectedly, use `python -u` to disable output buffering.\n- Quote variables: \&quot;$var\&quot; instead of $var to handle spaces\n- Avoid printing credentials unless absolutely required&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;command&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;The command to run in the terminal.&quot;},&quot;explanation&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;A one-sentence description of what the command does. This will be shown to the user before the command is run.&quot;},&quot;isBackground&quot;:{&quot;type&quot;:&quot;boolean&quot;,&quot;description&quot;:&quot;Whether the command starts a background process. If true, the command will run in the background and you will not see the output. If false, the tool call will block on the command finishing, and then you will get the output. Examples of background processes: building in watch mode, starting a server. You can check the output of a background process later on by using copilot_getTerminalOutput.&quot;}},&quot;required&quot;:[&quot;command&quot;,&quot;explanation&quot;,&quot;isBackground&quot;]},&quot;confirmationMessages&quot;:{&quot;title&quot;:&quot;Run Command in Terminal&quot;,&quot;message&quot;:&quot;This command will be executed in your local terminal. Please review it carefully before proceeding.&quot;},&quot;type&quot;:&quot;client&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;get_terminal_output&quot;,&quot;description&quot;:&quot;Get the output of a terminal command previous started with run_in_terminal&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;id&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;The ID of the terminal command output to check.&quot;}},&quot;required&quot;:[&quot;id&quot;]},&quot;type&quot;:&quot;client&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;get_errors&quot;,&quot;description&quot;:&quot;Get any compile or lint errors in a code file. If the user mentions errors or problems in a file, they may be referring to these. Use the tool to see the same errors that the user is seeing. Also use this tool after editing a file to validate the change.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePaths&quot;:{&quot;type&quot;:&quot;array&quot;,&quot;items&quot;:{&quot;type&quot;:&quot;string&quot;},&quot;description&quot;:&quot;Array of absolute file paths to check for errors&quot;}},&quot;required&quot;:[&quot;filePaths&quot;]},&quot;type&quot;:&quot;client&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;show_content&quot;,&quot;description&quot;:&quot;Display content in various formats, such as plain text, HTML, or Markdown. Use this tool to show the user formatted text, code blocks, links, lists, and other rich content. Only use this tool when explicitly requested by the user or when another tool result specifically asks to present content using this tool.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;name&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;The name of the content file, including the appropriate file extension (e.g., \u0027example.md\u0027 for markdown content)&quot;},&quot;content&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;The content string to render&quot;}},&quot;required&quot;:[&quot;name&quot;,&quot;content&quot;]},&quot;type&quot;:&quot;client&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;open_file&quot;,&quot;description&quot;:&quot;Opens an existing file in the IDE editor with optional preview mode. Use this tool to open files for viewing or editing when the user requests to see file content, review code, or work with specific files. Only use this tool when explicitly requested by the user or when another tool result specifically asks to open a file.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePath&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;description&quot;:&quot;The absolute path to the file to open.&quot;},&quot;isPreview&quot;:{&quot;type&quot;:&quot;boolean&quot;,&quot;description&quot;:&quot;Whether to open the file in preview mode.&quot;}},&quot;required&quot;:[&quot;filePath&quot;]},&quot;type&quot;:&quot;client&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;list_dir&quot;,&quot;description&quot;:&quot;List the contents of a directory. Result will have the name of the child. If the name ends in /, it\u0027s a folder, otherwise a file&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;path&quot;:{&quot;description&quot;:&quot;The absolute path to the directory to list.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;path&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;read_file&quot;,&quot;description&quot;:&quot;Read the contents of a file from the local filesystem.\n\nWhen to Use:\n- Reading known files you\u0027ve already located\n- Following up on search results to see full context\n- Reading files the user mentioned or that appear in error messages\n\nUsage:\n- You must specify the line range you\u0027re interested in (1-based line numbers)\n- Prefer reading larger meaningful chunks over doing many small reads\n- You can call this tool again if initial contents are insufficient\n- It is always better to speculatively read multiple files as a batch that are potentially useful\n- You don\u0027t need to read a file if it\u0027s already provided in context&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;filePath&quot;:{&quot;description&quot;:&quot;The absolute path of the file to read.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;startLineNumberBaseOne&quot;:{&quot;description&quot;:&quot;The line number to start reading from, 1-based.&quot;,&quot;type&quot;:&quot;number&quot;},&quot;endLineNumberBaseOne&quot;:{&quot;description&quot;:&quot;The inclusive line number to end reading at, 1-based. Must be positive and greater than or equal to startLineNumberBaseOne.&quot;,&quot;type&quot;:&quot;number&quot;},&quot;showLineNumbers&quot;:{&quot;description&quot;:&quot;Whether to include line numbers in the output. Defaults to false.&quot;,&quot;type&quot;:&quot;boolean&quot;}},&quot;required&quot;:[&quot;filePath&quot;,&quot;startLineNumberBaseOne&quot;,&quot;endLineNumberBaseOne&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;file_search&quot;,&quot;description&quot;:&quot;Search for files in the workspace by glob pattern. Returns matching file paths sorted by modification time.\n\nWhen to Use:\n- Find files by name or extension pattern\n- Locate config files, test files, or specific file types\n\nWhen NOT to Use:\n- Searching for text content inside files → use grep_search instead\n- Understanding code by meaning → use semantic_search instead\n\nUsage:\n- It is always better to speculatively perform multiple searches that are potentially useful as a batch\n\nGlob pattern examples:\n- **/*.{js,ts} to match all js/ts files in the workspace\n- src/** to match all files under the top-level src folder\n- **/foo/**/*.js to match all js files under any foo folder&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;query&quot;:{&quot;description&quot;:&quot;Search for files with names or paths matching this glob pattern.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;maxResults&quot;:{&quot;description&quot;:&quot;The maximum number of results to return. Do not use this unless necessary, it can slow things down. By default, only some matches are returned. If you use this and don\u0027t see what you\u0027re looking for, you can try again with a more specific query or a larger maxResults.&quot;,&quot;type&quot;:&quot;number&quot;}},&quot;required&quot;:[&quot;query&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;grep_search&quot;,&quot;description&quot;:&quot;A text search tool for finding exact text or regex patterns in files.\n\nWhen to Use:\n- Exact text or symbol searches (function names, variable names, imports)\n- Regex pattern matching\n- Finding all usages of a specific string\n\nWhen NOT to Use:\n- Understanding code by meaning → use semantic_search instead\n- Finding files by name → use file_search instead\n\nUsage:\n- Supports regex syntax when isRegexp is true (e.g., \&quot;log.*Error\&quot;, \&quot;function\\s+\\w+\&quot;)\n- Use includePattern to filter by file type (e.g., \&quot;*.js\&quot;, \&quot;*.{ts,tsx}\&quot;)&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;query&quot;:{&quot;description&quot;:&quot;The pattern to search for in files in the workspace. Can be a regex or plain text pattern&quot;,&quot;type&quot;:&quot;string&quot;},&quot;isRegexp&quot;:{&quot;description&quot;:&quot;Whether the pattern is a regex. False by default.&quot;,&quot;type&quot;:&quot;boolean&quot;},&quot;includePattern&quot;:{&quot;description&quot;:&quot;Search files matching this glob pattern. Will be applied to the relative path of files within the workspace.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;query&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;validate_cves&quot;,&quot;description&quot;:&quot;Validates dependencies for known security vulnerabilities (CVEs). Returns CVE details for each affected dependency and the minimum version that resolves all known vulnerabilities.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;dependencies&quot;:{&quot;type&quot;:&quot;array&quot;,&quot;items&quot;:{&quot;description&quot;:&quot;Dependencies to check for CVEs. Format: package@version (Maven uses groupId:artifactId@version, e.g., \&quot;org.springframework:spring-core@5.3.20\&quot;; others use package@version, e.g., \&quot;django@3.2.0\&quot;)&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;ecosystem&quot;:{&quot;description&quot;:&quot;Package ecosystem (actions, composer, erlang, go, maven, npm, nuget, pip, pub, rubygems, rust)&quot;,&quot;anyOf&quot;:[{&quot;const&quot;:&quot;actions&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;composer&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;erlang&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;go&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;maven&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;npm&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;nuget&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;pip&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;pub&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;rubygems&quot;,&quot;type&quot;:&quot;string&quot;},{&quot;const&quot;:&quot;rust&quot;,&quot;type&quot;:&quot;string&quot;}]}},&quot;required&quot;:[&quot;dependencies&quot;,&quot;ecosystem&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;},{&quot;name&quot;:&quot;run_subagent&quot;,&quot;description&quot;:&quot;Invoke a specialized custom agent to handle specific tasks autonomously. The agent will receive a task description and execute it using its configured tools and model. Use this when you need to delegate work to a specialized agent with specific capabilities.&quot;,&quot;inputSchema&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;properties&quot;:{&quot;task&quot;:{&quot;description&quot;:&quot;A detailed description of the task for the agent to perform. Should be clear and specific about what the agent should accomplish.&quot;,&quot;type&quot;:&quot;string&quot;},&quot;agentName&quot;:{&quot;description&quot;:&quot;The name of the custom agent to invoke. Must match a registered agent name.&quot;,&quot;type&quot;:&quot;string&quot;}},&quot;required&quot;:[&quot;task&quot;,&quot;agentName&quot;]},&quot;type&quot;:&quot;shared&quot;,&quot;status&quot;:&quot;enabled&quot;}]" />
</component>
</application>