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.

52 lines 1.82 kB
/** * Interface for storage layer implementations. * * Decouples BaseElementManager from a concrete storage strategy, * allowing ElementStorageLayer (Phase 1, .md files) and * MemoryStorageLayer (Phase 2, .yaml memories) to share the same contract. */ import type { ElementIndexEntry, ManifestDiffResult } from './types.js'; export interface IStorageLayer { /** * Scan the filesystem for changes relative to the last snapshot. * Implementations should enforce cooldown and deduplicate concurrent calls. */ scan(): Promise<ManifestDiffResult>; /** * Trigger scan and return all indexed entries. */ listSummaries(): Promise<ElementIndexEntry[]>; /** * Trigger scan and return all indexed file paths. */ getIndexedPaths(): Promise<string[]>; /** * O(1) name-to-path lookup from the index. Does not trigger a scan. */ getPathByName(name: string): string | undefined; /** * Returns true if at least one scan has completed, meaning the index * is populated and name lookups are authoritative (a miss means the * element genuinely does not exist on disk). */ hasCompletedScan(): boolean; /** * Notify the storage layer that a file was saved. * Re-stats and re-parses the file to update index/manifest. */ notifySaved(relativePath: string, absolutePath: string): Promise<void>; /** * Notify the storage layer that a file was deleted. * Removes the entry from index and manifest. */ notifyDeleted(relativePath: string): void; /** * Force the next scan() to hit disk by resetting the cooldown timer. */ invalidate(): void; /** * Reset all state (index, manifest, cooldown). */ clear(): void; } //# sourceMappingURL=IStorageLayer.d.ts.map