+
{content}
) : isStreaming ? (
@@ -174,7 +212,20 @@ function CompletionResultMessage({
* Regular Text Message
* Default message renderer
*/
-function TextMessage({ content, isStreaming }: { content: string; isStreaming?: boolean }) {
+function TextMessage({
+ content,
+ isStreaming,
+ onPreviewNavigate,
+}: {
+ content: string;
+ isStreaming?: boolean;
+ onPreviewNavigate?: (path: string) => void;
+}) {
+ const components = useMemo(
+ () =>
+ onPreviewNavigate ? createMarkdownComponents(onPreviewNavigate) : defaultMarkdownComponents,
+ [onPreviewNavigate]
+ );
return (
{content ? (
-
+
{content}
) : isStreaming ? (
diff --git a/src/lib/app-builder/app-builder-service.ts b/src/lib/app-builder/app-builder-service.ts
index a3a72ea73..128b9e83a 100644
--- a/src/lib/app-builder/app-builder-service.ts
+++ b/src/lib/app-builder/app-builder-service.ts
@@ -466,7 +466,7 @@ export async function startSessionForProject(
* cloudAgentSessionId and should reconnect to the new session's WebSocket.
*/
export async function sendMessage(input: SendMessageInput): Promise {
- const { projectId, owner, message, authToken, images, model } = input;
+ const { projectId, owner, message, authToken, images, model, previewPath } = input;
const project = await getProjectWithOwnershipCheck(projectId, owner);
@@ -501,9 +501,13 @@ export async function sendMessage(input: SendMessageInput): Promise