@prmichaelsen/remember-mcp 3.15.3 → 3.15.5

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 (132) hide show
  1. package/AGENT.md +363 -5
  2. package/CHANGELOG.md +7 -0
  3. package/agent/commands/acp.clarification-capture.md +386 -0
  4. package/agent/commands/acp.clarification-create.md +50 -0
  5. package/agent/commands/acp.command-create.md +60 -0
  6. package/agent/commands/acp.design-create.md +62 -0
  7. package/agent/commands/acp.design-reference.md +355 -0
  8. package/agent/commands/acp.index.md +423 -0
  9. package/agent/commands/acp.init.md +48 -0
  10. package/agent/commands/acp.package-create.md +1 -0
  11. package/agent/commands/acp.package-info.md +1 -0
  12. package/agent/commands/acp.package-install.md +19 -0
  13. package/agent/commands/acp.package-list.md +1 -0
  14. package/agent/commands/acp.package-publish.md +1 -0
  15. package/agent/commands/acp.package-remove.md +1 -0
  16. package/agent/commands/acp.package-search.md +1 -0
  17. package/agent/commands/acp.package-update.md +1 -0
  18. package/agent/commands/acp.package-validate.md +1 -0
  19. package/agent/commands/acp.pattern-create.md +60 -0
  20. package/agent/commands/acp.plan.md +25 -0
  21. package/agent/commands/acp.proceed.md +621 -75
  22. package/agent/commands/acp.project-create.md +3 -0
  23. package/agent/commands/acp.project-info.md +3 -0
  24. package/agent/commands/acp.project-list.md +3 -1
  25. package/agent/commands/acp.project-set.md +1 -0
  26. package/agent/commands/acp.project-update.md +14 -3
  27. package/agent/commands/acp.projects-restore.md +228 -0
  28. package/agent/commands/acp.projects-sync.md +347 -0
  29. package/agent/commands/acp.report.md +13 -0
  30. package/agent/commands/acp.resume.md +3 -1
  31. package/agent/commands/acp.sessions.md +301 -0
  32. package/agent/commands/acp.status.md +13 -0
  33. package/agent/commands/acp.sync.md +1 -0
  34. package/agent/commands/acp.task-create.md +105 -3
  35. package/agent/commands/acp.update.md +1 -0
  36. package/agent/commands/acp.validate.md +32 -2
  37. package/agent/commands/acp.version-check-for-updates.md +1 -0
  38. package/agent/commands/acp.version-check.md +1 -0
  39. package/agent/commands/acp.version-update.md +1 -0
  40. package/agent/commands/command.template.md +23 -0
  41. package/agent/commands/git.commit.md +1 -0
  42. package/agent/commands/git.init.md +1 -0
  43. package/agent/design/complete-tool-set.md +157 -233
  44. package/agent/design/design.template.md +18 -0
  45. package/agent/design/user-preferences.md +11 -7
  46. package/agent/milestones/milestone-19-new-search-ghost-tools.md +46 -0
  47. package/agent/package.template.yaml +50 -0
  48. package/agent/patterns/pattern.template.md +18 -0
  49. package/agent/progress.yaml +162 -6
  50. package/agent/scripts/acp.common.sh +258 -15
  51. package/agent/scripts/acp.install.sh +91 -4
  52. package/agent/scripts/acp.package-create.sh +0 -1
  53. package/agent/scripts/acp.package-info.sh +19 -1
  54. package/agent/scripts/acp.package-install-optimized.sh +1 -1
  55. package/agent/scripts/acp.package-install.sh +388 -38
  56. package/agent/scripts/acp.package-list.sh +52 -4
  57. package/agent/scripts/acp.package-remove.sh +77 -1
  58. package/agent/scripts/acp.package-search.sh +2 -2
  59. package/agent/scripts/acp.package-update.sh +91 -12
  60. package/agent/scripts/acp.package-validate.sh +136 -1
  61. package/agent/scripts/acp.project-info.sh +34 -11
  62. package/agent/scripts/acp.project-list.sh +4 -0
  63. package/agent/scripts/acp.project-update.sh +66 -19
  64. package/agent/scripts/acp.projects-restore.sh +170 -0
  65. package/agent/scripts/acp.projects-sync.sh +155 -0
  66. package/agent/scripts/acp.sessions.sh +725 -0
  67. package/agent/scripts/acp.version-update.sh +21 -3
  68. package/agent/scripts/acp.yaml-parser.sh +20 -6
  69. package/agent/tasks/milestone-19-new-search-ghost-tools/task-203-create-search-by-tool.md +143 -0
  70. package/agent/tasks/milestone-19-new-search-ghost-tools/task-204-add-new-filters-existing-tools.md +77 -0
  71. package/agent/tasks/milestone-19-new-search-ghost-tools/task-205-add-feel-fields-create-update.md +137 -0
  72. package/agent/tasks/milestone-19-new-search-ghost-tools/task-206-add-byproperty-bysignificance-modes.md +135 -0
  73. package/agent/tasks/milestone-19-new-search-ghost-tools/task-207-add-emotional-composites-search-results.md +88 -0
  74. package/agent/tasks/milestone-19-new-search-ghost-tools/task-208-add-bybroad-byrandom-modes.md +115 -0
  75. package/agent/tasks/milestone-19-new-search-ghost-tools/task-209-create-ghost-memory-tools.md +192 -0
  76. package/agent/tasks/milestone-19-new-search-ghost-tools/task-210-create-get-core-tool.md +203 -0
  77. package/agent/tasks/milestone-19-new-search-ghost-tools/task-211-create-search-space-by-tool.md +182 -0
  78. package/agent/tasks/task-1-{title}.template.md +19 -0
  79. package/agent/tasks/unassigned/bug-report-remember-core-e2e-findings.md +99 -0
  80. package/dist/e2e-helpers.d.ts +26 -0
  81. package/dist/ghost-persona.e2e.d.ts +8 -0
  82. package/dist/memory-crud.e2e.d.ts +8 -0
  83. package/dist/preferences.e2e.d.ts +8 -0
  84. package/dist/relationships.e2e.d.ts +8 -0
  85. package/dist/search-modes.e2e.d.ts +8 -0
  86. package/dist/server-factory.js +2158 -45
  87. package/dist/server.js +1403 -44
  88. package/dist/shared-spaces.e2e.d.ts +8 -0
  89. package/dist/tools/create-ghost-memory.d.ts +70 -0
  90. package/dist/tools/create-memory.d.ts +175 -0
  91. package/dist/tools/get-core.d.ts +28 -0
  92. package/dist/tools/get-core.spec.d.ts +2 -0
  93. package/dist/tools/ghost-tools.spec.d.ts +2 -0
  94. package/dist/tools/query-ghost-memory.d.ts +34 -0
  95. package/dist/tools/query-memory.d.ts +4 -0
  96. package/dist/tools/search-by.d.ts +147 -0
  97. package/dist/tools/search-by.spec.d.ts +2 -0
  98. package/dist/tools/search-ghost-memory-by.d.ts +54 -0
  99. package/dist/tools/search-ghost-memory.d.ts +53 -0
  100. package/dist/tools/search-memory.d.ts +19 -0
  101. package/dist/tools/search-space-by.d.ts +78 -0
  102. package/dist/tools/search-space-by.spec.d.ts +2 -0
  103. package/dist/tools/search-space.d.ts +2 -0
  104. package/dist/tools/update-ghost-memory.d.ts +51 -0
  105. package/dist/tools/update-memory.d.ts +175 -0
  106. package/jest.e2e.config.js +11 -0
  107. package/package.json +2 -2
  108. package/src/e2e-helpers.ts +86 -0
  109. package/src/ghost-persona.e2e.ts +215 -0
  110. package/src/memory-crud.e2e.ts +203 -0
  111. package/src/preferences.e2e.ts +88 -0
  112. package/src/relationships.e2e.ts +156 -0
  113. package/src/search-modes.e2e.ts +184 -0
  114. package/src/server-factory.ts +56 -0
  115. package/src/shared-spaces.e2e.ts +204 -0
  116. package/src/tools/create-ghost-memory.ts +103 -0
  117. package/src/tools/create-memory.ts +45 -1
  118. package/src/tools/get-core.spec.ts +223 -0
  119. package/src/tools/get-core.ts +109 -0
  120. package/src/tools/ghost-tools.spec.ts +361 -0
  121. package/src/tools/query-ghost-memory.ts +63 -0
  122. package/src/tools/query-memory.ts +4 -0
  123. package/src/tools/search-by.spec.ts +325 -0
  124. package/src/tools/search-by.ts +298 -0
  125. package/src/tools/search-ghost-memory-by.ts +80 -0
  126. package/src/tools/search-ghost-memory.ts +73 -0
  127. package/src/tools/search-memory.ts +23 -0
  128. package/src/tools/search-space-by.spec.ts +289 -0
  129. package/src/tools/search-space-by.ts +173 -0
  130. package/src/tools/search-space.ts +20 -1
  131. package/src/tools/update-ghost-memory.ts +86 -0
  132. package/src/tools/update-memory.ts +45 -1
@@ -1,12 +1,13 @@
1
1
  # Complete Remember-MCP Tool Set
2
2
 
3
- **Project**: remember-mcp
4
- **Created**: 2026-02-11
5
- **Status**: Final Specification
3
+ **Project**: remember-mcp
4
+ **Created**: 2026-02-11
5
+ **Last Updated**: 2026-03-07
6
+ **Status**: Implemented (v3.15.4)
6
7
 
7
8
  ---
8
9
 
9
- ## Complete Tool Set (18 Tools)
10
+ ## Implemented Tool Set (21 Tools)
10
11
 
11
12
  ### Core Memory Operations (6 tools)
12
13
 
@@ -14,380 +15,302 @@
14
15
  Create a new memory with optional template
15
16
 
16
17
  **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)
18
+ - `content` (required): Memory content
19
+ - `title`: Optional title
20
+ - `type`: Content type (45+ types)
21
+ - `weight`: Significance (0-1)
22
+ - `trust`: Access control (0-1)
22
23
  - `tags`: Array of tags
23
24
  - `references`: Array of source URLs
24
- - `skip_template_suggestion`: Boolean to skip auto-suggestion
25
+ - `template_id`: Optional template
26
+ - `parent_id`: For comment threading
27
+ - `thread_root_id`: Thread root reference
28
+ - `moderation_flags`: Per-space moderation
25
29
 
26
- **Returns**: Memory ID or template suggestion
30
+ **Returns**: CreateMemoryResult with memory_id, created_at, message
27
31
 
28
32
  ---
29
33
 
30
34
  #### 2. `remember_update_memory`
31
- Update an existing memory
35
+ Update an existing memory with partial updates
32
36
 
33
37
  **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)
38
+ - `memory_id` (required): ID of memory to update
39
+ - `content`, `title`, `type`, `weight`, `trust`, `tags`, `references`, `parent_id`, `thread_root_id`: Fields to update
37
40
 
38
- **Returns**: Updated memory
41
+ **Returns**: UpdateMemoryResult with updated_at, version, updated_fields
39
42
 
40
43
  ---
41
44
 
42
45
  #### 3. `remember_delete_memory`
43
- Delete a memory
46
+ Request to delete a memory (two-phase: generates token, requires `remember_confirm`)
44
47
 
45
48
  **Parameters**:
46
- - `memory_id`: ID of memory to delete
47
- - `delete_relationships`: Boolean - also delete connected relationships?
49
+ - `memory_id` (required): ID of memory to delete
50
+ - `reason`: Optional reason
48
51
 
49
- **Returns**: Confirmation
52
+ **Returns**: Token for confirmation, expires_at (5 minutes)
50
53
 
51
54
  ---
52
55
 
53
56
  #### 4. `remember_search_memory`
54
- Hybrid search for memories
57
+ Hybrid semantic + keyword search for memories and relationships
55
58
 
56
59
  **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
60
+ - `query` (required): Search query
61
+ - `alpha`: Balance semantic (1.0) vs keyword (0.0), default 0.7
62
+ - `limit`, `offset`: Pagination
63
+ - `filters`: Content type, tags, weight, trust, date range
64
+ - `include_relationships`: Include relationships (default true)
65
+ - `deleted_filter`: "exclude" | "include" | "only" (default "exclude")
63
66
 
64
- **Returns**: Array of memories (and optionally relationships)
67
+ **Returns**: SearchResult with memories array, relationships array, total count
65
68
 
66
69
  ---
67
70
 
68
71
  #### 5. `remember_find_similar`
69
- Find memories similar to a reference memory
72
+ Find memories similar to a given memory or text using vector similarity
70
73
 
71
74
  **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
75
+ - `memory_id` OR `text` (at least one required)
76
+ - `limit`: Default 10
77
+ - `min_similarity`: Default 0.7
78
+ - `include_relationships`: Default false
79
+ - `deleted_filter`: "exclude" | "include" | "only"
76
80
 
77
- **Returns**: Array of similar memories with similarity scores
81
+ **Returns**: FindSimilarResult with similar_memories array, total count
78
82
 
79
83
  ---
80
84
 
81
85
  #### 6. `remember_query_memory`
82
- RAG + GraphQL queries for complex questions
86
+ RAG-optimized natural language queries (pure semantic search)
83
87
 
84
88
  **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
+ - `query` (required): Natural language question
90
+ - `limit`: Default 5
91
+ - `min_relevance`: Default 0.6
92
+ - `filters`: Content type, tags, weight, trust, date
93
+ - `include_context`: Boolean
94
+ - `format`: 'detailed' | 'compact'
95
+ - `deleted_filter`: "exclude" | "include" | "only"
89
96
 
90
- **Returns**: AI-generated answer with source citations
97
+ **Returns**: QueryMemoryResult with memories array, total count, context_summary
91
98
 
92
99
  ---
93
100
 
94
101
  ### Relationship Operations (4 tools)
95
102
 
96
103
  #### 7. `remember_create_relationship`
97
- Create a relationship between memories
104
+ Create a relationship connecting 2 or more memories
98
105
 
99
106
  **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)
107
+ - `memory_ids` (required): Array of 2+ memory IDs
108
+ - `relationship_type` (required): Free-form string
109
+ - `observation` (required): Description of the connection
110
+ - `strength`: 0-1, default 0.5
111
+ - `confidence`: 0-1, default 0.8
112
+ - `tags`: Array of tags
105
113
 
106
- **Returns**: Relationship ID
114
+ **Returns**: CreateRelationshipResult with relationship_id, memory_ids, created_at
107
115
 
108
116
  ---
109
117
 
110
118
  #### 8. `remember_update_relationship`
111
- Update an existing relationship
119
+ Update an existing relationship with partial updates
112
120
 
113
121
  **Parameters**:
114
- - `relationship_id`: ID of relationship to update
115
- - `updates`: Partial relationship object
116
- - `reason`: Optional reason for update
122
+ - `relationship_id` (required)
123
+ - `relationship_type`, `observation`, `strength`, `confidence`, `tags`: Fields to update
117
124
 
118
- **Returns**: Updated relationship
125
+ **Returns**: UpdateRelationshipResult with relationship_id, updated_at, version, updated_fields
119
126
 
120
127
  ---
121
128
 
122
129
  #### 9. `remember_search_relationship`
123
- Search relationships by observation or type
130
+ Search relationships by observation text or type
124
131
 
125
132
  **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
133
+ - `query` (required): Searches observation text
134
+ - `relationship_types`: Filter by type(s)
135
+ - `strength_min`, `confidence_min`: Thresholds
136
+ - `tags`: Filter by tags
137
+ - `limit`: Default 10
138
+ - `offset`: Pagination
139
+ - `deleted_filter`: "exclude" | "include" | "only"
130
140
 
131
- **Returns**: Array of relationships
141
+ **Returns**: SearchRelationshipResult with relationships array, total, offset, limit
132
142
 
133
143
  ---
134
144
 
135
145
  #### 10. `remember_delete_relationship`
136
- Delete a relationship
146
+ Delete a relationship and clean up references in connected memories
137
147
 
138
148
  **Parameters**:
139
- - `relationship_id`: ID of relationship to delete
140
- - `update_memories`: Boolean - remove relationship ID from connected memories?
149
+ - `relationship_id` (required)
141
150
 
142
- **Returns**: Confirmation
151
+ **Returns**: DeleteRelationshipResult with relationship_id, deleted, memories_updated count
143
152
 
144
153
  ---
145
154
 
146
155
  ### Preference Management (2 tools)
147
156
 
148
- #### 11. `remember_update_preferences`
149
- Update user preferences through conversation
157
+ #### 11. `remember_set_preference`
158
+ Update user preferences for system behavior
150
159
 
151
160
  **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
161
+ - `preferences` (required): Partial UserPreferences object (merged with existing)
157
162
 
158
- **Examples**:
159
- - "Stop suggesting templates" → `{ preference_path: "templates.auto_suggest", value: false }`
160
- - "Show 20 results" → `{ preference_path: "search.default_limit", value: 20 }`
163
+ **Returns**: SetPreferenceResult with success, updated_preferences, message
161
164
 
162
165
  ---
163
166
 
164
167
  #### 12. `remember_get_preferences`
165
- Get current user preferences
168
+ Get current user preferences (with defaults if not set)
166
169
 
167
170
  **Parameters**:
168
- - `category`: Optional filter (templates, search, privacy, etc.)
171
+ - `category`: Optional filter (templates, search, location, privacy, notifications, display)
169
172
 
170
- **Returns**: User preferences object or filtered by category
173
+ **Returns**: GetPreferencesResult with preferences object, is_default flag, message
171
174
 
172
175
  ---
173
176
 
174
- ### Template Management (5 tools - Optional, Phase 3)
177
+ ### Space/Sharing Tools (7 tools) — Two-Phase Confirmation Workflow
175
178
 
176
- #### 13. `remember_create_template`
177
- Create a custom template
179
+ #### 13. `remember_publish`
180
+ Publish a memory to shared spaces and/or groups (phase 1 - generates token)
178
181
 
179
182
  **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
183
+ - `memory_id` (required)
184
+ - `spaces`: Array of space names (default ['the_void'])
185
+ - `groups`: Array of group IDs
186
+ - `additional_tags`: Extra tags for published copy
185
187
 
186
- **Returns**: Template ID
188
+ **Returns**: Token for `remember_confirm`
187
189
 
188
190
  ---
189
191
 
190
- #### 14. `remember_list_templates`
191
- List available templates
192
+ #### 14. `remember_retract`
193
+ Retract a memory from specific shared spaces and/or groups (phase 1)
192
194
 
193
195
  **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
196
+ - `memory_id` (required)
197
+ - `spaces`: Array of space names
198
+ - `groups`: Array of group IDs
198
199
 
199
- **Returns**: Array of templates
200
+ **Returns**: Token for confirmation
200
201
 
201
202
  ---
202
203
 
203
- #### 15. `remember_get_template`
204
- Get template details
204
+ #### 15. `remember_revise`
205
+ Sync updated content from source memory to all published copies (phase 1)
205
206
 
206
207
  **Parameters**:
207
- - `template_id`: Template ID
208
+ - `memory_id` (required)
208
209
 
209
- **Returns**: Full template definition
210
+ **Returns**: Token for confirmation (preserves revision history, up to 10 versions)
210
211
 
211
212
  ---
212
213
 
213
- #### 16. `remember_update_template`
214
- Update a user template
214
+ #### 16. `remember_confirm`
215
+ Confirm and execute a pending action using the token (phase 2)
215
216
 
216
217
  **Parameters**:
217
- - `template_id`: Template ID (must be user's template)
218
- - `updates`: Partial template object
218
+ - `token` (required)
219
219
 
220
- **Returns**: Updated template
220
+ **Returns**: Action-specific response (publish/retract/revise/delete_memory)
221
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
222
+ **Critical**: Must be called AFTER explicit user confirmation in a separate message
231
223
 
232
224
  ---
233
225
 
234
- ### Permission Management (1 tool - Phase 2)
235
-
236
- #### 18. `remember_grant_access`
237
- Grant another user access to your memories
226
+ #### 17. `remember_deny`
227
+ Deny a pending action (invalidates token)
238
228
 
239
229
  **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
230
+ - `token` (required)
277
231
 
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
232
+ **Returns**: success flag
286
233
 
287
234
  ---
288
235
 
289
- ## Additional Tools from Design Documents
290
-
291
- ### Suggested Additional Tools (Optional)
292
-
293
- #### A. `remember_revoke_access`
294
- Revoke access from a user
236
+ #### 18. `remember_search_space`
237
+ Search shared spaces and/or groups to discover memories from other users
295
238
 
296
239
  **Parameters**:
297
- - `accessor_user_id`: User to revoke access from
298
- - `reason`: Reason for revocation
240
+ - `query` (required)
241
+ - `spaces`: Array of space names
242
+ - `groups`: Array of group IDs
243
+ - `search_type`: 'hybrid' | 'bm25' | 'semantic' (default 'hybrid')
244
+ - `content_type`, `tags`, `min_weight`, `max_weight`, `date_from`, `date_to`: Filters
245
+ - `moderation_filter`: Filter by moderation status
246
+ - `include_comments`: Include comment memories (default false)
247
+ - `limit`: Default 10
248
+ - `offset`: Pagination
249
+
250
+ **Returns**: SearchSpaceResult with spaces_searched, groups_searched, memories, total
299
251
 
300
252
  ---
301
253
 
302
- #### B. `remember_list_accessors`
303
- List who can access your memories
254
+ #### 19. `remember_query_space`
255
+ RAG queries against shared spaces (semantic search)
304
256
 
305
257
  **Parameters**:
306
- - `sort_by`: trust_level, last_accessed, granted_at
258
+ - `query` (required)
259
+ - `spaces`: Array of space names
260
+ - `groups`: Array of group IDs
261
+ - `limit`, filters, `include_comments`
307
262
 
308
- **Returns**: Array of users with access and their trust levels
263
+ **Returns**: QuerySpaceResult with memories and context
309
264
 
310
265
  ---
311
266
 
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
267
+ ### Moderation & Configuration (2 tools)
331
268
 
332
- ---
333
-
334
- #### E. `remember_suggest_templates`
335
- Explicitly request template suggestions
269
+ #### 20. `remember_moderate`
270
+ Approve, reject, or remove published memories (requires can_moderate permission)
336
271
 
337
272
  **Parameters**:
338
- - `content`: Content to analyze
339
- - `limit`: Max suggestions
273
+ - `memory_id` (required)
274
+ - `space_id` OR `group_id` (one required)
275
+ - `action` (required): 'approve' | 'reject' | 'remove'
276
+ - `reason`: Optional
340
277
 
341
- **Returns**: Array of template suggestions
278
+ **Returns**: Moderation result with success, action, moderation_status, moderated_by, moderated_at
342
279
 
343
280
  ---
344
281
 
345
- #### F. `remember_copy_template`
346
- Copy a default template to customize
282
+ #### 21. `remember_ghost_config`
283
+ Manage ghost/persona configuration (who can interact with your ghost, at what trust level)
347
284
 
348
285
  **Parameters**:
349
- - `source_template_id`: Default template to copy
350
- - `customizations`: Optional modifications
351
-
352
- **Returns**: New user template ID
286
+ - `action` (required): 'get' | 'set' | 'set_trust' | 'remove_trust' | 'block' | 'unblock'
287
+ - `enabled`, `public_ghost_enabled`: Ghost toggles
288
+ - `default_friend_trust`, `default_public_trust`: Default trust levels
289
+ - `enforcement_mode`: 'query_filter' | 'prompt_filter' | 'hybrid'
290
+ - `target_user_id`, `trust_level`: Per-user trust overrides
353
291
 
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
292
+ **Trust Levels**: 0.0 (existence only), 0.25 (metadata), 0.5 (summary), 0.75 (partial), 1.0 (full)
362
293
 
363
- **Returns**: Validation result with errors
294
+ **Returns**: Action-specific responses (config object, success flags)
364
295
 
365
296
  ---
366
297
 
367
- ## Recommended Final Tool Set
298
+ ## Tool Organization by Implementation Phase
368
299
 
369
- ### MVP (Phase 1): 12 Core Tools
300
+ ### Phase 1: MVP (12 tools) - Completed (M1-M4)
370
301
  - 6 memory operations
371
302
  - 4 relationship operations
372
303
  - 2 preference management
373
304
 
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
305
+ ### Phase 2: Shared Spaces & Confirmation (7 tools) - Completed (M10-M11)
306
+ - publish, retract, revise, confirm, deny, search_space, query_space
380
307
 
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
308
+ ### Phase 3: Moderation & Ghost (2 tools) - Completed (M15-M16)
309
+ - moderate, ghost_config
389
310
 
390
- **Total**: 24 tools (12 MVP + 5 permissions + 7 templates)
311
+ ### Future Phases (Not Yet Implemented)
312
+ - Template management tools (create, list, get, update, delete)
313
+ - Additional permission tools (grant_access, revoke_access, list_accessors)
391
314
 
392
315
  ---
393
316
 
@@ -396,12 +319,13 @@ Validate memory against template
396
319
  | Phase | Tools | Total |
397
320
  |-------|-------|-------|
398
321
  | Phase 1 (MVP) | 12 | 12 |
399
- | Phase 2 (Permissions) | +5 | 17 |
400
- | Phase 3 (Templates) | +7 | 24 |
322
+ | Phase 2 (Spaces) | +7 | 19 |
323
+ | Phase 3 (Moderation/Ghost) | +2 | 21 |
324
+ | Future (Templates) | +5 | 26 |
325
+ | Future (Permissions) | +3 | 29 |
401
326
 
402
327
  ---
403
328
 
404
- **Status**: Final Specification
405
- **MVP Tools**: 12
406
- **Complete Tool Set**: 24
329
+ **Status**: Implemented (21 tools active)
330
+ **Version**: 3.15.4
407
331
  **All tools support natural conversation interface**
@@ -122,6 +122,24 @@ class DataService {
122
122
 
123
123
  ---
124
124
 
125
+ ## Key Design Decisions (Optional)
126
+
127
+ <!-- This section is populated by @acp.clarification-capture when
128
+ create commands are invoked with --from-clar, --from-chat, or
129
+ --from-context. It can also be manually authored.
130
+ Omit this section entirely if no decisions to capture.
131
+
132
+ Group decisions by agent-inferred category using tables:
133
+
134
+ ### {Category}
135
+
136
+ | Decision | Choice | Rationale |
137
+ |---|---|---|
138
+ | {decision} | {choice} | {rationale} |
139
+ -->
140
+
141
+ ---
142
+
125
143
  ## Future Considerations
126
144
 
127
145
  [Note any future enhancements or related work:]
@@ -2,13 +2,16 @@
2
2
 
3
3
  **Concept**: User-configurable preferences for system behavior with MCP tool support
4
4
  **Created**: 2026-02-11
5
- **Status**: Design Specification
5
+ **Last Updated**: 2026-03-07
6
+ **Status**: Implemented (M4, v1.x)
6
7
 
7
8
  ---
8
9
 
9
10
  ## Overview
10
11
 
11
- Users should be able to configure system behavior to match their preferences. These preferences are stored per-user in Firestore and can be modified through natural conversation using the `remember_update_preferences` tool.
12
+ Users should be able to configure system behavior to match their preferences. These preferences are stored per-user in Firestore and can be modified through natural conversation using the `remember_set_preference` tool.
13
+
14
+ > **Note**: The original design used `remember_update_preferences` with dot-notation paths. The actual implementation uses `remember_set_preference` which accepts a partial `UserPreferences` object for bulk updates. See `src/tools/set-preference.ts` for the current implementation.
12
15
 
13
16
  **Key Innovation**: Agent can learn and adapt preferences through conversation without requiring UI settings changes.
14
17
 
@@ -353,7 +356,7 @@ interface SettingsPage {
353
356
 
354
357
  ---
355
358
 
356
- ## MCP Tool: `remember_update_preferences`
359
+ ## MCP Tool: `remember_set_preference` (originally `remember_update_preferences`)
357
360
 
358
361
  ### Tool Definition
359
362
 
@@ -666,7 +669,7 @@ Result: {
666
669
  10. remember_delete_relationship
667
670
 
668
671
  **Preferences** (2 NEW):
669
- 11. **remember_update_preferences** ← NEW
672
+ 11. **remember_set_preference** ← NEW (originally named remember_update_preferences)
670
673
  12. **remember_get_preferences** ← NEW
671
674
 
672
675
  **Templates** (optional, Phase 3):
@@ -677,7 +680,8 @@ Result: {
677
680
 
678
681
  ---
679
682
 
680
- **Status**: Design Specification
681
- **Storage**: Firestore (`user_preferences/{user_id}`)
682
- **Default**: Template auto-suggest enabled, user can disable via tool
683
+ **Status**: Implemented (M4)
684
+ **Storage**: Firestore (`users/{user_id}/preferences`)
685
+ **Implementation**: `src/tools/set-preference.ts`, `src/tools/get-preferences.ts`
686
+ **Actual tool name**: `remember_set_preference` (accepts partial UserPreferences object)
683
687
  **Key Innovation**: Preferences manageable through natural conversation