context-gatekeeper 0.3.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/LICENSE +21 -0
- package/README.md +774 -0
- package/README.zh.md +765 -0
- package/bin/context-gatekeeper-cli.js +60 -0
- package/dist/api/gdpr.d.ts +104 -0
- package/dist/api/gdpr.d.ts.map +1 -0
- package/dist/api/gdpr.js +229 -0
- package/dist/api/gdpr.js.map +1 -0
- package/dist/api/health-check.d.ts +13 -0
- package/dist/api/health-check.d.ts.map +1 -0
- package/dist/api/health-check.js +2 -0
- package/dist/api/health-check.js.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/observability.d.ts +39 -0
- package/dist/api/observability.d.ts.map +1 -0
- package/dist/api/observability.js +132 -0
- package/dist/api/observability.js.map +1 -0
- package/dist/api/session-manager.d.ts +41 -0
- package/dist/api/session-manager.d.ts.map +1 -0
- package/dist/api/session-manager.js +129 -0
- package/dist/api/session-manager.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +613 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/configure-llm.d.ts +26 -0
- package/dist/mcp/tools/configure-llm.d.ts.map +1 -0
- package/dist/mcp/tools/configure-llm.js +32 -0
- package/dist/mcp/tools/configure-llm.js.map +1 -0
- package/dist/mcp/tools/context-compress.d.ts +15 -0
- package/dist/mcp/tools/context-compress.d.ts.map +1 -0
- package/dist/mcp/tools/context-compress.js +15 -0
- package/dist/mcp/tools/context-compress.js.map +1 -0
- package/dist/mcp/tools/dual-mode-execute.d.ts +78 -0
- package/dist/mcp/tools/dual-mode-execute.d.ts.map +1 -0
- package/dist/mcp/tools/dual-mode-execute.js +299 -0
- package/dist/mcp/tools/dual-mode-execute.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +19 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +20 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/intelligent-recall.d.ts +67 -0
- package/dist/mcp/tools/intelligent-recall.d.ts.map +1 -0
- package/dist/mcp/tools/intelligent-recall.js +208 -0
- package/dist/mcp/tools/intelligent-recall.js.map +1 -0
- package/dist/mcp/tools/memory-anchor.d.ts +13 -0
- package/dist/mcp/tools/memory-anchor.d.ts.map +1 -0
- package/dist/mcp/tools/memory-anchor.js +16 -0
- package/dist/mcp/tools/memory-anchor.js.map +1 -0
- package/dist/mcp/tools/memory-delete-batch.d.ts +16 -0
- package/dist/mcp/tools/memory-delete-batch.d.ts.map +1 -0
- package/dist/mcp/tools/memory-delete-batch.js +26 -0
- package/dist/mcp/tools/memory-delete-batch.js.map +1 -0
- package/dist/mcp/tools/memory-extract.d.ts +68 -0
- package/dist/mcp/tools/memory-extract.d.ts.map +1 -0
- package/dist/mcp/tools/memory-extract.js +280 -0
- package/dist/mcp/tools/memory-extract.js.map +1 -0
- package/dist/mcp/tools/memory-recall.d.ts +42 -0
- package/dist/mcp/tools/memory-recall.d.ts.map +1 -0
- package/dist/mcp/tools/memory-recall.js +37 -0
- package/dist/mcp/tools/memory-recall.js.map +1 -0
- package/dist/mcp/tools/memory-report-usage.d.ts +17 -0
- package/dist/mcp/tools/memory-report-usage.d.ts.map +1 -0
- package/dist/mcp/tools/memory-report-usage.js +15 -0
- package/dist/mcp/tools/memory-report-usage.js.map +1 -0
- package/dist/mcp/tools/memory-search.d.ts +43 -0
- package/dist/mcp/tools/memory-search.d.ts.map +1 -0
- package/dist/mcp/tools/memory-search.js +38 -0
- package/dist/mcp/tools/memory-search.js.map +1 -0
- package/dist/mcp/tools/memory-session.d.ts +118 -0
- package/dist/mcp/tools/memory-session.d.ts.map +1 -0
- package/dist/mcp/tools/memory-session.js +113 -0
- package/dist/mcp/tools/memory-session.js.map +1 -0
- package/dist/mcp/tools/memory-stats.d.ts +10 -0
- package/dist/mcp/tools/memory-stats.d.ts.map +1 -0
- package/dist/mcp/tools/memory-stats.js +35 -0
- package/dist/mcp/tools/memory-stats.js.map +1 -0
- package/dist/mcp/tools/memory-store-batch.d.ts +49 -0
- package/dist/mcp/tools/memory-store-batch.d.ts.map +1 -0
- package/dist/mcp/tools/memory-store-batch.js +48 -0
- package/dist/mcp/tools/memory-store-batch.js.map +1 -0
- package/dist/mcp/tools/memory-store.d.ts +37 -0
- package/dist/mcp/tools/memory-store.d.ts.map +1 -0
- package/dist/mcp/tools/memory-store.js +34 -0
- package/dist/mcp/tools/memory-store.js.map +1 -0
- package/dist/mcp/tools/project-create.d.ts +16 -0
- package/dist/mcp/tools/project-create.d.ts.map +1 -0
- package/dist/mcp/tools/project-create.js +14 -0
- package/dist/mcp/tools/project-create.js.map +1 -0
- package/dist/models/types.d.ts +88 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +19 -0
- package/dist/models/types.js.map +1 -0
- package/dist/schema/compression.d.ts +7 -0
- package/dist/schema/compression.d.ts.map +1 -0
- package/dist/schema/compression.js +66 -0
- package/dist/schema/compression.js.map +1 -0
- package/dist/schema/fulltext-search.d.ts +10 -0
- package/dist/schema/fulltext-search.d.ts.map +1 -0
- package/dist/schema/fulltext-search.js +73 -0
- package/dist/schema/fulltext-search.js.map +1 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +9 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/knowledge-graph.d.ts +108 -0
- package/dist/schema/knowledge-graph.d.ts.map +1 -0
- package/dist/schema/knowledge-graph.js +372 -0
- package/dist/schema/knowledge-graph.js.map +1 -0
- package/dist/schema/memory-session.d.ts +62 -0
- package/dist/schema/memory-session.d.ts.map +1 -0
- package/dist/schema/memory-session.js +258 -0
- package/dist/schema/memory-session.js.map +1 -0
- package/dist/schema/memory.d.ts +84 -0
- package/dist/schema/memory.d.ts.map +1 -0
- package/dist/schema/memory.js +622 -0
- package/dist/schema/memory.js.map +1 -0
- package/dist/schema/project.d.ts +8 -0
- package/dist/schema/project.d.ts.map +1 -0
- package/dist/schema/project.js +68 -0
- package/dist/schema/project.js.map +1 -0
- package/dist/schema/schema-init.d.ts +2 -0
- package/dist/schema/schema-init.d.ts.map +1 -0
- package/dist/schema/schema-init.js +199 -0
- package/dist/schema/schema-init.js.map +1 -0
- package/dist/schema/vector-index.d.ts +28 -0
- package/dist/schema/vector-index.d.ts.map +1 -0
- package/dist/schema/vector-index.js +179 -0
- package/dist/schema/vector-index.js.map +1 -0
- package/dist/scripts/agents/base.d.ts +89 -0
- package/dist/scripts/agents/base.d.ts.map +1 -0
- package/dist/scripts/agents/base.js +148 -0
- package/dist/scripts/agents/base.js.map +1 -0
- package/dist/scripts/agents/base.ts +193 -0
- package/dist/scripts/agents/claude-code.d.ts +21 -0
- package/dist/scripts/agents/claude-code.d.ts.map +1 -0
- package/dist/scripts/agents/claude-code.js +33 -0
- package/dist/scripts/agents/claude-code.js.map +1 -0
- package/dist/scripts/agents/claude-code.ts +36 -0
- package/dist/scripts/agents/claude-desktop.d.ts +25 -0
- package/dist/scripts/agents/claude-desktop.d.ts.map +1 -0
- package/dist/scripts/agents/claude-desktop.js +36 -0
- package/dist/scripts/agents/claude-desktop.js.map +1 -0
- package/dist/scripts/agents/claude-desktop.ts +39 -0
- package/dist/scripts/agents/cline.d.ts +22 -0
- package/dist/scripts/agents/cline.d.ts.map +1 -0
- package/dist/scripts/agents/cline.js +35 -0
- package/dist/scripts/agents/cline.js.map +1 -0
- package/dist/scripts/agents/cline.ts +38 -0
- package/dist/scripts/agents/continue.d.ts +20 -0
- package/dist/scripts/agents/continue.d.ts.map +1 -0
- package/dist/scripts/agents/continue.js +35 -0
- package/dist/scripts/agents/continue.js.map +1 -0
- package/dist/scripts/agents/continue.ts +38 -0
- package/dist/scripts/agents/cursor.d.ts +27 -0
- package/dist/scripts/agents/cursor.d.ts.map +1 -0
- package/dist/scripts/agents/cursor.js +38 -0
- package/dist/scripts/agents/cursor.js.map +1 -0
- package/dist/scripts/agents/cursor.ts +41 -0
- package/dist/scripts/cli/config-gen.d.ts +59 -0
- package/dist/scripts/cli/config-gen.d.ts.map +1 -0
- package/dist/scripts/cli/config-gen.js +156 -0
- package/dist/scripts/cli/config-gen.js.map +1 -0
- package/dist/scripts/cli/config-gen.ts +164 -0
- package/dist/scripts/cli/detect.d.ts +42 -0
- package/dist/scripts/cli/detect.d.ts.map +1 -0
- package/dist/scripts/cli/detect.js +131 -0
- package/dist/scripts/cli/detect.js.map +1 -0
- package/dist/scripts/cli/detect.ts +162 -0
- package/dist/scripts/cli/install.d.ts +31 -0
- package/dist/scripts/cli/install.d.ts.map +1 -0
- package/dist/scripts/cli/install.js +125 -0
- package/dist/scripts/cli/install.js.map +1 -0
- package/dist/scripts/cli/install.ts +157 -0
- package/dist/scripts/cli/status.d.ts +8 -0
- package/dist/scripts/cli/status.d.ts.map +1 -0
- package/dist/scripts/cli/status.js +39 -0
- package/dist/scripts/cli/status.js.map +1 -0
- package/dist/scripts/cli/status.ts +48 -0
- package/dist/scripts/cli/uninstall.d.ts +22 -0
- package/dist/scripts/cli/uninstall.d.ts.map +1 -0
- package/dist/scripts/cli/uninstall.js +141 -0
- package/dist/scripts/cli/uninstall.js.map +1 -0
- package/dist/scripts/cli/uninstall.ts +157 -0
- package/dist/scripts/cli.d.ts +23 -0
- package/dist/scripts/cli.d.ts.map +1 -0
- package/dist/scripts/cli.js +166 -0
- package/dist/scripts/cli.js.map +1 -0
- package/dist/scripts/cli.ts +173 -0
- package/dist/services/classifier/index.d.ts +36 -0
- package/dist/services/classifier/index.d.ts.map +1 -0
- package/dist/services/classifier/index.js +104 -0
- package/dist/services/classifier/index.js.map +1 -0
- package/dist/services/classifier/llm.d.ts +37 -0
- package/dist/services/classifier/llm.d.ts.map +1 -0
- package/dist/services/classifier/llm.js +119 -0
- package/dist/services/classifier/llm.js.map +1 -0
- package/dist/services/classifier/rules.d.ts +22 -0
- package/dist/services/classifier/rules.d.ts.map +1 -0
- package/dist/services/classifier/rules.js +98 -0
- package/dist/services/classifier/rules.js.map +1 -0
- package/dist/services/compressor/index.d.ts +3 -0
- package/dist/services/compressor/index.d.ts.map +1 -0
- package/dist/services/compressor/index.js +3 -0
- package/dist/services/compressor/index.js.map +1 -0
- package/dist/services/compressor/threshold.d.ts +35 -0
- package/dist/services/compressor/threshold.d.ts.map +1 -0
- package/dist/services/compressor/threshold.js +60 -0
- package/dist/services/compressor/threshold.js.map +1 -0
- package/dist/services/compressor/trigger.d.ts +24 -0
- package/dist/services/compressor/trigger.d.ts.map +1 -0
- package/dist/services/compressor/trigger.js +91 -0
- package/dist/services/compressor/trigger.js.map +1 -0
- package/dist/services/constraint-extractor.d.ts +25 -0
- package/dist/services/constraint-extractor.d.ts.map +1 -0
- package/dist/services/constraint-extractor.js +97 -0
- package/dist/services/constraint-extractor.js.map +1 -0
- package/dist/services/database-health.d.ts +22 -0
- package/dist/services/database-health.d.ts.map +1 -0
- package/dist/services/database-health.js +122 -0
- package/dist/services/database-health.js.map +1 -0
- package/dist/services/embedding-fixed.d.ts +9 -0
- package/dist/services/embedding-fixed.d.ts.map +1 -0
- package/dist/services/embedding-fixed.js +70 -0
- package/dist/services/embedding-fixed.js.map +1 -0
- package/dist/services/embedding-provider.d.ts +79 -0
- package/dist/services/embedding-provider.d.ts.map +1 -0
- package/dist/services/embedding-provider.js +229 -0
- package/dist/services/embedding-provider.js.map +1 -0
- package/dist/services/embedding.d.ts +17 -0
- package/dist/services/embedding.d.ts.map +1 -0
- package/dist/services/embedding.js +99 -0
- package/dist/services/embedding.js.map +1 -0
- package/dist/services/hnsw-index.d.ts +76 -0
- package/dist/services/hnsw-index.d.ts.map +1 -0
- package/dist/services/hnsw-index.js +301 -0
- package/dist/services/hnsw-index.js.map +1 -0
- package/dist/services/llm.d.ts +39 -0
- package/dist/services/llm.d.ts.map +1 -0
- package/dist/services/llm.js +207 -0
- package/dist/services/llm.js.map +1 -0
- package/dist/services/memory-tiers.d.ts +75 -0
- package/dist/services/memory-tiers.d.ts.map +1 -0
- package/dist/services/memory-tiers.js +275 -0
- package/dist/services/memory-tiers.js.map +1 -0
- package/dist/services/memory.d.ts +33 -0
- package/dist/services/memory.d.ts.map +1 -0
- package/dist/services/memory.js +209 -0
- package/dist/services/memory.js.map +1 -0
- package/dist/services/multi-agent-sharing.d.ts +83 -0
- package/dist/services/multi-agent-sharing.d.ts.map +1 -0
- package/dist/services/multi-agent-sharing.js +278 -0
- package/dist/services/multi-agent-sharing.js.map +1 -0
- package/dist/services/reranker.d.ts +88 -0
- package/dist/services/reranker.d.ts.map +1 -0
- package/dist/services/reranker.js +234 -0
- package/dist/services/reranker.js.map +1 -0
- package/dist/services/triple-extractor.d.ts +35 -0
- package/dist/services/triple-extractor.d.ts.map +1 -0
- package/dist/services/triple-extractor.js +293 -0
- package/dist/services/triple-extractor.js.map +1 -0
- package/dist/services/vector-provider.d.ts +40 -0
- package/dist/services/vector-provider.d.ts.map +1 -0
- package/dist/services/vector-provider.js +225 -0
- package/dist/services/vector-provider.js.map +1 -0
- package/dist/utils/after-chain-executor.d.ts +26 -0
- package/dist/utils/after-chain-executor.d.ts.map +1 -0
- package/dist/utils/after-chain-executor.js +135 -0
- package/dist/utils/after-chain-executor.js.map +1 -0
- package/dist/utils/after-chain.d.ts +94 -0
- package/dist/utils/after-chain.d.ts.map +1 -0
- package/dist/utils/after-chain.js +155 -0
- package/dist/utils/after-chain.js.map +1 -0
- package/dist/utils/db.d.ts +29 -0
- package/dist/utils/db.d.ts.map +1 -0
- package/dist/utils/db.js +201 -0
- package/dist/utils/db.js.map +1 -0
- package/dist/utils/encryption.d.ts +87 -0
- package/dist/utils/encryption.d.ts.map +1 -0
- package/dist/utils/encryption.js +175 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/errors.d.ts +35 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +56 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +27 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +177 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/priority.d.ts +26 -0
- package/dist/utils/priority.d.ts.map +1 -0
- package/dist/utils/priority.js +43 -0
- package/dist/utils/priority.js.map +1 -0
- package/dist/utils/watchdog.d.ts +57 -0
- package/dist/utils/watchdog.d.ts.map +1 -0
- package/dist/utils/watchdog.js +164 -0
- package/dist/utils/watchdog.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createMemorySession, listMemorySessions, deleteMemorySession, getMemorySessionByIsolation, } from '../../schema/memory-session.js';
|
|
3
|
+
export const MemorySessionStoreInput = z.object({
|
|
4
|
+
key: z.string().min(1).describe('Session memory key'),
|
|
5
|
+
value: z.string().min(1).describe('Session memory value'),
|
|
6
|
+
scope: z.enum(['session', 'short', 'long', 'archival']).default('session')
|
|
7
|
+
.describe('Scope: session (window-close release), short (hours), long (days), archival (permanent)'),
|
|
8
|
+
expires_in_hours: z.number().positive().optional().describe('TTL in hours (overrides scope default)'),
|
|
9
|
+
meta: z.record(z.unknown()).optional().describe('Additional metadata'),
|
|
10
|
+
user_id: z.string().optional().default('default'),
|
|
11
|
+
agent_id: z.string().optional().default('default'),
|
|
12
|
+
project_id: z.string().optional().default('default'),
|
|
13
|
+
});
|
|
14
|
+
/** 存储会话级记忆 */
|
|
15
|
+
export async function memorySessionStoreTool(input) {
|
|
16
|
+
let expiresAt;
|
|
17
|
+
if (input.expires_in_hours) {
|
|
18
|
+
expiresAt = new Date(Date.now() + input.expires_in_hours * 60 * 60 * 1000);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// 根据 scope 设置默认过期时间
|
|
22
|
+
expiresAt = getDefaultExpiry(input.scope);
|
|
23
|
+
}
|
|
24
|
+
const session = createMemorySession({
|
|
25
|
+
userId: input.user_id,
|
|
26
|
+
agentId: input.agent_id,
|
|
27
|
+
projectId: input.project_id,
|
|
28
|
+
scope: input.scope,
|
|
29
|
+
key: input.key,
|
|
30
|
+
value: input.value,
|
|
31
|
+
meta: input.meta,
|
|
32
|
+
expiresAt,
|
|
33
|
+
});
|
|
34
|
+
return { id: session.id, key: session.key, scope: session.scope };
|
|
35
|
+
}
|
|
36
|
+
/** 获取会话级记忆 */
|
|
37
|
+
export const MemorySessionGetInput = z.object({
|
|
38
|
+
key: z.string().min(1).describe('Session memory key'),
|
|
39
|
+
user_id: z.string().optional().default('default'),
|
|
40
|
+
agent_id: z.string().optional().default('default'),
|
|
41
|
+
project_id: z.string().optional().default('default'),
|
|
42
|
+
scope: z.enum(['session', 'short', 'long', 'archival']).default('session'),
|
|
43
|
+
});
|
|
44
|
+
export async function memorySessionGetTool(input) {
|
|
45
|
+
const session = getMemorySessionByIsolation({
|
|
46
|
+
userId: input.user_id,
|
|
47
|
+
agentId: input.agent_id,
|
|
48
|
+
projectId: input.project_id,
|
|
49
|
+
scope: input.scope,
|
|
50
|
+
key: input.key,
|
|
51
|
+
});
|
|
52
|
+
if (!session)
|
|
53
|
+
return null;
|
|
54
|
+
return { id: session.id, key: session.key, value: session.value, scope: session.scope };
|
|
55
|
+
}
|
|
56
|
+
/** 列出会话级记忆 */
|
|
57
|
+
export const MemorySessionListInput = z.object({
|
|
58
|
+
user_id: z.string().optional().default('default'),
|
|
59
|
+
agent_id: z.string().optional().default('default'),
|
|
60
|
+
project_id: z.string().optional().default('default'),
|
|
61
|
+
scope: z.enum(['session', 'short', 'long', 'archival']).optional(),
|
|
62
|
+
limit: z.number().int().positive().optional().default(50),
|
|
63
|
+
});
|
|
64
|
+
export async function memorySessionListTool(input) {
|
|
65
|
+
const sessions = listMemorySessions({
|
|
66
|
+
userId: input.user_id,
|
|
67
|
+
agentId: input.agent_id,
|
|
68
|
+
projectId: input.project_id,
|
|
69
|
+
scope: input.scope,
|
|
70
|
+
limit: input.limit,
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
sessions: sessions.map(s => ({
|
|
74
|
+
id: s.id,
|
|
75
|
+
key: s.key,
|
|
76
|
+
scope: s.scope,
|
|
77
|
+
value: s.value,
|
|
78
|
+
updatedAt: s.updatedAt,
|
|
79
|
+
})),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** 删除会话级记忆 */
|
|
83
|
+
export const MemorySessionDeleteInput = z.object({
|
|
84
|
+
key: z.string().min(1).describe('Session memory key to delete'),
|
|
85
|
+
user_id: z.string().optional().default('default'),
|
|
86
|
+
agent_id: z.string().optional().default('default'),
|
|
87
|
+
project_id: z.string().optional().default('default'),
|
|
88
|
+
scope: z.enum(['session', 'short', 'long', 'archival']).default('session'),
|
|
89
|
+
});
|
|
90
|
+
export async function memorySessionDeleteTool(input) {
|
|
91
|
+
const session = getMemorySessionByIsolation({
|
|
92
|
+
userId: input.user_id,
|
|
93
|
+
agentId: input.agent_id,
|
|
94
|
+
projectId: input.project_id,
|
|
95
|
+
scope: input.scope,
|
|
96
|
+
key: input.key,
|
|
97
|
+
});
|
|
98
|
+
if (!session)
|
|
99
|
+
return { deleted: false };
|
|
100
|
+
deleteMemorySession(session.id);
|
|
101
|
+
return { deleted: true };
|
|
102
|
+
}
|
|
103
|
+
/** 根据 scope 返回默认过期时间 */
|
|
104
|
+
function getDefaultExpiry(scope) {
|
|
105
|
+
const now = Date.now();
|
|
106
|
+
switch (scope) {
|
|
107
|
+
case 'session': return undefined; // 随窗口关闭释放
|
|
108
|
+
case 'short': return new Date(now + 4 * 60 * 60 * 1000); // 4 小时
|
|
109
|
+
case 'long': return new Date(now + 7 * 24 * 60 * 60 * 1000); // 7 天
|
|
110
|
+
case 'archival': return undefined; // 永不过期
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=memory-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-session.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface MemoryStats {
|
|
2
|
+
total_memories: number;
|
|
3
|
+
by_priority: Record<string, number>;
|
|
4
|
+
anchored_count: number;
|
|
5
|
+
avg_content_length: number;
|
|
6
|
+
total_content_tokens: number;
|
|
7
|
+
expired_cleaned: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function memoryStatsTool(): Promise<MemoryStats>;
|
|
10
|
+
//# sourceMappingURL=memory-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stats.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-stats.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAoC5D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getDatabase } from '../../utils/db.js';
|
|
2
|
+
import { listMemories, cleanupExpiredMemories } from '../../schema/memory.js';
|
|
3
|
+
export async function memoryStatsTool() {
|
|
4
|
+
// First clean up expired memories
|
|
5
|
+
const expiredCleaned = cleanupExpiredMemories();
|
|
6
|
+
void getDatabase(); // Ensure database is initialized
|
|
7
|
+
const memories = listMemories();
|
|
8
|
+
// Count by priority
|
|
9
|
+
const byPriority = {
|
|
10
|
+
anchored: 0,
|
|
11
|
+
constraint: 0,
|
|
12
|
+
decision: 0,
|
|
13
|
+
preference: 0,
|
|
14
|
+
fact: 0
|
|
15
|
+
};
|
|
16
|
+
let totalContentLength = 0;
|
|
17
|
+
let anchoredCount = 0;
|
|
18
|
+
for (const memory of memories) {
|
|
19
|
+
byPriority[memory.priority] = (byPriority[memory.priority] || 0) + 1;
|
|
20
|
+
totalContentLength += memory.content.length;
|
|
21
|
+
if (memory.anchored)
|
|
22
|
+
anchoredCount++;
|
|
23
|
+
}
|
|
24
|
+
// Estimate tokens (rough: 4 chars per token)
|
|
25
|
+
const totalTokens = Math.ceil(totalContentLength / 4);
|
|
26
|
+
return {
|
|
27
|
+
total_memories: memories.length,
|
|
28
|
+
by_priority: byPriority,
|
|
29
|
+
anchored_count: anchoredCount,
|
|
30
|
+
avg_content_length: memories.length > 0 ? Math.ceil(totalContentLength / memories.length) : 0,
|
|
31
|
+
total_content_tokens: totalTokens,
|
|
32
|
+
expired_cleaned: expiredCleaned
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=memory-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-stats.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAW9E,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,kCAAkC;IAClC,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAC;IAEhD,KAAK,WAAW,EAAE,CAAC,CAAC,iCAAiC;IACrD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAEhC,oBAAoB;IACpB,MAAM,UAAU,GAA2B;QACzC,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,kBAAkB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5C,IAAI,MAAM,CAAC,QAAQ;YAAE,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,6CAA6C;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAEtD,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,kBAAkB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,oBAAoB,EAAE,WAAW;QACjC,eAAe,EAAE,cAAc;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const MemoryStoreBatchInput: z.ZodObject<{
|
|
3
|
+
memories: z.ZodArray<z.ZodObject<{
|
|
4
|
+
content: z.ZodString;
|
|
5
|
+
priority: z.ZodEnum<["anchored", "constraint", "decision", "preference", "fact"]>;
|
|
6
|
+
project_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
7
|
+
anchored: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
expires_in_hours: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
content: string;
|
|
11
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
12
|
+
project_tags?: string[] | undefined;
|
|
13
|
+
anchored?: boolean | undefined;
|
|
14
|
+
expires_in_hours?: number | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
content: string;
|
|
17
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
18
|
+
project_tags?: string[] | undefined;
|
|
19
|
+
anchored?: boolean | undefined;
|
|
20
|
+
expires_in_hours?: number | undefined;
|
|
21
|
+
}>, "many">;
|
|
22
|
+
}, "strip", z.ZodTypeAny, {
|
|
23
|
+
memories: {
|
|
24
|
+
content: string;
|
|
25
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
26
|
+
project_tags?: string[] | undefined;
|
|
27
|
+
anchored?: boolean | undefined;
|
|
28
|
+
expires_in_hours?: number | undefined;
|
|
29
|
+
}[];
|
|
30
|
+
}, {
|
|
31
|
+
memories: {
|
|
32
|
+
content: string;
|
|
33
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
34
|
+
project_tags?: string[] | undefined;
|
|
35
|
+
anchored?: boolean | undefined;
|
|
36
|
+
expires_in_hours?: number | undefined;
|
|
37
|
+
}[];
|
|
38
|
+
}>;
|
|
39
|
+
export type MemoryStoreBatchInputType = z.infer<typeof MemoryStoreBatchInput>;
|
|
40
|
+
export declare function memoryStoreBatchTool(input: MemoryStoreBatchInputType): Promise<{
|
|
41
|
+
stored: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
content: string;
|
|
44
|
+
priority: string;
|
|
45
|
+
}>;
|
|
46
|
+
duplicates: number;
|
|
47
|
+
total: number;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=memory-store-batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store-batch.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;IACpF,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAoCD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getMemoryService } from '../../services/memory.js';
|
|
3
|
+
import { logger } from '../../utils/logger.js';
|
|
4
|
+
const memoryService = getMemoryService();
|
|
5
|
+
export const MemoryStoreBatchInput = z.object({
|
|
6
|
+
memories: z.array(z.object({
|
|
7
|
+
content: z.string().describe('The memory content'),
|
|
8
|
+
priority: z.enum(['anchored', 'constraint', 'decision', 'preference', 'fact']).describe('Priority level'),
|
|
9
|
+
project_tags: z.array(z.string()).optional().describe('Project tags'),
|
|
10
|
+
anchored: z.boolean().optional().describe('Whether this memory is anchored'),
|
|
11
|
+
expires_in_hours: z.number().positive().optional().describe('TTL in hours')
|
|
12
|
+
})).min(1).max(100).describe('Array of memories to store')
|
|
13
|
+
});
|
|
14
|
+
export async function memoryStoreBatchTool(input) {
|
|
15
|
+
const stored = [];
|
|
16
|
+
let duplicates = 0;
|
|
17
|
+
for (const mem of input.memories) {
|
|
18
|
+
try {
|
|
19
|
+
// Calculate expiresAt if TTL is provided
|
|
20
|
+
let expiresAt;
|
|
21
|
+
if (mem.expires_in_hours) {
|
|
22
|
+
expiresAt = new Date(Date.now() + mem.expires_in_hours * 60 * 60 * 1000);
|
|
23
|
+
}
|
|
24
|
+
const memory = memoryService.storeMemory({
|
|
25
|
+
content: mem.content,
|
|
26
|
+
priority: mem.priority,
|
|
27
|
+
projectTags: mem.project_tags,
|
|
28
|
+
anchored: mem.anchored,
|
|
29
|
+
expiresAt
|
|
30
|
+
});
|
|
31
|
+
stored.push({
|
|
32
|
+
id: memory.id,
|
|
33
|
+
content: memory.content.substring(0, 50) + (memory.content.length > 50 ? '...' : ''),
|
|
34
|
+
priority: memory.priority
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
logger.error('Failed to store memory in batch', { error: error instanceof Error ? error.message : String(error) });
|
|
39
|
+
duplicates++;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
stored,
|
|
44
|
+
duplicates,
|
|
45
|
+
total: input.memories.length
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=memory-store-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store-batch.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAClD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACzG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC5E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC5E,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAgC;IAKzE,MAAM,MAAM,GAA6D,EAAE,CAAC;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,yCAAyC;YACzC,IAAI,SAA2B,CAAC;YAChC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzB,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC;gBACvC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAe;gBAC7B,WAAW,EAAE,GAAG,CAAC,YAAY;gBAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnH,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU;QACV,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const MemoryStoreInput: z.ZodObject<{
|
|
3
|
+
content: z.ZodString;
|
|
4
|
+
priority: z.ZodEnum<["anchored", "constraint", "decision", "preference", "fact"]>;
|
|
5
|
+
project_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
6
|
+
anchored: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
expires_in_hours: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
updated_by: z.ZodOptional<z.ZodString>;
|
|
9
|
+
user_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
10
|
+
agent_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
11
|
+
project_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
content: string;
|
|
14
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
15
|
+
user_id: string;
|
|
16
|
+
agent_id: string;
|
|
17
|
+
project_id: string;
|
|
18
|
+
project_tags?: string[] | undefined;
|
|
19
|
+
anchored?: boolean | undefined;
|
|
20
|
+
updated_by?: string | undefined;
|
|
21
|
+
expires_in_hours?: number | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
content: string;
|
|
24
|
+
priority: "constraint" | "preference" | "anchored" | "decision" | "fact";
|
|
25
|
+
project_tags?: string[] | undefined;
|
|
26
|
+
anchored?: boolean | undefined;
|
|
27
|
+
user_id?: string | undefined;
|
|
28
|
+
agent_id?: string | undefined;
|
|
29
|
+
project_id?: string | undefined;
|
|
30
|
+
updated_by?: string | undefined;
|
|
31
|
+
expires_in_hours?: number | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
export type MemoryStoreInputType = z.infer<typeof MemoryStoreInput>;
|
|
34
|
+
export declare function memoryStoreTool(input: MemoryStoreInputType): Promise<{
|
|
35
|
+
id: string;
|
|
36
|
+
}>;
|
|
37
|
+
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB1F"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getMemoryService } from '../../services/memory.js';
|
|
3
|
+
const memoryService = getMemoryService();
|
|
4
|
+
export const MemoryStoreInput = z.object({
|
|
5
|
+
content: z.string().min(1).describe('The memory content'),
|
|
6
|
+
priority: z.enum(['anchored', 'constraint', 'decision', 'preference', 'fact']).describe('Priority level'),
|
|
7
|
+
project_tags: z.array(z.string()).optional().describe('Project tags for filtering'),
|
|
8
|
+
anchored: z.boolean().optional().describe('Whether this memory is anchored (permanent)'),
|
|
9
|
+
expires_in_hours: z.number().positive().optional().describe('TTL in hours'),
|
|
10
|
+
updated_by: z.string().optional().describe('Source that updated this memory'),
|
|
11
|
+
// Storage isolation fields
|
|
12
|
+
user_id: z.string().optional().default('default').describe('User ID for isolation'),
|
|
13
|
+
agent_id: z.string().optional().default('default').describe('Agent ID for isolation'),
|
|
14
|
+
project_id: z.string().optional().default('default').describe('Project ID for isolation')
|
|
15
|
+
});
|
|
16
|
+
export async function memoryStoreTool(input) {
|
|
17
|
+
// Calculate expiresAt if TTL is provided
|
|
18
|
+
let expiresAt;
|
|
19
|
+
if (input.expires_in_hours) {
|
|
20
|
+
expiresAt = new Date(Date.now() + input.expires_in_hours * 60 * 60 * 1000);
|
|
21
|
+
}
|
|
22
|
+
const memory = memoryService.storeMemory({
|
|
23
|
+
content: input.content,
|
|
24
|
+
priority: input.priority,
|
|
25
|
+
projectTags: input.project_tags,
|
|
26
|
+
anchored: input.anchored,
|
|
27
|
+
expiresAt,
|
|
28
|
+
userId: input.user_id,
|
|
29
|
+
agentId: input.agent_id,
|
|
30
|
+
projectId: input.project_id
|
|
31
|
+
}, input.updated_by);
|
|
32
|
+
return { id: memory.id };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=memory-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../../src/mcp/tools/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACxF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC7E,2BAA2B;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC1F,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA2B;IAC/D,yCAAyC;IACzC,IAAI,SAA2B,CAAC;IAChC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,OAAO;QACrB,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,SAAS,EAAE,KAAK,CAAC,UAAU;KAC5B,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAErB,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ProjectCreateInput: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
root_path: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
name: string;
|
|
7
|
+
root_path?: string | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
name: string;
|
|
10
|
+
root_path?: string | undefined;
|
|
11
|
+
}>;
|
|
12
|
+
export type ProjectCreateInputType = z.infer<typeof ProjectCreateInput>;
|
|
13
|
+
export declare function projectCreateTool(input: ProjectCreateInputType): Promise<{
|
|
14
|
+
project_id: string;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=project-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-create.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/project-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAExE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createProject } from '../../schema/project.js';
|
|
3
|
+
export const ProjectCreateInput = z.object({
|
|
4
|
+
name: z.string().min(1).describe('Project name'),
|
|
5
|
+
root_path: z.string().optional().describe('Root path of the project')
|
|
6
|
+
});
|
|
7
|
+
export async function projectCreateTool(input) {
|
|
8
|
+
const project = createProject({
|
|
9
|
+
name: input.name,
|
|
10
|
+
rootPath: input.root_path
|
|
11
|
+
});
|
|
12
|
+
return { project_id: project.id };
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=project-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-create.js","sourceRoot":"","sources":["../../../src/mcp/tools/project-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACtE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA6B;IACnE,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export type Priority = 'anchored' | 'constraint' | 'decision' | 'preference' | 'fact';
|
|
2
|
+
export interface Memory {
|
|
3
|
+
id: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
agentId: string;
|
|
6
|
+
projectId: string;
|
|
7
|
+
content: string;
|
|
8
|
+
priority: Priority;
|
|
9
|
+
projectTags: string[];
|
|
10
|
+
anchored: boolean;
|
|
11
|
+
accessCount: number;
|
|
12
|
+
version: number;
|
|
13
|
+
updatedBy: string | null;
|
|
14
|
+
parentId: string | null;
|
|
15
|
+
lineage: string[];
|
|
16
|
+
createdAt: Date;
|
|
17
|
+
updatedAt: Date;
|
|
18
|
+
expiresAt: Date | null;
|
|
19
|
+
deleted: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface IsolationContext {
|
|
22
|
+
userId?: string;
|
|
23
|
+
agentId?: string;
|
|
24
|
+
projectId?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_ISOLATION: IsolationContext;
|
|
27
|
+
export interface Compression {
|
|
28
|
+
id: string;
|
|
29
|
+
memoryId: string;
|
|
30
|
+
operation: 'snapshot' | 'update' | 'merge' | 'archive';
|
|
31
|
+
delta: Record<string, unknown>;
|
|
32
|
+
summary: string;
|
|
33
|
+
createdAt: Date;
|
|
34
|
+
}
|
|
35
|
+
export interface Project {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
rootPath: string | null;
|
|
39
|
+
createdAt: Date;
|
|
40
|
+
}
|
|
41
|
+
export interface CreateMemoryInput {
|
|
42
|
+
content: string;
|
|
43
|
+
priority: Priority;
|
|
44
|
+
projectTags?: string[];
|
|
45
|
+
anchored?: boolean;
|
|
46
|
+
expiresAt?: Date | null;
|
|
47
|
+
userId?: string;
|
|
48
|
+
agentId?: string;
|
|
49
|
+
projectId?: string;
|
|
50
|
+
parentId?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface CreateProjectInput {
|
|
53
|
+
name: string;
|
|
54
|
+
rootPath?: string | null;
|
|
55
|
+
}
|
|
56
|
+
export interface UpdateMemoryInput {
|
|
57
|
+
content?: string;
|
|
58
|
+
priority?: Priority;
|
|
59
|
+
projectTags?: string[];
|
|
60
|
+
anchored?: boolean;
|
|
61
|
+
expiresAt?: Date | null;
|
|
62
|
+
deleted?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface RecallMemoryInput {
|
|
65
|
+
query: string;
|
|
66
|
+
projectTags?: string[];
|
|
67
|
+
limit?: number;
|
|
68
|
+
userId?: string;
|
|
69
|
+
agentId?: string;
|
|
70
|
+
projectId?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface ReportUsageInput {
|
|
73
|
+
usedTokens: number;
|
|
74
|
+
maxTokens: number;
|
|
75
|
+
}
|
|
76
|
+
export interface MemoryResponse {
|
|
77
|
+
shouldCompress: boolean;
|
|
78
|
+
currentRatio: number;
|
|
79
|
+
}
|
|
80
|
+
export interface CompressionResult {
|
|
81
|
+
id: string;
|
|
82
|
+
compressedCount: number;
|
|
83
|
+
remainingRatio: number;
|
|
84
|
+
}
|
|
85
|
+
export declare const PRIORITY_WEIGHTS: Record<Priority, number>;
|
|
86
|
+
export declare const ANCHORED_DECAY_FACTOR = 1;
|
|
87
|
+
export declare const DEFAULT_DECAY_FACTOR = 0.99;
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Default isolation context
|
|
2
|
+
export const DEFAULT_ISOLATION = {
|
|
3
|
+
userId: 'default',
|
|
4
|
+
agentId: 'default',
|
|
5
|
+
projectId: 'default'
|
|
6
|
+
};
|
|
7
|
+
// Priority weights for scoring
|
|
8
|
+
export const PRIORITY_WEIGHTS = {
|
|
9
|
+
anchored: 1.0,
|
|
10
|
+
constraint: 0.8,
|
|
11
|
+
decision: 0.6,
|
|
12
|
+
preference: 0.4,
|
|
13
|
+
fact: 0.2
|
|
14
|
+
};
|
|
15
|
+
// Time decay factor for anchored memories (1.0 = no decay)
|
|
16
|
+
export const ANCHORED_DECAY_FACTOR = 1.0;
|
|
17
|
+
// Default time decay for non-anchored memories
|
|
18
|
+
export const DEFAULT_DECAY_FACTOR = 0.99;
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AA+BA,4BAA4B;AAC5B,MAAM,CAAC,MAAM,iBAAiB,GAAqB;IACjD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;CACrB,CAAC;AA2EF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Compression } from '../models/types.js';
|
|
2
|
+
export declare function createCompression(memoryId: string, operation: Compression['operation'], delta: Record<string, unknown>, summary: string): Compression;
|
|
3
|
+
export declare function getCompression(id: string): Compression | null;
|
|
4
|
+
export declare function getCompressionHistory(memoryId: string): Compression[];
|
|
5
|
+
export declare function listCompressions(): Compression[];
|
|
6
|
+
export declare function cleanupOldCompressions(olderThanDays?: number): number;
|
|
7
|
+
//# sourceMappingURL=compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/schema/compression.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuBjD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,GACd,WAAW,CAcb;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAO7D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAUrE;AAED,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAOhD;AAED,wBAAgB,sBAAsB,CAAC,aAAa,GAAE,MAAW,GAAG,MAAM,CAUzE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
import { query, run } from '../utils/db.js';
|
|
3
|
+
import { DatabaseError } from '../utils/errors.js';
|
|
4
|
+
function rowToCompression(row) {
|
|
5
|
+
return {
|
|
6
|
+
id: row.id,
|
|
7
|
+
memoryId: row.memory_id,
|
|
8
|
+
operation: row.operation,
|
|
9
|
+
delta: JSON.parse(row.delta),
|
|
10
|
+
summary: row.summary,
|
|
11
|
+
createdAt: new Date(row.created_at)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function createCompression(memoryId, operation, delta, summary) {
|
|
15
|
+
const id = uuidv4();
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
try {
|
|
18
|
+
run(`
|
|
19
|
+
INSERT INTO compressions (id, memory_id, operation, delta, summary, created_at)
|
|
20
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
21
|
+
`, [id, memoryId, operation, JSON.stringify(delta), summary, now]);
|
|
22
|
+
return getCompression(id);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw new DatabaseError('Failed to create compression record', error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function getCompression(id) {
|
|
29
|
+
try {
|
|
30
|
+
const results = query('SELECT * FROM compressions WHERE id = ?', [id]);
|
|
31
|
+
return results.length > 0 ? rowToCompression(results[0]) : null;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
throw new DatabaseError('Failed to get compression', error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function getCompressionHistory(memoryId) {
|
|
38
|
+
try {
|
|
39
|
+
const rows = query(`SELECT * FROM compressions WHERE memory_id = ? ORDER BY created_at DESC`, [memoryId]);
|
|
40
|
+
return rows.map(rowToCompression);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new DatabaseError('Failed to get compression history', error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function listCompressions() {
|
|
47
|
+
try {
|
|
48
|
+
const rows = query('SELECT * FROM compressions ORDER BY created_at DESC');
|
|
49
|
+
return rows.map(rowToCompression);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new DatabaseError('Failed to list compressions', error);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function cleanupOldCompressions(olderThanDays = 30) {
|
|
56
|
+
try {
|
|
57
|
+
const cutoff = new Date();
|
|
58
|
+
cutoff.setDate(cutoff.getDate() - olderThanDays);
|
|
59
|
+
const result = run(`DELETE FROM compressions WHERE created_at < ?`, [cutoff.toISOString()]);
|
|
60
|
+
return result.changes;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
throw new DatabaseError('Failed to cleanup old compressions', error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/schema/compression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface FullTextResult {
|
|
2
|
+
memoryId: string;
|
|
3
|
+
content: string;
|
|
4
|
+
rank: number;
|
|
5
|
+
bm25Score: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function initFullTextSearch(): void;
|
|
8
|
+
export declare function searchFullText(queryText: string, limit?: number): FullTextResult[];
|
|
9
|
+
export declare function rebuildFullTextIndex(): number;
|
|
10
|
+
//# sourceMappingURL=fulltext-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fulltext-search.d.ts","sourceRoot":"","sources":["../../src/schema/fulltext-search.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAmCzC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAW,GACjB,cAAc,EAAE,CA4BlB;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAY7C"}
|