@@ -10,7 +10,7 @@ import { getFilePaths, selectContext } from '~/lib/.server/llm/select-context';
1010import type { ContextAnnotation , ProgressAnnotation } from '~/types/context' ;
1111import { WORK_DIR } from '~/utils/constants' ;
1212import { createSummary } from '~/lib/.server/llm/create-summary' ;
13- import { extractPropertiesFromMessage } from '~/lib/.server/llm/utils' ;
13+ import { extractPropertiesFromMessage , processFileReferences } from '~/lib/.server/llm/utils' ;
1414import { MCPService } from '~/lib/services/mcpService' ;
1515import {
1616 validateChatRequest ,
@@ -317,6 +317,37 @@ async function chatAction({ context, request }: ActionFunctionArgs) {
317317 }
318318 }
319319
320+ const lastUserMessage = processedMessages . filter ( ( x ) => x . role === 'user' ) . slice ( - 1 ) [ 0 ] ;
321+
322+ if ( lastUserMessage ) {
323+ let messageContent = '' ;
324+
325+ if ( typeof lastUserMessage . content === 'string' ) {
326+ messageContent = lastUserMessage . content ;
327+ } else if ( Array . isArray ( lastUserMessage . content ) ) {
328+ const contentArray = lastUserMessage . content as Array < { type : string ; text ?: string } > ;
329+ const textContent = contentArray . find ( ( item ) => item . type === 'text' ) ;
330+ messageContent = textContent ?. text || '' ;
331+ }
332+
333+ const { cleanedContent, referencedFilesContext } = processFileReferences ( messageContent , files ) ;
334+
335+ if ( referencedFilesContext ) {
336+ if ( typeof lastUserMessage . content === 'string' ) {
337+ lastUserMessage . content = cleanedContent + '\n\n' + referencedFilesContext ;
338+ } else if ( Array . isArray ( lastUserMessage . content ) ) {
339+ const contentArray = lastUserMessage . content as Array < { type : string ; text ?: string } > ;
340+ const textContentIndex = contentArray . findIndex ( ( item ) => item . type === 'text' ) ;
341+
342+ if ( textContentIndex !== - 1 && contentArray [ textContentIndex ] ) {
343+ contentArray [ textContentIndex ] . text = cleanedContent + '\n\n' + referencedFilesContext ;
344+ }
345+ }
346+
347+ logger . debug ( 'Processed file references in user message' ) ;
348+ }
349+ }
350+
320351 const result = await streamText ( {
321352 messages : processedMessages ,
322353 env : context . cloudflare ?. env ,
0 commit comments