opencode-mem 2.5.0 → 2.6.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/README.md CHANGED
@@ -52,6 +52,8 @@ Configure at `~/.config/opencode/opencode-mem.jsonc`:
52
52
  ```jsonc
53
53
  {
54
54
  "storagePath": "~/.opencode-mem/data",
55
+ "userEmailOverride": "user@example.com",
56
+ "userNameOverride": "John Doe",
55
57
  "embeddingModel": "Xenova/nomic-embed-text-v1",
56
58
  "webServerEnabled": true,
57
59
  "webServerPort": 4747,
package/dist/config.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export declare const CONFIG: {
2
2
  storagePath: string;
3
3
  customSqlitePath: string | undefined;
4
+ userEmailOverride: string | undefined;
5
+ userNameOverride: string | undefined;
4
6
  embeddingModel: string;
5
7
  embeddingDimensions: number;
6
8
  embeddingApiUrl: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAuXA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;oBAyBb,aAAa,GACb,kBAAkB,GAClB,WAAW;;;;;;;;;;;;;;;;;;;;;;CA4BhB,CAAC;AAEF,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgYA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;oBA2Bb,aAAa,GACb,kBAAkB,GAClB,WAAW;;;;;;;;;;;;;;;;;;;;;;CA4BhB,CAAC;AAEF,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
package/dist/config.js CHANGED
@@ -76,6 +76,9 @@ const CONFIG_TEMPLATE = `{
76
76
 
77
77
  // Storage location for vector database
78
78
  "storagePath": "~/.opencode-mem/data",
79
+
80
+ "userEmailOverride": "",
81
+ "userNameOverride": "",
79
82
 
80
83
  // ============================================
81
84
  // macOS SQLite Extension Loading (REQUIRED FOR macOS)
@@ -306,6 +309,8 @@ export const CONFIG = {
306
309
  customSqlitePath: fileConfig.customSqlitePath
307
310
  ? expandPath(fileConfig.customSqlitePath)
308
311
  : undefined,
312
+ userEmailOverride: fileConfig.userEmailOverride,
313
+ userNameOverride: fileConfig.userNameOverride,
309
314
  embeddingModel: fileConfig.embeddingModel ?? DEFAULTS.embeddingModel,
310
315
  embeddingDimensions: fileConfig.embeddingDimensions ??
311
316
  getEmbeddingDimensions(fileConfig.embeddingModel ?? DEFAULTS.embeddingModel),
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAiB/D,eAAO,MAAM,iBAAiB,EAAE,MA6c/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAkB/D,eAAO,MAAM,iBAAiB,EAAE,MAiU/B,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ import { userPromptManager } from "./services/user-prompt/user-prompt-manager.js
9
9
  import { startWebServer, WebServer } from "./services/web-server.js";
10
10
  import { isConfigured, CONFIG } from "./config.js";
11
11
  import { log } from "./services/logger.js";
12
+ import { getLanguageName } from "./services/language-detector.js";
12
13
  export const OpenCodeMemPlugin = async (ctx) => {
13
14
  const { directory } = ctx;
14
15
  const tags = getTags(directory);
@@ -164,11 +165,12 @@ export const OpenCodeMemPlugin = async (ctx) => {
164
165
  },
165
166
  tool: {
166
167
  memory: tool({
167
- description: "Manage and query local persistent memory. Use 'search' to find relevant memories, 'add' to store new knowledge (MATCH USER LANGUAGE), 'profile' to view user preferences, 'list' to see recent memories, 'forget' to remove a memory.",
168
+ description: `Manage and query project memory (MATCH USER LANGUAGE: ${getLanguageName(CONFIG.autoCaptureLanguage || "en")}). Use 'search' with technical keywords/tags, 'add' to store knowledge, 'profile' for preferences.`,
168
169
  args: {
169
170
  mode: tool.schema.enum(["add", "search", "profile", "list", "forget", "help"]).optional(),
170
171
  content: tool.schema.string().optional(),
171
172
  query: tool.schema.string().optional(),
173
+ tags: tool.schema.string().optional(),
172
174
  type: tool.schema.string().optional(),
173
175
  memoryId: tool.schema.string().optional(),
174
176
  limit: tool.schema.number().optional(),
@@ -182,66 +184,46 @@ export const OpenCodeMemPlugin = async (ctx) => {
182
184
  }
183
185
  const needsWarmup = !(await memoryClient.isReady());
184
186
  if (needsWarmup) {
185
- return JSON.stringify({
186
- success: false,
187
- error: "Memory system is initializing. Please wait a moment and try again.",
188
- });
187
+ return JSON.stringify({ success: false, error: "Memory system is initializing." });
189
188
  }
190
189
  const mode = args.mode || "help";
190
+ const langName = getLanguageName(CONFIG.autoCaptureLanguage || "en");
191
191
  try {
192
192
  switch (mode) {
193
- case "help": {
193
+ case "help":
194
194
  return JSON.stringify({
195
195
  success: true,
196
196
  message: "Memory System Usage Guide",
197
197
  commands: [
198
198
  {
199
199
  command: "add",
200
- description: "Store a new project memory (MATCH USER LANGUAGE)",
201
- args: ["content", "type?"],
200
+ description: `Store new memory (MATCH USER LANGUAGE: ${langName})`,
201
+ args: ["content", "type?", "tags?"],
202
202
  },
203
203
  {
204
204
  command: "search",
205
- description: "Search project memories (MATCH USER LANGUAGE)",
205
+ description: `Search memories via keywords (MATCH USER LANGUAGE: ${langName})`,
206
206
  args: ["query"],
207
207
  },
208
- {
209
- command: "profile",
210
- description: "View user profile (preferences, patterns, workflows)",
211
- args: [],
212
- },
213
- {
214
- command: "list",
215
- description: "List recent project memories",
216
- args: ["limit?"],
217
- },
218
- {
219
- command: "forget",
220
- description: "Remove a project memory",
221
- args: ["memoryId"],
222
- },
208
+ { command: "profile", description: "View user profile", args: [] },
209
+ { command: "list", description: "List recent memories", args: ["limit?"] },
210
+ { command: "forget", description: "Remove memory", args: ["memoryId"] },
223
211
  ],
224
- note: "User preferences are automatically learned through the user profile system. Only project-specific memories can be added manually.",
225
- typeGuidance: "Choose appropriate type: preference, architecture, workflow, bug-fix, configuration, pattern, request, context, etc. Be specific and descriptive with categories.",
212
+ tagGuidance: "Use technical keywords for search. Tags rank highest.",
226
213
  });
227
- }
228
- case "add": {
229
- if (!args.content) {
230
- return JSON.stringify({
231
- success: false,
232
- error: "content parameter is required for add mode",
233
- });
234
- }
214
+ case "add":
215
+ if (!args.content)
216
+ return JSON.stringify({ success: false, error: "content required" });
235
217
  const sanitizedContent = stripPrivateContent(args.content);
236
- if (isFullyPrivate(args.content)) {
237
- return JSON.stringify({
238
- success: false,
239
- error: "Cannot store fully private content",
240
- });
241
- }
218
+ if (isFullyPrivate(args.content))
219
+ return JSON.stringify({ success: false, error: "Private content blocked" });
242
220
  const tagInfo = tags.project;
221
+ const parsedTags = args.tags
222
+ ? args.tags.split(",").map((t) => t.trim())
223
+ : undefined;
243
224
  const result = await memoryClient.addMemory(sanitizedContent, tagInfo.tag, {
244
225
  type: args.type,
226
+ tags: parsedTags,
245
227
  displayName: tagInfo.displayName,
246
228
  userName: tagInfo.userName,
247
229
  userEmail: tagInfo.userEmail,
@@ -249,162 +231,73 @@ export const OpenCodeMemPlugin = async (ctx) => {
249
231
  projectName: tagInfo.projectName,
250
232
  gitRepoUrl: tagInfo.gitRepoUrl,
251
233
  });
252
- if (!result.success) {
253
- return JSON.stringify({
254
- success: false,
255
- error: result.error || "Failed to add memory",
256
- });
257
- }
258
234
  return JSON.stringify({
259
- success: true,
260
- message: `Memory added to project`,
235
+ success: result.success,
236
+ message: `Memory added`,
261
237
  id: result.id,
262
- type: args.type,
238
+ tags: parsedTags,
263
239
  });
264
- }
265
- case "search": {
266
- if (!args.query) {
267
- return JSON.stringify({
268
- success: false,
269
- error: "query parameter is required for search mode",
270
- });
271
- }
272
- const result = await memoryClient.searchMemories(args.query, tags.project.tag);
273
- if (!result.success) {
274
- return JSON.stringify({
275
- success: false,
276
- error: result.error || "Failed to search memories",
277
- });
278
- }
279
- return formatSearchResults(args.query, result, args.limit);
280
- }
281
- case "profile": {
240
+ case "search":
241
+ if (!args.query)
242
+ return JSON.stringify({ success: false, error: "query required" });
243
+ const searchRes = await memoryClient.searchMemories(args.query, tags.project.tag);
244
+ if (!searchRes.success)
245
+ return JSON.stringify({ success: false, error: searchRes.error });
246
+ return formatSearchResults(args.query, searchRes, args.limit);
247
+ case "profile":
282
248
  const { userProfileManager } = await import("./services/user-profile/user-profile-manager.js");
283
- const userId = tags.user.userEmail || "unknown";
284
- const profile = userProfileManager.getActiveProfile(userId);
285
- if (!profile) {
286
- return JSON.stringify({
287
- success: true,
288
- profile: null,
289
- message: "No user profile found",
290
- });
291
- }
292
- const profileData = JSON.parse(profile.profileData);
249
+ const profile = userProfileManager.getActiveProfile(tags.user.userEmail || "unknown");
250
+ if (!profile)
251
+ return JSON.stringify({ success: true, profile: null });
252
+ const pData = JSON.parse(profile.profileData);
293
253
  return JSON.stringify({
294
254
  success: true,
295
255
  profile: {
296
- preferences: profileData.preferences,
297
- patterns: profileData.patterns,
298
- workflows: profileData.workflows,
299
- skillLevel: profileData.skillLevel,
256
+ ...pData,
300
257
  version: profile.version,
301
258
  lastAnalyzed: profile.lastAnalyzedAt,
302
- totalPromptsAnalyzed: profile.totalPromptsAnalyzed,
303
259
  },
304
260
  });
305
- }
306
- case "list": {
307
- const limit = args.limit || 20;
308
- const result = await memoryClient.listMemories(tags.project.tag, limit);
309
- if (!result.success) {
310
- return JSON.stringify({
311
- success: false,
312
- error: result.error || "Failed to list memories",
313
- });
314
- }
315
- const memories = result.memories || [];
261
+ case "list":
262
+ const listRes = await memoryClient.listMemories(tags.project.tag, args.limit || 20);
263
+ if (!listRes.success)
264
+ return JSON.stringify({ success: false, error: listRes.error });
316
265
  return JSON.stringify({
317
266
  success: true,
318
- count: memories.length,
319
- memories: memories.map((m) => ({
267
+ count: listRes.memories?.length,
268
+ memories: listRes.memories?.map((m) => ({
320
269
  id: m.id,
321
270
  content: m.summary,
322
271
  createdAt: m.createdAt,
323
- metadata: m.metadata,
324
272
  })),
325
273
  });
326
- }
327
- case "forget": {
328
- if (!args.memoryId) {
329
- return JSON.stringify({
330
- success: false,
331
- error: "memoryId parameter is required for forget mode",
332
- });
333
- }
334
- const result = await memoryClient.deleteMemory(args.memoryId);
335
- if (!result.success) {
336
- return JSON.stringify({
337
- success: false,
338
- error: result.error || "Failed to delete memory",
339
- });
340
- }
341
- return JSON.stringify({
342
- success: true,
343
- message: `Memory ${args.memoryId} removed`,
344
- });
345
- }
274
+ case "forget":
275
+ if (!args.memoryId)
276
+ return JSON.stringify({ success: false, error: "memoryId required" });
277
+ const delRes = await memoryClient.deleteMemory(args.memoryId);
278
+ return JSON.stringify({ success: delRes.success, message: `Memory removed` });
346
279
  default:
347
- return JSON.stringify({
348
- success: false,
349
- error: `Unknown mode: ${mode}`,
350
- });
280
+ return JSON.stringify({ success: false, error: `Unknown mode: ${mode}` });
351
281
  }
352
282
  }
353
283
  catch (error) {
354
- return JSON.stringify({
355
- success: false,
356
- error: error instanceof Error ? error.message : String(error),
357
- });
284
+ return JSON.stringify({ success: false, error: String(error) });
358
285
  }
359
286
  },
360
287
  }),
361
288
  },
362
289
  event: async (input) => {
363
290
  const event = input.event;
364
- const props = event.properties;
365
291
  if (event.type === "session.idle") {
366
292
  if (!isConfigured())
367
293
  return;
368
- const sessionID = props?.sessionID;
369
- if (sessionID) {
294
+ const sessionID = event.properties?.sessionID;
295
+ if (sessionID)
370
296
  await performAutoCapture(ctx, sessionID, directory);
371
- }
372
297
  await performUserProfileLearning(ctx, directory);
373
298
  const { cleanupService } = await import("./services/cleanup-service.js");
374
- const shouldRun = await cleanupService.shouldRunCleanup();
375
- if (!shouldRun)
376
- return;
377
- cleanupService
378
- .runCleanup()
379
- .then((result) => {
380
- if (result.deletedCount > 0 && ctx.client?.tui) {
381
- ctx.client.tui
382
- .showToast({
383
- body: {
384
- title: "Memory Cleanup",
385
- message: `Deleted ${result.deletedCount} old memories (user: ${result.userCount}, project: ${result.projectCount})`,
386
- variant: "info",
387
- duration: 5000,
388
- },
389
- })
390
- .catch(() => { });
391
- }
392
- })
393
- .catch((err) => {
394
- log("Auto-cleanup failed", { error: String(err) });
395
- if (ctx.client?.tui && CONFIG.showErrorToasts) {
396
- ctx.client.tui
397
- .showToast({
398
- body: {
399
- title: "Memory Cleanup Error",
400
- message: String(err),
401
- variant: "error",
402
- duration: 5000,
403
- },
404
- })
405
- .catch(() => { });
406
- }
407
- });
299
+ if (await cleanupService.shouldRunCleanup())
300
+ await cleanupService.runCleanup();
408
301
  }
409
302
  },
410
303
  };
@@ -8,6 +8,7 @@ interface Memory {
8
8
  id: string;
9
9
  content: string;
10
10
  type?: string;
11
+ tags?: string[];
11
12
  createdAt: string;
12
13
  updatedAt?: string;
13
14
  metadata?: Record<string, unknown>;
@@ -21,6 +22,7 @@ interface Memory {
21
22
  }
22
23
  interface TagInfo {
23
24
  tag: string;
25
+ tags?: string[];
24
26
  displayName?: string;
25
27
  userName?: string;
26
28
  userEmail?: string;
@@ -43,6 +45,7 @@ export declare function handleAddMemory(data: {
43
45
  content: string;
44
46
  containerTag: string;
45
47
  type?: MemoryType;
48
+ tags?: string[];
46
49
  displayName?: string;
47
50
  userName?: string;
48
51
  userEmail?: string;
@@ -61,6 +64,7 @@ export declare function handleBulkDelete(ids: string[], cascade?: boolean): Prom
61
64
  export declare function handleUpdateMemory(id: string, data: {
62
65
  content?: string;
63
66
  type?: MemoryType;
67
+ tags?: string[];
64
68
  }): Promise<ApiResponse<void>>;
65
69
  interface FormattedPrompt {
66
70
  type: "prompt";
@@ -78,6 +82,7 @@ interface FormattedMemory {
78
82
  id: string;
79
83
  content: string;
80
84
  memoryType?: string;
85
+ tags?: string[];
81
86
  createdAt: string;
82
87
  updatedAt?: string;
83
88
  similarity?: number;
@@ -137,5 +142,14 @@ export declare function handleGetUserProfile(userId?: string): Promise<ApiRespon
137
142
  export declare function handleGetProfileChangelog(profileId: string, limit?: number): Promise<ApiResponse<any[]>>;
138
143
  export declare function handleGetProfileSnapshot(changelogId: string): Promise<ApiResponse<any>>;
139
144
  export declare function handleRefreshProfile(userId?: string): Promise<ApiResponse<any>>;
145
+ export declare function handleDetectTagMigration(): Promise<ApiResponse<{
146
+ needsMigration: boolean;
147
+ count: number;
148
+ }>>;
149
+ export declare function handleRunTagMigration(): Promise<ApiResponse<{
150
+ success: boolean;
151
+ processed: number;
152
+ duration: number;
153
+ }>>;
140
154
  export {};
141
155
  //# sourceMappingURL=api-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-handlers.d.ts","sourceRoot":"","sources":["../../src/services/api-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-handlers.d.ts","sourceRoot":"","sources":["../../src/services/api-handlers.ts"],"names":[],"mappings":"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"}