feat: the frontend part of mcp (#22131)

Co-authored-by: jZonG <jzongcode@gmail.com>
Co-authored-by: Novice <novice12185727@gmail.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
This commit is contained in:
Joel
2025-07-10 14:14:02 +08:00
committed by GitHub
parent 535fff62f3
commit 5375d9bb27
152 changed files with 6340 additions and 695 deletions

View File

@@ -1,3 +1,5 @@
import type { SchemaRoot } from '@/app/components/workflow/nodes/llm/types'
export type FormValue = Record<string, any>
export type TypeWithI18N<T = string> = {
@@ -19,6 +21,8 @@ export enum FormTypeEnum {
toolSelector = 'tool-selector',
multiToolSelector = 'array[tools]',
appSelector = 'app-selector',
object = 'object',
array = 'array',
dynamicSelect = 'dynamic-select',
}
@@ -109,6 +113,7 @@ export type FormShowOnObject = {
}
export type CredentialFormSchemaBase = {
name: string
variable: string
label: TypeWithI18N
type: FormTypeEnum
@@ -118,6 +123,7 @@ export type CredentialFormSchemaBase = {
show_on: FormShowOnObject[]
url?: string
scope?: string
input_schema?: SchemaRoot
}
export type CredentialFormSchemaTextInput = CredentialFormSchemaBase & {

View File

@@ -54,6 +54,7 @@ type FormProps<
nodeId?: string
nodeOutputVars?: NodeOutPutVar[],
availableNodes?: Node[],
canChooseMCPTool?: boolean
}
function Form<
@@ -79,6 +80,7 @@ function Form<
nodeId,
nodeOutputVars,
availableNodes,
canChooseMCPTool,
}: FormProps<CustomFormSchema>) {
const language = useLanguage()
const [changeKey, setChangeKey] = useState('')
@@ -377,6 +379,7 @@ function Form<
value={value[variable] || []}
onChange={item => handleFormChange(variable, item as any)}
supportCollapse
canChooseMCPTool={canChooseMCPTool}
/>
{fieldMoreInfo?.(formSchema)}
{validating && changeKey === variable && <ValidatingTip />}