@toolprint/hypertool-mcp
Version:
HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers
87 lines • 2.69 kB
TypeScript
/**
* Persona Installer
*
* This module handles the installation of personas from both folder paths and .htp archives
* into the standard personas directory. It provides atomic operations with rollback
* capabilities and comprehensive validation.
*
* @fileoverview Persona installation and management functionality
*/
import type { PersonaReference } from "./types.js";
/**
* Installation options
*/
export interface InstallOptions {
/** Whether to overwrite existing personas */
force?: boolean;
/** Whether to validate before installation */
skipValidation?: boolean;
/** Whether to create backup of existing persona */
backup?: boolean;
/** Custom installation directory (defaults to standard personas directory) */
installDir?: string;
}
/**
* Installation result
*/
export interface InstallResult {
/** Installation success status */
success: boolean;
/** Name of installed persona */
personaName?: string;
/** Final installation path */
installPath?: string;
/** Backup path if backup was created */
backupPath?: string;
/** Any warnings encountered */
warnings: string[];
/** Any errors encountered */
errors: string[];
/** Whether this was an overwrite operation */
wasOverwrite: boolean;
}
/**
* Installation source type detection
*/
export declare enum SourceType {
FOLDER = "folder",
ARCHIVE = "archive"
}
/**
* Installation source info
*/
export interface SourceInfo {
/** Path to source */
path: string;
/** Source type */
type: SourceType;
/** Persona name if detectable */
personaName?: string;
/** Whether source exists and is accessible */
accessible: boolean;
}
/**
* Get the configured personas installation directory
*/
export declare function getStandardPersonasDir(): string;
/**
* Analyze installation source to determine type and basic info
*/
export declare function analyzeSource(sourcePath: string): Promise<SourceInfo>;
/**
* Check if a persona with the given name already exists
*/
export declare function checkPersonaExists(personaName: string, installDir?: string): Promise<boolean>;
/**
* Install a persona from a source path (folder or archive)
*/
export declare function installPersona(sourcePath: string, options?: InstallOptions): Promise<InstallResult>;
/**
* List all installed personas
*/
export declare function listInstalledPersonas(installDir?: string): Promise<PersonaReference[]>;
/**
* Uninstall a persona by name
*/
export declare function uninstallPersona(personaName: string, installDir?: string, createBackup?: boolean): Promise<InstallResult>;
//# sourceMappingURL=installer.d.ts.map