@synth-coder/memhub 0.2.3 → 0.2.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 (118) hide show
  1. package/.github/workflows/ci.yml +48 -12
  2. package/.github/workflows/release.yml +70 -0
  3. package/AGENTS.md +71 -73
  4. package/README.md +284 -195
  5. package/README.zh-CN.md +90 -30
  6. package/dist/src/cli/agents/claude-code.d.ts +5 -0
  7. package/dist/src/cli/agents/claude-code.d.ts.map +1 -0
  8. package/dist/src/cli/agents/claude-code.js +14 -0
  9. package/dist/src/cli/agents/claude-code.js.map +1 -0
  10. package/dist/src/cli/agents/cline.d.ts +5 -0
  11. package/dist/src/cli/agents/cline.d.ts.map +1 -0
  12. package/dist/src/cli/agents/cline.js +14 -0
  13. package/dist/src/cli/agents/cline.js.map +1 -0
  14. package/dist/src/cli/agents/cursor.d.ts +5 -0
  15. package/dist/src/cli/agents/cursor.d.ts.map +1 -0
  16. package/dist/src/cli/agents/cursor.js +14 -0
  17. package/dist/src/cli/agents/cursor.js.map +1 -0
  18. package/dist/src/cli/agents/factory-droid.d.ts +5 -0
  19. package/dist/src/cli/agents/factory-droid.d.ts.map +1 -0
  20. package/dist/src/cli/agents/factory-droid.js +14 -0
  21. package/dist/src/cli/agents/factory-droid.js.map +1 -0
  22. package/dist/src/cli/agents/gemini-cli.d.ts +5 -0
  23. package/dist/src/cli/agents/gemini-cli.d.ts.map +1 -0
  24. package/dist/src/cli/agents/gemini-cli.js +14 -0
  25. package/dist/src/cli/agents/gemini-cli.js.map +1 -0
  26. package/dist/src/cli/agents/index.d.ts +13 -0
  27. package/dist/src/cli/agents/index.d.ts.map +1 -0
  28. package/dist/src/cli/agents/index.js +27 -0
  29. package/dist/src/cli/agents/index.js.map +1 -0
  30. package/dist/src/cli/agents/windsurf.d.ts +5 -0
  31. package/dist/src/cli/agents/windsurf.d.ts.map +1 -0
  32. package/dist/src/cli/agents/windsurf.js +14 -0
  33. package/dist/src/cli/agents/windsurf.js.map +1 -0
  34. package/dist/src/cli/index.d.ts +8 -0
  35. package/dist/src/cli/index.d.ts.map +1 -0
  36. package/dist/src/cli/index.js +168 -0
  37. package/dist/src/cli/index.js.map +1 -0
  38. package/dist/src/cli/init.d.ts +34 -0
  39. package/dist/src/cli/init.d.ts.map +1 -0
  40. package/dist/src/cli/init.js +140 -0
  41. package/dist/src/cli/init.js.map +1 -0
  42. package/dist/src/cli/instructions.d.ts +29 -0
  43. package/dist/src/cli/instructions.d.ts.map +1 -0
  44. package/dist/src/cli/instructions.js +141 -0
  45. package/dist/src/cli/instructions.js.map +1 -0
  46. package/dist/src/cli/types.d.ts +22 -0
  47. package/dist/src/cli/types.d.ts.map +1 -0
  48. package/dist/src/cli/types.js +75 -0
  49. package/dist/src/cli/types.js.map +1 -0
  50. package/dist/src/contracts/mcp.js +34 -34
  51. package/dist/src/contracts/schemas.js.map +1 -1
  52. package/dist/src/server/mcp-server.d.ts.map +1 -1
  53. package/dist/src/server/mcp-server.js +7 -14
  54. package/dist/src/server/mcp-server.js.map +1 -1
  55. package/dist/src/services/embedding-service.d.ts.map +1 -1
  56. package/dist/src/services/embedding-service.js +1 -1
  57. package/dist/src/services/embedding-service.js.map +1 -1
  58. package/dist/src/services/memory-service.d.ts.map +1 -1
  59. package/dist/src/services/memory-service.js.map +1 -1
  60. package/dist/src/storage/markdown-storage.d.ts.map +1 -1
  61. package/dist/src/storage/markdown-storage.js +1 -1
  62. package/dist/src/storage/markdown-storage.js.map +1 -1
  63. package/dist/src/storage/vector-index.d.ts.map +1 -1
  64. package/dist/src/storage/vector-index.js +4 -5
  65. package/dist/src/storage/vector-index.js.map +1 -1
  66. package/docs/README.md +21 -0
  67. package/docs/mcp-tools.md +136 -0
  68. package/docs/user-guide.md +184 -0
  69. package/package.json +61 -59
  70. package/src/cli/agents/claude-code.ts +14 -0
  71. package/src/cli/agents/cline.ts +14 -0
  72. package/src/cli/agents/codex.ts +14 -0
  73. package/src/cli/agents/cursor.ts +14 -0
  74. package/src/cli/agents/factory-droid.ts +14 -0
  75. package/src/cli/agents/gemini-cli.ts +14 -0
  76. package/src/cli/agents/index.ts +36 -0
  77. package/src/cli/agents/windsurf.ts +14 -0
  78. package/src/cli/index.ts +192 -0
  79. package/src/cli/init.ts +218 -0
  80. package/src/cli/instructions.ts +156 -0
  81. package/src/cli/types.ts +112 -0
  82. package/src/contracts/index.ts +12 -12
  83. package/src/contracts/mcp.ts +223 -223
  84. package/src/contracts/schemas.ts +307 -307
  85. package/src/contracts/types.ts +410 -410
  86. package/src/index.ts +8 -8
  87. package/src/server/index.ts +5 -5
  88. package/src/server/mcp-server.ts +169 -186
  89. package/src/services/embedding-service.ts +114 -114
  90. package/src/services/index.ts +5 -5
  91. package/src/services/memory-service.ts +656 -663
  92. package/src/storage/frontmatter-parser.ts +243 -243
  93. package/src/storage/index.ts +6 -6
  94. package/src/storage/markdown-storage.ts +228 -236
  95. package/src/storage/vector-index.ts +159 -160
  96. package/src/utils/index.ts +5 -5
  97. package/src/utils/slugify.ts +63 -63
  98. package/test/cli/init.test.ts +402 -0
  99. package/test/contracts/schemas.test.ts +313 -313
  100. package/test/contracts/types.test.ts +21 -21
  101. package/test/frontmatter-parser-more.test.ts +94 -94
  102. package/test/server/mcp-server.test.ts +211 -210
  103. package/test/services/memory-service-edge.test.ts +248 -248
  104. package/test/services/memory-service.test.ts +291 -279
  105. package/test/storage/frontmatter-parser.test.ts +223 -223
  106. package/test/storage/markdown-storage.test.ts +226 -217
  107. package/test/storage/storage-edge.test.ts +238 -238
  108. package/test/storage/vector-index.test.ts +149 -153
  109. package/test/utils/slugify-edge.test.ts +94 -94
  110. package/test/utils/slugify.test.ts +72 -68
  111. package/docs/architecture-diagrams.md +0 -368
  112. package/docs/architecture.md +0 -381
  113. package/docs/contracts.md +0 -190
  114. package/docs/prompt-template.md +0 -33
  115. package/docs/proposals/mcp-typescript-sdk-refactor.md +0 -568
  116. package/docs/proposals/proposal-close-gates.md +0 -58
  117. package/docs/tool-calling-policy.md +0 -101
  118. package/docs/vector-search.md +0 -306
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-storage.js","sourceRoot":"","sources":["../../../src/storage/markdown-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-storage.js","sourceRoot":"","sources":["../../../src/storage/markdown-storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vector-index.d.ts","sourceRoot":"","sources":["../../../src/storage/vector-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASpD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAA8B;gBAErC,WAAW,EAAE,MAAM;IAI/B,+DAA+D;IACzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YASnB,KAAK;IAgCnB;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7D;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAczE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAIjC"}
1
+ {"version":3,"file":"vector-index.d.ts","sourceRoot":"","sources":["../../../src/storage/vector-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASpD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,WAAW,CAA8B;gBAErC,WAAW,EAAE,MAAM;IAI/B,+DAA+D;IACzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YASnB,KAAK;IAkCnB;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7D;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAWzE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAI/B"}
@@ -61,7 +61,9 @@ export class VectorIndex {
61
61
  };
62
62
  // LanceDB expects Record<string, unknown>[] but our VectorRow is typed more strictly
63
63
  // Cast is safe here as VectorRow is a subset of Record<string, unknown>
64
- this.table = await this.db.createTable(TABLE_NAME, [dummy]);
64
+ this.table = await this.db.createTable(TABLE_NAME, [
65
+ dummy,
66
+ ]);
65
67
  await this.table.delete(`id = '__init__'`);
66
68
  }
67
69
  }
@@ -103,10 +105,7 @@ export class VectorIndex {
103
105
  */
104
106
  async search(vector, limit = 10) {
105
107
  await this.initialize();
106
- const results = await this.table
107
- .vectorSearch(vector)
108
- .limit(limit)
109
- .toArray();
108
+ const results = await this.table.vectorSearch(vector).limit(limit).toArray();
110
109
  return results.map((row) => ({
111
110
  id: row['id'],
112
111
  _distance: row['_distance'],
@@ -1 +1 @@
1
- {"version":3,"file":"vector-index.js","sourceRoot":"","sources":["../../../src/storage/vector-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector-index.js","sourceRoot":"","sources":["../../../src/storage/vector-index.ts"],"names":[],"mappings":"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"}
package/docs/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # MemHub Documentation
2
+
3
+ Welcome to MemHub documentation. MemHub is a Git-friendly memory system for AI coding agents.
4
+
5
+ ## Documentation
6
+
7
+ | Document | Description |
8
+ | --------------------------- | ----------------------------------------------- |
9
+ | [User Guide](user-guide.md) | Complete guide for using MemHub |
10
+ | [MCP Tools](mcp-tools.md) | API reference for memory_load and memory_update |
11
+
12
+ ## Quick Links
13
+
14
+ - [Installation](user-guide.md#installation)
15
+ - [Memory Tools](user-guide.md#how-it-works)
16
+ - [Storage](user-guide.md#storage)
17
+ - [Troubleshooting](user-guide.md#troubleshooting)
18
+
19
+ ## Getting Help
20
+
21
+ - GitHub Issues: https://github.com/synth-coder/memhub/issues
@@ -0,0 +1,136 @@
1
+ # MCP Tools Reference
2
+
3
+ MemHub exposes two MCP tools for AI agents to manage persistent memory.
4
+
5
+ ---
6
+
7
+ ## memory_load
8
+
9
+ Load relevant memories to get context for the current task.
10
+
11
+ ### Parameters
12
+
13
+ | Parameter | Type | Required | Description |
14
+ | ----------- | -------- | -------- | ----------------------------------------------------------- |
15
+ | `query` | string | No | Search query to filter memories |
16
+ | `tags` | string[] | No | Filter by tags |
17
+ | `limit` | number | No | Max memories to return (default: 10) |
18
+ | `entryType` | string | No | Filter by type: `preference`, `decision`, `context`, `fact` |
19
+
20
+ ### Returns
21
+
22
+ ```json
23
+ {
24
+ "memories": [
25
+ {
26
+ "id": "uuid",
27
+ "title": "Memory title",
28
+ "content": "Memory content...",
29
+ "tags": ["tag1", "tag2"],
30
+ "category": "engineering",
31
+ "importance": 4,
32
+ "createdAt": "2026-03-04T10:00:00.000Z",
33
+ "updatedAt": "2026-03-04T10:00:00.000Z"
34
+ }
35
+ ],
36
+ "count": 1
37
+ }
38
+ ```
39
+
40
+ ### When to Call
41
+
42
+ - Starting a new conversation or task
43
+ - User mentions "before", "remember", "last time"
44
+ - Uncertain about user preferences or constraints
45
+ - Need project context (tech stack, conventions)
46
+
47
+ ### Example
48
+
49
+ ```json
50
+ {
51
+ "query": "testing framework",
52
+ "tags": ["preference"],
53
+ "limit": 5
54
+ }
55
+ ```
56
+
57
+ ---
58
+
59
+ ## memory_update
60
+
61
+ Store new memories or update existing ones.
62
+
63
+ ### Parameters
64
+
65
+ | Parameter | Type | Required | Description |
66
+ | ------------ | -------- | -------- | ------------------------------------------ |
67
+ | `title` | string | Yes | Short, descriptive title |
68
+ | `content` | string | Yes | Detailed memory content |
69
+ | `tags` | string[] | No | Tags for categorization |
70
+ | `entryType` | string | No | Memory type (default: `fact`) |
71
+ | `category` | string | No | Category (e.g., `engineering`, `business`) |
72
+ | `importance` | number | No | Importance 1-5 (default: 3) |
73
+ | `id` | string | No | Existing memory ID to update |
74
+
75
+ ### Entry Types
76
+
77
+ | Type | Purpose |
78
+ | ------------ | -------------------------------------------------- |
79
+ | `preference` | User preferences (coding style, framework choices) |
80
+ | `decision` | Architecture decisions, technology choices |
81
+ | `context` | Project context (team, processes, constraints) |
82
+ | `fact` | Learned facts, important notes |
83
+
84
+ ### Returns
85
+
86
+ ```json
87
+ {
88
+ "id": "uuid",
89
+ "title": "Memory title",
90
+ "createdAt": "2026-03-04T10:00:00.000Z"
91
+ }
92
+ ```
93
+
94
+ ### When to Call
95
+
96
+ - User explicitly expresses a preference
97
+ - Made a significant decision with reasoning
98
+ - Discovered important project context
99
+ - User corrected an assumption
100
+
101
+ ### Example
102
+
103
+ ```json
104
+ {
105
+ "title": "Use Vitest for Testing",
106
+ "content": "User prefers Vitest over Jest for all new projects. Reason: faster test execution and better ESM support.",
107
+ "tags": ["testing", "preference"],
108
+ "entryType": "preference",
109
+ "importance": 4
110
+ }
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Best Practices
116
+
117
+ ### What to Store
118
+
119
+ **Good candidates:**
120
+
121
+ - User preferences (coding style, frameworks)
122
+ - Technical decisions and their reasoning
123
+ - Project constraints and conventions
124
+ - Lessons learned from mistakes
125
+
126
+ **Avoid storing:**
127
+
128
+ - Temporary information
129
+ - One-time tasks
130
+ - Sensitive data (API keys, passwords)
131
+
132
+ ### Memory Principles
133
+
134
+ 1. **Natural trigger** - Memory calls should be context-driven
135
+ 2. **Value first** - Only store what future conversations benefit from
136
+ 3. **Preferences matter** - User preferences are the most valuable memories
@@ -0,0 +1,184 @@
1
+ # MemHub User Guide
2
+
3
+ MemHub is a Git-friendly memory system for AI coding agents. It helps your AI remember preferences, decisions, and project context across conversations.
4
+
5
+ ## Installation
6
+
7
+ ### Quick Setup (Recommended)
8
+
9
+ Configure MemHub for your AI agent with one command:
10
+
11
+ ```bash
12
+ npx -y @synth-coder/memhub@latest init
13
+ ```
14
+
15
+ This will:
16
+
17
+ 1. Add MCP server config to your agent's configuration file
18
+ 2. Add MemHub usage instructions to your agent's rules file
19
+
20
+ ### Supported Agents
21
+
22
+ | Agent | Global Config | Local Config |
23
+ | ------------- | ------------------------------------- | ----------------------------------- |
24
+ | Claude Code | `~/.claude/settings.json` | `.mcp.json` |
25
+ | Cursor | `~/.cursor/mcp.json` | `.cursor/mcp.json` |
26
+ | Cline | `~/.cline/mcp.json` | `.cline/mcp.json` |
27
+ | Windsurf | `~/.codeium/windsurf/mcp_config.json` | `.codeium/windsurf/mcp_config.json` |
28
+ | Factory Droid | `~/.factory/mcp.json` | `.factory/mcp.json` |
29
+ | Gemini CLI | `~/.gemini/settings.json` | `.gemini/settings.json` |
30
+ | Codex | `~/.codex/config.toml` | `.codex/config.toml` |
31
+
32
+ Note: Codex config uses TOML key `mcp_servers` (not `mcpServers`).
33
+
34
+ ### CLI Options
35
+
36
+ ```bash
37
+ # Interactive selection (global - default)
38
+ npx -y @synth-coder/memhub@latest init
39
+
40
+ # Specify agent
41
+ npx -y @synth-coder/memhub@latest init -a claude-code
42
+
43
+ # Configure for current project only (local)
44
+ npx -y @synth-coder/memhub@latest init -a cursor -l
45
+
46
+ # Update existing configuration
47
+ npx -y @synth-coder/memhub@latest init -a claude-code --force
48
+ ```
49
+
50
+ | Option | Description |
51
+ | -------------------- | ----------------------------------------------- |
52
+ | `-a, --agent <name>` | Agent type (skip interactive) |
53
+ | `-l, --local` | Configure for current project (default: global) |
54
+ | `-f, --force` | Update existing configuration |
55
+
56
+ ---
57
+
58
+ ## How It Works
59
+
60
+ ### Memory Tools
61
+
62
+ MemHub provides two MCP tools for your AI agent:
63
+
64
+ #### `memory_load` - Recall Context
65
+
66
+ Your AI calls this when it needs to remember something:
67
+
68
+ - User mentions "before", "remember", "last time"
69
+ - Uncertain about user preferences
70
+ - Need historical context for a decision
71
+
72
+ #### `memory_update` - Store Knowledge
73
+
74
+ Your AI calls this when it learns something worth remembering:
75
+
76
+ - User expresses a preference ("I prefer functional components")
77
+ - Made a significant decision with reasoning
78
+ - Discovered important project context
79
+ - User corrected an assumption
80
+
81
+ ### Memory Types
82
+
83
+ | Type | Purpose | Example |
84
+ | ------------ | ------------------- | ------------------------------------ |
85
+ | `preference` | User preferences | "Prefers TypeScript over JavaScript" |
86
+ | `decision` | Technical decisions | "Using PostgreSQL for scalability" |
87
+ | `context` | Project context | "Team uses conventional commits" |
88
+ | `fact` | Learned facts | "API rate limit is 1000 req/min" |
89
+
90
+ ---
91
+
92
+ ## Storage
93
+
94
+ ### Where Memories Are Stored
95
+
96
+ By default, memories are stored in `~/.memhub/` (global) or `./memories/` (local).
97
+
98
+ ```bash
99
+ # Custom storage location
100
+ MEMHUB_STORAGE_PATH=/path/to/memories npx -y @synth-coder/memhub@latest
101
+ ```
102
+
103
+ ### File Format
104
+
105
+ Memories are plain Markdown files with YAML front matter:
106
+
107
+ ```markdown
108
+ ---
109
+ id: '550e8400-e29b-41d4-a716-446655440000'
110
+ created_at: '2026-03-04T10:00:00.000Z'
111
+ tags:
112
+ - architecture
113
+ - tdd
114
+ category: 'engineering'
115
+ importance: 4
116
+ ---
117
+
118
+ # Use Contract-First Design
119
+
120
+ Define tool contracts and schemas before implementation.
121
+ ```
122
+
123
+ ### Git Integration
124
+
125
+ Since memories are plain text files, you can:
126
+
127
+ - Commit them to your repository
128
+ - Review changes in pull requests
129
+ - Revert if needed
130
+ - Share with your team
131
+
132
+ ---
133
+
134
+ ## Environment Variables
135
+
136
+ | Variable | Default | Description |
137
+ | --------------------- | ----------- | ------------------------------------------- |
138
+ | `MEMHUB_STORAGE_PATH` | `~/.memhub` | Memory storage directory |
139
+ | `MEMHUB_LOG_LEVEL` | `info` | Log level: `debug`, `info`, `warn`, `error` |
140
+
141
+ ---
142
+
143
+ ## Tips
144
+
145
+ ### What to Remember
146
+
147
+ **Good candidates:**
148
+
149
+ - User preferences (coding style, frameworks)
150
+ - Technical decisions and their reasoning
151
+ - Project constraints and conventions
152
+ - Lessons learned from mistakes
153
+
154
+ **Avoid storing:**
155
+
156
+ - Temporary information
157
+ - One-time tasks
158
+ - Sensitive data (API keys, passwords)
159
+
160
+ ### Memory Principles
161
+
162
+ 1. **Natural trigger** - Memory calls should be context-driven, not scheduled
163
+ 2. **Value first** - Only store what future conversations will benefit from
164
+ 3. **Preferences matter** - User preferences are the most valuable memories
165
+
166
+ ---
167
+
168
+ ## Troubleshooting
169
+
170
+ ### Configuration not working?
171
+
172
+ 1. Restart your AI agent after running `init`
173
+ 2. Check the config file exists and contains `memhub` server
174
+ 3. Try with `--force` to update existing configuration
175
+
176
+ ### Memories not loading?
177
+
178
+ 1. Check `MEMHUB_STORAGE_PATH` is correct
179
+ 2. Verify the directory contains `.md` files
180
+ 3. Check file permissions
181
+
182
+ ### Need help?
183
+
184
+ - GitHub Issues: https://github.com/synth-coder/memhub/issues
package/package.json CHANGED
@@ -1,59 +1,61 @@
1
- {
2
- "name": "@synth-coder/memhub",
3
- "version": "0.2.3",
4
- "description": "A Git-friendly memory hub using Markdown-based storage with YAML Front Matter",
5
- "type": "module",
6
- "main": "dist/src/index.js",
7
- "types": "dist/src/index.d.ts",
8
- "bin": {
9
- "memhub": "dist/src/server/mcp-server.js"
10
- },
11
- "scripts": {
12
- "build": "tsc",
13
- "dev": "tsc --watch",
14
- "test": "vitest run",
15
- "test:watch": "vitest",
16
- "test:coverage": "vitest run --coverage",
17
- "lint": "eslint src test --ext .ts",
18
- "lint:fix": "eslint src test --ext .ts --fix",
19
- "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\"",
20
- "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\"",
21
- "typecheck": "tsc --noEmit --project tsconfig.json",
22
- "quality": "npm run lint && npm run typecheck && npm run test:coverage",
23
- "ci": "npm run quality"
24
- },
25
- "keywords": [
26
- "mcp",
27
- "memory",
28
- "markdown",
29
- "yaml",
30
- "git-friendly"
31
- ],
32
- "author": "",
33
- "license": "MIT",
34
- "dependencies": {
35
- "@lancedb/lancedb": "^0.26.2",
36
- "@modelcontextprotocol/sdk": "^1.27.1",
37
- "@xenova/transformers": "^2.17.2",
38
- "proper-lockfile": "^4.1.2",
39
- "sharp": "^0.34.5",
40
- "yaml": "^2.8.2",
41
- "zod": "^3.25.76"
42
- },
43
- "devDependencies": {
44
- "@types/node": "^20.19.35",
45
- "@types/proper-lockfile": "^4.1.4",
46
- "@typescript-eslint/eslint-plugin": "^6.21.0",
47
- "@typescript-eslint/parser": "^6.21.0",
48
- "@vitest/coverage-v8": "^1.6.1",
49
- "eslint": "^8.57.1",
50
- "eslint-config-prettier": "^9.1.2",
51
- "eslint-plugin-import": "^2.32.0",
52
- "prettier": "^3.8.1",
53
- "typescript": "^5.9.3",
54
- "vitest": "^1.6.1"
55
- },
56
- "engines": {
57
- "node": ">=18.0.0"
58
- }
59
- }
1
+ {
2
+ "name": "@synth-coder/memhub",
3
+ "version": "0.2.5",
4
+ "description": "A Git-friendly memory hub using Markdown-based storage with YAML Front Matter",
5
+ "type": "module",
6
+ "main": "dist/src/index.js",
7
+ "types": "dist/src/index.d.ts",
8
+ "bin": {
9
+ "memhub": "dist/src/cli/index.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsc --watch",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "test:coverage": "vitest run --coverage",
17
+ "lint": "eslint src test --ext .ts",
18
+ "lint:fix": "eslint src test --ext .ts --fix",
19
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\"",
20
+ "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"docs/**/*.md\"",
21
+ "typecheck": "tsc --noEmit --project tsconfig.json",
22
+ "quality": "npm run lint && npm run typecheck && npm run test:coverage",
23
+ "ci": "npm run quality"
24
+ },
25
+ "keywords": [
26
+ "mcp",
27
+ "memory",
28
+ "markdown",
29
+ "yaml",
30
+ "git-friendly"
31
+ ],
32
+ "author": "",
33
+ "license": "MIT",
34
+ "dependencies": {
35
+ "@clack/prompts": "^1.1.0",
36
+ "@lancedb/lancedb": "^0.26.2",
37
+ "@modelcontextprotocol/sdk": "^1.27.1",
38
+ "@xenova/transformers": "^2.17.2",
39
+ "proper-lockfile": "^4.1.2",
40
+ "sharp": "^0.34.5",
41
+ "smol-toml": "^1.6.0",
42
+ "yaml": "^2.8.2",
43
+ "zod": "^3.25.76"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^20.19.35",
47
+ "@types/proper-lockfile": "^4.1.4",
48
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
49
+ "@typescript-eslint/parser": "^6.21.0",
50
+ "@vitest/coverage-v8": "^1.6.1",
51
+ "eslint": "^8.57.1",
52
+ "eslint-config-prettier": "^9.1.2",
53
+ "eslint-plugin-import": "^2.32.0",
54
+ "prettier": "^3.8.1",
55
+ "typescript": "^5.9.3",
56
+ "vitest": "^1.6.1"
57
+ },
58
+ "engines": {
59
+ "node": ">=20.0.0"
60
+ }
61
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Claude Code MCP configuration generator
3
+ */
4
+
5
+ export function generateClaudeCodeConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcpServers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cline MCP configuration generator
3
+ */
4
+
5
+ export function generateClineConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcpServers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Codex MCP configuration generator
3
+ */
4
+
5
+ export function generateCodexConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcp_servers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cursor MCP configuration generator
3
+ */
4
+
5
+ export function generateCursorConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcpServers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Factory Droid MCP configuration generator
3
+ */
4
+
5
+ export function generateFactoryDroidConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcpServers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Gemini CLI MCP configuration generator
3
+ */
4
+
5
+ export function generateGeminiCliConfig(_memhubPath: string): Record<string, unknown> {
6
+ return {
7
+ mcpServers: {
8
+ memhub: {
9
+ command: 'npx',
10
+ args: ['-y', '@synth-coder/memhub@latest'],
11
+ },
12
+ },
13
+ };
14
+ }