Skip to content

Commit de53f29

Browse files
authored
Merge pull request #408 from Opencode-DCP/dev
merge dev into master
2 parents 87d9ee4 + 68eb5ed commit de53f29

File tree

4 files changed

+41
-11
lines changed

4 files changed

+41
-11
lines changed

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,10 @@ test-update.ts
4040
docs/
4141
SCHEMA_NOTES.md
4242

43-
repomix-output.xml
43+
repomix-output.xml
44+
45+
# Python
46+
__pycache__/
47+
*.pyc
48+
*.pyo
49+
*.pyd

lib/hooks.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ export function createSystemPromptHandler(
9292
return
9393
}
9494

95-
output.system.push(renderSystemPrompt(flags))
95+
const newPrompt = renderSystemPrompt(flags)
96+
if (output.system.length > 0) {
97+
output.system[output.system.length - 1] += "\n\n" + newPrompt
98+
} else {
99+
output.system.push(newPrompt)
100+
}
96101
}
97102
}
98103

lib/messages/inject.ts

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import {
88
extractParameterKey,
99
createSyntheticTextPart,
1010
createSyntheticToolPart,
11-
isIgnoredUserMessage,
1211
appendMessageIdTagToToolOutput,
1312
findLastToolPart,
13+
isIgnoredUserMessage,
14+
rejectsTextParts,
1415
} from "./utils"
1516
import { getFilePathsFromParameters, isProtected } from "../protected-file-patterns"
1617
import { getLastUserMessage, isMessageCompacted } from "../shared-utils"
@@ -314,13 +315,22 @@ export const insertPruneToolContext = (
314315
)
315316
lastNonIgnoredMessage.parts.push(textPart)
316317
} else {
317-
const toolPart = createSyntheticToolPart(
318-
lastNonIgnoredMessage,
319-
combinedContent,
320-
modelId ?? "",
321-
`${lastNonIgnoredMessage.info.id}:context`,
322-
)
323-
lastNonIgnoredMessage.parts.push(toolPart)
318+
if (rejectsTextParts(modelId ?? "")) {
319+
const toolPart = createSyntheticToolPart(
320+
lastNonIgnoredMessage,
321+
combinedContent,
322+
modelId ?? "",
323+
`${lastNonIgnoredMessage.info.id}:context`,
324+
)
325+
lastNonIgnoredMessage.parts.push(toolPart)
326+
} else {
327+
const textPart = createSyntheticTextPart(
328+
lastNonIgnoredMessage,
329+
combinedContent,
330+
`${lastNonIgnoredMessage.info.id}:context`,
331+
)
332+
lastNonIgnoredMessage.parts.push(textPart)
333+
}
324334
}
325335
}
326336

@@ -365,6 +375,10 @@ export const insertMessageIdContext = (
365375
continue
366376
}
367377

368-
message.parts.push(createSyntheticToolPart(message, tag, toolModelId, messageIdSeed))
378+
if (rejectsTextParts(toolModelId)) {
379+
message.parts.push(createSyntheticToolPart(message, tag, toolModelId, messageIdSeed))
380+
} else {
381+
message.parts.push(createSyntheticTextPart(message, tag, messageIdSeed))
382+
}
369383
}
370384
}

lib/messages/utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ const isGeminiModel = (modelID: string): boolean => {
1919
return lowerModelID.includes("gemini")
2020
}
2121

22+
export const rejectsTextParts = (modelID: string): boolean => {
23+
const lowerModelID = modelID.toLowerCase()
24+
return lowerModelID.includes("claude")
25+
}
26+
2227
export const createSyntheticUserMessage = (
2328
baseMessage: WithParts,
2429
content: string,

0 commit comments

Comments
 (0)