@pcircle/memesh 2.9.2 → 2.9.4
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/README.de.md +119 -78
- package/README.es.md +116 -75
- package/README.fr.md +116 -75
- package/README.id.md +115 -74
- package/README.ja.md +111 -70
- package/README.ko.md +116 -75
- package/README.md +113 -72
- package/README.th.md +118 -77
- package/README.vi.md +116 -75
- package/README.zh-CN.md +120 -79
- package/README.zh-TW.md +116 -75
- package/dist/core/GitCommandParser.d.ts +11 -0
- package/dist/core/GitCommandParser.d.ts.map +1 -0
- package/dist/core/GitCommandParser.js +43 -0
- package/dist/core/GitCommandParser.js.map +1 -0
- package/dist/core/HookIntegration.d.ts +0 -3
- package/dist/core/HookIntegration.d.ts.map +1 -1
- package/dist/core/HookIntegration.js +6 -30
- package/dist/core/HookIntegration.js.map +1 -1
- package/dist/db/ConnectionPool.d.ts.map +1 -1
- package/dist/db/ConnectionPool.js +17 -1
- package/dist/db/ConnectionPool.js.map +1 -1
- package/dist/db/adapters/BetterSqlite3Adapter.d.ts.map +1 -1
- package/dist/db/adapters/BetterSqlite3Adapter.js +22 -0
- package/dist/db/adapters/BetterSqlite3Adapter.js.map +1 -1
- package/dist/embeddings/EmbeddingService.d.ts +3 -0
- package/dist/embeddings/EmbeddingService.d.ts.map +1 -1
- package/dist/embeddings/EmbeddingService.js +28 -6
- package/dist/embeddings/EmbeddingService.js.map +1 -1
- package/dist/embeddings/InMemoryVectorAdapter.d.ts +15 -0
- package/dist/embeddings/InMemoryVectorAdapter.d.ts.map +1 -0
- package/dist/embeddings/InMemoryVectorAdapter.js +58 -0
- package/dist/embeddings/InMemoryVectorAdapter.js.map +1 -0
- package/dist/embeddings/SqliteVecAdapter.d.ts +15 -0
- package/dist/embeddings/SqliteVecAdapter.d.ts.map +1 -0
- package/dist/embeddings/SqliteVecAdapter.js +107 -0
- package/dist/embeddings/SqliteVecAdapter.js.map +1 -0
- package/dist/embeddings/VectorExtension.d.ts +2 -4
- package/dist/embeddings/VectorExtension.d.ts.map +1 -1
- package/dist/embeddings/VectorExtension.js.map +1 -1
- package/dist/embeddings/VectorSearchAdapter.d.ts +17 -0
- package/dist/embeddings/VectorSearchAdapter.d.ts.map +1 -0
- package/dist/embeddings/VectorSearchAdapter.js +2 -0
- package/dist/embeddings/VectorSearchAdapter.js.map +1 -0
- package/dist/embeddings/index.d.ts +6 -1
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/embeddings/index.js +4 -1
- package/dist/embeddings/index.js.map +1 -1
- package/dist/knowledge-graph/ContentHasher.d.ts +4 -0
- package/dist/knowledge-graph/ContentHasher.d.ts.map +1 -0
- package/dist/knowledge-graph/ContentHasher.js +8 -0
- package/dist/knowledge-graph/ContentHasher.js.map +1 -0
- package/dist/knowledge-graph/KGSearchEngine.d.ts +37 -0
- package/dist/knowledge-graph/KGSearchEngine.d.ts.map +1 -0
- package/dist/knowledge-graph/KGSearchEngine.js +257 -0
- package/dist/knowledge-graph/KGSearchEngine.js.map +1 -0
- package/dist/knowledge-graph/index.d.ts +18 -7
- package/dist/knowledge-graph/index.d.ts.map +1 -1
- package/dist/knowledge-graph/index.js +147 -242
- package/dist/knowledge-graph/index.js.map +1 -1
- package/dist/mcp/ServerInitializer.d.ts.map +1 -1
- package/dist/mcp/ServerInitializer.js +1 -1
- package/dist/mcp/ServerInitializer.js.map +1 -1
- package/dist/mcp/StdinBufferManager.d.ts +11 -0
- package/dist/mcp/StdinBufferManager.d.ts.map +1 -0
- package/dist/mcp/StdinBufferManager.js +62 -0
- package/dist/mcp/StdinBufferManager.js.map +1 -0
- package/dist/mcp/ToolDefinitions.js +3 -3
- package/dist/mcp/ToolDefinitions.js.map +1 -1
- package/dist/mcp/daemon/StdioProxyClient.d.ts.map +1 -1
- package/dist/mcp/daemon/StdioProxyClient.js +6 -0
- package/dist/mcp/daemon/StdioProxyClient.js.map +1 -1
- package/dist/mcp/handlers/HookToolHandler.d.ts +10 -0
- package/dist/mcp/handlers/HookToolHandler.d.ts.map +1 -0
- package/dist/mcp/handlers/HookToolHandler.js +92 -0
- package/dist/mcp/handlers/HookToolHandler.js.map +1 -0
- package/dist/mcp/handlers/MemoryToolHandler.d.ts +21 -0
- package/dist/mcp/handlers/MemoryToolHandler.d.ts.map +1 -0
- package/dist/mcp/handlers/MemoryToolHandler.js +430 -0
- package/dist/mcp/handlers/MemoryToolHandler.js.map +1 -0
- package/dist/mcp/handlers/SystemToolHandler.d.ts +14 -0
- package/dist/mcp/handlers/SystemToolHandler.d.ts.map +1 -0
- package/dist/mcp/handlers/SystemToolHandler.js +224 -0
- package/dist/mcp/handlers/SystemToolHandler.js.map +1 -0
- package/dist/mcp/handlers/ToolHandlers.d.ts +4 -17
- package/dist/mcp/handlers/ToolHandlers.d.ts.map +1 -1
- package/dist/mcp/handlers/ToolHandlers.js +19 -689
- package/dist/mcp/handlers/ToolHandlers.js.map +1 -1
- package/dist/mcp/handlers/index.d.ts +3 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -1
- package/dist/mcp/handlers/index.js +3 -0
- package/dist/mcp/handlers/index.js.map +1 -1
- package/dist/mcp/server-bootstrap.js +24 -59
- package/dist/mcp/server-bootstrap.js.map +1 -1
- package/dist/mcp/tools/buddy-do.d.ts.map +1 -1
- package/dist/mcp/tools/buddy-do.js +17 -1
- package/dist/mcp/tools/buddy-do.js.map +1 -1
- package/dist/mcp/tools/buddy-remember.d.ts +1 -1
- package/dist/mcp/tools/buddy-remember.d.ts.map +1 -1
- package/dist/mcp/tools/buddy-remember.js +58 -16
- package/dist/mcp/tools/buddy-remember.js.map +1 -1
- package/dist/mcp/tools/create-entities.d.ts.map +1 -1
- package/dist/mcp/tools/create-entities.js +18 -24
- package/dist/mcp/tools/create-entities.js.map +1 -1
- package/dist/memory/MemorySearchEngine.d.ts +17 -0
- package/dist/memory/MemorySearchEngine.d.ts.map +1 -0
- package/dist/memory/MemorySearchEngine.js +88 -0
- package/dist/memory/MemorySearchEngine.js.map +1 -0
- package/dist/memory/ProactiveRecaller.d.ts +26 -0
- package/dist/memory/ProactiveRecaller.d.ts.map +1 -0
- package/dist/memory/ProactiveRecaller.js +96 -0
- package/dist/memory/ProactiveRecaller.js.map +1 -0
- package/dist/memory/UnifiedMemoryStore.d.ts +1 -0
- package/dist/memory/UnifiedMemoryStore.d.ts.map +1 -1
- package/dist/memory/UnifiedMemoryStore.js +12 -64
- package/dist/memory/UnifiedMemoryStore.js.map +1 -1
- package/dist/memory/index.d.ts +3 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/ui/MetricsStore.d.ts.map +1 -1
- package/dist/ui/MetricsStore.js +21 -2
- package/dist/ui/MetricsStore.js.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/tracing/index.d.ts +0 -1
- package/dist/utils/tracing/index.d.ts.map +1 -1
- package/dist/utils/tracing/index.js +0 -1
- package/dist/utils/tracing/index.js.map +1 -1
- package/package.json +2 -12
- package/plugin.json +1 -1
- package/scripts/hooks/__tests__/post-tool-use-recall.test.js +192 -0
- package/scripts/hooks/__tests__/session-start-recall.test.js +86 -0
- package/scripts/hooks/post-tool-use-recall-utils.js +74 -0
- package/scripts/hooks/post-tool-use.js +83 -0
- package/scripts/hooks/pre-tool-use.js +30 -1
- package/scripts/hooks/session-start-recall-utils.js +40 -0
- package/scripts/hooks/session-start.js +66 -0
- package/scripts/hooks/templates/planning-template.md +46 -0
- package/scripts/postinstall-new.js +8 -1
|
@@ -40,31 +40,25 @@ export const createEntitiesTool = {
|
|
|
40
40
|
required: ['entities'],
|
|
41
41
|
},
|
|
42
42
|
async handler(args, knowledgeGraph) {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const hasScope = tags.some(tag => tag.startsWith('scope:'));
|
|
49
|
-
if (!hasScope) {
|
|
50
|
-
tags.push('scope:project');
|
|
51
|
-
}
|
|
52
|
-
await knowledgeGraph.createEntity({
|
|
53
|
-
name: entity.name,
|
|
54
|
-
entityType: entity.entityType,
|
|
55
|
-
observations: entity.observations,
|
|
56
|
-
tags,
|
|
57
|
-
metadata: entity.metadata,
|
|
58
|
-
});
|
|
59
|
-
created.push(entity.name);
|
|
43
|
+
const preparedEntities = args.entities.map(entity => {
|
|
44
|
+
const tags = entity.tags || [];
|
|
45
|
+
const hasScope = tags.some(tag => tag.startsWith('scope:'));
|
|
46
|
+
if (!hasScope) {
|
|
47
|
+
tags.push('scope:project');
|
|
60
48
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
return {
|
|
50
|
+
name: entity.name,
|
|
51
|
+
entityType: entity.entityType,
|
|
52
|
+
observations: entity.observations,
|
|
53
|
+
tags,
|
|
54
|
+
metadata: entity.metadata,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
const results = knowledgeGraph.createEntitiesBatch(preparedEntities);
|
|
58
|
+
const created = results.filter(r => r.success).map(r => r.name);
|
|
59
|
+
const errors = results
|
|
60
|
+
.filter(r => !r.success)
|
|
61
|
+
.map(r => ({ name: r.name, error: r.error }));
|
|
68
62
|
return {
|
|
69
63
|
created,
|
|
70
64
|
count: created.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-entities.js","sourceRoot":"","sources":["../../../src/mcp/tools/create-entities.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,yIAAyI;IAEtJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,6BAA6B;gBAC1C,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uEAAuE;yBACrF;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6GAA6G;yBAC3H;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,iEAAiE;yBAC/E;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,sIAAsI;yBACpJ;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mBAAmB;yBACjC;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC;iBACjD;aACF;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IAWD,KAAK,CAAC,OAAO,CACX,IAAwB,EACxB,cAA8B;
|
|
1
|
+
{"version":3,"file":"create-entities.js","sourceRoot":"","sources":["../../../src/mcp/tools/create-entities.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,yIAAyI;IAEtJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,6BAA6B;gBAC1C,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,uEAAuE;yBACrF;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6GAA6G;yBAC3H;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,iEAAiE;yBAC/E;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,sIAAsI;yBACpJ;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mBAAmB;yBACjC;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC;iBACjD;aACF;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IAWD,KAAK,CAAC,OAAO,CACX,IAAwB,EACxB,cAA8B;QAG9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI;gBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;QAGH,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAM,EAAE,CAAC,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { UnifiedMemory, SearchOptions } from './types/unified-memory.js';
|
|
2
|
+
export declare class MemorySearchEngine {
|
|
3
|
+
private readonly smartQuery;
|
|
4
|
+
constructor();
|
|
5
|
+
filterByQuery(memories: UnifiedMemory[], query: string): UnifiedMemory[];
|
|
6
|
+
applySearchFilters(memories: UnifiedMemory[], options?: SearchOptions): UnifiedMemory[];
|
|
7
|
+
deduplicateResults(memories: UnifiedMemory[]): UnifiedMemory[];
|
|
8
|
+
rankByRelevance(query: string, memories: UnifiedMemory[], options?: SearchOptions & {
|
|
9
|
+
projectPath?: string;
|
|
10
|
+
techStack?: string[];
|
|
11
|
+
}): UnifiedMemory[];
|
|
12
|
+
processSearchResults(query: string, candidates: UnifiedMemory[], options?: SearchOptions & {
|
|
13
|
+
projectPath?: string;
|
|
14
|
+
techStack?: string[];
|
|
15
|
+
}, finalLimit?: number): UnifiedMemory[];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=MemorySearchEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemorySearchEngine.d.ts","sourceRoot":"","sources":["../../src/memory/MemorySearchEngine.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM9E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;;IAa9C,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAoBxE,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE;IA2DvF,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE;IAkD9D,eAAe,CACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,CAAC,EAAE,aAAa,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACvE,aAAa,EAAE;IAgBlB,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,CAAC,EAAE,aAAa,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EACxE,UAAU,CAAC,EAAE,MAAM,GAClB,aAAa,EAAE;CAcnB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { SmartMemoryQuery } from './SmartMemoryQuery.js';
|
|
4
|
+
export class MemorySearchEngine {
|
|
5
|
+
smartQuery;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.smartQuery = new SmartMemoryQuery();
|
|
8
|
+
}
|
|
9
|
+
filterByQuery(memories, query) {
|
|
10
|
+
if (!query || !query.trim()) {
|
|
11
|
+
return memories;
|
|
12
|
+
}
|
|
13
|
+
const lowerQuery = query.toLowerCase();
|
|
14
|
+
return memories.filter((m) => m.content.toLowerCase().includes(lowerQuery) ||
|
|
15
|
+
m.context?.toLowerCase().includes(lowerQuery));
|
|
16
|
+
}
|
|
17
|
+
applySearchFilters(memories, options) {
|
|
18
|
+
let filtered = memories;
|
|
19
|
+
if (options?.timeRange && options.timeRange !== 'all') {
|
|
20
|
+
const now = new Date();
|
|
21
|
+
let cutoffDate;
|
|
22
|
+
switch (options.timeRange) {
|
|
23
|
+
case 'last-24h':
|
|
24
|
+
cutoffDate = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
|
25
|
+
break;
|
|
26
|
+
case 'last-7-days':
|
|
27
|
+
cutoffDate = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
|
|
28
|
+
break;
|
|
29
|
+
case 'last-30-days':
|
|
30
|
+
cutoffDate = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
cutoffDate = new Date(0);
|
|
34
|
+
}
|
|
35
|
+
filtered = filtered.filter((m) => m.timestamp.getTime() >= cutoffDate.getTime());
|
|
36
|
+
}
|
|
37
|
+
if (options?.minImportance !== undefined) {
|
|
38
|
+
filtered = filtered.filter((m) => m.importance >= options.minImportance);
|
|
39
|
+
}
|
|
40
|
+
if (options?.types && options.types.length > 0) {
|
|
41
|
+
filtered = filtered.filter((m) => options.types.includes(m.type));
|
|
42
|
+
}
|
|
43
|
+
if (options?.limit && filtered.length > options.limit) {
|
|
44
|
+
filtered = filtered.slice(0, options.limit);
|
|
45
|
+
}
|
|
46
|
+
return filtered;
|
|
47
|
+
}
|
|
48
|
+
deduplicateResults(memories) {
|
|
49
|
+
if (memories.length <= 1) {
|
|
50
|
+
return memories;
|
|
51
|
+
}
|
|
52
|
+
const seen = new Map();
|
|
53
|
+
for (const memory of memories) {
|
|
54
|
+
const contentHash = memory.content === ''
|
|
55
|
+
? `empty:${memory.id ?? uuidv4()}`
|
|
56
|
+
: createHash('sha256').update(memory.content).digest('hex');
|
|
57
|
+
const existing = seen.get(contentHash);
|
|
58
|
+
if (!existing) {
|
|
59
|
+
seen.set(contentHash, memory);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const memoryImportance = Number.isFinite(memory.importance) ? memory.importance : 0;
|
|
63
|
+
const existingImportance = Number.isFinite(existing.importance)
|
|
64
|
+
? existing.importance
|
|
65
|
+
: 0;
|
|
66
|
+
const shouldReplace = memoryImportance > existingImportance ||
|
|
67
|
+
(memoryImportance === existingImportance &&
|
|
68
|
+
memory.timestamp.getTime() > existing.timestamp.getTime());
|
|
69
|
+
if (shouldReplace) {
|
|
70
|
+
seen.set(contentHash, memory);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return Array.from(seen.values());
|
|
75
|
+
}
|
|
76
|
+
rankByRelevance(query, memories, options) {
|
|
77
|
+
return this.smartQuery.search(query, memories, options);
|
|
78
|
+
}
|
|
79
|
+
processSearchResults(query, candidates, options, finalLimit) {
|
|
80
|
+
const deduplicated = this.deduplicateResults(candidates);
|
|
81
|
+
const ranked = this.rankByRelevance(query, deduplicated, options);
|
|
82
|
+
if (finalLimit && finalLimit > 0) {
|
|
83
|
+
return ranked.slice(0, finalLimit);
|
|
84
|
+
}
|
|
85
|
+
return ranked;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=MemorySearchEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemorySearchEngine.js","sourceRoot":"","sources":["../../src/memory/MemorySearchEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { KnowledgeGraph } from '../knowledge-graph/index.js';
|
|
2
|
+
export type RecallTrigger = 'session-start' | 'test-failure' | 'error-detection';
|
|
3
|
+
export interface RecallContext {
|
|
4
|
+
projectName?: string;
|
|
5
|
+
recentCommits?: string[];
|
|
6
|
+
testName?: string;
|
|
7
|
+
errorMessage?: string;
|
|
8
|
+
errorType?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RecallResult {
|
|
11
|
+
entityName: string;
|
|
12
|
+
observations: string[];
|
|
13
|
+
similarity: number;
|
|
14
|
+
}
|
|
15
|
+
export declare class ProactiveRecaller {
|
|
16
|
+
private readonly knowledgeGraph;
|
|
17
|
+
constructor(knowledgeGraph: KnowledgeGraph);
|
|
18
|
+
buildQuery(trigger: RecallTrigger, context: RecallContext): string;
|
|
19
|
+
recall(trigger: RecallTrigger, context: RecallContext): Promise<RecallResult[]>;
|
|
20
|
+
static formatForHookOutput(results: RecallResult[]): string;
|
|
21
|
+
private buildSessionStartQuery;
|
|
22
|
+
private buildTestFailureQuery;
|
|
23
|
+
private buildErrorDetectionQuery;
|
|
24
|
+
private mapToRecallResult;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ProactiveRecaller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProactiveRecaller.d.ts","sourceRoot":"","sources":["../../src/memory/ProactiveRecaller.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAMlE,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,cAAc,EAAE,cAAc;IAO1C,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM;IAe5D,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAmBrF,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM;IAkB3D,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,iBAAiB;CAO1B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { logger } from '../utils/logger.js';
|
|
2
|
+
const CONVENTIONAL_COMMIT_PREFIX = /^[a-z]+(?:\([^)]*\))?:\s*/;
|
|
3
|
+
const TRIGGER_SEARCH_OPTIONS = {
|
|
4
|
+
'session-start': { limit: 5, minSimilarity: 0.5 },
|
|
5
|
+
'test-failure': { limit: 3, minSimilarity: 0.6 },
|
|
6
|
+
'error-detection': { limit: 3, minSimilarity: 0.6 },
|
|
7
|
+
};
|
|
8
|
+
export class ProactiveRecaller {
|
|
9
|
+
knowledgeGraph;
|
|
10
|
+
constructor(knowledgeGraph) {
|
|
11
|
+
this.knowledgeGraph = knowledgeGraph;
|
|
12
|
+
}
|
|
13
|
+
buildQuery(trigger, context) {
|
|
14
|
+
switch (trigger) {
|
|
15
|
+
case 'session-start':
|
|
16
|
+
return this.buildSessionStartQuery(context);
|
|
17
|
+
case 'test-failure':
|
|
18
|
+
return this.buildTestFailureQuery(context);
|
|
19
|
+
case 'error-detection':
|
|
20
|
+
return this.buildErrorDetectionQuery(context);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async recall(trigger, context) {
|
|
24
|
+
const query = this.buildQuery(trigger, context);
|
|
25
|
+
if (!query) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const options = TRIGGER_SEARCH_OPTIONS[trigger];
|
|
30
|
+
const results = await this.knowledgeGraph.hybridSearch(query, options);
|
|
31
|
+
return results.map(this.mapToRecallResult);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
logger.warn('ProactiveRecaller.recall failed', { trigger, error });
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static formatForHookOutput(results) {
|
|
39
|
+
if (results.length === 0) {
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
const lines = [];
|
|
43
|
+
for (const result of results) {
|
|
44
|
+
const pct = Math.round(result.similarity * 100);
|
|
45
|
+
lines.push(`- ${result.entityName} (${pct}% match)`);
|
|
46
|
+
for (const obs of result.observations.slice(0, 2)) {
|
|
47
|
+
lines.push(` - ${obs}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return lines.join('\n');
|
|
51
|
+
}
|
|
52
|
+
buildSessionStartQuery(context) {
|
|
53
|
+
const parts = [];
|
|
54
|
+
if (context.projectName) {
|
|
55
|
+
parts.push(context.projectName);
|
|
56
|
+
}
|
|
57
|
+
if (context.recentCommits?.length) {
|
|
58
|
+
const cleaned = context.recentCommits.map((msg) => msg.replace(CONVENTIONAL_COMMIT_PREFIX, '').trim());
|
|
59
|
+
parts.push(...cleaned);
|
|
60
|
+
}
|
|
61
|
+
return parts.join(' ');
|
|
62
|
+
}
|
|
63
|
+
buildTestFailureQuery(context) {
|
|
64
|
+
const parts = [];
|
|
65
|
+
if (context.testName) {
|
|
66
|
+
const separatorIdx = context.testName.indexOf('::');
|
|
67
|
+
const name = separatorIdx >= 0
|
|
68
|
+
? context.testName.slice(separatorIdx + 2)
|
|
69
|
+
: context.testName;
|
|
70
|
+
parts.push(name.trim());
|
|
71
|
+
}
|
|
72
|
+
if (context.errorMessage) {
|
|
73
|
+
parts.push(context.errorMessage);
|
|
74
|
+
}
|
|
75
|
+
return parts.join(' ');
|
|
76
|
+
}
|
|
77
|
+
buildErrorDetectionQuery(context) {
|
|
78
|
+
const parts = [];
|
|
79
|
+
if (context.errorType) {
|
|
80
|
+
parts.push(context.errorType);
|
|
81
|
+
}
|
|
82
|
+
if (context.errorMessage) {
|
|
83
|
+
const firstLine = context.errorMessage.split('\n')[0].trim();
|
|
84
|
+
parts.push(firstLine);
|
|
85
|
+
}
|
|
86
|
+
return parts.join(' ');
|
|
87
|
+
}
|
|
88
|
+
mapToRecallResult(result) {
|
|
89
|
+
return {
|
|
90
|
+
entityName: result.entity.name,
|
|
91
|
+
observations: result.entity.observations,
|
|
92
|
+
similarity: result.similarity,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=ProactiveRecaller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProactiveRecaller.js","sourceRoot":"","sources":["../../src/memory/ProactiveRecaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { KnowledgeGraph } from '../knowledge-graph/index.js';
|
|
|
2
2
|
import type { UnifiedMemory, MemoryType, SearchOptions } from './types/unified-memory.js';
|
|
3
3
|
export declare class UnifiedMemoryStore {
|
|
4
4
|
private knowledgeGraph;
|
|
5
|
+
private readonly searchEngine;
|
|
5
6
|
constructor(knowledgeGraph: KnowledgeGraph);
|
|
6
7
|
static create(dbPath?: string): Promise<UnifiedMemoryStore>;
|
|
7
8
|
store(memory: UnifiedMemory, context?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnifiedMemoryStore.d.ts","sourceRoot":"","sources":["../../src/memory/UnifiedMemoryStore.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACd,MAAM,2BAA2B,CAAC;AA4EnC,qBAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"UnifiedMemoryStore.d.ts","sourceRoot":"","sources":["../../src/memory/UnifiedMemoryStore.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACd,MAAM,2BAA2B,CAAC;AA4EnC,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,cAAc;IAFlC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAE9B,cAAc,EAAE,cAAc;WAqBrC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkC3D,KAAK,CACT,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACvD,OAAO,CAAC,MAAM,CAAC;IAkRZ,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAgD9C,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACvE,OAAO,CAAC,aAAa,EAAE,CAAC;YAmDb,iBAAiB;IA2F/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAmCpB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmCjF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAa/E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAiFrE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B,OAAO,CAAC,cAAc;CAkFvB"}
|
|
@@ -3,8 +3,8 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
3
3
|
import { createHash } from 'crypto';
|
|
4
4
|
import { logger } from '../utils/logger.js';
|
|
5
5
|
import { ValidationError, OperationError } from '../errors/index.js';
|
|
6
|
-
import { SmartMemoryQuery } from './SmartMemoryQuery.js';
|
|
7
6
|
import { AutoTagger } from './AutoTagger.js';
|
|
7
|
+
import { MemorySearchEngine } from './MemorySearchEngine.js';
|
|
8
8
|
function extractErrorInfo(error) {
|
|
9
9
|
if (error instanceof Error) {
|
|
10
10
|
return {
|
|
@@ -45,8 +45,10 @@ const MEMORY_ID_PREFIX = 'unified-memory-';
|
|
|
45
45
|
const MAX_METADATA_SIZE = 1024 * 1024;
|
|
46
46
|
export class UnifiedMemoryStore {
|
|
47
47
|
knowledgeGraph;
|
|
48
|
+
searchEngine;
|
|
48
49
|
constructor(knowledgeGraph) {
|
|
49
50
|
this.knowledgeGraph = knowledgeGraph;
|
|
51
|
+
this.searchEngine = new MemorySearchEngine();
|
|
50
52
|
}
|
|
51
53
|
static async create(dbPath) {
|
|
52
54
|
try {
|
|
@@ -299,11 +301,7 @@ export class UnifiedMemoryStore {
|
|
|
299
301
|
limit: Math.min(finalLimit * 10, 1000),
|
|
300
302
|
};
|
|
301
303
|
const baseResults = await this.traditionalSearch(query, candidateOptions);
|
|
302
|
-
|
|
303
|
-
const smartQuery = new SmartMemoryQuery();
|
|
304
|
-
const rankedResults = smartQuery.search(query, deduplicatedResults, options);
|
|
305
|
-
const finalResults = rankedResults.slice(0, finalLimit);
|
|
306
|
-
return finalResults;
|
|
304
|
+
return this.searchEngine.processSearchResults(query, baseResults, options, finalLimit);
|
|
307
305
|
}
|
|
308
306
|
catch (error) {
|
|
309
307
|
logger.error(`[UnifiedMemoryStore] Search failed: ${error}`);
|
|
@@ -350,10 +348,7 @@ export class UnifiedMemoryStore {
|
|
|
350
348
|
entities = entities.filter((e) => e.tags && options.tags.some((t) => e.tags.includes(t)));
|
|
351
349
|
}
|
|
352
350
|
let memories = entities.map((e) => this.entityToMemory(e)).filter((m) => m !== null);
|
|
353
|
-
|
|
354
|
-
const lowerQuery = query.toLowerCase();
|
|
355
|
-
memories = memories.filter((m) => m.content.toLowerCase().includes(lowerQuery) || m.context?.toLowerCase().includes(lowerQuery));
|
|
356
|
-
}
|
|
351
|
+
memories = this.searchEngine.filterByQuery(memories, query);
|
|
357
352
|
memories = this.applySearchFilters(memories, options);
|
|
358
353
|
return memories;
|
|
359
354
|
}
|
|
@@ -372,61 +367,10 @@ export class UnifiedMemoryStore {
|
|
|
372
367
|
}
|
|
373
368
|
}
|
|
374
369
|
applySearchFilters(memories, options) {
|
|
375
|
-
|
|
376
|
-
if (options?.timeRange && options.timeRange !== 'all') {
|
|
377
|
-
const now = new Date();
|
|
378
|
-
let cutoffDate;
|
|
379
|
-
switch (options.timeRange) {
|
|
380
|
-
case 'last-24h':
|
|
381
|
-
cutoffDate = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
|
382
|
-
break;
|
|
383
|
-
case 'last-7-days':
|
|
384
|
-
cutoffDate = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
|
|
385
|
-
break;
|
|
386
|
-
case 'last-30-days':
|
|
387
|
-
cutoffDate = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
|
|
388
|
-
break;
|
|
389
|
-
default:
|
|
390
|
-
cutoffDate = new Date(0);
|
|
391
|
-
}
|
|
392
|
-
filtered = filtered.filter((m) => m.timestamp.getTime() >= cutoffDate.getTime());
|
|
393
|
-
}
|
|
394
|
-
if (options?.minImportance !== undefined) {
|
|
395
|
-
filtered = filtered.filter((m) => m.importance >= options.minImportance);
|
|
396
|
-
}
|
|
397
|
-
if (options?.types && options.types.length > 0) {
|
|
398
|
-
filtered = filtered.filter((m) => options.types.includes(m.type));
|
|
399
|
-
}
|
|
400
|
-
if (options?.limit && filtered.length > options.limit) {
|
|
401
|
-
filtered = filtered.slice(0, options.limit);
|
|
402
|
-
}
|
|
403
|
-
return filtered;
|
|
370
|
+
return this.searchEngine.applySearchFilters(memories, options);
|
|
404
371
|
}
|
|
405
372
|
deduplicateResults(memories) {
|
|
406
|
-
|
|
407
|
-
return memories;
|
|
408
|
-
}
|
|
409
|
-
const seen = new Map();
|
|
410
|
-
for (const memory of memories) {
|
|
411
|
-
const contentHash = memory.content === ''
|
|
412
|
-
? `empty:${memory.id ?? uuidv4()}`
|
|
413
|
-
: createHash('sha256').update(memory.content).digest('hex');
|
|
414
|
-
const existing = seen.get(contentHash);
|
|
415
|
-
if (!existing) {
|
|
416
|
-
seen.set(contentHash, memory);
|
|
417
|
-
}
|
|
418
|
-
else {
|
|
419
|
-
const memoryImportance = Number.isFinite(memory.importance) ? memory.importance : 0;
|
|
420
|
-
const existingImportance = Number.isFinite(existing.importance) ? existing.importance : 0;
|
|
421
|
-
const shouldReplace = memoryImportance > existingImportance ||
|
|
422
|
-
(memoryImportance === existingImportance &&
|
|
423
|
-
memory.timestamp.getTime() > existing.timestamp.getTime());
|
|
424
|
-
if (shouldReplace) {
|
|
425
|
-
seen.set(contentHash, memory);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
return Array.from(seen.values());
|
|
373
|
+
return this.searchEngine.deduplicateResults(memories);
|
|
430
374
|
}
|
|
431
375
|
async searchByType(type, options) {
|
|
432
376
|
return this.search('', { ...options, types: [type] });
|
|
@@ -558,7 +502,11 @@ export class UnifiedMemoryStore {
|
|
|
558
502
|
}
|
|
559
503
|
metadata = JSON.parse(metadataStr);
|
|
560
504
|
}
|
|
561
|
-
catch {
|
|
505
|
+
catch (parseError) {
|
|
506
|
+
logger.warn(`[UnifiedMemoryStore] Failed to parse metadata for entity ${entity.name}`, {
|
|
507
|
+
error: parseError instanceof Error ? parseError.message : String(parseError),
|
|
508
|
+
entityName: entity.name,
|
|
509
|
+
});
|
|
562
510
|
}
|
|
563
511
|
}
|
|
564
512
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnifiedMemoryStore.js","sourceRoot":"","sources":["../../src/memory/UnifiedMemoryStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UnifiedMemoryStore.js","sourceRoot":"","sources":["../../src/memory/UnifiedMemoryStore.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { UnifiedMemoryStore } from './UnifiedMemoryStore.js';
|
|
2
|
+
export { MemorySearchEngine } from './MemorySearchEngine.js';
|
|
3
|
+
export { ProactiveRecaller } from './ProactiveRecaller.js';
|
|
4
|
+
export type { RecallTrigger, RecallContext, RecallResult } from './ProactiveRecaller.js';
|
|
2
5
|
export { MistakePatternEngine } from './MistakePatternEngine.js';
|
|
3
6
|
export { EnhancedRetrieval } from './EnhancedRetrieval.js';
|
|
4
7
|
export type { EnhancedSearchOptions, EnhancedSearchResult, MatchType } from './EnhancedRetrieval.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,YAAY,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,YAAY,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/memory/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { UnifiedMemoryStore } from './UnifiedMemoryStore.js';
|
|
2
|
+
export { MemorySearchEngine } from './MemorySearchEngine.js';
|
|
3
|
+
export { ProactiveRecaller } from './ProactiveRecaller.js';
|
|
2
4
|
export { MistakePatternEngine } from './MistakePatternEngine.js';
|
|
3
5
|
export { EnhancedRetrieval } from './EnhancedRetrieval.js';
|
|
4
6
|
export { UserPreferenceEngine } from './UserPreferenceEngine.js';
|
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUjE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAY1B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUjE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAY1B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsStore.d.ts","sourceRoot":"","sources":["../../src/ui/MetricsStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetricsStore.d.ts","sourceRoot":"","sources":["../../src/ui/MetricsStore.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrE,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,SAAS,CAAC,EAAE,MAAM;IAyBvB,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAmBxD,wBAAwB,IAAI,cAAc;IAOpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrB,mBAAmB,CAAC,IAAI,GAAE,IAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C7D,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAmB3C,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;CAWzB"}
|
package/dist/ui/MetricsStore.js
CHANGED
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
+
import os from 'os';
|
|
2
3
|
import { promises as fs } from 'fs';
|
|
3
4
|
import { randomBytes } from 'crypto';
|
|
4
5
|
import { resolveUserPath } from '../utils/paths.js';
|
|
5
6
|
import { logger } from '../utils/logger.js';
|
|
6
|
-
import { getDataPath } from '../utils/PathResolver.js';
|
|
7
|
+
import { getDataPath, getDataDirectory } from '../utils/PathResolver.js';
|
|
8
|
+
import { ValidationError } from '../errors/index.js';
|
|
7
9
|
export class MetricsStore {
|
|
8
10
|
storePath;
|
|
9
11
|
currentSession;
|
|
10
12
|
constructor(storePath) {
|
|
11
|
-
|
|
13
|
+
if (storePath) {
|
|
14
|
+
const resolved = resolveUserPath(storePath);
|
|
15
|
+
const homeDir = os.homedir();
|
|
16
|
+
const dataDir = getDataDirectory();
|
|
17
|
+
const normalized = path.normalize(resolved);
|
|
18
|
+
if (!normalized.startsWith(homeDir + path.sep) && normalized !== homeDir &&
|
|
19
|
+
!normalized.startsWith(dataDir + path.sep) && normalized !== dataDir) {
|
|
20
|
+
throw new ValidationError('Metrics store path must be within user home or data directory', {
|
|
21
|
+
provided: storePath,
|
|
22
|
+
resolved: normalized,
|
|
23
|
+
allowedBases: [homeDir, dataDir],
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
this.storePath = resolved;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.storePath = getDataPath('metrics.json');
|
|
30
|
+
}
|
|
12
31
|
this.currentSession = this.createNewSession();
|
|
13
32
|
}
|
|
14
33
|
recordAttribution(attribution) {
|