@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
83 lines • 2.33 kB
TypeScript
/**
* Hashing utilities for tool identity and change detection
*/
import { DiscoveredTool, MCPToolDefinition, ToolChangeInfo } from "./types.js";
/**
* Tool hash utility class
*/
export declare class ToolHashUtils {
/**
* Calculate tool hash for identity and change detection
*/
static calculateToolHash(tool: DiscoveredTool | MCPToolDefinition, serverName?: string): string;
/**
* Calculate hash for a list of tools (server tools hash)
*/
static calculateServerToolsHash(tools: DiscoveredTool[]): string;
/**
* Compare tools and detect changes
*/
static detectToolChanges(previousTools: DiscoveredTool[], currentTools: DiscoveredTool[]): ToolChangeInfo[];
/**
* Create tool with hash from MCP tool definition
*/
static createHashedTool(toolDef: MCPToolDefinition, serverName: string, namespacedName: string): DiscoveredTool;
/**
* Update tool hash after modification
*/
static updateToolHash(tool: DiscoveredTool): DiscoveredTool;
/**
* Get summary of tool changes
*/
static summarizeChanges(changes: ToolChangeInfo[]): {
added: number;
updated: number;
removed: number;
unchanged: number;
total: number;
};
/**
* Hash an object to a hex string
*/
private static hashObject;
}
/**
* Tool hash manager for tracking tool changes over time
*/
export declare class ToolHashManager {
private hashHistory;
private maxHistorySize;
/**
* Add tool hash to history
*/
addToHistory(tool: DiscoveredTool): void;
/**
* Get hash history for a tool
*/
getHistory(namespacedName: string): string[];
/**
* Check if tool has changed since last known version
*/
hasChanged(tool: DiscoveredTool): boolean;
/**
* Get tools that have changed
*/
getChangedTools(tools: DiscoveredTool[]): DiscoveredTool[];
/**
* Clear history for a tool
*/
clearHistory(namespacedName: string): void;
/**
* Clear all history
*/
clearAllHistory(): void;
/**
* Get statistics about hash history
*/
getStats(): {
totalTools: number;
averageHistorySize: number;
maxHistorySize: number;
};
}
//# sourceMappingURL=hashUtils.d.ts.map