claude-mem-opencode 0.0.2 → 0.1.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/dist/plugin.js CHANGED
@@ -1,18 +1,426 @@
1
- import { ClaudeMemIntegration } from './integration/index.js';
2
- export default async function plugin(input) {
3
- console.log('[CLAUDE_MEM_OPENCODE] Plugin loaded');
4
- const integration = new ClaudeMemIntegration();
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { WorkerClient } from "./integration/worker-client.js";
3
+ import { ProjectNameExtractor } from "./integration/utils/project-name.js";
4
+ import { PrivacyTagStripper } from "./integration/utils/privacy.js";
5
+ import { ConfigLoader } from "./integration/config.js";
6
+ /**
7
+ * OpenCode plugin for claude-mem persistent memory
8
+ * Provides automatic context capture and injection across sessions
9
+ */
10
+ export const ClaudeMemPlugin = async (ctx) => {
11
+ const { directory, client, project } = ctx;
12
+ // Load configuration from multiple sources
13
+ const configLoader = new ConfigLoader(directory);
14
+ const { config, errors, warnings, sources } = await configLoader.load();
15
+ // Log configuration warnings and errors
16
+ if (warnings.length > 0) {
17
+ warnings.forEach(warning => console.warn(`[CLAUDE_MEM] ⚠️ ${warning}`));
18
+ }
19
+ if (errors.length > 0) {
20
+ errors.forEach(error => console.error(`[CLAUDE_MEM] ❌ ${error}`));
21
+ // If config has errors, fail hard
22
+ throw new Error(`Configuration errors: ${errors.join(', ')}`);
23
+ }
24
+ // Log configuration source
25
+ console.log(`[CLAUDE_MEM] Configuration loaded from: ${sources.join(' → ')}`);
26
+ const projectNameExtractor = new ProjectNameExtractor();
27
+ const projectName = projectNameExtractor.extract(directory) || 'unknown';
28
+ const privacyStripper = new PrivacyTagStripper();
29
+ // Session state management
30
+ const sessionStates = new Map();
31
+ console.log('[CLAUDE_MEM] Initializing plugin...');
32
+ console.log(`[CLAUDE_MEM] Project: ${projectName}`);
33
+ console.log(`[CLAUDE_MEM] Worker port: ${config.workerPort}`);
34
+ console.log(`[CLAUDE_MEM] Debug: ${config.debug}`);
35
+ // Initialize worker client
36
+ const workerClient = new WorkerClient(config.workerPort);
37
+ // Fail hard: Worker must be available
5
38
  try {
6
- await integration.initialize();
7
- console.log('[CLAUDE_MEM_OPENCODE] Integration initialized');
39
+ console.log('[CLAUDE_MEM] Checking worker availability...');
40
+ const workerReady = await workerClient.healthCheck();
41
+ if (!workerReady) {
42
+ throw new Error('claude-mem worker is not running. Start it with: claude-mem worker start');
43
+ }
44
+ console.log('[CLAUDE_MEM] ✅ Worker connected - plugin active');
8
45
  }
9
46
  catch (error) {
10
- console.error('[CLAUDE_MEM_OPENCODE] Initialization failed:', error);
47
+ const errorMsg = error instanceof Error ? error.message : String(error);
48
+ console.error('[CLAUDE_MEM] ❌ Worker initialization failed:', errorMsg);
49
+ // Fail hard: Show toast notification and disable plugin
50
+ try {
51
+ await client.tui.showToast({
52
+ body: {
53
+ title: "claude-mem Plugin Disabled",
54
+ message: errorMsg,
55
+ variant: "error",
56
+ duration: 10000
57
+ }
58
+ });
59
+ }
60
+ catch (toastError) {
61
+ console.error('[CLAUDE_MEM] Failed to show toast:', toastError);
62
+ }
63
+ // Return empty hooks object to disable plugin
64
+ return {};
11
65
  }
12
66
  return {
13
- event: async ({ event }) => {
14
- // Event handling done internally by EventListeners
67
+ /**
68
+ * Event hook - Handle session lifecycle
69
+ * Handles session creation and completion
70
+ */
71
+ event: async (input) => {
72
+ if (!config.enabled)
73
+ return;
74
+ try {
75
+ switch (input.event.type) {
76
+ case 'session.created':
77
+ await handleSessionCreated(input.event, sessionStates, workerClient, projectName, privacyStripper);
78
+ break;
79
+ case 'session.updated':
80
+ await handleSessionUpdated(input.event, sessionStates, workerClient);
81
+ break;
82
+ }
83
+ }
84
+ catch (error) {
85
+ console.error('[CLAUDE_MEM] Event handler error:', error);
86
+ }
87
+ },
88
+ /**
89
+ * Chat message hook - Inject context on first message
90
+ * Similar to supermemory's context injection pattern
91
+ */
92
+ 'chat.message': async (input, output) => {
93
+ if (!config.enabled || !config.autoInjectContext)
94
+ return;
95
+ const state = sessionStates.get(input.sessionID);
96
+ // Skip if no state, already injected, or private session
97
+ if (!state || state.contextInjected || state.isPrivate) {
98
+ return;
99
+ }
100
+ try {
101
+ console.log(`[CLAUDE_MEM] Injecting context for session ${input.sessionID}`);
102
+ // Fetch relevant memories for this project
103
+ const response = await workerClient.search('', {
104
+ limit: config.maxContextMemories,
105
+ project: projectName
106
+ });
107
+ if (!response.success || !response.results || response.results.length === 0) {
108
+ console.log('[CLAUDE_MEM] No relevant memories found');
109
+ state.contextInjected = true;
110
+ return;
111
+ }
112
+ // Format context for injection
113
+ const contextText = formatContextForPrompt(response.results, projectName);
114
+ // Create synthetic part for context injection
115
+ const contextPart = {
116
+ id: `claude-mem-context-${Date.now()}`,
117
+ sessionID: input.sessionID,
118
+ messageID: output.message.id,
119
+ type: "text",
120
+ text: contextText,
121
+ synthetic: true,
122
+ };
123
+ // Unshift to inject at beginning (before user message)
124
+ output.parts.unshift(contextPart);
125
+ state.contextInjected = true;
126
+ console.log(`[CLAUDE_MEM] ✅ Context injected (${contextText.length} chars)`);
127
+ }
128
+ catch (error) {
129
+ console.error('[CLAUDE_MEM] Context injection failed:', error);
130
+ // Mark as injected to avoid retries
131
+ state.contextInjected = true;
132
+ }
133
+ },
134
+ /**
135
+ * Tool execution hook - Capture tool usage
136
+ * Runs after tool execution completes
137
+ */
138
+ 'tool.execute.after': async (input, output) => {
139
+ if (!config.enabled)
140
+ return;
141
+ const state = sessionStates.get(input.sessionID);
142
+ // Skip if no claude-mem session, private session, or tool execution failed
143
+ if (!state || !state.claudeMemSessionId || state.isPrivate) {
144
+ return;
145
+ }
146
+ try {
147
+ console.log(`[CLAUDE_MEM] Capturing tool: ${input.tool}`);
148
+ // Strip private tags from tool input and output
149
+ const cleanedInput = privacyStripper.stripFromJson(input.tool);
150
+ const cleanedOutput = privacyStripper.stripFromText(output.output);
151
+ // Add observation to claude-mem
152
+ await workerClient.addObservation({
153
+ sessionDbId: state.claudeMemSessionId,
154
+ promptNumber: state.promptNumber,
155
+ toolName: input.tool,
156
+ toolInput: cleanedInput,
157
+ toolOutput: cleanedOutput,
158
+ cwd: directory,
159
+ timestamp: Date.now()
160
+ });
161
+ console.log(`[CLAUDE_MEM] ✅ Observation added: ${input.tool}`);
162
+ }
163
+ catch (error) {
164
+ console.error('[CLAUDE_MEM] Failed to capture tool usage:', error);
165
+ }
166
+ },
167
+ /**
168
+ * Tool hook - Expose claude-mem as a searchable tool
169
+ * Allows manual memory operations
170
+ */
171
+ tool: {
172
+ 'claude-mem': tool({
173
+ description: "Search and manage persistent memory from claude-mem. Use to find relevant context from past coding sessions, patterns, error solutions, and project knowledge.",
174
+ args: {
175
+ mode: tool.schema
176
+ .enum(['search', 'status', 'list'])
177
+ .optional()
178
+ .describe('Operation mode: search memories, check worker status, or list recent memories'),
179
+ query: tool.schema
180
+ .string()
181
+ .optional()
182
+ .describe('Search query for semantic memory search (e.g., "authentication bug fix")'),
183
+ limit: tool.schema
184
+ .number()
185
+ .optional()
186
+ .describe('Maximum number of results to return (default: 10)'),
187
+ type: tool.schema
188
+ .enum(['all', 'code', 'file', 'web', 'bash'])
189
+ .optional()
190
+ .describe('Filter memories by type'),
191
+ project: tool.schema
192
+ .string()
193
+ .optional()
194
+ .describe('Project name to search (default: current project)')
195
+ },
196
+ async execute(args, toolCtx) {
197
+ try {
198
+ const state = sessionStates.get(toolCtx.sessionID);
199
+ if (!state || !state.claudeMemSessionId) {
200
+ return JSON.stringify({
201
+ success: false,
202
+ error: 'No active claude-mem session for this OpenCode session'
203
+ });
204
+ }
205
+ switch (args.mode || 'search') {
206
+ case 'search': {
207
+ if (!args.query) {
208
+ return JSON.stringify({
209
+ success: false,
210
+ error: 'Query parameter is required for search mode'
211
+ });
212
+ }
213
+ console.log(`[CLAUDE_MEM] Searching: ${args.query}`);
214
+ const response = await workerClient.search(args.query, {
215
+ limit: args.limit || 10,
216
+ type: args.type,
217
+ project: args.project || projectName
218
+ });
219
+ if (!response.success) {
220
+ return JSON.stringify({
221
+ success: false,
222
+ error: response.error || 'Search failed'
223
+ });
224
+ }
225
+ return JSON.stringify({
226
+ success: true,
227
+ mode: 'search',
228
+ query: args.query,
229
+ project: args.project || projectName,
230
+ count: response.results?.length || 0,
231
+ results: response.results?.map((r) => ({
232
+ id: r.id,
233
+ type: r.type,
234
+ content: r.content || r.summary,
235
+ timestamp: r.created_at,
236
+ similarity: r.similarity ? Math.round(r.similarity * 100) : null
237
+ }))
238
+ });
239
+ }
240
+ case 'status': {
241
+ const healthCheck = await workerClient.healthCheck();
242
+ return JSON.stringify({
243
+ success: true,
244
+ mode: 'status',
245
+ worker: {
246
+ connected: healthCheck,
247
+ port: config.workerPort
248
+ },
249
+ session: {
250
+ id: toolCtx.sessionID,
251
+ claudeMemId: state.claudeMemSessionId,
252
+ project: state.projectName,
253
+ contextInjected: state.contextInjected
254
+ }
255
+ });
256
+ }
257
+ case 'list': {
258
+ const response = await workerClient.search('', {
259
+ limit: args.limit || 20,
260
+ project: args.project || projectName
261
+ });
262
+ if (!response.success) {
263
+ return JSON.stringify({
264
+ success: false,
265
+ error: response.error || 'List failed'
266
+ });
267
+ }
268
+ return JSON.stringify({
269
+ success: true,
270
+ mode: 'list',
271
+ project: args.project || projectName,
272
+ count: response.results?.length || 0,
273
+ memories: response.results?.map((r) => ({
274
+ id: r.id,
275
+ type: r.type,
276
+ summary: r.summary,
277
+ created_at: r.created_at
278
+ }))
279
+ });
280
+ }
281
+ default: {
282
+ return JSON.stringify({
283
+ success: false,
284
+ error: `Unknown mode: ${args.mode}. Valid modes: search, status, list`
285
+ });
286
+ }
287
+ }
288
+ }
289
+ catch (error) {
290
+ const errorMsg = error instanceof Error ? error.message : String(error);
291
+ console.error('[CLAUDE_MEM] Tool execution error:', errorMsg);
292
+ return JSON.stringify({
293
+ success: false,
294
+ error: errorMsg
295
+ });
296
+ }
297
+ }
298
+ })
15
299
  }
16
300
  };
301
+ };
302
+ /**
303
+ * Handle session creation event
304
+ * Initialize claude-mem session and track mapping
305
+ */
306
+ async function handleSessionCreated(event, sessionStates, workerClient, projectName, privacyStripper) {
307
+ const { info } = event.properties;
308
+ const sessionId = info.id;
309
+ const title = info.title || 'New session';
310
+ // Check for private session indicators
311
+ const isPrivate = isSessionPrivate(info, privacyStripper);
312
+ if (isPrivate) {
313
+ console.log(`[CLAUDE_MEM] Skipping private session: ${sessionId}`);
314
+ sessionStates.set(sessionId, {
315
+ sessionId,
316
+ claudeMemSessionId: null,
317
+ contextInjected: true,
318
+ isPrivate: true,
319
+ projectName,
320
+ promptNumber: 1
321
+ });
322
+ return;
323
+ }
324
+ try {
325
+ // Initialize claude-mem session
326
+ const response = await workerClient.initSession({
327
+ contentSessionId: sessionId,
328
+ project: projectName,
329
+ prompt: title
330
+ });
331
+ if (response.skipped) {
332
+ console.log(`[CLAUDE_MEM] Session marked as private: ${sessionId}`);
333
+ console.log(`[CLAUDE_MEM] Reason: ${response.reason}`);
334
+ sessionStates.set(sessionId, {
335
+ sessionId,
336
+ claudeMemSessionId: null,
337
+ contextInjected: true,
338
+ isPrivate: true,
339
+ projectName,
340
+ promptNumber: 1
341
+ });
342
+ return;
343
+ }
344
+ // Track session mapping
345
+ sessionStates.set(sessionId, {
346
+ sessionId,
347
+ claudeMemSessionId: response.sessionDbId,
348
+ contextInjected: false,
349
+ isPrivate: false,
350
+ projectName,
351
+ promptNumber: response.promptNumber || 1
352
+ });
353
+ console.log(`[CLAUDE_MEM] Session ${sessionId} → ${response.sessionDbId}`);
354
+ }
355
+ catch (error) {
356
+ console.error(`[CLAUDE_MEM] Failed to initialize session ${sessionId}:`, error);
357
+ }
358
+ }
359
+ /**
360
+ * Handle session updated event
361
+ * Complete claude-mem session when archived
362
+ */
363
+ async function handleSessionUpdated(event, sessionStates, workerClient) {
364
+ const { info } = event.properties;
365
+ const sessionId = info.id;
366
+ // Only complete on archive
367
+ if (!info.time?.archived) {
368
+ return;
369
+ }
370
+ const state = sessionStates.get(sessionId);
371
+ if (!state || !state.claudeMemSessionId || state.isPrivate) {
372
+ return;
373
+ }
374
+ try {
375
+ console.log(`[CLAUDE_MEM] Completing session: ${sessionId}`);
376
+ await workerClient.completeSession(state.claudeMemSessionId);
377
+ console.log(`[CLAUDE_MEM] ✅ Session completed: ${state.claudeMemSessionId}`);
378
+ // Clean up state
379
+ sessionStates.delete(sessionId);
380
+ }
381
+ catch (error) {
382
+ console.error(`[CLAUDE_MEM] Failed to complete session ${sessionId}:`, error);
383
+ }
384
+ }
385
+ /**
386
+ * Check if session should be treated as private
387
+ */
388
+ function isSessionPrivate(sessionInfo, privacyStripper) {
389
+ const title = (sessionInfo.title || '').toLowerCase();
390
+ // Check title for private keywords
391
+ const privateKeywords = ['private', 'secret', 'confidential', 'test', 'tmp'];
392
+ const hasPrivateKeyword = privateKeywords.some(keyword => title.includes(keyword));
393
+ if (hasPrivateKeyword) {
394
+ return true;
395
+ }
396
+ // Check for private tags in message/prompt
397
+ if (sessionInfo.message || sessionInfo.prompt) {
398
+ const content = sessionInfo.message || sessionInfo.prompt;
399
+ const hasPrivacyTags = privacyStripper.hasPrivacyTags(content);
400
+ if (hasPrivacyTags) {
401
+ return true;
402
+ }
403
+ }
404
+ return false;
405
+ }
406
+ /**
407
+ * Format memories for prompt injection
408
+ */
409
+ function formatContextForPrompt(memories, projectName) {
410
+ if (memories.length === 0) {
411
+ return '';
412
+ }
413
+ const parts = [];
414
+ parts.push('[CLAUDE-MEM]');
415
+ parts.push(`\nProject: ${projectName}`);
416
+ parts.push(`\nRelevant Memories (${memories.length}):`);
417
+ memories.forEach((mem, index) => {
418
+ const similarity = mem.similarity ? Math.round(mem.similarity * 100) : null;
419
+ const type = mem.type || 'observation';
420
+ const content = mem.content || mem.summary || '';
421
+ parts.push(`\n${index + 1}. [${type}] ${similarity ? `${similarity}% match` : ''}`);
422
+ parts.push(` ${content.substring(0, 200)}${content.length > 200 ? '...' : ''}`);
423
+ });
424
+ return parts.join('\n');
17
425
  }
18
426
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAAC,KAOpC;IACC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAElD,MAAM,WAAW,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAE9C,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAkB,EAAE,EAAE;YACzC,mDAAmD;QACrD,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,14 @@
1
1
  {
2
2
  "name": "claude-mem-opencode",
3
- "version": "0.0.2",
3
+ "version": "0.1.1",
4
4
  "description": "OpenCode integration for claude-mem persistent memory",
5
+ "type": "module",
5
6
  "main": "./dist/bundle/index.js",
6
7
  "types": "./dist/bundle/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
- "import": "./dist/bundle/index.js",
10
- "types": "./dist/bundle/index.d.ts"
11
- },
12
- "./bundle": {
13
- "import": "./dist/bundle/opencode-mem.js"
10
+ "import": "./dist/plugin.js",
11
+ "types": "./dist/plugin.d.ts"
14
12
  },
15
13
  "./plugin": {
16
14
  "import": "./dist/plugin.js",
@@ -28,10 +26,11 @@
28
26
  },
29
27
  "dependencies": {
30
28
  "@opencode-ai/sdk": "^1.0.223",
29
+ "@opencode-ai/plugin": "^1.0.162",
31
30
  "open": "^8.4.2"
32
31
  },
33
32
  "devDependencies": {
34
- "@types/node": "^20.10.0",
33
+ "@types/node": "^22.10.0",
35
34
  "bun-types": "^1.0.0",
36
35
  "typescript": "^5.3.0"
37
36
  },
@@ -69,6 +68,6 @@
69
68
  "ai",
70
69
  "integration"
71
70
  ],
72
- "author": "Your Name",
71
+ "author": "mc303",
73
72
  "license": "MIT"
74
73
  }