mindlore 0.5.8 → 0.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 +14 -2
- package/agents/mindlore-assistant.md +26 -0
- package/agents/mindlore-librarian.md +27 -0
- package/agents/mindlore-researcher.md +28 -0
- package/dist/scripts/lib/backfill.d.ts.map +1 -1
- package/dist/scripts/lib/backfill.js +5 -18
- package/dist/scripts/lib/backfill.js.map +1 -1
- package/dist/scripts/lib/constants.d.ts.map +1 -1
- package/dist/scripts/lib/constants.js +2 -0
- package/dist/scripts/lib/constants.js.map +1 -1
- package/dist/scripts/lib/contradiction.d.ts.map +1 -1
- package/dist/scripts/lib/contradiction.js +11 -20
- package/dist/scripts/lib/contradiction.js.map +1 -1
- package/dist/scripts/lib/embedding.js +4 -4
- package/dist/scripts/lib/embedding.js.map +1 -1
- package/dist/scripts/maintain-cleanup.d.ts +13 -0
- package/dist/scripts/maintain-cleanup.d.ts.map +1 -0
- package/dist/scripts/maintain-cleanup.js +93 -0
- package/dist/scripts/maintain-cleanup.js.map +1 -0
- package/dist/scripts/mindlore-fts5-index.js +3 -3
- package/dist/scripts/mindlore-fts5-index.js.map +1 -1
- package/dist/tests/embedding-hf-integration.test.d.ts +2 -0
- package/dist/tests/embedding-hf-integration.test.d.ts.map +1 -0
- package/dist/tests/embedding-hf-integration.test.js +52 -0
- package/dist/tests/embedding-hf-integration.test.js.map +1 -0
- package/dist/tests/embedding.test.d.ts +1 -1
- package/dist/tests/embedding.test.js +2 -2
- package/dist/tests/embedding.test.js.map +1 -1
- package/dist/tests/fts5.test.js +54 -0
- package/dist/tests/fts5.test.js.map +1 -1
- package/dist/tests/helpers/db.d.ts +16 -0
- package/dist/tests/helpers/db.d.ts.map +1 -1
- package/dist/tests/helpers/db.js +5 -1
- package/dist/tests/helpers/db.js.map +1 -1
- package/dist/tests/maintain-cleanup.test.d.ts +2 -0
- package/dist/tests/maintain-cleanup.test.d.ts.map +1 -0
- package/dist/tests/maintain-cleanup.test.js +65 -0
- package/dist/tests/maintain-cleanup.test.js.map +1 -0
- package/dist/tests/quality-populate.test.js +10 -0
- package/dist/tests/quality-populate.test.js.map +1 -1
- package/dist/tests/sqlite-vec-v12.test.d.ts +2 -0
- package/dist/tests/sqlite-vec-v12.test.d.ts.map +1 -0
- package/dist/tests/sqlite-vec-v12.test.js +72 -0
- package/dist/tests/sqlite-vec-v12.test.js.map +1 -0
- package/dist/tests/telemetry.test.d.ts +2 -0
- package/dist/tests/telemetry.test.d.ts.map +1 -0
- package/dist/tests/telemetry.test.js +55 -0
- package/dist/tests/telemetry.test.js.map +1 -0
- package/hooks/lib/mindlore-common.cjs +76 -9
- package/hooks/mindlore-cwd-changed.cjs +2 -2
- package/hooks/mindlore-decision-detector.cjs +5 -2
- package/hooks/mindlore-dont-repeat.cjs +2 -2
- package/hooks/mindlore-fts5-sync.cjs +7 -4
- package/hooks/mindlore-index.cjs +8 -5
- package/hooks/mindlore-model-router.cjs +2 -2
- package/hooks/mindlore-post-compact.cjs +5 -2
- package/hooks/mindlore-post-read.cjs +2 -2
- package/hooks/mindlore-pre-compact.cjs +5 -2
- package/hooks/mindlore-read-guard.cjs +2 -2
- package/hooks/mindlore-research-guard.cjs +2 -2
- package/hooks/mindlore-search.cjs +5 -2
- package/hooks/mindlore-session-end.cjs +17 -8
- package/hooks/mindlore-session-focus.cjs +5 -2
- package/package.json +6 -4
- package/plugin.json +1 -1
- package/skills/mindlore-ingest/SKILL.md +27 -6
- package/templates/SCHEMA.md +106 -7
- package/templates/config.json +4 -1
package/README.md
CHANGED
|
@@ -73,6 +73,18 @@ npx mindlore episodes count # Episode count per project
|
|
|
73
73
|
| `/mindlore-explore` | Cross-reference discovery between sources |
|
|
74
74
|
| `/mindlore-maintain` | KB maintenance: decay reports, consolidation, contradiction detection |
|
|
75
75
|
|
|
76
|
+
## Agents
|
|
77
|
+
|
|
78
|
+
3 delegatable agents for subagent workflows:
|
|
79
|
+
|
|
80
|
+
| Agent | Model | Description |
|
|
81
|
+
|-------|-------|-------------|
|
|
82
|
+
| `mindlore-assistant` | sonnet | Knowledge base Q&A — hybrid FTS5 search, top-3 result synthesis, cited answers |
|
|
83
|
+
| `mindlore-researcher` | sonnet | Independent web research — checks existing KB first, fetches new sources, writes structured analyses with contradiction flagging |
|
|
84
|
+
| `mindlore-librarian` | haiku | Periodic maintenance — health checks, stale content detection, FTS5 consistency, cleanup recommendations |
|
|
85
|
+
|
|
86
|
+
Agents are spawned via Claude Code's Agent tool with `team_name` or directly. The `model-router` hook reads `config.json` and routes `[mindlore:SKILL]` markers to cost-optimized models automatically.
|
|
87
|
+
|
|
76
88
|
## Architecture
|
|
77
89
|
|
|
78
90
|
Knowledge flows through a compiler-like pipeline:
|
|
@@ -113,7 +125,7 @@ Nine directories, each mapping to a frontmatter `type`:
|
|
|
113
125
|
npx mindlore
|
|
114
126
|
```
|
|
115
127
|
|
|
116
|
-
Requires: Node.js 20
|
|
128
|
+
Requires: Node.js 20+ (24 supported), `better-sqlite3` ^12 (installed automatically).
|
|
117
129
|
|
|
118
130
|
### Recommended
|
|
119
131
|
|
|
@@ -199,7 +211,7 @@ Skills spawn subagents with `[mindlore:SKILL]` markers — the model-router hook
|
|
|
199
211
|
|
|
200
212
|
## Hooks
|
|
201
213
|
|
|
202
|
-
14 Claude Code lifecycle hooks (v0.5.
|
|
214
|
+
14 Claude Code lifecycle hooks (v0.5.9):
|
|
203
215
|
|
|
204
216
|
| Event | Hook | What it does |
|
|
205
217
|
|-------|------|-------------|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mindlore-assistant
|
|
3
|
+
description: Mindlore knowledge base assistant — hybrid search, context injection, Q&A
|
|
4
|
+
tools: [Read, Grep, Bash, Glob]
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Mindlore knowledge assistant. Your job is to search the knowledge base and answer questions grounded in stored knowledge.
|
|
9
|
+
|
|
10
|
+
## On Start
|
|
11
|
+
|
|
12
|
+
1. Read skill_memory for query patterns: `node dist/scripts/lib/skill-memory.js list mindlore-assistant`
|
|
13
|
+
|
|
14
|
+
## Search Flow
|
|
15
|
+
|
|
16
|
+
1. Run hybrid search: `npm run search -- "$QUERY"` in the ~/.mindlore/ directory
|
|
17
|
+
2. Read top 3 results (full file content)
|
|
18
|
+
3. Synthesize answer with citations: `[kaynak: sources/x.md]`
|
|
19
|
+
4. Update skill_memory with successful query pattern
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Always cite sources with file paths
|
|
24
|
+
- If no results found, say so — don't hallucinate
|
|
25
|
+
- Prefer recent sources over old ones (check date_captured)
|
|
26
|
+
- Keep answers concise — 2-3 paragraphs max
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mindlore-librarian
|
|
3
|
+
description: Periodic maintenance — stale detection, health checks, cleanup recommendations
|
|
4
|
+
tools: [Read, Bash, Grep, Glob]
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Mindlore librarian. You maintain knowledge base health and detect stale or problematic content.
|
|
9
|
+
|
|
10
|
+
## On Start
|
|
11
|
+
|
|
12
|
+
1. Check skill_memory for last maintenance run: `node dist/scripts/lib/skill-memory.js list mindlore-librarian`
|
|
13
|
+
|
|
14
|
+
## Maintenance Flow
|
|
15
|
+
|
|
16
|
+
1. Run health check: `npm run health` in ~/.mindlore/
|
|
17
|
+
2. Check for stale files (>30 days, no updates, low quality score)
|
|
18
|
+
3. Check FTS5 index consistency: row count vs file count
|
|
19
|
+
4. Report findings in structured format
|
|
20
|
+
5. Update skill_memory with maintenance timestamp and findings summary
|
|
21
|
+
|
|
22
|
+
## Rules
|
|
23
|
+
|
|
24
|
+
- Never delete files — only recommend deletions to the user
|
|
25
|
+
- Report trends: "quality improved/degraded since last check"
|
|
26
|
+
- Coordinate with reflect skill for decay recommendations
|
|
27
|
+
- Keep reports concise — tables preferred over prose
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mindlore-researcher
|
|
3
|
+
description: URL/file research and analysis agent — independent investigation
|
|
4
|
+
tools: [Read, Write, Bash, Grep, Glob, WebSearch, WebFetch]
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are the Mindlore researcher. You investigate topics across multiple sources and produce structured analyses.
|
|
9
|
+
|
|
10
|
+
## On Start
|
|
11
|
+
|
|
12
|
+
1. Check skill_memory for recent research URLs: `node dist/scripts/lib/skill-memory.js list mindlore-researcher`
|
|
13
|
+
|
|
14
|
+
## Research Flow
|
|
15
|
+
|
|
16
|
+
1. Search existing knowledge base first: `npm run search -- "$TOPIC"`
|
|
17
|
+
2. If gaps found, search the web for additional sources
|
|
18
|
+
3. For each new source, fetch and read the content
|
|
19
|
+
4. Compare and synthesize sources
|
|
20
|
+
5. Write analysis to `~/.mindlore/analyses/` with proper frontmatter
|
|
21
|
+
6. Update skill_memory with researched URLs
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
|
|
25
|
+
- Always check existing knowledge before web search
|
|
26
|
+
- Write structured analyses with frontmatter (type: analysis)
|
|
27
|
+
- Compare multiple sources — never rely on a single source
|
|
28
|
+
- Flag contradictions between sources
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../scripts/lib/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../scripts/lib/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAWtC,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CA8ClF"}
|
|
@@ -6,22 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.runBackfill = runBackfill;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return {};
|
|
13
|
-
const block = match[1];
|
|
14
|
-
if (!block)
|
|
15
|
-
return {};
|
|
16
|
-
const result = {};
|
|
17
|
-
for (const line of block.split('\n')) {
|
|
18
|
-
const idx = line.indexOf(':');
|
|
19
|
-
if (idx > 0) {
|
|
20
|
-
result[line.slice(0, idx).trim()] = line.slice(idx + 1).trim();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
9
|
+
const constants_js_1 = require("./constants.js");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic CJS require, typed by mindlore-common.d.cts
|
|
11
|
+
const common = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
25
12
|
function qualityToImportance(quality) {
|
|
26
13
|
switch (quality) {
|
|
27
14
|
case 'high': return 1.0;
|
|
@@ -47,9 +34,9 @@ function runBackfill(db, baseDir) {
|
|
|
47
34
|
if (row.importance === 1.0 && fs_1.default.existsSync(row.path)) {
|
|
48
35
|
try {
|
|
49
36
|
const content = fs_1.default.readFileSync(row.path, 'utf8');
|
|
50
|
-
const meta =
|
|
37
|
+
const meta = common.parseFrontmatter(content).meta;
|
|
51
38
|
if (meta.quality) {
|
|
52
|
-
const mapped = qualityToImportance(meta.quality);
|
|
39
|
+
const mapped = qualityToImportance(String(meta.quality));
|
|
53
40
|
if (mapped !== 1.0) {
|
|
54
41
|
updateImportance.run(mapped, row.path);
|
|
55
42
|
result.importanceMapped++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../scripts/lib/backfill.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../scripts/lib/backfill.ts"],"names":[],"mappings":";;;;;AA2BA,kCA8CC;AAxED,4CAAoB;AACpB,gDAAwB;AAExB,iDAAmD;AAEnD,8HAA8H;AAC9H,MAAM,MAAM,GAAG,OAAO,CAAC,IAAA,gCAAiB,EAAC,SAAS,CAAC,CAElD,CAAC;AASF,SAAS,mBAAmB,CAAC,OAA2B;IACtD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC;QAC1B,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QACvB,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,EAAqB,EAAE,OAAe;IAChE,MAAM,MAAM,GAAmB,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAE5G,mGAAmG;IACnG,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC,GAAG,EAE9G,CAAC;IACH,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IAE/B,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;IAE5F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;gBACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;wBACnB,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBACvC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACpC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../scripts/lib/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAqE,CAAC;AACtG,eAAO,MAAM,OAAO,gBAAgB,CAAC;AAErC,eAAO,MAAM,WAAW,oIAYd,CAAC;AAEX,eAAO,MAAM,UAAU,aAA+C,CAAC;AAEvE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKxC,CAAC;AAEX,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AACnE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,YAAY,iIAAkI,CAAC;AAC5J,MAAM,MAAM,SAAS,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpD,eAAO,MAAM,iBAAiB,gKAAiK,CAAC;AAChM,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,oCAAqC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../scripts/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../scripts/lib/constants.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../scripts/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contradiction.d.ts","sourceRoot":"","sources":["../../../scripts/lib/contradiction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contradiction.d.ts","sourceRoot":"","sources":["../../../scripts/lib/contradiction.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0LD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAQrE"}
|
|
@@ -6,26 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.detectContradictions = detectContradictions;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return {};
|
|
13
|
-
const result = {};
|
|
14
|
-
const block = match[1];
|
|
15
|
-
if (!block)
|
|
16
|
-
return result;
|
|
17
|
-
for (const line of block.split('\n')) {
|
|
18
|
-
const idx = line.indexOf(':');
|
|
19
|
-
if (idx > 0) {
|
|
20
|
-
result[line.slice(0, idx).trim()] = line.slice(idx + 1).trim();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
9
|
+
const constants_js_1 = require("./constants.js");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic CJS require, typed by mindlore-common.d.cts
|
|
11
|
+
const common = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
25
12
|
function parseTags(raw) {
|
|
26
13
|
if (!raw)
|
|
27
14
|
return [];
|
|
28
|
-
|
|
15
|
+
if (Array.isArray(raw))
|
|
16
|
+
return raw.map(String).filter(Boolean);
|
|
17
|
+
if (typeof raw === 'string')
|
|
18
|
+
return raw.replace(/^\[|\]$/g, '').split(',').map(t => t.trim().replace(/['"]/g, '')).filter(Boolean);
|
|
19
|
+
return [];
|
|
29
20
|
}
|
|
30
21
|
function loadFiles(baseDir) {
|
|
31
22
|
const files = [];
|
|
@@ -39,11 +30,11 @@ function loadFiles(baseDir) {
|
|
|
39
30
|
continue;
|
|
40
31
|
const filePath = path_1.default.join(dirPath, file);
|
|
41
32
|
const rawContent = fs_1.default.readFileSync(filePath, 'utf8').replace(/\r\n/g, '\n');
|
|
42
|
-
const meta =
|
|
33
|
+
const meta = common.parseFrontmatter(rawContent).meta;
|
|
43
34
|
files.push({
|
|
44
35
|
path: filePath,
|
|
45
|
-
slug: meta.slug ?? '',
|
|
46
|
-
type: meta.type ?? '',
|
|
36
|
+
slug: String(meta.slug ?? ''),
|
|
37
|
+
type: String(meta.type ?? ''),
|
|
47
38
|
tags: parseTags(meta.tags),
|
|
48
39
|
content: rawContent.replace(/^---\n[\s\S]*?\n---\n?/, ''),
|
|
49
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contradiction.js","sourceRoot":"","sources":["../../../scripts/lib/contradiction.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"contradiction.js","sourceRoot":"","sources":["../../../scripts/lib/contradiction.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,10 @@ let cachedPipeline = null;
|
|
|
10
10
|
async function getEmbedder() {
|
|
11
11
|
if (cachedPipeline)
|
|
12
12
|
return cachedPipeline;
|
|
13
|
-
//
|
|
14
|
-
const { pipeline: createPipeline } = await import('@
|
|
13
|
+
// ESM-only package in CJS context — must use dynamic import
|
|
14
|
+
const { pipeline: createPipeline } = await import('@huggingface/transformers');
|
|
15
15
|
cachedPipeline = await createPipeline('feature-extraction', exports.EMBEDDING_MODEL, {
|
|
16
|
-
|
|
16
|
+
dtype: 'q8', // int8 quantization — smaller, faster
|
|
17
17
|
});
|
|
18
18
|
return cachedPipeline;
|
|
19
19
|
}
|
|
@@ -24,7 +24,7 @@ async function generateEmbedding(text) {
|
|
|
24
24
|
? text
|
|
25
25
|
: `passage: ${text}`;
|
|
26
26
|
// Pipeline is callable — returns Tensor with tolist()
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion --
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic import returns typed pipeline but callable signature requires explicit cast
|
|
28
28
|
const run = embedder;
|
|
29
29
|
// normalize: true in pipeline options already returns L2-normalized vectors
|
|
30
30
|
const result = await run([prefixed], { pooling: 'mean', normalize: true });
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export interface CleanupReport {
|
|
3
|
+
fts5Gaps: string[];
|
|
4
|
+
backfilled: string[];
|
|
5
|
+
errors: string[];
|
|
6
|
+
}
|
|
7
|
+
interface CleanupOptions {
|
|
8
|
+
baseDir?: string;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function runCleanup(opts?: CleanupOptions): Promise<CleanupReport>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=maintain-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintain-cleanup.d.ts","sourceRoot":"","sources":["../../scripts/maintain-cleanup.ts"],"names":[],"mappings":";AAYA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,wBAAsB,UAAU,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgElF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.runCleanup = runCleanup;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const constants_js_1 = require("./lib/constants.js");
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic CJS require, typed by mindlore-common.d.cts
|
|
12
|
+
const common = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
13
|
+
const norm = (p) => p.replace(/\\/g, '/');
|
|
14
|
+
async function runCleanup(opts = {}) {
|
|
15
|
+
const baseDir = opts.baseDir ?? constants_js_1.GLOBAL_MINDLORE_DIR;
|
|
16
|
+
const dryRun = opts.dryRun ?? true;
|
|
17
|
+
const report = {
|
|
18
|
+
fts5Gaps: [],
|
|
19
|
+
backfilled: [],
|
|
20
|
+
errors: [],
|
|
21
|
+
};
|
|
22
|
+
const rawDir = path_1.default.join(baseDir, 'raw');
|
|
23
|
+
const allFiles = common.getAllMdFiles(rawDir, new Set());
|
|
24
|
+
for (const file of allFiles) {
|
|
25
|
+
try {
|
|
26
|
+
const content = fs_1.default.readFileSync(file, 'utf8');
|
|
27
|
+
const fmMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
28
|
+
if (!fmMatch)
|
|
29
|
+
continue;
|
|
30
|
+
const rawFm = fmMatch[0];
|
|
31
|
+
if (/^project:\s/m.test(rawFm))
|
|
32
|
+
continue;
|
|
33
|
+
const project = common.resolveProject(null, file, null);
|
|
34
|
+
if (!project)
|
|
35
|
+
continue;
|
|
36
|
+
if (!dryRun) {
|
|
37
|
+
const newContent = content.replace(/\n---/, `\nproject: ${project}\n---`);
|
|
38
|
+
fs_1.default.writeFileSync(file, newContent, 'utf8');
|
|
39
|
+
}
|
|
40
|
+
report.backfilled.push(file);
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
report.errors.push(`backfill error ${file}: ${err instanceof Error ? err.message : String(err)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const dbPath = path_1.default.join(baseDir, constants_js_1.DB_NAME);
|
|
47
|
+
try {
|
|
48
|
+
const Database = require('better-sqlite3');
|
|
49
|
+
const db = new Database(dbPath, { readonly: true });
|
|
50
|
+
try {
|
|
51
|
+
const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='mindlore_fts'").all();
|
|
52
|
+
if (tables.length > 0) {
|
|
53
|
+
const indexed = new Set(db.prepare('SELECT path FROM mindlore_fts').all().map(// eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- FTS5 schema guarantees path column
|
|
54
|
+
// eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- FTS5 schema guarantees path column
|
|
55
|
+
r => norm(r.path)));
|
|
56
|
+
for (const file of allFiles) {
|
|
57
|
+
const normalized = norm(file);
|
|
58
|
+
if (!indexed.has(normalized)) {
|
|
59
|
+
report.fts5Gaps.push(normalized);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
db.close();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
70
|
+
if (!/SQLITE_CANTOPEN|no such file/.test(msg)) {
|
|
71
|
+
report.errors.push(`fts5 gap check error: ${msg}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return report;
|
|
75
|
+
}
|
|
76
|
+
if (require.main === module) {
|
|
77
|
+
const dryRun = process.argv.includes('--dry-run');
|
|
78
|
+
runCleanup({ dryRun }).then(report => {
|
|
79
|
+
console.log('=== Cleanup Report ===');
|
|
80
|
+
console.log(`FTS5 gaps: ${report.fts5Gaps.length}`);
|
|
81
|
+
for (const g of report.fts5Gaps)
|
|
82
|
+
console.log(` - ${g}`);
|
|
83
|
+
console.log(`Backfilled: ${report.backfilled.length}`);
|
|
84
|
+
for (const b of report.backfilled)
|
|
85
|
+
console.log(` - ${b}`);
|
|
86
|
+
if (report.errors.length) {
|
|
87
|
+
console.log(`Errors: ${report.errors.length}`);
|
|
88
|
+
for (const e of report.errors)
|
|
89
|
+
console.log(` ! ${e}`);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=maintain-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintain-cleanup.js","sourceRoot":"","sources":["../../scripts/maintain-cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ const migrations_v052_js_1 = require("./lib/migrations-v052.js");
|
|
|
21
21
|
const migrations_v053_js_1 = require("./lib/migrations-v053.js");
|
|
22
22
|
const embedding_js_1 = require("./lib/embedding.js");
|
|
23
23
|
const common = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
24
|
-
const { sha256, getAllMdFiles, openDatabase, parseFrontmatter, extractFtsMetadata, insertFtsRow } = common;
|
|
24
|
+
const { sha256, getAllMdFiles, openDatabase, parseFrontmatter, extractFtsMetadata, insertFtsRow, resolveProject } = common;
|
|
25
25
|
// ── Helpers ──────────────────────────────────────────────────────────
|
|
26
26
|
function qualityToImportance(quality) {
|
|
27
27
|
switch (quality) {
|
|
@@ -109,9 +109,9 @@ async function main() {
|
|
|
109
109
|
// FTS5 missing — fall through to re-index
|
|
110
110
|
}
|
|
111
111
|
const { meta, body } = parseFrontmatter(content);
|
|
112
|
-
const { slug, description, type, category, title, tags, quality, dateCaptured } = extractFtsMetadata(meta, body, filePath, baseDir);
|
|
112
|
+
const { slug, description, type, category, title, tags, quality, dateCaptured, project: ftsProject } = extractFtsMetadata(meta, body, filePath, baseDir);
|
|
113
113
|
deleteFts.run(filePath);
|
|
114
|
-
insertFtsRow(db, { path: filePath, slug, description, type, category, title, content: body, tags, quality, dateCaptured, project: projectName });
|
|
114
|
+
insertFtsRow(db, { path: filePath, slug, description, type, category, title, content: body, tags, quality, dateCaptured, project: resolveProject(ftsProject, filePath, projectName) });
|
|
115
115
|
upsertHash.run(filePath, hash, now, projectName, qualityToImportance(quality));
|
|
116
116
|
indexed++;
|
|
117
117
|
// Queue for embedding
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mindlore-fts5-index.js","sourceRoot":"","sources":["../../scripts/mindlore-fts5-index.ts"],"names":[],"mappings":";;AAEA;;;;;;GAMG;;;;;AAEH,4CAAoB;AACpB,gDAAwB;AACxB,qDAAqF;AACrF,uDAA2E;AAC3E,+DAA2E;AAC3E,uDAAuE;AACvE,iEAA2D;AAC3D,iEAA2D;AAC3D,qDAAwE;AAExE,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"mindlore-fts5-index.js","sourceRoot":"","sources":["../../scripts/mindlore-fts5-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-hf-integration.test.d.ts","sourceRoot":"","sources":["../../tests/embedding-hf-integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* Integration smoke test — only runs when @huggingface/transformers installed.
|
|
5
|
+
* Skips automatically if package missing (dev environment guard).
|
|
6
|
+
*/
|
|
7
|
+
let pkgAvailable = false;
|
|
8
|
+
const skipHF = process.env.CI === 'true' || parseInt(process.versions.node, 10) >= 24;
|
|
9
|
+
try {
|
|
10
|
+
require.resolve('@huggingface/transformers');
|
|
11
|
+
pkgAvailable = true;
|
|
12
|
+
}
|
|
13
|
+
catch { /* skip */ }
|
|
14
|
+
// Skip in CI and Node 24+ — onnxruntime-node Float32Array realm mismatch in Jest sandbox
|
|
15
|
+
(pkgAvailable && !skipHF ? describe : describe.skip)('HF Transformers smoke', () => {
|
|
16
|
+
test('Xenova/multilingual-e5-small loads from HF package', async () => {
|
|
17
|
+
const { pipeline } = await import('@huggingface/transformers');
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion, @typescript-eslint/no-explicit-any -- ESM pipeline type unresolvable in CJS Jest
|
|
19
|
+
const embedder = await pipeline('feature-extraction', 'Xenova/multilingual-e5-small', { dtype: 'q8' });
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion, @typescript-eslint/no-explicit-any -- callable pipeline signature
|
|
21
|
+
const result = await embedder(['passage: hello'], { pooling: 'mean', normalize: true });
|
|
22
|
+
const list = result.tolist();
|
|
23
|
+
expect(list[0]).toHaveLength(384);
|
|
24
|
+
}, 60_000);
|
|
25
|
+
test('alternative ID intfloat/multilingual-e5-small loads', async () => {
|
|
26
|
+
const { pipeline } = await import('@huggingface/transformers');
|
|
27
|
+
const embedder = await pipeline('feature-extraction', 'intfloat/multilingual-e5-small');
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion, @typescript-eslint/no-explicit-any -- callable pipeline signature
|
|
29
|
+
const result = await embedder(['passage: hello'], { pooling: 'mean', normalize: true });
|
|
30
|
+
expect(result.tolist()[0]).toHaveLength(384);
|
|
31
|
+
}, 60_000);
|
|
32
|
+
});
|
|
33
|
+
let embeddingAvailable = false;
|
|
34
|
+
try {
|
|
35
|
+
require('@huggingface/transformers');
|
|
36
|
+
embeddingAvailable = true;
|
|
37
|
+
}
|
|
38
|
+
catch { /* ESM-only module — Jest CJS mode cannot load it */ }
|
|
39
|
+
(embeddingAvailable && !skipHF ? describe : describe.skip)('embedding drift check', () => {
|
|
40
|
+
test('cosine >=0.99 vs reference v2 embedding', async () => {
|
|
41
|
+
const refPath = require('path').join(__dirname, 'fixtures/embedding-v2-reference.json');
|
|
42
|
+
expect(require('fs').existsSync(refPath)).toBe(true);
|
|
43
|
+
const ref = JSON.parse(require('fs').readFileSync(refPath, 'utf8'));
|
|
44
|
+
const { generateEmbedding } = await import('../scripts/lib/embedding.js');
|
|
45
|
+
const fresh = await generateEmbedding('passage: mindlore test');
|
|
46
|
+
let dot = 0;
|
|
47
|
+
for (let i = 0; i < ref.length; i++)
|
|
48
|
+
dot += (ref[i] ?? 0) * (fresh[i] ?? 0);
|
|
49
|
+
expect(dot).toBeGreaterThanOrEqual(0.99);
|
|
50
|
+
}, 60_000);
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=embedding-hf-integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-hf-integration.test.js","sourceRoot":"","sources":["../../tests/embedding-hf-integration.test.ts"],"names":[],"mappings":"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"}
|