@devflow-tools/memory-engine 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.
@@ -0,0 +1,3 @@
1
+ import type { SessionEntry, MemoryCandidate } from "@devflow-tools/sdk";
2
+ export declare function extractCandidates(sessionId: string, entries: SessionEntry[]): MemoryCandidate[];
3
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAoBxE,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EAAE,GACtB,eAAe,EAAE,CAoBnB"}
@@ -0,0 +1,37 @@
1
+ const PATTERNS = [
2
+ {
3
+ pattern: /(?:Using|Used|Use)\s+(?:@?[A-Z][a-zA-Z]*\s+)?([A-Z][a-zA-Z]+)\s+(?:for|as|in)/,
4
+ type: "project",
5
+ extractKey: (m) => `stack:${m[1].toLowerCase()}`,
6
+ },
7
+ {
8
+ pattern: /follow(?:ed|ing|s)?\s+(?:the\s+)?([A-Za-z\s]+)\s+(?:pattern|convention)/i,
9
+ type: "project",
10
+ extractKey: (m) => `convention:${m[1].trim().toLowerCase().replace(/\s+/g, "-")}`,
11
+ },
12
+ {
13
+ pattern: /prefer(?:s|red)?\s+(?:to\s+)?(?:use\s+)?([A-Za-z]+)/i,
14
+ type: "project",
15
+ extractKey: (m) => `pref:${m[1].toLowerCase()}`,
16
+ },
17
+ ];
18
+ export function extractCandidates(sessionId, entries) {
19
+ const candidates = [];
20
+ for (const entry of entries) {
21
+ for (const { pattern, type, extractKey } of PATTERNS) {
22
+ const match = entry.summary.match(pattern);
23
+ if (match) {
24
+ candidates.push({
25
+ id: `candidate:${sessionId}:${candidates.length}`,
26
+ type,
27
+ content: { key: extractKey(match), value: entry.summary },
28
+ confidence: 0.7,
29
+ source: sessionId,
30
+ });
31
+ break;
32
+ }
33
+ }
34
+ }
35
+ return candidates;
36
+ }
37
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAA0G;IACtH;QACE,OAAO,EAAE,+EAA+E;QACxF,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE;KAClD;IACD;QACE,OAAO,EAAE,0EAA0E;QACnF,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;KACnF;IACD;QACE,OAAO,EAAE,sDAAsD;QAC/D,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,EAAE;KACjD;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,OAAuB;IAEvB,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,QAAQ,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,CAAC,IAAI,CAAC;oBACd,EAAE,EAAE,aAAa,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE;oBACjD,IAAI;oBACJ,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;oBACzD,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { MemoryEngine } from "./memory-engine.js";
2
+ export { extractCandidates } from "./extractor.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { MemoryEngine } from "./memory-engine.js";
2
+ export { extractCandidates } from "./extractor.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry, SessionMemory, MemoryCandidate, KnowledgeEntry, IDataProvider } from "@devflow-tools/sdk";
2
+ export declare class MemoryEngine implements IMemoryEngine {
3
+ private provider;
4
+ private userPrefsKey;
5
+ private projectCtxKey;
6
+ private candidatesKey;
7
+ constructor(provider: IDataProvider);
8
+ getUserPreferences(): Promise<UserPrefs>;
9
+ updateUserPreference(key: string, value: unknown): Promise<void>;
10
+ getProjectContext(): Promise<ProjectContext>;
11
+ setProjectContext(ctx: Partial<ProjectContext>): Promise<void>;
12
+ getTeamConventions(): Promise<Convention[]>;
13
+ createSession(task: string): Promise<string>;
14
+ appendToSession(sessionId: string, entry: SessionEntry): Promise<void>;
15
+ getSession(sessionId: string): Promise<SessionMemory>;
16
+ closeSession(sessionId: string): Promise<void>;
17
+ searchGlobal(_query: string): Promise<KnowledgeEntry[]>;
18
+ upsertGlobal(entries: KnowledgeEntry[]): Promise<void>;
19
+ getAll(): Promise<{
20
+ project: ProjectContext;
21
+ user: UserPrefs;
22
+ relevant: KnowledgeEntry[];
23
+ }>;
24
+ getCandidates(): Promise<MemoryCandidate[]>;
25
+ approveCandidate(id: string): Promise<void>;
26
+ rejectCandidate(id: string): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=memory-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-engine.d.ts","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EACpD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAC5D,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAuB;gBAEhC,QAAQ,EAAE,aAAa;IAK7B,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC;IAMxC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhE,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM5C,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAM3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAcrD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAYvD,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD,MAAM;;;;;IAUN,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAM3C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOjD"}
@@ -0,0 +1,135 @@
1
+ import { extractCandidates } from "./extractor.js";
2
+ export class MemoryEngine {
3
+ provider;
4
+ userPrefsKey = "user:prefs";
5
+ projectCtxKey = "project:context";
6
+ candidatesKey = "memory:candidates";
7
+ constructor(provider) {
8
+ this.provider = provider;
9
+ }
10
+ // --- User Memory ---
11
+ async getUserPreferences() {
12
+ const raw = await this.provider.kvGet(this.userPrefsKey);
13
+ if (raw)
14
+ return raw;
15
+ return { preferences: {}, stack: [] };
16
+ }
17
+ async updateUserPreference(key, value) {
18
+ const prefs = await this.getUserPreferences();
19
+ prefs.preferences[key] = value;
20
+ await this.provider.kvSet(this.userPrefsKey, prefs);
21
+ }
22
+ // --- Project Memory ---
23
+ async getProjectContext() {
24
+ const raw = await this.provider.kvGet(this.projectCtxKey);
25
+ if (raw)
26
+ return raw;
27
+ return { stack: [], conventions: [], metadata: {} };
28
+ }
29
+ async setProjectContext(ctx) {
30
+ const current = await this.getProjectContext();
31
+ const merged = {
32
+ stack: ctx.stack ?? current.stack,
33
+ conventions: ctx.conventions ?? current.conventions,
34
+ metadata: { ...current.metadata, ...(ctx.metadata ?? {}) },
35
+ };
36
+ await this.provider.kvSet(this.projectCtxKey, merged);
37
+ }
38
+ async getTeamConventions() {
39
+ const ctx = await this.getProjectContext();
40
+ return ctx.conventions;
41
+ }
42
+ // --- Session Memory ---
43
+ async createSession(task) {
44
+ const sessionId = `session:${Date.now()}:${Math.random().toString(36).slice(2, 9)}`;
45
+ await this.provider.sessionCreate(sessionId, task);
46
+ return sessionId;
47
+ }
48
+ async appendToSession(sessionId, entry) {
49
+ await this.provider.sessionAppend(sessionId, entry);
50
+ }
51
+ async getSession(sessionId) {
52
+ const entries = await this.provider.sessionGet(sessionId);
53
+ if (entries.length === 0) {
54
+ throw new Error(`Session "${sessionId}" not found`);
55
+ }
56
+ const firstEntry = entries[0];
57
+ return {
58
+ sessionId,
59
+ task: firstEntry.summary,
60
+ entries,
61
+ createdAt: firstEntry.timestamp,
62
+ };
63
+ }
64
+ async closeSession(sessionId) {
65
+ const session = await this.getSession(sessionId);
66
+ await this.provider.sessionClose(sessionId);
67
+ const newCandidates = extractCandidates(sessionId, session.entries);
68
+ const existing = await this.getCandidates();
69
+ await this.provider.kvSet(this.candidatesKey, [...existing, ...newCandidates]);
70
+ }
71
+ // --- Global Memory ---
72
+ async searchGlobal(_query) {
73
+ const dummyVector = Array.from({ length: 128 }, () => 0);
74
+ const results = await this.provider.vectorSearch("global", dummyVector, 10);
75
+ return results.map((r) => ({
76
+ id: r.id,
77
+ source: r.metadata?.source ?? "unknown",
78
+ title: r.metadata?.title ?? "",
79
+ content: r.metadata?.content ?? "",
80
+ embedding: r.metadata?.embedding ?? [],
81
+ }));
82
+ }
83
+ async upsertGlobal(entries) {
84
+ const points = entries.map((e) => ({
85
+ id: e.id,
86
+ vector: e.embedding,
87
+ metadata: {
88
+ source: e.source,
89
+ title: e.title,
90
+ content: e.content,
91
+ embedding: e.embedding,
92
+ },
93
+ }));
94
+ await this.provider.vectorUpsert("global", points);
95
+ }
96
+ // --- Unified ---
97
+ async getAll() {
98
+ const [project, user, relevant] = await Promise.all([
99
+ this.getProjectContext(),
100
+ this.getUserPreferences(),
101
+ this.searchGlobal(""),
102
+ ]);
103
+ return { project, user, relevant };
104
+ }
105
+ // --- Candidates (persisted to kvStore) ---
106
+ async getCandidates() {
107
+ const raw = await this.provider.kvGet(this.candidatesKey);
108
+ if (raw)
109
+ return raw;
110
+ return [];
111
+ }
112
+ async approveCandidate(id) {
113
+ const candidates = await this.getCandidates();
114
+ const idx = candidates.findIndex((c) => c.id === id);
115
+ if (idx === -1)
116
+ throw new Error(`Candidate "${id}" not found`);
117
+ const candidate = candidates[idx];
118
+ candidates.splice(idx, 1);
119
+ await this.provider.kvSet(this.candidatesKey, candidates);
120
+ if (candidate.type === "project") {
121
+ const ctx = await this.getProjectContext();
122
+ ctx.metadata[candidate.id] = candidate.content;
123
+ await this.provider.kvSet(this.projectCtxKey, ctx);
124
+ }
125
+ }
126
+ async rejectCandidate(id) {
127
+ const candidates = await this.getCandidates();
128
+ const idx = candidates.findIndex((c) => c.id === id);
129
+ if (idx === -1)
130
+ throw new Error(`Candidate "${id}" not found`);
131
+ candidates.splice(idx, 1);
132
+ await this.provider.kvSet(this.candidatesKey, candidates);
133
+ }
134
+ }
135
+ //# sourceMappingURL=memory-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-engine.js","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@devflow-tools/memory-engine",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "scripts": {
14
+ "build": "tsc -b",
15
+ "test": "cgnode ../../node_modules/.bin/vitest run",
16
+ "typecheck": "tsc --noEmit",
17
+ "clean": "rm -rf dist"
18
+ },
19
+ "dependencies": {
20
+ "@devflow-tools/sdk": "*"
21
+ },
22
+ "devDependencies": {
23
+ "@devflow-tools/knowledge-engine": "*",
24
+ "typescript": "^5.5.0",
25
+ "vitest": "^2.0.0"
26
+ },
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "gitHead": "4cede97fc7fc673f929427fac169acab100ca8ed"
31
+ }