@nxuss/lemma 1.25.0 → 1.26.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/README.md +14 -3
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +10 -2
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/mcp/index.js +15 -0
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/memory.js +57 -7
- package/dist/cjs/mcp/tools/memory.js.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.d.ts +20 -0
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +76 -10
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/utils/ClipboardWatcher.d.ts +5 -2
- package/dist/cjs/utils/ClipboardWatcher.d.ts.map +1 -1
- package/dist/cjs/utils/ClipboardWatcher.js +38 -4
- package/dist/cjs/utils/ClipboardWatcher.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +10 -2
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/mcp/index.js +15 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
- package/dist/esm/mcp/tools/memory.js +57 -7
- package/dist/esm/mcp/tools/memory.js.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.d.ts +20 -0
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +75 -10
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/utils/ClipboardWatcher.d.ts +5 -2
- package/dist/esm/utils/ClipboardWatcher.d.ts.map +1 -1
- package/dist/esm/utils/ClipboardWatcher.js +39 -5
- package/dist/esm/utils/ClipboardWatcher.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,22 +8,56 @@ const child_process_1 = require("child_process");
|
|
|
8
8
|
const ContextSqueezer_1 = require("./ContextSqueezer");
|
|
9
9
|
const SavingsLedger_1 = require("./SavingsLedger");
|
|
10
10
|
/**
|
|
11
|
-
* Reads text content from the
|
|
11
|
+
* Reads text content from the OS system clipboard.
|
|
12
|
+
* macOS: pbpaste. Windows: PowerShell Get-Clipboard. Linux: xclip/xsel (best-effort,
|
|
13
|
+
* neither is guaranteed to be installed on a headless box, so failures are silent).
|
|
12
14
|
*/
|
|
13
15
|
function readClipboard() {
|
|
14
16
|
try {
|
|
15
|
-
|
|
17
|
+
if (process.platform === 'darwin') {
|
|
18
|
+
return (0, child_process_1.execFileSync)('pbpaste', { encoding: 'utf8' });
|
|
19
|
+
}
|
|
20
|
+
if (process.platform === 'win32') {
|
|
21
|
+
return (0, child_process_1.execFileSync)('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', 'Get-Clipboard -Raw'], { encoding: 'utf8', windowsHide: true });
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return (0, child_process_1.execFileSync)('xclip', ['-selection', 'clipboard', '-o'], { encoding: 'utf8' });
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return (0, child_process_1.execFileSync)('xsel', ['--clipboard', '--output'], { encoding: 'utf8' });
|
|
28
|
+
}
|
|
16
29
|
}
|
|
17
30
|
catch (err) {
|
|
18
31
|
return '';
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
34
|
/**
|
|
22
|
-
* Writes text content to the
|
|
35
|
+
* Writes text content to the OS system clipboard.
|
|
36
|
+
* macOS: pbcopy. Windows: PowerShell Set-Clipboard. Linux: xclip/xsel (best-effort).
|
|
23
37
|
*/
|
|
24
38
|
function writeClipboard(text) {
|
|
25
39
|
try {
|
|
26
|
-
|
|
40
|
+
if (process.platform === 'darwin') {
|
|
41
|
+
const proc = (0, child_process_1.spawn)('pbcopy');
|
|
42
|
+
proc.on('error', () => { });
|
|
43
|
+
proc.stdin.write(text);
|
|
44
|
+
proc.stdin.end();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (process.platform === 'win32') {
|
|
48
|
+
const proc = (0, child_process_1.spawn)('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', '$input | Set-Clipboard'], { windowsHide: true });
|
|
49
|
+
proc.on('error', () => { });
|
|
50
|
+
proc.stdin.write(text);
|
|
51
|
+
proc.stdin.end();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const proc = (0, child_process_1.spawn)('xclip', ['-selection', 'clipboard']);
|
|
55
|
+
proc.on('error', () => {
|
|
56
|
+
const fallback = (0, child_process_1.spawn)('xsel', ['--clipboard', '--input']);
|
|
57
|
+
fallback.on('error', () => { });
|
|
58
|
+
fallback.stdin.write(text);
|
|
59
|
+
fallback.stdin.end();
|
|
60
|
+
});
|
|
27
61
|
proc.stdin.write(text);
|
|
28
62
|
proc.stdin.end();
|
|
29
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipboardWatcher.js","sourceRoot":"","sources":["../../../src/utils/ClipboardWatcher.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ClipboardWatcher.js","sourceRoot":"","sources":["../../../src/utils/ClipboardWatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AA8cA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8DvF;AAqfD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AAwrDD,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8KhL"}
|
|
@@ -134,7 +134,11 @@ async function ensureChromaRunning() {
|
|
|
134
134
|
const cp = spawn('chroma', ['run', '--path', path.join(CACHE_DIR, 'chroma_data')], {
|
|
135
135
|
stdio: 'ignore',
|
|
136
136
|
detached: true,
|
|
137
|
+
windowsHide: true,
|
|
137
138
|
});
|
|
139
|
+
// 'chroma' may not be on PATH (e.g. chromadb not pip-installed) — an ENOENT here is
|
|
140
|
+
// async and, unhandled, would throw and crash whichever process called us.
|
|
141
|
+
cp.on('error', () => console.log('⚠️ Could not start ChromaDB (is it installed and on PATH?)'));
|
|
138
142
|
cp.unref();
|
|
139
143
|
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
140
144
|
}
|
|
@@ -507,8 +511,10 @@ export function startBackgroundClipboardWatcher(cliOpts) {
|
|
|
507
511
|
const cp = spawn(cmd, args, {
|
|
508
512
|
stdio: 'ignore',
|
|
509
513
|
detached: true,
|
|
514
|
+
windowsHide: true,
|
|
510
515
|
env: { ...process.env }
|
|
511
516
|
});
|
|
517
|
+
cp.on('error', (err) => console.error(`❌ Could not start Clipboard Watcher: ${err.message}`));
|
|
512
518
|
cp.unref();
|
|
513
519
|
if (cp.pid) {
|
|
514
520
|
fs.writeFileSync(CLIPBOARD_PID_FILE, String(cp.pid));
|
|
@@ -2335,10 +2341,12 @@ program.command('start')
|
|
|
2335
2341
|
if (!fs.existsSync(chromaDataPath)) {
|
|
2336
2342
|
fs.mkdirSync(chromaDataPath, { recursive: true });
|
|
2337
2343
|
}
|
|
2338
|
-
const chromaProcess = spawn('chroma', ['run', '--path', chromaDataPath], { stdio: 'ignore', detached: true });
|
|
2344
|
+
const chromaProcess = spawn('chroma', ['run', '--path', chromaDataPath], { stdio: 'ignore', detached: true, windowsHide: true });
|
|
2345
|
+
chromaProcess.on('error', () => console.log(' ⚠️ Could not start ChromaDB (is it installed and on PATH?)'));
|
|
2339
2346
|
chromaProcess.unref();
|
|
2340
2347
|
console.log(' ✅ ChromaDB requested');
|
|
2341
|
-
const dash = spawn('npm', ['run', 'dev', '--prefix', 'dashboard', '--', '--port', '8082'], { stdio: 'ignore', detached: true });
|
|
2348
|
+
const dash = spawn('npm', ['run', 'dev', '--prefix', 'dashboard', '--', '--port', '8082'], { stdio: 'ignore', detached: true, windowsHide: true, shell: process.platform === 'win32' });
|
|
2349
|
+
dash.on('error', () => console.log(' ⚠️ Could not start the dashboard dev server'));
|
|
2342
2350
|
dash.unref();
|
|
2343
2351
|
console.log(' ✅ Dashboard requested (http://localhost:8082)');
|
|
2344
2352
|
setTimeout(() => {
|