UNPKG

@dollhousemcp/mcp-server

Version:

DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.

89 lines 2.99 kB
/** * PortfolioPullHandler - Handles pulling portfolio elements from GitHub * * This handler implements the pull functionality for sync_portfolio, * enabling users to download their portfolio from GitHub to local storage. * Supports multiple sync modes (additive, mirror, backup) and dry-run. */ import { PortfolioRepoManager } from '../portfolio/PortfolioRepoManager.js'; import { GitHubPortfolioIndexer } from '../portfolio/GitHubPortfolioIndexer.js'; import { PortfolioManager } from '../portfolio/PortfolioManager.js'; import { PortfolioIndexManager } from '../portfolio/PortfolioIndexManager.js'; import { PortfolioSyncComparer } from '../sync/PortfolioSyncComparer.js'; import { PortfolioDownloader } from '../sync/PortfolioDownloader.js'; import { IFileOperationsService } from '../services/FileOperationsService.js'; import { TokenManager } from '../security/tokenManager.js'; export interface PullOptions { direction: string; mode?: string; force?: boolean; dryRun?: boolean; confirmDeletions?: boolean; } export interface PullResult { content: Array<{ type: string; text: string; }>; } export interface PortfolioPullHandlerDependencies { portfolioRepoManager: PortfolioRepoManager; githubIndexer: GitHubPortfolioIndexer; portfolioManager: PortfolioManager; indexManager: PortfolioIndexManager; syncComparer: PortfolioSyncComparer; downloader: PortfolioDownloader; fileOperations: IFileOperationsService; tokenManager: TokenManager; } export declare class PortfolioPullHandler { private portfolioRepoManager; private githubIndexer; private portfolioManager; private indexManager; private syncComparer; private downloader; private readonly fileOperations; private readonly tokenManager; constructor(dependencies: PortfolioPullHandlerDependencies); /** * Execute the pull operation from GitHub to local portfolio */ executePull(options: PullOptions, personaIndicator: string): Promise<PullResult>; /** * Validate and normalize sync mode * SECURITY FIX: Added Unicode normalization to prevent homograph attacks */ private validateSyncMode; /** * Get all local elements organized by type */ private getAllLocalElements; /** * Count total elements in a map */ private countElements; /** * Format dry-run results for display */ private formatDryRunResults; /** * Execute the sync actions */ private executeSyncActions; /** * Download element from GitHub and save locally * SECURITY: Added audit logging for GitHub operations */ private downloadAndSaveElement; /** * Delete local element * SECURITY: Added audit logging for deletion operations */ private deleteLocalElement; /** * Get GitHub token from auth manager */ private getGitHubToken; } //# sourceMappingURL=PortfolioPullHandler.d.ts.map