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.
- package/LICENSE +191 -0
- package/README.md +148 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +232 -0
- package/dist/cli.js.map +1 -0
- package/dist/codebase/generators/architecture.d.ts +4 -0
- package/dist/codebase/generators/architecture.js +33 -0
- package/dist/codebase/generators/architecture.js.map +1 -0
- package/dist/codebase/generators/modules.d.ts +9 -0
- package/dist/codebase/generators/modules.js +46 -0
- package/dist/codebase/generators/modules.js.map +1 -0
- package/dist/codebase/generators/overview.d.ts +5 -0
- package/dist/codebase/generators/overview.js +34 -0
- package/dist/codebase/generators/overview.js.map +1 -0
- package/dist/codebase/generators/skeleton.d.ts +8 -0
- package/dist/codebase/generators/skeleton.js +57 -0
- package/dist/codebase/generators/skeleton.js.map +1 -0
- package/dist/codebase/index.d.ts +24 -0
- package/dist/codebase/index.js +50 -0
- package/dist/codebase/index.js.map +1 -0
- package/dist/codebase/parsers/typescript.d.ts +14 -0
- package/dist/codebase/parsers/typescript.js +145 -0
- package/dist/codebase/parsers/typescript.js.map +1 -0
- package/dist/codebase/scanners/filesystem.d.ts +17 -0
- package/dist/codebase/scanners/filesystem.js +152 -0
- package/dist/codebase/scanners/filesystem.js.map +1 -0
- package/dist/codebase/utils/hashing.d.ts +15 -0
- package/dist/codebase/utils/hashing.js +50 -0
- package/dist/codebase/utils/hashing.js.map +1 -0
- package/dist/codebase/utils/stats.d.ts +12 -0
- package/dist/codebase/utils/stats.js +55 -0
- package/dist/codebase/utils/stats.js.map +1 -0
- package/dist/codebase/utils/tree.d.ts +10 -0
- package/dist/codebase/utils/tree.js +22 -0
- package/dist/codebase/utils/tree.js.map +1 -0
- package/dist/commands/analyze.d.ts +6 -0
- package/dist/commands/analyze.js +97 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/context.d.ts +4 -0
- package/dist/commands/context.js +54 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/core/config.d.ts +20 -0
- package/dist/core/config.js +40 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/errors.d.ts +18 -0
- package/dist/core/errors.js +53 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/fileio.d.ts +10 -0
- package/dist/core/fileio.js +57 -0
- package/dist/core/fileio.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +15 -0
- package/dist/core/logger.js +40 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/types.d.ts +106 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/database/cli.d.ts +7 -0
- package/dist/database/cli.js +132 -0
- package/dist/database/cli.js.map +1 -0
- package/dist/database/commands/checkpoint.d.ts +13 -0
- package/dist/database/commands/checkpoint.js +136 -0
- package/dist/database/commands/checkpoint.js.map +1 -0
- package/dist/database/commands/generate.d.ts +21 -0
- package/dist/database/commands/generate.js +269 -0
- package/dist/database/commands/generate.js.map +1 -0
- package/dist/database/commands/handoff.d.ts +15 -0
- package/dist/database/commands/handoff.js +332 -0
- package/dist/database/commands/handoff.js.map +1 -0
- package/dist/database/commands/history.d.ts +13 -0
- package/dist/database/commands/history.js +148 -0
- package/dist/database/commands/history.js.map +1 -0
- package/dist/database/commands/init.d.ts +10 -0
- package/dist/database/commands/init.js +28 -0
- package/dist/database/commands/init.js.map +1 -0
- package/dist/database/commands/learn.d.ts +12 -0
- package/dist/database/commands/learn.js +93 -0
- package/dist/database/commands/learn.js.map +1 -0
- package/dist/database/commands/memory.d.ts +90 -0
- package/dist/database/commands/memory.js +353 -0
- package/dist/database/commands/memory.js.map +1 -0
- package/dist/database/commands/show.d.ts +9 -0
- package/dist/database/commands/show.js +136 -0
- package/dist/database/commands/show.js.map +1 -0
- package/dist/database/commands/validate.d.ts +9 -0
- package/dist/database/commands/validate.js +200 -0
- package/dist/database/commands/validate.js.map +1 -0
- package/dist/database/commands/watch.d.ts +9 -0
- package/dist/database/commands/watch.js +77 -0
- package/dist/database/commands/watch.js.map +1 -0
- package/dist/database/extractors/drizzle.d.ts +62 -0
- package/dist/database/extractors/drizzle.js +251 -0
- package/dist/database/extractors/drizzle.js.map +1 -0
- package/dist/database/extractors/firebase.d.ts +39 -0
- package/dist/database/extractors/firebase.js +192 -0
- package/dist/database/extractors/firebase.js.map +1 -0
- package/dist/database/extractors/index.d.ts +69 -0
- package/dist/database/extractors/index.js +345 -0
- package/dist/database/extractors/index.js.map +1 -0
- package/dist/database/extractors/mongodb.d.ts +44 -0
- package/dist/database/extractors/mongodb.js +198 -0
- package/dist/database/extractors/mongodb.js.map +1 -0
- package/dist/database/extractors/mysql.d.ts +61 -0
- package/dist/database/extractors/mysql.js +173 -0
- package/dist/database/extractors/mysql.js.map +1 -0
- package/dist/database/extractors/postgres.d.ts +47 -0
- package/dist/database/extractors/postgres.js +141 -0
- package/dist/database/extractors/postgres.js.map +1 -0
- package/dist/database/extractors/prisma.d.ts +71 -0
- package/dist/database/extractors/prisma.js +270 -0
- package/dist/database/extractors/prisma.js.map +1 -0
- package/dist/database/extractors/sqlite.d.ts +50 -0
- package/dist/database/extractors/sqlite.js +148 -0
- package/dist/database/extractors/sqlite.js.map +1 -0
- package/dist/database/generators/learning-generator.d.ts +48 -0
- package/dist/database/generators/learning-generator.js +221 -0
- package/dist/database/generators/learning-generator.js.map +1 -0
- package/dist/database/generators/templates.d.ts +103 -0
- package/dist/database/generators/templates.js +1557 -0
- package/dist/database/generators/templates.js.map +1 -0
- package/dist/database/index.d.ts +15 -0
- package/dist/database/index.js +16 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/utils/json-output.d.ts +26 -0
- package/dist/database/utils/json-output.js +37 -0
- package/dist/database/utils/json-output.js.map +1 -0
- package/dist/generators/unified.d.ts +1 -0
- package/dist/generators/unified.js +173 -0
- package/dist/generators/unified.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config-detector.d.ts +1 -0
- package/dist/utils/config-detector.js +40 -0
- package/dist/utils/config-detector.js.map +1 -0
- package/dist/utils/config-loader.d.ts +16 -0
- package/dist/utils/config-loader.js +20 -0
- package/dist/utils/config-loader.js.map +1 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -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 {};
|