@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.
- package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -1
- package/dist/ai-sdk/PDWVectorStore.js +4 -1
- package/dist/ai-sdk/PDWVectorStore.js.map +1 -1
- package/dist/ai-sdk/tools.d.ts +2 -2
- package/dist/ai-sdk/tools.js +2 -2
- package/dist/browser.d.ts +5 -6
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +7 -6
- package/dist/browser.js.map +1 -1
- package/dist/client/ClientMemoryManager.d.ts +1 -0
- package/dist/client/ClientMemoryManager.d.ts.map +1 -1
- package/dist/client/ClientMemoryManager.js +5 -1
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +24 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +31 -9
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.js +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts +38 -9
- package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/IndexNamespace.js +77 -10
- package/dist/client/namespaces/IndexNamespace.js.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +27 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +104 -0
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/SearchNamespace.js +25 -14
- package/dist/client/namespaces/SearchNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AINamespace.d.ts +2 -2
- package/dist/client/namespaces/consolidated/AINamespace.js +2 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +69 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +46 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +34 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/graph/GraphService.js +2 -2
- package/dist/graph/GraphService.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/permissions/ConsentRepository.browser.d.ts +56 -0
- package/dist/permissions/ConsentRepository.browser.d.ts.map +1 -0
- package/dist/permissions/ConsentRepository.browser.js +198 -0
- package/dist/permissions/ConsentRepository.browser.js.map +1 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts +31 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.js +44 -4
- package/dist/retrieval/MemoryRetrievalService.js.map +1 -1
- package/dist/services/EmbeddingService.d.ts +28 -1
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +54 -0
- package/dist/services/EmbeddingService.js.map +1 -1
- package/dist/services/GeminiAIService.d.ts.map +1 -1
- package/dist/services/GeminiAIService.js +283 -27
- package/dist/services/GeminiAIService.js.map +1 -1
- package/dist/services/IndexManager.d.ts +5 -1
- package/dist/services/IndexManager.d.ts.map +1 -1
- package/dist/services/IndexManager.js +17 -40
- package/dist/services/IndexManager.js.map +1 -1
- package/dist/services/MemoryIndexService.d.ts +31 -2
- package/dist/services/MemoryIndexService.d.ts.map +1 -1
- package/dist/services/MemoryIndexService.js +75 -3
- package/dist/services/MemoryIndexService.js.map +1 -1
- package/dist/services/QueryService.js +1 -1
- package/dist/services/QueryService.js.map +1 -1
- package/dist/services/StorageService.d.ts +10 -0
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js +13 -0
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +111 -4
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +450 -38
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/index.d.ts +1 -1
- package/dist/services/storage/index.d.ts.map +1 -1
- package/dist/services/storage/index.js.map +1 -1
- package/dist/utils/LRUCache.d.ts +106 -0
- package/dist/utils/LRUCache.d.ts.map +1 -0
- package/dist/utils/LRUCache.js +281 -0
- package/dist/utils/LRUCache.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/memoryIndexOnChain.d.ts +212 -0
- package/dist/utils/memoryIndexOnChain.d.ts.map +1 -0
- package/dist/utils/memoryIndexOnChain.js +312 -0
- package/dist/utils/memoryIndexOnChain.js.map +1 -0
- package/dist/utils/rebuildIndexNode.d.ts +29 -0
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
- package/dist/utils/rebuildIndexNode.js +387 -45
- package/dist/utils/rebuildIndexNode.js.map +1 -1
- package/dist/vector/HnswWasmService.d.ts +20 -5
- package/dist/vector/HnswWasmService.d.ts.map +1 -1
- package/dist/vector/HnswWasmService.js +73 -40
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/IHnswService.d.ts +10 -1
- package/dist/vector/IHnswService.d.ts.map +1 -1
- package/dist/vector/IHnswService.js.map +1 -1
- package/dist/vector/NodeHnswService.d.ts +16 -0
- package/dist/vector/NodeHnswService.d.ts.map +1 -1
- package/dist/vector/NodeHnswService.js +108 -10
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/vector/createHnswService.d.ts +1 -1
- package/dist/vector/createHnswService.js +1 -1
- package/dist/vector/index.d.ts +1 -1
- package/dist/vector/index.js +1 -1
- package/package.json +157 -157
- package/src/ai-sdk/PDWVectorStore.ts +4 -1
- package/src/ai-sdk/tools.ts +2 -2
- package/src/browser.ts +15 -10
- package/src/client/ClientMemoryManager.ts +6 -1
- package/src/client/SimplePDWClient.ts +63 -10
- package/src/client/namespaces/EmbeddingsNamespace.ts +1 -1
- package/src/client/namespaces/IndexNamespace.ts +89 -11
- package/src/client/namespaces/MemoryNamespace.ts +137 -0
- package/src/client/namespaces/SearchNamespace.ts +27 -14
- package/src/client/namespaces/consolidated/AINamespace.ts +2 -2
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +73 -1
- package/src/client/namespaces/consolidated/StorageNamespace.ts +57 -0
- package/src/core/types/index.ts +1 -1
- package/src/generated/pdw/capability.ts +319 -319
- package/src/graph/GraphService.ts +2 -2
- package/src/index.ts +25 -1
- package/src/permissions/ConsentRepository.browser.ts +249 -0
- package/src/retrieval/MemoryRetrievalService.ts +78 -4
- package/src/services/EmbeddingService.ts +66 -1
- package/src/services/GeminiAIService.ts +283 -27
- package/src/services/IndexManager.ts +18 -45
- package/src/services/MemoryIndexService.ts +85 -3
- package/src/services/QueryService.ts +1 -1
- package/src/services/StorageService.ts +15 -0
- package/src/services/storage/QuiltBatchManager.ts +538 -42
- package/src/services/storage/index.ts +6 -1
- package/src/utils/LRUCache.ts +378 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/memoryIndexOnChain.ts +507 -0
- package/src/utils/rebuildIndexNode.ts +482 -52
- package/src/vector/HnswWasmService.ts +95 -43
- package/src/vector/IHnswService.ts +10 -1
- package/src/vector/NodeHnswService.ts +130 -10
- package/src/vector/createHnswService.ts +1 -1
- 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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
-
|
|
181
|
-
- "
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
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:
|
|
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":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,aAAa,EAAE,KAAK,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,+BAA+B;IAC/B,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/B,uBAAuB;IACvB,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,EAAE,MAAM,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,EACnE,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/E,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3G;AAED
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
393
|
-
|
|
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
|
-
//
|
|
471
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
665
|
+
// Note: VectorService cleanup is handled by its own cleanup() method
|
|
689
666
|
}
|
|
690
667
|
}
|
|
691
668
|
//# sourceMappingURL=IndexManager.js.map
|