nomi-opencode 2.0.1
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 +140 -0
- package/README.zh-CN.md +140 -0
- package/dist/cli/install.d.ts +3 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +296 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/memory/store.d.ts +31 -0
- package/dist/src/memory/store.d.ts.map +1 -0
- package/dist/src/memory/store.js +387 -0
- package/dist/src/memory/store.js.map +1 -0
- package/dist/src/memory/types.d.ts +42 -0
- package/dist/src/memory/types.d.ts.map +1 -0
- package/dist/src/memory/types.js +2 -0
- package/dist/src/memory/types.js.map +1 -0
- package/dist/src/plugins/nomi-memory.d.ts +3 -0
- package/dist/src/plugins/nomi-memory.d.ts.map +1 -0
- package/dist/src/plugins/nomi-memory.js +165 -0
- package/dist/src/plugins/nomi-memory.js.map +1 -0
- package/dist/src/tools/recall.d.ts +22 -0
- package/dist/src/tools/recall.d.ts.map +1 -0
- package/dist/src/tools/recall.js +33 -0
- package/dist/src/tools/recall.js.map +1 -0
- package/dist/src/tools/remember.d.ts +28 -0
- package/dist/src/tools/remember.d.ts.map +1 -0
- package/dist/src/tools/remember.js +38 -0
- package/dist/src/tools/remember.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Memory, MemoryListInput, MemoryStats, MemoryUpsertInput, RecallMemoryInput, RememberMemoryInput } from './types.js';
|
|
2
|
+
export declare function resolveMemoryFile(explicitPath?: string): string;
|
|
3
|
+
export declare function projectFromDirectory(directory?: string): string | undefined;
|
|
4
|
+
export declare function loadAllMemories(memoryFilePath?: string): Promise<Memory[]>;
|
|
5
|
+
export declare function rememberMemory(input: RememberMemoryInput, memoryFilePath?: string): Promise<{
|
|
6
|
+
memory: Memory;
|
|
7
|
+
deduped: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function recallMemories(input: RecallMemoryInput, memoryFilePath?: string): Promise<Memory[]>;
|
|
10
|
+
export declare function listMemories(input: MemoryListInput, memoryFilePath?: string): Promise<{
|
|
11
|
+
items: Memory[];
|
|
12
|
+
total: number;
|
|
13
|
+
page: number;
|
|
14
|
+
limit: number;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function getMemoryById(id: string, memoryFilePath?: string): Promise<Memory | undefined>;
|
|
17
|
+
export declare function updateMemory(id: string, input: MemoryUpsertInput, memoryFilePath?: string): Promise<Memory | undefined>;
|
|
18
|
+
export declare function deleteMemory(id: string, memoryFilePath?: string): Promise<boolean>;
|
|
19
|
+
export declare function deleteMemories(ids: string[], memoryFilePath?: string): Promise<number>;
|
|
20
|
+
export declare function importMemories(items: Memory[], memoryFilePath?: string): Promise<{
|
|
21
|
+
imported: number;
|
|
22
|
+
deduped: number;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function exportMemories(memoryFilePath?: string): Promise<Memory[]>;
|
|
25
|
+
export declare function getMemoryStats(memoryFilePath?: string): Promise<MemoryStats>;
|
|
26
|
+
export declare function selectMemoriesForInjection(input: {
|
|
27
|
+
directory?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}, memoryFilePath?: string): Promise<Memory[]>;
|
|
30
|
+
export declare function formatMemoriesForInjection(memories: Memory[]): string;
|
|
31
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/memory/store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,MAAM,EAEN,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAUnB,wBAAgB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO3E;AAyFD,wBAAsB,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUhF;AA8DD,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAwCvI;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BzG;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAc5J;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGpG;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB7H;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWxF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5F;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD7H;AAED,wBAAsB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/E;AAED,wBAAsB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBlF;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2C1I;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CA6BrE"}
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { basename, dirname, join, resolve } from 'node:path';
|
|
5
|
+
const DEFAULT_MEMORY_FILE = join(homedir(), '.config', 'opencode', 'nomi', 'memories.jsonl');
|
|
6
|
+
const MAX_RECALL_LIMIT = 50;
|
|
7
|
+
const DEFAULT_RECALL_LIMIT = 10;
|
|
8
|
+
const DEFAULT_PAGE_LIMIT = 20;
|
|
9
|
+
const DEDUPE_THRESHOLD = 0.82;
|
|
10
|
+
const DEFAULT_INJECTION_LIMIT = 15;
|
|
11
|
+
const DEFAULT_INJECTION_TOKEN_BUDGET = 1500;
|
|
12
|
+
export function resolveMemoryFile(explicitPath) {
|
|
13
|
+
return resolve(explicitPath ?? process.env.NOMI_MEMORY_PATH ?? DEFAULT_MEMORY_FILE);
|
|
14
|
+
}
|
|
15
|
+
export function projectFromDirectory(directory) {
|
|
16
|
+
if (!directory) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const project = basename(directory).trim();
|
|
20
|
+
return project || undefined;
|
|
21
|
+
}
|
|
22
|
+
function normalizeProject(project) {
|
|
23
|
+
const value = project?.trim();
|
|
24
|
+
return value ? value : undefined;
|
|
25
|
+
}
|
|
26
|
+
function normalizeTags(tags) {
|
|
27
|
+
return [...new Set((tags ?? []).map((tag) => tag.trim()).filter(Boolean))];
|
|
28
|
+
}
|
|
29
|
+
function tokenize(value) {
|
|
30
|
+
return value
|
|
31
|
+
.toLowerCase()
|
|
32
|
+
.split(/[^\p{L}\p{N}_-]+/u)
|
|
33
|
+
.map((token) => token.trim())
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
}
|
|
36
|
+
function scoreSimilarity(left, right) {
|
|
37
|
+
const leftText = left.trim().toLowerCase();
|
|
38
|
+
const rightText = right.trim().toLowerCase();
|
|
39
|
+
if (!leftText || !rightText) {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
if (leftText === rightText) {
|
|
43
|
+
return 1;
|
|
44
|
+
}
|
|
45
|
+
if (leftText.includes(rightText) || rightText.includes(leftText)) {
|
|
46
|
+
return 0.92;
|
|
47
|
+
}
|
|
48
|
+
const leftTokens = new Set(tokenize(leftText));
|
|
49
|
+
const rightTokens = new Set(tokenize(rightText));
|
|
50
|
+
const intersection = [...leftTokens].filter((token) => rightTokens.has(token)).length;
|
|
51
|
+
const union = new Set([...leftTokens, ...rightTokens]).size;
|
|
52
|
+
return union === 0 ? 0 : intersection / union;
|
|
53
|
+
}
|
|
54
|
+
function buildDedupeKey(memory) {
|
|
55
|
+
return `${memory.category}::${memory.project ?? ''}`;
|
|
56
|
+
}
|
|
57
|
+
function generateMemoryId(now = Date.now()) {
|
|
58
|
+
return `mem_${Math.floor(now / 1000)}_${randomBytes(3).toString('hex')}`;
|
|
59
|
+
}
|
|
60
|
+
async function ensureMemoryFile(filePath) {
|
|
61
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
62
|
+
try {
|
|
63
|
+
await readFile(filePath, 'utf8');
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
await writeFile(filePath, '', 'utf8');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function parseMemoryLine(line) {
|
|
70
|
+
const trimmed = line.trim();
|
|
71
|
+
if (!trimmed) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const parsed = JSON.parse(trimmed);
|
|
76
|
+
return {
|
|
77
|
+
...parsed,
|
|
78
|
+
project: normalizeProject(parsed.project),
|
|
79
|
+
tags: normalizeTags(parsed.tags),
|
|
80
|
+
hit_count: Number.isFinite(parsed.hit_count) ? parsed.hit_count : 0,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async function saveAllMemories(filePath, memories) {
|
|
88
|
+
await ensureMemoryFile(filePath);
|
|
89
|
+
const lines = memories.map((memory) => JSON.stringify(memory));
|
|
90
|
+
const payload = lines.length > 0 ? `${lines.join('\n')}\n` : '';
|
|
91
|
+
await writeFile(filePath, payload, 'utf8');
|
|
92
|
+
}
|
|
93
|
+
export async function loadAllMemories(memoryFilePath) {
|
|
94
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
95
|
+
await ensureMemoryFile(filePath);
|
|
96
|
+
const raw = await readFile(filePath, 'utf8');
|
|
97
|
+
return raw
|
|
98
|
+
.split(/\r?\n/u)
|
|
99
|
+
.map(parseMemoryLine)
|
|
100
|
+
.filter((memory) => memory !== null)
|
|
101
|
+
.sort((left, right) => right.ts.localeCompare(left.ts));
|
|
102
|
+
}
|
|
103
|
+
function scoreMemory(memory, input) {
|
|
104
|
+
let score = 0;
|
|
105
|
+
if (input.project && memory.project === input.project) {
|
|
106
|
+
score += 6;
|
|
107
|
+
}
|
|
108
|
+
if (!input.project && !memory.project) {
|
|
109
|
+
score += 1;
|
|
110
|
+
}
|
|
111
|
+
if (memory.category === 'preference') {
|
|
112
|
+
score += 1.5;
|
|
113
|
+
}
|
|
114
|
+
score += Math.min(memory.hit_count, 20) * 0.15;
|
|
115
|
+
if (input.query) {
|
|
116
|
+
const query = input.query.toLowerCase();
|
|
117
|
+
const content = memory.content.toLowerCase();
|
|
118
|
+
const tags = memory.tags.join(' ').toLowerCase();
|
|
119
|
+
const project = memory.project?.toLowerCase() ?? '';
|
|
120
|
+
if (content.includes(query)) {
|
|
121
|
+
score += 8;
|
|
122
|
+
}
|
|
123
|
+
if (tags.includes(query)) {
|
|
124
|
+
score += 5;
|
|
125
|
+
}
|
|
126
|
+
if (project.includes(query)) {
|
|
127
|
+
score += 4;
|
|
128
|
+
}
|
|
129
|
+
score += scoreSimilarity(query, `${content} ${tags} ${project}`) * 10;
|
|
130
|
+
}
|
|
131
|
+
return score;
|
|
132
|
+
}
|
|
133
|
+
function matchesFilters(memory, input) {
|
|
134
|
+
if (input.category && memory.category !== input.category) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
if (input.project !== undefined && normalizeProject(input.project) !== memory.project) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
if (!input.query) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
const haystack = [memory.content, memory.tags.join(' '), memory.project ?? ''].join(' ').toLowerCase();
|
|
144
|
+
const query = input.query.toLowerCase();
|
|
145
|
+
return haystack.includes(query) || scoreSimilarity(query, haystack) >= 0.25;
|
|
146
|
+
}
|
|
147
|
+
export async function rememberMemory(input, memoryFilePath) {
|
|
148
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
149
|
+
const memories = await loadAllMemories(filePath);
|
|
150
|
+
const now = new Date().toISOString();
|
|
151
|
+
const project = normalizeProject(input.project);
|
|
152
|
+
const tags = normalizeTags(input.tags);
|
|
153
|
+
const source = input.source ?? 'agent';
|
|
154
|
+
const dedupeKey = buildDedupeKey({ category: input.category, project });
|
|
155
|
+
const match = memories.find((memory) => {
|
|
156
|
+
return buildDedupeKey(memory) === dedupeKey && scoreSimilarity(memory.content, input.content) >= DEDUPE_THRESHOLD;
|
|
157
|
+
});
|
|
158
|
+
if (match) {
|
|
159
|
+
const merged = {
|
|
160
|
+
...match,
|
|
161
|
+
content: input.content.trim(),
|
|
162
|
+
tags: normalizeTags([...match.tags, ...tags]),
|
|
163
|
+
source,
|
|
164
|
+
updated_at: now,
|
|
165
|
+
};
|
|
166
|
+
const nextMemories = memories.map((memory) => (memory.id === match.id ? merged : memory));
|
|
167
|
+
await saveAllMemories(filePath, nextMemories);
|
|
168
|
+
return { memory: merged, deduped: true };
|
|
169
|
+
}
|
|
170
|
+
const memory = {
|
|
171
|
+
id: generateMemoryId(),
|
|
172
|
+
ts: now,
|
|
173
|
+
category: input.category,
|
|
174
|
+
content: input.content.trim(),
|
|
175
|
+
tags,
|
|
176
|
+
project,
|
|
177
|
+
source,
|
|
178
|
+
hit_count: 0,
|
|
179
|
+
};
|
|
180
|
+
await saveAllMemories(filePath, [memory, ...memories]);
|
|
181
|
+
return { memory, deduped: false };
|
|
182
|
+
}
|
|
183
|
+
export async function recallMemories(input, memoryFilePath) {
|
|
184
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
185
|
+
const memories = await loadAllMemories(filePath);
|
|
186
|
+
const limit = Math.min(Math.max(input.limit ?? DEFAULT_RECALL_LIMIT, 1), MAX_RECALL_LIMIT);
|
|
187
|
+
const selected = memories
|
|
188
|
+
.filter((memory) => matchesFilters(memory, input))
|
|
189
|
+
.sort((left, right) => scoreMemory(right, input) - scoreMemory(left, input) || right.ts.localeCompare(left.ts))
|
|
190
|
+
.slice(0, limit);
|
|
191
|
+
if (selected.length === 0) {
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
const selectedIds = new Set(selected.map((memory) => memory.id));
|
|
195
|
+
const updatedMemories = memories.map((memory) => {
|
|
196
|
+
if (!selectedIds.has(memory.id)) {
|
|
197
|
+
return memory;
|
|
198
|
+
}
|
|
199
|
+
return {
|
|
200
|
+
...memory,
|
|
201
|
+
hit_count: memory.hit_count + 1,
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
await saveAllMemories(filePath, updatedMemories);
|
|
205
|
+
return updatedMemories.filter((memory) => selectedIds.has(memory.id));
|
|
206
|
+
}
|
|
207
|
+
export async function listMemories(input, memoryFilePath) {
|
|
208
|
+
const memories = await loadAllMemories(memoryFilePath);
|
|
209
|
+
const page = Math.max(input.page ?? 1, 1);
|
|
210
|
+
const limit = Math.max(input.limit ?? DEFAULT_PAGE_LIMIT, 1);
|
|
211
|
+
const filtered = memories.filter((memory) => matchesFilters(memory, input));
|
|
212
|
+
const start = (page - 1) * limit;
|
|
213
|
+
return {
|
|
214
|
+
items: filtered.slice(start, start + limit),
|
|
215
|
+
total: filtered.length,
|
|
216
|
+
page,
|
|
217
|
+
limit,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
export async function getMemoryById(id, memoryFilePath) {
|
|
221
|
+
const memories = await loadAllMemories(memoryFilePath);
|
|
222
|
+
return memories.find((memory) => memory.id === id);
|
|
223
|
+
}
|
|
224
|
+
export async function updateMemory(id, input, memoryFilePath) {
|
|
225
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
226
|
+
const memories = await loadAllMemories(filePath);
|
|
227
|
+
const current = memories.find((memory) => memory.id === id);
|
|
228
|
+
if (!current) {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
const updated = {
|
|
232
|
+
...current,
|
|
233
|
+
content: input.content.trim(),
|
|
234
|
+
category: input.category,
|
|
235
|
+
tags: normalizeTags(input.tags),
|
|
236
|
+
project: normalizeProject(input.project),
|
|
237
|
+
source: input.source ?? current.source,
|
|
238
|
+
updated_at: new Date().toISOString(),
|
|
239
|
+
};
|
|
240
|
+
await saveAllMemories(filePath, memories.map((memory) => (memory.id === id ? updated : memory)));
|
|
241
|
+
return updated;
|
|
242
|
+
}
|
|
243
|
+
export async function deleteMemory(id, memoryFilePath) {
|
|
244
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
245
|
+
const memories = await loadAllMemories(filePath);
|
|
246
|
+
const nextMemories = memories.filter((memory) => memory.id !== id);
|
|
247
|
+
if (nextMemories.length === memories.length) {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
await saveAllMemories(filePath, nextMemories);
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
export async function deleteMemories(ids, memoryFilePath) {
|
|
254
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
255
|
+
const memories = await loadAllMemories(filePath);
|
|
256
|
+
const idSet = new Set(ids);
|
|
257
|
+
const nextMemories = memories.filter((memory) => !idSet.has(memory.id));
|
|
258
|
+
await saveAllMemories(filePath, nextMemories);
|
|
259
|
+
return memories.length - nextMemories.length;
|
|
260
|
+
}
|
|
261
|
+
export async function importMemories(items, memoryFilePath) {
|
|
262
|
+
const filePath = resolveMemoryFile(memoryFilePath);
|
|
263
|
+
const existing = await loadAllMemories(filePath);
|
|
264
|
+
const next = [...existing];
|
|
265
|
+
let imported = 0;
|
|
266
|
+
let deduped = 0;
|
|
267
|
+
for (const item of items) {
|
|
268
|
+
const normalized = {
|
|
269
|
+
...item,
|
|
270
|
+
id: item.id || generateMemoryId(),
|
|
271
|
+
ts: item.ts || new Date().toISOString(),
|
|
272
|
+
updated_at: item.updated_at,
|
|
273
|
+
content: item.content.trim(),
|
|
274
|
+
project: normalizeProject(item.project),
|
|
275
|
+
tags: normalizeTags(item.tags),
|
|
276
|
+
source: item.source ?? 'user',
|
|
277
|
+
hit_count: Number.isFinite(item.hit_count) ? item.hit_count : 0,
|
|
278
|
+
};
|
|
279
|
+
const existingIndex = next.findIndex((memory) => memory.id === normalized.id);
|
|
280
|
+
if (existingIndex >= 0) {
|
|
281
|
+
next[existingIndex] = normalized;
|
|
282
|
+
deduped += 1;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
const similarIndex = next.findIndex((memory) => {
|
|
286
|
+
return buildDedupeKey(memory) === buildDedupeKey(normalized) && scoreSimilarity(memory.content, normalized.content) >= DEDUPE_THRESHOLD;
|
|
287
|
+
});
|
|
288
|
+
if (similarIndex >= 0) {
|
|
289
|
+
next[similarIndex] = {
|
|
290
|
+
...next[similarIndex],
|
|
291
|
+
...normalized,
|
|
292
|
+
tags: normalizeTags([...next[similarIndex].tags, ...normalized.tags]),
|
|
293
|
+
};
|
|
294
|
+
deduped += 1;
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
next.push(normalized);
|
|
298
|
+
imported += 1;
|
|
299
|
+
}
|
|
300
|
+
await saveAllMemories(filePath, next);
|
|
301
|
+
return { imported, deduped };
|
|
302
|
+
}
|
|
303
|
+
export async function exportMemories(memoryFilePath) {
|
|
304
|
+
return loadAllMemories(memoryFilePath);
|
|
305
|
+
}
|
|
306
|
+
export async function getMemoryStats(memoryFilePath) {
|
|
307
|
+
const memories = await loadAllMemories(memoryFilePath);
|
|
308
|
+
const byCategory = {
|
|
309
|
+
preference: 0,
|
|
310
|
+
decision: 0,
|
|
311
|
+
pattern: 0,
|
|
312
|
+
lesson: 0,
|
|
313
|
+
context: 0,
|
|
314
|
+
};
|
|
315
|
+
const byProject = {};
|
|
316
|
+
for (const memory of memories) {
|
|
317
|
+
byCategory[memory.category] += 1;
|
|
318
|
+
const key = memory.project ?? '通用';
|
|
319
|
+
byProject[key] = (byProject[key] ?? 0) + 1;
|
|
320
|
+
}
|
|
321
|
+
return {
|
|
322
|
+
total: memories.length,
|
|
323
|
+
byCategory,
|
|
324
|
+
byProject,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
export async function selectMemoriesForInjection(input, memoryFilePath) {
|
|
328
|
+
const memories = await loadAllMemories(memoryFilePath);
|
|
329
|
+
const project = projectFromDirectory(input.directory);
|
|
330
|
+
const limit = Math.max(input.limit ?? DEFAULT_INJECTION_LIMIT, 1);
|
|
331
|
+
const globalPreferences = memories
|
|
332
|
+
.filter((memory) => memory.category === 'preference' && !memory.project)
|
|
333
|
+
.sort((left, right) => right.ts.localeCompare(left.ts));
|
|
334
|
+
const projectPreferences = project
|
|
335
|
+
? memories
|
|
336
|
+
.filter((memory) => memory.project === project && memory.category === 'preference')
|
|
337
|
+
.sort((left, right) => Math.min(right.hit_count, 20) - Math.min(left.hit_count, 20) || right.ts.localeCompare(left.ts))
|
|
338
|
+
: [];
|
|
339
|
+
const projectSpecific = project
|
|
340
|
+
? memories
|
|
341
|
+
.filter((memory) => memory.project === project && memory.category !== 'preference')
|
|
342
|
+
.sort((left, right) => Math.min(right.hit_count, 20) - Math.min(left.hit_count, 20) || right.ts.localeCompare(left.ts))
|
|
343
|
+
: [];
|
|
344
|
+
const globalFallback = memories
|
|
345
|
+
.filter((memory) => !memory.project && memory.category !== 'preference')
|
|
346
|
+
.sort((left, right) => Math.min(right.hit_count, 20) - Math.min(left.hit_count, 20) || right.ts.localeCompare(left.ts));
|
|
347
|
+
const ordered = [...projectPreferences, ...globalPreferences, ...projectSpecific, ...globalFallback];
|
|
348
|
+
const selected = [];
|
|
349
|
+
const seen = new Set();
|
|
350
|
+
for (const memory of ordered) {
|
|
351
|
+
if (selected.length >= limit) {
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
if (seen.has(memory.id)) {
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
seen.add(memory.id);
|
|
358
|
+
selected.push(memory);
|
|
359
|
+
}
|
|
360
|
+
return selected;
|
|
361
|
+
}
|
|
362
|
+
export function formatMemoriesForInjection(memories) {
|
|
363
|
+
if (memories.length === 0) {
|
|
364
|
+
return 'Nomi memory: no stored memories matched this context.';
|
|
365
|
+
}
|
|
366
|
+
const header = 'Nomi long-term memory:';
|
|
367
|
+
const footer = 'Use these memories as durable preferences, decisions, patterns, lessons, and context.';
|
|
368
|
+
const budget = DEFAULT_INJECTION_TOKEN_BUDGET * 4;
|
|
369
|
+
const lines = [];
|
|
370
|
+
let used = header.length + footer.length + 2;
|
|
371
|
+
for (const memory of memories) {
|
|
372
|
+
const project = memory.project ?? '通用';
|
|
373
|
+
const tags = memory.tags.length > 0 ? ` | tags: ${memory.tags.join(', ')}` : '';
|
|
374
|
+
const prefix = `${lines.length + 1}. [${memory.category}] (${project}) `;
|
|
375
|
+
const suffix = tags;
|
|
376
|
+
const remaining = Math.max(budget - used - prefix.length - suffix.length - 1, 0);
|
|
377
|
+
if (remaining <= 0) {
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
const content = memory.content.length > remaining ? `${memory.content.slice(0, Math.max(remaining - 1, 0)).trimEnd()}…` : memory.content;
|
|
381
|
+
const line = `${prefix}${content}${suffix}`;
|
|
382
|
+
lines.push(line);
|
|
383
|
+
used += line.length + 1;
|
|
384
|
+
}
|
|
385
|
+
return [header, ...lines, footer].join('\n');
|
|
386
|
+
}
|
|
387
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/memory/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type MemoryCategory = 'preference' | 'decision' | 'pattern' | 'lesson' | 'context';
|
|
2
|
+
export type MemorySource = 'user' | 'auto' | 'agent';
|
|
3
|
+
export interface Memory {
|
|
4
|
+
id: string;
|
|
5
|
+
ts: string;
|
|
6
|
+
updated_at?: string;
|
|
7
|
+
category: MemoryCategory;
|
|
8
|
+
content: string;
|
|
9
|
+
tags: string[];
|
|
10
|
+
project?: string;
|
|
11
|
+
source: MemorySource;
|
|
12
|
+
hit_count: number;
|
|
13
|
+
}
|
|
14
|
+
export interface RememberMemoryInput {
|
|
15
|
+
category: MemoryCategory;
|
|
16
|
+
content: string;
|
|
17
|
+
tags?: string[];
|
|
18
|
+
project?: string;
|
|
19
|
+
source?: MemorySource;
|
|
20
|
+
}
|
|
21
|
+
export interface RecallMemoryInput {
|
|
22
|
+
query?: string;
|
|
23
|
+
category?: MemoryCategory;
|
|
24
|
+
project?: string;
|
|
25
|
+
limit?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface MemoryListInput extends RecallMemoryInput {
|
|
28
|
+
page?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface MemoryUpsertInput {
|
|
31
|
+
content: string;
|
|
32
|
+
category: MemoryCategory;
|
|
33
|
+
tags?: string[];
|
|
34
|
+
project?: string;
|
|
35
|
+
source?: MemorySource;
|
|
36
|
+
}
|
|
37
|
+
export interface MemoryStats {
|
|
38
|
+
total: number;
|
|
39
|
+
byCategory: Record<MemoryCategory, number>;
|
|
40
|
+
byProject: Record<string, number>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/memory/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AAEb,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAEpD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,cAAc,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/memory/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nomi-memory.d.ts","sourceRoot":"","sources":["../../../src/plugins/nomi-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAoIjD,eAAO,MAAM,gBAAgB,EAAE,MA4E9B,CAAA"}
|