@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
39 lines • 1.8 kB
JavaScript
/**
* Refresh Extensions Command
*/
import { Command } from "commander";
import { ExtensionManager } from "../../extensions/index.js";
export function extensionsRefresh() {
return new Command("refresh")
.description("Refresh all extensions (re-unpack if source files are newer)")
.option("--config <path>", "Path to configuration file")
.option("--extensions-dir <path>", "Path to extensions directory")
.action(async (options) => {
try {
const extensionManager = new ExtensionManager(options.config, options.extensionsDir);
await extensionManager.initialize();
console.log("Refreshing extensions...");
await extensionManager.refreshExtensions();
const extensions = extensionManager.listExtensions();
console.log(`✓ Refreshed ${extensions.length} extensions`);
// Show any validation issues
const invalid = extensions.filter((e) => e.enabled && !e.valid);
if (invalid.length > 0) {
console.log();
console.warn(`⚠ ${invalid.length} extension(s) have configuration issues:`);
invalid.forEach((ext) => {
console.warn(` - ${ext.name}: ${ext.errors.join(", ")}`);
});
}
const enabled = extensions.filter((e) => e.enabled && e.valid).length;
const disabled = extensions.filter((e) => !e.enabled).length;
console.log();
console.log(`Summary: ${enabled} enabled, ${disabled} disabled, ${invalid.length} invalid`);
}
catch (error) {
console.error(`Failed to refresh extensions: ${error.message}`);
process.exit(1);
}
});
}
//# sourceMappingURL=refresh.js.map