UNPKG

standalone-toolbar-service

Version:

独立的Stagewise工具栏服务 - 支持SRPC通信和WebSocket广播,可与MCP反馈收集器集成

54 lines (53 loc) 1.88 kB
import type { Server } from 'node:http'; export type WebSocketMessageType = 'request' | 'response' | 'update' | 'error'; export interface BaseWebSocketMessage { id: string; messageType: WebSocketMessageType; method?: string; } export interface RequestMessage<T = any> extends BaseWebSocketMessage { messageType: 'request'; method: string; payload: T; } export interface ResponseMessage<T = any> extends BaseWebSocketMessage { messageType: 'response'; method: string; payload: T; } export interface UpdateMessage<T = any> extends BaseWebSocketMessage { messageType: 'update'; method: string; payload: T; } export interface ErrorMessage extends BaseWebSocketMessage { messageType: 'error'; error: { message: string; code?: string; }; } export type WebSocketMessage<T = any> = RequestMessage<T> | ResponseMessage<T> | UpdateMessage<T> | ErrorMessage; export type RpcMethodHandler<TRequest, TResponse, TUpdate> = (request: TRequest, sendUpdate: (update: TUpdate) => void) => Promise<TResponse>; export interface RpcMethodDefinition<TRequest, TResponse, TUpdate> { handler: RpcMethodHandler<TRequest, TResponse, TUpdate>; } export type RpcMethods = Record<string, RpcMethodDefinition<any, any, any>>; export declare class SRPCWebSocketBridge { private wss; private connections; private methods; constructor(server: Server); register<T extends Record<string, RpcMethodHandler<any, any, any>>>(methodHandlers: T): void; private setupWebSocketHandlers; private handleMessage; private handleRequest; private sendResponse; private sendUpdate; private sendError; isConnected(): boolean; getConnectionCount(): number; getRegisteredMethods(): string[]; close(): void; } export declare function createSRPCBridge(server: Server): SRPCWebSocketBridge;