@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
113 lines • 2.6 kB
TypeScript
/**
* Type definitions for interactive configuration navigation
*/
import { ServerInfo, ApplicationStatus, ToolsetInfo } from "../show.js";
import { ServerConfigGroup } from "../../../db/interfaces.js";
/**
* Navigation view types
*/
export declare enum ViewType {
MAIN_MENU = "main_menu",
SERVERS_LIST = "servers_list",
SERVER_DETAIL = "server_detail",
APPLICATIONS_LIST = "applications_list",
APPLICATION_DETAIL = "application_detail",
GROUPS_LIST = "groups_list",
GROUP_DETAIL = "group_detail",
TOOLSETS_LIST = "toolsets_list",
TOOLSET_DETAIL = "toolset_detail",
TOOL_DETAIL = "tool_detail"
}
/**
* Navigation state for managing the view stack
*/
export interface NavigationState {
viewType: ViewType;
breadcrumb: string[];
data?: unknown;
selectedItem?: unknown;
}
/**
* Configuration data collected for the interactive session
*/
export interface ConfigurationData {
servers: ServerInfo[];
applications: ApplicationStatus[];
toolsets: ToolsetInfo[];
groups?: ServerConfigGroup[];
configPath: string;
linkedApp?: string;
}
/**
* Interactive menu action types
*/
export declare enum MenuAction {
SELECT = "select",
BACK = "back",
EXIT = "exit",
REFRESH = "refresh",
EXPORT_JSON = "export_json",
EXPORT_YAML = "export_yaml",
FILTER = "filter",
SEARCH = "search",
NEXT_PAGE = "next_page",
PREV_PAGE = "prev_page",
COPY_TO_CLIPBOARD = "copy"
}
/**
* Menu choice for inquirer
*/
export interface MenuChoice {
name: string;
value: unknown;
short?: string;
disabled?: boolean | string;
}
/**
* Filter options for server list
*/
export interface ServerFilterOptions {
transportType?: "all" | "stdio" | "http" | "sse" | "websocket";
healthStatus?: "all" | "healthy" | "unhealthy";
source?: string;
}
/**
* Summary statistics for the main menu
*/
export interface SummaryStats {
servers: {
total: number;
healthy: number;
byType: Record<string, number>;
};
applications: {
total: number;
installed: number;
linked: number;
};
groups?: {
total: number;
active: number;
};
toolsets: {
total: number;
inUse: number;
};
}
/**
* Interactive session options
*/
export interface InteractiveOptions {
json?: boolean;
yaml?: boolean;
pageSize?: number;
enableSearch?: boolean;
}
/**
* Export format types
*/
export declare enum ExportFormat {
JSON = "json",
YAML = "yaml"
}
//# sourceMappingURL=types.d.ts.map