UNPKG

@monitoro/herd

Version:

Automate your browser, build AI web tools and MCP servers with Monitoro Herd

114 lines (113 loc) 2.87 kB
import { HerdClient } from "../HerdClient.js"; import cors from "cors"; export interface TrailServerTransportConfig { type: "http" | "mcp-stdio" | "mcp-sse"; port?: number; path?: string; cors?: boolean | cors.CorsOptions; } export interface TrailServerOptions { name: string; version: string; description?: string; transports: TrailServerTransportConfig[]; trails: string[]; autoBuild?: boolean; silent?: boolean; cacheEnabled?: boolean; includeOrgPrefix?: boolean; abridge?: boolean; maxResponseLength?: number; } export declare class TrailServer { private client; private mcpServer; private transports; private trails; private expressApp?; private httpServer?; private sseTransport?; private stdioTransport?; private autoBuild; private silent; private cacheEnabled; private includeOrgPrefix; private usingStdioTransport; private abridge; private maxResponseLength; private toolNameMappings; private loadedTrails; private logDir; private outputLogPath; private errorLogPath; constructor(client: HerdClient, options: TrailServerOptions); /** * Check if transports include mcp-stdio */ private hasStdioTransport; /** * Setup log directory and files */ private setupLogDirectory; /** * Append a log entry to a log file, respecting size limits */ private logToFile; /** * Truncate log file if it exceeds the maximum size */ private truncateLogIfNeeded; /** * Safe logging that respects silent mode and stdio transport */ private log; /** * Error logging that respects stdio transport * (errors should be logged unless using stdio transport) */ private logError; /** * Load a trail and convert its actions to MCP tools */ private loadTrailAndRegisterTools; /** * Register a trail action as an MCP tool */ private registerActionAsTool; /** * Initialize HTTP transport */ private initializeHttpTransport; /** * Initialize MCP STDIO transport */ private initializeMcpStdioTransport; /** * Initialize MCP SSE transport */ private initializeMcpSseTransport; /** * Start the trail server */ start(): Promise<void>; /** * Stop the trail server */ stop(): Promise<void>; /** * Check if a path is a local trail directory */ private isLocalTrailDirectory; /** * Calculate the total text length in a response */ private calculateTextLength; /** * Abridge content recursively to fit within the limit */ private abridgeContent; /** * Process response to ensure it fits within the limit */ private processResponseForSizeLimit; }