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.

145 lines 3.44 kB
/** * Shared types for Enhanced Index system * * This file contains types used by EnhancedIndexManager, RelationshipManager, * and VerbTriggerManager to prevent circular dependencies. * * These are the core data structures for the semantic search and relationship * discovery system. */ import { BaseRelationship } from './RelationshipTypes.js'; /** * Enhanced index schema - fully extensible */ export interface EnhancedIndex { metadata: IndexMetadata; action_triggers: Record<string, string[]>; elements: Record<string, Record<string, ElementDefinition>>; context?: ContextTracking; scoring?: ScoringConfig; extensions?: Record<string, any>; } /** * Index metadata */ export interface IndexMetadata { version: string; created: string; last_updated: string; total_elements: number; [key: string]: any; } /** * Element definition in the index */ export interface ElementDefinition { core: { name: string; type: string; version?: string; description?: string; created?: string; updated?: string; }; search?: { keywords?: string[]; tags?: string[]; triggers?: string[]; }; actions?: Record<string, ActionDefinition>; use_when?: UseWhenPattern[]; relationships?: Record<string, Relationship[]>; semantic?: SemanticData; custom?: Record<string, any>; extensions?: Record<string, any>; } /** * Action definition for verb-based triggers */ export interface ActionDefinition { description?: string; examples?: string[]; confidence?: number; [key: string]: any; } /** * USE_WHEN pattern for automatic activation */ export interface UseWhenPattern { condition: string; confidence?: number; [key: string]: any; } /** * Relationship type (re-exported from RelationshipTypes) */ export type Relationship = BaseRelationship; /** * Semantic data for similarity scoring */ export interface SemanticData { keywords?: string[]; concepts?: string[]; domain?: string; complexity?: number; [key: string]: any; } /** * Context tracking for smart injection */ export interface ContextTracking { keywords: KeywordTracking; relationships: RelationshipTracking; [key: string]: any; } /** * Keyword tracking data */ export interface KeywordTracking { frequency: Record<string, number>; recency: Record<string, string>; [key: string]: any; } /** * Relationship tracking data */ export interface RelationshipTracking { used_with: Record<string, number>; [key: string]: any; } /** * Scoring configuration */ export interface ScoringConfig { weights?: { keyword_match?: number; semantic_similarity?: number; relationship_strength?: number; recency?: number; [key: string]: number | undefined; }; thresholds?: { min_score?: number; auto_inject?: number; [key: string]: number | undefined; }; [key: string]: any; } /** * Index options for building/rebuilding */ export interface IndexOptions { forceRebuild?: boolean; skipValidation?: boolean; includeInactive?: boolean; [key: string]: any; } /** * Path between elements (from RelationshipManager) */ export interface ElementPath { path: string[]; relationships: string[]; totalStrength: number; } //# sourceMappingURL=IndexTypes.d.ts.map