This comprehensive implementation includes: - FastAPI backend with MCP server integration - React/TypeScript frontend with Vite - PostgreSQL database with Redis caching - Grafana/Prometheus monitoring stack - Docker Compose orchestration - Full MCP protocol support for Claude Code integration Features: - Agent discovery and management across network - Visual workflow editor and execution engine - Real-time task coordination and monitoring - Multi-model support with specialized agents - Distributed development task allocation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
75 lines
2.8 KiB
TypeScript
75 lines
2.8 KiB
TypeScript
import { IncomingMessage, ServerResponse } from "node:http";
|
|
import { Transport } from "../shared/transport.js";
|
|
import { JSONRPCMessage, MessageExtraInfo } from "../types.js";
|
|
import { AuthInfo } from "./auth/types.js";
|
|
/**
|
|
* Configuration options for SSEServerTransport.
|
|
*/
|
|
export interface SSEServerTransportOptions {
|
|
/**
|
|
* List of allowed host header values for DNS rebinding protection.
|
|
* If not specified, host validation is disabled.
|
|
*/
|
|
allowedHosts?: string[];
|
|
/**
|
|
* List of allowed origin header values for DNS rebinding protection.
|
|
* If not specified, origin validation is disabled.
|
|
*/
|
|
allowedOrigins?: string[];
|
|
/**
|
|
* Enable DNS rebinding protection (requires allowedHosts and/or allowedOrigins to be configured).
|
|
* Default is false for backwards compatibility.
|
|
*/
|
|
enableDnsRebindingProtection?: boolean;
|
|
}
|
|
/**
|
|
* Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
|
|
*
|
|
* This transport is only available in Node.js environments.
|
|
*/
|
|
export declare class SSEServerTransport implements Transport {
|
|
private _endpoint;
|
|
private res;
|
|
private _sseResponse?;
|
|
private _sessionId;
|
|
private _options;
|
|
onclose?: () => void;
|
|
onerror?: (error: Error) => void;
|
|
onmessage?: (message: JSONRPCMessage, extra?: MessageExtraInfo) => void;
|
|
/**
|
|
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
|
|
*/
|
|
constructor(_endpoint: string, res: ServerResponse, options?: SSEServerTransportOptions);
|
|
/**
|
|
* Validates request headers for DNS rebinding protection.
|
|
* @returns Error message if validation fails, undefined if validation passes.
|
|
*/
|
|
private validateRequestHeaders;
|
|
/**
|
|
* Handles the initial SSE connection request.
|
|
*
|
|
* This should be called when a GET request is made to establish the SSE stream.
|
|
*/
|
|
start(): Promise<void>;
|
|
/**
|
|
* Handles incoming POST messages.
|
|
*
|
|
* This should be called when a POST request is made to send a message to the server.
|
|
*/
|
|
handlePostMessage(req: IncomingMessage & {
|
|
auth?: AuthInfo;
|
|
}, res: ServerResponse, parsedBody?: unknown): Promise<void>;
|
|
/**
|
|
* Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
|
|
*/
|
|
handleMessage(message: unknown, extra?: MessageExtraInfo): Promise<void>;
|
|
close(): Promise<void>;
|
|
send(message: JSONRPCMessage): Promise<void>;
|
|
/**
|
|
* Returns the session ID for this transport.
|
|
*
|
|
* This can be used to route incoming POST requests.
|
|
*/
|
|
get sessionId(): string;
|
|
}
|
|
//# sourceMappingURL=sse.d.ts.map
|