@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.
52 lines • 1.64 kB
TypeScript
/**
* Reference resolver system for handling element references.
* Supports lazy loading, caching, and various reference types.
*/
import { Reference } from './IElement.js';
export interface IReferenceResolver {
resolve(ref: Reference): Promise<ResolvedReference>;
cache(ref: Reference, data: any): Promise<void>;
invalidate(ref: Reference): Promise<void>;
resolveMany(refs: Reference[]): Promise<ResolvedReference[]>;
invalidateAll(): Promise<void>;
getCacheSize(): number;
clearCache(): Promise<void>;
setCacheLimit(limit: number): void;
}
export interface ResolvedReference {
reference: Reference;
data: any;
resolvedAt: Date;
expiresAt?: Date;
fromCache: boolean;
error?: Error;
}
export interface IResolutionStrategy {
canResolve(ref: Reference): boolean;
resolve(ref: Reference): Promise<any>;
getCacheKey(ref: Reference): string;
}
export interface IReferenceCache {
get(key: string): Promise<CachedReference | null>;
set(key: string, data: CachedReference): Promise<void>;
delete(key: string): Promise<void>;
clear(): Promise<void>;
size(): number;
}
export interface CachedReference {
data: any;
cachedAt: Date;
expiresAt?: Date;
reference: Reference;
}
export interface IReferenceValidator {
validate(ref: Reference): ReferenceValidationResult;
validateUri(uri: string, type: Reference['type']): boolean;
sanitizeUri(uri: string): string;
}
export interface ReferenceValidationResult {
valid: boolean;
errors?: string[];
sanitizedReference?: Reference;
}
//# sourceMappingURL=IReferenceResolver.d.ts.map