cortex-engine 0.4.2 → 0.5.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.
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 +164 -8
  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 +8 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +9 -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 +119 -115
package/dist/bin/init.js CHANGED
@@ -199,13 +199,30 @@ const MCP_JSON = `{
199
199
  }
200
200
  }
201
201
  `;
202
- const COGNITIVE_TOOLS_REFERENCE = `# Cognitive Tools
202
+ // ─── TOOLS.md Agent-Agnostic Tool Reference ────────────────────────────
203
+ // This is the canonical reference. Lives at .fozikio/TOOLS.md.
204
+ // Any agent on any platform reads this file.
205
+ const TOOLS_REFERENCE = `# Cortex Tools
203
206
 
204
- This workspace uses cortex-engine for persistent memory.
207
+ This workspace uses cortex-engine for persistent memory. These tools are available via MCP — any compatible client can use them.
205
208
 
206
- ## Tools
209
+ ## Use the Right Tool
207
210
 
208
- Read before you write. Tool descriptions tell you the rest.
211
+ Don't dump everything into \`observe()\`. Match the tool to what you're recording:
212
+
213
+ | What you're recording | Use this | Not this |
214
+ |----------------------|----------|----------|
215
+ | A fact you learned or confirmed | \`observe\` | — |
216
+ | An open question or curiosity | \`wonder\` | observe() |
217
+ | A hypothesis or untested idea | \`speculate\` | observe() |
218
+ | A position that could change with new evidence | \`believe\` | observe() |
219
+ | Something worth deeper processing | \`reflect\` | observe() |
220
+ | Ongoing work or open questions across sessions | \`thread_create\` / \`thread_update\` | observe() |
221
+ | Session reflection at end of day | \`journal_write\` | observe() |
222
+ | Operational breadcrumbs during work | \`ops_append\` | observe() |
223
+ | An identity or behavior change | \`evolve\` | observe() |
224
+
225
+ ## Core Tools (25)
209
226
 
210
227
  **Write — record knowledge:**
211
228
  | Tool | Purpose |
@@ -227,6 +244,14 @@ Read before you write. Tool descriptions tell you the rest.
227
244
  | \`neighbors\` | Explore memories connected to a specific concept |
228
245
  | \`wander\` | Random walk for serendipitous discovery |
229
246
 
247
+ **Threads — ongoing work:**
248
+ | Tool | Purpose |
249
+ |------|---------|
250
+ | \`thread_create\` | Start tracking an ongoing question, project, or exploration |
251
+ | \`thread_update\` | Add progress, change status, link related memories |
252
+ | \`thread_resolve\` | Close a thread with a resolution |
253
+ | \`threads_list\` | See open threads (check at session start) |
254
+
230
255
  **Ops — session tracking:**
231
256
  | Tool | Purpose |
232
257
  |------|---------|
@@ -234,12 +259,79 @@ Read before you write. Tool descriptions tell you the rest.
234
259
  | \`ops_query\` | Search the operational log |
235
260
  | \`ops_update\` | Update an ops entry status or content |
236
261
 
262
+ **Identity:**
263
+ | Tool | Purpose |
264
+ |------|---------|
265
+ | \`evolve\` | Propose a change to values, preferences, or patterns |
266
+ | \`evolution_list\` | View pending or applied identity proposals |
267
+ | \`journal_write\` | Write a daily reflective entry |
268
+ | \`journal_read\` | Read past journal entries |
269
+
237
270
  **System:**
238
271
  | Tool | Purpose |
239
272
  |------|---------|
240
273
  | \`stats\` | Memory counts and namespace health |
241
274
  | \`dream\` | Consolidate observations into long-term memories (run periodically) |
275
+
276
+ ## Hard Rules
277
+
278
+ 1. **Read before you write** — call \`query()\` before adding to cortex. Check what you already know.
279
+ 2. **Use the full tool suite** — if you're only using observe/query, you're missing the point. Threads, journals, beliefs, and reflections exist for a reason.
280
+ 3. **Check threads at session start** — call \`threads_list()\` to see what's in progress before starting new work.
242
281
  `;
282
+ // ─── CLAUDE.md — Claude Code Platform Pointer ────────────────────────────
283
+ // Thin pointer to TOOLS.md + Claude-specific context (hooks, skills).
284
+ const CLAUDE_MD = `# Cognitive Tools
285
+
286
+ This workspace uses [cortex-engine](https://github.com/Fozikio/cortex-engine) for persistent memory.
287
+
288
+ **Read \`.fozikio/TOOLS.md\` for the full tool reference** — all 25+ cognitive tools with usage guidance.
289
+
290
+ ## Quick Reference
291
+
292
+ - Before substantive work → \`query()\` to ground in accumulated knowledge
293
+ - Facts → \`observe()\` | Questions → \`wonder()\` | Positions → \`believe()\`
294
+ - Ongoing work → \`thread_create()\` / \`thread_update()\`
295
+ - Session end → \`journal_write()\`
296
+ - Operational logs → \`ops_append()\`
297
+
298
+ ## Installed Hooks
299
+
300
+ Hooks in \`.claude/hooks/\` fire automatically on Claude Code events. Read the comment headers in each \`.sh\` file for details.
301
+
302
+ ## Installed Skills
303
+
304
+ Skills in \`.claude/skills/\` are invocable workflows. Use \`/skill-name\` to run them.
305
+
306
+ ## Safety Rules
307
+
308
+ Reflex rules in \`reflex-rules/\` enforce cognitive habits. See [@fozikio/reflex](https://github.com/Fozikio/reflex) for format details.
309
+ `;
310
+ // ─── AGENTS.md — Multi-Agent Roster ──────────────────────────────────────
311
+ // NOT a tool reference. Lists who's in the workspace and what they do.
312
+ function buildAgentsRoster(name) {
313
+ return [
314
+ '# Agents',
315
+ '',
316
+ `## ${name}`,
317
+ '',
318
+ 'This workspace has a single agent. The agent\'s identity is defined in `.fozikio/mind/profile.md`.',
319
+ '',
320
+ '### Cognitive Tools',
321
+ '',
322
+ 'See `.fozikio/TOOLS.md` for the full tool reference.',
323
+ '',
324
+ '### Adding More Agents',
325
+ '',
326
+ '```bash',
327
+ 'npx fozikio agent add researcher --description "Research agent"',
328
+ 'npx fozikio agent generate-mcp',
329
+ '```',
330
+ '',
331
+ 'Each agent gets its own namespace with isolated memory. See [multi-agent docs](https://github.com/Fozikio/cortex-engine/blob/master/docs/multi-agent-design.md) for details.',
332
+ '',
333
+ ].join('\n');
334
+ }
243
335
  const OBSIDIAN_APP_JSON = `{
244
336
  "legacyEditor": false,
245
337
  "livePreview": true,
@@ -251,6 +343,61 @@ const OBSIDIAN_APPEARANCE_JSON = `{
251
343
  "theme": "obsidian"
252
344
  }
253
345
  `;
346
+ // ─── Plugin Detection ─────────────────────────────────────────────────────
347
+ /** Plugin metadata for TOOLS.md generation */
348
+ const KNOWN_PLUGINS = {
349
+ '@fozikio/tools-content': {
350
+ description: 'Content pipeline — draft, review, publish workflow',
351
+ tools: '`content_create`, `content_list`, `content_update`',
352
+ },
353
+ '@fozikio/tools-social': {
354
+ description: 'Social cognition — interaction patterns, engagement tracking',
355
+ tools: '`social_read`, `social_update`',
356
+ },
357
+ '@fozikio/tools-graph': {
358
+ description: 'Graph analysis — memory connections, clustering, visualization',
359
+ tools: '`graph_report`, `suggest_links`, `find_duplicates`',
360
+ },
361
+ '@fozikio/tools-maintenance': {
362
+ description: 'Memory maintenance — cleanup, deduplication, health checks',
363
+ tools: '`consolidation_status`, `sleep_pressure`',
364
+ },
365
+ '@fozikio/tools-vitals': {
366
+ description: 'Vitals tracking — agent health metrics and operational signals',
367
+ tools: '`vitals_get`, `vitals_set`',
368
+ },
369
+ '@fozikio/tools-reasoning': {
370
+ description: 'Cognitive reasoning — abstraction, contradiction, surfacing',
371
+ tools: '`abstract`, `contradict`, `surface`, `notice`, `resolve`, `intention`, `predict`',
372
+ },
373
+ };
374
+ /**
375
+ * Scan for installed @fozikio/tools-* plugin packages and return
376
+ * a markdown section listing their tools for TOOLS.md.
377
+ */
378
+ function detectInstalledPlugins(targetDir) {
379
+ const found = [];
380
+ for (const [pkg, meta] of Object.entries(KNOWN_PLUGINS)) {
381
+ try {
382
+ const pkgJsonPath = join(targetDir, 'node_modules', ...pkg.split('/'), 'package.json');
383
+ if (existsSync(pkgJsonPath)) {
384
+ found.push({ name: pkg, ...meta });
385
+ }
386
+ }
387
+ catch {
388
+ // skip
389
+ }
390
+ }
391
+ if (found.length === 0)
392
+ return null;
393
+ let section = '\n## Installed Plugins\n\n';
394
+ for (const plugin of found) {
395
+ section += `**${plugin.name}** — ${plugin.description}\n`;
396
+ section += `Tools: ${plugin.tools}\n\n`;
397
+ }
398
+ section += `*Plugins are auto-detected from node_modules. Install more with \`npm install @fozikio/tools-<name>\`.*\n`;
399
+ return section;
400
+ }
254
401
  // ─── Manifest & Asset Installation ────────────────────────────────────────
255
402
  /** Resolve the package root (where fozikio.json lives). */
256
403
  function getPackageRoot() {
@@ -370,10 +517,18 @@ export function runInit(args) {
370
517
  writeFileSync(join(credentialsDir, '.gitignore'), '*\n!.gitignore\n', 'utf-8');
371
518
  // .mcp.json
372
519
  writeFileSync(join(targetDir, '.mcp.json'), MCP_JSON, 'utf-8');
373
- // CLAUDE.md
374
- writeFileSync(join(targetDir, 'CLAUDE.md'), COGNITIVE_TOOLS_REFERENCE, 'utf-8');
375
- // AGENTS.md
376
- writeFileSync(join(targetDir, 'AGENTS.md'), COGNITIVE_TOOLS_REFERENCE, 'utf-8');
520
+ // .fozikio/TOOLS.md — canonical agent-agnostic tool reference
521
+ let toolsContent = TOOLS_REFERENCE;
522
+ // Detect installed plugins and append their tool sections
523
+ const pluginSections = detectInstalledPlugins(targetDir);
524
+ if (pluginSections) {
525
+ toolsContent += pluginSections;
526
+ }
527
+ writeFileSync(join(fozikioDir, 'TOOLS.md'), toolsContent, 'utf-8');
528
+ // CLAUDE.md — thin pointer for Claude Code users
529
+ writeFileSync(join(targetDir, 'CLAUDE.md'), CLAUDE_MD, 'utf-8');
530
+ // AGENTS.md — multi-agent roster
531
+ writeFileSync(join(targetDir, 'AGENTS.md'), buildAgentsRoster(opts.name), 'utf-8');
377
532
  // .obsidian/
378
533
  if (opts.obsidian) {
379
534
  const obsidianDir = join(targetDir, '.obsidian');
@@ -409,6 +564,7 @@ export function runInit(args) {
409
564
  console.error(` ${relativePath}/.fozikio/journal/`);
410
565
  console.error(` ${relativePath}/.fozikio/state/templates/`);
411
566
  console.error(` ${relativePath}/.fozikio/credentials/.gitignore`);
567
+ console.error(` ${relativePath}/.fozikio/TOOLS.md`);
412
568
  console.error(` ${relativePath}/.mcp.json`);
413
569
  console.error(` ${relativePath}/CLAUDE.md`);
414
570
  console.error(` ${relativePath}/AGENTS.md`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
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
+ export declare function runMaintain(args: string[]): Promise<void>;
17
+ //# sourceMappingURL=maintain-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintain-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/maintain-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyXH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB/D"}
@@ -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