diff --git a/package.json b/package.json index ee97207d..0e05f91b 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,11 @@ "type": "boolean", "description": "Provide Schema definition as additional context in Continue and Copilot", "default": true + }, + "vscode-db2i.ai.useSystemMessage": { + "type": "boolean", + "description": "Include system messages in Continue Context Items", + "default": true } } }, diff --git a/src/aiProviders/continue/continueContextProvider.ts b/src/aiProviders/continue/continueContextProvider.ts index 0a3f4cdb..05a60f53 100644 --- a/src/aiProviders/continue/continueContextProvider.ts +++ b/src/aiProviders/continue/continueContextProvider.ts @@ -159,9 +159,7 @@ export class db2ContextProvider implements IContextProvider { }); } - const newContextItems = await getContextItems(fullInput, { - withDb2Prompt: true, - }) + const newContextItems = await getContextItems(fullInput) contextItems.push(...newContextItems.context); diff --git a/src/aiProviders/copilot/index.ts b/src/aiProviders/copilot/index.ts index 6b1958ed..a979606f 100644 --- a/src/aiProviders/copilot/index.ts +++ b/src/aiProviders/copilot/index.ts @@ -73,6 +73,7 @@ export function activateChat(context: vscode.ExtensionContext) { }); } + // always include system message in Copilot const contextItems = await getContextItems(request.prompt, { progress: stream.progress, withDb2Prompt: true diff --git a/src/aiProviders/prompt.ts b/src/aiProviders/prompt.ts index d46eb0e3..1d719297 100644 --- a/src/aiProviders/prompt.ts +++ b/src/aiProviders/prompt.ts @@ -37,6 +37,7 @@ export async function getContextItems(input: string, options: PromptOptions = {} if (currentJob) { const currentSchema = currentJob?.job.options.libraries[0] || "QGPL"; const useSchemaDef: boolean = Configuration.get(`ai.useSchemaDefinition`); + const useSystemMessage: boolean = Configuration.get(`ai.useSystemMessage`); // TODO: self? @@ -116,7 +117,8 @@ export async function getContextItems(input: string, options: PromptOptions = {} } } - if (options.withDb2Prompt) { + // check if option is defined first via API, then check user settings + if (options.withDb2Prompt !== undefined ? options.withDb2Prompt : useSystemMessage) { contextItems.push({ name: `system prompt`, content: DB2_SYSTEM_PROMPT, diff --git a/src/contributes.json b/src/contributes.json index 7368a32f..a57c7bbc 100644 --- a/src/contributes.json +++ b/src/contributes.json @@ -66,6 +66,12 @@ "type": "boolean", "description": "Provide Schema definition as additional context in Continue and Copilot", "default": true + }, + "vscode-db2i.ai.useSystemMessage": { + "type": "boolean", + "description": "Include system messages in Continue Context Items", + "default": true + } } }