UNPKG

@xcud/remote-commander

Version:

MCP server for remote file operations via REST API

110 lines (109 loc) 2.62 kB
export interface HttpClientConfig { serverUrl: string; authUrl?: string; authToken: string; basePath: string; username?: string; password?: string; } export interface ApiResponse<T> { success: boolean; data?: T; error?: string; } export interface FileReadRequest { path: string; offset?: number; length?: number; isUrl?: boolean; } export interface FileWriteRequest { path: string; content: string; mode?: 'rewrite' | 'append'; } export interface DirectoryListRequest { path: string; } export interface FileSearchRequest { path: string; pattern: string; timeoutMs?: number; } export interface CodeSearchRequest { path: string; pattern: string; contextLines?: number; filePattern?: string; ignoreCase?: boolean; includeHidden?: boolean; maxResults?: number; timeoutMs?: number; } export interface CreateDirectoryRequest { path: string; } export interface GetFileInfoRequest { path: string; } export interface EditBlockRequest { file_path: string; old_string: string; new_string: string; expected_replacements?: number; } /** * HTTP client for communicating with lit-server API */ export declare class HttpClient { private config; /** * Initialize HTTP client with configuration */ init(): Promise<void>; /** * Authenticate with Keycloak to get bearer token */ private authenticate; /** * Validate that path is within allowed basePath */ private validatePath; /** * Make HTTP request to API */ private makeRequest; /** * Read file via API */ readFile(request: FileReadRequest): Promise<ApiResponse<string>>; /** * Write file via API */ writeFile(request: FileWriteRequest): Promise<ApiResponse<void>>; /** * List directory via API */ listDirectory(request: DirectoryListRequest): Promise<ApiResponse<string[]>>; /** * Search files via API */ searchFiles(request: FileSearchRequest): Promise<ApiResponse<string[]>>; /** * Search code via API */ searchCode(request: CodeSearchRequest): Promise<ApiResponse<any>>; /** * Create directory via API */ createDirectory(request: CreateDirectoryRequest): Promise<ApiResponse<void>>; /** * Get file info via API */ getFileInfo(request: GetFileInfoRequest): Promise<ApiResponse<any>>; /** * Edit block via API */ editBlock(request: EditBlockRequest): Promise<ApiResponse<any>>; } export declare const httpClient: HttpClient;