@synth-coder/memhub 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/.eslintrc.cjs +46 -0
- package/.github/workflows/ci.yml +74 -0
- package/.iflow/commands/opsx-apply.md +152 -0
- package/.iflow/commands/opsx-archive.md +157 -0
- package/.iflow/commands/opsx-explore.md +173 -0
- package/.iflow/commands/opsx-propose.md +106 -0
- package/.iflow/skills/openspec-apply-change/SKILL.md +156 -0
- package/.iflow/skills/openspec-archive-change/SKILL.md +114 -0
- package/.iflow/skills/openspec-explore/SKILL.md +288 -0
- package/.iflow/skills/openspec-propose/SKILL.md +110 -0
- package/.prettierrc +11 -0
- package/README.md +171 -0
- package/README.zh-CN.md +169 -0
- package/dist/src/contracts/index.d.ts +7 -0
- package/dist/src/contracts/index.d.ts.map +1 -0
- package/dist/src/contracts/index.js +10 -0
- package/dist/src/contracts/index.js.map +1 -0
- package/dist/src/contracts/mcp.d.ts +194 -0
- package/dist/src/contracts/mcp.d.ts.map +1 -0
- package/dist/src/contracts/mcp.js +112 -0
- package/dist/src/contracts/mcp.js.map +1 -0
- package/dist/src/contracts/schemas.d.ts +1153 -0
- package/dist/src/contracts/schemas.d.ts.map +1 -0
- package/dist/src/contracts/schemas.js +246 -0
- package/dist/src/contracts/schemas.js.map +1 -0
- package/dist/src/contracts/types.d.ts +328 -0
- package/dist/src/contracts/types.d.ts.map +1 -0
- package/dist/src/contracts/types.js +30 -0
- package/dist/src/contracts/types.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/server/index.d.ts +5 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +5 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/mcp-server.d.ts +80 -0
- package/dist/src/server/mcp-server.d.ts.map +1 -0
- package/dist/src/server/mcp-server.js +263 -0
- package/dist/src/server/mcp-server.js.map +1 -0
- package/dist/src/services/index.d.ts +5 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +5 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/memory-service.d.ts +105 -0
- package/dist/src/services/memory-service.d.ts.map +1 -0
- package/dist/src/services/memory-service.js +447 -0
- package/dist/src/services/memory-service.js.map +1 -0
- package/dist/src/storage/frontmatter-parser.d.ts +69 -0
- package/dist/src/storage/frontmatter-parser.d.ts.map +1 -0
- package/dist/src/storage/frontmatter-parser.js +207 -0
- package/dist/src/storage/frontmatter-parser.js.map +1 -0
- package/dist/src/storage/index.d.ts +6 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +6 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/markdown-storage.d.ts +76 -0
- package/dist/src/storage/markdown-storage.d.ts.map +1 -0
- package/dist/src/storage/markdown-storage.js +193 -0
- package/dist/src/storage/markdown-storage.js.map +1 -0
- package/dist/src/utils/index.d.ts +5 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +5 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/slugify.d.ts +24 -0
- package/dist/src/utils/slugify.d.ts.map +1 -0
- package/dist/src/utils/slugify.js +56 -0
- package/dist/src/utils/slugify.js.map +1 -0
- package/docs/architecture.md +349 -0
- package/docs/contracts.md +119 -0
- package/docs/prompt-template.md +79 -0
- package/docs/proposal-close-gates.md +58 -0
- package/docs/tool-calling-policy.md +107 -0
- package/package.json +53 -0
- package/src/contracts/index.ts +12 -0
- package/src/contracts/mcp.ts +303 -0
- package/src/contracts/schemas.ts +311 -0
- package/src/contracts/types.ts +414 -0
- package/src/index.ts +8 -0
- package/src/server/index.ts +5 -0
- package/src/server/mcp-server.ts +352 -0
- package/src/services/index.ts +5 -0
- package/src/services/memory-service.ts +548 -0
- package/src/storage/frontmatter-parser.ts +243 -0
- package/src/storage/index.ts +6 -0
- package/src/storage/markdown-storage.ts +236 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/slugify.ts +63 -0
- package/test/contracts/schemas.test.ts +313 -0
- package/test/contracts/types.test.ts +21 -0
- package/test/frontmatter-parser-more.test.ts +94 -0
- package/test/server/mcp-server-internals.test.ts +257 -0
- package/test/server/mcp-server.test.ts +97 -0
- package/test/services/memory-service-edge.test.ts +248 -0
- package/test/services/memory-service.test.ts +279 -0
- package/test/storage/frontmatter-parser.test.ts +223 -0
- package/test/storage/markdown-storage.test.ts +217 -0
- package/test/storage/storage-edge.test.ts +238 -0
- package/test/utils/slugify-edge.test.ts +94 -0
- package/test/utils/slugify.test.ts +68 -0
- package/tsconfig.json +26 -0
- package/tsconfig.test.json +8 -0
- package/vitest.config.ts +27 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) specific types and constants
|
|
3
|
+
* Defines the protocol structures for stdio-based communication
|
|
4
|
+
*/
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// MCP Protocol Version
|
|
7
|
+
// ============================================================================
|
|
8
|
+
/** Current MCP protocol version */
|
|
9
|
+
export const MCP_PROTOCOL_VERSION = '2024-11-05';
|
|
10
|
+
/** Server information */
|
|
11
|
+
export const SERVER_INFO = {
|
|
12
|
+
name: 'memhub',
|
|
13
|
+
version: '0.1.0',
|
|
14
|
+
};
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// MCP Tool List
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/** All available tool names */
|
|
19
|
+
export const TOOL_NAMES = ['memory_load', 'memory_update'];
|
|
20
|
+
/** Tool definitions for MCP server */
|
|
21
|
+
export const TOOL_DEFINITIONS = [
|
|
22
|
+
{
|
|
23
|
+
name: 'memory_load',
|
|
24
|
+
description: 'STM first step. Call at the first turn after receiving user prompt to load short-term memory context for this session/task.',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
id: { type: 'string', description: 'Optional memory id for direct fetch' },
|
|
29
|
+
sessionId: {
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Optional session UUID to load current CLI/task context',
|
|
32
|
+
},
|
|
33
|
+
date: { type: 'string', description: 'Optional date filter (YYYY-MM-DD)' },
|
|
34
|
+
query: { type: 'string', description: 'Optional text query for relevant context' },
|
|
35
|
+
category: { type: 'string' },
|
|
36
|
+
tags: { type: 'array', items: { type: 'string' } },
|
|
37
|
+
limit: { type: 'number', description: 'Max results, default 20' },
|
|
38
|
+
scope: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
enum: ['stm', 'all'],
|
|
41
|
+
description: 'stm for short-term context window; all for broader retrieval',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
additionalProperties: false,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'memory_update',
|
|
49
|
+
description: 'STM write-back step. Call at the final turn to append/upsert new decisions, preferences, task-state changes, and key outputs.',
|
|
50
|
+
inputSchema: {
|
|
51
|
+
type: 'object',
|
|
52
|
+
properties: {
|
|
53
|
+
id: { type: 'string', description: 'Optional id. Present = update existing record' },
|
|
54
|
+
sessionId: { type: 'string', description: 'Session UUID. Auto-created if omitted' },
|
|
55
|
+
mode: { type: 'string', enum: ['append', 'upsert'], description: 'Default append' },
|
|
56
|
+
entryType: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
enum: ['decision', 'preference', 'knowledge', 'todo', 'state_change'],
|
|
59
|
+
},
|
|
60
|
+
title: { type: 'string', description: 'Optional title' },
|
|
61
|
+
content: { type: 'string', description: 'Required memory body' },
|
|
62
|
+
tags: { type: 'array', items: { type: 'string' } },
|
|
63
|
+
category: { type: 'string' },
|
|
64
|
+
importance: { type: 'number' },
|
|
65
|
+
},
|
|
66
|
+
required: ['content'],
|
|
67
|
+
additionalProperties: false,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// MCP Methods
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/** All MCP method names */
|
|
75
|
+
export const MCP_METHODS = {
|
|
76
|
+
// Lifecycle
|
|
77
|
+
INITIALIZE: 'initialize',
|
|
78
|
+
INITIALIZED: 'notifications/initialized',
|
|
79
|
+
SHUTDOWN: 'shutdown',
|
|
80
|
+
EXIT: 'exit',
|
|
81
|
+
// Tools
|
|
82
|
+
TOOLS_LIST: 'tools/list',
|
|
83
|
+
TOOLS_CALL: 'tools/call',
|
|
84
|
+
// Logging
|
|
85
|
+
LOGGING_MESSAGE: 'notifications/message',
|
|
86
|
+
// Progress
|
|
87
|
+
PROGRESS: 'notifications/progress',
|
|
88
|
+
};
|
|
89
|
+
// ============================================================================
|
|
90
|
+
// Error Codes (Standard MCP + Custom)
|
|
91
|
+
// ============================================================================
|
|
92
|
+
/** Standard JSON-RPC error codes */
|
|
93
|
+
export const JSONRPC_ERROR_CODES = {
|
|
94
|
+
PARSE_ERROR: -32700,
|
|
95
|
+
INVALID_REQUEST: -32600,
|
|
96
|
+
METHOD_NOT_FOUND: -32601,
|
|
97
|
+
INVALID_PARAMS: -32602,
|
|
98
|
+
INTERNAL_ERROR: -32603,
|
|
99
|
+
};
|
|
100
|
+
/** MemHub custom error codes */
|
|
101
|
+
export const MEMHUB_ERROR_CODES = {
|
|
102
|
+
NOT_FOUND: -32001,
|
|
103
|
+
STORAGE_ERROR: -32002,
|
|
104
|
+
VALIDATION_ERROR: -32003,
|
|
105
|
+
DUPLICATE_ERROR: -32004,
|
|
106
|
+
};
|
|
107
|
+
/** Combined error codes */
|
|
108
|
+
export const ERROR_CODES = {
|
|
109
|
+
...JSONRPC_ERROR_CODES,
|
|
110
|
+
...MEMHUB_ERROR_CODES,
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/contracts/mcp.ts"],"names":[],"mappings":"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"}
|