Просмотр исходного кода

feat: add other useful variables to the custom system prompt (#2879)

Daniel 8 месяцев назад
Родитель
Сommit
970ccd7879
2 измененных файлов с 9 добавлено и 0 удалено
  1. 4 0
      src/core/prompts/sections/custom-system-prompt.ts
  2. 5 0
      src/core/prompts/system.ts

+ 4 - 0
src/core/prompts/sections/custom-system-prompt.ts

@@ -5,6 +5,10 @@ import { fileExistsAtPath } from "../../../utils/fs"
 
 export type PromptVariables = {
 	workspace?: string
+	mode?: string
+	language?: string
+	shell?: string
+	operatingSystem?: string
 }
 
 function interpolatePromptContent(content: string, variables: PromptVariables): string {

+ 5 - 0
src/core/prompts/system.ts

@@ -14,6 +14,7 @@ import { DiffStrategy } from "../../shared/tools"
 import { McpHub } from "../../services/mcp/McpHub"
 import { getToolDescriptionsForMode } from "./tools"
 import * as vscode from "vscode"
+import * as os from "os"
 import {
 	getRulesSection,
 	getSystemInfoSection,
@@ -128,6 +129,10 @@ export const SYSTEM_PROMPT = async (
 	// Try to load custom system prompt from file
 	const variablesForPrompt: PromptVariables = {
 		workspace: cwd,
+		mode: mode,
+		language: language ?? formatLanguage(vscode.env.language),
+		shell: vscode.env.shell,
+		operatingSystem: os.type(),
 	}
 	const fileCustomSystemPrompt = await loadSystemPromptFile(cwd, mode, variablesForPrompt)