Skip to content

Commit ed046eb

Browse files
committed
revert to JSON message format for consistency
1 parent 4b5fe06 commit ed046eb

File tree

1 file changed

+12
-30
lines changed
  • src/integrations/claude-code

1 file changed

+12
-30
lines changed

src/integrations/claude-code/run.ts

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -114,36 +114,18 @@ export function runClaudeCode({
114114
const workspacePath = getCwd()
115115
const sessionId = SessionManager.getSessionId(workspacePath)
116116

117-
// Convert messages to a simple text prompt since Claude CLI doesn't accept JSON messages
118-
let promptText = ""
119-
120-
// Add system prompt if provided
121-
if (systemPrompt) {
122-
promptText += `System: ${systemPrompt}\n\n`
123-
}
124-
125-
// Convert messages to text format
126-
for (const message of messages) {
127-
const role = message.role === "user" ? "User" : "Assistant"
128-
let content = ""
129-
130-
if (typeof message.content === "string") {
131-
content = message.content
132-
} else if (Array.isArray(message.content)) {
133-
// Extract text from content blocks
134-
content = message.content
135-
.filter((block) => block.type === "text")
136-
.map((block) => (block as any).text)
137-
.join("\n")
138-
}
139-
140-
// Validate the content for security
141-
validateMessageContent(content)
142-
143-
promptText += `${role}: ${content}\n\n`
144-
}
145-
146-
const args = ["-p", promptText.trim(), "--verbose", "--output-format", "stream-json"]
117+
// Serialize messages to JSON format for Claude CLI
118+
const serializedMessages = safeSerializeMessages(messages)
119+
120+
const args = [
121+
"-p",
122+
serializedMessages,
123+
"--system-prompt",
124+
systemPrompt,
125+
"--verbose",
126+
"--output-format",
127+
"stream-json",
128+
]
147129

148130
// Add model if specified
149131
if (modelId) {

0 commit comments

Comments
 (0)