mindlore 0.3.5 → 0.4.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 +9 -6
- package/dist/scripts/init.js +9 -1
- package/dist/scripts/init.js.map +1 -1
- package/dist/scripts/lib/episodes.d.ts +66 -0
- package/dist/scripts/lib/episodes.d.ts.map +1 -0
- package/dist/scripts/lib/episodes.js +180 -0
- package/dist/scripts/lib/episodes.js.map +1 -0
- package/dist/scripts/mindlore-episodes.d.ts +12 -0
- package/dist/scripts/mindlore-episodes.d.ts.map +1 -0
- package/dist/scripts/mindlore-episodes.js +193 -0
- package/dist/scripts/mindlore-episodes.js.map +1 -0
- package/dist/tests/diary.test.d.ts +6 -0
- package/dist/tests/diary.test.d.ts.map +1 -0
- package/dist/tests/diary.test.js +169 -0
- package/dist/tests/diary.test.js.map +1 -0
- package/dist/tests/episodes-inject.test.d.ts +6 -0
- package/dist/tests/episodes-inject.test.d.ts.map +1 -0
- package/dist/tests/episodes-inject.test.js +161 -0
- package/dist/tests/episodes-inject.test.js.map +1 -0
- package/dist/tests/episodes.test.d.ts +5 -0
- package/dist/tests/episodes.test.d.ts.map +1 -0
- package/dist/tests/episodes.test.js +254 -0
- package/dist/tests/episodes.test.js.map +1 -0
- package/dist/tests/helpers/db.d.ts +7 -0
- package/dist/tests/helpers/db.d.ts.map +1 -1
- package/dist/tests/helpers/db.js +20 -1
- package/dist/tests/helpers/db.js.map +1 -1
- package/dist/tests/nomination.test.d.ts +2 -0
- package/dist/tests/nomination.test.d.ts.map +1 -0
- package/dist/tests/nomination.test.js +94 -0
- package/dist/tests/nomination.test.js.map +1 -0
- package/dist/tests/session-focus.test.js +82 -0
- package/dist/tests/session-focus.test.js.map +1 -1
- package/dist/tests/supersedes-chain.test.d.ts +2 -0
- package/dist/tests/supersedes-chain.test.d.ts.map +1 -0
- package/dist/tests/supersedes-chain.test.js +109 -0
- package/dist/tests/supersedes-chain.test.js.map +1 -0
- package/hooks/lib/mindlore-common.cjs +260 -1
- package/hooks/mindlore-index.cjs +17 -14
- package/hooks/mindlore-post-read.cjs +11 -2
- package/hooks/mindlore-pre-compact.cjs +2 -2
- package/hooks/mindlore-read-guard.cjs +12 -4
- package/hooks/mindlore-search.cjs +39 -1
- package/hooks/mindlore-session-end.cjs +105 -22
- package/hooks/mindlore-session-focus.cjs +56 -2
- package/package.json +1 -1
- package/plugin.json +8 -8
- package/skills/mindlore-evolve/SKILL.md +8 -4
- package/skills/mindlore-explore/SKILL.md +8 -4
- package/skills/mindlore-log/SKILL.md +134 -17
- package/skills/mindlore-query/SKILL.md +8 -5
- package/templates/config.json +5 -1
package/README.md
CHANGED
|
@@ -53,6 +53,9 @@ npx mindlore backup init # Git-based backup for ~/.mindlore/
|
|
|
53
53
|
npx mindlore backup status # Show backup status + last commit
|
|
54
54
|
npx mindlore obsidian export --vault /path # Export to Obsidian vault
|
|
55
55
|
npx mindlore obsidian import --vault /path # Import from Obsidian vault
|
|
56
|
+
npx mindlore episodes list # List recent episodes
|
|
57
|
+
npx mindlore episodes search "query" # Search episodic memory
|
|
58
|
+
npx mindlore episodes count # Episode count per project
|
|
56
59
|
```
|
|
57
60
|
|
|
58
61
|
## Features
|
|
@@ -62,7 +65,7 @@ npx mindlore obsidian import --vault /path # Import from Obsidian vault
|
|
|
62
65
|
| `/mindlore-ingest` | Add knowledge sources (URL, text, file, PDF) + 6-point quality gate |
|
|
63
66
|
| `/mindlore-health` | 16-point structural health check |
|
|
64
67
|
| `/mindlore-query` | Search, ask, stats, brief — compounding knowledge pipeline |
|
|
65
|
-
| `/mindlore-log` | Session logging
|
|
68
|
+
| `/mindlore-log` | Session logging, diary analysis, reflect pattern extraction |
|
|
66
69
|
| `/mindlore-decide` | Decision records with supersedes chain |
|
|
67
70
|
| `/mindlore-evolve` | Schema co-evolution and structural updates |
|
|
68
71
|
| `/mindlore-explore` | Cross-reference discovery between sources |
|
|
@@ -181,19 +184,19 @@ Skills spawn subagents with `[mindlore:SKILL]` markers — the model-router hook
|
|
|
181
184
|
|
|
182
185
|
## Hooks
|
|
183
186
|
|
|
184
|
-
13 Claude Code lifecycle hooks (v0.
|
|
187
|
+
13 Claude Code lifecycle hooks (v0.4.1):
|
|
185
188
|
|
|
186
189
|
| Event | Hook | What it does |
|
|
187
190
|
|-------|------|-------------|
|
|
188
|
-
| SessionStart | session-focus | Injects last delta + INDEX + version check |
|
|
189
|
-
| UserPromptSubmit | search | FTS5 search, project-scoped
|
|
191
|
+
| SessionStart | session-focus | Injects last delta + INDEX + last 3 episodes + version check |
|
|
192
|
+
| UserPromptSubmit | search | FTS5 search + episodes recall, project-scoped |
|
|
190
193
|
| UserPromptSubmit | decision-detector | TR+EN decision signal detection |
|
|
191
194
|
| FileChanged | index | Sync changed files to FTS5 |
|
|
192
195
|
| FileChanged | fts5-sync | Incremental batch re-index |
|
|
193
|
-
| SessionEnd | session-end | Structured delta +
|
|
196
|
+
| SessionEnd | session-end | Structured delta + bare episode + FTS5 mirror + git sync |
|
|
194
197
|
| PreCompact | pre-compact | FTS5 flush before compaction |
|
|
195
198
|
| PostCompact | post-compact | Re-inject context |
|
|
196
|
-
| PreToolUse (Read) | read-guard | Repeated-read warning +
|
|
199
|
+
| PreToolUse (Read) | read-guard | Repeated-read warning, blocks 3+ repeats |
|
|
197
200
|
| PostToolUse (Read) | post-read | Token estimation per file read |
|
|
198
201
|
| PreToolUse (Write\|Edit) | dont-repeat | LESSONS/learnings rule enforcement |
|
|
199
202
|
| CwdChanged | cwd-changed | Scope detection + _scope.json write |
|
package/dist/scripts/init.js
CHANGED
|
@@ -19,7 +19,7 @@ const constants_js_1 = require("./lib/constants.js");
|
|
|
19
19
|
const db_helpers_js_1 = require("./lib/db-helpers.js");
|
|
20
20
|
const safe_parse_js_1 = require("./lib/safe-parse.js");
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- dynamic CJS require, typed by mindlore-common.d.cts
|
|
22
|
-
const { SQL_FTS_CREATE } = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
22
|
+
const { SQL_FTS_CREATE, ensureEpisodesTable: ensureEpisodesTableCjs } = require((0, constants_js_1.resolveHookCommon)(__dirname));
|
|
23
23
|
const TEMPLATE_FILES = ['INDEX.md', 'log.md'];
|
|
24
24
|
// ── Helpers ────────────────────────────────────────────────────────────
|
|
25
25
|
function resolvePackageRoot() {
|
|
@@ -138,6 +138,10 @@ function createDatabase(baseDir) {
|
|
|
138
138
|
else {
|
|
139
139
|
(0, constants_js_1.log)('Database already exists, schema OK');
|
|
140
140
|
}
|
|
141
|
+
// Idempotent: ensure episodes table on pre-v0.4 databases
|
|
142
|
+
const dbEp = new DatabaseCtor(dbPath);
|
|
143
|
+
ensureEpisodesTableCjs(dbEp);
|
|
144
|
+
dbEp.close();
|
|
141
145
|
return migrated;
|
|
142
146
|
}
|
|
143
147
|
const db = new DatabaseCtor(dbPath);
|
|
@@ -150,6 +154,8 @@ function createDatabase(baseDir) {
|
|
|
150
154
|
last_indexed TEXT NOT NULL
|
|
151
155
|
);
|
|
152
156
|
`);
|
|
157
|
+
// Idempotent: pre-v0.4 installs won't have this table
|
|
158
|
+
ensureEpisodesTableCjs(db);
|
|
153
159
|
db.close();
|
|
154
160
|
return true;
|
|
155
161
|
}
|
|
@@ -348,6 +354,7 @@ function main() {
|
|
|
348
354
|
quality: { script: './quality-populate.js', passArgs: false },
|
|
349
355
|
backup: { script: './mindlore-backup.js', passArgs: true },
|
|
350
356
|
obsidian: { script: './mindlore-obsidian.js', passArgs: true },
|
|
357
|
+
episodes: { script: './mindlore-episodes.js', passArgs: true },
|
|
351
358
|
};
|
|
352
359
|
const cliCmd = command ? cliCommands[command] : undefined;
|
|
353
360
|
if (cliCmd) {
|
|
@@ -372,6 +379,7 @@ function main() {
|
|
|
372
379
|
console.log(' npx mindlore quality');
|
|
373
380
|
console.log(' npx mindlore backup init|status|remote|now');
|
|
374
381
|
console.log(' npx mindlore obsidian export|import|status');
|
|
382
|
+
console.log(' npx mindlore episodes list|search|show');
|
|
375
383
|
process.exit(1);
|
|
376
384
|
}
|
|
377
385
|
const isRecommended = args.includes('--recommended');
|
package/dist/scripts/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../scripts/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../scripts/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Episodes CRUD helpers for Mindlore episodic memory.
|
|
3
|
+
* v0.4.1: session/decision/event/preference/learning/friction/discovery/nomination episodes.
|
|
4
|
+
*
|
|
5
|
+
* Episodes live in a regular SQLite table (not FTS5) for structured queries.
|
|
6
|
+
* Optionally mirrored to FTS5 for text search.
|
|
7
|
+
*/
|
|
8
|
+
import type BetterSqlite3 from 'better-sqlite3';
|
|
9
|
+
type Database = BetterSqlite3.Database;
|
|
10
|
+
export declare const EPISODE_KINDS: readonly ["session", "decision", "event", "preference", "learning", "friction", "discovery", "nomination"];
|
|
11
|
+
export type EpisodeKind = typeof EPISODE_KINDS[number];
|
|
12
|
+
export declare const EPISODE_SCOPES: readonly ["project", "global"];
|
|
13
|
+
export type EpisodeScope = typeof EPISODE_SCOPES[number];
|
|
14
|
+
export declare const EPISODE_STATUSES: readonly ["active", "superseded", "deleted", "staged", "reviewed", "approved", "rejected"];
|
|
15
|
+
export type EpisodeStatus = typeof EPISODE_STATUSES[number];
|
|
16
|
+
export declare const EPISODE_SOURCES: readonly ["hook", "diary", "reflect", "decide", "manual"];
|
|
17
|
+
export type EpisodeSource = typeof EPISODE_SOURCES[number];
|
|
18
|
+
export interface Episode {
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
id: string;
|
|
21
|
+
kind: EpisodeKind;
|
|
22
|
+
scope: EpisodeScope;
|
|
23
|
+
project: string | null;
|
|
24
|
+
summary: string;
|
|
25
|
+
body: string | null;
|
|
26
|
+
tags: string | null;
|
|
27
|
+
entities: string | null;
|
|
28
|
+
parent_id: string | null;
|
|
29
|
+
status: EpisodeStatus;
|
|
30
|
+
supersedes: string | null;
|
|
31
|
+
source: EpisodeSource;
|
|
32
|
+
created_at: string;
|
|
33
|
+
}
|
|
34
|
+
export interface CreateEpisodeInput {
|
|
35
|
+
kind: EpisodeKind;
|
|
36
|
+
summary: string;
|
|
37
|
+
scope?: EpisodeScope;
|
|
38
|
+
project?: string | null;
|
|
39
|
+
body?: string | null;
|
|
40
|
+
tags?: string | null;
|
|
41
|
+
entities?: string[] | null;
|
|
42
|
+
parent_id?: string | null;
|
|
43
|
+
supersedes?: string | null;
|
|
44
|
+
source?: EpisodeSource;
|
|
45
|
+
}
|
|
46
|
+
export interface QueryEpisodesOptions {
|
|
47
|
+
kind?: EpisodeKind;
|
|
48
|
+
scope?: EpisodeScope;
|
|
49
|
+
project?: string | null;
|
|
50
|
+
status?: EpisodeStatus;
|
|
51
|
+
source?: EpisodeSource;
|
|
52
|
+
limit?: number;
|
|
53
|
+
since?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare const SQL_EPISODES_CREATE = "\nCREATE TABLE IF NOT EXISTS episodes (\n id TEXT PRIMARY KEY,\n kind TEXT NOT NULL,\n scope TEXT NOT NULL DEFAULT 'project',\n project TEXT,\n summary TEXT NOT NULL,\n body TEXT,\n tags TEXT,\n entities TEXT,\n parent_id TEXT,\n status TEXT NOT NULL DEFAULT 'active',\n supersedes TEXT,\n source TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_episodes_kind ON episodes(kind, status);\nCREATE INDEX IF NOT EXISTS idx_episodes_project ON episodes(project, status);\nCREATE INDEX IF NOT EXISTS idx_episodes_created ON episodes(created_at DESC);\n";
|
|
56
|
+
export declare function createEpisode(db: Database, input: CreateEpisodeInput): Episode;
|
|
57
|
+
export declare function getEpisode(db: Database, id: string): Episode | undefined;
|
|
58
|
+
export declare function queryEpisodes(db: Database, opts?: QueryEpisodesOptions): Episode[];
|
|
59
|
+
export declare function supersede(db: Database, oldId: string, newInput: CreateEpisodeInput): Episode;
|
|
60
|
+
export declare function deleteEpisode(db: Database, id: string): boolean;
|
|
61
|
+
export declare function countEpisodes(db: Database, project?: string): number;
|
|
62
|
+
export declare function mirrorToFts(db: Database, episode: Episode, insertFn: (db: Database, entry: Record<string, unknown>) => void): void;
|
|
63
|
+
export declare function ensureEpisodesTable(db: Database): void;
|
|
64
|
+
export declare function hasEpisodesTable(db: Database): boolean;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=episodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"episodes.d.ts","sourceRoot":"","sources":["../../../scripts/lib/episodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Episodes CRUD helpers for Mindlore episodic memory.
|
|
4
|
+
* v0.4.1: session/decision/event/preference/learning/friction/discovery/nomination episodes.
|
|
5
|
+
*
|
|
6
|
+
* Episodes live in a regular SQLite table (not FTS5) for structured queries.
|
|
7
|
+
* Optionally mirrored to FTS5 for text search.
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SQL_EPISODES_CREATE = exports.EPISODE_SOURCES = exports.EPISODE_STATUSES = exports.EPISODE_SCOPES = exports.EPISODE_KINDS = void 0;
|
|
14
|
+
exports.createEpisode = createEpisode;
|
|
15
|
+
exports.getEpisode = getEpisode;
|
|
16
|
+
exports.queryEpisodes = queryEpisodes;
|
|
17
|
+
exports.supersede = supersede;
|
|
18
|
+
exports.deleteEpisode = deleteEpisode;
|
|
19
|
+
exports.countEpisodes = countEpisodes;
|
|
20
|
+
exports.mirrorToFts = mirrorToFts;
|
|
21
|
+
exports.ensureEpisodesTable = ensureEpisodesTable;
|
|
22
|
+
exports.hasEpisodesTable = hasEpisodesTable;
|
|
23
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
24
|
+
const db_helpers_js_1 = require("./db-helpers.js");
|
|
25
|
+
// ── Types ────────────────────────────────────────────────────────────
|
|
26
|
+
exports.EPISODE_KINDS = ['session', 'decision', 'event', 'preference', 'learning', 'friction', 'discovery', 'nomination'];
|
|
27
|
+
exports.EPISODE_SCOPES = ['project', 'global'];
|
|
28
|
+
exports.EPISODE_STATUSES = ['active', 'superseded', 'deleted', 'staged', 'reviewed', 'approved', 'rejected'];
|
|
29
|
+
exports.EPISODE_SOURCES = ['hook', 'diary', 'reflect', 'decide', 'manual'];
|
|
30
|
+
// ── SQL ──────────────────────────────────────────────────────────────
|
|
31
|
+
// CO-EVOLUTION: Schema mirrors SQL_EPISODES_CREATE + SQL_EPISODES_INDEXES in hooks/lib/mindlore-common.cjs
|
|
32
|
+
// CJS hooks cannot import TS modules; keep both in sync on schema changes.
|
|
33
|
+
exports.SQL_EPISODES_CREATE = `
|
|
34
|
+
CREATE TABLE IF NOT EXISTS episodes (
|
|
35
|
+
id TEXT PRIMARY KEY,
|
|
36
|
+
kind TEXT NOT NULL,
|
|
37
|
+
scope TEXT NOT NULL DEFAULT 'project',
|
|
38
|
+
project TEXT,
|
|
39
|
+
summary TEXT NOT NULL,
|
|
40
|
+
body TEXT,
|
|
41
|
+
tags TEXT,
|
|
42
|
+
entities TEXT,
|
|
43
|
+
parent_id TEXT,
|
|
44
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
45
|
+
supersedes TEXT,
|
|
46
|
+
source TEXT,
|
|
47
|
+
created_at TEXT NOT NULL
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_episodes_kind ON episodes(kind, status);
|
|
51
|
+
CREATE INDEX IF NOT EXISTS idx_episodes_project ON episodes(project, status);
|
|
52
|
+
CREATE INDEX IF NOT EXISTS idx_episodes_created ON episodes(created_at DESC);
|
|
53
|
+
`;
|
|
54
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
55
|
+
// CO-EVOLUTION: generateId mirrors generateEpisodeId in hooks/lib/mindlore-common.cjs
|
|
56
|
+
// CJS hooks cannot import TS modules; keep both in sync on schema changes.
|
|
57
|
+
function generateId() {
|
|
58
|
+
const timestamp = Date.now().toString(36);
|
|
59
|
+
const random = crypto_1.default.randomBytes(6).toString('hex');
|
|
60
|
+
return `ep-${timestamp}-${random}`;
|
|
61
|
+
}
|
|
62
|
+
// ── CRUD ─────────────────────────────────────────────────────────────
|
|
63
|
+
function createEpisode(db, input) {
|
|
64
|
+
const id = generateId();
|
|
65
|
+
const now = new Date().toISOString();
|
|
66
|
+
const entities = input.entities ? JSON.stringify(input.entities) : null;
|
|
67
|
+
db.prepare(`
|
|
68
|
+
INSERT INTO episodes (id, kind, scope, project, summary, body, tags, entities, parent_id, status, supersedes, source, created_at)
|
|
69
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'active', ?, ?, ?)
|
|
70
|
+
`).run(id, input.kind, input.scope ?? 'project', input.project ?? null, input.summary, input.body ?? null, input.tags ?? null, entities, input.parent_id ?? null, input.supersedes ?? null, input.source ?? 'manual', now);
|
|
71
|
+
// If superseding, mark old episode
|
|
72
|
+
if (input.supersedes) {
|
|
73
|
+
db.prepare(`UPDATE episodes SET status = 'superseded' WHERE id = ?`).run(input.supersedes);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
id,
|
|
77
|
+
kind: input.kind,
|
|
78
|
+
scope: input.scope ?? 'project',
|
|
79
|
+
project: input.project ?? null,
|
|
80
|
+
summary: input.summary,
|
|
81
|
+
body: input.body ?? null,
|
|
82
|
+
tags: input.tags ?? null,
|
|
83
|
+
entities,
|
|
84
|
+
parent_id: input.parent_id ?? null,
|
|
85
|
+
status: 'active',
|
|
86
|
+
supersedes: input.supersedes ?? null,
|
|
87
|
+
source: input.source ?? 'manual',
|
|
88
|
+
created_at: now,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function getEpisode(db, id) {
|
|
92
|
+
return (0, db_helpers_js_1.dbGet)(db, 'SELECT * FROM episodes WHERE id = ?', id);
|
|
93
|
+
}
|
|
94
|
+
function queryEpisodes(db, opts = {}) {
|
|
95
|
+
const conditions = [];
|
|
96
|
+
const params = [];
|
|
97
|
+
if (opts.kind) {
|
|
98
|
+
conditions.push('kind = ?');
|
|
99
|
+
params.push(opts.kind);
|
|
100
|
+
}
|
|
101
|
+
if (opts.scope) {
|
|
102
|
+
conditions.push('scope = ?');
|
|
103
|
+
params.push(opts.scope);
|
|
104
|
+
}
|
|
105
|
+
if (opts.project !== undefined) {
|
|
106
|
+
if (opts.project === null) {
|
|
107
|
+
conditions.push('project IS NULL');
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
conditions.push('project = ?');
|
|
111
|
+
params.push(opts.project);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (opts.status) {
|
|
115
|
+
conditions.push('status = ?');
|
|
116
|
+
params.push(opts.status);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Default: only active
|
|
120
|
+
conditions.push("status = 'active'");
|
|
121
|
+
}
|
|
122
|
+
if (opts.source) {
|
|
123
|
+
conditions.push('source = ?');
|
|
124
|
+
params.push(opts.source);
|
|
125
|
+
}
|
|
126
|
+
if (opts.since) {
|
|
127
|
+
conditions.push('created_at >= ?');
|
|
128
|
+
params.push(opts.since);
|
|
129
|
+
}
|
|
130
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
131
|
+
const limit = opts.limit ?? 50;
|
|
132
|
+
return (0, db_helpers_js_1.dbAll)(db, `SELECT * FROM episodes ${where} ORDER BY created_at DESC LIMIT ?`, ...params, limit);
|
|
133
|
+
}
|
|
134
|
+
function supersede(db, oldId, newInput) {
|
|
135
|
+
return createEpisode(db, { ...newInput, supersedes: oldId });
|
|
136
|
+
}
|
|
137
|
+
function deleteEpisode(db, id) {
|
|
138
|
+
const result = db.prepare(`UPDATE episodes SET status = 'deleted' WHERE id = ? AND status != 'deleted'`).run(id);
|
|
139
|
+
return result.changes > 0;
|
|
140
|
+
}
|
|
141
|
+
function countEpisodes(db, project) {
|
|
142
|
+
if (project) {
|
|
143
|
+
const row = (0, db_helpers_js_1.dbGet)(db, "SELECT COUNT(*) as cnt FROM episodes WHERE project = ? AND status = 'active'", project);
|
|
144
|
+
return row?.cnt ?? 0;
|
|
145
|
+
}
|
|
146
|
+
const row = (0, db_helpers_js_1.dbGet)(db, "SELECT COUNT(*) as cnt FROM episodes WHERE status = 'active'");
|
|
147
|
+
return row?.cnt ?? 0;
|
|
148
|
+
}
|
|
149
|
+
// ── FTS5 Mirror ──────────────────────────────────────────────────────
|
|
150
|
+
function mirrorToFts(db, episode, insertFn) {
|
|
151
|
+
insertFn(db, {
|
|
152
|
+
path: `episodes/${episode.id}`,
|
|
153
|
+
slug: `ep-${episode.id}`,
|
|
154
|
+
description: episode.summary,
|
|
155
|
+
type: 'episode',
|
|
156
|
+
category: 'episodes',
|
|
157
|
+
title: episode.summary,
|
|
158
|
+
content: [episode.summary, episode.body ?? ''].join('\n').trim(),
|
|
159
|
+
tags: [episode.kind, episode.tags ?? ''].filter(Boolean).join(', '),
|
|
160
|
+
quality: null,
|
|
161
|
+
dateCaptured: episode.created_at,
|
|
162
|
+
project: episode.project,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// ── Table Check ──────────────────────────────────────────────────────
|
|
166
|
+
function ensureEpisodesTable(db) {
|
|
167
|
+
// Split the SQL since it contains multiple statements
|
|
168
|
+
const statements = exports.SQL_EPISODES_CREATE
|
|
169
|
+
.split(';')
|
|
170
|
+
.map(s => s.trim())
|
|
171
|
+
.filter(Boolean);
|
|
172
|
+
for (const stmt of statements) {
|
|
173
|
+
db.exec(stmt);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
function hasEpisodesTable(db) {
|
|
177
|
+
const row = (0, db_helpers_js_1.dbGet)(db, "SELECT name FROM sqlite_master WHERE type='table' AND name='episodes'");
|
|
178
|
+
return row !== undefined;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=episodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"episodes.js","sourceRoot":"","sources":["../../../scripts/lib/episodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* mindlore episodes — CLI for querying episodic memory.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx mindlore episodes list [--kind <kind>] [--project <name>] [--limit <n>]
|
|
7
|
+
* npx mindlore episodes search <query>
|
|
8
|
+
* npx mindlore episodes show <id>
|
|
9
|
+
* npx mindlore episodes count [--project <name>]
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=mindlore-episodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mindlore-episodes.d.ts","sourceRoot":"","sources":["../../scripts/mindlore-episodes.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* mindlore episodes — CLI for querying episodic memory.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx mindlore episodes list [--kind <kind>] [--project <name>] [--limit <n>]
|
|
8
|
+
* npx mindlore episodes search <query>
|
|
9
|
+
* npx mindlore episodes show <id>
|
|
10
|
+
* npx mindlore episodes count [--project <name>]
|
|
11
|
+
*/
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const constants_js_1 = require("./lib/constants.js");
|
|
18
|
+
const episodes_js_1 = require("./lib/episodes.js");
|
|
19
|
+
const db_helpers_js_1 = require("./lib/db-helpers.js");
|
|
20
|
+
function openDb() {
|
|
21
|
+
try {
|
|
22
|
+
const Database = require('better-sqlite3');
|
|
23
|
+
const dbPath = path_1.default.join(constants_js_1.GLOBAL_MINDLORE_DIR, constants_js_1.DB_NAME);
|
|
24
|
+
return new Database(dbPath, { readonly: true });
|
|
25
|
+
}
|
|
26
|
+
catch (_err) {
|
|
27
|
+
console.error('Error: Could not open mindlore database.');
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function parseArgs(args) {
|
|
32
|
+
const result = {};
|
|
33
|
+
for (let i = 0; i < args.length; i++) {
|
|
34
|
+
const arg = args[i];
|
|
35
|
+
if (arg.startsWith('--') && i + 1 < args.length) {
|
|
36
|
+
result[arg.slice(2)] = args[i + 1];
|
|
37
|
+
i++;
|
|
38
|
+
}
|
|
39
|
+
else if (!arg.startsWith('--')) {
|
|
40
|
+
result[`_${Object.keys(result).filter(k => k.startsWith('_')).length}`] = arg;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
function cmdList(args) {
|
|
46
|
+
const db = openDb();
|
|
47
|
+
if (!db)
|
|
48
|
+
return;
|
|
49
|
+
const parsed = parseArgs(args);
|
|
50
|
+
const opts = {};
|
|
51
|
+
if (parsed['kind']) {
|
|
52
|
+
const kindInput = parsed['kind'];
|
|
53
|
+
const validKind = episodes_js_1.EPISODE_KINDS.find(k => k === kindInput);
|
|
54
|
+
if (!validKind) {
|
|
55
|
+
console.error(`Invalid kind: ${kindInput}. Valid: ${episodes_js_1.EPISODE_KINDS.join(', ')}`);
|
|
56
|
+
db.close();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
opts.kind = validKind;
|
|
60
|
+
}
|
|
61
|
+
if (parsed['project'])
|
|
62
|
+
opts.project = parsed['project'];
|
|
63
|
+
if (parsed['limit'])
|
|
64
|
+
opts.limit = parseInt(parsed['limit'], 10) || 50;
|
|
65
|
+
if (parsed['since'])
|
|
66
|
+
opts.since = parsed['since'];
|
|
67
|
+
const episodes = (0, episodes_js_1.queryEpisodes)(db, opts);
|
|
68
|
+
db.close();
|
|
69
|
+
if (episodes.length === 0) {
|
|
70
|
+
console.log('No episodes found.');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
console.log(`\n Episodes (${episodes.length}):\n`);
|
|
74
|
+
for (const ep of episodes) {
|
|
75
|
+
const date = ep.created_at.slice(0, 10);
|
|
76
|
+
const project = ep.project ? ` [${ep.project}]` : '';
|
|
77
|
+
console.log(` ${date} ${ep.kind.padEnd(12)} ${ep.summary.slice(0, 80)}${project}`);
|
|
78
|
+
console.log(` id: ${ep.id} source: ${ep.source}`);
|
|
79
|
+
}
|
|
80
|
+
console.log('');
|
|
81
|
+
}
|
|
82
|
+
function cmdSearch(args) {
|
|
83
|
+
const query = args.join(' ').trim();
|
|
84
|
+
if (!query) {
|
|
85
|
+
console.error('Usage: npx mindlore episodes search <query>');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const db = openDb();
|
|
89
|
+
if (!db)
|
|
90
|
+
return;
|
|
91
|
+
// Search in summary + body using LIKE (episodes is regular table, not FTS5)
|
|
92
|
+
const pattern = `%${query}%`;
|
|
93
|
+
const results = (0, db_helpers_js_1.dbAll)(db, "SELECT id, kind, summary, project, created_at, source FROM episodes WHERE status = 'active' AND (summary LIKE ? OR body LIKE ?) ORDER BY created_at DESC LIMIT 20", pattern, pattern);
|
|
94
|
+
db.close();
|
|
95
|
+
if (results.length === 0) {
|
|
96
|
+
console.log(`No episodes matching "${query}".`);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
console.log(`\n Search: "${query}" (${results.length} results)\n`);
|
|
100
|
+
for (const ep of results) {
|
|
101
|
+
const date = ep.created_at.slice(0, 10);
|
|
102
|
+
const project = ep.project ? ` [${ep.project}]` : '';
|
|
103
|
+
console.log(` ${date} ${ep.kind.padEnd(12)} ${ep.summary.slice(0, 80)}${project}`);
|
|
104
|
+
console.log(` id: ${ep.id}`);
|
|
105
|
+
}
|
|
106
|
+
console.log('');
|
|
107
|
+
}
|
|
108
|
+
function cmdShow(args) {
|
|
109
|
+
const id = args[0];
|
|
110
|
+
if (!id) {
|
|
111
|
+
console.error('Usage: npx mindlore episodes show <id>');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const db = openDb();
|
|
115
|
+
if (!db)
|
|
116
|
+
return;
|
|
117
|
+
const ep = (0, episodes_js_1.getEpisode)(db, id);
|
|
118
|
+
db.close();
|
|
119
|
+
if (!ep) {
|
|
120
|
+
console.error(`Episode not found: ${id}`);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
console.log(`\n Episode: ${ep.id}`);
|
|
124
|
+
console.log(` Kind: ${ep.kind}`);
|
|
125
|
+
console.log(` Status: ${ep.status}`);
|
|
126
|
+
console.log(` Scope: ${ep.scope}`);
|
|
127
|
+
console.log(` Project: ${ep.project ?? '(global)'}`);
|
|
128
|
+
console.log(` Source: ${ep.source}`);
|
|
129
|
+
console.log(` Created: ${ep.created_at}`);
|
|
130
|
+
if (ep.tags)
|
|
131
|
+
console.log(` Tags: ${ep.tags}`);
|
|
132
|
+
if (ep.parent_id)
|
|
133
|
+
console.log(` Parent: ${ep.parent_id}`);
|
|
134
|
+
if (ep.supersedes)
|
|
135
|
+
console.log(` Supersedes: ${ep.supersedes}`);
|
|
136
|
+
if (ep.entities) {
|
|
137
|
+
try {
|
|
138
|
+
const parsed = JSON.parse(ep.entities);
|
|
139
|
+
const entities = Array.isArray(parsed) ? parsed.map(String) : [String(parsed)];
|
|
140
|
+
console.log(` Entities: ${entities.join(', ')}`);
|
|
141
|
+
}
|
|
142
|
+
catch (_err) {
|
|
143
|
+
console.log(` Entities: ${ep.entities}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
console.log(`\n Summary: ${ep.summary}`);
|
|
147
|
+
if (ep.body) {
|
|
148
|
+
console.log(`\n${ep.body}`);
|
|
149
|
+
}
|
|
150
|
+
console.log('');
|
|
151
|
+
}
|
|
152
|
+
function cmdCount(args) {
|
|
153
|
+
const db = openDb();
|
|
154
|
+
if (!db)
|
|
155
|
+
return;
|
|
156
|
+
const parsed = parseArgs(args);
|
|
157
|
+
const project = parsed['project'] ?? (0, constants_js_1.getProjectName)();
|
|
158
|
+
const total = (0, episodes_js_1.countEpisodes)(db);
|
|
159
|
+
const projectCount = (0, episodes_js_1.countEpisodes)(db, project);
|
|
160
|
+
db.close();
|
|
161
|
+
console.log(`\n Episodes: ${total} total, ${projectCount} in ${project}\n`);
|
|
162
|
+
}
|
|
163
|
+
function main() {
|
|
164
|
+
const args = process.argv.slice(2);
|
|
165
|
+
const command = args[0];
|
|
166
|
+
switch (command) {
|
|
167
|
+
case 'list':
|
|
168
|
+
cmdList(args.slice(1));
|
|
169
|
+
break;
|
|
170
|
+
case 'search':
|
|
171
|
+
cmdSearch(args.slice(1));
|
|
172
|
+
break;
|
|
173
|
+
case 'show':
|
|
174
|
+
cmdShow(args.slice(1));
|
|
175
|
+
break;
|
|
176
|
+
case 'count':
|
|
177
|
+
cmdCount(args.slice(1));
|
|
178
|
+
break;
|
|
179
|
+
default:
|
|
180
|
+
console.log('Usage: npx mindlore episodes <command>');
|
|
181
|
+
console.log('');
|
|
182
|
+
console.log('Commands:');
|
|
183
|
+
console.log(' list [--kind <kind>] [--project <name>] [--limit <n>]');
|
|
184
|
+
console.log(' search <query>');
|
|
185
|
+
console.log(' show <id>');
|
|
186
|
+
console.log(' count [--project <name>]');
|
|
187
|
+
console.log('');
|
|
188
|
+
console.log(`Kinds: ${episodes_js_1.EPISODE_KINDS.join(', ')}`);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
main();
|
|
193
|
+
//# sourceMappingURL=mindlore-episodes.js.map
|