diff --git a/internal/translator/antigravity/claude/antigravity_claude_request.go b/internal/translator/antigravity/claude/antigravity_claude_request.go index 0af039f6..2287bccc 100644 --- a/internal/translator/antigravity/claude/antigravity_claude_request.go +++ b/internal/translator/antigravity/claude/antigravity_claude_request.go @@ -86,6 +86,10 @@ func ConvertClaudeRequestToAntigravity(modelName string, inputRawJSON []byte, _ hasSystemInstruction = true } } + } else if systemResult.Type == gjson.String { + systemInstructionJSON = `{"role":"user","parts":[{"text":""}]}` + systemInstructionJSON, _ = sjson.Set(systemInstructionJSON, "parts.0.text", systemResult.String()) + hasSystemInstruction = true } // contents diff --git a/internal/translator/gemini-cli/claude/gemini-cli_claude_request.go b/internal/translator/gemini-cli/claude/gemini-cli_claude_request.go index c421d22f..66e0385f 100644 --- a/internal/translator/gemini-cli/claude/gemini-cli_claude_request.go +++ b/internal/translator/gemini-cli/claude/gemini-cli_claude_request.go @@ -62,6 +62,8 @@ func ConvertClaudeRequestToCLI(modelName string, inputRawJSON []byte, _ bool) [] if hasSystemParts { out, _ = sjson.SetRaw(out, "request.systemInstruction", systemInstruction) } + } else if systemResult.Type == gjson.String { + out, _ = sjson.Set(out, "request.systemInstruction.parts.-1.text", systemResult.String()) } // contents diff --git a/internal/translator/gemini/claude/gemini_claude_request.go b/internal/translator/gemini/claude/gemini_claude_request.go index 8c95b6ea..4ab6ab97 100644 --- a/internal/translator/gemini/claude/gemini_claude_request.go +++ b/internal/translator/gemini/claude/gemini_claude_request.go @@ -55,6 +55,8 @@ func ConvertClaudeRequestToGemini(modelName string, inputRawJSON []byte, _ bool) if hasSystemParts { out, _ = sjson.SetRaw(out, "system_instruction", systemInstruction) } + } else if systemResult.Type == gjson.String { + out, _ = sjson.Set(out, "request.system_instruction.parts.-1.text", systemResult.String()) } // contents