@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,282 @@
1
+ # Common Template Fields
2
+
3
+ **Concept**: Standard fields that should be included in all templates
4
+ **Created**: 2026-02-11
5
+ **Status**: Design Specification
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ All templates should include certain common fields to maintain consistency and enable useful features like source tracking, attribution, and verification.
12
+
13
+ ---
14
+
15
+ ## Common Fields (All Templates)
16
+
17
+ ### 1. **references** (array of URLs)
18
+
19
+ **Purpose**: Track source URLs that generated or inspired this memory
20
+
21
+ **Use Cases**:
22
+ - Recipe from online source → link to recipe website
23
+ - Learning note from article → link to article
24
+ - Person info from LinkedIn → link to profile
25
+ - Restaurant from review site → link to Yelp/Google Maps
26
+ - Product info from Amazon → link to product page
27
+
28
+ **Type**: Array of strings (URLs)
29
+
30
+ **Example**:
31
+ ```yaml
32
+ references: [
33
+ "https://www.seriouseats.com/perfect-chocolate-chip-cookies",
34
+ "https://www.youtube.com/watch?v=abc123"
35
+ ]
36
+ ```
37
+
38
+ ### 2. **notes** (text)
39
+
40
+ **Purpose**: Free-form additional information
41
+
42
+ **Already in most templates**: ✅
43
+
44
+ ### 3. **tags** (array)
45
+
46
+ **Purpose**: Categorization and organization
47
+
48
+ **Should add to all templates**
49
+
50
+ ### 4. **created_at** (datetime)
51
+
52
+ **Purpose**: When memory was created
53
+
54
+ **Auto-generated by system**
55
+
56
+ ---
57
+
58
+ ## Updated Template Pattern
59
+
60
+ ### Standard Template Structure
61
+
62
+ ```yaml
63
+ template_name: "Template Name"
64
+ description: "What this template is for"
65
+ category: "category_name"
66
+ fields:
67
+ # Template-specific fields
68
+ - name: "specific_field_1"
69
+ type: "string"
70
+ required: true
71
+
72
+ - name: "specific_field_2"
73
+ type: "string"
74
+ required: false
75
+
76
+ # Common fields (all templates)
77
+ - name: "references"
78
+ type: "array"
79
+ item_type: "string"
80
+ required: false
81
+ description: "Source URLs that generated or inspired this memory"
82
+ placeholder: ["https://example.com/source"]
83
+ validation:
84
+ pattern: "^https?://" # Must be valid URL
85
+
86
+ - name: "tags"
87
+ type: "array"
88
+ item_type: "string"
89
+ required: false
90
+ description: "Tags for organization and search"
91
+
92
+ - name: "notes"
93
+ type: "text"
94
+ required: false
95
+ description: "Additional notes and observations"
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Examples with References
101
+
102
+ ### Recipe Template
103
+ ```yaml
104
+ recipe_name: "Perfect Chocolate Chip Cookies"
105
+ ingredients: ["flour", "butter", "chocolate chips", ...]
106
+ instructions: ["Preheat oven...", "Mix ingredients..."]
107
+ references: [
108
+ "https://www.seriouseats.com/perfect-chocolate-chip-cookies",
109
+ "https://www.youtube.com/watch?v=cookie-tutorial"
110
+ ]
111
+ tags: ["dessert", "baking", "cookies"]
112
+ notes: "Modified to use less sugar"
113
+ ```
114
+
115
+ ### Learning Note Template
116
+ ```yaml
117
+ topic: "React Hooks Best Practices"
118
+ key_concepts: ["useState", "useEffect", "custom hooks"]
119
+ references: [
120
+ "https://react.dev/reference/react/hooks",
121
+ "https://kentcdodds.com/blog/react-hooks-best-practices",
122
+ "https://www.youtube.com/watch?v=hooks-tutorial"
123
+ ]
124
+ tags: ["react", "javascript", "web-development"]
125
+ notes: "Focus on useEffect cleanup functions"
126
+ ```
127
+
128
+ ### Person Template
129
+ ```yaml
130
+ name: "Sarah Chen"
131
+ relationship: ["professional"]
132
+ company: "Google"
133
+ references: [
134
+ "https://linkedin.com/in/sarahchen",
135
+ "https://twitter.com/sarahchen",
136
+ "https://sarahchen.com"
137
+ ]
138
+ tags: ["product-management", "AI", "tech"]
139
+ notes: "Met at TechCrunch Disrupt 2026"
140
+ ```
141
+
142
+ ### Restaurant Review Template
143
+ ```yaml
144
+ restaurant_name: "Nobu"
145
+ cuisine_type: "Japanese"
146
+ rating: 0.9 # 0-1 scale
147
+ references: [
148
+ "https://www.yelp.com/biz/nobu-san-francisco",
149
+ "https://www.google.com/maps/place/nobu",
150
+ "https://www.noburestaurants.com"
151
+ ]
152
+ tags: ["sushi", "fine-dining", "japanese"]
153
+ notes: "Try the black cod miso"
154
+ ```
155
+
156
+ ### Inventory Item Template
157
+ ```yaml
158
+ item_name: "Camping Tent"
159
+ quantity: 1
160
+ storage_location: "garage bin A4"
161
+ references: [
162
+ "https://www.rei.com/product/tent-model-123",
163
+ "https://www.youtube.com/watch?v=tent-setup-guide"
164
+ ]
165
+ tags: ["camping", "outdoor", "gear"]
166
+ notes: "Coleman Sundome 4-person"
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Benefits of References Field
172
+
173
+ ### 1. **Attribution**
174
+ - Credit original sources
175
+ - Track where information came from
176
+ - Verify information later
177
+
178
+ ### 2. **Verification**
179
+ - Check if source still exists
180
+ - Update information if source changes
181
+ - Validate accuracy
182
+
183
+ ### 3. **Discovery**
184
+ - Find related content
185
+ - Explore source websites
186
+ - Learn more about topic
187
+
188
+ ### 4. **Context**
189
+ - Understand origin of memory
190
+ - See what inspired the memory
191
+ - Track information provenance
192
+
193
+ ### 5. **Sharing**
194
+ - Share sources with others
195
+ - Recommend resources
196
+ - Build knowledge base
197
+
198
+ ---
199
+
200
+ ## Implementation
201
+
202
+ ### Template Field Definition
203
+
204
+ ```typescript
205
+ // Add to ALL templates
206
+ {
207
+ name: "references",
208
+ type: "array",
209
+ item_type: "string",
210
+ required: false,
211
+ description: "Source URLs that generated or inspired this memory",
212
+ validation: {
213
+ pattern: "^https?://", // Must be valid URL
214
+ max_items: 10, // Reasonable limit
215
+ error_message: "Must be a valid URL starting with http:// or https://"
216
+ },
217
+ placeholder: ["https://example.com/source"],
218
+ ui_hint: "url_input" // UI can show URL input field
219
+ }
220
+ ```
221
+
222
+ ### Auto-Population
223
+
224
+ ```typescript
225
+ // When creating memory from web content
226
+ async function createMemoryFromWebPage(url: string, content: string) {
227
+ return await remember_create_memory({
228
+ content: content,
229
+ references: [url], // ✅ Auto-populate from source
230
+ tags: extractTagsFromUrl(url)
231
+ });
232
+ }
233
+
234
+ // When agent fetches information
235
+ User: "Look up the recipe for chocolate chip cookies"
236
+ Agent: *fetches from seriouseats.com*
237
+ Agent: remember_create_memory({
238
+ template_id: "recipe",
239
+ content: {
240
+ recipe_name: "Chocolate Chip Cookies",
241
+ ingredients: [...],
242
+ references: ["https://www.seriouseats.com/..."] // ✅ Auto-added
243
+ }
244
+ })
245
+ ```
246
+
247
+ ---
248
+
249
+ ## Reference Validation
250
+
251
+ ```typescript
252
+ function validateReferences(references: string[]): ValidationResult {
253
+ const errors = [];
254
+
255
+ for (const ref of references) {
256
+ // Check if valid URL
257
+ try {
258
+ new URL(ref);
259
+ } catch {
260
+ errors.push(`Invalid URL: ${ref}`);
261
+ }
262
+
263
+ // Check if accessible (optional)
264
+ const accessible = await checkUrlAccessible(ref);
265
+ if (!accessible) {
266
+ errors.push(`URL not accessible: ${ref}`);
267
+ }
268
+ }
269
+
270
+ return {
271
+ valid: errors.length === 0,
272
+ errors
273
+ };
274
+ }
275
+ ```
276
+
277
+ ---
278
+
279
+ **Status**: Design Specification
280
+ **Field**: `references` (array of URLs)
281
+ **Scope**: All templates
282
+ **Benefit**: Source tracking, attribution, verification, discovery
@@ -0,0 +1,407 @@
1
+ # Complete Remember-MCP Tool Set
2
+
3
+ **Project**: remember-mcp
4
+ **Created**: 2026-02-11
5
+ **Status**: Final Specification
6
+
7
+ ---
8
+
9
+ ## Complete Tool Set (18 Tools)
10
+
11
+ ### Core Memory Operations (6 tools)
12
+
13
+ #### 1. `remember_create_memory`
14
+ Create a new memory with optional template
15
+
16
+ **Parameters**:
17
+ - `content`: Memory content (string or structured object)
18
+ - `template_id`: Optional template to use
19
+ - `type`: Content type (inventory, note, event, etc.)
20
+ - `weight`: Significance (0-1, default from preferences)
21
+ - `trust`: Access control (0-1, default from preferences)
22
+ - `tags`: Array of tags
23
+ - `references`: Array of source URLs
24
+ - `skip_template_suggestion`: Boolean to skip auto-suggestion
25
+
26
+ **Returns**: Memory ID or template suggestion
27
+
28
+ ---
29
+
30
+ #### 2. `remember_update_memory`
31
+ Update an existing memory
32
+
33
+ **Parameters**:
34
+ - `memory_id`: ID of memory to update
35
+ - `updates`: Partial memory object with fields to update
36
+ - `reason`: Optional reason for update (for history)
37
+
38
+ **Returns**: Updated memory
39
+
40
+ ---
41
+
42
+ #### 3. `remember_delete_memory`
43
+ Delete a memory
44
+
45
+ **Parameters**:
46
+ - `memory_id`: ID of memory to delete
47
+ - `delete_relationships`: Boolean - also delete connected relationships?
48
+
49
+ **Returns**: Confirmation
50
+
51
+ ---
52
+
53
+ #### 4. `remember_search_memory`
54
+ Hybrid search for memories
55
+
56
+ **Parameters**:
57
+ - `query`: Search query string
58
+ - `alpha`: Balance between semantic (1.0) and keyword (0.0), default from preferences
59
+ - `filters`: Content type, tags, date range, weight threshold, trust level, location
60
+ - `include_relationships`: Boolean - include relationships in results
61
+ - `limit`: Max results (default from preferences)
62
+ - `offset`: Pagination offset
63
+
64
+ **Returns**: Array of memories (and optionally relationships)
65
+
66
+ ---
67
+
68
+ #### 5. `remember_find_similar`
69
+ Find memories similar to a reference memory
70
+
71
+ **Parameters**:
72
+ - `reference_id`: Memory ID to find similar to
73
+ - `similarity_threshold`: Minimum similarity (0-1)
74
+ - `limit`: Max results
75
+ - `filters`: Optional filters
76
+
77
+ **Returns**: Array of similar memories with similarity scores
78
+
79
+ ---
80
+
81
+ #### 6. `remember_query_memory`
82
+ RAG + GraphQL queries for complex questions
83
+
84
+ **Parameters**:
85
+ - `question`: Natural language question
86
+ - `max_sources`: Max memories to use for context
87
+ - `filters`: Optional filters
88
+ - `include_relationships`: Boolean - include relationship context
89
+
90
+ **Returns**: AI-generated answer with source citations
91
+
92
+ ---
93
+
94
+ ### Relationship Operations (4 tools)
95
+
96
+ #### 7. `remember_create_relationship`
97
+ Create a relationship between memories
98
+
99
+ **Parameters**:
100
+ - `memory_ids`: Array of 2...N memory IDs to connect
101
+ - `relationship_type`: Free-form string (e.g., "inspired_by", "contradicts")
102
+ - `observation`: Description of the connection
103
+ - `strength`: Relationship strength (0-1)
104
+ - `confidence`: Confidence in relationship (0-1)
105
+
106
+ **Returns**: Relationship ID
107
+
108
+ ---
109
+
110
+ #### 8. `remember_update_relationship`
111
+ Update an existing relationship
112
+
113
+ **Parameters**:
114
+ - `relationship_id`: ID of relationship to update
115
+ - `updates`: Partial relationship object
116
+ - `reason`: Optional reason for update
117
+
118
+ **Returns**: Updated relationship
119
+
120
+ ---
121
+
122
+ #### 9. `remember_search_relationship`
123
+ Search relationships by observation or type
124
+
125
+ **Parameters**:
126
+ - `query`: Search query (searches observation text)
127
+ - `memory_id`: Optional - filter to relationships involving this memory
128
+ - `relationship_type`: Optional - filter by type
129
+ - `limit`: Max results
130
+
131
+ **Returns**: Array of relationships
132
+
133
+ ---
134
+
135
+ #### 10. `remember_delete_relationship`
136
+ Delete a relationship
137
+
138
+ **Parameters**:
139
+ - `relationship_id`: ID of relationship to delete
140
+ - `update_memories`: Boolean - remove relationship ID from connected memories?
141
+
142
+ **Returns**: Confirmation
143
+
144
+ ---
145
+
146
+ ### Preference Management (2 tools)
147
+
148
+ #### 11. `remember_update_preferences`
149
+ Update user preferences through conversation
150
+
151
+ **Parameters**:
152
+ - `preference_path`: Dot-notation path (e.g., "templates.auto_suggest")
153
+ - `value`: New value (boolean, number, string, or array)
154
+ - `reason`: Optional reason for change
155
+
156
+ **Returns**: Old value, new value, confirmation message
157
+
158
+ **Examples**:
159
+ - "Stop suggesting templates" → `{ preference_path: "templates.auto_suggest", value: false }`
160
+ - "Show 20 results" → `{ preference_path: "search.default_limit", value: 20 }`
161
+
162
+ ---
163
+
164
+ #### 12. `remember_get_preferences`
165
+ Get current user preferences
166
+
167
+ **Parameters**:
168
+ - `category`: Optional filter (templates, search, privacy, etc.)
169
+
170
+ **Returns**: User preferences object or filtered by category
171
+
172
+ ---
173
+
174
+ ### Template Management (5 tools - Optional, Phase 3)
175
+
176
+ #### 13. `remember_create_template`
177
+ Create a custom template
178
+
179
+ **Parameters**:
180
+ - `template_name`: Name of template
181
+ - `description`: What template is for
182
+ - `fields`: Array of field definitions
183
+ - `trigger_keywords`: Keywords that suggest this template
184
+ - `auto_apply`: Boolean - auto-suggest this template
185
+
186
+ **Returns**: Template ID
187
+
188
+ ---
189
+
190
+ #### 14. `remember_list_templates`
191
+ List available templates
192
+
193
+ **Parameters**:
194
+ - `include_default`: Boolean - include default templates
195
+ - `include_user`: Boolean - include user's custom templates
196
+ - `category`: Optional category filter
197
+ - `sort_by`: popularity, name, recent
198
+
199
+ **Returns**: Array of templates
200
+
201
+ ---
202
+
203
+ #### 15. `remember_get_template`
204
+ Get template details
205
+
206
+ **Parameters**:
207
+ - `template_id`: Template ID
208
+
209
+ **Returns**: Full template definition
210
+
211
+ ---
212
+
213
+ #### 16. `remember_update_template`
214
+ Update a user template
215
+
216
+ **Parameters**:
217
+ - `template_id`: Template ID (must be user's template)
218
+ - `updates`: Partial template object
219
+
220
+ **Returns**: Updated template
221
+
222
+ ---
223
+
224
+ #### 17. `remember_delete_template`
225
+ Delete a user template
226
+
227
+ **Parameters**:
228
+ - `template_id`: Template ID (must be user's template)
229
+
230
+ **Returns**: Confirmation
231
+
232
+ ---
233
+
234
+ ### Permission Management (1 tool - Phase 2)
235
+
236
+ #### 18. `remember_grant_access`
237
+ Grant another user access to your memories
238
+
239
+ **Parameters**:
240
+ - `accessor_user_id`: User to grant access to
241
+ - `trust_level`: Trust level (0-1)
242
+ - `trust_summary`: Brief explanation
243
+ - `allowed_tags`: Optional - limit to specific tags
244
+ - `excluded_tags`: Optional - exclude specific tags
245
+ - `expires_at`: Optional expiration date
246
+
247
+ **Returns**: Permission confirmation
248
+
249
+ ---
250
+
251
+ ## Tool Organization by Phase
252
+
253
+ ### Phase 1: MVP (12 tools)
254
+
255
+ **Memory Operations** (6):
256
+ 1. remember_create_memory
257
+ 2. remember_update_memory
258
+ 3. remember_delete_memory
259
+ 4. remember_search_memory
260
+ 5. remember_find_similar
261
+ 6. remember_query_memory
262
+
263
+ **Relationship Operations** (4):
264
+ 7. remember_create_relationship
265
+ 8. remember_update_relationship
266
+ 9. remember_search_relationship
267
+ 10. remember_delete_relationship
268
+
269
+ **Preferences** (2):
270
+ 11. remember_update_preferences
271
+ 12. remember_get_preferences
272
+
273
+ ### Phase 2: Trust & Permissions (1 tool)
274
+
275
+ **Permission Management** (1):
276
+ 13. remember_grant_access
277
+
278
+ ### Phase 3: Templates (5 tools)
279
+
280
+ **Template Management** (5):
281
+ 14. remember_create_template
282
+ 15. remember_list_templates
283
+ 16. remember_get_template
284
+ 17. remember_update_template
285
+ 18. remember_delete_template
286
+
287
+ ---
288
+
289
+ ## Additional Tools from Design Documents
290
+
291
+ ### Suggested Additional Tools (Optional)
292
+
293
+ #### A. `remember_revoke_access`
294
+ Revoke access from a user
295
+
296
+ **Parameters**:
297
+ - `accessor_user_id`: User to revoke access from
298
+ - `reason`: Reason for revocation
299
+
300
+ ---
301
+
302
+ #### B. `remember_list_accessors`
303
+ List who can access your memories
304
+
305
+ **Parameters**:
306
+ - `sort_by`: trust_level, last_accessed, granted_at
307
+
308
+ **Returns**: Array of users with access and their trust levels
309
+
310
+ ---
311
+
312
+ #### C. `remember_reset_block`
313
+ Reset a memory block after trust violations
314
+
315
+ **Parameters**:
316
+ - `accessor_user_id`: User to unblock
317
+ - `memory_id`: Memory to unblock
318
+ - `reason`: Reason for reset
319
+
320
+ ---
321
+
322
+ #### D. `remember_get_access_logs`
323
+ View access attempts to your memories
324
+
325
+ **Parameters**:
326
+ - `accessor_user_id`: Optional filter
327
+ - `memory_id`: Optional filter
328
+ - `blocked_only`: Boolean - only show blocked attempts
329
+
330
+ **Returns**: Array of access attempt logs
331
+
332
+ ---
333
+
334
+ #### E. `remember_suggest_templates`
335
+ Explicitly request template suggestions
336
+
337
+ **Parameters**:
338
+ - `content`: Content to analyze
339
+ - `limit`: Max suggestions
340
+
341
+ **Returns**: Array of template suggestions
342
+
343
+ ---
344
+
345
+ #### F. `remember_copy_template`
346
+ Copy a default template to customize
347
+
348
+ **Parameters**:
349
+ - `source_template_id`: Default template to copy
350
+ - `customizations`: Optional modifications
351
+
352
+ **Returns**: New user template ID
353
+
354
+ ---
355
+
356
+ #### G. `remember_validate_memory`
357
+ Validate memory against template
358
+
359
+ **Parameters**:
360
+ - `template_id`: Template to validate against
361
+ - `content`: Memory content to validate
362
+
363
+ **Returns**: Validation result with errors
364
+
365
+ ---
366
+
367
+ ## Recommended Final Tool Set
368
+
369
+ ### MVP (Phase 1): 12 Core Tools
370
+ - 6 memory operations
371
+ - 4 relationship operations
372
+ - 2 preference management
373
+
374
+ ### Phase 2: +5 Permission Tools
375
+ - remember_grant_access
376
+ - remember_revoke_access
377
+ - remember_list_accessors
378
+ - remember_reset_block
379
+ - remember_get_access_logs
380
+
381
+ ### Phase 3: +7 Template Tools
382
+ - remember_create_template
383
+ - remember_list_templates
384
+ - remember_get_template
385
+ - remember_update_template
386
+ - remember_delete_template
387
+ - remember_copy_template
388
+ - remember_validate_memory
389
+
390
+ **Total**: 24 tools (12 MVP + 5 permissions + 7 templates)
391
+
392
+ ---
393
+
394
+ ## Tool Count Summary
395
+
396
+ | Phase | Tools | Total |
397
+ |-------|-------|-------|
398
+ | Phase 1 (MVP) | 12 | 12 |
399
+ | Phase 2 (Permissions) | +5 | 17 |
400
+ | Phase 3 (Templates) | +7 | 24 |
401
+
402
+ ---
403
+
404
+ **Status**: Final Specification
405
+ **MVP Tools**: 12
406
+ **Complete Tool Set**: 24
407
+ **All tools support natural conversation interface**