mindlore 0.6.8 → 0.6.9
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 +2 -1
- 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 +6 -5
- package/dist/scripts/cc-session-sync.js.map +1 -1
- package/dist/scripts/fetch-raw.js +5 -4
- package/dist/scripts/fetch-raw.js.map +1 -1
- package/dist/scripts/init.js +12 -11
- package/dist/scripts/init.js.map +1 -1
- package/dist/scripts/lib/consolidation.js +10 -10
- package/dist/scripts/lib/constants.d.ts +2 -0
- package/dist/scripts/lib/constants.d.ts.map +1 -1
- package/dist/scripts/lib/constants.js +10 -1
- package/dist/scripts/lib/constants.js.map +1 -1
- package/dist/scripts/lib/decay.js +9 -9
- 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/schema-version.js +6 -6
- package/dist/scripts/lib/search-cache.js +11 -11
- package/dist/scripts/lib/secure-io.d.ts +11 -0
- package/dist/scripts/lib/secure-io.d.ts.map +1 -0
- package/dist/scripts/lib/secure-io.js +26 -0
- package/dist/scripts/lib/secure-io.js.map +1 -0
- package/dist/scripts/lib/session-payload.js +7 -7
- package/dist/scripts/lib/triage.js +3 -3
- package/dist/scripts/lib/validate-manifest.d.ts +8 -0
- package/dist/scripts/lib/validate-manifest.d.ts.map +1 -0
- package/dist/scripts/lib/validate-manifest.js +80 -0
- package/dist/scripts/lib/validate-manifest.js.map +1 -0
- package/dist/scripts/mindlore-backup.js +9 -9
- package/dist/scripts/mindlore-fts5-index.js +10 -10
- package/dist/scripts/validate-manifest-cli.d.ts +2 -0
- package/dist/scripts/validate-manifest-cli.d.ts.map +1 -0
- package/dist/scripts/validate-manifest-cli.js +38 -0
- package/dist/scripts/validate-manifest-cli.js.map +1 -0
- package/dist/tests/cc-memory-sync.test.js +3 -3
- package/dist/tests/chunks-migration.test.js +1 -1
- package/dist/tests/compaction-snapshot.test.js +2 -2
- package/dist/tests/consolidation.test.js +3 -3
- package/dist/tests/decay.test.js +9 -9
- package/dist/tests/diary.test.js +4 -4
- package/dist/tests/episode-file.test.js +2 -1
- package/dist/tests/episode-file.test.js.map +1 -1
- package/dist/tests/episodes-inject.test.js +9 -9
- package/dist/tests/fetch-raw.test.js +1 -2
- package/dist/tests/fetch-raw.test.js.map +1 -1
- package/dist/tests/fts5.test.js +75 -75
- package/dist/tests/fuzzy.test.js +1 -1
- package/dist/tests/git-snapshot.test.js +3 -5
- package/dist/tests/git-snapshot.test.js.map +1 -1
- package/dist/tests/helpers/db.d.ts +1 -2
- package/dist/tests/helpers/db.d.ts.map +1 -1
- package/dist/tests/helpers/db.js +18 -26
- package/dist/tests/helpers/db.js.map +1 -1
- package/dist/tests/manifest-v2.test.d.ts +2 -0
- package/dist/tests/manifest-v2.test.d.ts.map +1 -0
- package/dist/tests/manifest-v2.test.js +74 -0
- package/dist/tests/manifest-v2.test.js.map +1 -0
- 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 +4 -4
- package/dist/tests/migrations-v068.test.js +6 -3
- package/dist/tests/migrations-v068.test.js.map +1 -1
- package/dist/tests/nomination-counts.test.js +6 -6
- package/dist/tests/nomination-counts.test.js.map +1 -1
- package/dist/tests/pre-compact.test.js +2 -1
- package/dist/tests/pre-compact.test.js.map +1 -1
- package/dist/tests/recall-telemetry.test.js +12 -11
- package/dist/tests/recall-telemetry.test.js.map +1 -1
- package/dist/tests/rrf.test.js +3 -3
- package/dist/tests/search-engine.test.js +1 -1
- package/dist/tests/search-hook.test.js +2 -2
- package/dist/tests/search-offload.test.js +1 -1
- package/dist/tests/search-offload.test.js.map +1 -1
- package/dist/tests/secure-io.test.d.ts +2 -0
- package/dist/tests/secure-io.test.d.ts.map +1 -0
- package/dist/tests/secure-io.test.js +65 -0
- package/dist/tests/secure-io.test.js.map +1 -0
- package/dist/tests/session-payload.test.js +1 -1
- package/dist/tests/session-summary.test.js +1 -1
- package/dist/tests/similarity.test.js +1 -1
- package/dist/tests/skill-path-resolution.test.js +22 -3
- package/dist/tests/skill-path-resolution.test.js.map +1 -1
- package/dist/tests/triage.test.js +1 -1
- package/hooks/lib/constants.cjs +15 -15
- package/hooks/lib/mindlore-common.cjs +975 -974
- 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 +98 -97
- package/hooks/mindlore-index.cjs +230 -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 +510 -509
- package/hooks/mindlore-session-focus.cjs +256 -256
- package/package.json +76 -75
- package/plugin.json +2 -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
|
@@ -16,7 +16,7 @@ let baseDir;
|
|
|
16
16
|
const PROJECT = 'test-project';
|
|
17
17
|
function insertEpisode(kind, summary, opts = {}) {
|
|
18
18
|
const id = `ep-${Math.random().toString(36).slice(2, 10)}`;
|
|
19
|
-
db.prepare(`INSERT INTO episodes (id, kind, scope, project, summary, status, created_at)
|
|
19
|
+
db.prepare(`INSERT INTO episodes (id, kind, scope, project, summary, status, created_at)
|
|
20
20
|
VALUES (?, ?, 'project', ?, ?, ?, ?)`).run(id, kind, opts.project ?? PROJECT, summary, opts.status ?? 'active', opts.created_at ?? new Date().toISOString());
|
|
21
21
|
}
|
|
22
22
|
function writeDelta(filename, content) {
|
|
@@ -116,7 +116,7 @@ describe('session summary → DB → payload integration', () => {
|
|
|
116
116
|
afterEach(() => (0, db_js_1.destroyEpisodesTestEnv)(env));
|
|
117
117
|
it('session-summary episode is readable by buildSessionPayload', () => {
|
|
118
118
|
const summary = 'Intent: v0.6.3 search engine | Son: commit atıldı';
|
|
119
|
-
env.db.prepare(`INSERT INTO episodes (kind, scope, project, summary, session_summary, status, created_at)
|
|
119
|
+
env.db.prepare(`INSERT INTO episodes (kind, scope, project, summary, session_summary, status, created_at)
|
|
120
120
|
VALUES ('session-summary', 'project', 'test-proj', ?, ?, 'active', datetime('now'))`).run(summary, summary);
|
|
121
121
|
const payload = (0, session_payload_js_1.buildSessionPayload)({ db: env.db, baseDir: env.tmpDir, project: 'test-proj', tokenBudget: 5000 });
|
|
122
122
|
const pastSessions = payload.sections.find(s => s.label === 'Past Sessions');
|
|
@@ -10,7 +10,7 @@ const TEST_DIR = path_1.default.join(__dirname, '..', '.test-similarity');
|
|
|
10
10
|
const DB_PATH = path_1.default.join(TEST_DIR, 'mindlore.db');
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
(0, db_js_1.setupTestDir)(TEST_DIR, ['sources']);
|
|
13
|
-
const db = (0, db_js_1.
|
|
13
|
+
const db = (0, db_js_1.createTestDbWithFullSchema)(DB_PATH);
|
|
14
14
|
(0, db_js_1.insertFts)(db, {
|
|
15
15
|
path: path_1.default.join(TEST_DIR, 'sources', 'react-hooks.md'),
|
|
16
16
|
slug: 'react-hooks',
|
|
@@ -9,13 +9,32 @@ const os_1 = __importDefault(require("os"));
|
|
|
9
9
|
const child_process_1 = require("child_process");
|
|
10
10
|
describe('Skill script path resolution', () => {
|
|
11
11
|
const mindlorePkg = path_1.default.resolve(__dirname, '..');
|
|
12
|
-
const tmpDir = path_1.default.join(os_1.default.tmpdir(),
|
|
13
|
-
beforeEach(() => fs_1.default.mkdirSync(tmpDir, { recursive: true }));
|
|
12
|
+
const tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'mindlore-path-res-'));
|
|
14
13
|
afterEach(() => fs_1.default.rmSync(tmpDir, { recursive: true, force: true }));
|
|
15
14
|
test('scripts are reachable from a different CWD via MINDLORE_PKG', () => {
|
|
16
15
|
const healthScript = path_1.default.join(mindlorePkg, 'dist', 'scripts', 'mindlore-health-check.js');
|
|
17
16
|
expect(fs_1.default.existsSync(healthScript)).toBe(true);
|
|
18
|
-
|
|
17
|
+
let result;
|
|
18
|
+
try {
|
|
19
|
+
result = (0, child_process_1.execSync)(`node "${healthScript}" "${path_1.default.join(os_1.default.homedir(), '.mindlore')}"`, { cwd: tmpDir, encoding: 'utf8', timeout: 15000 });
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
if (err && typeof err === 'object') {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
24
|
+
const obj = err;
|
|
25
|
+
const stdout = obj.stdout;
|
|
26
|
+
const stderr = obj.stderr;
|
|
27
|
+
if (typeof stdout === 'string')
|
|
28
|
+
result = stdout;
|
|
29
|
+
else if (typeof stderr === 'string')
|
|
30
|
+
result = stderr;
|
|
31
|
+
else
|
|
32
|
+
result = '';
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
result = '';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
19
38
|
expect(result).not.toContain('Cannot find module');
|
|
20
39
|
});
|
|
21
40
|
test('skill preamble pattern resolves correctly', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-path-resolution.test.js","sourceRoot":"","sources":["../../tests/skill-path-resolution.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,iDAAyC;AAEzC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"skill-path-resolution.test.js","sourceRoot":"","sources":["../../tests/skill-path-resolution.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ describe('raw inbox triage', () => {
|
|
|
57
57
|
it('caches metadata in raw_metadata table', () => {
|
|
58
58
|
fs_1.default.writeFileSync(path_1.default.join(tmpDir, 'raw', 'cached.md'), '# Cached\nContent');
|
|
59
59
|
const dbPath = path_1.default.join(tmpDir, 'mindlore.db');
|
|
60
|
-
const db = (0, db_js_1.
|
|
60
|
+
const db = (0, db_js_1.createTestDbWithFullSchema)(dbPath);
|
|
61
61
|
(0, triage_js_1.cacheRawMetadata)(db, path_1.default.join(tmpDir, 'raw', 'cached.md'), tmpDir);
|
|
62
62
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
63
63
|
const row = db.prepare("SELECT * FROM raw_metadata WHERE path = ?").get('raw/cached.md');
|
package/hooks/lib/constants.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const EPISODE_KINDS = [
|
|
4
|
-
'session', 'decision', 'event', 'preference',
|
|
5
|
-
'learning', 'friction', 'discovery', 'nomination',
|
|
6
|
-
'session-summary'
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
function isValidKind(kind) {
|
|
10
|
-
return typeof kind === 'string' && EPISODE_KINDS.includes(kind);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const DB_BUSY_TIMEOUT_MS = 2000;
|
|
14
|
-
|
|
15
|
-
module.exports = { EPISODE_KINDS, isValidKind, DB_BUSY_TIMEOUT_MS };
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const EPISODE_KINDS = [
|
|
4
|
+
'session', 'decision', 'event', 'preference',
|
|
5
|
+
'learning', 'friction', 'discovery', 'nomination',
|
|
6
|
+
'session-summary'
|
|
7
|
+
];
|
|
8
|
+
|
|
9
|
+
function isValidKind(kind) {
|
|
10
|
+
return typeof kind === 'string' && EPISODE_KINDS.includes(kind);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const DB_BUSY_TIMEOUT_MS = 2000;
|
|
14
|
+
|
|
15
|
+
module.exports = { EPISODE_KINDS, isValidKind, DB_BUSY_TIMEOUT_MS };
|