refactor: type improvements that doesn't modify functionality (#17970)

This commit is contained in:
yusheng chen 2025-04-14 16:06:10 +08:00 committed by GitHub
parent 53efb2bad5
commit 4c99e9dc73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
39 changed files with 69 additions and 63 deletions

View File

@ -124,7 +124,7 @@ const ConfigPopup: FC<PopupProps> = ({
) )
const configuredProviderPanel = () => { const configuredProviderPanel = () => {
const configuredPanels: any[] = [] const configuredPanels: JSX.Element[] = []
if (langSmithConfig) if (langSmithConfig)
configuredPanels.push(langSmithPanel) configuredPanels.push(langSmithPanel)
@ -139,7 +139,7 @@ const ConfigPopup: FC<PopupProps> = ({
} }
const moreProviderPanel = () => { const moreProviderPanel = () => {
const notConfiguredPanels: any[] = [] const notConfiguredPanels: JSX.Element[] = []
if (!langSmithConfig) if (!langSmithConfig)
notConfiguredPanels.push(langSmithPanel) notConfiguredPanels.push(langSmithPanel)

View File

@ -73,7 +73,7 @@ const AgentTools: FC = () => {
formattingChangedDispatcher() formattingChangedDispatcher()
} }
const handleToolAuthSetting = (value: any) => { const handleToolAuthSetting = (value: AgentToolWithMoreInfo) => {
const newModelConfig = produce(modelConfig, (draft) => { const newModelConfig = produce(modelConfig, (draft) => {
const tool = (draft.agentConfig.tools).find((item: any) => item.provider_id === value?.collection?.id && item.tool_name === value?.tool_name) const tool = (draft.agentConfig.tools).find((item: any) => item.provider_id === value?.collection?.id && item.tool_name === value?.tool_name)
if (tool) if (tool)
@ -121,7 +121,7 @@ const AgentTools: FC = () => {
} }
headerRight={ headerRight={
<div className='flex items-center'> <div className='flex items-center'>
<div className='text-xs font-normal leading-[18px] text-text-tertiary'>{tools.filter((item: any) => !!item.enabled).length}/{tools.length}&nbsp;{t('appDebug.agent.tools.enabled')}</div> <div className='text-xs font-normal leading-[18px] text-text-tertiary'>{tools.filter(item => !!item.enabled).length}/{tools.length}&nbsp;{t('appDebug.agent.tools.enabled')}</div>
{tools.length < MAX_TOOLS_NUM && ( {tools.length < MAX_TOOLS_NUM && (
<> <>
<div className='ml-3 mr-1 h-3.5 w-px bg-divider-regular'></div> <div className='ml-3 mr-1 h-3.5 w-px bg-divider-regular'></div>
@ -273,7 +273,7 @@ const AgentTools: FC = () => {
{isShowSettingTool && ( {isShowSettingTool && (
<SettingBuiltInTool <SettingBuiltInTool
toolName={currentTool?.tool_name as string} toolName={currentTool?.tool_name as string}
setting={currentTool?.tool_parameters as any} setting={currentTool?.tool_parameters}
collection={currentTool?.collection as Collection} collection={currentTool?.collection as Collection}
isBuiltIn={currentTool?.collection?.type === CollectionType.builtIn} isBuiltIn={currentTool?.collection?.type === CollectionType.builtIn}
isModel={currentTool?.collection?.type === CollectionType.model} isModel={currentTool?.collection?.type === CollectionType.model}
@ -291,7 +291,7 @@ const AgentTools: FC = () => {
type: 'success', type: 'success',
message: t('common.api.actionSuccess'), message: t('common.api.actionSuccess'),
}) })
handleToolAuthSetting(currentTool as any) handleToolAuthSetting(currentTool)
setShowSettingAuth(false) setShowSettingAuth(false)
}} }}
/> />

View File

@ -56,8 +56,8 @@ const SettingBuiltInTool: FC<Props> = ({
const [tools, setTools] = useState<Tool[]>([]) const [tools, setTools] = useState<Tool[]>([])
const currTool = tools.find(tool => tool.name === toolName) const currTool = tools.find(tool => tool.name === toolName)
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : [] const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
const infoSchemas = formSchemas.filter((item: any) => item.form === 'llm') const infoSchemas = formSchemas.filter(item => item.form === 'llm')
const settingSchemas = formSchemas.filter((item: any) => item.form !== 'llm') const settingSchemas = formSchemas.filter(item => item.form !== 'llm')
const hasSetting = settingSchemas.length > 0 const hasSetting = settingSchemas.length > 0
const [tempSetting, setTempSetting] = useState(setting) const [tempSetting, setTempSetting] = useState(setting)
const [currType, setCurrType] = useState('info') const [currType, setCurrType] = useState('info')
@ -99,7 +99,7 @@ const SettingBuiltInTool: FC<Props> = ({
const isValid = (() => { const isValid = (() => {
let valid = true let valid = true
settingSchemas.forEach((item: any) => { settingSchemas.forEach((item) => {
if (item.required && !tempSetting[item.name]) if (item.required && !tempSetting[item.name])
valid = false valid = false
}) })
@ -120,7 +120,7 @@ const SettingBuiltInTool: FC<Props> = ({
<div className=''> <div className=''>
{infoSchemas.length > 0 && ( {infoSchemas.length > 0 && (
<div className='space-y-1 py-2'> <div className='space-y-1 py-2'>
{infoSchemas.map((item: any, index) => ( {infoSchemas.map((item, index) => (
<div key={index} className='py-1'> <div key={index} className='py-1'>
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
<div className='code-sm-semibold text-text-secondary'>{item.label[language]}</div> <div className='code-sm-semibold text-text-secondary'>{item.label[language]}</div>
@ -147,7 +147,7 @@ const SettingBuiltInTool: FC<Props> = ({
<Form <Form
value={tempSetting} value={tempSetting}
onChange={setTempSetting} onChange={setTempSetting}
formSchemas={settingSchemas as any} formSchemas={settingSchemas}
isEditMode={false} isEditMode={false}
showOnVariableMap={{}} showOnVariableMap={{}}
validating={false} validating={false}

View File

@ -368,8 +368,8 @@ const ConfigContent: FC<Props> = ({
provider={model?.provider} provider={model?.provider}
completionParams={model?.completion_params} completionParams={model?.completion_params}
modelId={model?.name} modelId={model?.name}
setModel={onSingleRetrievalModelChange as any} setModel={onSingleRetrievalModelChange}
onCompletionParamsChange={onSingleRetrievalModelParamsChange as any} onCompletionParamsChange={onSingleRetrievalModelParamsChange}
hideDebugWithMultipleModel hideDebugWithMultipleModel
debugWithMultipleModel={false} debugWithMultipleModel={false}
/> />

View File

@ -8,6 +8,7 @@ import ModelParameterModal from '@/app/components/header/account-setting/model-p
import ModelIcon from '@/app/components/header/account-setting/model-provider-page/model-icon' import ModelIcon from '@/app/components/header/account-setting/model-provider-page/model-icon'
import ModelName from '@/app/components/header/account-setting/model-provider-page/model-name' import ModelName from '@/app/components/header/account-setting/model-provider-page/model-name'
import { import {
type FormValue,
MODEL_STATUS_TEXT, MODEL_STATUS_TEXT,
ModelStatusEnum, ModelStatusEnum,
} from '@/app/components/header/account-setting/model-provider-page/declarations' } from '@/app/components/header/account-setting/model-provider-page/declarations'
@ -45,7 +46,7 @@ const ModelParameterTrigger: FC<ModelParameterTriggerProps> = ({
} }
onMultipleModelConfigsChange(true, newModelConfigs) onMultipleModelConfigsChange(true, newModelConfigs)
} }
const handleParamsChange = (params: any) => { const handleParamsChange = (params: FormValue) => {
const newModelConfigs = [...multipleModelConfigs] const newModelConfigs = [...multipleModelConfigs]
newModelConfigs[index] = { newModelConfigs[index] = {
...newModelConfigs[index], ...newModelConfigs[index],

View File

@ -227,7 +227,7 @@ const Configuration: FC = () => {
}, [modelModeType]) }, [modelModeType])
const [dataSets, setDataSets] = useState<DataSet[]>([]) const [dataSets, setDataSets] = useState<DataSet[]>([])
const contextVar = modelConfig.configs.prompt_variables.find((item: any) => item.is_context_var)?.key const contextVar = modelConfig.configs.prompt_variables.find(item => item.is_context_var)?.key
const hasSetContextVar = !!contextVar const hasSetContextVar = !!contextVar
const [isShowSelectDataSet, { setTrue: showSelectDataSet, setFalse: hideSelectDataSet }] = useBoolean(false) const [isShowSelectDataSet, { setTrue: showSelectDataSet, setFalse: hideSelectDataSet }] = useBoolean(false)
const selectedIds = dataSets.map(item => item.id) const selectedIds = dataSets.map(item => item.id)
@ -245,7 +245,7 @@ const Configuration: FC = () => {
formattingChangedDispatcher() formattingChangedDispatcher()
let newDatasets = data let newDatasets = data
if (data.find(item => !item.name)) { // has not loaded selected dataset if (data.find(item => !item.name)) { // has not loaded selected dataset
const newSelected = produce(data, (draft: any) => { const newSelected = produce(data, (draft) => {
data.forEach((item, index) => { data.forEach((item, index) => {
if (!item.name) { // not fetched database if (!item.name) { // not fetched database
const newItem = dataSets.find(i => i.id === item.id) const newItem = dataSets.find(i => i.id === item.id)
@ -513,7 +513,7 @@ const Configuration: FC = () => {
if (modelConfig.chat_prompt_config && modelConfig.chat_prompt_config.prompt.length > 0) if (modelConfig.chat_prompt_config && modelConfig.chat_prompt_config.prompt.length > 0)
setChatPromptConfig(modelConfig.chat_prompt_config) setChatPromptConfig(modelConfig.chat_prompt_config)
else else
setChatPromptConfig(clone(DEFAULT_CHAT_PROMPT_CONFIG) as any) setChatPromptConfig(clone(DEFAULT_CHAT_PROMPT_CONFIG))
setCompletionPromptConfig(modelConfig.completion_prompt_config || clone(DEFAULT_COMPLETION_PROMPT_CONFIG) as any) setCompletionPromptConfig(modelConfig.completion_prompt_config || clone(DEFAULT_COMPLETION_PROMPT_CONFIG) as any)
setCanReturnToSimpleMode(false) setCanReturnToSimpleMode(false)
} }

View File

@ -79,7 +79,7 @@ const PromptValuePanel: FC<IPromptValuePanelProps> = ({
} }
const onClear = () => { const onClear = () => {
const newInputs: Record<string, any> = {} const newInputs: Inputs = {}
promptVariables.forEach((item) => { promptVariables.forEach((item) => {
newInputs[item.key] = '' newInputs[item.key] = ''
}) })

View File

@ -36,7 +36,7 @@ const AgentLogDetail: FC<AgentLogDetailProps> = ({
const [list, setList] = useState<AgentIteration[]>([]) const [list, setList] = useState<AgentIteration[]>([])
const tools = useMemo(() => { const tools = useMemo(() => {
const res = uniq(flatten(runDetail?.iterations.map((iteration: any) => { const res = uniq(flatten(runDetail?.iterations.map((iteration) => {
return iteration.tool_calls.map((tool: any) => tool.tool_name).filter(Boolean) return iteration.tool_calls.map((tool: any) => tool.tool_name).filter(Boolean)
})).filter(Boolean)) })).filter(Boolean))
return res return res

View File

@ -29,7 +29,7 @@ const AudioBtn = ({
const params = useParams() const params = useParams()
const pathname = usePathname() const pathname = usePathname()
const audio_finished_call = (event: string): any => { const audio_finished_call = (event: string): void => {
switch (event) { switch (event) {
case 'ended': case 'ended':
setAudioState('ended') setAudioState('ended')

View File

@ -512,7 +512,7 @@ export const useChat = (
responseItem.workflowProcess!.tracing!.push({ responseItem.workflowProcess!.tracing!.push({
...iterationStartedData, ...iterationStartedData,
status: WorkflowRunningStatus.Running, status: WorkflowRunningStatus.Running,
} as any) })
updateCurrentQAOnTree({ updateCurrentQAOnTree({
placeholderQuestionId, placeholderQuestionId,
questionItem, questionItem,
@ -528,7 +528,7 @@ export const useChat = (
...tracing[iterationIndex], ...tracing[iterationIndex],
...iterationFinishedData, ...iterationFinishedData,
status: WorkflowRunningStatus.Succeeded, status: WorkflowRunningStatus.Succeeded,
} as any }
updateCurrentQAOnTree({ updateCurrentQAOnTree({
placeholderQuestionId, placeholderQuestionId,
@ -547,7 +547,7 @@ export const useChat = (
responseItem.workflowProcess!.tracing!.push({ responseItem.workflowProcess!.tracing!.push({
...nodeStartedData, ...nodeStartedData,
status: WorkflowRunningStatus.Running, status: WorkflowRunningStatus.Running,
} as any) })
updateCurrentQAOnTree({ updateCurrentQAOnTree({
placeholderQuestionId, placeholderQuestionId,
questionItem, questionItem,
@ -590,7 +590,7 @@ export const useChat = (
responseItem.workflowProcess!.tracing!.push({ responseItem.workflowProcess!.tracing!.push({
...loopStartedData, ...loopStartedData,
status: WorkflowRunningStatus.Running, status: WorkflowRunningStatus.Running,
} as any) })
updateCurrentQAOnTree({ updateCurrentQAOnTree({
placeholderQuestionId, placeholderQuestionId,
questionItem, questionItem,
@ -606,7 +606,7 @@ export const useChat = (
...tracing[loopIndex], ...tracing[loopIndex],
...loopFinishedData, ...loopFinishedData,
status: WorkflowRunningStatus.Succeeded, status: WorkflowRunningStatus.Succeeded,
} as any }
updateCurrentQAOnTree({ updateCurrentQAOnTree({
placeholderQuestionId, placeholderQuestionId,

View File

@ -12,6 +12,7 @@ import useAnnotationConfig from '@/app/components/base/features/new-feature-pane
import ConfigParamModal from '@/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal' import ConfigParamModal from '@/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal'
import AnnotationFullModal from '@/app/components/billing/annotation-full/modal' import AnnotationFullModal from '@/app/components/billing/annotation-full/modal'
import { ANNOTATION_DEFAULT } from '@/config' import { ANNOTATION_DEFAULT } from '@/config'
import type { AnnotationReplyConfig } from '@/models/debug'
type Props = { type Props = {
disabled?: boolean disabled?: boolean
@ -30,7 +31,7 @@ const AnnotationReply = ({
const featuresStore = useFeaturesStore() const featuresStore = useFeaturesStore()
const annotationReply = useFeatures(s => s.features.annotationReply) const annotationReply = useFeatures(s => s.features.annotationReply)
const updateAnnotationReply = useCallback((newConfig: any) => { const updateAnnotationReply = useCallback((newConfig: AnnotationReplyConfig) => {
const { const {
features, features,
setFeatures, setFeatures,

View File

@ -47,7 +47,7 @@ const WorkflowVariableBlockReplacementBlock = ({
} }
}, []) }, [])
const transformListener = useCallback((textNode: any) => { const transformListener = useCallback((textNode: CustomTextNode) => {
resetReg() resetReg()
return decoratorTransform(textNode, getMatch, createWorkflowVariableBlockNode) return decoratorTransform(textNode, getMatch, createWorkflowVariableBlockNode)
}, [createWorkflowVariableBlockNode, getMatch]) }, [createWorkflowVariableBlockNode, getMatch])

View File

@ -1,3 +1,4 @@
import type { ReactNode } from 'react'
import React from 'react' import React from 'react'
import { act, render, screen, waitFor } from '@testing-library/react' import { act, render, screen, waitFor } from '@testing-library/react'
import Toast, { ToastProvider, useToastContext } from '.' import Toast, { ToastProvider, useToastContext } from '.'
@ -80,7 +81,7 @@ describe('Toast', () => {
const CustomToastContext = React.createContext({ notify: noop, close: undefined }) const CustomToastContext = React.createContext({ notify: noop, close: undefined })
// Create a wrapper component using the custom context // Create a wrapper component using the custom context
const Wrapper = ({ children }: any) => ( const Wrapper = ({ children }: { children: ReactNode }) => (
<CustomToastContext.Provider value={{ notify: noop, close: undefined }}> <CustomToastContext.Provider value={{ notify: noop, close: undefined }}>
{children} {children}
</CustomToastContext.Provider> </CustomToastContext.Provider>

View File

@ -15,6 +15,7 @@ import { RETRIEVE_METHOD } from '@/types/app'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
import Divider from '@/app/components/base/divider' import Divider from '@/app/components/base/divider'
import { ToastContext } from '@/app/components/base/toast' import { ToastContext } from '@/app/components/base/toast'
import type { IndexingStatusResponse } from '@/models/datasets'
import { ProcessMode, type ProcessRuleResponse } from '@/models/datasets' import { ProcessMode, type ProcessRuleResponse } from '@/models/datasets'
import type { CommonResponse } from '@/models/common' import type { CommonResponse } from '@/models/common'
import { asyncRunSafe, sleep } from '@/utils' import { asyncRunSafe, sleep } from '@/utils'
@ -166,7 +167,7 @@ const EmbeddingDetail: FC<IEmbeddingDetailProps> = ({
const localDatasetId = dstId ?? datasetId const localDatasetId = dstId ?? datasetId
const localDocumentId = docId ?? documentId const localDocumentId = docId ?? documentId
const [indexingStatusDetail, setIndexingStatusDetail] = useState<any>(null) const [indexingStatusDetail, setIndexingStatusDetail] = useState<IndexingStatusResponse | null>(null)
const fetchIndexingStatus = async () => { const fetchIndexingStatus = async () => {
const status = await doFetchIndexingStatus({ datasetId: localDatasetId, documentId: localDocumentId }) const status = await doFetchIndexingStatus({ datasetId: localDatasetId, documentId: localDocumentId })
setIndexingStatusDetail(status) setIndexingStatusDetail(status)

View File

@ -1,3 +1,4 @@
import type { ChangeEvent } from 'react'
import React, { useState } from 'react' import React, { useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { import {
@ -58,7 +59,7 @@ const TextAreaWithButton = ({
setIsSettingsOpen(false) setIsSettingsOpen(false)
} }
function handleTextChange(event: any) { function handleTextChange(event: ChangeEvent<HTMLTextAreaElement>) {
setText(event.target.value) setText(event.target.value)
} }

View File

@ -67,7 +67,7 @@ const CardWrapper = ({
{ {
isShowInstallFromMarketplace && ( isShowInstallFromMarketplace && (
<InstallFromMarketplace <InstallFromMarketplace
manifest={plugin as any} manifest={plugin}
uniqueIdentifier={plugin.latest_package_identifier} uniqueIdentifier={plugin.latest_package_identifier}
onClose={hideInstallFromMarketplace} onClose={hideInstallFromMarketplace}
onSuccess={hideInstallFromMarketplace} onSuccess={hideInstallFromMarketplace}

View File

@ -108,7 +108,7 @@ const EndpointCard = ({
Toast.notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) Toast.notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') })
}, },
}) })
const handleUpdate = (state: any) => updateEndpoint({ const handleUpdate = (state: Record<string, any>) => updateEndpoint({
endpointID, endpointID,
state, state,
}) })

View File

@ -55,7 +55,7 @@ const EndpointList = ({ detail }: Props) => {
}, },
}) })
const handleCreate = (state: any) => createEndpoint({ const handleCreate = (state: Record<string, any>) => createEndpoint({
pluginUniqueID, pluginUniqueID,
state, state,
}) })

View File

@ -245,7 +245,7 @@ const ReasoningConfigForm: React.FC<Props> = ({
popupClassName='!w-[387px]' popupClassName='!w-[387px]'
isAdvancedMode isAdvancedMode
isInWorkflow isInWorkflow
value={varInput as any} value={varInput}
setModel={handleModelChange(variable)} setModel={handleModelChange(variable)}
scope={scope} scope={scope}
/> />

View File

@ -83,7 +83,7 @@ const ProviderCard: FC<Props> = ({
{ {
isShowInstallFromMarketplace && ( isShowInstallFromMarketplace && (
<InstallFromMarketplace <InstallFromMarketplace
manifest={payload as any} manifest={payload}
uniqueIdentifier={payload.latest_package_identifier} uniqueIdentifier={payload.latest_package_identifier}
onClose={hideInstallFromMarketplace} onClose={hideInstallFromMarketplace}
onSuccess={() => hideInstallFromMarketplace()} onSuccess={() => hideInstallFromMarketplace()}

View File

@ -218,7 +218,7 @@ const Result: FC<IResultProps> = ({
...data, ...data,
status: NodeRunningStatus.Running, status: NodeRunningStatus.Running,
expand: true, expand: true,
} as any) })
})) }))
}, },
onIterationNext: () => { onIterationNext: () => {
@ -237,7 +237,7 @@ const Result: FC<IResultProps> = ({
draft.tracing[iterationsIndex] = { draft.tracing[iterationsIndex] = {
...data, ...data,
expand: !!data.error, expand: !!data.error,
} as any }
})) }))
}, },
onLoopStart: ({ data }) => { onLoopStart: ({ data }) => {
@ -247,7 +247,7 @@ const Result: FC<IResultProps> = ({
...data, ...data,
status: NodeRunningStatus.Running, status: NodeRunningStatus.Running,
expand: true, expand: true,
} as any) })
})) }))
}, },
onLoopNext: () => { onLoopNext: () => {
@ -266,7 +266,7 @@ const Result: FC<IResultProps> = ({
draft.tracing[loopsIndex] = { draft.tracing[loopsIndex] = {
...data, ...data,
expand: !!data.error, expand: !!data.error,
} as any }
})) }))
}, },
onNodeStarted: ({ data }) => { onNodeStarted: ({ data }) => {
@ -282,7 +282,7 @@ const Result: FC<IResultProps> = ({
...data, ...data,
status: NodeRunningStatus.Running, status: NodeRunningStatus.Running,
expand: true, expand: true,
} as any) })
})) }))
}, },
onNodeFinished: ({ data }) => { onNodeFinished: ({ data }) => {
@ -302,7 +302,7 @@ const Result: FC<IResultProps> = ({
: {}), : {}),
...data, ...data,
expand: !!data.error, expand: !!data.error,
} as any }
} }
})) }))
}, },

View File

@ -78,7 +78,7 @@ export const generateFormValue = (value: Record<string, any>, formSchemas: { var
} }
export const getPlainValue = (value: Record<string, any>) => { export const getPlainValue = (value: Record<string, any>) => {
const plainValue = { ...value } as any const plainValue = { ...value }
Object.keys(plainValue).forEach((key) => { Object.keys(plainValue).forEach((key) => {
plainValue[key] = value[key].value plainValue[key] = value[key].value
}) })

View File

@ -55,7 +55,7 @@ const Blocks = ({
} }
} }
*/ */
const { letters, groups: withLetterAndGroupViewToolsData } = groupItems(tools, tool => (tool as any).label[language][0]) const { letters, groups: withLetterAndGroupViewToolsData } = groupItems(tools, tool => tool.label[language][0])
const treeViewToolsData = useMemo(() => { const treeViewToolsData = useMemo(() => {
const result: Record<string, ToolWithProvider[]> = {} const result: Record<string, ToolWithProvider[]> = {}
Object.keys(withLetterAndGroupViewToolsData).forEach((letter) => { Object.keys(withLetterAndGroupViewToolsData).forEach((letter) => {

View File

@ -59,7 +59,7 @@ export const useWorkflowNodeFinished = () => {
incomeEdges.forEach((edge) => { incomeEdges.forEach((edge) => {
edge.data = { edge.data = {
...edge.data, ...edge.data,
_targetRunningStatus: data.status as any, _targetRunningStatus: data.status,
} }
}) })
}) })

View File

@ -47,7 +47,7 @@ export const useWorkflowNodeIterationFinished = () => {
incomeEdges.forEach((edge) => { incomeEdges.forEach((edge) => {
edge.data = { edge.data = {
...edge.data, ...edge.data,
_targetRunningStatus: data.status as any, _targetRunningStatus: data.status,
} }
}) })
}) })

View File

@ -44,7 +44,7 @@ export const useWorkflowNodeLoopFinished = () => {
incomeEdges.forEach((edge) => { incomeEdges.forEach((edge) => {
edge.data = { edge.data = {
...edge.data, ...edge.data,
_targetRunningStatus: data.status as any, _targetRunningStatus: data.status,
} }
}) })
}) })

View File

@ -106,7 +106,7 @@ const Panel: FC<NodePanelProps<DocExtractorNodeType>> = ({
required: true, required: true,
}], }],
values: { files }, values: { files },
onChange: keyValue => setFiles((keyValue as any).files), onChange: keyValue => setFiles(keyValue.files),
}, },
]} ]}
runningStatus={runningStatus} runningStatus={runningStatus}

View File

@ -155,7 +155,7 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
required: false, required: false,
}], }],
values: { [iteratorInputKey]: iterator }, values: { [iteratorInputKey]: iterator },
onChange: keyValue => setIterator((keyValue as any)[iteratorInputKey]), onChange: keyValue => setIterator(keyValue[iteratorInputKey]),
}, },
]} ]}
runningStatus={runningStatus} runningStatus={runningStatus}

View File

@ -84,7 +84,7 @@ const RetrievalConfig: FC<Props> = ({
model: configs.reranking_model?.reranking_model_name, model: configs.reranking_model?.reranking_model_name,
}), }),
reranking_mode: configs.reranking_mode, reranking_mode: configs.reranking_mode,
weights: configs.weights as any, weights: configs.weights,
reranking_enable: configs.reranking_enable, reranking_enable: configs.reranking_enable,
}) })
}, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange]) }, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange])

View File

@ -202,7 +202,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
required: true, required: true,
}], }],
values: { query }, values: { query },
onChange: keyValue => setQuery((keyValue as any).query), onChange: keyValue => setQuery(keyValue.query),
}, },
]} ]}
runningStatus={runningStatus} runningStatus={runningStatus}

View File

@ -98,7 +98,7 @@ const Panel: FC<NodePanelProps<LLMNodeType>> = ({
required: false, required: false,
}], }],
values: { '#context#': contexts }, values: { '#context#': contexts },
onChange: keyValue => setContexts((keyValue as any)['#context#']), onChange: keyValue => setContexts(keyValue['#context#']),
}, },
) )
} }

View File

@ -59,7 +59,7 @@ const ImportFromTool: FC<Props> = ({
})() })()
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id)) const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
const currTool = currCollection?.tools.find(tool => tool.name === tool_name) const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
const toExactParams = (currTool?.parameters || []).filter((item: any) => item.form === 'llm') const toExactParams = (currTool?.parameters || []).filter(item => item.form === 'llm')
const formattedParams = toParmExactParams(toExactParams, language) const formattedParams = toParmExactParams(toExactParams, language)
onImport(formattedParams) onImport(formattedParams)
}, [buildInTools, customTools, language, onImport, workflowTools]) }, [buildInTools, customTools, language, onImport, workflowTools])

View File

@ -90,7 +90,7 @@ const Panel: FC<NodePanelProps<QuestionClassifierNodeType>> = ({
required: false, required: false,
}], }],
values: { '#files#': visionFiles }, values: { '#files#': visionFiles },
onChange: keyValue => setVisionFiles((keyValue as any)['#files#']), onChange: keyValue => setVisionFiles(keyValue['#files#']),
}, },
) )
} }

View File

@ -117,7 +117,7 @@ const WorkflowPreview = () => {
<ResultText <ResultText
isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result} isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result}
outputs={workflowRunningData?.resultText} outputs={workflowRunningData?.resultText}
allFiles={workflowRunningData?.result?.files as any} allFiles={workflowRunningData?.result?.files}
error={workflowRunningData?.result?.error} error={workflowRunningData?.result?.error}
onClick={() => switchTab('DETAIL')} onClick={() => switchTab('DETAIL')}
/> />

View File

@ -7,10 +7,10 @@ describe('loop', () => {
const [startNode, loopNode, ...loops] = list const [startNode, loopNode, ...loops] = list
const result = format(list as any, noop) const result = format(list as any, noop)
test('result should have no nodes in loop node', () => { test('result should have no nodes in loop node', () => {
expect((result as any).find((item: any) => !!item.execution_metadata?.loop_id)).toBeUndefined() expect(result.find(item => !!item.execution_metadata?.loop_id)).toBeUndefined()
}) })
test('loop should put nodes in details', () => { test('loop should put nodes in details', () => {
expect(result as any).toEqual([ expect(result).toEqual([
startNode, startNode,
{ {
...loopNode, ...loopNode,

View File

@ -7,7 +7,7 @@ describe('retry', () => {
const [startNode, retryNode, ...retryDetail] = steps const [startNode, retryNode, ...retryDetail] = steps
const result = format(steps as any) const result = format(steps as any)
test('should have no retry status nodes', () => { test('should have no retry status nodes', () => {
expect(result.find(item => (item as any).status === 'retry')).toBeUndefined() expect(result.find(item => item.status === 'retry')).toBeUndefined()
}) })
test('should put retry nodes in retryDetail', () => { test('should put retry nodes in retryDetail', () => {
expect(result).toEqual([ expect(result).toEqual([

View File

@ -20,8 +20,8 @@ export const getToolCheckParams = (
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id)) const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
const currTool = currCollection?.tools.find(tool => tool.name === tool_name) const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : [] const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
const toolInputVarSchema = formSchemas.filter((item: any) => item.form === 'llm') const toolInputVarSchema = formSchemas.filter(item => item.form === 'llm')
const toolSettingSchema = formSchemas.filter((item: any) => item.form !== 'llm') const toolSettingSchema = formSchemas.filter(item => item.form !== 'llm')
return { return {
toolInputsSchema: (() => { toolInputsSchema: (() => {

View File

@ -1,3 +1,4 @@
import type { ChangeEventHandler } from 'react'
import { import {
useCallback, useCallback,
useRef, useRef,
@ -49,7 +50,7 @@ const SearchInput = ({
}) })
}, [querySchoolsWithDebounced, handleUpdateSchools]) }, [querySchoolsWithDebounced, handleUpdateSchools])
const handleValueChange = useCallback((e: any) => { const handleValueChange: ChangeEventHandler<HTMLInputElement> = useCallback((e) => {
setOpen(true) setOpen(true)
setSchools([]) setSchools([])
pageRef.current = 0 pageRef.current = 0

View File

@ -43,7 +43,7 @@ describe('asyncRunSafe', () => {
}) })
describe('getTextWidthWithCanvas', () => { describe('getTextWidthWithCanvas', () => {
let originalCreateElement: any let originalCreateElement: typeof document.createElement
beforeEach(() => { beforeEach(() => {
// Store original implementation // Store original implementation
@ -231,8 +231,8 @@ describe('canFindTool', () => {
}) })
describe('removeSpecificQueryParam', () => { describe('removeSpecificQueryParam', () => {
let originalLocation: any let originalLocation: Location
let originalReplaceState: any let originalReplaceState: typeof window.history.replaceState
beforeEach(() => { beforeEach(() => {
originalLocation = window.location originalLocation = window.location