mindlore 0.6.7 → 0.6.8
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 +259 -259
- package/SCHEMA.md +292 -292
- package/dist/scripts/cc-memory-bulk-sync.d.ts.map +1 -1
- package/dist/scripts/cc-memory-bulk-sync.js +47 -42
- package/dist/scripts/cc-memory-bulk-sync.js.map +1 -1
- package/dist/scripts/cc-session-sync.d.ts.map +1 -1
- package/dist/scripts/cc-session-sync.js +58 -48
- package/dist/scripts/cc-session-sync.js.map +1 -1
- package/dist/scripts/init.js +8 -8
- package/dist/scripts/init.js.map +1 -1
- package/dist/scripts/lib/all-migrations.d.ts.map +1 -1
- package/dist/scripts/lib/all-migrations.js +4 -1
- package/dist/scripts/lib/all-migrations.js.map +1 -1
- package/dist/scripts/lib/consolidation.d.ts +4 -3
- package/dist/scripts/lib/consolidation.d.ts.map +1 -1
- package/dist/scripts/lib/consolidation.js +10 -10
- package/dist/scripts/lib/consolidation.js.map +1 -1
- package/dist/scripts/lib/constants.d.ts +1 -7
- package/dist/scripts/lib/constants.d.ts.map +1 -1
- package/dist/scripts/lib/constants.js +2 -9
- package/dist/scripts/lib/constants.js.map +1 -1
- package/dist/scripts/lib/db-helpers.d.ts +0 -15
- package/dist/scripts/lib/db-helpers.d.ts.map +1 -1
- package/dist/scripts/lib/db-helpers.js +1 -51
- package/dist/scripts/lib/db-helpers.js.map +1 -1
- package/dist/scripts/lib/decay.d.ts.map +1 -1
- package/dist/scripts/lib/decay.js +9 -9
- package/dist/scripts/lib/decay.js.map +1 -1
- package/dist/scripts/lib/episodes.js +23 -23
- package/dist/scripts/lib/migrations-v061.js +21 -21
- package/dist/scripts/lib/migrations-v062.js +11 -11
- package/dist/scripts/lib/migrations-v063.js +14 -14
- package/dist/scripts/lib/migrations-v067.js +11 -11
- package/dist/scripts/lib/migrations-v068.d.ts +3 -0
- package/dist/scripts/lib/migrations-v068.d.ts.map +1 -0
- package/dist/scripts/lib/migrations-v068.js +37 -0
- package/dist/scripts/lib/migrations-v068.js.map +1 -0
- package/dist/scripts/lib/migrations.d.ts.map +1 -1
- package/dist/scripts/lib/migrations.js +0 -15
- package/dist/scripts/lib/migrations.js.map +1 -1
- package/dist/scripts/lib/schema-version.js +6 -6
- package/dist/scripts/lib/search-cache.js +11 -11
- package/dist/scripts/lib/session-payload.d.ts.map +1 -1
- package/dist/scripts/lib/session-payload.js +7 -7
- package/dist/scripts/lib/session-payload.js.map +1 -1
- package/dist/scripts/lib/triage.js +3 -3
- package/dist/scripts/mindlore-backup.js +9 -9
- package/dist/scripts/mindlore-fts5-index.d.ts +1 -2
- package/dist/scripts/mindlore-fts5-index.d.ts.map +1 -1
- package/dist/scripts/mindlore-fts5-index.js +12 -64
- package/dist/scripts/mindlore-fts5-index.js.map +1 -1
- package/dist/scripts/mindlore-health-check.d.ts.map +1 -1
- package/dist/scripts/mindlore-health-check.js +0 -11
- package/dist/scripts/mindlore-health-check.js.map +1 -1
- package/dist/tests/cc-memory-bulk-sync.test.js +23 -0
- package/dist/tests/cc-memory-bulk-sync.test.js.map +1 -1
- package/dist/tests/cc-session-sync.test.js +25 -0
- package/dist/tests/cc-session-sync.test.js.map +1 -1
- package/dist/tests/compaction-snapshot.test.js +2 -2
- package/dist/tests/consolidation.test.js +5 -5
- package/dist/tests/consolidation.test.js.map +1 -1
- package/dist/tests/decay.test.js +9 -9
- package/dist/tests/diary.test.js +4 -4
- package/dist/tests/episode-kind-constant.test.d.ts +2 -0
- package/dist/tests/episode-kind-constant.test.d.ts.map +1 -0
- package/dist/tests/episode-kind-constant.test.js +28 -0
- package/dist/tests/episode-kind-constant.test.js.map +1 -0
- package/dist/tests/episodes-inject.test.js +9 -9
- package/dist/tests/fts5.test.js +66 -125
- package/dist/tests/fts5.test.js.map +1 -1
- package/dist/tests/globalSetup.d.ts +2 -0
- package/dist/tests/globalSetup.d.ts.map +1 -0
- package/dist/tests/globalSetup.js +36 -0
- package/dist/tests/globalSetup.js.map +1 -0
- package/dist/tests/helpers/db.d.ts +13 -5
- package/dist/tests/helpers/db.d.ts.map +1 -1
- package/dist/tests/helpers/db.js +60 -33
- package/dist/tests/helpers/db.js.map +1 -1
- package/dist/tests/lesson-graduation.test.js +11 -11
- package/dist/tests/lesson-graduation.test.js.map +1 -1
- package/dist/tests/migrations-v053.test.js +16 -16
- package/dist/tests/migrations-v061.test.js +10 -10
- package/dist/tests/migrations-v063.test.js +2 -2
- package/dist/tests/migrations-v068.test.d.ts +2 -0
- package/dist/tests/migrations-v068.test.d.ts.map +1 -0
- package/dist/tests/migrations-v068.test.js +53 -0
- package/dist/tests/migrations-v068.test.js.map +1 -0
- package/dist/tests/nomination-counts.test.d.ts +2 -0
- package/dist/tests/nomination-counts.test.d.ts.map +1 -0
- package/dist/tests/nomination-counts.test.js +51 -0
- package/dist/tests/nomination-counts.test.js.map +1 -0
- package/dist/tests/recall-telemetry.test.js +8 -8
- package/dist/tests/schema-version.test.js +3 -7
- package/dist/tests/schema-version.test.js.map +1 -1
- package/dist/tests/search-hook.test.js +2 -2
- package/dist/tests/sec-regression.test.js +0 -50
- package/dist/tests/sec-regression.test.js.map +1 -1
- package/dist/tests/session-end-cleanup.test.js +3 -20
- package/dist/tests/session-end-cleanup.test.js.map +1 -1
- package/dist/tests/session-focus.test.js +7 -30
- package/dist/tests/session-focus.test.js.map +1 -1
- package/dist/tests/session-payload.test.js +1 -1
- package/dist/tests/session-summary.test.js +1 -1
- package/hooks/lib/constants.cjs +15 -0
- package/hooks/lib/mindlore-common.cjs +974 -1042
- package/hooks/mindlore-cwd-changed.cjs +57 -57
- package/hooks/mindlore-decision-detector.cjs +54 -54
- package/hooks/mindlore-dont-repeat.cjs +222 -222
- package/hooks/mindlore-fts5-sync.cjs +97 -88
- package/hooks/mindlore-index.cjs +229 -229
- package/hooks/mindlore-model-router.cjs +54 -54
- package/hooks/mindlore-post-compact.cjs +69 -69
- package/hooks/mindlore-post-read.cjs +106 -106
- package/hooks/mindlore-pre-compact.cjs +154 -154
- package/hooks/mindlore-read-guard.cjs +105 -105
- package/hooks/mindlore-research-guard.cjs +176 -176
- package/hooks/mindlore-search.cjs +200 -200
- package/hooks/mindlore-session-end.cjs +509 -526
- package/hooks/mindlore-session-focus.cjs +256 -259
- package/package.json +75 -78
- package/plugin.json +1 -1
- package/skills/mindlore-diary/SKILL.md +85 -85
- package/skills/mindlore-evolve/SKILL.md +126 -126
- package/skills/mindlore-explore/SKILL.md +109 -109
- package/skills/mindlore-ingest/SKILL.md +195 -195
- package/skills/mindlore-maintain/SKILL.md +125 -125
- package/skills/mindlore-query/SKILL.md +151 -151
- package/skills/mindlore-reflect/SKILL.md +141 -141
- package/skills/mindlore-stats/SKILL.md +106 -106
- package/templates/INDEX.md +14 -14
- package/templates/SCHEMA.md +292 -292
- package/templates/config.json +1 -1
- package/templates/extraction/article.md +15 -15
- package/templates/extraction/changelog.md +15 -15
- package/templates/extraction/default.md +15 -15
- package/templates/extraction/docs.md +15 -15
- package/templates/extraction/github-repo.md +17 -17
- package/dist/scripts/lib/daemon.d.ts +0 -16
- package/dist/scripts/lib/daemon.d.ts.map +0 -1
- package/dist/scripts/lib/daemon.js +0 -133
- package/dist/scripts/lib/daemon.js.map +0 -1
- package/dist/scripts/lib/embedding.d.ts +0 -5
- package/dist/scripts/lib/embedding.d.ts.map +0 -1
- package/dist/scripts/lib/embedding.js +0 -44
- package/dist/scripts/lib/embedding.js.map +0 -1
- package/dist/scripts/mindlore-daemon.d.ts +0 -2
- package/dist/scripts/mindlore-daemon.d.ts.map +0 -1
- package/dist/scripts/mindlore-daemon.js +0 -117
- package/dist/scripts/mindlore-daemon.js.map +0 -1
- package/dist/tests/daemon-integration.test.d.ts +0 -2
- package/dist/tests/daemon-integration.test.d.ts.map +0 -1
- package/dist/tests/daemon-integration.test.js +0 -37
- package/dist/tests/daemon-integration.test.js.map +0 -1
- package/dist/tests/daemon.test.d.ts +0 -2
- package/dist/tests/daemon.test.d.ts.map +0 -1
- package/dist/tests/daemon.test.js +0 -187
- package/dist/tests/daemon.test.js.map +0 -1
- package/dist/tests/embedding-hf-integration.test.d.ts +0 -2
- package/dist/tests/embedding-hf-integration.test.d.ts.map +0 -1
- package/dist/tests/embedding-hf-integration.test.js +0 -52
- package/dist/tests/embedding-hf-integration.test.js.map +0 -1
- package/dist/tests/embedding.test.d.ts +0 -6
- package/dist/tests/embedding.test.d.ts.map +0 -1
- package/dist/tests/embedding.test.js +0 -71
- package/dist/tests/embedding.test.js.map +0 -1
- package/dist/tests/sqlite-vec-v12.test.d.ts +0 -2
- package/dist/tests/sqlite-vec-v12.test.d.ts.map +0 -1
- package/dist/tests/sqlite-vec-v12.test.js +0 -72
- package/dist/tests/sqlite-vec-v12.test.js.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
source_type: default
|
|
3
|
-
description: Generic extraction template (fallback)
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Extraction Instructions
|
|
7
|
-
|
|
8
|
-
Bu source icin ozel bir extraction template bulunamadi. Genel ozet cikar:
|
|
9
|
-
|
|
10
|
-
1. **Ozet:** Kaynagin ne hakkinda oldugu (2-3 cumle)
|
|
11
|
-
2. **Temel Bilgiler:** En onemli noktalar ve kavramlar
|
|
12
|
-
3. **Iliskiler:** Diger bilinen konularla baglantilari
|
|
13
|
-
4. **Eyleme Donuk:** Pratikte nasil kullanilabilir
|
|
14
|
-
|
|
15
|
-
Kisa ve oz tut — max 500 kelime.
|
|
1
|
+
---
|
|
2
|
+
source_type: default
|
|
3
|
+
description: Generic extraction template (fallback)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Extraction Instructions
|
|
7
|
+
|
|
8
|
+
Bu source icin ozel bir extraction template bulunamadi. Genel ozet cikar:
|
|
9
|
+
|
|
10
|
+
1. **Ozet:** Kaynagin ne hakkinda oldugu (2-3 cumle)
|
|
11
|
+
2. **Temel Bilgiler:** En onemli noktalar ve kavramlar
|
|
12
|
+
3. **Iliskiler:** Diger bilinen konularla baglantilari
|
|
13
|
+
4. **Eyleme Donuk:** Pratikte nasil kullanilabilir
|
|
14
|
+
|
|
15
|
+
Kisa ve oz tut — max 500 kelime.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
source_type: docs
|
|
3
|
-
description: Technical documentation analysis template
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Extraction Instructions
|
|
7
|
-
|
|
8
|
-
Bu source teknik dokumantasyondur. Su bilgileri cikar:
|
|
9
|
-
|
|
10
|
-
1. **API Referans:** Fonksiyonlar, parametreler, donus tipleri
|
|
11
|
-
2. **Ornekler:** Kod ornekleri ve kullanim pattern'leri
|
|
12
|
-
3. **Kisitlamalar:** Bilinen limitasyonlar, uyumsuzluklar, uyarilar
|
|
13
|
-
4. **Versiyon:** Hangi versiyona ait oldugu (belirtilmisse)
|
|
14
|
-
|
|
15
|
-
Tam API imzalarini koru — kisaltma yapma. Ornekleri oldugu gibi al.
|
|
1
|
+
---
|
|
2
|
+
source_type: docs
|
|
3
|
+
description: Technical documentation analysis template
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Extraction Instructions
|
|
7
|
+
|
|
8
|
+
Bu source teknik dokumantasyondur. Su bilgileri cikar:
|
|
9
|
+
|
|
10
|
+
1. **API Referans:** Fonksiyonlar, parametreler, donus tipleri
|
|
11
|
+
2. **Ornekler:** Kod ornekleri ve kullanim pattern'leri
|
|
12
|
+
3. **Kisitlamalar:** Bilinen limitasyonlar, uyumsuzluklar, uyarilar
|
|
13
|
+
4. **Versiyon:** Hangi versiyona ait oldugu (belirtilmisse)
|
|
14
|
+
|
|
15
|
+
Tam API imzalarini koru — kisaltma yapma. Ornekleri oldugu gibi al.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
---
|
|
2
|
-
source_type: github-repo
|
|
3
|
-
description: GitHub repository analysis template
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Extraction Instructions
|
|
7
|
-
|
|
8
|
-
Bu source bir GitHub reposudur. Su bilgileri cikar:
|
|
9
|
-
|
|
10
|
-
1. **Mimari:** Temel tasarim kararlari, kullanilan pattern'ler, katman yapisi
|
|
11
|
-
2. **Kurulum:** Gereksinimler, adimlar, environment degiskenleri
|
|
12
|
-
3. **API Surface:** Public fonksiyonlar, CLI komutlari, tool'lar, hook'lar
|
|
13
|
-
4. **Dependencies:** Kritik bagimliliklar ve versiyonlari
|
|
14
|
-
5. **Farklilastirici:** Rakiplerden/alternatiflerden ne farki var
|
|
15
|
-
|
|
16
|
-
Gereksiz README boilerplate'i (badge'ler, sponsor listesi, lisans metni) atla.
|
|
17
|
-
Sadece teknik ozeti yaz.
|
|
1
|
+
---
|
|
2
|
+
source_type: github-repo
|
|
3
|
+
description: GitHub repository analysis template
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Extraction Instructions
|
|
7
|
+
|
|
8
|
+
Bu source bir GitHub reposudur. Su bilgileri cikar:
|
|
9
|
+
|
|
10
|
+
1. **Mimari:** Temel tasarim kararlari, kullanilan pattern'ler, katman yapisi
|
|
11
|
+
2. **Kurulum:** Gereksinimler, adimlar, environment degiskenleri
|
|
12
|
+
3. **API Surface:** Public fonksiyonlar, CLI komutlari, tool'lar, hook'lar
|
|
13
|
+
4. **Dependencies:** Kritik bagimliliklar ve versiyonlari
|
|
14
|
+
5. **Farklilastirici:** Rakiplerden/alternatiflerden ne farki var
|
|
15
|
+
|
|
16
|
+
Gereksiz README boilerplate'i (badge'ler, sponsor listesi, lisans metni) atla.
|
|
17
|
+
Sadece teknik ozeti yaz.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
interface DaemonOptions {
|
|
2
|
-
pidFile?: string;
|
|
3
|
-
portFile?: string;
|
|
4
|
-
skipModelLoad?: boolean;
|
|
5
|
-
mockEmbedding?: number[];
|
|
6
|
-
}
|
|
7
|
-
interface DaemonServer {
|
|
8
|
-
start: () => Promise<void>;
|
|
9
|
-
stop: () => Promise<void>;
|
|
10
|
-
isRunning: () => boolean;
|
|
11
|
-
getPort: () => number | null;
|
|
12
|
-
}
|
|
13
|
-
/** @deprecated Will be replaced by MCP Server in v0.7 */
|
|
14
|
-
export declare function createDaemonServer(options: DaemonOptions): DaemonServer;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../scripts/lib/daemon.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAaD,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAyHvE"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createDaemonServer = createDaemonServer;
|
|
7
|
-
const net_1 = __importDefault(require("net"));
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const constants_js_1 = require("./constants.js");
|
|
10
|
-
/** @deprecated Will be replaced by MCP Server in v0.7 */
|
|
11
|
-
function createDaemonServer(options) {
|
|
12
|
-
let server = null;
|
|
13
|
-
let port = null;
|
|
14
|
-
let embedFn = null;
|
|
15
|
-
async function loadModel() {
|
|
16
|
-
if (options.skipModelLoad) {
|
|
17
|
-
embedFn = async () => options.mockEmbedding ?? new Array(384).fill(0);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const { generateEmbedding } = await import('./embedding.js');
|
|
21
|
-
embedFn = generateEmbedding;
|
|
22
|
-
}
|
|
23
|
-
async function handleRequest(req) {
|
|
24
|
-
switch (req.type) {
|
|
25
|
-
case 'ping':
|
|
26
|
-
return { type: 'pong' };
|
|
27
|
-
case 'embed': {
|
|
28
|
-
if (!embedFn)
|
|
29
|
-
return { type: 'error', error: 'Model not loaded' };
|
|
30
|
-
if (!req.text)
|
|
31
|
-
return { type: 'error', error: 'No text provided' };
|
|
32
|
-
try {
|
|
33
|
-
const embedding = await embedFn(req.text);
|
|
34
|
-
return { type: 'embedding', embedding };
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
38
|
-
return { type: 'error', error: msg };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
case 'stop':
|
|
42
|
-
return { type: 'stopped' };
|
|
43
|
-
default:
|
|
44
|
-
return { type: 'error', error: 'Unknown request type' };
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const instance = {
|
|
48
|
-
async start() {
|
|
49
|
-
await loadModel();
|
|
50
|
-
return new Promise((resolve) => {
|
|
51
|
-
server = net_1.default.createServer((conn) => {
|
|
52
|
-
conn.setTimeout(5000);
|
|
53
|
-
conn.on('timeout', () => conn.destroy());
|
|
54
|
-
let buffer = '';
|
|
55
|
-
const MAX_BUFFER = 1024 * 1024;
|
|
56
|
-
conn.on('data', async (data) => {
|
|
57
|
-
buffer += data.toString();
|
|
58
|
-
if (buffer.length > MAX_BUFFER) {
|
|
59
|
-
conn.write(JSON.stringify({ type: 'error', error: 'Buffer overflow' }) + '\n');
|
|
60
|
-
conn.destroy();
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const lines = buffer.split('\n');
|
|
64
|
-
buffer = lines.pop() ?? '';
|
|
65
|
-
for (const line of lines) {
|
|
66
|
-
if (!line.trim())
|
|
67
|
-
continue;
|
|
68
|
-
try {
|
|
69
|
-
const req = JSON.parse(line);
|
|
70
|
-
const res = await handleRequest(req);
|
|
71
|
-
conn.write(JSON.stringify(res) + '\n');
|
|
72
|
-
if (req.type === 'stop') {
|
|
73
|
-
setTimeout(() => { void instance.stop(); }, 100);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
conn.write(JSON.stringify({ type: 'error', error: 'Invalid JSON' }) + '\n');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
server.maxConnections = 10;
|
|
83
|
-
server.listen(0, constants_js_1.DAEMON_HOST, () => {
|
|
84
|
-
const addr = server?.address();
|
|
85
|
-
if (addr && typeof addr === 'object') {
|
|
86
|
-
port = addr.port;
|
|
87
|
-
}
|
|
88
|
-
if (options.portFile) {
|
|
89
|
-
fs_1.default.writeFileSync(options.portFile, String(port), 'utf8');
|
|
90
|
-
}
|
|
91
|
-
if (options.pidFile) {
|
|
92
|
-
fs_1.default.writeFileSync(options.pidFile, String(process.pid), 'utf8');
|
|
93
|
-
}
|
|
94
|
-
resolve();
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
},
|
|
98
|
-
async stop() {
|
|
99
|
-
return new Promise((resolve) => {
|
|
100
|
-
if (options.pidFile) {
|
|
101
|
-
try {
|
|
102
|
-
fs_1.default.unlinkSync(options.pidFile);
|
|
103
|
-
}
|
|
104
|
-
catch { /* already gone */ }
|
|
105
|
-
}
|
|
106
|
-
if (options.portFile) {
|
|
107
|
-
try {
|
|
108
|
-
fs_1.default.unlinkSync(options.portFile);
|
|
109
|
-
}
|
|
110
|
-
catch { /* already gone */ }
|
|
111
|
-
}
|
|
112
|
-
if (server) {
|
|
113
|
-
server.close(() => {
|
|
114
|
-
server = null;
|
|
115
|
-
port = null;
|
|
116
|
-
resolve();
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
resolve();
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
},
|
|
124
|
-
isRunning() {
|
|
125
|
-
return server !== null && server.listening;
|
|
126
|
-
},
|
|
127
|
-
getPort() {
|
|
128
|
-
return port;
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
return instance;
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=daemon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../scripts/lib/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const EMBEDDING_MODEL = "Xenova/multilingual-e5-small";
|
|
2
|
-
export declare const EMBEDDING_DIM = 384;
|
|
3
|
-
export declare function generateEmbedding(text: string): Promise<number[]>;
|
|
4
|
-
export declare function batchEmbed(texts: string[]): Promise<number[][]>;
|
|
5
|
-
//# sourceMappingURL=embedding.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../scripts/lib/embedding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,iCAAiC,CAAC;AAC9D,eAAO,MAAM,aAAa,MAAM,CAAC;AAgBjC,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAevE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAMrE"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EMBEDDING_DIM = exports.EMBEDDING_MODEL = void 0;
|
|
4
|
-
exports.generateEmbedding = generateEmbedding;
|
|
5
|
-
exports.batchEmbed = batchEmbed;
|
|
6
|
-
exports.EMBEDDING_MODEL = 'Xenova/multilingual-e5-small';
|
|
7
|
-
exports.EMBEDDING_DIM = 384;
|
|
8
|
-
// Pipeline instance — cached after first load (~16s)
|
|
9
|
-
let cachedPipeline = null;
|
|
10
|
-
async function getEmbedder() {
|
|
11
|
-
if (cachedPipeline)
|
|
12
|
-
return cachedPipeline;
|
|
13
|
-
// ESM-only package in CJS context — must use dynamic import
|
|
14
|
-
const { pipeline: createPipeline } = await import('@huggingface/transformers');
|
|
15
|
-
cachedPipeline = await createPipeline('feature-extraction', exports.EMBEDDING_MODEL, {
|
|
16
|
-
dtype: 'q8', // int8 quantization — smaller, faster
|
|
17
|
-
});
|
|
18
|
-
return cachedPipeline;
|
|
19
|
-
}
|
|
20
|
-
async function generateEmbedding(text) {
|
|
21
|
-
const embedder = await getEmbedder();
|
|
22
|
-
// multilingual-e5-small expects "query: " or "passage: " prefix
|
|
23
|
-
const prefixed = text.startsWith('query:') || text.startsWith('passage:')
|
|
24
|
-
? text
|
|
25
|
-
: `passage: ${text}`;
|
|
26
|
-
// Pipeline is callable — returns Tensor with tolist()
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic import returns typed pipeline but callable signature requires explicit cast
|
|
28
|
-
const run = embedder;
|
|
29
|
-
// normalize: true in pipeline options already returns L2-normalized vectors
|
|
30
|
-
const result = await run([prefixed], { pooling: 'mean', normalize: true });
|
|
31
|
-
const list = result.tolist();
|
|
32
|
-
const raw = list[0];
|
|
33
|
-
if (!raw)
|
|
34
|
-
throw new Error('Embedding pipeline returned empty result');
|
|
35
|
-
return raw;
|
|
36
|
-
}
|
|
37
|
-
async function batchEmbed(texts) {
|
|
38
|
-
const results = [];
|
|
39
|
-
for (const text of texts) {
|
|
40
|
-
results.push(await generateEmbedding(text));
|
|
41
|
-
}
|
|
42
|
-
return results;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=embedding.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../scripts/lib/embedding.ts"],"names":[],"mappings":";;;AAiBA,8CAeC;AAED,gCAMC;AAxCY,QAAA,eAAe,GAAG,8BAA8B,CAAC;AACjD,QAAA,aAAa,GAAG,GAAG,CAAC;AAEjC,qDAAqD;AACrD,IAAI,cAAc,GAAY,IAAI,CAAC;AAEnC,KAAK,UAAU,WAAW;IACxB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,4DAA4D;IAC5D,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC/E,cAAc,GAAG,MAAM,cAAc,CAAC,oBAAoB,EAAE,uBAAe,EAAE;QAC3E,KAAK,EAAE,IAAI,EAAE,sCAAsC;KACpD,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QACvE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IACvB,sDAAsD;IACtD,8JAA8J;IAC9J,MAAM,GAAG,GAAG,QAAqG,CAAC;IAClH,4EAA4E;IAC5E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mindlore-daemon.d.ts","sourceRoot":"","sources":["../../scripts/mindlore-daemon.ts"],"names":[],"mappings":""}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
console.warn('[DEPRECATED] mindlore daemon will be replaced by MCP Server in v0.7. No new features will be added.');
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const net_1 = __importDefault(require("net"));
|
|
9
|
-
const constants_js_1 = require("./lib/constants.js");
|
|
10
|
-
const daemon_js_1 = require("./lib/daemon.js");
|
|
11
|
-
const command = process.argv[2] ?? 'status';
|
|
12
|
-
function isDaemonRunning() {
|
|
13
|
-
try {
|
|
14
|
-
const pid = parseInt(fs_1.default.readFileSync(constants_js_1.DAEMON_PID_FILE, 'utf8').trim());
|
|
15
|
-
process.kill(pid, 0);
|
|
16
|
-
return { running: true, pid };
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
try {
|
|
20
|
-
fs_1.default.unlinkSync(constants_js_1.DAEMON_PID_FILE);
|
|
21
|
-
}
|
|
22
|
-
catch { /* already gone */ }
|
|
23
|
-
return { running: false };
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function getPort() {
|
|
27
|
-
try {
|
|
28
|
-
const p = parseInt(fs_1.default.readFileSync(constants_js_1.DAEMON_PORT_FILE, 'utf8').trim());
|
|
29
|
-
return isNaN(p) ? null : p;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function forceCleanup(pid) {
|
|
36
|
-
if (pid) {
|
|
37
|
-
try {
|
|
38
|
-
process.kill(pid, 'SIGTERM');
|
|
39
|
-
}
|
|
40
|
-
catch { /* already dead */ }
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
fs_1.default.unlinkSync(constants_js_1.DAEMON_PID_FILE);
|
|
44
|
-
}
|
|
45
|
-
catch { /* ignore */ }
|
|
46
|
-
try {
|
|
47
|
-
fs_1.default.unlinkSync(constants_js_1.DAEMON_PORT_FILE);
|
|
48
|
-
}
|
|
49
|
-
catch { /* ignore */ }
|
|
50
|
-
}
|
|
51
|
-
async function start() {
|
|
52
|
-
const status = isDaemonRunning();
|
|
53
|
-
if (status.running) {
|
|
54
|
-
console.log(`Daemon already running (PID: ${status.pid})`);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
console.log('Starting embedding daemon...');
|
|
58
|
-
console.log('Loading embedding model (this may take ~16s on first run)...');
|
|
59
|
-
const server = (0, daemon_js_1.createDaemonServer)({
|
|
60
|
-
pidFile: constants_js_1.DAEMON_PID_FILE,
|
|
61
|
-
portFile: constants_js_1.DAEMON_PORT_FILE,
|
|
62
|
-
});
|
|
63
|
-
await server.start();
|
|
64
|
-
console.log(`Daemon started (PID: ${process.pid}, port: ${server.getPort()})`);
|
|
65
|
-
}
|
|
66
|
-
async function stop() {
|
|
67
|
-
const status = isDaemonRunning();
|
|
68
|
-
if (!status.running) {
|
|
69
|
-
console.log('Daemon is not running.');
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const port = getPort();
|
|
73
|
-
if (!port) {
|
|
74
|
-
forceCleanup(status.pid);
|
|
75
|
-
console.log('Daemon force-stopped (no port file).');
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
return new Promise((resolve) => {
|
|
79
|
-
const client = net_1.default.createConnection(port, constants_js_1.DAEMON_HOST, () => {
|
|
80
|
-
client.write(JSON.stringify({ type: 'stop' }) + '\n');
|
|
81
|
-
});
|
|
82
|
-
client.on('data', () => {
|
|
83
|
-
console.log('Daemon stopped.');
|
|
84
|
-
client.end();
|
|
85
|
-
resolve();
|
|
86
|
-
});
|
|
87
|
-
client.on('error', () => {
|
|
88
|
-
forceCleanup(status.pid);
|
|
89
|
-
console.log('Daemon force-stopped.');
|
|
90
|
-
resolve();
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
function showStatus() {
|
|
95
|
-
const status = isDaemonRunning();
|
|
96
|
-
if (status.running) {
|
|
97
|
-
const port = getPort();
|
|
98
|
-
console.log(`Daemon is running (PID: ${status.pid}, port: ${port ?? 'unknown'})`);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
console.log('Daemon is not running.');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
switch (command) {
|
|
105
|
-
case 'start':
|
|
106
|
-
void start();
|
|
107
|
-
break;
|
|
108
|
-
case 'stop':
|
|
109
|
-
void stop();
|
|
110
|
-
break;
|
|
111
|
-
case 'status':
|
|
112
|
-
showStatus();
|
|
113
|
-
break;
|
|
114
|
-
default:
|
|
115
|
-
console.log('Usage: npx mindlore daemon [start|stop|status]');
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=mindlore-daemon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mindlore-daemon.js","sourceRoot":"","sources":["../../scripts/mindlore-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-integration.test.d.ts","sourceRoot":"","sources":["../../tests/daemon-integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
describe('daemon-client.js', () => {
|
|
9
|
-
it('should exist as plain JS file (no build needed)', () => {
|
|
10
|
-
const clientPath = path_1.default.join(__dirname, '..', 'scripts', 'lib', 'daemon-client.js');
|
|
11
|
-
expect(fs_1.default.existsSync(clientPath)).toBe(true);
|
|
12
|
-
});
|
|
13
|
-
it('should use fs.writeSync for stdout flush on Windows', () => {
|
|
14
|
-
const clientPath = path_1.default.join(__dirname, '..', 'scripts', 'lib', 'daemon-client.js');
|
|
15
|
-
const src = fs_1.default.readFileSync(clientPath, 'utf8');
|
|
16
|
-
expect(src).toContain('writeSync');
|
|
17
|
-
});
|
|
18
|
-
it('should read port from port file', () => {
|
|
19
|
-
const clientPath = path_1.default.join(__dirname, '..', 'scripts', 'lib', 'daemon-client.js');
|
|
20
|
-
const src = fs_1.default.readFileSync(clientPath, 'utf8');
|
|
21
|
-
expect(src).toContain('port');
|
|
22
|
-
expect(src).toContain('127.0.0.1');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe('search hook daemon integration', () => {
|
|
26
|
-
it('should delegate to search-engine module', () => {
|
|
27
|
-
const hookSrc = fs_1.default.readFileSync(path_1.default.join(__dirname, '..', 'hooks', 'mindlore-search.cjs'), 'utf8');
|
|
28
|
-
expect(hookSrc).toContain('search-engine.js');
|
|
29
|
-
expect(hookSrc).toContain('searchEngineMod.search');
|
|
30
|
-
});
|
|
31
|
-
it('should log when search-engine module is unavailable', () => {
|
|
32
|
-
const hookSrc = fs_1.default.readFileSync(path_1.default.join(__dirname, '..', 'hooks', 'mindlore-search.cjs'), 'utf8');
|
|
33
|
-
expect(hookSrc).toContain("hookLog('search'");
|
|
34
|
-
expect(hookSrc).toContain('not available');
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=daemon-integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-integration.test.js","sourceRoot":"","sources":["../../tests/daemon-integration.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACpF,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAC7B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,CACnE,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAC7B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,MAAM,CACnE,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.test.d.ts","sourceRoot":"","sources":["../../tests/daemon.test.ts"],"names":[],"mappings":""}
|