summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorVladimir Glafirov <[email protected]>2026-03-24 18:33:18 +0100
committerGitHub <[email protected]>2026-03-24 12:33:18 -0500
commit9330bc5339b3ca82975f768200450d4c9aabcd35 (patch)
treead1c277cba38f357c262a030950a905fe51bd50e /packages
parent1238d1f61acccf05330ff8fb59f3e355239b5f82 (diff)
downloadopencode-9330bc5339b3ca82975f768200450d4c9aabcd35.tar.gz
opencode-9330bc5339b3ca82975f768200450d4c9aabcd35.zip
fix: route GitLab Duo Workflow system prompt via flowConfig (#18928)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/package.json2
-rw-r--r--packages/opencode/src/session/llm.ts22
2 files changed, 14 insertions, 10 deletions
diff --git a/packages/opencode/package.json b/packages/opencode/package.json
index 39b4e6232..97a6457cf 100644
--- a/packages/opencode/package.json
+++ b/packages/opencode/package.json
@@ -121,7 +121,7 @@
"drizzle-orm": "catalog:",
"effect": "catalog:",
"fuzzysort": "3.1.0",
- "gitlab-ai-provider": "5.3.1",
+ "gitlab-ai-provider": "5.3.2",
"glob": "13.0.5",
"google-auth-library": "10.5.0",
"gray-matter": "4.0.3",
diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts
index a22c6d856..075f070e4 100644
--- a/packages/opencode/src/session/llm.ts
+++ b/packages/opencode/src/session/llm.ts
@@ -113,17 +113,20 @@ export namespace LLM {
options.instructions = system.join("\n")
}
+ const isWorkflow = language instanceof GitLabWorkflowLanguageModel
const messages = isOpenaiOauth
? input.messages
- : [
- ...system.map(
- (x): ModelMessage => ({
- role: "system",
- content: x,
- }),
- ),
- ...input.messages,
- ]
+ : isWorkflow
+ ? input.messages
+ : [
+ ...system.map(
+ (x): ModelMessage => ({
+ role: "system",
+ content: x,
+ }),
+ ),
+ ...input.messages,
+ ]
const params = await Plugin.trigger(
"chat.params",
@@ -190,6 +193,7 @@ export namespace LLM {
// and results sent back over the WebSocket.
if (language instanceof GitLabWorkflowLanguageModel) {
const workflowModel = language
+ workflowModel.systemPrompt = system.join("\n")
workflowModel.toolExecutor = async (toolName, argsJson, _requestID) => {
const t = tools[toolName]
if (!t || !t.execute) {