@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
88 lines • 2.52 kB
TypeScript
/**
* Extension Discovery Service
* Handles auto-discovery, unpacking, and validation of DXT extensions
*/
import { ExtensionMetadata, HypertoolConfig, ExtensionRuntimeConfig } from "../config/dxt-config.js";
/**
* Extension discovery and management service
*/
export declare class ExtensionDiscoveryService {
private readonly extensionsDir;
private readonly installedDir;
private readonly metadataFile;
private metadata;
constructor(baseDir?: string);
/**
* Initialize the extensions directory structure
*/
initialize(): Promise<void>;
/**
* Discover all DXT files in the extensions directory
*/
discoverExtensions(): Promise<string[]>;
/**
* Discover already-installed extensions in the installed directory
*/
discoverInstalledExtensions(): Promise<string[]>;
/**
* Check if an extension needs to be unpacked or re-unpacked
*/
needsUnpacking(dxtPath: string): Promise<boolean>;
/**
* Unpack a DXT extension to the installed directory
*/
unpackExtension(dxtPath: string): Promise<ExtensionMetadata>;
/**
* Get extension metadata by filename (without .dxt extension)
*/
getExtensionMetadata(filename: string): ExtensionMetadata | undefined;
/**
* Get all extension metadata
*/
getAllMetadata(): Record<string, ExtensionMetadata>;
/**
* Load runtime configurations for all extensions
*/
loadExtensionConfigs(config: HypertoolConfig): Promise<ExtensionRuntimeConfig[]>;
/**
* Validate extension configuration against manifest user_config schema
*/
private validateExtensionConfig;
/**
* Validate parameter type
*/
private validateParameterType;
/**
* Validate single value type
*/
private validateSingleType;
/**
* Build server configuration with template substitution
*/
private buildServerConfig;
/**
* Substitute template variables in environment variables
*/
private substituteTemplates;
/**
* Substitute template variables in a string
*/
private substituteTemplateString;
/**
* Extract DXT to installed directory instead of temp
*/
private extractToInstalled;
/**
* Remove directory recursively
*/
private removeDirectory;
/**
* Load metadata from file
*/
private loadMetadata;
/**
* Save metadata to file
*/
private saveMetadata;
}
//# sourceMappingURL=discovery.d.ts.map