import { partitionImagesForUpload } from "#/components/features/chat/utils/chat-input.utils"; import { useOptimisticUserMessageStore } from "#/stores/optimistic-user-message-store"; import { convertImageToBase64 } from "#/utils/convert-image-to-base-64"; /** * Shows the user's first message immediately on cloud start-task routes * (`/conversations/task-{uuid}`) while the sandbox provisions. */ export async function enqueueHomeTaskPendingMessage(options: { conversationId: string; text: string; images: File[]; imagesMarkedUploadAsFile: string[]; }): Promise { const { imagesToEmbed } = partitionImagesForUpload( options.images, options.imagesMarkedUploadAsFile, ); const imageUrls = await Promise.all( imagesToEmbed.map((image) => convertImageToBase64(image)), ); useOptimisticUserMessageStore.getState().enqueuePendingMessage({ conversationId: options.conversationId, text: options.text, content: options.text, imageUrls, fileUrls: [], }); }