cortex-engine 0.4.2 → 0.5.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.
Files changed (78) hide show
  1. package/README.md +16 -6
  2. package/dist/bin/anomalies-cmd.d.ts +17 -0
  3. package/dist/bin/anomalies-cmd.d.ts.map +1 -0
  4. package/dist/bin/anomalies-cmd.js +417 -0
  5. package/dist/bin/anomalies-cmd.js.map +1 -0
  6. package/dist/bin/cli.d.ts +5 -0
  7. package/dist/bin/cli.d.ts.map +1 -1
  8. package/dist/bin/cli.js +84 -0
  9. package/dist/bin/cli.js.map +1 -1
  10. package/dist/bin/health-cmd.d.ts +15 -0
  11. package/dist/bin/health-cmd.d.ts.map +1 -0
  12. package/dist/bin/health-cmd.js +273 -0
  13. package/dist/bin/health-cmd.js.map +1 -0
  14. package/dist/bin/init.d.ts.map +1 -1
  15. package/dist/bin/init.js +197 -13
  16. package/dist/bin/init.js.map +1 -1
  17. package/dist/bin/maintain-cmd.d.ts +17 -0
  18. package/dist/bin/maintain-cmd.d.ts.map +1 -0
  19. package/dist/bin/maintain-cmd.js +352 -0
  20. package/dist/bin/maintain-cmd.js.map +1 -0
  21. package/dist/bin/report-cmd.d.ts +17 -0
  22. package/dist/bin/report-cmd.d.ts.map +1 -0
  23. package/dist/bin/report-cmd.js +309 -0
  24. package/dist/bin/report-cmd.js.map +1 -0
  25. package/dist/bin/store-factory.d.ts +21 -0
  26. package/dist/bin/store-factory.d.ts.map +1 -0
  27. package/dist/bin/store-factory.js +64 -0
  28. package/dist/bin/store-factory.js.map +1 -0
  29. package/dist/bin/vitals-cmd.d.ts +16 -0
  30. package/dist/bin/vitals-cmd.d.ts.map +1 -0
  31. package/dist/bin/vitals-cmd.js +425 -0
  32. package/dist/bin/vitals-cmd.js.map +1 -0
  33. package/dist/core/types.d.ts +6 -0
  34. package/dist/core/types.d.ts.map +1 -1
  35. package/dist/engines/cognition.d.ts.map +1 -1
  36. package/dist/engines/cognition.js +39 -3
  37. package/dist/engines/cognition.js.map +1 -1
  38. package/dist/index.d.ts +10 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +11 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/tools.d.ts +1 -1
  43. package/dist/mcp/tools.d.ts.map +1 -1
  44. package/dist/mcp/tools.js +22 -2
  45. package/dist/mcp/tools.js.map +1 -1
  46. package/dist/tools/evolution-list.d.ts +6 -0
  47. package/dist/tools/evolution-list.d.ts.map +1 -0
  48. package/dist/tools/evolution-list.js +52 -0
  49. package/dist/tools/evolution-list.js.map +1 -0
  50. package/dist/tools/evolve.d.ts +6 -0
  51. package/dist/tools/evolve.d.ts.map +1 -0
  52. package/dist/tools/evolve.js +63 -0
  53. package/dist/tools/evolve.js.map +1 -0
  54. package/dist/tools/journal-read.d.ts +6 -0
  55. package/dist/tools/journal-read.d.ts.map +1 -0
  56. package/dist/tools/journal-read.js +59 -0
  57. package/dist/tools/journal-read.js.map +1 -0
  58. package/dist/tools/journal-write.d.ts +6 -0
  59. package/dist/tools/journal-write.d.ts.map +1 -0
  60. package/dist/tools/journal-write.js +71 -0
  61. package/dist/tools/journal-write.js.map +1 -0
  62. package/dist/tools/thread-create.d.ts +6 -0
  63. package/dist/tools/thread-create.d.ts.map +1 -0
  64. package/dist/tools/thread-create.js +57 -0
  65. package/dist/tools/thread-create.js.map +1 -0
  66. package/dist/tools/thread-resolve.d.ts +6 -0
  67. package/dist/tools/thread-resolve.d.ts.map +1 -0
  68. package/dist/tools/thread-resolve.js +42 -0
  69. package/dist/tools/thread-resolve.js.map +1 -0
  70. package/dist/tools/thread-update.d.ts +6 -0
  71. package/dist/tools/thread-update.d.ts.map +1 -0
  72. package/dist/tools/thread-update.js +91 -0
  73. package/dist/tools/thread-update.js.map +1 -0
  74. package/dist/tools/threads-list.d.ts +6 -0
  75. package/dist/tools/threads-list.d.ts.map +1 -0
  76. package/dist/tools/threads-list.js +70 -0
  77. package/dist/tools/threads-list.js.map +1 -0
  78. package/package.json +120 -115
@@ -0,0 +1,352 @@
1
+ /**
2
+ * maintain-cmd.ts — fozikio maintain command.
3
+ *
4
+ * Subcommands:
5
+ * fozikio maintain fix Scan and repair data issues
6
+ * fozikio maintain re-embed Re-embed all memories with current provider
7
+ * fozikio maintain re-embed --dry-run Show what would be re-embedded
8
+ *
9
+ * Flags:
10
+ * --dry-run Show what would change without writing
11
+ * --limit N Max memories to process (default: 500)
12
+ * --collection memories | observations (for re-embed, default: memories)
13
+ * --null-only Re-embed only docs with null/empty embeddings
14
+ * --verbose Detailed per-item output
15
+ */
16
+ import { loadConfig } from './config-loader.js';
17
+ import { createStore, createEmbedProvider } from './store-factory.js';
18
+ function parseArgs(args) {
19
+ const subcommand = args[0] && !args[0].startsWith('--') ? args[0] : null;
20
+ const rest = subcommand ? args.slice(1) : args;
21
+ let dryRun = false;
22
+ let limit = 500;
23
+ let collection = 'memories';
24
+ let nullOnly = false;
25
+ let verbose = false;
26
+ for (let i = 0; i < rest.length; i++) {
27
+ const arg = rest[i];
28
+ if (arg === '--dry-run') {
29
+ dryRun = true;
30
+ }
31
+ else if (arg === '--null-only') {
32
+ nullOnly = true;
33
+ }
34
+ else if (arg === '--verbose') {
35
+ verbose = true;
36
+ }
37
+ else if (arg === '--limit' && rest[i + 1]) {
38
+ const parsed = parseInt(rest[++i], 10);
39
+ if (!isNaN(parsed) && parsed > 0)
40
+ limit = parsed;
41
+ }
42
+ else if (arg === '--collection' && rest[i + 1]) {
43
+ const val = rest[++i];
44
+ if (val === 'observations')
45
+ collection = 'observations';
46
+ }
47
+ }
48
+ return { subcommand, dryRun, limit, collection, nullOnly, verbose };
49
+ }
50
+ /**
51
+ * Strip LLM output artifacts that leaked into definitions in older cortex versions.
52
+ * Pattern: "YES\n\nDefinition:" or "YES\n\nUpdated Definition:" or "YES:" prefix.
53
+ */
54
+ function stripYesPrefix(text) {
55
+ return text
56
+ .replace(/^YES[:\s]*\n*(?:Updated\s+)?(?:Definition[:\s]*)?\n*/i, '')
57
+ .trim();
58
+ }
59
+ /**
60
+ * Detect whether a memory that is categorized as 'topic' or 'belief' should
61
+ * be re-categorized based on keyword heuristics.
62
+ */
63
+ function detectBetterCategory(name, definition, currentCategory) {
64
+ if (currentCategory !== 'topic' && currentCategory !== 'belief')
65
+ return null;
66
+ const text = `${name} ${definition}`.toLowerCase();
67
+ const valueSignals = [
68
+ 'loyalty', 'honesty', 'transparency', 'integrity', 'absolute transparency',
69
+ 'no hidden state', 'genuinely useful', 'usefulness over', 'continuity matters',
70
+ 'grow genuinely', 'worth having around', 'honest about limits',
71
+ ];
72
+ const hasValueSignal = valueSignals.some(s => text.includes(s)) || /\bvalue[sd]?\b/.test(text);
73
+ const patternSignals = [
74
+ 'disposition', 'tendency', 'practical and direct', 'pushes back',
75
+ 'read before acting', 'tinkerer', 'goes wide before', 'go wide before',
76
+ ];
77
+ const hasPatternSignal = patternSignals.some(s => text.includes(s));
78
+ if (hasValueSignal)
79
+ return 'value';
80
+ if (currentCategory === 'topic' && hasPatternSignal)
81
+ return 'pattern';
82
+ return null;
83
+ }
84
+ async function runFix(args) {
85
+ const config = loadConfig();
86
+ const store = await createStore(config);
87
+ console.log('[maintain fix] Scanning memories for data issues...');
88
+ const memories = await store.getAllMemories();
89
+ console.log(`[maintain fix] Loaded ${memories.length} memories`);
90
+ const issuesList = [];
91
+ for (const memory of memories) {
92
+ const issues = [];
93
+ const fixes = {};
94
+ // Check 1: Missing or empty definition
95
+ if (!memory.definition || memory.definition.trim().length === 0) {
96
+ issues.push('empty definition');
97
+ fixes['definition'] = memory.name; // fallback to name
98
+ }
99
+ // Check 2: YES prefix artifact in definition
100
+ const cleanDef = stripYesPrefix(memory.definition ?? '');
101
+ if (cleanDef !== (memory.definition ?? '')) {
102
+ issues.push('YES prefix artifact in definition');
103
+ fixes['definition'] = cleanDef;
104
+ }
105
+ // Check 3: Missing embedding (null or empty array)
106
+ const hasEmbedding = Array.isArray(memory.embedding) && memory.embedding.length > 0;
107
+ if (!hasEmbedding) {
108
+ issues.push('missing embedding');
109
+ // Cannot fix here — use re-embed subcommand
110
+ }
111
+ // Check 4: Salience out of range
112
+ if (typeof memory.salience === 'number' && (memory.salience < 0 || memory.salience > 1)) {
113
+ issues.push(`salience out of range: ${memory.salience}`);
114
+ fixes['salience'] = Math.max(0, Math.min(1, memory.salience));
115
+ }
116
+ // Check 5: Null access_count
117
+ if (memory.access_count == null || typeof memory.access_count !== 'number') {
118
+ issues.push('null access_count');
119
+ fixes['access_count'] = 0;
120
+ }
121
+ // Check 6: Miscategorized identity memories (topic/belief that should be value/pattern)
122
+ const defToCheck = fixes['definition'] ?? memory.definition ?? '';
123
+ const betterCat = detectBetterCategory(memory.name, defToCheck, memory.category);
124
+ if (betterCat) {
125
+ issues.push(`miscategorized: '${memory.category}' should be '${betterCat}'`);
126
+ fixes['category'] = betterCat;
127
+ }
128
+ if (issues.length > 0) {
129
+ issuesList.push({ id: memory.id, name: memory.name, issues, fixes });
130
+ }
131
+ }
132
+ if (issuesList.length === 0) {
133
+ console.log('[maintain fix] No issues found.');
134
+ return;
135
+ }
136
+ // Separate fixable from unfixable
137
+ const fixable = issuesList.filter(item => Object.keys(item.fixes).length > 0);
138
+ const unfixable = issuesList.filter(item => Object.keys(item.fixes).length === 0);
139
+ console.log(`\n[maintain fix] Found ${issuesList.length} memories with issues:`);
140
+ console.log(` Fixable: ${fixable.length}`);
141
+ console.log(` Needs manual attention: ${unfixable.length} (missing embeddings — run re-embed)`);
142
+ if (unfixable.length > 0 && args.verbose) {
143
+ console.log('\nMemories needing re-embed:');
144
+ for (const item of unfixable) {
145
+ console.log(` [${item.id}] ${item.name.slice(0, 60)}: ${item.issues.join(', ')}`);
146
+ }
147
+ }
148
+ if (fixable.length === 0) {
149
+ console.log('\n[maintain fix] Nothing to fix automatically.');
150
+ return;
151
+ }
152
+ if (args.dryRun) {
153
+ console.log('\n[maintain fix] Dry run — would apply these fixes:');
154
+ for (const item of fixable) {
155
+ console.log(` [${item.id}] ${item.name.slice(0, 55)}`);
156
+ for (const issue of item.issues.filter(i => !i.includes('missing embedding'))) {
157
+ console.log(` - ${issue}`);
158
+ }
159
+ const fixKeys = Object.keys(item.fixes);
160
+ console.log(` fixes: ${fixKeys.join(', ')}`);
161
+ }
162
+ return;
163
+ }
164
+ let applied = 0;
165
+ let failed = 0;
166
+ console.log('\n[maintain fix] Applying fixes...');
167
+ for (const item of fixable) {
168
+ try {
169
+ await store.updateMemory(item.id, item.fixes);
170
+ if (args.verbose) {
171
+ console.log(` [OK] ${item.name.slice(0, 60)} — fixed: ${Object.keys(item.fixes).join(', ')}`);
172
+ }
173
+ applied++;
174
+ }
175
+ catch (err) {
176
+ const msg = err instanceof Error ? err.message : String(err);
177
+ console.error(` [FAIL] ${item.name.slice(0, 60)}: ${msg}`);
178
+ failed++;
179
+ }
180
+ }
181
+ console.log(`\n[maintain fix] Done.`);
182
+ console.log(` Applied: ${applied}`);
183
+ console.log(` Failed: ${failed}`);
184
+ if (unfixable.length > 0) {
185
+ console.log(` Skipped (needs re-embed): ${unfixable.length}`);
186
+ console.log(` Run: fozikio maintain re-embed --null-only`);
187
+ }
188
+ }
189
+ // ─── re-embed subcommand ──────────────────────────────────────────────────────
190
+ const EMBED_DELAY_MS = parseInt(process.env['EMBED_DELAY_MS'] ?? '200', 10);
191
+ const ABORT_THRESHOLD = 5;
192
+ async function runReEmbed(args) {
193
+ const config = loadConfig();
194
+ const store = await createStore(config);
195
+ const embed = await createEmbedProvider(config);
196
+ console.log(`[maintain re-embed] Provider: ${embed.name} (${embed.dimensions}d)`);
197
+ console.log(`[maintain re-embed] Collection: ${args.collection}`);
198
+ console.log(`[maintain re-embed] Limit: ${args.limit}`);
199
+ if (args.nullOnly)
200
+ console.log('[maintain re-embed] Filter: null/empty embeddings only');
201
+ if (args.dryRun)
202
+ console.log('[maintain re-embed] DRY RUN — no writes');
203
+ console.log('');
204
+ let docs;
205
+ let totalFetched;
206
+ if (args.collection === 'memories') {
207
+ const all = await store.getAllMemories();
208
+ const filtered = args.nullOnly
209
+ ? all.filter(m => !Array.isArray(m.embedding) || m.embedding.length === 0)
210
+ : all;
211
+ docs = filtered.slice(0, args.limit);
212
+ totalFetched = all.length;
213
+ }
214
+ else {
215
+ // observations — use generic query
216
+ const filters = args.nullOnly
217
+ ? [{ field: 'embedding', op: '==', value: null }]
218
+ : [];
219
+ const rawDocs = await store.query('observations', filters, { limit: args.limit });
220
+ docs = rawDocs;
221
+ totalFetched = docs.length;
222
+ }
223
+ console.log(`[maintain re-embed] Fetched ${totalFetched} total, processing ${docs.length}`);
224
+ console.log('');
225
+ let updated = 0;
226
+ let skipped = 0;
227
+ let failed = 0;
228
+ let consecutiveFailures = 0;
229
+ for (const doc of docs) {
230
+ const isMemory = args.collection === 'memories';
231
+ const name = isMemory
232
+ ? doc.name ?? doc.id
233
+ : doc.content?.slice(0, 60) ?? doc.id;
234
+ const label = name.slice(0, 60);
235
+ // Build embed input
236
+ let embedInput;
237
+ if (isMemory) {
238
+ const m = doc;
239
+ embedInput = `${m.name ?? ''}: ${m.definition ?? ''}`;
240
+ }
241
+ else {
242
+ const o = doc;
243
+ embedInput = o.content ?? '';
244
+ }
245
+ if (!embedInput || embedInput.trim().length < 10) {
246
+ if (args.verbose)
247
+ console.log(` Skip (empty): ${label}`);
248
+ skipped++;
249
+ continue;
250
+ }
251
+ if (args.dryRun) {
252
+ console.log(` Would re-embed: ${label} (${embedInput.length} chars)`);
253
+ updated++;
254
+ continue;
255
+ }
256
+ // Embed
257
+ let embedding;
258
+ try {
259
+ process.stdout.write(` ${label} ... `);
260
+ embedding = await embed.embed(embedInput);
261
+ console.log(`OK (${embedding.length}d)`);
262
+ consecutiveFailures = 0;
263
+ }
264
+ catch (err) {
265
+ const msg = err instanceof Error ? err.message : String(err);
266
+ console.log(`FAILED: ${msg}`);
267
+ failed++;
268
+ consecutiveFailures++;
269
+ if (consecutiveFailures >= ABORT_THRESHOLD) {
270
+ console.error(`[maintain re-embed] ${ABORT_THRESHOLD} consecutive failures — aborting.`);
271
+ console.error('[maintain re-embed] Check that your embed provider is running and credentials are set.');
272
+ process.exit(1);
273
+ }
274
+ continue;
275
+ }
276
+ // Write back
277
+ try {
278
+ if (isMemory) {
279
+ await store.updateMemory(doc.id, { embedding });
280
+ }
281
+ else {
282
+ await store.update('observations', doc.id, {
283
+ embedding,
284
+ updated_at: new Date(),
285
+ });
286
+ }
287
+ updated++;
288
+ }
289
+ catch (err) {
290
+ const msg = err instanceof Error ? err.message : String(err);
291
+ console.error(` Write failed for ${label}: ${msg}`);
292
+ failed++;
293
+ }
294
+ if (EMBED_DELAY_MS > 0) {
295
+ await new Promise(r => setTimeout(r, EMBED_DELAY_MS));
296
+ }
297
+ }
298
+ console.log('');
299
+ console.log('[maintain re-embed] ─────────────────────────────────');
300
+ console.log(`[maintain re-embed] Updated: ${updated}`);
301
+ console.log(`[maintain re-embed] Skipped: ${skipped}`);
302
+ console.log(`[maintain re-embed] Failed: ${failed}`);
303
+ if (args.dryRun) {
304
+ console.log('[maintain re-embed] (Dry run — no writes performed)');
305
+ }
306
+ }
307
+ // ─── Help ─────────────────────────────────────────────────────────────────────
308
+ function printMaintainHelp() {
309
+ process.stderr.write(`fozikio maintain — data maintenance for cortex stores
310
+
311
+ Usage:
312
+ fozikio maintain fix Scan and repair data issues
313
+ fozikio maintain re-embed Re-embed memories with current provider
314
+ fozikio maintain re-embed --dry-run Show what would be re-embedded
315
+
316
+ Fix flags:
317
+ --dry-run Show issues and fixes without writing
318
+ --verbose Show detail per memory
319
+
320
+ Re-embed flags:
321
+ --dry-run Show what would be re-embedded without writing
322
+ --null-only Only re-embed docs with missing/null embeddings
323
+ --limit N Max docs to process (default: 500)
324
+ --collection <name> memories | observations (default: memories)
325
+ --verbose Show detail per doc
326
+
327
+ Environment:
328
+ EMBED_DELAY_MS Delay between embed calls in ms (default: 200)
329
+ `);
330
+ }
331
+ // ─── Main Export ─────────────────────────────────────────────────────────────
332
+ export async function runMaintain(args) {
333
+ const parsed = parseArgs(args);
334
+ switch (parsed.subcommand) {
335
+ case 'fix':
336
+ await runFix(parsed);
337
+ break;
338
+ case 're-embed':
339
+ await runReEmbed(parsed);
340
+ break;
341
+ case null:
342
+ case undefined:
343
+ printMaintainHelp();
344
+ process.exit(1);
345
+ break;
346
+ default:
347
+ process.stderr.write(`[fozikio maintain] Unknown subcommand: ${parsed.subcommand}\n\n`);
348
+ printMaintainHelp();
349
+ process.exit(1);
350
+ }
351
+ }
352
+ //# sourceMappingURL=maintain-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintain-cmd.js","sourceRoot":"","sources":["../../src/bin/maintain-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * report-cmd.ts — fozikio report command.
3
+ *
4
+ * Generates a weekly quality report across five layers:
5
+ * 1. Memory health — salience distribution, staleness, FSRS states
6
+ * 2. Observation health — unprocessed count, prediction error coverage
7
+ * 3. Retrieval quality — retry rate, intent distribution (via threads)
8
+ * 4. Cognitive integration — edge density, observation prediction errors
9
+ * 5. Session quality — ops volume, open threads, resolved threads
10
+ *
11
+ * Usage:
12
+ * fozikio report
13
+ * fozikio report --days 14
14
+ * fozikio report --json
15
+ */
16
+ export declare function runReport(args: string[]): Promise<void>;
17
+ //# sourceMappingURL=report-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/report-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmFH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyQ7D"}