mnueron 0.3.0 → 0.4.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/dist/tools.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { importClaudeExport } from './import/claude.js';
2
2
  import { importOpenAIExport } from './import/openai.js';
3
+ import { probeClaudeCowork, importFromCoworkSession } from './import/claude_cowork.js';
3
4
  // Sentinel registry for callers that don't pass one (CLI commands, tests).
4
5
  const EMPTY_REGISTRY = {
5
6
  processors: [],
@@ -176,6 +177,18 @@ export const TOOL_DEFINITIONS = [
176
177
  required: ['path'],
177
178
  },
178
179
  },
180
+ {
181
+ name: 'memory_import_cowork',
182
+ description: 'Import every Claude Cowork (desktop "local agent") session transcript on this machine into memory. Probes platform-specific roots (~/.claude/projects, %APPDATA%\\Claude\\local-agent-mode-sessions, and the Microsoft Store Packages location), recursively finds Cowork JSONL transcripts, and saves each session as one memory (the chunker splits per-turn). Idempotent: re-running upserts by source_ref="cowork:<sessionId>". Use this when the user says "import my cowork chats" / "remember context from my past sessions" / similar.',
183
+ inputSchema: {
184
+ type: 'object',
185
+ properties: {
186
+ namespace: { type: 'string', description: 'Target namespace (default "claude-cowork").' },
187
+ limit: { type: 'number', description: 'Cap the number of sessions imported in this call (default unlimited).' },
188
+ probe_only: { type: 'boolean', description: 'If true, return what would be imported but do not save.' },
189
+ },
190
+ },
191
+ },
179
192
  ];
180
193
  export async function handleToolCall(provider, defaultNamespace, name, args, registry = EMPTY_REGISTRY) {
181
194
  switch (name) {
@@ -296,6 +309,77 @@ export async function handleToolCall(provider, defaultNamespace, name, args, reg
296
309
  const result = await provider.bulkSave(filtered);
297
310
  return { ...result, namespace: ns, format, dropped_by_plugin: droppedByPlugin };
298
311
  }
312
+ case 'memory_import_cowork': {
313
+ const ns = args.namespace ?? 'claude-cowork';
314
+ const limit = typeof args.limit === 'number' ? Math.max(1, Math.floor(args.limit)) : undefined;
315
+ const probeOnly = Boolean(args.probe_only);
316
+ const probe = probeClaudeCowork();
317
+ if (!probe.found || probe.sessions.length === 0) {
318
+ return {
319
+ imported: 0,
320
+ saved: 0,
321
+ dropped_by_plugin: 0,
322
+ empty_sessions: 0,
323
+ errors: 0,
324
+ total_sessions: 0,
325
+ scanned_roots: probe.scannedRoots,
326
+ paths_attempted: probe.pathsAttempted,
327
+ hints: probe.hints,
328
+ namespace: ns,
329
+ };
330
+ }
331
+ const targets = limit ? probe.sessions.slice(0, limit) : probe.sessions;
332
+ const items = [];
333
+ let empty = 0;
334
+ let parseErrors = 0;
335
+ for (const s of targets) {
336
+ try {
337
+ const sessionItems = importFromCoworkSession(s.filePath, ns, {
338
+ sessionId: s.sessionId,
339
+ title: s.title,
340
+ cwd: s.cwd,
341
+ });
342
+ if (sessionItems.length === 0)
343
+ empty++;
344
+ else
345
+ items.push(...sessionItems);
346
+ }
347
+ catch {
348
+ parseErrors++;
349
+ }
350
+ }
351
+ if (probeOnly) {
352
+ return {
353
+ would_import: items.length,
354
+ empty_sessions: empty,
355
+ parse_errors: parseErrors,
356
+ total_sessions: probe.sessions.length,
357
+ scanned_roots: probe.scannedRoots,
358
+ namespace: ns,
359
+ probe_only: true,
360
+ };
361
+ }
362
+ let droppedByPlugin = 0;
363
+ const filtered = [];
364
+ for (const it of items) {
365
+ const transformed = await runBeforeSave(it, registry);
366
+ if (transformed === null)
367
+ droppedByPlugin++;
368
+ else
369
+ filtered.push(transformed);
370
+ }
371
+ const result = await provider.bulkSave(filtered);
372
+ return {
373
+ ...result,
374
+ namespace: ns,
375
+ imported_sessions: items.length,
376
+ empty_sessions: empty,
377
+ parse_errors: parseErrors,
378
+ dropped_by_plugin: droppedByPlugin,
379
+ total_sessions: probe.sessions.length,
380
+ scanned_roots: probe.scannedRoots,
381
+ };
382
+ }
299
383
  default:
300
384
  throw new Error(`Unknown tool: ${name}`);
301
385
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * v0.2.6 — Cowork background sync.
3
+ *
4
+ * Periodically probes the on-disk Cowork transcripts and incrementally
5
+ * imports new or changed ones into mnueron. Drives `mnueron watch
6
+ * --claude-cowork`.
7
+ *
8
+ * State file at `~/.mnueron/cowork-sync.json` records the last-synced
9
+ * mtimeMs per sessionId. On each tick we re-import only sessions whose
10
+ * file mtime has advanced. Idempotent: re-importing a session upserts via
11
+ * `source_ref="cowork:<sessionId>"` so duplicates never accumulate.
12
+ *
13
+ * Stop with Ctrl+C — SIGINT/SIGTERM are caught and we flush the state
14
+ * file before exiting.
15
+ */
16
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
17
+ import { homedir } from 'node:os';
18
+ import { dirname, join } from 'node:path';
19
+ import { probeClaudeCowork, importFromCoworkSession } from '../import/claude_cowork.js';
20
+ const STATE_VERSION = 1;
21
+ const DEFAULT_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
22
+ function stateFilePath() {
23
+ return join(homedir(), '.mnueron', 'cowork-sync.json');
24
+ }
25
+ function loadState() {
26
+ const p = stateFilePath();
27
+ try {
28
+ const raw = readFileSync(p, 'utf8');
29
+ const obj = JSON.parse(raw);
30
+ if (obj?.version === STATE_VERSION && obj.sessions && typeof obj.sessions === 'object') {
31
+ return obj;
32
+ }
33
+ }
34
+ catch { /* missing or malformed — start fresh */ }
35
+ return { version: STATE_VERSION, last_run_ms: 0, sessions: {} };
36
+ }
37
+ function saveState(s) {
38
+ const p = stateFilePath();
39
+ try {
40
+ mkdirSync(dirname(p), { recursive: true });
41
+ writeFileSync(p, JSON.stringify(s, null, 2), 'utf8');
42
+ }
43
+ catch (e) {
44
+ process.stderr.write(`[mnueron watch] failed to write sync state: ${e.message}\n`);
45
+ }
46
+ }
47
+ /**
48
+ * Run one tick of the sync: probe disk, compare against state, import any
49
+ * changed sessions. Returns counts so callers can log / surface in UIs.
50
+ */
51
+ export async function runCoworkSyncTick(provider, state, namespace) {
52
+ const probe = probeClaudeCowork();
53
+ const out = { checked: probe.sessions.length, changed: 0, imported: 0, saved: 0, errors: 0 };
54
+ if (probe.sessions.length === 0)
55
+ return out;
56
+ const items = [];
57
+ const pendingMtimes = [];
58
+ for (const s of probe.sessions) {
59
+ const prevMtime = state.sessions[s.sessionId] ?? 0;
60
+ if (s.mtimeMs <= prevMtime)
61
+ continue; // unchanged, skip
62
+ out.changed++;
63
+ try {
64
+ const sessionItems = importFromCoworkSession(s.filePath, namespace, {
65
+ sessionId: s.sessionId,
66
+ title: s.title,
67
+ cwd: s.cwd,
68
+ });
69
+ if (sessionItems.length > 0) {
70
+ items.push(...sessionItems);
71
+ out.imported++;
72
+ }
73
+ pendingMtimes.push([s.sessionId, s.mtimeMs]);
74
+ }
75
+ catch {
76
+ out.errors++;
77
+ }
78
+ }
79
+ if (items.length > 0) {
80
+ const result = await provider.bulkSave(items);
81
+ out.saved = result.saved;
82
+ out.errors += result.errors;
83
+ }
84
+ // Stamp success mtimes only after the save succeeds.
85
+ for (const [id, mtime] of pendingMtimes)
86
+ state.sessions[id] = mtime;
87
+ state.last_run_ms = Date.now();
88
+ saveState(state);
89
+ return out;
90
+ }
91
+ /**
92
+ * Long-running watcher. Resolves only on signal (--once mode) or never
93
+ * (continuous mode). Caller is responsible for provider lifecycle.
94
+ */
95
+ export async function runCoworkWatch(provider, opts = {}) {
96
+ const intervalMs = Math.max(10_000, opts.intervalMs ?? DEFAULT_INTERVAL_MS);
97
+ const namespace = opts.namespace ?? 'claude-cowork';
98
+ const log = opts.log ?? ((m) => console.log(m));
99
+ let state = loadState();
100
+ let stopping = false;
101
+ const onSignal = (sig) => {
102
+ if (stopping)
103
+ return;
104
+ stopping = true;
105
+ log(`[watch] caught ${sig}, flushing state and exiting…`);
106
+ saveState(state);
107
+ // Give any in-flight tick a tiny window to wrap up cleanly.
108
+ setTimeout(() => process.exit(0), 250).unref();
109
+ };
110
+ process.on('SIGINT', () => onSignal('SIGINT'));
111
+ process.on('SIGTERM', () => onSignal('SIGTERM'));
112
+ log(`[watch] cowork sync started — interval ${(intervalMs / 1000).toFixed(0)}s, ` +
113
+ `ns "${namespace}", state @ ${stateFilePath()}`);
114
+ const tick = async () => {
115
+ if (stopping)
116
+ return;
117
+ const startedAt = new Date().toISOString();
118
+ try {
119
+ const result = await runCoworkSyncTick(provider, state, namespace);
120
+ log(`[watch ${startedAt}] checked=${result.checked} changed=${result.changed} ` +
121
+ `imported=${result.imported} saved=${result.saved} errors=${result.errors}`);
122
+ }
123
+ catch (e) {
124
+ log(`[watch ${startedAt}] tick failed: ${e.message}`);
125
+ }
126
+ };
127
+ // Run an initial tick immediately so a fresh `mnueron watch` is useful
128
+ // without waiting for the first interval.
129
+ await tick();
130
+ if (opts.once)
131
+ return;
132
+ // Schedule subsequent ticks. The active setInterval keeps the event loop
133
+ // alive; we exit via the SIGINT/SIGTERM handler.
134
+ setInterval(() => { void tick(); }, intervalMs);
135
+ await new Promise(() => { });
136
+ }
137
+ //# sourceMappingURL=cowork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cowork.js","sourceRoot":"","sources":["../../src/watch/cowork.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mnueron",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "MNUERON — persistent memory for Claude Desktop, Claude Code, Cursor, and any AI dev tool or app. Local-first, free, with optional hosted multi-tenant backend.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",