@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.
118 lines • 4.31 kB
TypeScript
import { GitHubAuthManager } from '../auth/GitHubAuthManager.js';
import { PortfolioManager } from '../portfolio/PortfolioManager.js';
import { ConfigManager } from '../config/ConfigManager.js';
import { PortfolioRepoManager } from '../portfolio/PortfolioRepoManager.js';
import { TokenManager } from '../security/tokenManager.js';
import { PortfolioPullHandler } from './PortfolioPullHandler.js';
import { PortfolioIndexManager } from '../portfolio/PortfolioIndexManager.js';
import { UnifiedIndexManager } from '../portfolio/UnifiedIndexManager.js';
import { InitializationService } from '../services/InitializationService.js';
import { PersonaIndicatorService } from '../services/PersonaIndicatorService.js';
import { FileOperationsService } from '../services/FileOperationsService.js';
/**
* PortfolioHandler - Manages portfolio operations, status, configuration, and search
*
* Uses dependency injection for all services:
* - InitializationService for setup tasks
* - PersonaIndicatorService for persona indicator formatting
* - GitHubAuthManager for authentication
* - PortfolioManager for portfolio operations
*
* FIX: DMCP-SEC-006 - Security audit suppression
* This handler delegates operations to PortfolioManager and related services.
* Audit logging happens in the underlying services (GitHubAuthManager, PortfolioRepoManager).
* @security-audit-suppress DMCP-SEC-006
*/
export declare class PortfolioHandler {
private readonly githubAuthManager;
private readonly portfolioManager;
private readonly portfolioPullHandler;
private readonly portfolioIndexManager;
private readonly unifiedIndexManager;
private readonly initService;
private readonly indicatorService;
private readonly configManager;
private readonly fileOperations;
private readonly tokenManager;
private readonly portfolioRepoManager;
constructor(githubAuthManager: GitHubAuthManager, portfolioManager: PortfolioManager, portfolioPullHandler: PortfolioPullHandler, portfolioIndexManager: PortfolioIndexManager, unifiedIndexManager: UnifiedIndexManager, initService: InitializationService, indicatorService: PersonaIndicatorService, configManager: ConfigManager, fileOperations: FileOperationsService, tokenManager: TokenManager, portfolioRepoManager: PortfolioRepoManager);
private countElementsInDir;
private getElementsList;
private loadElementByType;
portfolioStatus(username?: string): Promise<{
content: {
type: string;
text: string;
}[];
}>;
initPortfolio(_options: {
repositoryName?: string;
private?: boolean;
description?: string;
}): Promise<{
content: {
type: string;
text: string;
}[];
}>;
portfolioConfig(options: {
autoSync?: boolean;
defaultVisibility?: string;
autoSubmit?: boolean;
repositoryName?: string;
}): Promise<{
content: {
type: string;
text: string;
}[];
data: {
config: {
autoSubmit: boolean;
repositoryName: string;
defaultVisibility: string;
};
};
} | {
content: {
type: string;
text: string;
}[];
data?: undefined;
}>;
syncPortfolio(options: {
direction: string;
mode?: string;
force: boolean;
dryRun: boolean;
confirmDeletions?: boolean;
}): Promise<import("./PortfolioPullHandler.js").PullResult>;
searchPortfolio(options: {
query: string;
elementType?: string;
fuzzyMatch?: boolean;
maxResults?: number;
includeKeywords?: boolean;
includeTags?: boolean;
includeTriggers?: boolean;
includeDescriptions?: boolean;
}): Promise<{
content: {
type: string;
text: string;
}[];
}>;
searchAll(options: {
query: string;
sources?: string[];
elementType?: string;
page?: number;
pageSize?: number;
sortBy?: string;
}): Promise<{
content: {
type: string;
text: string;
}[];
}>;
}
//# sourceMappingURL=PortfolioHandler.d.ts.map