@prmichaelsen/remember-mcp 0.1.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 (95) hide show
  1. package/.env.example +65 -0
  2. package/AGENT.md +840 -0
  3. package/README.md +72 -0
  4. package/agent/design/.gitkeep +0 -0
  5. package/agent/design/access-control-result-pattern.md +458 -0
  6. package/agent/design/action-audit-memory-types.md +637 -0
  7. package/agent/design/common-template-fields.md +282 -0
  8. package/agent/design/complete-tool-set.md +407 -0
  9. package/agent/design/content-types-expansion.md +521 -0
  10. package/agent/design/cross-database-id-strategy.md +358 -0
  11. package/agent/design/default-template-library.md +423 -0
  12. package/agent/design/firestore-wrapper-analysis.md +606 -0
  13. package/agent/design/llm-provider-abstraction.md +691 -0
  14. package/agent/design/location-handling-architecture.md +523 -0
  15. package/agent/design/memory-templates-design.md +364 -0
  16. package/agent/design/permissions-storage-architecture.md +680 -0
  17. package/agent/design/relationship-storage-strategy.md +361 -0
  18. package/agent/design/remember-mcp-implementation-tasks.md +417 -0
  19. package/agent/design/remember-mcp-progress.yaml +141 -0
  20. package/agent/design/requirements-enhancements.md +468 -0
  21. package/agent/design/requirements.md +56 -0
  22. package/agent/design/template-storage-strategy.md +412 -0
  23. package/agent/design/template-suggestion-system.md +853 -0
  24. package/agent/design/trust-escalation-prevention.md +343 -0
  25. package/agent/design/trust-system-implementation.md +592 -0
  26. package/agent/design/user-preferences.md +683 -0
  27. package/agent/design/weaviate-collection-strategy.md +461 -0
  28. package/agent/milestones/.gitkeep +0 -0
  29. package/agent/milestones/milestone-1-project-foundation.md +121 -0
  30. package/agent/milestones/milestone-2-core-memory-system.md +150 -0
  31. package/agent/milestones/milestone-3-relationships-graph.md +116 -0
  32. package/agent/milestones/milestone-4-user-preferences.md +103 -0
  33. package/agent/milestones/milestone-5-template-system.md +126 -0
  34. package/agent/milestones/milestone-6-auth-multi-tenancy.md +124 -0
  35. package/agent/milestones/milestone-7-trust-permissions.md +133 -0
  36. package/agent/milestones/milestone-8-testing-quality.md +137 -0
  37. package/agent/milestones/milestone-9-deployment-documentation.md +147 -0
  38. package/agent/patterns/.gitkeep +0 -0
  39. package/agent/patterns/bootstrap.md +1271 -0
  40. package/agent/patterns/firebase-admin-sdk-v8-usage.md +950 -0
  41. package/agent/patterns/firestore-users-pattern-best-practices.md +347 -0
  42. package/agent/patterns/library-services.md +454 -0
  43. package/agent/patterns/testing-colocated.md +316 -0
  44. package/agent/progress.yaml +395 -0
  45. package/agent/tasks/.gitkeep +0 -0
  46. package/agent/tasks/task-1-initialize-project-structure.md +266 -0
  47. package/agent/tasks/task-2-install-dependencies.md +199 -0
  48. package/agent/tasks/task-3-setup-weaviate-client.md +330 -0
  49. package/agent/tasks/task-4-setup-firestore-client.md +362 -0
  50. package/agent/tasks/task-5-create-basic-mcp-server.md +114 -0
  51. package/agent/tasks/task-6-create-integration-tests.md +195 -0
  52. package/agent/tasks/task-7-finalize-milestone-1.md +363 -0
  53. package/agent/tasks/task-8-setup-utility-scripts.md +382 -0
  54. package/agent/tasks/task-9-create-server-factory.md +404 -0
  55. package/dist/config.d.ts +26 -0
  56. package/dist/constants/content-types.d.ts +60 -0
  57. package/dist/firestore/init.d.ts +14 -0
  58. package/dist/firestore/paths.d.ts +53 -0
  59. package/dist/firestore/paths.spec.d.ts +2 -0
  60. package/dist/server-factory.d.ts +40 -0
  61. package/dist/server-factory.js +1741 -0
  62. package/dist/server-factory.spec.d.ts +2 -0
  63. package/dist/server.d.ts +3 -0
  64. package/dist/server.js +1690 -0
  65. package/dist/tools/create-memory.d.ts +94 -0
  66. package/dist/tools/delete-memory.d.ts +47 -0
  67. package/dist/tools/search-memory.d.ts +88 -0
  68. package/dist/types/memory.d.ts +183 -0
  69. package/dist/utils/logger.d.ts +7 -0
  70. package/dist/weaviate/client.d.ts +39 -0
  71. package/dist/weaviate/client.spec.d.ts +2 -0
  72. package/dist/weaviate/schema.d.ts +29 -0
  73. package/esbuild.build.js +60 -0
  74. package/esbuild.watch.js +25 -0
  75. package/jest.config.js +31 -0
  76. package/jest.e2e.config.js +17 -0
  77. package/package.json +68 -0
  78. package/src/.gitkeep +0 -0
  79. package/src/config.ts +56 -0
  80. package/src/constants/content-types.ts +454 -0
  81. package/src/firestore/init.ts +68 -0
  82. package/src/firestore/paths.spec.ts +75 -0
  83. package/src/firestore/paths.ts +124 -0
  84. package/src/server-factory.spec.ts +60 -0
  85. package/src/server-factory.ts +215 -0
  86. package/src/server.ts +243 -0
  87. package/src/tools/create-memory.ts +198 -0
  88. package/src/tools/delete-memory.ts +126 -0
  89. package/src/tools/search-memory.ts +216 -0
  90. package/src/types/memory.ts +276 -0
  91. package/src/utils/logger.ts +42 -0
  92. package/src/weaviate/client.spec.ts +58 -0
  93. package/src/weaviate/client.ts +114 -0
  94. package/src/weaviate/schema.ts +288 -0
  95. package/tsconfig.json +26 -0
@@ -0,0 +1,468 @@
1
+ # Requirements Enhancements & Gap Analysis
2
+
3
+ **Project**: remember-mcp (Multi-Tenant Memory System)
4
+ **Based On**: index MCP server architecture
5
+ **Last Updated**: 2026-02-11 (Updated with design decisions)
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ This document analyzes the requirements for the `remember-mcp` project and documents all design decisions, enhancements, and clarifications made during the planning phase.
12
+
13
+ ---
14
+
15
+ ## Design Decisions Summary
16
+
17
+ ### ✅ Resolved Design Questions
18
+
19
+ 1. **Tool Mapping**: Clarified - `index_existing` → `remember_update_memory`
20
+ 2. **Trust Levels**: **Continuous 0-1 scale** (not discrete levels)
21
+ 3. **Trust Enforcement**: **Prompt-based with LLM validation** (see [`trust-system-implementation.md`](trust-system-implementation.md))
22
+ 4. **Relationship Types**: **Free-form strings** decided by agent (not enumerated)
23
+ 5. **Relationship Directionality**: Not tracked (relationships are undirected)
24
+ 6. **Location Handling**: **Provided by platform via cookies** (see [`location-handling-architecture.md`](location-handling-architecture.md))
25
+ 7. **Permissions Storage**: **Firestore for permissions**, Weaviate for memories (see [`permissions-storage-architecture.md`](permissions-storage-architecture.md))
26
+ 8. **Context Summary**: Added to both Memory and Relationship contexts
27
+ 9. **Access Count Weighting**: Implemented in search ranking (see [`action-audit-memory-types.md`](action-audit-memory-types.md))
28
+ 10. **Content Types**: Expanded to 21+ types including `checklist` (see [`content-types-expansion.md`](content-types-expansion.md))
29
+ 11. **Memory Templates**: Designed for structured memory creation (see [`memory-templates-design.md`](memory-templates-design.md))
30
+
31
+ ---
32
+
33
+ ## Complete Schema Specifications
34
+
35
+ ### 1. Memory Schema (FINAL)
36
+
37
+ ```yaml
38
+ Memory:
39
+ # Core Identity
40
+ id: uuid
41
+ user_id: string
42
+
43
+ # Content
44
+ content: text # Main memory content
45
+ title: string # Optional short title
46
+ summary: string # Optional brief summary
47
+ type: string # Content type (see content-types-expansion.md)
48
+
49
+ # Significance & Trust
50
+ weight: float # 0-1, significance/priority (continuous)
51
+ trust: float # 0-1, access control level (continuous)
52
+ confidence: float # 0-1, system confidence in accuracy
53
+
54
+ # Location (provided by platform)
55
+ location:
56
+ address:
57
+ formatted: string # Full address
58
+ street: string
59
+ city: string
60
+ state: string
61
+ country: string
62
+ postal_code: string
63
+ timezone: string
64
+ gps:
65
+ latitude: float
66
+ longitude: float
67
+ accuracy: float # GPS accuracy in meters
68
+ altitude: float
69
+ timestamp: datetime
70
+ source: string # "gps", "ip", "manual", "cached"
71
+ confidence: float # 0-1
72
+ is_approximate: boolean
73
+
74
+ # Context
75
+ context:
76
+ conversation_id: string # Link to conversation
77
+ conversation_title: string
78
+ turn_number: int # Position in conversation
79
+ summary: string # ✅ NEW: Brief summary for quick retrieval
80
+ participants: array
81
+ - user_id: string
82
+ role: string # user, assistant, system
83
+ timestamp: datetime
84
+ timezone: string
85
+ source:
86
+ type: string # conversation, import, inference, manual
87
+ platform: string # web, mobile, api
88
+ client: string
89
+ environment:
90
+ location: object # Same as memory location
91
+ device: string
92
+ tags: array
93
+ notes: string
94
+
95
+ # Relationships
96
+ relationships: array # IDs of relationship objects
97
+
98
+ # Access Tracking (for weight calculation)
99
+ access_count: int # Total times accessed
100
+ last_accessed_at: datetime # Most recent access
101
+ access_frequency: float # Accesses per day
102
+ access_history: array # Recent access timestamps
103
+
104
+ # Metadata
105
+ created_at: datetime
106
+ updated_at: datetime
107
+ version: int
108
+
109
+ # Organization
110
+ tags: array
111
+ category: string
112
+
113
+ # Template Integration (optional)
114
+ template_id: uuid # Which template was used
115
+ template_version: string
116
+ structured_content: object # Template-structured data
117
+
118
+ # Vector embedding (for semantic search)
119
+ embedding: vector
120
+
121
+ # Computed Weight (for search ranking)
122
+ base_weight: float # User-specified
123
+ computed_weight: float # Calculated with access multipliers
124
+ ```
125
+
126
+ ### 2. Relationship Schema (FINAL)
127
+
128
+ ```yaml
129
+ Relationship:
130
+ # Core Identity
131
+ id: uuid
132
+ user_id: string
133
+
134
+ # Connection
135
+ memory_ids: array # 2...N memory IDs
136
+ type: string # ✅ FREE-FORM: Agent decides relationship type
137
+ # Examples: "causes", "contradicts", "supports",
138
+ # "relates_to", "inspired_by", "depends_on", etc.
139
+
140
+ # Observation
141
+ observation: text # Description of the connection
142
+ strength: float # 0-1, strength of relationship
143
+ confidence: float # 0-1, confidence in relationship
144
+
145
+ # Context
146
+ context:
147
+ conversation_id: string
148
+ conversation_title: string
149
+ turn_number: int
150
+ summary: string # ✅ NEW: Brief summary of discovery context
151
+ discovered_in: string
152
+ timestamp: datetime
153
+ source: string
154
+ participants: array
155
+
156
+ # Metadata
157
+ created_at: datetime
158
+ updated_at: datetime
159
+ version: int
160
+
161
+ # Organization
162
+ tags: array
163
+
164
+ # Note: 'directed' field removed - relationships are undirected
165
+ ```
166
+
167
+ ### 3. Trust Relationship Schema (Firestore)
168
+
169
+ **Location**: `user_permissions/{owner_user_id}/allowed_accessors/{accessor_user_id}`
170
+
171
+ ```yaml
172
+ UserPermission:
173
+ # Identity
174
+ owner_user_id: string # User whose memories can be accessed
175
+ accessor_user_id: string # User who can access
176
+
177
+ # Permission
178
+ can_access: boolean
179
+ access_level: string # "read", "read_write", "admin"
180
+
181
+ # Trust (continuous 0-1)
182
+ trust_level: float # ✅ CONTINUOUS 0-1 (not discrete)
183
+ trust_summary: string # Brief explanation
184
+ trust_reason: string # Detailed reason
185
+
186
+ # Scope
187
+ allowed_memory_types: array
188
+ allowed_tags: array
189
+ excluded_tags: array
190
+
191
+ # Temporal
192
+ granted_at: Timestamp
193
+ expires_at: Timestamp | null
194
+ last_accessed: Timestamp
195
+ access_count: int
196
+
197
+ # Metadata
198
+ granted_by: string
199
+ revoked: boolean
200
+ revoked_at: Timestamp | null
201
+ revoked_reason: string | null
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Tool Mapping (FINAL)
207
+
208
+ ```
209
+ index tool → remember-mcp tool
210
+ ----------------- -------------------
211
+ search_index → remember_search_memory (hybrid search)
212
+ ask_index → remember_query_memory (GraphQL + NL interpretation)
213
+ index_new → remember_create_memory
214
+ index_existing → remember_update_memory (✅ update existing memory)
215
+ unindex → remember_delete_memory
216
+ find_similar_in_index → remember_find_similar
217
+ (none) → remember_create_relationship (NEW)
218
+ (none) → remember_update_relationship (NEW)
219
+ (none) → remember_search_relationship (NEW)
220
+ (none) → remember_delete_relationship (NEW)
221
+ ```
222
+
223
+ **Additional Tools** (from templates and action tracking):
224
+ - `remember_create_template` - Create memory template
225
+ - `remember_list_templates` - List available templates
226
+ - `remember_update_template` - Update template
227
+ - `remember_delete_template` - Delete template
228
+ - `remember_validate_memory` - Validate against template
229
+
230
+ ---
231
+
232
+ ## Architecture Decisions
233
+
234
+ ### 1. Trust System (RESOLVED)
235
+
236
+ **Decision**: **Prompt-based enforcement with continuous trust levels**
237
+
238
+ **Implementation**:
239
+ - Trust levels are **continuous 0-1** (not discrete)
240
+ - Trust enforced by including trust context in LLM prompts
241
+ - Low-trust memories (< 0.25) require validation
242
+ - "Intimate details" (trust 0.0) means: hint at existence without revealing specifics
243
+
244
+ **Example** (trust 0.0 - traumatic experience):
245
+ ```
246
+ LLM sees: "Significant personal incident with lasting impact"
247
+ Acceptable: "I'm aware something significant happened around that time."
248
+ Unacceptable: "You were in a car accident..." ❌ VIOLATION
249
+ ```
250
+
251
+ **See**: [`trust-system-implementation.md`](trust-system-implementation.md)
252
+
253
+ ### 2. Location Handling (RESOLVED)
254
+
255
+ **Decision**: **Platform provides location via cookies/headers**
256
+
257
+ **Flow**:
258
+ 1. Platform (agentbase.me) captures GPS from device
259
+ 2. Geocodes to address
260
+ 3. Stores in cookies
261
+ 4. Includes in MCP request context
262
+ 5. MCP server extracts and stores with memory
263
+
264
+ **Benefits**:
265
+ - Separation of concerns
266
+ - Platform handles permissions
267
+ - Consistent across features
268
+ - User privacy controls
269
+
270
+ **See**: [`location-handling-architecture.md`](location-handling-architecture.md)
271
+
272
+ ### 3. Permissions Storage (RESOLVED)
273
+
274
+ **Decision**: **Hybrid - Firestore for permissions, Weaviate for memories**
275
+
276
+ **Rationale**:
277
+ - Firestore optimized for relational queries
278
+ - Weaviate optimized for vector search
279
+ - Each database does what it's best at
280
+ - Firebase security rules for permissions
281
+ - Easy to query "who can access my memories?"
282
+
283
+ **See**: [`permissions-storage-architecture.md`](permissions-storage-architecture.md)
284
+
285
+ ### 4. Relationship Types (RESOLVED)
286
+
287
+ **Decision**: **Free-form strings decided by agent**
288
+
289
+ **Rationale**:
290
+ - Flexibility for nuanced relationships
291
+ - LLMs excel at generating appropriate descriptors
292
+ - No schema changes needed for new types
293
+ - Natural language descriptions
294
+
295
+ **Examples**: "causes", "contradicts", "supports", "inspired_by", "depends_on", "similar_to", "prerequisite_for"
296
+
297
+ ### 5. Access Count Weighting (RESOLVED)
298
+
299
+ **Decision**: **Frequently accessed memories rank higher in search**
300
+
301
+ **Formula**:
302
+ ```
303
+ effective_weight = base_weight × access_multiplier × recency_multiplier × relationship_multiplier
304
+
305
+ where:
306
+ access_multiplier = 1 + (access_count / max_access_count) × 0.5
307
+ recency_multiplier = 1 + (days_since_access < 7 ? 0.3 : 0)
308
+ relationship_multiplier = 1 + (relationship_count / 10) × 0.2
309
+ ```
310
+
311
+ **See**: [`action-audit-memory-types.md`](action-audit-memory-types.md)
312
+
313
+ ---
314
+
315
+ ## Additional Features Designed
316
+
317
+ ### 1. Content Types Expansion
318
+
319
+ **Added**: 21+ content types including:
320
+ - `checklist` - For grocery lists, packing, camping prep
321
+ - `recipe` - Cooking recipes and instructions
322
+ - `bookmark` - Web bookmarks and resources
323
+ - `journal` - Daily journal entries
324
+ - `reference` - Quick reference guides
325
+
326
+ **See**: [`content-types-expansion.md`](content-types-expansion.md)
327
+
328
+ ### 2. Memory Templates
329
+
330
+ **Purpose**: Guide structured memory creation
331
+
332
+ **Features**:
333
+ - Field definitions with validation
334
+ - Template inheritance
335
+ - Auto-suggestion based on context
336
+ - Computed fields
337
+ - Conditional fields
338
+
339
+ **See**: [`memory-templates-design.md`](memory-templates-design.md)
340
+
341
+ ### 3. Action & Audit Tracking
342
+
343
+ **Memory Types**:
344
+ - `action` - Track agent actions
345
+ - `audit` - Compliance and security trail
346
+ - `event-log` - System events (optional)
347
+ - `history` - Memory change history
348
+
349
+ **Cost**: ~$1.70/user/year with recommended strategy
350
+
351
+ **See**: [`action-audit-memory-types.md`](action-audit-memory-types.md)
352
+
353
+ ---
354
+
355
+ ## Implementation Priorities
356
+
357
+ ### 🔴 Phase 1: Core Functionality (MVP)
358
+
359
+ 1. **Memory CRUD Operations**
360
+ - `remember_create_memory`
361
+ - `remember_update_memory`
362
+ - `remember_delete_memory`
363
+ - `remember_search_memory`
364
+ - `remember_find_similar`
365
+
366
+ 2. **Basic Relationships**
367
+ - `remember_create_relationship`
368
+ - `remember_search_relationship`
369
+ - `remember_delete_relationship`
370
+
371
+ 3. **Multi-Tenancy**
372
+ - Per-user Weaviate collections
373
+ - User isolation
374
+ - Firebase authentication
375
+
376
+ 4. **Location Integration**
377
+ - Extract from request context
378
+ - Store with memories
379
+ - Basic location search
380
+
381
+ ### 🟡 Phase 2: Trust & Permissions
382
+
383
+ 5. **Trust System**
384
+ - Prompt-based enforcement
385
+ - Validation for low-trust memories
386
+ - Trust relationship storage (Firestore)
387
+
388
+ 6. **Cross-User Access**
389
+ - Permission management
390
+ - Trust level filtering
391
+ - Access auditing
392
+
393
+ 7. **GraphQL Queries**
394
+ - `remember_query_memory`
395
+ - Query validation
396
+ - Security restrictions
397
+
398
+ ### 🟢 Phase 3: Advanced Features
399
+
400
+ 8. **Templates**
401
+ - Template creation and management
402
+ - Validation
403
+ - Auto-suggestion
404
+
405
+ 9. **Action Tracking**
406
+ - Action memory type
407
+ - Audit logging
408
+ - Trust violation tracking
409
+
410
+ 10. **Analytics**
411
+ - Access count tracking
412
+ - Weight calculation
413
+ - Usage metrics
414
+
415
+ ---
416
+
417
+ ## Reference Documents
418
+
419
+ All design specifications:
420
+
421
+ 1. [`requirements.md`](requirements.md) - Original requirements
422
+ 2. [`requirements-enhancements.md`](requirements-enhancements.md) - This document
423
+ 3. [`content-types-expansion.md`](content-types-expansion.md) - Content type analysis
424
+ 4. [`memory-templates-design.md`](memory-templates-design.md) - Template system
425
+ 5. [`action-audit-memory-types.md`](action-audit-memory-types.md) - Action tracking
426
+ 6. [`location-handling-architecture.md`](location-handling-architecture.md) - Location architecture
427
+ 7. [`trust-system-implementation.md`](trust-system-implementation.md) - Trust enforcement
428
+ 8. [`permissions-storage-architecture.md`](permissions-storage-architecture.md) - Permission storage
429
+ 9. [`trust-escalation-prevention.md`](trust-escalation-prevention.md) - Trust escalation prevention
430
+ 10. [`access-control-result-pattern.md`](access-control-result-pattern.md) - Type-safe error handling
431
+
432
+ ---
433
+
434
+ ## Questions Resolved
435
+
436
+ ### ✅ Answered During Planning
437
+
438
+ 1. **Trust System**: Continuous 0-1, prompt-based enforcement
439
+ 2. **Cross-User Access**: Firestore permissions, trust-based filtering
440
+ 3. **GraphQL Access**: Restricted subset with validation
441
+ 4. **Location**: Platform-provided via cookies
442
+ 5. **Weight**: Auto-calculated with access count multiplier
443
+ 6. **Relationships**: Free-form types, undirected, 2...N memories
444
+ 7. **Storage**: Hybrid - Firestore + Weaviate
445
+ 8. **Tool Mapping**: `index_existing` → `remember_update_memory`
446
+
447
+ ### ❓ Remaining Questions
448
+
449
+ 1. **Storage Limits**: Max memories/relationships per user?
450
+ 2. **Migration**: Existing data to migrate?
451
+ 3. **MVP Scope**: Which features for initial release?
452
+ 4. **Pricing**: Cost structure for users?
453
+
454
+ ---
455
+
456
+ ## Next Steps
457
+
458
+ 1. ✅ **Planning Complete** - All major design decisions made
459
+ 2. **Create Bootstrap Document** - Comprehensive guide for implementation
460
+ 3. **Begin Phase 1** - Implement core memory operations
461
+ 4. **Set up Infrastructure** - Weaviate + Firestore + Firebase Auth
462
+ 5. **Implement Multi-Tenancy** - Per-user collections and isolation
463
+
464
+ ---
465
+
466
+ **Document Status**: Complete - All design decisions documented
467
+ **Ready For**: Implementation phase
468
+ **Last Updated**: 2026-02-11
@@ -0,0 +1,56 @@
1
+ Now that you understand this project, read @/agent/requirements.md and then create an agent/bootstrap-related-project.md which documents enough context for another agent to start building the related project from scratch.
2
+
3
+ ---
4
+
5
+ Requirements:
6
+ - Multi-tenant support. The server will have access to a `user_id` field which uniquely identifies a user.
7
+
8
+ This `user_id` acts as a search filter. Only documents with the exact `user_id` may be searched,
9
+ retrieved, GraphQL queried. Documents can only be created in the `user_id` space.
10
+
11
+ Document the standing document schema in `.yaml`. The related app will make modifications to this,
12
+ but for now document it the same way.
13
+
14
+ The key change is multi-tenancy.
15
+
16
+ The project will be called `remember-mcp`.
17
+
18
+ The tool set will be:
19
+ - `remember_create_memory`
20
+ - `remember_update_memory`
21
+ - `remember_delete_memory`
22
+ - `remember_search_memory`
23
+ - `remember_find_similar`
24
+ - `remember_create_relationship`
25
+ - `remember_update_relationship`
26
+ - `remember_search_relationship`
27
+ - `remember_delete_relationship`
28
+ - `remember_query_memory` - Support direct GraphQL queries of the Weaviate instance
29
+
30
+ What operations do `search-index` and `ask-index` map to?
31
+
32
+ Memories will have a `weight` score from `0 - 1`, which determines the weight/significance
33
+ of the memory. This influences which memories receive priority.
34
+
35
+ The memories will track `location` in two methods, full address of current location and GPSs
36
+ coordinates. This can be used to enhance search to find memories based on the location they were created.
37
+
38
+ Memories will have a `trust` score from `0 - 1`, which represents the level of trust required for a
39
+ caller to be able to access a memory. For instance, `0` means the memory cannot be retrieved directly,
40
+ but it is possible to intimate information about the memory. `1` means full trust, and the memory can be
41
+ retrieved directly. This is designed to support a future enhancement where MCP clients with a different
42
+ `user_id` that are properly authenticated and have proper authorization to interact with other user's
43
+ memories on the basis of their trust level respective to the `user_id` whose memories are being accessed.
44
+ This is designed to support a feature where one user can chat with another user's agent, but the user
45
+ agent only exposes information if they trust the other user. The agent will track a memory
46
+ rating the trust of the caller user. The agent will update the trust memory with context as to why
47
+ it trusts this user or does not trust this user.
48
+
49
+ Memories may track relationships between memories. This is three fold:
50
+ - Relationship memory tracks IDs of connected memories
51
+ - Connected memories track IDs of relationships
52
+ - Relationships may bind 2 ... N memories in a single relationship
53
+ - Relationships include an observation about the connection
54
+
55
+ Each entity will track a `context` property. The `context` defines the context in which the memory
56
+ was created. The context is information about the conversation that generated the memory.