@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.
- package/.env.example +65 -0
- package/AGENT.md +840 -0
- package/README.md +72 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/access-control-result-pattern.md +458 -0
- package/agent/design/action-audit-memory-types.md +637 -0
- package/agent/design/common-template-fields.md +282 -0
- package/agent/design/complete-tool-set.md +407 -0
- package/agent/design/content-types-expansion.md +521 -0
- package/agent/design/cross-database-id-strategy.md +358 -0
- package/agent/design/default-template-library.md +423 -0
- package/agent/design/firestore-wrapper-analysis.md +606 -0
- package/agent/design/llm-provider-abstraction.md +691 -0
- package/agent/design/location-handling-architecture.md +523 -0
- package/agent/design/memory-templates-design.md +364 -0
- package/agent/design/permissions-storage-architecture.md +680 -0
- package/agent/design/relationship-storage-strategy.md +361 -0
- package/agent/design/remember-mcp-implementation-tasks.md +417 -0
- package/agent/design/remember-mcp-progress.yaml +141 -0
- package/agent/design/requirements-enhancements.md +468 -0
- package/agent/design/requirements.md +56 -0
- package/agent/design/template-storage-strategy.md +412 -0
- package/agent/design/template-suggestion-system.md +853 -0
- package/agent/design/trust-escalation-prevention.md +343 -0
- package/agent/design/trust-system-implementation.md +592 -0
- package/agent/design/user-preferences.md +683 -0
- package/agent/design/weaviate-collection-strategy.md +461 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-project-foundation.md +121 -0
- package/agent/milestones/milestone-2-core-memory-system.md +150 -0
- package/agent/milestones/milestone-3-relationships-graph.md +116 -0
- package/agent/milestones/milestone-4-user-preferences.md +103 -0
- package/agent/milestones/milestone-5-template-system.md +126 -0
- package/agent/milestones/milestone-6-auth-multi-tenancy.md +124 -0
- package/agent/milestones/milestone-7-trust-permissions.md +133 -0
- package/agent/milestones/milestone-8-testing-quality.md +137 -0
- package/agent/milestones/milestone-9-deployment-documentation.md +147 -0
- package/agent/patterns/.gitkeep +0 -0
- package/agent/patterns/bootstrap.md +1271 -0
- package/agent/patterns/firebase-admin-sdk-v8-usage.md +950 -0
- package/agent/patterns/firestore-users-pattern-best-practices.md +347 -0
- package/agent/patterns/library-services.md +454 -0
- package/agent/patterns/testing-colocated.md +316 -0
- package/agent/progress.yaml +395 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/task-1-initialize-project-structure.md +266 -0
- package/agent/tasks/task-2-install-dependencies.md +199 -0
- package/agent/tasks/task-3-setup-weaviate-client.md +330 -0
- package/agent/tasks/task-4-setup-firestore-client.md +362 -0
- package/agent/tasks/task-5-create-basic-mcp-server.md +114 -0
- package/agent/tasks/task-6-create-integration-tests.md +195 -0
- package/agent/tasks/task-7-finalize-milestone-1.md +363 -0
- package/agent/tasks/task-8-setup-utility-scripts.md +382 -0
- package/agent/tasks/task-9-create-server-factory.md +404 -0
- package/dist/config.d.ts +26 -0
- package/dist/constants/content-types.d.ts +60 -0
- package/dist/firestore/init.d.ts +14 -0
- package/dist/firestore/paths.d.ts +53 -0
- package/dist/firestore/paths.spec.d.ts +2 -0
- package/dist/server-factory.d.ts +40 -0
- package/dist/server-factory.js +1741 -0
- package/dist/server-factory.spec.d.ts +2 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +1690 -0
- package/dist/tools/create-memory.d.ts +94 -0
- package/dist/tools/delete-memory.d.ts +47 -0
- package/dist/tools/search-memory.d.ts +88 -0
- package/dist/types/memory.d.ts +183 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/weaviate/client.d.ts +39 -0
- package/dist/weaviate/client.spec.d.ts +2 -0
- package/dist/weaviate/schema.d.ts +29 -0
- package/esbuild.build.js +60 -0
- package/esbuild.watch.js +25 -0
- package/jest.config.js +31 -0
- package/jest.e2e.config.js +17 -0
- package/package.json +68 -0
- package/src/.gitkeep +0 -0
- package/src/config.ts +56 -0
- package/src/constants/content-types.ts +454 -0
- package/src/firestore/init.ts +68 -0
- package/src/firestore/paths.spec.ts +75 -0
- package/src/firestore/paths.ts +124 -0
- package/src/server-factory.spec.ts +60 -0
- package/src/server-factory.ts +215 -0
- package/src/server.ts +243 -0
- package/src/tools/create-memory.ts +198 -0
- package/src/tools/delete-memory.ts +126 -0
- package/src/tools/search-memory.ts +216 -0
- package/src/types/memory.ts +276 -0
- package/src/utils/logger.ts +42 -0
- package/src/weaviate/client.spec.ts +58 -0
- package/src/weaviate/client.ts +114 -0
- package/src/weaviate/schema.ts +288 -0
- 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**
|