Have @ pass through images and other Part objects (#990)

This commit is contained in:
Seth Troisi 2025-06-12 16:17:44 -07:00 committed by GitHub
parent b7daa7c702
commit dc378e8d60
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 3 deletions

View File

@ -240,8 +240,12 @@ describe('handleAtCommand', () => {
// If it were to return actual image Part, the test and handling would be different. // If it were to return actual image Part, the test and handling would be different.
// Current implementation of read_many_files for images returns base64 in text. // Current implementation of read_many_files for images returns base64 in text.
const imageFileTextContent = '[base64 image data for path/to/image.png]'; const imageFileTextContent = '[base64 image data for path/to/image.png]';
const imagePart = {
mimeType: 'image/png',
inlineData: imageFileTextContent,
};
mockReadManyFilesExecute.mockResolvedValue({ mockReadManyFilesExecute.mockResolvedValue({
llmContent: [`--- ${imagePath} ---\n\n${imageFileTextContent}\n\n`], llmContent: [imagePart],
returnDisplay: 'Read 1 image.', returnDisplay: 'Read 1 image.',
}); });
@ -256,8 +260,7 @@ describe('handleAtCommand', () => {
expect(result.processedQuery).toEqual([ expect(result.processedQuery).toEqual([
{ text: `@${imagePath}` }, { text: `@${imagePath}` },
{ text: '\n--- Content from referenced files ---' }, { text: '\n--- Content from referenced files ---' },
{ text: `\nContent from @${imagePath}:\n` }, imagePart,
{ text: imageFileTextContent },
{ text: '\n--- End of content ---' }, { text: '\n--- End of content ---' },
]); ]);
expect(result.shouldProceed).toBe(true); expect(result.shouldProceed).toBe(true);

View File

@ -381,7 +381,12 @@ export async function handleAtCommand({
text: `\nContent from @${filePathSpecInContent}:\n`, text: `\nContent from @${filePathSpecInContent}:\n`,
}); });
processedQueryParts.push({ text: fileActualContent }); processedQueryParts.push({ text: fileActualContent });
} else {
processedQueryParts.push({ text: part });
} }
} else {
// part is a Part object.
processedQueryParts.push(part);
} }
} }
processedQueryParts.push({ text: '\n--- End of content ---' }); processedQueryParts.push({ text: '\n--- End of content ---' });