From 7127ff1244c5271f11c0585a2cd1bdb2b96f7164 Mon Sep 17 00:00:00 2001 From: Vanalite Date: Wed, 1 Oct 2025 21:52:30 +0700 Subject: [PATCH] fix: Exposing PromptProgress to be passed as param --- web-app/src/containers/ChatInput.tsx | 1 - web-app/src/hooks/useAppState.ts | 2 +- web-app/src/hooks/useChat.ts | 10 +++++----- web-app/src/hooks/useTools.ts | 5 +++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/web-app/src/containers/ChatInput.tsx b/web-app/src/containers/ChatInput.tsx index 6e314a0f5..6abc8362f 100644 --- a/web-app/src/containers/ChatInput.tsx +++ b/web-app/src/containers/ChatInput.tsx @@ -179,7 +179,6 @@ const ChatInput = ({ const mcpExtension = extensionManager.get(ExtensionTypeEnum.MCP) const MCPToolComponent = mcpExtension?.getToolComponent?.() - const handleSendMesage = (prompt: string) => { if (!selectedModel) { setMessage('Please select a model to start chatting.') diff --git a/web-app/src/hooks/useAppState.ts b/web-app/src/hooks/useAppState.ts index 646294a8d..4819db05f 100644 --- a/web-app/src/hooks/useAppState.ts +++ b/web-app/src/hooks/useAppState.ts @@ -4,7 +4,7 @@ import { MCPTool } from '@/types/completion' import { useAssistant } from './useAssistant' import { ChatCompletionMessageToolCall } from 'openai/resources' -type PromptProgress = { +export type PromptProgress = { cache: number processed: number time_ms: number diff --git a/web-app/src/hooks/useChat.ts b/web-app/src/hooks/useChat.ts index fb66cd639..ac73b1eeb 100644 --- a/web-app/src/hooks/useChat.ts +++ b/web-app/src/hooks/useChat.ts @@ -3,7 +3,7 @@ import { flushSync } from 'react-dom' import { usePrompt } from './usePrompt' import { useModelProvider } from './useModelProvider' import { useThreads } from './useThreads' -import { useAppState } from './useAppState' +import { useAppState, type PromptProgress } from './useAppState' import { useMessages } from './useMessages' import { useRouter } from '@tanstack/react-router' import { defaultModel } from '@/lib/models' @@ -23,7 +23,7 @@ import { ChatCompletionMessageToolCall, CompletionUsage, } from 'openai/resources' -import { MessageStatus, ContentType } from '@janhq/core' +import { MessageStatus, ContentType, ThreadMessage } from '@janhq/core' import { useServiceHub } from '@/hooks/useServiceHub' import { useToolApproval } from '@/hooks/useToolApproval' @@ -74,7 +74,7 @@ const finalizeMessage = ( finalContent: ThreadMessage, addMessage: (message: ThreadMessage) => void, updateStreamingContent: (content: ThreadMessage | undefined) => void, - updatePromptProgress: (progress: unknown) => void, + updatePromptProgress: (progress: PromptProgress | undefined) => void, updateThreadTimestamp: (threadId: string) => void, updateMessage?: (message: ThreadMessage) => void, continueFromMessageId?: string @@ -102,7 +102,7 @@ const processStreamingCompletion = async ( updateStreamingContent: (content: ThreadMessage | undefined) => void, updateTokenSpeed: (message: ThreadMessage, increment?: number) => void, setTokenSpeed: (message: ThreadMessage, tokensPerSecond: number, totalTokens: number) => void, - updatePromptProgress: (progress: unknown) => void, + updatePromptProgress: (progress: PromptProgress | undefined) => void, timeToFirstToken: number, tokenUsageRef: { current: CompletionUsage | undefined }, continueFromMessageId?: string, @@ -475,7 +475,7 @@ export const useChat = () => { const accumulatedTextRef = { value: continueFromMessage?.content?.[0]?.text?.value || '' } - let currentAssistant: Assistant | undefined + let currentAssistant: Assistant | undefined | null try { if (selectedModel?.id) { diff --git a/web-app/src/hooks/useTools.ts b/web-app/src/hooks/useTools.ts index 2ff61eb10..7a563b75f 100644 --- a/web-app/src/hooks/useTools.ts +++ b/web-app/src/hooks/useTools.ts @@ -23,8 +23,9 @@ export const useTools = () => { updateTools(data) // Initialize default disabled tools for new users (only once) - if (!isDefaultsInitialized() && data.length > 0 && mcpExtension?.getDefaultDisabledTools) { - const defaultDisabled = await mcpExtension.getDefaultDisabledTools() + const mcpExt = mcpExtension as MCPExtension & { getDefaultDisabledTools?: () => Promise } + if (!isDefaultsInitialized() && data.length > 0 && mcpExt?.getDefaultDisabledTools) { + const defaultDisabled = await mcpExt.getDefaultDisabledTools() if (defaultDisabled.length > 0) { setDefaultDisabledTools(defaultDisabled) markDefaultsAsInitialized()