@henrychong-ai/mcp-neo4j-knowledge-graph 1.0.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.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +718 -0
  3. package/dist/KnowledgeGraphManager.d.ts +215 -0
  4. package/dist/KnowledgeGraphManager.js +910 -0
  5. package/dist/KnowledgeGraphManager.js.map +1 -0
  6. package/dist/callToolHandler.d.ts +5 -0
  7. package/dist/callToolHandler.js +26 -0
  8. package/dist/callToolHandler.js.map +1 -0
  9. package/dist/cli/neo4j-setup.d.ts +52 -0
  10. package/dist/cli/neo4j-setup.js +258 -0
  11. package/dist/cli/neo4j-setup.js.map +1 -0
  12. package/dist/config/paths.d.ts +13 -0
  13. package/dist/config/paths.js +41 -0
  14. package/dist/config/paths.js.map +1 -0
  15. package/dist/config/storage.d.ts +35 -0
  16. package/dist/config/storage.js +52 -0
  17. package/dist/config/storage.js.map +1 -0
  18. package/dist/embeddings/DefaultEmbeddingService.d.ts +64 -0
  19. package/dist/embeddings/DefaultEmbeddingService.js +139 -0
  20. package/dist/embeddings/DefaultEmbeddingService.js.map +1 -0
  21. package/dist/embeddings/EmbeddingJobManager.d.ts +212 -0
  22. package/dist/embeddings/EmbeddingJobManager.js +545 -0
  23. package/dist/embeddings/EmbeddingJobManager.js.map +1 -0
  24. package/dist/embeddings/EmbeddingService.d.ts +96 -0
  25. package/dist/embeddings/EmbeddingService.js +44 -0
  26. package/dist/embeddings/EmbeddingService.js.map +1 -0
  27. package/dist/embeddings/EmbeddingServiceFactory.d.ts +72 -0
  28. package/dist/embeddings/EmbeddingServiceFactory.js +147 -0
  29. package/dist/embeddings/EmbeddingServiceFactory.js.map +1 -0
  30. package/dist/embeddings/OpenAIEmbeddingService.d.ts +73 -0
  31. package/dist/embeddings/OpenAIEmbeddingService.js +195 -0
  32. package/dist/embeddings/OpenAIEmbeddingService.js.map +1 -0
  33. package/dist/embeddings/config.d.ts +83 -0
  34. package/dist/embeddings/config.js +65 -0
  35. package/dist/embeddings/config.js.map +1 -0
  36. package/dist/index.d.ts +4 -0
  37. package/dist/index.js +220 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/server/handlers/callToolHandler.d.ts +20 -0
  40. package/dist/server/handlers/callToolHandler.js +505 -0
  41. package/dist/server/handlers/callToolHandler.js.map +1 -0
  42. package/dist/server/handlers/listToolsHandler.d.ts +7 -0
  43. package/dist/server/handlers/listToolsHandler.js +511 -0
  44. package/dist/server/handlers/listToolsHandler.js.map +1 -0
  45. package/dist/server/handlers/toolHandlers/addObservations.d.ts +12 -0
  46. package/dist/server/handlers/toolHandlers/addObservations.js +99 -0
  47. package/dist/server/handlers/toolHandlers/addObservations.js.map +1 -0
  48. package/dist/server/handlers/toolHandlers/createEntities.d.ts +12 -0
  49. package/dist/server/handlers/toolHandlers/createEntities.js +20 -0
  50. package/dist/server/handlers/toolHandlers/createEntities.js.map +1 -0
  51. package/dist/server/handlers/toolHandlers/createRelations.d.ts +12 -0
  52. package/dist/server/handlers/toolHandlers/createRelations.js +20 -0
  53. package/dist/server/handlers/toolHandlers/createRelations.js.map +1 -0
  54. package/dist/server/handlers/toolHandlers/deleteEntities.d.ts +12 -0
  55. package/dist/server/handlers/toolHandlers/deleteEntities.js +20 -0
  56. package/dist/server/handlers/toolHandlers/deleteEntities.js.map +1 -0
  57. package/dist/server/handlers/toolHandlers/index.d.ts +8 -0
  58. package/dist/server/handlers/toolHandlers/index.js +9 -0
  59. package/dist/server/handlers/toolHandlers/index.js.map +1 -0
  60. package/dist/server/handlers/toolHandlers/readGraph.d.ts +12 -0
  61. package/dist/server/handlers/toolHandlers/readGraph.js +20 -0
  62. package/dist/server/handlers/toolHandlers/readGraph.js.map +1 -0
  63. package/dist/server/setup.d.ts +8 -0
  64. package/dist/server/setup.js +48 -0
  65. package/dist/server/setup.js.map +1 -0
  66. package/dist/storage/FileStorageProvider.d.ts +125 -0
  67. package/dist/storage/FileStorageProvider.js +322 -0
  68. package/dist/storage/FileStorageProvider.js.map +1 -0
  69. package/dist/storage/SearchResultCache.d.ts +102 -0
  70. package/dist/storage/SearchResultCache.js +258 -0
  71. package/dist/storage/SearchResultCache.js.map +1 -0
  72. package/dist/storage/StorageProvider.d.ts +171 -0
  73. package/dist/storage/StorageProvider.js +46 -0
  74. package/dist/storage/StorageProvider.js.map +1 -0
  75. package/dist/storage/StorageProviderFactory.d.ts +63 -0
  76. package/dist/storage/StorageProviderFactory.js +113 -0
  77. package/dist/storage/StorageProviderFactory.js.map +1 -0
  78. package/dist/storage/VectorStoreFactory.d.ts +43 -0
  79. package/dist/storage/VectorStoreFactory.js +41 -0
  80. package/dist/storage/VectorStoreFactory.js.map +1 -0
  81. package/dist/storage/neo4j/Neo4jConfig.d.ts +37 -0
  82. package/dist/storage/neo4j/Neo4jConfig.js +13 -0
  83. package/dist/storage/neo4j/Neo4jConfig.js.map +1 -0
  84. package/dist/storage/neo4j/Neo4jConnectionManager.d.ts +40 -0
  85. package/dist/storage/neo4j/Neo4jConnectionManager.js +58 -0
  86. package/dist/storage/neo4j/Neo4jConnectionManager.js.map +1 -0
  87. package/dist/storage/neo4j/Neo4jSchemaManager.d.ts +74 -0
  88. package/dist/storage/neo4j/Neo4jSchemaManager.js +224 -0
  89. package/dist/storage/neo4j/Neo4jSchemaManager.js.map +1 -0
  90. package/dist/storage/neo4j/Neo4jStorageProvider.d.ts +225 -0
  91. package/dist/storage/neo4j/Neo4jStorageProvider.js +1900 -0
  92. package/dist/storage/neo4j/Neo4jStorageProvider.js.map +1 -0
  93. package/dist/storage/neo4j/Neo4jVectorStore.d.ts +80 -0
  94. package/dist/storage/neo4j/Neo4jVectorStore.js +396 -0
  95. package/dist/storage/neo4j/Neo4jVectorStore.js.map +1 -0
  96. package/dist/types/entity-embedding.d.ts +156 -0
  97. package/dist/types/entity-embedding.js +2 -0
  98. package/dist/types/entity-embedding.js.map +1 -0
  99. package/dist/types/relation.d.ts +77 -0
  100. package/dist/types/relation.js +93 -0
  101. package/dist/types/relation.js.map +1 -0
  102. package/dist/types/temporalEntity.d.ts +55 -0
  103. package/dist/types/temporalEntity.js +66 -0
  104. package/dist/types/temporalEntity.js.map +1 -0
  105. package/dist/types/temporalRelation.d.ts +60 -0
  106. package/dist/types/temporalRelation.js +89 -0
  107. package/dist/types/temporalRelation.js.map +1 -0
  108. package/dist/types/vector-index.d.ts +48 -0
  109. package/dist/types/vector-index.js +2 -0
  110. package/dist/types/vector-index.js.map +1 -0
  111. package/dist/types/vector-store.d.ts +16 -0
  112. package/dist/types/vector-store.js +2 -0
  113. package/dist/types/vector-store.js.map +1 -0
  114. package/dist/utils/fs.d.ts +2 -0
  115. package/dist/utils/fs.js +3 -0
  116. package/dist/utils/fs.js.map +1 -0
  117. package/dist/utils/logger.d.ts +10 -0
  118. package/dist/utils/logger.js +35 -0
  119. package/dist/utils/logger.js.map +1 -0
  120. package/package.json +85 -0
@@ -0,0 +1,139 @@
1
+ import { logger } from '../utils/logger.js';
2
+ import { EmbeddingService } from './EmbeddingService.js';
3
+ /**
4
+ * Default embedding service implementation that generates random vectors.
5
+ * This is a fallback service for testing and development environments
6
+ * where an external API provider is not available.
7
+ */
8
+ export class DefaultEmbeddingService extends EmbeddingService {
9
+ /**
10
+ * Create a new default embedding service instance
11
+ *
12
+ * @param config - Configuration options or dimensions
13
+ * @param modelName - Name to use for the model (legacy parameter)
14
+ * @param modelVersion - Version to use for the model (legacy parameter)
15
+ */
16
+ constructor(config = 1536, // Default to OpenAI's dimensions for better test compatibility
17
+ modelName = 'memento-mcp-mock', modelVersion = '1.0.0') {
18
+ super();
19
+ // Handle both object config and legacy number dimensions
20
+ if (typeof config === 'number') {
21
+ this.dimensions = config;
22
+ this.modelName = modelName;
23
+ this.modelVersion = modelVersion;
24
+ }
25
+ else {
26
+ // For mock mode, default to OpenAI-compatible dimensions if not specified
27
+ const isMockMode = process.env.MOCK_EMBEDDINGS === 'true';
28
+ const defaultDimensions = isMockMode ? 1536 : 384;
29
+ this.dimensions = config.dimensions || defaultDimensions;
30
+ this.modelName = config.model || (isMockMode ? 'text-embedding-3-small-mock' : modelName);
31
+ this.modelVersion = config.version?.toString() || modelVersion;
32
+ }
33
+ if (process.env.MOCK_EMBEDDINGS === 'true') {
34
+ logger.info(`Using DefaultEmbeddingService in mock mode with dimensions: ${this.dimensions}`);
35
+ }
36
+ }
37
+ /**
38
+ * Generate an embedding vector for text
39
+ *
40
+ * @param text - Text to generate embedding for
41
+ * @returns Promise resolving to a vector as Array
42
+ */
43
+ async generateEmbedding(text) {
44
+ // Generate deterministic embedding based on text
45
+ // This keeps the same input text producing the same output vector
46
+ const seed = this._hashString(text);
47
+ // Create an array of the specified dimensions
48
+ const vector = new Array(this.dimensions);
49
+ // Fill with seeded random values
50
+ for (let i = 0; i < this.dimensions; i++) {
51
+ // Use a simple deterministic algorithm based on seed and position
52
+ vector[i] = this._seededRandom(seed + i);
53
+ }
54
+ // Normalize the vector to unit length
55
+ this._normalizeVector(vector);
56
+ return vector;
57
+ }
58
+ /**
59
+ * Generate embedding vectors for multiple texts
60
+ *
61
+ * @param texts - Array of texts to generate embeddings for
62
+ * @returns Promise resolving to array of embedding vectors
63
+ */
64
+ async generateEmbeddings(texts) {
65
+ // Generate embeddings for each text in parallel
66
+ const embeddings = [];
67
+ for (const text of texts) {
68
+ embeddings.push(await this.generateEmbedding(text));
69
+ }
70
+ return embeddings;
71
+ }
72
+ /**
73
+ * Get information about the embedding model
74
+ *
75
+ * @returns Model information
76
+ */
77
+ getModelInfo() {
78
+ return {
79
+ name: this.modelName,
80
+ dimensions: this.dimensions,
81
+ version: this.modelVersion,
82
+ };
83
+ }
84
+ /**
85
+ * Generate a simple hash from a string for deterministic random generation
86
+ *
87
+ * @private
88
+ * @param text - Input text to hash
89
+ * @returns Numeric hash value
90
+ */
91
+ _hashString(text) {
92
+ let hash = 0;
93
+ if (text.length === 0)
94
+ return hash;
95
+ for (let i = 0; i < text.length; i++) {
96
+ const char = text.charCodeAt(i);
97
+ hash = (hash << 5) - hash + char;
98
+ hash = hash & hash; // Convert to 32bit integer
99
+ }
100
+ return hash;
101
+ }
102
+ /**
103
+ * Seeded random number generator
104
+ *
105
+ * @private
106
+ * @param seed - Seed value
107
+ * @returns Random value between 0 and 1
108
+ */
109
+ _seededRandom(seed) {
110
+ const x = Math.sin(seed) * 10000;
111
+ return x - Math.floor(x);
112
+ }
113
+ /**
114
+ * Normalize a vector to unit length
115
+ *
116
+ * @private
117
+ * @param vector - Vector to normalize
118
+ */
119
+ _normalizeVector(vector) {
120
+ // Calculate magnitude (Euclidean norm)
121
+ let magnitude = 0;
122
+ for (let i = 0; i < vector.length; i++) {
123
+ magnitude += vector[i] * vector[i];
124
+ }
125
+ magnitude = Math.sqrt(magnitude);
126
+ // Avoid division by zero
127
+ if (magnitude > 0) {
128
+ // Normalize each component
129
+ for (let i = 0; i < vector.length; i++) {
130
+ vector[i] /= magnitude;
131
+ }
132
+ }
133
+ else {
134
+ // If magnitude is 0, set first element to 1 for a valid unit vector
135
+ vector[0] = 1;
136
+ }
137
+ }
138
+ }
139
+ //# sourceMappingURL=DefaultEmbeddingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultEmbeddingService.js","sourceRoot":"","sources":["../../src/embeddings/DefaultEmbeddingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ import { LRUCache } from 'lru-cache';
2
+ import type { StorageProvider } from '../storage/StorageProvider.js';
3
+ import type { EmbeddingService } from './EmbeddingService.js';
4
+ import type { Entity } from '../KnowledgeGraphManager.js';
5
+ import type { EntityEmbedding } from '../types/entity-embedding.js';
6
+ /**
7
+ * Interface for embedding cache options
8
+ */
9
+ interface CacheOptions {
10
+ size: number;
11
+ ttl: number;
12
+ maxItems?: number;
13
+ ttlHours?: number;
14
+ }
15
+ /**
16
+ * Interface for rate limiting options
17
+ */
18
+ interface RateLimiterOptions {
19
+ tokensPerInterval: number;
20
+ interval: number;
21
+ }
22
+ /**
23
+ * Interface for job processing results
24
+ */
25
+ interface JobProcessResults {
26
+ processed: number;
27
+ successful: number;
28
+ failed: number;
29
+ }
30
+ /**
31
+ * Interface for the rate limiter status
32
+ */
33
+ interface RateLimiterStatus {
34
+ availableTokens: number;
35
+ maxTokens: number;
36
+ resetInMs: number;
37
+ }
38
+ /**
39
+ * Interface for a cached embedding entry
40
+ */
41
+ interface CachedEmbedding {
42
+ embedding: number[];
43
+ timestamp: number;
44
+ model: string;
45
+ }
46
+ /**
47
+ * Interface for a logger
48
+ */
49
+ interface Logger {
50
+ debug: (message: string, meta?: Record<string, unknown>) => void;
51
+ info: (message: string, meta?: Record<string, unknown>) => void;
52
+ warn: (message: string, meta?: Record<string, unknown>) => void;
53
+ error: (message: string, meta?: Record<string, unknown>) => void;
54
+ }
55
+ /**
56
+ * Interface for embedding storage provider, extending the base provider
57
+ */
58
+ interface EmbeddingStorageProvider extends StorageProvider {
59
+ /**
60
+ * Access to the underlying database
61
+ */
62
+ db: any;
63
+ /**
64
+ * Get an entity by name
65
+ */
66
+ getEntity(entityName: string): Promise<Entity | null>;
67
+ /**
68
+ * Store an entity vector embedding
69
+ */
70
+ storeEntityVector(entityName: string, embedding: EntityEmbedding): Promise<void>;
71
+ }
72
+ /**
73
+ * Return structure for queue status
74
+ */
75
+ interface QueueStatus {
76
+ pending: number;
77
+ processing: number;
78
+ completed: number;
79
+ failed: number;
80
+ totalJobs: number;
81
+ }
82
+ /**
83
+ * Manages embedding jobs for semantic search
84
+ */
85
+ export declare class EmbeddingJobManager {
86
+ private storageProvider;
87
+ private embeddingService;
88
+ rateLimiter: {
89
+ tokens: number;
90
+ lastRefill: number;
91
+ tokensPerInterval: number;
92
+ interval: number;
93
+ };
94
+ cache: LRUCache<string, CachedEmbedding>;
95
+ private cacheOptions;
96
+ private logger;
97
+ /**
98
+ * Creates a new embedding job manager
99
+ *
100
+ * @param storageProvider - Provider for entity storage
101
+ * @param embeddingService - Service to generate embeddings
102
+ * @param rateLimiterOptions - Optional configuration for rate limiting
103
+ * @param cacheOptions - Optional configuration for caching
104
+ * @param logger - Optional logger for operation logging
105
+ */
106
+ constructor(storageProvider: EmbeddingStorageProvider, embeddingService: EmbeddingService, rateLimiterOptions?: RateLimiterOptions | null, cacheOptions?: CacheOptions | null, logger?: Logger | null);
107
+ /**
108
+ * Initialize the database schema for embedding jobs
109
+ *
110
+ * @private
111
+ */
112
+ private _initializeDatabase;
113
+ /**
114
+ * Schedule an entity for embedding generation
115
+ *
116
+ * @param entityName - Name of the entity to generate embedding for
117
+ * @param priority - Optional priority (higher priority jobs are processed first)
118
+ * @returns Job ID
119
+ */
120
+ scheduleEntityEmbedding(entityName: string, priority?: number): Promise<string>;
121
+ /**
122
+ * Process a batch of pending embedding jobs
123
+ *
124
+ * @param batchSize - Maximum number of jobs to process
125
+ * @returns Result statistics
126
+ */
127
+ processJobs(batchSize?: number): Promise<JobProcessResults>;
128
+ /**
129
+ * Get the current status of the job queue
130
+ *
131
+ * @returns Queue statistics
132
+ */
133
+ getQueueStatus(): Promise<QueueStatus>;
134
+ /**
135
+ * Retry failed embedding jobs
136
+ *
137
+ * @returns Number of jobs reset for retry
138
+ */
139
+ retryFailedJobs(): Promise<number>;
140
+ /**
141
+ * Clean up old completed jobs
142
+ *
143
+ * @param threshold - Age in milliseconds after which to delete completed jobs, defaults to 7 days
144
+ * @returns Number of jobs cleaned up
145
+ */
146
+ cleanupJobs(threshold?: number): Promise<number>;
147
+ /**
148
+ * Update a job's status in the database
149
+ *
150
+ * @private
151
+ * @param jobId - ID of the job to update
152
+ * @param status - New status
153
+ * @param attempts - Optional attempts count update
154
+ * @param error - Optional error message
155
+ * @returns Database result
156
+ */
157
+ private _updateJobStatus;
158
+ /**
159
+ * Check rate limiter and consume a token if available
160
+ *
161
+ * @private
162
+ * @returns Object with success flag
163
+ */
164
+ _checkRateLimiter(): {
165
+ success: boolean;
166
+ };
167
+ /**
168
+ * Get the current status of the rate limiter
169
+ *
170
+ * @returns Rate limiter status information
171
+ */
172
+ getRateLimiterStatus(): RateLimiterStatus;
173
+ /**
174
+ * Retrieve a cached embedding or generate a new one
175
+ *
176
+ * @param text - Text to generate embedding for
177
+ * @returns Embedding vector
178
+ */
179
+ _getCachedEmbeddingOrGenerate(text: string): Promise<number[]>;
180
+ /**
181
+ * Store an embedding in the cache
182
+ *
183
+ * @private
184
+ * @param text - Original text
185
+ * @param embedding - Embedding vector
186
+ */
187
+ private _cacheEmbedding;
188
+ /**
189
+ * Generate a deterministic cache key for text
190
+ *
191
+ * @private
192
+ * @param text - Text to hash
193
+ * @returns Cache key
194
+ */
195
+ _generateCacheKey(text: string): string;
196
+ /**
197
+ * Prepare text for embedding from an entity
198
+ *
199
+ * @private
200
+ * @param entity - Entity to prepare text from
201
+ * @returns Processed text ready for embedding
202
+ */
203
+ private _prepareEntityText;
204
+ /**
205
+ * Get a cached embedding entry (used for testing)
206
+ *
207
+ * @param key - Cache key
208
+ * @returns Cached embedding or undefined
209
+ */
210
+ getCacheEntry(key: string): CachedEmbedding | undefined;
211
+ }
212
+ export {};