diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 71c172ef..20820263 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -9,6 +9,7 @@ export default tseslint.config( { ignores: [ ".next", + "imports/**", "src/components/ui/**", "src/components/ai-elements/**", "*.js", diff --git a/frontend/src/app/workspace/agents/[agent_name]/chats/[thread_id]/page.tsx b/frontend/src/app/workspace/agents/[agent_name]/chats/[thread_id]/page.tsx index 47f8a895..12ba855e 100644 --- a/frontend/src/app/workspace/agents/[agent_name]/chats/[thread_id]/page.tsx +++ b/frontend/src/app/workspace/agents/[agent_name]/chats/[thread_id]/page.tsx @@ -1,6 +1,5 @@ "use client"; -import type { UseStream } from "@langchain/langgraph-sdk/react"; import { BotIcon, PlusSquare } from "lucide-react"; import { useParams, useRouter } from "next/navigation"; import { useCallback } from "react"; @@ -22,7 +21,6 @@ import { useAgent } from "@/core/agents"; import { useI18n } from "@/core/i18n/hooks"; import { useNotification } from "@/core/notification/hooks"; import { useLocalSettings } from "@/core/settings"; -import type { AgentThreadState } from "@/core/threads"; import { useThreadStream } from "@/core/threads/hooks"; import { textOfMessage } from "@/core/threads/utils"; import { env } from "@/env"; @@ -82,7 +80,6 @@ export default function AgentChatPage() { const handleStop = useCallback(async () => { await thread.stop(); }, [thread]); - const legacyThread = thread as unknown as UseStream; return ( @@ -105,7 +102,7 @@ export default function AgentChatPage() {
- +
@@ -130,7 +127,7 @@ export default function AgentChatPage() {
@@ -159,6 +156,7 @@ export default function AgentChatPage() { ; const header = (
@@ -200,7 +197,7 @@ export default function NewAgentPage() { diff --git a/frontend/src/app/workspace/chats/[thread_id]/page.tsx b/frontend/src/app/workspace/chats/[thread_id]/page.tsx index 9c290ff0..6241100a 100644 --- a/frontend/src/app/workspace/chats/[thread_id]/page.tsx +++ b/frontend/src/app/workspace/chats/[thread_id]/page.tsx @@ -1,6 +1,5 @@ "use client"; -import type { UseStream } from "@langchain/langgraph-sdk/react"; import { useCallback } from "react"; import { type PromptInputMessage } from "@/components/ai-elements/prompt-input"; @@ -21,7 +20,6 @@ import { Welcome } from "@/components/workspace/welcome"; import { useI18n } from "@/core/i18n/hooks"; import { useNotification } from "@/core/notification/hooks"; import { useLocalSettings } from "@/core/settings"; -import type { AgentThreadState } from "@/core/threads"; import { useThreadStream } from "@/core/threads/hooks"; import { textOfMessage } from "@/core/threads/utils"; import { env } from "@/env"; @@ -72,7 +70,6 @@ export default function ChatPage() { const handleStop = useCallback(async () => { await thread.stop(); }, [thread]); - const legacyThread = thread as unknown as UseStream; return ( @@ -87,7 +84,7 @@ export default function ChatPage() { )} >
- +
@@ -100,7 +97,7 @@ export default function ChatPage() {
@@ -127,6 +124,7 @@ export default function ChatPage() { (null); diff --git a/frontend/src/components/workspace/messages/message-list.tsx b/frontend/src/components/workspace/messages/message-list.tsx index a6604775..8d5e0f6b 100644 --- a/frontend/src/components/workspace/messages/message-list.tsx +++ b/frontend/src/components/workspace/messages/message-list.tsx @@ -1,5 +1,4 @@ -import type { Message } from "@langchain/langgraph-sdk"; -import type { UseStream } from "@langchain/langgraph-sdk/react"; +import type { BaseStream } from "@langchain/langgraph-sdk/react"; import { Conversation, @@ -34,23 +33,18 @@ export function MessageList({ className, threadId, thread, - messagesOverride, - suppressThreadLoading = false, paddingBottom = 160, }: { className?: string; threadId: string; - thread: UseStream; - /** When set (e.g. from onFinish), use instead of thread.messages so SSE end shows complete state. */ - messagesOverride?: Message[]; - suppressThreadLoading?: boolean; + thread: BaseStream; paddingBottom?: number; }) { const { t } = useI18n(); const rehypePlugins = useRehypeSplitWordsIntoSpans(thread.isLoading); const updateSubtask = useUpdateSubtask(); - const messages = messagesOverride ?? thread.messages; - if (thread.isThreadLoading && !suppressThreadLoading && messages.length === 0) { + const messages = thread.messages; + if (thread.isThreadLoading && messages.length === 0) { return ; } return ( @@ -60,13 +54,15 @@ export function MessageList({ {groupMessages(messages, (group) => { if (group.type === "human" || group.type === "assistant") { - return group.messages.map((msg) => ( - - )); + return group.messages.map((msg) => { + return ( + + ); + }); } else if (group.type === "assistant:clarification") { const message = group.messages[0]; if (message && hasContent(message)) {