@dollhousemcp/mcp-server 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +118 -0
- package/README.github.md +126 -8
- package/README.md +1 -1
- package/README.md.backup +50 -795
- package/README.npm.md +1 -1
- package/dist/collection/CollectionBrowser.d.ts.map +1 -1
- package/dist/collection/CollectionBrowser.js +6 -5
- package/dist/config/ConfigWizardDisplay.d.ts +64 -0
- package/dist/config/ConfigWizardDisplay.d.ts.map +1 -0
- package/dist/config/ConfigWizardDisplay.js +150 -0
- package/dist/config/WizardFirstResponse.d.ts +25 -0
- package/dist/config/WizardFirstResponse.d.ts.map +1 -0
- package/dist/config/WizardFirstResponse.js +118 -0
- package/dist/elements/memories/Memory.d.ts +190 -0
- package/dist/elements/memories/Memory.d.ts.map +1 -0
- package/dist/elements/memories/Memory.js +627 -0
- package/dist/elements/memories/MemoryManager.d.ts +136 -0
- package/dist/elements/memories/MemoryManager.d.ts.map +1 -0
- package/dist/elements/memories/MemoryManager.js +607 -0
- package/dist/elements/memories/MemorySearchIndex.d.ts +156 -0
- package/dist/elements/memories/MemorySearchIndex.d.ts.map +1 -0
- package/dist/elements/memories/MemorySearchIndex.js +690 -0
- package/dist/elements/memories/constants.d.ts +95 -0
- package/dist/elements/memories/constants.d.ts.map +1 -0
- package/dist/elements/memories/constants.js +102 -0
- package/dist/elements/memories/index.d.ts +7 -0
- package/dist/elements/memories/index.d.ts.map +1 -0
- package/dist/elements/memories/index.js +7 -0
- package/dist/elements/memories/utils.d.ts +68 -0
- package/dist/elements/memories/utils.d.ts.map +1 -0
- package/dist/elements/memories/utils.js +137 -0
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +3 -3
- package/dist/scripts/scripts/run-config-wizard.js +57 -0
- package/dist/scripts/src/config/ConfigManager.js +799 -0
- package/dist/scripts/src/config/ConfigWizard.js +368 -0
- package/dist/scripts/src/errors/SecurityError.js +47 -0
- package/dist/scripts/src/security/constants.js +28 -0
- package/dist/scripts/src/security/contentValidator.js +415 -0
- package/dist/scripts/src/security/errors.js +32 -0
- package/dist/scripts/src/security/regexValidator.js +217 -0
- package/dist/scripts/src/security/secureYamlParser.js +272 -0
- package/dist/scripts/src/security/securityMonitor.js +111 -0
- package/dist/scripts/src/security/validators/unicodeValidator.js +315 -0
- package/dist/scripts/src/utils/logger.js +288 -0
- package/dist/security/audit/SecurityAuditor.d.ts.map +1 -1
- package/dist/security/audit/SecurityAuditor.js +24 -2
- package/dist/security/audit/config/suppressions.d.ts.map +1 -1
- package/dist/security/audit/config/suppressions.js +91 -1
- package/dist/security/securityMonitor.d.ts +1 -1
- package/dist/security/securityMonitor.d.ts.map +1 -1
- package/dist/security/securityMonitor.js +1 -1
- package/dist/tools/getWelcomeMessage.d.ts +41 -0
- package/dist/tools/getWelcomeMessage.d.ts.map +1 -0
- package/dist/tools/getWelcomeMessage.js +109 -0
- package/package.json +1 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Search Index - High-performance indexed search for Memory elements
|
|
3
|
+
*
|
|
4
|
+
* Addresses issue #984: Implement search indexing for Memory element scalability
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Tag index for O(1) tag-based queries
|
|
8
|
+
* - Content index using inverted index pattern
|
|
9
|
+
* - Temporal index for date range queries
|
|
10
|
+
* - Privacy level index for filtered access
|
|
11
|
+
* - Incremental index updates
|
|
12
|
+
* - Optional persistence
|
|
13
|
+
* - Configurable thresholds
|
|
14
|
+
*/
|
|
15
|
+
import { MemoryEntry } from './Memory.js';
|
|
16
|
+
import { PrivacyLevel } from './constants.js';
|
|
17
|
+
export interface SearchIndexConfig {
|
|
18
|
+
/**
|
|
19
|
+
* Enable indexing when memory has more than this many entries
|
|
20
|
+
* Default: 100
|
|
21
|
+
*/
|
|
22
|
+
indexThreshold?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Enable content index (more memory intensive)
|
|
25
|
+
* Default: true
|
|
26
|
+
*/
|
|
27
|
+
enableContentIndex?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum number of terms to index per entry
|
|
30
|
+
* Default: 100
|
|
31
|
+
*/
|
|
32
|
+
maxTermsPerEntry?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Minimum term length to index
|
|
35
|
+
* Default: 2
|
|
36
|
+
*/
|
|
37
|
+
minTermLength?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Enable index persistence to disk
|
|
40
|
+
* Default: false
|
|
41
|
+
*/
|
|
42
|
+
enablePersistence?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Maximum memory usage in MB
|
|
45
|
+
* Default: 100
|
|
46
|
+
*/
|
|
47
|
+
maxMemoryMB?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Enable LRU eviction when memory limit is reached
|
|
50
|
+
* Default: true
|
|
51
|
+
*/
|
|
52
|
+
enableLRUEviction?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface SearchIndexStats {
|
|
55
|
+
isIndexed: boolean;
|
|
56
|
+
entryCount: number;
|
|
57
|
+
tagCount: number;
|
|
58
|
+
termCount: number;
|
|
59
|
+
lastBuilt?: Date;
|
|
60
|
+
buildTimeMs?: number;
|
|
61
|
+
memoryUsageBytes?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface SearchQuery {
|
|
64
|
+
tags?: string[];
|
|
65
|
+
content?: string;
|
|
66
|
+
dateFrom?: Date;
|
|
67
|
+
dateTo?: Date;
|
|
68
|
+
privacyLevel?: PrivacyLevel;
|
|
69
|
+
limit?: number;
|
|
70
|
+
offset?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface SearchResult {
|
|
73
|
+
entry: MemoryEntry;
|
|
74
|
+
score: number;
|
|
75
|
+
matches: {
|
|
76
|
+
tags?: string[];
|
|
77
|
+
terms?: string[];
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Main search index for Memory elements
|
|
82
|
+
*/
|
|
83
|
+
export declare class MemorySearchIndex {
|
|
84
|
+
private readonly config;
|
|
85
|
+
private tagIndex;
|
|
86
|
+
private privacyIndex;
|
|
87
|
+
private contentIndex;
|
|
88
|
+
private temporalIndex;
|
|
89
|
+
private entriesCache;
|
|
90
|
+
private isBuilt;
|
|
91
|
+
private isBuilding;
|
|
92
|
+
private buildQueue;
|
|
93
|
+
private stats;
|
|
94
|
+
private readonly maxMemoryBytes;
|
|
95
|
+
private memoryUsageBytes;
|
|
96
|
+
constructor(config?: SearchIndexConfig);
|
|
97
|
+
/**
|
|
98
|
+
* Build or rebuild the index from entries
|
|
99
|
+
* FIX: Added race condition protection with isBuilding flag and build queue
|
|
100
|
+
*/
|
|
101
|
+
buildIndex(entries: Map<string, MemoryEntry>): Promise<void>;
|
|
102
|
+
private _doBuildIndex;
|
|
103
|
+
/**
|
|
104
|
+
* Add a single entry to the index (incremental update)
|
|
105
|
+
*/
|
|
106
|
+
addEntry(entry: MemoryEntry): void;
|
|
107
|
+
/**
|
|
108
|
+
* Remove an entry from the index
|
|
109
|
+
*/
|
|
110
|
+
removeEntry(entryId: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* Search the index with multiple criteria
|
|
113
|
+
*/
|
|
114
|
+
search(query: SearchQuery, entries: Map<string, MemoryEntry>): SearchResult[];
|
|
115
|
+
/**
|
|
116
|
+
* Fallback linear search when index is not available
|
|
117
|
+
*/
|
|
118
|
+
private linearSearch;
|
|
119
|
+
/**
|
|
120
|
+
* Internal helper to add entry to all indexes
|
|
121
|
+
*/
|
|
122
|
+
private addToIndex;
|
|
123
|
+
/**
|
|
124
|
+
* Clear all indexes
|
|
125
|
+
*/
|
|
126
|
+
clear(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Get index statistics
|
|
129
|
+
*/
|
|
130
|
+
getStats(): SearchIndexStats;
|
|
131
|
+
/**
|
|
132
|
+
* Check if index is built
|
|
133
|
+
*/
|
|
134
|
+
get isIndexed(): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Calculate and update memory usage
|
|
137
|
+
* FIX: Added memory monitoring for content index
|
|
138
|
+
*/
|
|
139
|
+
private updateMemoryUsage;
|
|
140
|
+
/**
|
|
141
|
+
* Evict least recently used entries to free memory
|
|
142
|
+
* FIX: Added LRU eviction for memory management
|
|
143
|
+
*/
|
|
144
|
+
private evictLRUEntries;
|
|
145
|
+
/**
|
|
146
|
+
* Serialize index to JSON for persistence
|
|
147
|
+
* FIX: Added index serialization for cold start optimization
|
|
148
|
+
*/
|
|
149
|
+
serialize(): string;
|
|
150
|
+
/**
|
|
151
|
+
* Deserialize index from JSON
|
|
152
|
+
* FIX: Added index deserialization for faster startup
|
|
153
|
+
*/
|
|
154
|
+
deserialize(data: string, entries: Map<string, MemoryEntry>): void;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=MemorySearchIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemorySearchIndex.d.ts","sourceRoot":"","sources":["../../../src/elements/memories/MemorySearchIndex.ts"],"names":[],"mappings":"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"}
|