@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,521 @@
1
+ # Content Type Expansion Analysis
2
+
3
+ **Current File**: [`src/types/content-types.ts`](../src/types/content-types.ts)
4
+ **Last Updated**: 2026-02-11
5
+
6
+ ---
7
+
8
+ ## Current Content Types (13 types)
9
+
10
+ ### Existing Types
11
+ 1. `code` - Source code files
12
+ 2. `note` - Personal notes and documentation
13
+ 3. `screenplay` - Screenplay and script content
14
+ 4. `todo` - Task lists and todos
15
+ 5. `documentation` - Technical documentation
16
+ 6. `conversation` - Chat logs and conversations
17
+ 7. `image` - Image files and visual content
18
+ 8. `contact` - Contact information
19
+ 9. `video` - Video files and recordings
20
+ 10. `event` - Calendar events and activities
21
+ 11. `audio` - Audio files and recordings
22
+ 12. `transcript` - Transcriptions of audio or video content
23
+ 13. `system` - Agent instructions (reserved for internal use only)
24
+
25
+ ---
26
+
27
+ ## Proposed Additional Content Types
28
+
29
+ ### 🎯 High Priority Additions
30
+
31
+ #### 1. `checklist` ✅
32
+ **Use Cases**:
33
+ - Grocery shopping lists
34
+ - Camping preparation
35
+ - Luggage packing
36
+ - Travel checklists
37
+ - Project setup checklists
38
+ - Onboarding checklists
39
+ - Pre-flight checklists
40
+
41
+ **Difference from `todo`**:
42
+ - `todo`: Individual tasks with due dates, priorities, assignments
43
+ - `checklist`: Reusable templates, sequential steps, completion tracking
44
+
45
+ **Schema Extension**:
46
+ ```typescript
47
+ ChecklistMetadata extends DocumentMetadata {
48
+ items: Array<{
49
+ text: string;
50
+ checked: boolean;
51
+ order: number;
52
+ optional?: boolean;
53
+ }>;
54
+ template: boolean; // Is this a reusable template?
55
+ category: 'shopping' | 'travel' | 'preparation' | 'process' | 'other';
56
+ }
57
+ ```
58
+
59
+ #### 2. `recipe`
60
+ **Use Cases**:
61
+ - Cooking recipes
62
+ - Cocktail recipes
63
+ - DIY project instructions
64
+ - Chemical formulas
65
+ - Manufacturing processes
66
+
67
+ **Why Separate from `documentation`**:
68
+ - Structured ingredients list
69
+ - Step-by-step instructions
70
+ - Timing and measurements
71
+ - Serving sizes and scaling
72
+
73
+ #### 3. `bookmark` / `link`
74
+ **Use Cases**:
75
+ - Web bookmarks
76
+ - Resource collections
77
+ - Reference links
78
+ - Reading lists
79
+
80
+ **Schema Extension**:
81
+ ```typescript
82
+ BookmarkMetadata extends DocumentMetadata {
83
+ url: string;
84
+ domain: string;
85
+ favicon?: string;
86
+ preview?: string;
87
+ archived: boolean;
88
+ readLater: boolean;
89
+ }
90
+ ```
91
+
92
+ #### 4. `journal` / `diary`
93
+ **Use Cases**:
94
+ - Daily journal entries
95
+ - Mood tracking
96
+ - Gratitude journals
97
+ - Dream logs
98
+ - Reflections
99
+
100
+ **Why Separate from `note`**:
101
+ - Temporal/chronological nature
102
+ - Personal reflection focus
103
+ - Privacy considerations
104
+ - Mood/emotion tracking
105
+
106
+ #### 5. `reference`
107
+ **Use Cases**:
108
+ - Quick reference guides
109
+ - Cheat sheets
110
+ - Command references
111
+ - API documentation snippets
112
+ - Keyboard shortcuts
113
+
114
+ **Why Separate from `documentation`**:
115
+ - Concise, lookup-focused
116
+ - Often tabular or list format
117
+ - Frequently accessed
118
+
119
+ ### 🔄 Medium Priority Additions
120
+
121
+ #### 6. `template`
122
+ **Use Cases**:
123
+ - Email templates
124
+ - Document templates
125
+ - Code templates/snippets
126
+ - Message templates
127
+
128
+ #### 7. `form` / `survey`
129
+ **Use Cases**:
130
+ - Questionnaires
131
+ - Feedback forms
132
+ - Data collection forms
133
+ - Surveys
134
+
135
+ #### 8. `invoice` / `receipt`
136
+ **Use Cases**:
137
+ - Financial documents
138
+ - Purchase receipts
139
+ - Invoices
140
+ - Expense tracking
141
+
142
+ #### 9. `contract` / `agreement`
143
+ **Use Cases**:
144
+ - Legal documents
145
+ - Terms of service
146
+ - Agreements
147
+ - Policies
148
+
149
+ #### 10. `presentation` / `slide`
150
+ **Use Cases**:
151
+ - Presentation slides
152
+ - Pitch decks
153
+ - Slide notes
154
+
155
+ **Note**: Currently missing from the list but mentioned in original IMPLEMENTATION_PLAN.md
156
+
157
+ #### 11. `spreadsheet` / `table`
158
+ **Use Cases**:
159
+ - Data tables
160
+ - Spreadsheet data
161
+ - CSV content
162
+ - Structured data
163
+
164
+ **Note**: Also mentioned in original docs but missing from implementation
165
+
166
+ #### 12. `email`
167
+ **Use Cases**:
168
+ - Email messages
169
+ - Email threads
170
+ - Drafts
171
+
172
+ **Note**: Mentioned in original docs but missing from implementation
173
+
174
+ #### 13. `article` / `blog`
175
+ **Use Cases**:
176
+ - Blog posts
177
+ - Articles
178
+ - Long-form content
179
+ - Published writing
180
+
181
+ **Note**: Mentioned in original docs but missing from implementation
182
+
183
+ #### 14. `webpage`
184
+ **Use Cases**:
185
+ - Saved web pages
186
+ - Web content
187
+ - HTML documents
188
+
189
+ **Note**: Mentioned in original docs but missing from implementation
190
+
191
+ #### 15. `social`
192
+ **Use Cases**:
193
+ - Social media posts
194
+ - Tweets
195
+ - Status updates
196
+
197
+ **Note**: Mentioned in original docs but missing from implementation
198
+
199
+ ### 🌟 Specialized Additions
200
+
201
+ #### 16. `pdf`
202
+ **Use Cases**:
203
+ - PDF documents
204
+ - Scanned documents
205
+ - Reports
206
+
207
+ **Note**: Mentioned in original docs but missing from implementation
208
+
209
+ #### 17. `meeting`
210
+ **Use Cases**:
211
+ - Meeting notes
212
+ - Action items
213
+ - Attendees
214
+ - Decisions
215
+
216
+ **Note**: Mentioned in original docs but missing from implementation
217
+
218
+ #### 18. `project`
219
+ **Use Cases**:
220
+ - Project overviews
221
+ - Project plans
222
+ - Milestones
223
+ - Deliverables
224
+
225
+ #### 19. `idea` / `brainstorm`
226
+ **Use Cases**:
227
+ - Random ideas
228
+ - Brainstorming sessions
229
+ - Concepts
230
+ - Inspiration
231
+
232
+ #### 20. `quote` / `excerpt`
233
+ **Use Cases**:
234
+ - Memorable quotes
235
+ - Book excerpts
236
+ - Highlights
237
+ - Citations
238
+
239
+ #### 21. `location` / `place`
240
+ **Use Cases**:
241
+ - Place recommendations
242
+ - Location notes
243
+ - Venue information
244
+ - Travel destinations
245
+
246
+ #### 22. `person` / `profile`
247
+ **Use Cases**:
248
+ - People notes
249
+ - Professional profiles
250
+ - Relationship context
251
+ - Contact details (more detailed than `contact`)
252
+
253
+ #### 23. `habit` / `routine`
254
+ **Use Cases**:
255
+ - Daily routines
256
+ - Habit tracking
257
+ - Recurring activities
258
+ - Schedules
259
+
260
+ #### 24. `goal` / `objective`
261
+ **Use Cases**:
262
+ - Personal goals
263
+ - Professional objectives
264
+ - Milestones
265
+ - KPIs
266
+
267
+ #### 25. `memory` / `reflection`
268
+ **Use Cases**:
269
+ - Personal memories
270
+ - Significant moments
271
+ - Life events
272
+ - Reflections
273
+
274
+ **Note**: Particularly relevant for remember-mcp project!
275
+
276
+ ---
277
+
278
+ ## Recommended Implementation Strategy
279
+
280
+ ### Phase 1: Add Missing Core Types (Immediate)
281
+ Add types that were documented but not implemented:
282
+ ```typescript
283
+ export type ContentType =
284
+ // Existing
285
+ | 'code' | 'note' | 'screenplay' | 'todo' | 'documentation'
286
+ | 'conversation' | 'image' | 'contact' | 'video' | 'event'
287
+ | 'audio' | 'transcript' | 'system'
288
+ // Add these (from original docs)
289
+ | 'email' | 'article' | 'webpage' | 'social' | 'pdf'
290
+ | 'spreadsheet' | 'presentation' | 'meeting';
291
+ ```
292
+
293
+ ### Phase 2: Add High-Value Types
294
+ ```typescript
295
+ export type ContentType =
296
+ // ... existing types ...
297
+ // High priority additions
298
+ | 'checklist' | 'recipe' | 'bookmark' | 'journal' | 'reference';
299
+ ```
300
+
301
+ ### Phase 3: Add Specialized Types (As Needed)
302
+ ```typescript
303
+ export type ContentType =
304
+ // ... existing types ...
305
+ // Specialized additions
306
+ | 'template' | 'form' | 'invoice' | 'contract' | 'project'
307
+ | 'idea' | 'quote' | 'location' | 'person' | 'habit'
308
+ | 'goal' | 'memory';
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Updated Content Types with Descriptions
314
+
315
+ ```typescript
316
+ export const CONTENT_TYPES_DESCRIPTION = `Type of content:
317
+ Core Types:
318
+ - 'code': Source code files and programming content
319
+ - 'note': Personal notes and quick documentation
320
+ - 'documentation': Technical documentation and guides
321
+ - 'reference': Quick reference guides and cheat sheets
322
+
323
+ Task & Planning:
324
+ - 'todo': Individual tasks with due dates and priorities
325
+ - 'checklist': Reusable checklists and sequential steps
326
+ - 'project': Project plans and overviews
327
+ - 'goal': Goals, objectives, and milestones
328
+ - 'habit': Routines and habit tracking
329
+
330
+ Communication:
331
+ - 'email': Email messages and threads
332
+ - 'conversation': Chat logs and conversations
333
+ - 'meeting': Meeting notes and action items
334
+ - 'contact': Contact information
335
+ - 'person': Detailed person profiles and relationship context
336
+
337
+ Content & Media:
338
+ - 'article': Articles and blog posts
339
+ - 'webpage': Saved web pages and HTML content
340
+ - 'social': Social media posts and updates
341
+ - 'image': Image files and visual content
342
+ - 'video': Video files and recordings
343
+ - 'audio': Audio files and recordings
344
+ - 'transcript': Transcriptions of audio or video
345
+ - 'presentation': Presentation slides and decks
346
+ - 'spreadsheet': Data tables and spreadsheet content
347
+ - 'pdf': PDF documents and scanned files
348
+
349
+ Creative:
350
+ - 'screenplay': Screenplay and script content
351
+ - 'recipe': Cooking recipes and instructions
352
+ - 'idea': Brainstorming and concepts
353
+ - 'quote': Memorable quotes and excerpts
354
+
355
+ Personal:
356
+ - 'journal': Daily journal entries and reflections
357
+ - 'memory': Personal memories and significant moments
358
+ - 'event': Calendar events and activities
359
+
360
+ Organizational:
361
+ - 'bookmark': Web bookmarks and resource collections
362
+ - 'template': Reusable templates
363
+ - 'form': Forms and surveys
364
+ - 'location': Place information and recommendations
365
+
366
+ Business:
367
+ - 'invoice': Invoices and receipts
368
+ - 'contract': Contracts and agreements
369
+
370
+ System:
371
+ - 'system': Agent instructions (reserved for internal use only)`;
372
+ ```
373
+
374
+ ---
375
+
376
+ ## Checklist-Specific Implementation
377
+
378
+ ### Enhanced Schema for Checklist Type
379
+
380
+ ```typescript
381
+ // Add to content-types.ts
382
+ export interface ChecklistItem {
383
+ id: string;
384
+ text: string;
385
+ checked: boolean;
386
+ order: number;
387
+ optional?: boolean;
388
+ notes?: string;
389
+ dueDate?: string;
390
+ assignee?: string;
391
+ }
392
+
393
+ export interface ChecklistMetadata extends DocumentMetadata {
394
+ contentType: 'checklist';
395
+ items: ChecklistItem[];
396
+ isTemplate: boolean;
397
+ category: 'shopping' | 'travel' | 'packing' | 'preparation' | 'process' | 'maintenance' | 'other';
398
+ completionPercentage: number;
399
+ totalItems: number;
400
+ completedItems: number;
401
+ lastUsed?: string;
402
+ useCount?: number;
403
+ }
404
+
405
+ // Example checklist categories
406
+ export const CHECKLIST_CATEGORIES = {
407
+ shopping: 'Shopping lists (groceries, supplies, etc.)',
408
+ travel: 'Travel preparation and itineraries',
409
+ packing: 'Packing lists for trips or moves',
410
+ preparation: 'Event or activity preparation',
411
+ process: 'Step-by-step processes and procedures',
412
+ maintenance: 'Maintenance and inspection checklists',
413
+ other: 'Other checklist types'
414
+ } as const;
415
+ ```
416
+
417
+ ### Example Checklist Documents
418
+
419
+ ```typescript
420
+ // Grocery Shopping Checklist
421
+ {
422
+ content: "Weekly grocery shopping",
423
+ contentType: "checklist",
424
+ title: "Weekly Groceries",
425
+ metadata: {
426
+ isTemplate: true,
427
+ category: "shopping",
428
+ items: [
429
+ { id: "1", text: "Milk", checked: false, order: 1 },
430
+ { id: "2", text: "Eggs", checked: false, order: 2 },
431
+ { id: "3", text: "Bread", checked: false, order: 3 },
432
+ { id: "4", text: "Vegetables", checked: false, order: 4 },
433
+ { id: "5", text: "Fruits", checked: false, order: 5 }
434
+ ],
435
+ completionPercentage: 0,
436
+ totalItems: 5,
437
+ completedItems: 0
438
+ }
439
+ }
440
+
441
+ // Camping Preparation Checklist
442
+ {
443
+ content: "Camping trip preparation",
444
+ contentType: "checklist",
445
+ title: "Camping Prep - Summer 2026",
446
+ metadata: {
447
+ isTemplate: false,
448
+ category: "preparation",
449
+ items: [
450
+ { id: "1", text: "Reserve campsite", checked: true, order: 1 },
451
+ { id: "2", text: "Check tent condition", checked: true, order: 2 },
452
+ { id: "3", text: "Buy firewood", checked: false, order: 3 },
453
+ { id: "4", text: "Pack sleeping bags", checked: false, order: 4 },
454
+ { id: "5", text: "Prepare food supplies", checked: false, order: 5 },
455
+ { id: "6", text: "Check weather forecast", checked: false, order: 6, optional: true }
456
+ ],
457
+ completionPercentage: 33,
458
+ totalItems: 6,
459
+ completedItems: 2
460
+ }
461
+ }
462
+ ```
463
+
464
+ ---
465
+
466
+ ## Migration Path
467
+
468
+ ### Step 1: Update Type Definition
469
+ ```typescript
470
+ // src/types/content-types.ts
471
+ export type ContentType =
472
+ | 'code' | 'note' | 'screenplay' | 'todo' | 'documentation'
473
+ | 'conversation' | 'image' | 'contact' | 'video' | 'event'
474
+ | 'audio' | 'transcript' | 'system'
475
+ // Phase 1: Missing core types
476
+ | 'email' | 'article' | 'webpage' | 'social' | 'pdf'
477
+ | 'spreadsheet' | 'presentation' | 'meeting'
478
+ // Phase 2: High-value additions
479
+ | 'checklist' | 'recipe' | 'bookmark' | 'journal' | 'reference';
480
+ ```
481
+
482
+ ### Step 2: Update Constants Array
483
+ ```typescript
484
+ export const CONTENT_TYPES = [
485
+ // ... existing types ...
486
+ 'checklist', 'recipe', 'bookmark', 'journal', 'reference'
487
+ ] as const;
488
+ ```
489
+
490
+ ### Step 3: Update Description
491
+ Add descriptions for new types to `CONTENT_TYPES_DESCRIPTION`
492
+
493
+ ### Step 4: Add Type-Specific Interfaces
494
+ Create specialized interfaces for types that need them (like `ChecklistMetadata`)
495
+
496
+ ### Step 5: Update Tools
497
+ Ensure all tools (search, index, etc.) work with new content types
498
+
499
+ ---
500
+
501
+ ## Benefits of Content Type Expansion
502
+
503
+ 1. **Better Organization**: More specific types enable better categorization
504
+ 2. **Improved Search**: Filter by specific content types for more relevant results
505
+ 3. **Type-Specific Features**: Enable specialized functionality per type
506
+ 4. **User Experience**: Users can think in terms of what they're storing
507
+ 5. **Analytics**: Better insights into what users store and search for
508
+ 6. **Future Extensibility**: Foundation for type-specific tools and features
509
+
510
+ ---
511
+
512
+ ## Recommendation
513
+
514
+ **Immediate Action**: Add `checklist` type along with other missing core types from the original documentation (email, article, webpage, social, pdf, spreadsheet, presentation, meeting).
515
+
516
+ This gives users 21 content types total, covering most common use cases while maintaining a clean, understandable taxonomy.
517
+
518
+ ---
519
+
520
+ **Status**: Proposal for Review
521
+ **Next Step**: Update [`src/types/content-types.ts`](../src/types/content-types.ts) with approved additions