@cmdoss/memwal-sdk 0.6.1 → 0.7.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 (148) hide show
  1. package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -1
  2. package/dist/ai-sdk/PDWVectorStore.js +4 -1
  3. package/dist/ai-sdk/PDWVectorStore.js.map +1 -1
  4. package/dist/ai-sdk/tools.d.ts +2 -2
  5. package/dist/ai-sdk/tools.js +2 -2
  6. package/dist/browser.d.ts +5 -6
  7. package/dist/browser.d.ts.map +1 -1
  8. package/dist/browser.js +7 -6
  9. package/dist/browser.js.map +1 -1
  10. package/dist/client/ClientMemoryManager.d.ts +1 -0
  11. package/dist/client/ClientMemoryManager.d.ts.map +1 -1
  12. package/dist/client/ClientMemoryManager.js +5 -1
  13. package/dist/client/ClientMemoryManager.js.map +1 -1
  14. package/dist/client/SimplePDWClient.d.ts +24 -1
  15. package/dist/client/SimplePDWClient.d.ts.map +1 -1
  16. package/dist/client/SimplePDWClient.js +31 -9
  17. package/dist/client/SimplePDWClient.js.map +1 -1
  18. package/dist/client/namespaces/EmbeddingsNamespace.d.ts +1 -1
  19. package/dist/client/namespaces/EmbeddingsNamespace.js +1 -1
  20. package/dist/client/namespaces/IndexNamespace.d.ts +38 -9
  21. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
  22. package/dist/client/namespaces/IndexNamespace.js +77 -10
  23. package/dist/client/namespaces/IndexNamespace.js.map +1 -1
  24. package/dist/client/namespaces/MemoryNamespace.d.ts +27 -0
  25. package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
  26. package/dist/client/namespaces/MemoryNamespace.js +104 -0
  27. package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
  28. package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -1
  29. package/dist/client/namespaces/SearchNamespace.js +25 -14
  30. package/dist/client/namespaces/SearchNamespace.js.map +1 -1
  31. package/dist/client/namespaces/consolidated/AINamespace.d.ts +2 -2
  32. package/dist/client/namespaces/consolidated/AINamespace.js +2 -2
  33. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
  34. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +69 -1
  35. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
  36. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +46 -0
  37. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
  38. package/dist/client/namespaces/consolidated/StorageNamespace.js +34 -0
  39. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
  40. package/dist/graph/GraphService.js +2 -2
  41. package/dist/graph/GraphService.js.map +1 -1
  42. package/dist/index.d.ts +3 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/permissions/ConsentRepository.browser.d.ts +56 -0
  47. package/dist/permissions/ConsentRepository.browser.d.ts.map +1 -0
  48. package/dist/permissions/ConsentRepository.browser.js +198 -0
  49. package/dist/permissions/ConsentRepository.browser.js.map +1 -0
  50. package/dist/retrieval/MemoryRetrievalService.d.ts +31 -0
  51. package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -1
  52. package/dist/retrieval/MemoryRetrievalService.js +44 -4
  53. package/dist/retrieval/MemoryRetrievalService.js.map +1 -1
  54. package/dist/services/EmbeddingService.d.ts +28 -1
  55. package/dist/services/EmbeddingService.d.ts.map +1 -1
  56. package/dist/services/EmbeddingService.js +54 -0
  57. package/dist/services/EmbeddingService.js.map +1 -1
  58. package/dist/services/GeminiAIService.d.ts.map +1 -1
  59. package/dist/services/GeminiAIService.js +283 -27
  60. package/dist/services/GeminiAIService.js.map +1 -1
  61. package/dist/services/IndexManager.d.ts +5 -1
  62. package/dist/services/IndexManager.d.ts.map +1 -1
  63. package/dist/services/IndexManager.js +17 -40
  64. package/dist/services/IndexManager.js.map +1 -1
  65. package/dist/services/MemoryIndexService.d.ts +31 -2
  66. package/dist/services/MemoryIndexService.d.ts.map +1 -1
  67. package/dist/services/MemoryIndexService.js +75 -3
  68. package/dist/services/MemoryIndexService.js.map +1 -1
  69. package/dist/services/QueryService.js +1 -1
  70. package/dist/services/QueryService.js.map +1 -1
  71. package/dist/services/StorageService.d.ts +10 -0
  72. package/dist/services/StorageService.d.ts.map +1 -1
  73. package/dist/services/StorageService.js +13 -0
  74. package/dist/services/StorageService.js.map +1 -1
  75. package/dist/services/storage/QuiltBatchManager.d.ts +111 -4
  76. package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
  77. package/dist/services/storage/QuiltBatchManager.js +450 -38
  78. package/dist/services/storage/QuiltBatchManager.js.map +1 -1
  79. package/dist/services/storage/index.d.ts +1 -1
  80. package/dist/services/storage/index.d.ts.map +1 -1
  81. package/dist/services/storage/index.js.map +1 -1
  82. package/dist/utils/LRUCache.d.ts +106 -0
  83. package/dist/utils/LRUCache.d.ts.map +1 -0
  84. package/dist/utils/LRUCache.js +281 -0
  85. package/dist/utils/LRUCache.js.map +1 -0
  86. package/dist/utils/index.d.ts +1 -0
  87. package/dist/utils/index.d.ts.map +1 -1
  88. package/dist/utils/index.js +2 -0
  89. package/dist/utils/index.js.map +1 -1
  90. package/dist/utils/memoryIndexOnChain.d.ts +212 -0
  91. package/dist/utils/memoryIndexOnChain.d.ts.map +1 -0
  92. package/dist/utils/memoryIndexOnChain.js +312 -0
  93. package/dist/utils/memoryIndexOnChain.js.map +1 -0
  94. package/dist/utils/rebuildIndexNode.d.ts +29 -0
  95. package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
  96. package/dist/utils/rebuildIndexNode.js +387 -45
  97. package/dist/utils/rebuildIndexNode.js.map +1 -1
  98. package/dist/vector/HnswWasmService.d.ts +20 -5
  99. package/dist/vector/HnswWasmService.d.ts.map +1 -1
  100. package/dist/vector/HnswWasmService.js +73 -40
  101. package/dist/vector/HnswWasmService.js.map +1 -1
  102. package/dist/vector/IHnswService.d.ts +10 -1
  103. package/dist/vector/IHnswService.d.ts.map +1 -1
  104. package/dist/vector/IHnswService.js.map +1 -1
  105. package/dist/vector/NodeHnswService.d.ts +16 -0
  106. package/dist/vector/NodeHnswService.d.ts.map +1 -1
  107. package/dist/vector/NodeHnswService.js +108 -10
  108. package/dist/vector/NodeHnswService.js.map +1 -1
  109. package/dist/vector/createHnswService.d.ts +1 -1
  110. package/dist/vector/createHnswService.js +1 -1
  111. package/dist/vector/index.d.ts +1 -1
  112. package/dist/vector/index.js +1 -1
  113. package/package.json +157 -157
  114. package/src/ai-sdk/PDWVectorStore.ts +4 -1
  115. package/src/ai-sdk/tools.ts +2 -2
  116. package/src/browser.ts +15 -10
  117. package/src/client/ClientMemoryManager.ts +6 -1
  118. package/src/client/SimplePDWClient.ts +63 -10
  119. package/src/client/namespaces/EmbeddingsNamespace.ts +1 -1
  120. package/src/client/namespaces/IndexNamespace.ts +89 -11
  121. package/src/client/namespaces/MemoryNamespace.ts +137 -0
  122. package/src/client/namespaces/SearchNamespace.ts +27 -14
  123. package/src/client/namespaces/consolidated/AINamespace.ts +2 -2
  124. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +73 -1
  125. package/src/client/namespaces/consolidated/StorageNamespace.ts +57 -0
  126. package/src/core/types/index.ts +1 -1
  127. package/src/generated/pdw/capability.ts +319 -319
  128. package/src/graph/GraphService.ts +2 -2
  129. package/src/index.ts +25 -1
  130. package/src/permissions/ConsentRepository.browser.ts +249 -0
  131. package/src/retrieval/MemoryRetrievalService.ts +78 -4
  132. package/src/services/EmbeddingService.ts +66 -1
  133. package/src/services/GeminiAIService.ts +283 -27
  134. package/src/services/IndexManager.ts +18 -45
  135. package/src/services/MemoryIndexService.ts +85 -3
  136. package/src/services/QueryService.ts +1 -1
  137. package/src/services/StorageService.ts +15 -0
  138. package/src/services/storage/QuiltBatchManager.ts +538 -42
  139. package/src/services/storage/index.ts +6 -1
  140. package/src/utils/LRUCache.ts +378 -0
  141. package/src/utils/index.ts +8 -0
  142. package/src/utils/memoryIndexOnChain.ts +507 -0
  143. package/src/utils/rebuildIndexNode.ts +482 -52
  144. package/src/vector/HnswWasmService.ts +95 -43
  145. package/src/vector/IHnswService.ts +10 -1
  146. package/src/vector/NodeHnswService.ts +130 -10
  147. package/src/vector/createHnswService.ts +1 -1
  148. package/src/vector/index.ts +1 -1
@@ -157,35 +157,291 @@ JSON:`;
157
157
  buildExtractionPrompt(content, context) {
158
158
  const contextSection = context ? `\nCONTEXT: ${context}\n` : '';
159
159
  return `
160
- Extract meaningful entities and relationships from the following text. Focus on:
161
- - People (names, roles, professions)
162
- - Organizations (companies, institutions, groups)
163
- - Locations (cities, countries, places)
164
- - Concepts (technologies, ideas, skills)
165
- - Events (meetings, projects, activities)
166
- - Objects (products, tools, resources)
167
-
168
- Return a valid JSON response with "entities" and "relationships" arrays.
169
-
170
- For entities:
171
- - "id": unique identifier using snake_case (e.g., "john_doe", "machine_learning")
172
- - "label": human-readable name (e.g., "John Doe", "Machine Learning")
173
- - "type": entity category (person, organization, location, concept, event, object)
174
- - "confidence": confidence score 0.0-1.0
175
- - "properties": optional additional attributes
176
-
177
- For relationships:
178
- - "source": source entity id
179
- - "target": target entity id
180
- - "label": relationship description (e.g., "works_at", "located_in", "uses")
181
- - "confidence": confidence score 0.0-1.0
182
- - "type": optional relationship category
183
-
184
- Only include entities with confidence >= 0.6 and clear, meaningful relationships.
160
+ You are a knowledge graph extraction system for a Personal Data Wallet application. Your task is to extract meaningful entities and relationships from personal memories, notes, and user statements.
161
+
162
+ ## CRITICAL RULE: User Entity
163
+ ALWAYS include a "user" entity to represent the person who wrote this memory:
164
+ {
165
+ "id": "user",
166
+ "label": "User",
167
+ "type": "person",
168
+ "confidence": 1.0
169
+ }
170
+ This "user" entity should be the source or target of relationships describing personal preferences, attributes, or experiences.
171
+
172
+ ## Entity Types (Comprehensive List)
173
+
174
+ ### People & Social
175
+ - **person**: Individual people, including the user themselves
176
+ - Examples: "user", "john_doe", "my_mother", "boss"
177
+ - Properties: name, role, relationship_to_user
178
+
179
+ ### Organizations & Groups
180
+ - **organization**: Companies, institutions, teams, communities
181
+ - Examples: "google", "harvard_university", "local_gym"
182
+ - Properties: industry, size, location
183
+
184
+ ### Locations & Places
185
+ - **location**: Geographic places, addresses, venues
186
+ - Examples: "ho_chi_minh_city", "vietnam", "my_office", "central_park"
187
+ - Properties: type (city/country/venue), coordinates
188
+
189
+ ### Food & Dining
190
+ - **food**: Foods, dishes, cuisines, beverages, ingredients
191
+ - Examples: "spaghetti", "vietnamese_cuisine", "coffee", "chocolate"
192
+ - Properties: cuisine_type, meal_type, dietary_info
193
+ - **restaurant**: Eating establishments
194
+ - Examples: "starbucks", "local_pho_shop"
195
+ - Properties: cuisine, price_range
196
+
197
+ ### Preferences & Interests
198
+ - **preference**: General likes, dislikes, favorites
199
+ - Examples: "blue_color", "morning_routine", "minimalist_style"
200
+ - Properties: sentiment (positive/negative/neutral), intensity (1-10)
201
+ - **hobby**: Recreational activities, pastimes
202
+ - Examples: "playing_guitar", "photography", "hiking", "gaming"
203
+ - Properties: frequency, skill_level
204
+ - **interest**: Topics of curiosity or passion
205
+ - Examples: "artificial_intelligence", "history", "cooking"
206
+ - Properties: depth (casual/moderate/deep)
207
+
208
+ ### Skills & Abilities
209
+ - **skill**: Technical or soft skills, expertise areas
210
+ - Examples: "python_programming", "public_speaking", "cooking"
211
+ - Properties: proficiency (beginner/intermediate/expert)
212
+ - **language**: Languages known or being learned
213
+ - Examples: "english", "vietnamese", "japanese"
214
+ - Properties: proficiency, native (true/false)
215
+
216
+ ### Objects & Possessions
217
+ - **object**: Physical items, products, tools
218
+ - Examples: "macbook_pro", "my_car", "guitar"
219
+ - Properties: brand, model, acquisition_date
220
+ - **digital_product**: Software, apps, digital services
221
+ - Examples: "spotify", "notion", "chatgpt"
222
+ - Properties: category, usage_frequency
223
+
224
+ ### Time & Events
225
+ - **event**: Occasions, milestones, meetings
226
+ - Examples: "birthday_2024", "job_interview", "vacation_trip"
227
+ - Properties: date, duration, importance
228
+ - **routine**: Regular activities or habits
229
+ - Examples: "morning_workout", "weekly_meeting", "daily_meditation"
230
+ - Properties: frequency, time_of_day
231
+
232
+ ### Abstract & Conceptual
233
+ - **concept**: Ideas, topics, abstract things
234
+ - Examples: "work_life_balance", "productivity", "happiness"
235
+ - **goal**: Objectives, aspirations, plans
236
+ - Examples: "learn_japanese", "run_marathon", "save_money"
237
+ - Properties: deadline, priority, status
238
+ - **emotion**: Feelings, moods, emotional states
239
+ - Examples: "happiness", "stress", "excitement"
240
+ - Properties: intensity, trigger
241
+
242
+ ### Health & Wellness
243
+ - **health_condition**: Medical conditions, allergies
244
+ - Examples: "lactose_intolerance", "migraine", "allergy_to_peanuts"
245
+ - **medication**: Medicines, supplements
246
+ - Examples: "vitamin_d", "aspirin"
247
+ - **exercise**: Physical activities for health
248
+ - Examples: "running", "yoga", "weight_training"
249
+
250
+ ### Media & Entertainment
251
+ - **music**: Songs, artists, genres, albums
252
+ - Examples: "jazz_music", "beatles", "classical_piano"
253
+ - **movie**: Films, TV shows, documentaries
254
+ - Examples: "inception", "game_of_thrones"
255
+ - **book**: Books, authors, genres
256
+ - Examples: "atomic_habits", "fiction_genre"
257
+ - **game**: Video games, board games
258
+ - Examples: "chess", "minecraft"
259
+
260
+ ## Relationship Types (Comprehensive List)
261
+
262
+ ### Preference Relationships (source: usually "user")
263
+ - **loves**: Strong positive preference (intensity 9-10)
264
+ - **likes**: Moderate positive preference (intensity 6-8)
265
+ - **enjoys**: Positive experience with something
266
+ - **prefers**: Comparative preference
267
+ - **favorite**: Top choice in a category
268
+ - **interested_in**: Curiosity or engagement
269
+ - **dislikes**: Moderate negative preference
270
+ - **hates**: Strong negative preference (intensity 9-10)
271
+ - **avoids**: Intentionally stays away from
272
+ - **allergic_to**: Medical/physical aversion
273
+
274
+ ### Affiliation Relationships
275
+ - **works_at**: Employment relationship
276
+ - **studies_at**: Educational institution
277
+ - **member_of**: Group membership
278
+ - **belongs_to**: General affiliation
279
+ - **founded**: Created an organization
280
+ - **leads**: Leadership role
281
+
282
+ ### Location Relationships
283
+ - **lives_in**: Current residence
284
+ - **from**: Origin/hometown
285
+ - **located_in**: Physical location
286
+ - **visited**: Past travel
287
+ - **wants_to_visit**: Travel aspiration
288
+
289
+ ### Social Relationships
290
+ - **knows**: Acquaintance
291
+ - **friends_with**: Friendship
292
+ - **family_of**: Family relationship (specify: parent, sibling, child, spouse)
293
+ - **works_with**: Professional relationship
294
+ - **mentored_by**: Learning relationship
295
+
296
+ ### Skill & Knowledge Relationships
297
+ - **has_skill**: Possesses ability
298
+ - **expert_in**: High proficiency
299
+ - **learning**: Currently acquiring
300
+ - **wants_to_learn**: Aspiration to learn
301
+ - **teaches**: Instructing others
302
+ - **certified_in**: Formal qualification
303
+
304
+ ### Possession & Usage
305
+ - **owns**: Ownership
306
+ - **uses**: Regular usage
307
+ - **wants**: Desire to acquire
308
+ - **recommends**: Positive endorsement
309
+
310
+ ### Temporal Relationships
311
+ - **started_on**: Beginning date
312
+ - **ended_on**: Ending date
313
+ - **scheduled_for**: Future event
314
+ - **happens_during**: Temporal context
315
+
316
+ ### Causal & Descriptive
317
+ - **causes**: Causal relationship
318
+ - **related_to**: General association
319
+ - **part_of**: Component relationship
320
+ - **similar_to**: Similarity
321
+ - **opposite_of**: Contrast
322
+
323
+ ## Output Format
324
+
325
+ Return ONLY valid JSON with this structure:
326
+ {
327
+ "entities": [
328
+ {
329
+ "id": "snake_case_identifier",
330
+ "label": "Human Readable Name",
331
+ "type": "entity_type_from_list_above",
332
+ "confidence": 0.0-1.0,
333
+ "properties": { "optional": "attributes" }
334
+ }
335
+ ],
336
+ "relationships": [
337
+ {
338
+ "source": "source_entity_id",
339
+ "target": "target_entity_id",
340
+ "label": "relationship_type_from_list_above",
341
+ "confidence": 0.0-1.0,
342
+ "type": "optional_category"
343
+ }
344
+ ]
345
+ }
346
+
347
+ ## Examples
348
+
349
+ ### Example 1: Food Preference
350
+ Input: "i love spaghetti"
351
+ Output:
352
+ {
353
+ "entities": [
354
+ {"id": "user", "label": "User", "type": "person", "confidence": 1.0},
355
+ {"id": "spaghetti", "label": "Spaghetti", "type": "food", "confidence": 0.95, "properties": {"cuisine": "italian", "meal_type": "main_course"}}
356
+ ],
357
+ "relationships": [
358
+ {"source": "user", "target": "spaghetti", "label": "loves", "confidence": 0.95, "type": "preference"}
359
+ ]
360
+ }
361
+
362
+ ### Example 2: Multiple Preferences
363
+ Input: "i like hamburgers but hate vegetables"
364
+ Output:
365
+ {
366
+ "entities": [
367
+ {"id": "user", "label": "User", "type": "person", "confidence": 1.0},
368
+ {"id": "hamburgers", "label": "Hamburgers", "type": "food", "confidence": 0.95},
369
+ {"id": "vegetables", "label": "Vegetables", "type": "food", "confidence": 0.95}
370
+ ],
371
+ "relationships": [
372
+ {"source": "user", "target": "hamburgers", "label": "likes", "confidence": 0.9, "type": "preference"},
373
+ {"source": "user", "target": "vegetables", "label": "dislikes", "confidence": 0.9, "type": "preference"}
374
+ ]
375
+ }
376
+
377
+ ### Example 3: Work Information
378
+ Input: "i work at Google as a software engineer in Mountain View"
379
+ Output:
380
+ {
381
+ "entities": [
382
+ {"id": "user", "label": "User", "type": "person", "confidence": 1.0, "properties": {"role": "software_engineer"}},
383
+ {"id": "google", "label": "Google", "type": "organization", "confidence": 0.98, "properties": {"industry": "technology"}},
384
+ {"id": "software_engineer", "label": "Software Engineer", "type": "skill", "confidence": 0.9},
385
+ {"id": "mountain_view", "label": "Mountain View", "type": "location", "confidence": 0.95, "properties": {"type": "city"}}
386
+ ],
387
+ "relationships": [
388
+ {"source": "user", "target": "google", "label": "works_at", "confidence": 0.98, "type": "affiliation"},
389
+ {"source": "user", "target": "software_engineer", "label": "has_skill", "confidence": 0.9, "type": "skill"},
390
+ {"source": "google", "target": "mountain_view", "label": "located_in", "confidence": 0.85, "type": "location"}
391
+ ]
392
+ }
393
+
394
+ ### Example 4: Personal Life
395
+ Input: "my name is Aaron and I live in Ho Chi Minh City with my wife"
396
+ Output:
397
+ {
398
+ "entities": [
399
+ {"id": "user", "label": "Aaron", "type": "person", "confidence": 1.0, "properties": {"name": "Aaron"}},
400
+ {"id": "ho_chi_minh_city", "label": "Ho Chi Minh City", "type": "location", "confidence": 0.98, "properties": {"type": "city", "country": "Vietnam"}},
401
+ {"id": "wife", "label": "Wife", "type": "person", "confidence": 0.9, "properties": {"relationship": "spouse"}}
402
+ ],
403
+ "relationships": [
404
+ {"source": "user", "target": "ho_chi_minh_city", "label": "lives_in", "confidence": 0.98, "type": "location"},
405
+ {"source": "user", "target": "wife", "label": "family_of", "confidence": 0.95, "type": "social", "properties": {"relationship_type": "spouse"}}
406
+ ]
407
+ }
408
+
409
+ ### Example 5: Hobbies and Interests
410
+ Input: "i enjoy playing guitar and listening to jazz music on weekends"
411
+ Output:
412
+ {
413
+ "entities": [
414
+ {"id": "user", "label": "User", "type": "person", "confidence": 1.0},
415
+ {"id": "playing_guitar", "label": "Playing Guitar", "type": "hobby", "confidence": 0.95},
416
+ {"id": "guitar", "label": "Guitar", "type": "object", "confidence": 0.9, "properties": {"category": "musical_instrument"}},
417
+ {"id": "jazz_music", "label": "Jazz Music", "type": "music", "confidence": 0.95, "properties": {"genre": "jazz"}},
418
+ {"id": "weekends", "label": "Weekends", "type": "routine", "confidence": 0.8, "properties": {"frequency": "weekly"}}
419
+ ],
420
+ "relationships": [
421
+ {"source": "user", "target": "playing_guitar", "label": "enjoys", "confidence": 0.95, "type": "hobby"},
422
+ {"source": "playing_guitar", "target": "guitar", "label": "uses", "confidence": 0.9, "type": "activity"},
423
+ {"source": "user", "target": "jazz_music", "label": "enjoys", "confidence": 0.9, "type": "preference"},
424
+ {"source": "playing_guitar", "target": "weekends", "label": "happens_during", "confidence": 0.8, "type": "temporal"}
425
+ ]
426
+ }
427
+
428
+ ## Guidelines
429
+
430
+ 1. **Always include "user" entity** for personal statements (first-person: "I", "my", "me")
431
+ 2. **Extract implicit information**: "i'm a doctor" implies medical skill
432
+ 3. **Handle negations properly**: "don't like" = dislikes relationship
433
+ 4. **Capture intensity**: "love" vs "like" vs "enjoy" = different confidence/intensity
434
+ 5. **Include relevant properties**: cuisine type for food, location type for places
435
+ 6. **Create bidirectional relationships when applicable**: if A works_at B, B employs A
436
+ 7. **Minimum confidence threshold**: 0.5 for entities, 0.5 for relationships
437
+ 8. **Be comprehensive**: Extract ALL meaningful entities, even from short texts
438
+ 9. **Handle multilingual content**: Vietnamese, English, etc.
439
+ 10. **Infer entity types from context**: "spaghetti" = food, "Python" = skill/language based on context
185
440
  ${contextSection}
186
- TEXT: ${content}
441
+ ## TEXT TO ANALYZE:
442
+ ${content}
187
443
 
188
- JSON:`;
444
+ ## JSON OUTPUT:`;
189
445
  }
190
446
  parseExtractionResponse(response) {
191
447
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiAIService.js","sourceRoot":"","sources":["../../src/services/GeminiAIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeminiAIService.js","sourceRoot":"","sources":["../../src/services/GeminiAIService.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,10 @@ export interface IndexManagerOptions {
102
102
  * 2. If failed, rebuild from blockchain + Walrus (slow but complete)
103
103
  * 3. Sync any new memories since last save
104
104
  * 4. Auto-save periodically
105
+ *
106
+ * Memory Optimization:
107
+ * - Removed duplicate vectorCache - now uses VectorService.getAllCachedVectors()
108
+ * - Vectors are only stored once in VectorService's HnswWasmService LRU cache
105
109
  */
106
110
  export declare class IndexManager {
107
111
  private vectorService;
@@ -110,7 +114,6 @@ export declare class IndexManager {
110
114
  private options;
111
115
  private autoSaveTimer?;
112
116
  private indexStates;
113
- private vectorCache;
114
117
  private storage;
115
118
  constructor(vectorService: VectorService, storageService: StorageService, embeddingService: EmbeddingService, options?: IndexManagerOptions);
116
119
  /**
@@ -178,6 +181,7 @@ export declare class IndexManager {
178
181
  saveIndexWithSigner(spaceId: string, signer: any): Promise<string | null>;
179
182
  /**
180
183
  * Add vector and cache it for serialization
184
+ * Note: VectorService now handles caching internally, this method is kept for API compatibility
181
185
  */
182
186
  addVectorWithCache(spaceId: string, vectorId: number, vector: number[], metadata?: any): Promise<void>;
183
187
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"IndexManager.d.ts","sourceRoot":"","sources":["../../src/services/IndexManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexManager.d.ts","sourceRoot":"","sources":["../../src/services/IndexManager.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,14 @@
21
21
  * 2. If failed, rebuild from blockchain + Walrus (slow but complete)
22
22
  * 3. Sync any new memories since last save
23
23
  * 4. Auto-save periodically
24
+ *
25
+ * Memory Optimization:
26
+ * - Removed duplicate vectorCache - now uses VectorService.getAllCachedVectors()
27
+ * - Vectors are only stored once in VectorService's HnswWasmService LRU cache
24
28
  */
25
29
  export class IndexManager {
26
30
  constructor(vectorService, storageService, embeddingService, options = {}) {
27
31
  this.indexStates = new Map();
28
- this.vectorCache = new Map();
29
32
  this.vectorService = vectorService;
30
33
  this.storageService = storageService;
31
34
  this.embeddingService = embeddingService;
@@ -247,14 +250,10 @@ export class IndexManager {
247
250
  m: pkg.hnswConfig.m,
248
251
  efConstruction: pkg.hnswConfig.efConstruction,
249
252
  });
250
- // Initialize vector cache for this space
251
- const vectorMap = new Map();
252
- this.vectorCache.set(spaceId, vectorMap);
253
- // Restore vectors and metadata
253
+ // Restore vectors and metadata (VectorService caches vectors internally)
254
254
  const metadataMap = new Map(pkg.metadata);
255
255
  for (const { vectorId, vector } of pkg.vectors) {
256
256
  await this.vectorService.addVector(spaceId, vectorId, vector, metadataMap.get(vectorId));
257
- vectorMap.set(vectorId, vector);
258
257
  }
259
258
  // Update index state
260
259
  this.indexStates.set(spaceId, {
@@ -286,10 +285,7 @@ export class IndexManager {
286
285
  m: 16,
287
286
  efConstruction: 200,
288
287
  });
289
- // Initialize vector cache
290
- const vectorMap = new Map();
291
- this.vectorCache.set(spaceId, vectorMap);
292
- // Process each memory
288
+ // Process each memory (VectorService caches vectors internally)
293
289
  let processed = 0;
294
290
  const batchSize = 10;
295
291
  for (let i = 0; i < memories.length; i += batchSize) {
@@ -309,7 +305,7 @@ export class IndexManager {
309
305
  dimension = embedding.length;
310
306
  }
311
307
  const vectorId = memory.vectorId ?? Date.now() % 4294967295;
312
- // Add to index
308
+ // Add to index (VectorService caches vector internally)
313
309
  await this.vectorService.addVector(spaceId, vectorId, embedding, {
314
310
  blobId: memory.blobId,
315
311
  memoryId: memory.id,
@@ -318,8 +314,6 @@ export class IndexManager {
318
314
  topic: memory.topic,
319
315
  timestamp: memory.createdAt || Date.now(),
320
316
  });
321
- // Cache vector for serialization
322
- vectorMap.set(vectorId, embedding);
323
317
  processed++;
324
318
  }
325
319
  catch (error) {
@@ -345,12 +339,6 @@ export class IndexManager {
345
339
  return 0;
346
340
  }
347
341
  console.log(`🔄 Syncing ${newMemories.length} new memories...`);
348
- // Get or create vector cache
349
- let vectorMap = this.vectorCache.get(spaceId);
350
- if (!vectorMap) {
351
- vectorMap = new Map();
352
- this.vectorCache.set(spaceId, vectorMap);
353
- }
354
342
  let synced = 0;
355
343
  for (const memory of newMemories) {
356
344
  try {
@@ -361,6 +349,7 @@ export class IndexManager {
361
349
  embedding = result.vector;
362
350
  }
363
351
  const vectorId = memory.vectorId ?? Date.now() % 4294967295;
352
+ // Add to index (VectorService caches vector internally)
364
353
  await this.vectorService.addVector(spaceId, vectorId, embedding, {
365
354
  blobId: memory.blobId,
366
355
  memoryId: memory.id,
@@ -369,7 +358,6 @@ export class IndexManager {
369
358
  topic: memory.topic,
370
359
  timestamp: memory.createdAt || Date.now(),
371
360
  });
372
- vectorMap.set(vectorId, embedding);
373
361
  synced++;
374
362
  }
375
363
  catch (error) {
@@ -389,11 +377,8 @@ export class IndexManager {
389
377
  }
390
378
  // Get all vectors and metadata
391
379
  const allVectors = this.vectorService.getAllVectors(spaceId);
392
- // Try to get vectors from VectorService cache first, then fallback to local cache
393
- let vectorMap = this.vectorService.getAllCachedVectors(spaceId);
394
- if (vectorMap.size === 0) {
395
- vectorMap = this.vectorCache.get(spaceId) || new Map();
396
- }
380
+ // Get vectors from VectorService cache (single source of truth)
381
+ const vectorMap = this.vectorService.getAllCachedVectors(spaceId);
397
382
  if (vectorMap.size === 0) {
398
383
  console.warn('Vector cache is empty, cannot save index');
399
384
  return null;
@@ -467,11 +452,8 @@ export class IndexManager {
467
452
  return null;
468
453
  }
469
454
  const allVectors = this.vectorService.getAllVectors(spaceId);
470
- // Try to get vectors from VectorService cache first, then fallback to local cache
471
- let vectorMap = this.vectorService.getAllCachedVectors(spaceId);
472
- if (vectorMap.size === 0) {
473
- vectorMap = this.vectorCache.get(spaceId) || new Map();
474
- }
455
+ // Get vectors from VectorService cache (single source of truth)
456
+ const vectorMap = this.vectorService.getAllCachedVectors(spaceId);
475
457
  if (vectorMap.size === 0) {
476
458
  console.warn('Vector cache is empty, cannot save index');
477
459
  return null;
@@ -579,16 +561,11 @@ export class IndexManager {
579
561
  }
580
562
  /**
581
563
  * Add vector and cache it for serialization
564
+ * Note: VectorService now handles caching internally, this method is kept for API compatibility
582
565
  */
583
566
  async addVectorWithCache(spaceId, vectorId, vector, metadata) {
567
+ // VectorService.addVector now caches vectors internally
584
568
  await this.vectorService.addVector(spaceId, vectorId, vector, metadata);
585
- // Cache vector for later serialization
586
- let vectorMap = this.vectorCache.get(spaceId);
587
- if (!vectorMap) {
588
- vectorMap = new Map();
589
- this.vectorCache.set(spaceId, vectorMap);
590
- }
591
- vectorMap.set(vectorId, vector);
592
569
  }
593
570
  /**
594
571
  * Start auto-save interval
@@ -651,7 +628,7 @@ export class IndexManager {
651
628
  const key = `${this.options.storageKeyPrefix}${spaceId}`;
652
629
  this.storage.removeItem(key);
653
630
  this.indexStates.delete(spaceId);
654
- this.vectorCache.delete(spaceId);
631
+ // Note: VectorService cache is managed by HnswWasmService LRU cache
655
632
  console.log(`Cleared index state for ${spaceId}`);
656
633
  }
657
634
  /**
@@ -675,7 +652,7 @@ export class IndexManager {
675
652
  getStats(spaceId) {
676
653
  return {
677
654
  indexState: this.getIndexState(spaceId),
678
- vectorCacheSize: this.vectorCache.get(spaceId)?.size || 0,
655
+ vectorCacheSize: this.vectorService.getAllCachedVectors(spaceId).size,
679
656
  isAutoSaveEnabled: !!this.autoSaveTimer,
680
657
  };
681
658
  }
@@ -685,7 +662,7 @@ export class IndexManager {
685
662
  async cleanup() {
686
663
  this.stopAutoSave();
687
664
  this.indexStates.clear();
688
- this.vectorCache.clear();
665
+ // Note: VectorService cleanup is handled by its own cleanup() method
689
666
  }
690
667
  }
691
668
  //# sourceMappingURL=IndexManager.js.map