first commit
This commit is contained in:
137
web/src/types.ts
Normal file
137
web/src/types.ts
Normal file
@@ -0,0 +1,137 @@
|
||||
// MCP 客户端相关类型定义
|
||||
|
||||
export type RouteKey =
|
||||
| 'chat'
|
||||
| 'tools'
|
||||
| 'data'
|
||||
| 'model-providers'
|
||||
| 'display-settings'
|
||||
| 'mcp'
|
||||
|
||||
export interface MCPServerConfig {
|
||||
id: string
|
||||
name: string
|
||||
url: string
|
||||
type: 'http' | 'sse' | 'websocket'
|
||||
description?: string
|
||||
enabled: boolean
|
||||
status: 'connected' | 'disconnected' | 'connecting' | 'error'
|
||||
capabilities?: {
|
||||
tools?: Array<{ name: string; description?: string; inputSchema?: any; enabled?: boolean; autoApprove?: boolean }>
|
||||
prompts?: Array<{ name: string; description?: string; arguments?: Array<{ name: string }> }>
|
||||
resources?: Array<{ name: string; description?: string; uri: string; mimeType?: string }>
|
||||
}
|
||||
headers?: Array<{ key: string; value: string }>
|
||||
lastConnected?: string
|
||||
error?: string
|
||||
version?: string
|
||||
}
|
||||
|
||||
export interface MCPTool {
|
||||
serverId: string
|
||||
serverName: string
|
||||
name: string
|
||||
description?: string
|
||||
inputSchema?: any
|
||||
}
|
||||
|
||||
export interface MCPResource {
|
||||
serverId: string
|
||||
serverName: string
|
||||
uri: string
|
||||
name: string
|
||||
description?: string
|
||||
mimeType?: string
|
||||
}
|
||||
|
||||
export interface MCPPrompt {
|
||||
serverId: string
|
||||
serverName: string
|
||||
name: string
|
||||
description?: string
|
||||
arguments?: Array<{
|
||||
name: string
|
||||
description?: string
|
||||
required?: boolean
|
||||
}>
|
||||
}
|
||||
|
||||
export interface ModelProvider {
|
||||
id: string
|
||||
name: string
|
||||
type: 'openai' | 'claude' | 'google' | 'ollama' | 'custom'
|
||||
apiKey?: string
|
||||
baseUrl?: string
|
||||
models: string[]
|
||||
defaultModel?: string
|
||||
enabled: boolean
|
||||
maxTokens?: number
|
||||
temperature?: number
|
||||
timeout?: number
|
||||
description?: string
|
||||
usage?: {
|
||||
requestCount: number
|
||||
tokenCount: number
|
||||
errorCount: number
|
||||
lastUsed?: string
|
||||
}
|
||||
}
|
||||
|
||||
export interface DisplaySettings {
|
||||
theme: 'light' | 'dark' | 'auto'
|
||||
primaryColor: string
|
||||
backgroundMaterial: 'default' | 'glass' | 'acrylic' | 'solid'
|
||||
language: 'zh-CN' | 'en-US' | 'ja-JP' | 'ko-KR' | 'fr-FR' | 'es-ES'
|
||||
fontSize: number
|
||||
fontFamily: string
|
||||
lineHeight: number
|
||||
borderRadius: number
|
||||
compactMode: boolean
|
||||
animations: {
|
||||
enabled: boolean
|
||||
duration: number
|
||||
easing: string
|
||||
}
|
||||
sidebar: {
|
||||
width: number
|
||||
collapsed: boolean
|
||||
position: 'left' | 'right'
|
||||
}
|
||||
layout: {
|
||||
maxWidth: number
|
||||
padding: number
|
||||
gap: number
|
||||
}
|
||||
accessibility: {
|
||||
highContrast: boolean
|
||||
reduceMotion: boolean
|
||||
focusVisible: boolean
|
||||
}
|
||||
advanced: {
|
||||
enableGpu: boolean
|
||||
maxHistoryItems: number
|
||||
autoSave: boolean
|
||||
debugMode: boolean
|
||||
}
|
||||
}
|
||||
|
||||
export interface ToolExecution {
|
||||
id: string
|
||||
toolName: string
|
||||
serverId: string
|
||||
parameters: Record<string, any>
|
||||
status: 'pending' | 'running' | 'completed' | 'error'
|
||||
startTime: string
|
||||
endTime?: string
|
||||
result?: any
|
||||
error?: string
|
||||
}
|
||||
|
||||
export interface NotificationMessage {
|
||||
id: string
|
||||
type: 'success' | 'error' | 'warning' | 'info'
|
||||
title: string
|
||||
content?: string
|
||||
duration?: number
|
||||
timestamp: string
|
||||
}
|
||||
Reference in New Issue
Block a user