Files
cortex/src/cli/index.ts
omigamedev 3a334d2941 Add graph visualization exports (Milestone 7)
- Add interactive HTML export with D3.js force-directed graph
- Add SVG export with simple force-directed layout
- Add Mermaid diagram export for documentation
- Support subgraph export from root node with depth
- Add node filtering by kind and tags
- Add light/dark theme support
- Add CLI commands: export, viz
- Add MCP tool: memory_export
2026-02-03 11:08:19 +01:00

69 lines
2.5 KiB
JavaScript

#!/usr/bin/env node
import { Command } from 'commander';
import { addCommand } from './commands/add';
import { queryCommand } from './commands/query';
import { linkCommand } from './commands/link';
import { showCommand } from './commands/show';
import { listCommand } from './commands/list';
import { updateCommand } from './commands/update';
import { removeCommand } from './commands/remove';
import { graphCommand } from './commands/graph';
import { serveCommand } from './commands/serve';
import { decayCommand } from './commands/decay';
import { childrenCommand } from './commands/children';
import { historyCommand } from './commands/history';
import { diffCommand } from './commands/diff';
import { restoreCommand } from './commands/restore';
import { captureCommand, captureHookCommand, configCommand } from './commands/capture';
import { contextCommand, contextHookCommand } from './commands/context';
import { indexCommand } from './commands/index-cmd';
import { journalCommand, journalAliasCommand, quickCaptureCommand } from './commands/journal';
import { ingestCommand, clipCommand } from './commands/ingest';
import { exportCommand, vizCommand } from './commands/export';
import { closeDb } from '../core/db';
const program = new Command();
program
.name('cortex')
.description('Cortex — AI project memory & knowledge graph\n\nStore, link, and search project knowledge as a graph of typed nodes.')
.version('1.0.0');
program.addCommand(addCommand);
program.addCommand(queryCommand);
program.addCommand(linkCommand);
program.addCommand(showCommand);
program.addCommand(listCommand);
program.addCommand(updateCommand);
program.addCommand(removeCommand);
program.addCommand(graphCommand);
program.addCommand(serveCommand);
program.addCommand(decayCommand);
program.addCommand(childrenCommand);
program.addCommand(historyCommand);
program.addCommand(diffCommand);
program.addCommand(restoreCommand);
program.addCommand(captureCommand);
program.addCommand(captureHookCommand);
program.addCommand(contextCommand);
program.addCommand(contextHookCommand);
program.addCommand(configCommand);
program.addCommand(indexCommand);
program.addCommand(journalCommand);
program.addCommand(journalAliasCommand);
program.addCommand(quickCaptureCommand);
program.addCommand(ingestCommand);
program.addCommand(clipCommand);
program.addCommand(exportCommand);
program.addCommand(vizCommand);
program.hook('postAction', () => {
closeDb();
});
program.parseAsync(process.argv).catch((err) => {
console.error(err);
closeDb();
process.exit(1);
});