devmind 1.0.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 (141) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +148 -0
  3. package/dist/cli.d.ts +6 -0
  4. package/dist/cli.js +232 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/codebase/generators/architecture.d.ts +4 -0
  7. package/dist/codebase/generators/architecture.js +33 -0
  8. package/dist/codebase/generators/architecture.js.map +1 -0
  9. package/dist/codebase/generators/modules.d.ts +9 -0
  10. package/dist/codebase/generators/modules.js +46 -0
  11. package/dist/codebase/generators/modules.js.map +1 -0
  12. package/dist/codebase/generators/overview.d.ts +5 -0
  13. package/dist/codebase/generators/overview.js +34 -0
  14. package/dist/codebase/generators/overview.js.map +1 -0
  15. package/dist/codebase/generators/skeleton.d.ts +8 -0
  16. package/dist/codebase/generators/skeleton.js +57 -0
  17. package/dist/codebase/generators/skeleton.js.map +1 -0
  18. package/dist/codebase/index.d.ts +24 -0
  19. package/dist/codebase/index.js +50 -0
  20. package/dist/codebase/index.js.map +1 -0
  21. package/dist/codebase/parsers/typescript.d.ts +14 -0
  22. package/dist/codebase/parsers/typescript.js +145 -0
  23. package/dist/codebase/parsers/typescript.js.map +1 -0
  24. package/dist/codebase/scanners/filesystem.d.ts +17 -0
  25. package/dist/codebase/scanners/filesystem.js +152 -0
  26. package/dist/codebase/scanners/filesystem.js.map +1 -0
  27. package/dist/codebase/utils/hashing.d.ts +15 -0
  28. package/dist/codebase/utils/hashing.js +50 -0
  29. package/dist/codebase/utils/hashing.js.map +1 -0
  30. package/dist/codebase/utils/stats.d.ts +12 -0
  31. package/dist/codebase/utils/stats.js +55 -0
  32. package/dist/codebase/utils/stats.js.map +1 -0
  33. package/dist/codebase/utils/tree.d.ts +10 -0
  34. package/dist/codebase/utils/tree.js +22 -0
  35. package/dist/codebase/utils/tree.js.map +1 -0
  36. package/dist/commands/analyze.d.ts +6 -0
  37. package/dist/commands/analyze.js +97 -0
  38. package/dist/commands/analyze.js.map +1 -0
  39. package/dist/commands/context.d.ts +4 -0
  40. package/dist/commands/context.js +54 -0
  41. package/dist/commands/context.js.map +1 -0
  42. package/dist/core/config.d.ts +20 -0
  43. package/dist/core/config.js +40 -0
  44. package/dist/core/config.js.map +1 -0
  45. package/dist/core/errors.d.ts +18 -0
  46. package/dist/core/errors.js +53 -0
  47. package/dist/core/errors.js.map +1 -0
  48. package/dist/core/fileio.d.ts +10 -0
  49. package/dist/core/fileio.js +57 -0
  50. package/dist/core/fileio.js.map +1 -0
  51. package/dist/core/index.d.ts +8 -0
  52. package/dist/core/index.js +9 -0
  53. package/dist/core/index.js.map +1 -0
  54. package/dist/core/logger.d.ts +15 -0
  55. package/dist/core/logger.js +40 -0
  56. package/dist/core/logger.js.map +1 -0
  57. package/dist/core/types.d.ts +106 -0
  58. package/dist/core/types.js +5 -0
  59. package/dist/core/types.js.map +1 -0
  60. package/dist/database/cli.d.ts +7 -0
  61. package/dist/database/cli.js +132 -0
  62. package/dist/database/cli.js.map +1 -0
  63. package/dist/database/commands/checkpoint.d.ts +13 -0
  64. package/dist/database/commands/checkpoint.js +136 -0
  65. package/dist/database/commands/checkpoint.js.map +1 -0
  66. package/dist/database/commands/generate.d.ts +21 -0
  67. package/dist/database/commands/generate.js +269 -0
  68. package/dist/database/commands/generate.js.map +1 -0
  69. package/dist/database/commands/handoff.d.ts +15 -0
  70. package/dist/database/commands/handoff.js +332 -0
  71. package/dist/database/commands/handoff.js.map +1 -0
  72. package/dist/database/commands/history.d.ts +13 -0
  73. package/dist/database/commands/history.js +148 -0
  74. package/dist/database/commands/history.js.map +1 -0
  75. package/dist/database/commands/init.d.ts +10 -0
  76. package/dist/database/commands/init.js +28 -0
  77. package/dist/database/commands/init.js.map +1 -0
  78. package/dist/database/commands/learn.d.ts +12 -0
  79. package/dist/database/commands/learn.js +93 -0
  80. package/dist/database/commands/learn.js.map +1 -0
  81. package/dist/database/commands/memory.d.ts +90 -0
  82. package/dist/database/commands/memory.js +353 -0
  83. package/dist/database/commands/memory.js.map +1 -0
  84. package/dist/database/commands/show.d.ts +9 -0
  85. package/dist/database/commands/show.js +136 -0
  86. package/dist/database/commands/show.js.map +1 -0
  87. package/dist/database/commands/validate.d.ts +9 -0
  88. package/dist/database/commands/validate.js +200 -0
  89. package/dist/database/commands/validate.js.map +1 -0
  90. package/dist/database/commands/watch.d.ts +9 -0
  91. package/dist/database/commands/watch.js +77 -0
  92. package/dist/database/commands/watch.js.map +1 -0
  93. package/dist/database/extractors/drizzle.d.ts +62 -0
  94. package/dist/database/extractors/drizzle.js +251 -0
  95. package/dist/database/extractors/drizzle.js.map +1 -0
  96. package/dist/database/extractors/firebase.d.ts +39 -0
  97. package/dist/database/extractors/firebase.js +192 -0
  98. package/dist/database/extractors/firebase.js.map +1 -0
  99. package/dist/database/extractors/index.d.ts +69 -0
  100. package/dist/database/extractors/index.js +345 -0
  101. package/dist/database/extractors/index.js.map +1 -0
  102. package/dist/database/extractors/mongodb.d.ts +44 -0
  103. package/dist/database/extractors/mongodb.js +198 -0
  104. package/dist/database/extractors/mongodb.js.map +1 -0
  105. package/dist/database/extractors/mysql.d.ts +61 -0
  106. package/dist/database/extractors/mysql.js +173 -0
  107. package/dist/database/extractors/mysql.js.map +1 -0
  108. package/dist/database/extractors/postgres.d.ts +47 -0
  109. package/dist/database/extractors/postgres.js +141 -0
  110. package/dist/database/extractors/postgres.js.map +1 -0
  111. package/dist/database/extractors/prisma.d.ts +71 -0
  112. package/dist/database/extractors/prisma.js +270 -0
  113. package/dist/database/extractors/prisma.js.map +1 -0
  114. package/dist/database/extractors/sqlite.d.ts +50 -0
  115. package/dist/database/extractors/sqlite.js +148 -0
  116. package/dist/database/extractors/sqlite.js.map +1 -0
  117. package/dist/database/generators/learning-generator.d.ts +48 -0
  118. package/dist/database/generators/learning-generator.js +221 -0
  119. package/dist/database/generators/learning-generator.js.map +1 -0
  120. package/dist/database/generators/templates.d.ts +103 -0
  121. package/dist/database/generators/templates.js +1557 -0
  122. package/dist/database/generators/templates.js.map +1 -0
  123. package/dist/database/index.d.ts +15 -0
  124. package/dist/database/index.js +16 -0
  125. package/dist/database/index.js.map +1 -0
  126. package/dist/database/utils/json-output.d.ts +26 -0
  127. package/dist/database/utils/json-output.js +37 -0
  128. package/dist/database/utils/json-output.js.map +1 -0
  129. package/dist/generators/unified.d.ts +1 -0
  130. package/dist/generators/unified.js +173 -0
  131. package/dist/generators/unified.js.map +1 -0
  132. package/dist/index.d.ts +4 -0
  133. package/dist/index.js +5 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/utils/config-detector.d.ts +1 -0
  136. package/dist/utils/config-detector.js +40 -0
  137. package/dist/utils/config-detector.js.map +1 -0
  138. package/dist/utils/config-loader.d.ts +16 -0
  139. package/dist/utils/config-loader.js +20 -0
  140. package/dist/utils/config-loader.js.map +1 -0
  141. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,UAAmB,KAAK;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEhD,KAAK,CAAC,OAAe,EAAE,KAAa;QAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;CACF;AAED,0BAA0B;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAEnC,kCAAkC;AAClC,MAAM,UAAU,YAAY,CAAC,UAAmB,KAAK;IACnD,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Shared TypeScript types for DevMind packages
3
+ */
4
+ export interface DatabaseContext {
5
+ tables: number;
6
+ schema_hash: string;
7
+ last_migration?: string;
8
+ patterns?: string[];
9
+ }
10
+ export interface CodebaseContext {
11
+ total_files: number;
12
+ total_lines: number;
13
+ modules: number;
14
+ structure_hash: string;
15
+ last_scan?: string;
16
+ active_features?: string[];
17
+ }
18
+ export interface MemoryContext {
19
+ database?: DatabaseContext;
20
+ codebase?: CodebaseContext;
21
+ }
22
+ export interface DatabaseSnapshot {
23
+ tables: number;
24
+ schema_hash: string;
25
+ timestamp: string;
26
+ }
27
+ export interface CodebaseSnapshot {
28
+ total_files: number;
29
+ total_lines: number;
30
+ modules: number;
31
+ structure_hash: string;
32
+ file_tree?: any[];
33
+ timestamp: string;
34
+ }
35
+ export interface CheckpointData {
36
+ database?: DatabaseSnapshot;
37
+ codebase?: CodebaseSnapshot;
38
+ timestamp: string;
39
+ message?: string;
40
+ context_version?: string;
41
+ }
42
+ export type LearningCategory = 'database' | 'codebase' | 'architecture' | 'security' | 'performance' | 'other';
43
+ export type LearningSource = 'database' | 'codebase' | 'cross-context';
44
+ export interface Learning {
45
+ content: string;
46
+ category: LearningCategory;
47
+ source: LearningSource;
48
+ timestamp: string;
49
+ }
50
+ export interface GenerateOptions {
51
+ url?: string;
52
+ orm?: 'prisma' | 'drizzle';
53
+ output?: string;
54
+ format?: 'markdown' | 'json';
55
+ mysql?: boolean;
56
+ sqlite?: string;
57
+ prisma?: string | boolean;
58
+ drizzle?: string | boolean;
59
+ }
60
+ export interface ScanOptions {
61
+ rootPath: string;
62
+ outputDir: string;
63
+ ignore?: string[];
64
+ maxDepth?: number;
65
+ }
66
+ export interface InitOptions {
67
+ url?: string;
68
+ dir?: string;
69
+ }
70
+ export interface CheckpointOptions {
71
+ restore?: boolean;
72
+ list?: boolean;
73
+ message?: string;
74
+ output?: string;
75
+ json?: boolean;
76
+ }
77
+ export interface LearnOptions {
78
+ list?: boolean;
79
+ category?: LearningCategory;
80
+ output?: string;
81
+ json?: boolean;
82
+ }
83
+ export interface HistoryOptions {
84
+ sessions?: boolean;
85
+ evolution?: boolean;
86
+ output?: string;
87
+ json?: boolean;
88
+ }
89
+ export interface OutputMetadata {
90
+ generated_at: string;
91
+ devmind_version: string;
92
+ sources: {
93
+ database?: boolean;
94
+ codebase?: boolean;
95
+ };
96
+ }
97
+ export interface UnifiedIndex {
98
+ metadata: OutputMetadata;
99
+ database?: any;
100
+ codebase?: any;
101
+ memory?: {
102
+ checkpoints: number;
103
+ learnings: number;
104
+ last_checkpoint?: string;
105
+ };
106
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared TypeScript types for DevMind packages
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SchemaWise CLI
4
+ *
5
+ * Generate AI-friendly database context documentation and validate SQL queries.
6
+ */
7
+ export {};
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SchemaWise CLI
4
+ *
5
+ * Generate AI-friendly database context documentation and validate SQL queries.
6
+ */
7
+ import { fileURLToPath } from 'url';
8
+ import { dirname, join } from 'path';
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+ import { Command } from 'commander';
12
+ import inquirer from 'inquirer';
13
+ import { generate } from './commands/generate.js';
14
+ import { init } from './commands/init.js';
15
+ import { validate } from './commands/validate.js';
16
+ import { watch } from './commands/watch.js';
17
+ import { handoff } from './commands/handoff.js';
18
+ import { checkpoint } from './commands/checkpoint.js';
19
+ import { learn } from './commands/learn.js';
20
+ import { history } from './commands/history.js';
21
+ import * as fs from 'fs';
22
+ const pkg = JSON.parse(fs.readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
23
+ const version = pkg.version;
24
+ const program = new Command();
25
+ program
26
+ .name('devmind-db')
27
+ .description('Database schema documentation and SQL query validation for AI coding assistants')
28
+ .version(version);
29
+ // Commands
30
+ program
31
+ .command('init')
32
+ .description('Initialize SchemaWise in your project')
33
+ .option('-u, --url <url>', 'Database connection URL')
34
+ .option('-d, --dir <dir>', 'Output directory', '.devmind')
35
+ .action(init);
36
+ program
37
+ .command('generate')
38
+ .description('Generate context from database or ORM schema')
39
+ .option('-u, --url <url>', 'Database connection URL')
40
+ .option('--orm <orm>', 'ORM type (prisma, drizzle)')
41
+ .option('--mysql', 'Use MySQL extractor')
42
+ .option('--sqlite <path>', 'Use SQLite extractor with file path')
43
+ .option('--prisma [path]', 'Use Prisma extractor (optional path)')
44
+ .option('--drizzle [path]', 'Use Drizzle extractor (optional path)')
45
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
46
+ .option('--format <format>', 'Output format (markdown, json)', 'markdown')
47
+ .action(generate);
48
+ program
49
+ .command('validate')
50
+ .description('Validate generated context against database')
51
+ .option('--strict', 'Fail on any mismatches')
52
+ .action(validate);
53
+ program
54
+ .command('watch')
55
+ .description('Watch for schema changes and regenerate')
56
+ .option('-d, --debounce <ms>', 'Debounce time in ms', '2000')
57
+ .action(watch);
58
+ program
59
+ .command('show')
60
+ .description('Show current database schema')
61
+ .option('-f, --format <format>', 'Output format', 'markdown')
62
+ .action(async (options) => {
63
+ const { show } = await import('./commands/show.js');
64
+ await show(options);
65
+ });
66
+ program
67
+ .command('handoff')
68
+ .description('Multi-agent handoff management')
69
+ .option('--record', 'Record current session state')
70
+ .option('--resume <id>', 'Resume from previous session')
71
+ .option('--list', 'List available sessions')
72
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
73
+ .option('--status <status>', 'Session status', 'in_progress')
74
+ .option('--agentId <id>', 'Agent identifier')
75
+ .action(handoff);
76
+ program
77
+ .command('checkpoint')
78
+ .description('Save or restore session checkpoint')
79
+ .option('--restore', 'Restore latest checkpoint')
80
+ .option('--list', 'List all checkpoints')
81
+ .option('-m, --message <message>', 'Checkpoint message')
82
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
83
+ .option('--json', 'Output as JSON')
84
+ .action(checkpoint);
85
+ program
86
+ .command('learn [learning]')
87
+ .description('Add a learning to accumulated knowledge')
88
+ .option('--list', 'List all learnings')
89
+ .option('--category <category>', 'Learning category (e.g., performance, security)')
90
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
91
+ .option('--json', 'Output as JSON')
92
+ .action(learn);
93
+ program
94
+ .command('history')
95
+ .description('View session history and schema evolution')
96
+ .option('--sessions', 'Show session history (default)')
97
+ .option('--evolution', 'Show schema evolution')
98
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
99
+ .option('--json', 'Output as JSON')
100
+ .action(history);
101
+ // Interactive mode
102
+ program
103
+ .command('interactive')
104
+ .alias('i')
105
+ .description('Interactive mode for quick operations')
106
+ .action(async () => {
107
+ const { action } = await inquirer.prompt([
108
+ {
109
+ type: 'list',
110
+ name: 'action',
111
+ message: 'What would you like to do?',
112
+ choices: [
113
+ { name: 'Generate context from database', value: 'generate' },
114
+ { name: 'Validate existing context', value: 'validate' },
115
+ { name: 'Watch for changes', value: 'watch' },
116
+ { name: 'Show schema', value: 'show' },
117
+ ],
118
+ },
119
+ ]);
120
+ const command = program.commands.find((c) => c.name() === action);
121
+ if (command) {
122
+ const argv = [process.argv[0], program.name(), action];
123
+ await command.parseAsync(argv);
124
+ }
125
+ });
126
+ // Parse arguments
127
+ program.parse();
128
+ // Show help if no command
129
+ if (!process.argv.slice(2).length) {
130
+ program.outputHelp();
131
+ }
132
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/database/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Checkpoint Command
3
+ * Save and restore session checkpoints for AI memory continuity
4
+ */
5
+ interface CheckpointOptions {
6
+ restore?: boolean;
7
+ list?: boolean;
8
+ message?: string;
9
+ output?: string;
10
+ json?: boolean;
11
+ }
12
+ export declare function checkpoint(options: CheckpointOptions): Promise<void>;
13
+ export {};
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Checkpoint Command
3
+ * Save and restore session checkpoints for AI memory continuity
4
+ */
5
+ import * as path from 'path';
6
+ import { MemoryInfrastructure } from './memory.js';
7
+ import * as fs from 'fs/promises';
8
+ import { logger, readFileSafe } from '../../core/index.js';
9
+ export async function checkpoint(options) {
10
+ const outputDir = options.output || '.devmind';
11
+ const memory = new MemoryInfrastructure();
12
+ // List checkpoints
13
+ if (options.list) {
14
+ await listCheckpoints(outputDir);
15
+ return;
16
+ }
17
+ // Restore checkpoint
18
+ if (options.restore) {
19
+ await restoreCheckpoint(outputDir, memory);
20
+ return;
21
+ }
22
+ // Save checkpoint
23
+ await saveCheckpoint(outputDir, memory, options.message);
24
+ }
25
+ /**
26
+ * Save current session checkpoint
27
+ */
28
+ async function saveCheckpoint(outputDir, memory, message) {
29
+ try {
30
+ // Load current session context
31
+ const contextPath = path.join(outputDir, 'context', 'SESSION_CONTEXT.json');
32
+ // Use safe read
33
+ const contextContent = await readFileSafe(contextPath);
34
+ const context = JSON.parse(contextContent);
35
+ // Save checkpoint
36
+ const checkpointPath = await memory.saveCheckpoint(outputDir, context, message);
37
+ logger.success('Checkpoint saved successfully!');
38
+ logger.info(` File: ${checkpointPath}`);
39
+ if (message) {
40
+ logger.info(` Message: ${message}`);
41
+ }
42
+ logger.info(` Session ID: ${context.sessionId}`);
43
+ logger.info(` Schema Hash: ${context.schemaHash}`);
44
+ }
45
+ catch (error) {
46
+ logger.error('Failed to save checkpoint:');
47
+ logger.error(error.message);
48
+ process.exit(1);
49
+ }
50
+ }
51
+ /**
52
+ * Restore latest checkpoint
53
+ */
54
+ async function restoreCheckpoint(outputDir, memory) {
55
+ try {
56
+ const context = await memory.restoreLatestCheckpoint(outputDir);
57
+ if (!context) {
58
+ logger.warn('No checkpoints found');
59
+ logger.info(' Run `devmind checkpoint` to create one');
60
+ return;
61
+ }
62
+ logger.success('Checkpoint restored!');
63
+ logger.info('Session Context:');
64
+ logger.info(` Session ID: ${context.sessionId}`);
65
+ logger.info(` Timestamp: ${context.timestamp}`);
66
+ logger.info(` Schema Hash: ${context.schemaHash}`);
67
+ if (context.currentTask) {
68
+ logger.info('Current Task:');
69
+ logger.info(` ${context.currentTask.description}`);
70
+ logger.info(` Status: ${context.currentTask.status}`);
71
+ logger.info(` Progress: ${(context.currentTask.progress * 100).toFixed(0)}%`);
72
+ if (context.currentTask.nextSteps && context.currentTask.nextSteps.length > 0) {
73
+ logger.info('Next Steps:');
74
+ context.currentTask.nextSteps.forEach((step, i) => {
75
+ logger.info(` ${i + 1}. ${step}`);
76
+ });
77
+ }
78
+ }
79
+ if (context.discoveries && context.discoveries.length > 0) {
80
+ logger.info('Recent Discoveries:');
81
+ context.discoveries.slice(-5).forEach((d) => {
82
+ logger.info(` • ${d}`);
83
+ });
84
+ }
85
+ if (context.pendingQueries && context.pendingQueries.length > 0) {
86
+ logger.info('Pending Queries:');
87
+ context.pendingQueries.forEach((q) => {
88
+ logger.info(` • ${q}`);
89
+ });
90
+ }
91
+ }
92
+ catch (error) {
93
+ logger.error('Failed to restore checkpoint:');
94
+ logger.error(error.message);
95
+ process.exit(1);
96
+ }
97
+ }
98
+ /**
99
+ * List all checkpoints
100
+ */
101
+ async function listCheckpoints(outputDir) {
102
+ try {
103
+ const checkpointsDir = path.join(outputDir, 'memory', 'checkpoints');
104
+ const files = await fs.readdir(checkpointsDir);
105
+ const checkpointFiles = files
106
+ .filter((f) => f.startsWith('checkpoint-') && f.endsWith('.json'))
107
+ .sort()
108
+ .reverse(); // Most recent first
109
+ if (checkpointFiles.length === 0) {
110
+ logger.info('No checkpoints found');
111
+ return;
112
+ }
113
+ logger.info(`Found ${checkpointFiles.length} checkpoint(s):`);
114
+ logger.info('');
115
+ for (const file of checkpointFiles.slice(0, 10)) {
116
+ const filepath = path.join(checkpointsDir, file);
117
+ const content = await readFileSafe(filepath);
118
+ const checkpoint = JSON.parse(content);
119
+ const timestamp = new Date(checkpoint.timestamp).toLocaleString();
120
+ const message = checkpoint.message || 'No message';
121
+ logger.success(` ✓ ${file}`);
122
+ logger.info(` Time: ${timestamp}`);
123
+ logger.info(` Message: ${message}`);
124
+ logger.info(` Session: ${checkpoint.sessionId}`);
125
+ logger.info('');
126
+ }
127
+ if (checkpointFiles.length > 10) {
128
+ logger.info(` ... and ${checkpointFiles.length - 10} more`);
129
+ }
130
+ }
131
+ catch (error) {
132
+ logger.error('Failed to list checkpoints:');
133
+ logger.error(error.message);
134
+ }
135
+ }
136
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../src/database/commands/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generate Command
3
+ * Generates CLAUDE.md and AGENTS.md from database schema
4
+ */
5
+ interface GenerateOptions {
6
+ url?: string;
7
+ orm?: string;
8
+ output?: string;
9
+ format?: 'markdown' | 'json';
10
+ schema?: string;
11
+ mysql?: boolean;
12
+ sqlite?: string;
13
+ prisma?: string;
14
+ drizzle?: string;
15
+ mongodb?: string;
16
+ firebaseKey?: string;
17
+ firebaseProject?: string;
18
+ json?: boolean;
19
+ }
20
+ export declare function generate(options: GenerateOptions): Promise<void>;
21
+ export {};