Skip to main content
Glama
UnifiedStore.d.ts5.83 kB
/** * Unified Store Implementation * * Consolidates all specialized stores into a single, type-safe store * with efficient indexing and querying capabilities. */ import { ThoughtData, MentalModelData, DebuggingSession, CollaborativeSession, DecisionData, MetacognitiveData, ScientificInquiryData, CreativeData, SystemsData, VisualData, ArgumentData, SocraticData, SessionExport } from '../../types/index.js'; /** * Union type for all data types managed by the unified store */ export type UnifiedDataType = ThoughtData | MentalModelData | DebuggingSession | CollaborativeSession | DecisionData | MetacognitiveData | ScientificInquiryData | CreativeData | SystemsData | VisualData | ArgumentData | SocraticData; /** * Data type tags for categorization and indexing */ export declare enum DataTypeTag { THOUGHT = "thought", MENTAL_MODEL = "mentalModel", DEBUGGING = "debugging", COLLABORATIVE = "collaborative", DECISION = "decision", METACOGNITIVE = "metacognitive", SCIENTIFIC = "scientific", CREATIVE = "creative", SYSTEMS = "systems", VISUAL = "visual", ARGUMENT = "argument", SOCRATIC = "socratic" } /** * Storage entry with metadata for tracking and indexing */ export interface StorageEntry<T extends UnifiedDataType = UnifiedDataType> { id: string; type: DataTypeTag; data: T; timestamp: Date; metadata?: Record<string, any>; } /** * Type guards for runtime type checking */ export declare const TypeGuards: { isThoughtData: (data: UnifiedDataType) => data is ThoughtData; isMentalModelData: (data: UnifiedDataType) => data is MentalModelData; isDebuggingSession: (data: UnifiedDataType) => data is DebuggingSession; isCollaborativeSession: (data: UnifiedDataType) => data is CollaborativeSession; isDecisionData: (data: UnifiedDataType) => data is DecisionData; isMetacognitiveData: (data: UnifiedDataType) => data is MetacognitiveData; isScientificInquiry: (data: UnifiedDataType) => data is ScientificInquiryData; isCreativeData: (data: UnifiedDataType) => data is CreativeData; isSystemsData: (data: UnifiedDataType) => data is SystemsData; isVisualData: (data: UnifiedDataType) => data is VisualData; isArgumentData: (data: UnifiedDataType) => data is ArgumentData; isSocraticData: (data: UnifiedDataType) => data is SocraticData; }; /** * Unified store for all data types with type-safe operations */ export declare class UnifiedStore { private data; private readonly storeName; private typeIndexes; private thoughtSequence; private collaborativeSessions; private visualDiagrams; private decisionIndex; private inquiryIndex; constructor(); get(id: string): StorageEntry | undefined; has(id: string): boolean; delete(id: string): boolean; size(): number; export(): Record<string, StorageEntry>; import(data: Record<string, StorageEntry>): void; keys(): string[]; values(): StorageEntry[]; forEach(callback: (value: StorageEntry, key: string) => void): void; filter(predicate: (item: StorageEntry) => boolean): StorageEntry[]; find(predicate: (item: StorageEntry) => boolean): StorageEntry | undefined; update(id: string, updater: (item: StorageEntry) => StorageEntry): boolean; /** * Determine the data type tag for indexing */ private getDataType; /** * Add any type of data to the store */ add(id: string, item: StorageEntry | UnifiedDataType): void; /** * Type guard for StorageEntry */ private isStorageEntry; /** * Update special indexes based on data type */ private updateSpecialIndexes; /** * Get all items of a specific type */ getByType<T extends UnifiedDataType>(type: DataTypeTag): T[]; /** * Get all items (returns StorageEntry objects) */ getAll(): StorageEntry[]; /** * Clear all data and indexes */ clear(): void; getThoughts(): ThoughtData[]; getMentalModels(): MentalModelData[]; getDebuggingSessions(): DebuggingSession[]; getCollaborativeSessions(): CollaborativeSession[]; getDecisions(): DecisionData[]; getMetacognitiveSessions(): MetacognitiveData[]; getScientificInquiries(): ScientificInquiryData[]; getCreativeSessions(): CreativeData[]; getSystemsAnalyses(): SystemsData[]; getVisualOperations(): VisualData[]; getArguments(): (ArgumentData | SocraticData)[]; /** * Get ordered thought sequence */ getThoughtSequence(): ThoughtData[]; /** * Get collaborative session by ID */ getCollaborativeSession(sessionId: string): CollaborativeSession | undefined; /** * Get decision by ID */ getDecision(decisionId: string): DecisionData | undefined; /** * Get scientific inquiry by ID */ getScientificInquiry(inquiryId: string): ScientificInquiryData | undefined; /** * Get visual diagrams by diagram ID */ getVisualDiagram(diagramId: string): VisualData[]; /** * Get statistics by type */ getStatsByType(): Record<DataTypeTag, number>; /** * Export data by type or all data */ exportByType(type?: DataTypeTag): SessionExport; /** * Import data from export */ importData(sessionExport: SessionExport): void; /** * Generate unique ID for data item */ private generateId; private extractExistingId; private generate; private generateRandomString; /** * Search across all data types with a predicate */ searchAll(predicate: (entry: StorageEntry) => boolean): StorageEntry[]; /** * Get recent items across all types */ getRecent(limit?: number): StorageEntry[]; } //# sourceMappingURL=UnifiedStore.d.ts.map

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/waldzellai/clearthought-onepointfive'

If you have feedback or need assistance with the MCP directory API, please join our Discord server