mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-04-18 19:41:31 +00:00
- Add provider registry to manage LLM providers (Claude, Codex, Cursor, Gemini). - Create provider routes for MCP server operations (list, upsert, delete, run). - Implement MCP service for handling server operations and validations. - Introduce abstract provider class and MCP provider base for shared functionality. - Add tests for MCP server operations across different providers and scopes. - Define shared interfaces and types for MCP functionality. - Implement utility functions for handling JSON config files and API responses.
71 lines
1.7 KiB
TypeScript
71 lines
1.7 KiB
TypeScript
// -------------- HTTP API response shapes for the server, shared across modules --------------
|
|
|
|
export type ApiSuccessShape<TData = unknown> = {
|
|
success: true;
|
|
data: TData;
|
|
};
|
|
|
|
export type ApiErrorShape = {
|
|
success: false;
|
|
error: {
|
|
code: string;
|
|
message: string;
|
|
details?: unknown;
|
|
};
|
|
};
|
|
|
|
// ---------------------------------------------------------------------------------------------
|
|
|
|
export type LLMProvider = 'claude' | 'codex' | 'gemini' | 'cursor';
|
|
|
|
// ---------------------------------------------------------------------------------------------
|
|
|
|
export type AppErrorOptions = {
|
|
code?: string;
|
|
statusCode?: number;
|
|
details?: unknown;
|
|
};
|
|
|
|
// -------------------- MCP related shared types --------------------
|
|
export type McpScope = 'user' | 'local' | 'project';
|
|
|
|
export type McpTransport = 'stdio' | 'http' | 'sse';
|
|
|
|
/**
|
|
* Provider MCP server descriptor normalized for frontend consumption.
|
|
*/
|
|
export type ProviderMcpServer = {
|
|
provider: LLMProvider;
|
|
name: string;
|
|
scope: McpScope;
|
|
transport: McpTransport;
|
|
command?: string;
|
|
args?: string[];
|
|
env?: Record<string, string>;
|
|
cwd?: string;
|
|
url?: string;
|
|
headers?: Record<string, string>;
|
|
envVars?: string[];
|
|
bearerTokenEnvVar?: string;
|
|
envHttpHeaders?: Record<string, string>;
|
|
};
|
|
|
|
/**
|
|
* Shared payload shape for MCP server create/update operations.
|
|
*/
|
|
export type UpsertProviderMcpServerInput = {
|
|
name: string;
|
|
scope?: McpScope;
|
|
transport: McpTransport;
|
|
workspacePath?: string;
|
|
command?: string;
|
|
args?: string[];
|
|
env?: Record<string, string>;
|
|
cwd?: string;
|
|
url?: string;
|
|
headers?: Record<string, string>;
|
|
envVars?: string[];
|
|
bearerTokenEnvVar?: string;
|
|
envHttpHeaders?: Record<string, string>;
|
|
};
|