(provider: ClineProvider, message: WebviewMessage)
| 10 | import { ClineProvider } from "./ClineProvider" |
| 11 | |
| 12 | export const generateSystemPrompt = async (provider: ClineProvider, message: WebviewMessage) => { |
| 13 | const { |
| 14 | apiConfiguration, |
| 15 | customModePrompts, |
| 16 | customInstructions, |
| 17 | mcpEnabled, |
| 18 | experiments, |
| 19 | language, |
| 20 | enableSubfolderRules, |
| 21 | } = await provider.getState() |
| 22 | |
| 23 | const diffStrategy = new MultiSearchReplaceDiffStrategy() |
| 24 | |
| 25 | const cwd = provider.cwd |
| 26 | |
| 27 | const mode = message.mode ?? defaultModeSlug |
| 28 | const customModes = await provider.customModesManager.getCustomModes() |
| 29 | |
| 30 | const rooIgnoreInstructions = provider.getCurrentTask()?.rooIgnoreController?.getInstructions() |
| 31 | |
| 32 | // Create a temporary API handler to check model info for stealth mode. |
| 33 | // This avoids relying on an active Cline instance which might not exist during preview. |
| 34 | let modelInfo: { isStealthModel?: boolean } | undefined |
| 35 | try { |
| 36 | const tempApiHandler = buildApiHandler(apiConfiguration) |
| 37 | modelInfo = tempApiHandler.getModel().info |
| 38 | } catch (error) { |
| 39 | console.error("Error fetching model info for system prompt preview:", error) |
| 40 | } |
| 41 | |
| 42 | const systemPrompt = await SYSTEM_PROMPT( |
| 43 | provider.context, |
| 44 | cwd, |
| 45 | false, // supportsComputerUse — browser removed |
| 46 | mcpEnabled ? provider.getMcpHub() : undefined, |
| 47 | diffStrategy, |
| 48 | mode, |
| 49 | customModePrompts, |
| 50 | customModes, |
| 51 | customInstructions, |
| 52 | experiments, |
| 53 | language, |
| 54 | rooIgnoreInstructions, |
| 55 | { |
| 56 | todoListEnabled: apiConfiguration?.todoListEnabled ?? true, |
| 57 | useAgentRules: vscode.workspace.getConfiguration(Package.name).get<boolean>("useAgentRules") ?? true, |
| 58 | enableSubfolderRules: enableSubfolderRules ?? false, |
| 59 | newTaskRequireTodos: vscode.workspace |
| 60 | .getConfiguration(Package.name) |
| 61 | .get<boolean>("newTaskRequireTodos", false), |
| 62 | isStealthModel: modelInfo?.isStealthModel, |
| 63 | }, |
| 64 | undefined, // todoList |
| 65 | undefined, // modelId |
| 66 | provider.getSkillsManager(), |
| 67 | ) |
| 68 | |
| 69 | return systemPrompt |
no test coverage detected