@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,114 @@
|
|
|
1
|
+
# Task 5: Create Basic MCP Server
|
|
2
|
+
|
|
3
|
+
**Milestone**: M1 - Project Foundation
|
|
4
|
+
**Estimated Time**: 3 hours
|
|
5
|
+
**Dependencies**: Tasks 3, 4
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Create a basic MCP server with stdio transport, health check, and database initialization.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Create Server Entry Point
|
|
19
|
+
|
|
20
|
+
**src/server.ts**:
|
|
21
|
+
```typescript
|
|
22
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
23
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
24
|
+
import {
|
|
25
|
+
CallToolRequestSchema,
|
|
26
|
+
ListToolsRequestSchema,
|
|
27
|
+
} from '@modelcontextprotocol/sdk/types.js';
|
|
28
|
+
import { config, validateConfig } from './config.js';
|
|
29
|
+
import { initWeaviateClient, testWeaviateConnection } from './weaviate/client.js';
|
|
30
|
+
import { initFirestore, testFirestoreConnection } from './firestore/init.js';
|
|
31
|
+
import { logger } from './utils/logger.js';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Initialize remember-mcp server
|
|
35
|
+
*/
|
|
36
|
+
async function initServer(): Promise<Server> {
|
|
37
|
+
logger.info('Initializing remember-mcp server...');
|
|
38
|
+
|
|
39
|
+
// Validate configuration
|
|
40
|
+
validateConfig();
|
|
41
|
+
|
|
42
|
+
// Initialize databases
|
|
43
|
+
logger.info('Connecting to databases...');
|
|
44
|
+
await initWeaviateClient();
|
|
45
|
+
await initFirestore();
|
|
46
|
+
|
|
47
|
+
// Test connections
|
|
48
|
+
const weaviateOk = await testWeaviateConnection();
|
|
49
|
+
const firestoreOk = await testFirestoreConnection();
|
|
50
|
+
|
|
51
|
+
if (!weaviateOk || !firestoreOk) {
|
|
52
|
+
throw new Error('Database connection failed');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
logger.info('Database connections established');
|
|
56
|
+
|
|
57
|
+
// Create MCP server
|
|
58
|
+
const server = new Server(
|
|
59
|
+
{
|
|
60
|
+
name: 'remember-mcp',
|
|
61
|
+
version: '0.1.0',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
capabilities: {
|
|
65
|
+
tools: {},
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
// Register handlers
|
|
71
|
+
registerHandlers(server);
|
|
72
|
+
|
|
73
|
+
logger.info('Server initialized successfully');
|
|
74
|
+
return server;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Register MCP handlers
|
|
79
|
+
*/
|
|
80
|
+
function registerHandlers(server: Server): void {
|
|
81
|
+
// List available tools
|
|
82
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
83
|
+
return {
|
|
84
|
+
tools: [
|
|
85
|
+
{
|
|
86
|
+
name: 'health_check',
|
|
87
|
+
description: 'Check server health and database connections',
|
|
88
|
+
inputSchema: {
|
|
89
|
+
type: 'object',
|
|
90
|
+
properties: {},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// Handle tool calls
|
|
98
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
99
|
+
const { name, arguments: args } = request.params;
|
|
100
|
+
|
|
101
|
+
switch (name) {
|
|
102
|
+
case 'health_check':
|
|
103
|
+
return await handleHealthCheck();
|
|
104
|
+
|
|
105
|
+
default:
|
|
106
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Health check handler
|
|
113
|
+
*/
|
|
114
|
+
async function handle
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Task 6: Create Integration Tests
|
|
2
|
+
|
|
3
|
+
**Milestone**: M1 - Project Foundation
|
|
4
|
+
**Estimated Time**: 2 hours
|
|
5
|
+
**Dependencies**: Tasks 1-5
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Create integration tests to verify the complete setup works end-to-end.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Create Test Setup
|
|
19
|
+
|
|
20
|
+
**tests/setup.ts**:
|
|
21
|
+
```typescript
|
|
22
|
+
import { beforeAll, afterAll } from 'vitest';
|
|
23
|
+
import { initWeaviateClient, closeWeaviateClient } from '../src/weaviate/client.js';
|
|
24
|
+
import { initFirestore } from '../src/firestore/client.js';
|
|
25
|
+
|
|
26
|
+
beforeAll(async () => {
|
|
27
|
+
// Initialize databases for testing
|
|
28
|
+
await initWeaviateClient();
|
|
29
|
+
await initFirestore();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
afterAll(async () => {
|
|
33
|
+
// Cleanup
|
|
34
|
+
await closeWeaviateClient();
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. Create Integration Test
|
|
39
|
+
|
|
40
|
+
**tests/integration/foundation.test.ts**:
|
|
41
|
+
```typescript
|
|
42
|
+
import { describe, it, expect } from 'vitest';
|
|
43
|
+
import { testWeaviateConnection } from '../../src/weaviate/client.js';
|
|
44
|
+
import { testFirestoreConnection } from '../../src/firestore/client.js';
|
|
45
|
+
import { config } from '../../src/config.js';
|
|
46
|
+
|
|
47
|
+
describe('Foundation Integration Tests', () => {
|
|
48
|
+
it('should have valid configuration', () => {
|
|
49
|
+
expect(config.weaviate.url).toBeTruthy();
|
|
50
|
+
expect(config.firebase.projectId).toBeTruthy();
|
|
51
|
+
expect(config.openai.apiKey).toBeTruthy();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('should connect to Weaviate', async () => {
|
|
55
|
+
const result = await testWeaviateConnection();
|
|
56
|
+
expect(result).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('should connect to Firestore', async () => {
|
|
60
|
+
const result = await testFirestoreConnection();
|
|
61
|
+
expect(result).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should handle Firestore CRUD operations', async () => {
|
|
65
|
+
const { setDocument, getDocument, deleteDocument } = await import(
|
|
66
|
+
'../../src/firestore/client.js'
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
const testData = {
|
|
70
|
+
test: 'integration-test',
|
|
71
|
+
timestamp: new Date().toISOString(),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// Create
|
|
75
|
+
await setDocument('_test_integration', 'test-doc', testData);
|
|
76
|
+
|
|
77
|
+
// Read
|
|
78
|
+
const retrieved = await getDocument('_test_integration', 'test-doc');
|
|
79
|
+
expect(retrieved).toEqual(testData);
|
|
80
|
+
|
|
81
|
+
// Delete
|
|
82
|
+
await deleteDocument('_test_integration', 'test-doc');
|
|
83
|
+
|
|
84
|
+
// Verify deleted
|
|
85
|
+
const afterDelete = await getDocument('_test_integration', 'test-doc');
|
|
86
|
+
expect(afterDelete).toBeNull();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 3. Create Vitest Configuration
|
|
92
|
+
|
|
93
|
+
**vitest.config.ts**:
|
|
94
|
+
```typescript
|
|
95
|
+
import { defineConfig } from 'vitest/config';
|
|
96
|
+
|
|
97
|
+
export default defineConfig({
|
|
98
|
+
test: {
|
|
99
|
+
globals: true,
|
|
100
|
+
environment: 'node',
|
|
101
|
+
setupFiles: ['./tests/setup.ts'],
|
|
102
|
+
coverage: {
|
|
103
|
+
provider: 'v8',
|
|
104
|
+
reporter: ['text', 'json', 'html'],
|
|
105
|
+
exclude: [
|
|
106
|
+
'node_modules/',
|
|
107
|
+
'dist/',
|
|
108
|
+
'tests/',
|
|
109
|
+
'**/*.test.ts',
|
|
110
|
+
'**/*.config.ts',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
testTimeout: 30000, // 30 seconds for integration tests
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. Create Test Documentation
|
|
119
|
+
|
|
120
|
+
**tests/README.md**:
|
|
121
|
+
```markdown
|
|
122
|
+
# remember-mcp Tests
|
|
123
|
+
|
|
124
|
+
## Test Structure
|
|
125
|
+
|
|
126
|
+
- `unit/` - Unit tests for individual modules
|
|
127
|
+
- `integration/` - Integration tests for end-to-end flows
|
|
128
|
+
- `security/` - Security and isolation tests
|
|
129
|
+
- `performance/` - Performance and load tests
|
|
130
|
+
|
|
131
|
+
## Running Tests
|
|
132
|
+
|
|
133
|
+
\`\`\`bash
|
|
134
|
+
# Run all tests
|
|
135
|
+
npm test
|
|
136
|
+
|
|
137
|
+
# Run tests in watch mode
|
|
138
|
+
npm run test:watch
|
|
139
|
+
|
|
140
|
+
# Run specific test file
|
|
141
|
+
npm test tests/unit/weaviate-client.test.ts
|
|
142
|
+
|
|
143
|
+
# Run with coverage
|
|
144
|
+
npm test -- --coverage
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
## Test Requirements
|
|
148
|
+
|
|
149
|
+
- Weaviate must be running (localhost:8080 or configured URL)
|
|
150
|
+
- Firebase credentials must be configured
|
|
151
|
+
- .env file must be set up
|
|
152
|
+
|
|
153
|
+
## Writing Tests
|
|
154
|
+
|
|
155
|
+
- Use descriptive test names
|
|
156
|
+
- Test both success and failure cases
|
|
157
|
+
- Clean up test data after tests
|
|
158
|
+
- Use `_test_` prefix for test collections/documents
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Verification
|
|
164
|
+
|
|
165
|
+
- [ ] tests/setup.ts created
|
|
166
|
+
- [ ] tests/integration/foundation.test.ts created
|
|
167
|
+
- [ ] vitest.config.ts created
|
|
168
|
+
- [ ] tests/README.md created
|
|
169
|
+
- [ ] All tests pass
|
|
170
|
+
- [ ] Configuration validation works
|
|
171
|
+
- [ ] Database connections verified
|
|
172
|
+
- [ ] CRUD operations work
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Testing
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Run all tests
|
|
180
|
+
npm test
|
|
181
|
+
|
|
182
|
+
# Expected output:
|
|
183
|
+
# ✓ tests/unit/weaviate-client.test.ts (3)
|
|
184
|
+
# ✓ tests/unit/firestore-client.test.ts (3)
|
|
185
|
+
# ✓ tests/integration/foundation.test.ts (4)
|
|
186
|
+
#
|
|
187
|
+
# Test Files 3 passed (3)
|
|
188
|
+
# Tests 10 passed (10)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Next Task
|
|
194
|
+
|
|
195
|
+
Task 7: Create Documentation and Finalize M1
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
# Task 7: Finalize Milestone 1
|
|
2
|
+
|
|
3
|
+
**Milestone**: M1 - Project Foundation
|
|
4
|
+
**Estimated Time**: 1 hour
|
|
5
|
+
**Dependencies**: Tasks 1-6
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Complete final documentation, verification, and prepare for Milestone 2.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Create Development Guide
|
|
19
|
+
|
|
20
|
+
**docs/DEVELOPMENT.md**:
|
|
21
|
+
```markdown
|
|
22
|
+
# Development Guide
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
- Node.js 20+
|
|
27
|
+
- Weaviate instance (local or cloud)
|
|
28
|
+
- Firebase project with Firestore enabled
|
|
29
|
+
- OpenAI API key
|
|
30
|
+
|
|
31
|
+
## Setup
|
|
32
|
+
|
|
33
|
+
1. Clone repository
|
|
34
|
+
2. Install dependencies: `npm install`
|
|
35
|
+
3. Copy `.env.example` to `.env`
|
|
36
|
+
4. Configure environment variables
|
|
37
|
+
5. Add Firebase service account key
|
|
38
|
+
6. Run tests: `npm test`
|
|
39
|
+
7. Start development server: `npm run dev`
|
|
40
|
+
|
|
41
|
+
## Project Structure
|
|
42
|
+
|
|
43
|
+
\`\`\`
|
|
44
|
+
remember-mcp/
|
|
45
|
+
├── src/
|
|
46
|
+
│ ├── server.ts # Main server entry point
|
|
47
|
+
│ ├── config.ts # Configuration management
|
|
48
|
+
│ ├── weaviate/ # Weaviate client and schemas
|
|
49
|
+
│ ├── firestore/ # Firestore client and helpers
|
|
50
|
+
│ ├── types/ # TypeScript type definitions
|
|
51
|
+
│ ├── tools/ # MCP tool implementations
|
|
52
|
+
│ ├── services/ # Business logic services
|
|
53
|
+
│ ├── utils/ # Utility functions
|
|
54
|
+
│ ├── auth/ # Authentication
|
|
55
|
+
│ ├── transport/ # MCP transport layers
|
|
56
|
+
│ └── middleware/ # Request middleware
|
|
57
|
+
├── tests/
|
|
58
|
+
│ ├── unit/ # Unit tests
|
|
59
|
+
│ ├── integration/ # Integration tests
|
|
60
|
+
│ ├── security/ # Security tests
|
|
61
|
+
│ └── performance/ # Performance tests
|
|
62
|
+
├── agent/
|
|
63
|
+
│ ├── design/ # Design documents
|
|
64
|
+
│ ├── milestones/ # Milestone specifications
|
|
65
|
+
│ ├── patterns/ # Best practices
|
|
66
|
+
│ └── tasks/ # Implementation tasks
|
|
67
|
+
└── docs/ # Additional documentation
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
## Development Workflow
|
|
71
|
+
|
|
72
|
+
1. Pick a task from `agent/tasks/`
|
|
73
|
+
2. Create feature branch
|
|
74
|
+
3. Implement with tests
|
|
75
|
+
4. Run `npm test` and `npm run lint`
|
|
76
|
+
5. Build: `npm run build`
|
|
77
|
+
6. Test manually with MCP client
|
|
78
|
+
7. Commit and push
|
|
79
|
+
|
|
80
|
+
## Testing
|
|
81
|
+
|
|
82
|
+
- Unit tests: Test individual modules
|
|
83
|
+
- Integration tests: Test end-to-end flows
|
|
84
|
+
- Security tests: Test isolation and permissions
|
|
85
|
+
- Performance tests: Test under load
|
|
86
|
+
|
|
87
|
+
## Debugging
|
|
88
|
+
|
|
89
|
+
Use VSCode launch configuration or:
|
|
90
|
+
\`\`\`bash
|
|
91
|
+
NODE_OPTIONS='--inspect' npm run dev
|
|
92
|
+
\`\`\`
|
|
93
|
+
|
|
94
|
+
## Code Style
|
|
95
|
+
|
|
96
|
+
- Use TypeScript strict mode
|
|
97
|
+
- Follow ESLint rules
|
|
98
|
+
- Use Prettier for formatting
|
|
99
|
+
- Write JSDoc comments for public APIs
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 2. Create Troubleshooting Guide
|
|
103
|
+
|
|
104
|
+
**docs/TROUBLESHOOTING.md**:
|
|
105
|
+
```markdown
|
|
106
|
+
# Troubleshooting Guide
|
|
107
|
+
|
|
108
|
+
## Common Issues
|
|
109
|
+
|
|
110
|
+
### Weaviate Connection Failed
|
|
111
|
+
|
|
112
|
+
**Error**: `[Weaviate] Connection failed`
|
|
113
|
+
|
|
114
|
+
**Solutions**:
|
|
115
|
+
1. Check Weaviate is running: `curl http://localhost:8080/v1/.well-known/ready`
|
|
116
|
+
2. Verify WEAVIATE_URL in .env
|
|
117
|
+
3. Check firewall/network settings
|
|
118
|
+
4. Try without API key for local development
|
|
119
|
+
|
|
120
|
+
### Firestore Initialization Failed
|
|
121
|
+
|
|
122
|
+
**Error**: `[Firestore] Initialization failed`
|
|
123
|
+
|
|
124
|
+
**Solutions**:
|
|
125
|
+
1. Verify serviceAccount.json exists
|
|
126
|
+
2. Check GOOGLE_APPLICATION_CREDENTIALS path
|
|
127
|
+
3. Verify Firebase project ID
|
|
128
|
+
4. Ensure Firestore is enabled in Firebase console
|
|
129
|
+
5. Check service account has Firestore permissions
|
|
130
|
+
|
|
131
|
+
### Missing Environment Variables
|
|
132
|
+
|
|
133
|
+
**Error**: `Missing required environment variables`
|
|
134
|
+
|
|
135
|
+
**Solutions**:
|
|
136
|
+
1. Copy .env.example to .env
|
|
137
|
+
2. Fill in all required values
|
|
138
|
+
3. Restart server after changes
|
|
139
|
+
|
|
140
|
+
### TypeScript Compilation Errors
|
|
141
|
+
|
|
142
|
+
**Solutions**:
|
|
143
|
+
1. Run `npm install` to ensure all types are installed
|
|
144
|
+
2. Check tsconfig.json is correct
|
|
145
|
+
3. Run `npm run typecheck` to see all errors
|
|
146
|
+
4. Clear dist/ and rebuild
|
|
147
|
+
|
|
148
|
+
### Tests Failing
|
|
149
|
+
|
|
150
|
+
**Solutions**:
|
|
151
|
+
1. Ensure databases are running
|
|
152
|
+
2. Check .env is configured
|
|
153
|
+
3. Run tests individually to isolate issue
|
|
154
|
+
4. Check test data cleanup
|
|
155
|
+
|
|
156
|
+
## Getting Help
|
|
157
|
+
|
|
158
|
+
1. Check existing issues in repository
|
|
159
|
+
2. Review design documents in agent/design/
|
|
160
|
+
3. Check milestone specifications
|
|
161
|
+
4. Create issue with:
|
|
162
|
+
- Error message
|
|
163
|
+
- Steps to reproduce
|
|
164
|
+
- Environment details
|
|
165
|
+
- Logs
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 3. Update Progress Tracker
|
|
169
|
+
|
|
170
|
+
**agent/progress.yaml**:
|
|
171
|
+
```yaml
|
|
172
|
+
# Remember-MCP Progress Tracker
|
|
173
|
+
|
|
174
|
+
project:
|
|
175
|
+
name: remember-mcp
|
|
176
|
+
version: 0.1.0
|
|
177
|
+
started: 2026-02-11
|
|
178
|
+
status: in_progress
|
|
179
|
+
|
|
180
|
+
milestones:
|
|
181
|
+
- id: M1
|
|
182
|
+
name: Project Foundation
|
|
183
|
+
status: in_progress
|
|
184
|
+
progress: 70%
|
|
185
|
+
started: 2026-02-11
|
|
186
|
+
estimated_weeks: 1
|
|
187
|
+
tasks_completed: 0
|
|
188
|
+
tasks_total: 7
|
|
189
|
+
|
|
190
|
+
- id: M2
|
|
191
|
+
name: Core Memory System
|
|
192
|
+
status: not_started
|
|
193
|
+
progress: 0%
|
|
194
|
+
estimated_weeks: 2
|
|
195
|
+
|
|
196
|
+
- id: M3
|
|
197
|
+
name: Relationships & Graph
|
|
198
|
+
status: not_started
|
|
199
|
+
progress: 0%
|
|
200
|
+
estimated_weeks: 1
|
|
201
|
+
|
|
202
|
+
- id: M4
|
|
203
|
+
name: User Preferences
|
|
204
|
+
status: not_started
|
|
205
|
+
progress: 0%
|
|
206
|
+
estimated_weeks: 1
|
|
207
|
+
|
|
208
|
+
- id: M5
|
|
209
|
+
name: Template System
|
|
210
|
+
status: not_started
|
|
211
|
+
progress: 0%
|
|
212
|
+
estimated_weeks: 2
|
|
213
|
+
|
|
214
|
+
- id: M6
|
|
215
|
+
name: Auth & Multi-Tenancy
|
|
216
|
+
status: not_started
|
|
217
|
+
progress: 0%
|
|
218
|
+
estimated_weeks: 1
|
|
219
|
+
|
|
220
|
+
- id: M7
|
|
221
|
+
name: Trust & Permissions
|
|
222
|
+
status: not_started
|
|
223
|
+
progress: 0%
|
|
224
|
+
estimated_weeks: 2
|
|
225
|
+
|
|
226
|
+
- id: M8
|
|
227
|
+
name: Testing & Quality
|
|
228
|
+
status: not_started
|
|
229
|
+
progress: 0%
|
|
230
|
+
estimated_weeks: 2
|
|
231
|
+
|
|
232
|
+
- id: M9
|
|
233
|
+
name: Deployment & Documentation
|
|
234
|
+
status: not_started
|
|
235
|
+
progress: 0%
|
|
236
|
+
estimated_weeks: 1
|
|
237
|
+
|
|
238
|
+
tasks:
|
|
239
|
+
milestone_1:
|
|
240
|
+
- id: task-1
|
|
241
|
+
name: Initialize Project Structure
|
|
242
|
+
status: not_started
|
|
243
|
+
file: agent/tasks/task-1-initialize-project-structure.md
|
|
244
|
+
|
|
245
|
+
- id: task-2
|
|
246
|
+
name: Install Dependencies
|
|
247
|
+
status: not_started
|
|
248
|
+
file: agent/tasks/task-2-install-dependencies.md
|
|
249
|
+
|
|
250
|
+
- id: task-3
|
|
251
|
+
name: Setup Weaviate Client
|
|
252
|
+
status: not_started
|
|
253
|
+
file: agent/tasks/task-3-setup-weaviate-client.md
|
|
254
|
+
|
|
255
|
+
- id: task-4
|
|
256
|
+
name: Setup Firestore Client
|
|
257
|
+
status: not_started
|
|
258
|
+
file: agent/tasks/task-4-setup-firestore-client.md
|
|
259
|
+
|
|
260
|
+
- id: task-5
|
|
261
|
+
name: Create Basic MCP Server
|
|
262
|
+
status: not_started
|
|
263
|
+
file: agent/tasks/task-5-create-basic-mcp-server.md
|
|
264
|
+
|
|
265
|
+
- id: task-6
|
|
266
|
+
name: Create Integration Tests
|
|
267
|
+
status: not_started
|
|
268
|
+
file: agent/tasks/task-6-create-integration-tests.md
|
|
269
|
+
|
|
270
|
+
- id: task-7
|
|
271
|
+
name: Finalize Milestone 1
|
|
272
|
+
status: in_progress
|
|
273
|
+
file: agent/tasks/task-7-finalize-milestone-1.md
|
|
274
|
+
|
|
275
|
+
design_documents: 20
|
|
276
|
+
milestone_documents: 9
|
|
277
|
+
pattern_documents: 2
|
|
278
|
+
task_documents: 7
|
|
279
|
+
|
|
280
|
+
overall_progress: 10%
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### 4. Create Milestone 1 Completion Checklist
|
|
284
|
+
|
|
285
|
+
**agent/milestones/milestone-1-completion.md**:
|
|
286
|
+
```markdown
|
|
287
|
+
# Milestone 1 Completion Checklist
|
|
288
|
+
|
|
289
|
+
## All Tasks Complete
|
|
290
|
+
- [ ] Task 1: Initialize Project Structure
|
|
291
|
+
- [ ] Task 2: Install Dependencies
|
|
292
|
+
- [ ] Task 3: Setup Weaviate Client
|
|
293
|
+
- [ ] Task 4: Setup Firestore Client
|
|
294
|
+
- [ ] Task 5: Create Basic MCP Server
|
|
295
|
+
- [ ] Task 6: Create Integration Tests
|
|
296
|
+
- [ ] Task 7: Finalize Milestone 1
|
|
297
|
+
|
|
298
|
+
## Success Criteria
|
|
299
|
+
- [ ] Project builds successfully (`npm run build`)
|
|
300
|
+
- [ ] Can connect to Weaviate instance
|
|
301
|
+
- [ ] Can connect to Firestore
|
|
302
|
+
- [ ] Basic MCP server responds to requests
|
|
303
|
+
- [ ] TypeScript compiles without errors
|
|
304
|
+
- [ ] All dependencies installed correctly
|
|
305
|
+
- [ ] All tests pass
|
|
306
|
+
- [ ] Health check tool works
|
|
307
|
+
- [ ] Documentation complete
|
|
308
|
+
|
|
309
|
+
## Deliverables
|
|
310
|
+
- [ ] Project structure created
|
|
311
|
+
- [ ] package.json configured
|
|
312
|
+
- [ ] TypeScript configuration
|
|
313
|
+
- [ ] Build system (esbuild)
|
|
314
|
+
- [ ] Weaviate client wrapper
|
|
315
|
+
- [ ] Firestore client wrapper
|
|
316
|
+
- [ ] Basic MCP server
|
|
317
|
+
- [ ] Integration tests
|
|
318
|
+
- [ ] Development documentation
|
|
319
|
+
- [ ] Troubleshooting guide
|
|
320
|
+
|
|
321
|
+
## Ready for Milestone 2
|
|
322
|
+
- [ ] All M1 tasks complete
|
|
323
|
+
- [ ] All tests passing
|
|
324
|
+
- [ ] Documentation reviewed
|
|
325
|
+
- [ ] Code committed to repository
|
|
326
|
+
- [ ] Team briefed on progress
|
|
327
|
+
|
|
328
|
+
## Notes
|
|
329
|
+
|
|
330
|
+
Add any notes or issues encountered during M1 implementation here.
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Verification
|
|
336
|
+
|
|
337
|
+
- [ ] docs/DEVELOPMENT.md created
|
|
338
|
+
- [ ] docs/TROUBLESHOOTING.md created
|
|
339
|
+
- [ ] agent/progress.yaml updated
|
|
340
|
+
- [ ] agent/milestones/milestone-1-completion.md created
|
|
341
|
+
- [ ] All M1 tasks documented
|
|
342
|
+
- [ ] All success criteria can be verified
|
|
343
|
+
- [ ] Ready to begin implementation
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Final Steps
|
|
348
|
+
|
|
349
|
+
1. Review all task files for completeness
|
|
350
|
+
2. Verify all file paths are correct
|
|
351
|
+
3. Ensure all code examples are complete
|
|
352
|
+
4. Test that instructions are clear
|
|
353
|
+
5. Commit all task files to repository
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Next Milestone
|
|
358
|
+
|
|
359
|
+
Milestone 2: Core Memory System
|
|
360
|
+
- 6 memory CRUD tools
|
|
361
|
+
- Memory schema implementation
|
|
362
|
+
- User isolation
|
|
363
|
+
- Context integration
|