devmind 1.0.1 → 1.1.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 (125) hide show
  1. package/README.md +157 -141
  2. package/dist/cli/handlers.d.ts +2 -0
  3. package/dist/cli/handlers.js +140 -0
  4. package/dist/cli/handlers.js.map +1 -0
  5. package/dist/cli/register-all.d.ts +2 -0
  6. package/dist/cli/register-all.js +11 -0
  7. package/dist/cli/register-all.js.map +1 -0
  8. package/dist/cli/register-analysis.d.ts +2 -0
  9. package/dist/cli/register-analysis.js +137 -0
  10. package/dist/cli/register-analysis.js.map +1 -0
  11. package/dist/cli/register-codebase.d.ts +2 -0
  12. package/dist/cli/register-codebase.js +22 -0
  13. package/dist/cli/register-codebase.js.map +1 -0
  14. package/dist/cli/register-database.d.ts +2 -0
  15. package/dist/cli/register-database.js +44 -0
  16. package/dist/cli/register-database.js.map +1 -0
  17. package/dist/cli/register-memory.d.ts +2 -0
  18. package/dist/cli/register-memory.js +58 -0
  19. package/dist/cli/register-memory.js.map +1 -0
  20. package/dist/cli.js +9 -220
  21. package/dist/cli.js.map +1 -1
  22. package/dist/codebase/index.js +2 -2
  23. package/dist/codebase/index.js.map +1 -1
  24. package/dist/codebase/parsers/typescript.d.ts +1 -0
  25. package/dist/codebase/parsers/typescript.js +3 -0
  26. package/dist/codebase/parsers/typescript.js.map +1 -1
  27. package/dist/codebase/scanners/filesystem.d.ts +1 -0
  28. package/dist/codebase/scanners/filesystem.js +131 -4
  29. package/dist/codebase/scanners/filesystem.js.map +1 -1
  30. package/dist/commands/analyze.d.ts +1 -0
  31. package/dist/commands/analyze.js +166 -24
  32. package/dist/commands/analyze.js.map +1 -1
  33. package/dist/commands/audit-design.d.ts +8 -0
  34. package/dist/commands/audit-design.js +158 -0
  35. package/dist/commands/audit-design.js.map +1 -0
  36. package/dist/commands/audit-report.d.ts +18 -0
  37. package/dist/commands/audit-report.js +30 -0
  38. package/dist/commands/audit-report.js.map +1 -0
  39. package/dist/commands/audit-source.d.ts +21 -0
  40. package/dist/commands/audit-source.js +57 -0
  41. package/dist/commands/audit-source.js.map +1 -0
  42. package/dist/commands/audit.d.ts +8 -0
  43. package/dist/commands/audit.js +266 -0
  44. package/dist/commands/audit.js.map +1 -0
  45. package/dist/commands/autosave.d.ts +19 -0
  46. package/dist/commands/autosave.js +85 -0
  47. package/dist/commands/autosave.js.map +1 -0
  48. package/dist/commands/claude-plugin.d.ts +8 -0
  49. package/dist/commands/claude-plugin.js +123 -0
  50. package/dist/commands/claude-plugin.js.map +1 -0
  51. package/dist/commands/codex-plugin.d.ts +9 -0
  52. package/dist/commands/codex-plugin.js +145 -0
  53. package/dist/commands/codex-plugin.js.map +1 -0
  54. package/dist/commands/context.js +66 -5
  55. package/dist/commands/context.js.map +1 -1
  56. package/dist/commands/design-system.d.ts +8 -0
  57. package/dist/commands/design-system.js +95 -0
  58. package/dist/commands/design-system.js.map +1 -0
  59. package/dist/commands/extract.d.ts +33 -0
  60. package/dist/commands/extract.js +231 -0
  61. package/dist/commands/extract.js.map +1 -0
  62. package/dist/commands/openclaw-plugin.d.ts +8 -0
  63. package/dist/commands/openclaw-plugin.js +103 -0
  64. package/dist/commands/openclaw-plugin.js.map +1 -0
  65. package/dist/commands/retrieve.d.ts +12 -0
  66. package/dist/commands/retrieve.js +230 -0
  67. package/dist/commands/retrieve.js.map +1 -0
  68. package/dist/commands/status.d.ts +8 -0
  69. package/dist/commands/status.js +148 -0
  70. package/dist/commands/status.js.map +1 -0
  71. package/dist/core/cache-json.d.ts +7 -0
  72. package/dist/core/cache-json.js +60 -0
  73. package/dist/core/cache-json.js.map +1 -0
  74. package/dist/core/errors.d.ts +2 -0
  75. package/dist/core/errors.js +49 -1
  76. package/dist/core/errors.js.map +1 -1
  77. package/dist/core/index.d.ts +4 -0
  78. package/dist/core/index.js +4 -0
  79. package/dist/core/index.js.map +1 -1
  80. package/dist/core/learning-parser.d.ts +6 -0
  81. package/dist/core/learning-parser.js +23 -0
  82. package/dist/core/learning-parser.js.map +1 -0
  83. package/dist/core/profile.d.ts +18 -0
  84. package/dist/core/profile.js +37 -0
  85. package/dist/core/profile.js.map +1 -0
  86. package/dist/core/source-file-cache.d.ts +13 -0
  87. package/dist/core/source-file-cache.js +85 -0
  88. package/dist/core/source-file-cache.js.map +1 -0
  89. package/dist/database/cli/register-all.d.ts +2 -0
  90. package/dist/database/cli/register-all.js +9 -0
  91. package/dist/database/cli/register-all.js.map +1 -0
  92. package/dist/database/cli/register-database.d.ts +2 -0
  93. package/dist/database/cli/register-database.js +44 -0
  94. package/dist/database/cli/register-database.js.map +1 -0
  95. package/dist/database/cli/register-interactive.d.ts +2 -0
  96. package/dist/database/cli/register-interactive.js +29 -0
  97. package/dist/database/cli/register-interactive.js.map +1 -0
  98. package/dist/database/cli/register-memory.d.ts +2 -0
  99. package/dist/database/cli/register-memory.js +47 -0
  100. package/dist/database/cli/register-memory.js.map +1 -0
  101. package/dist/database/cli.js +5 -112
  102. package/dist/database/cli.js.map +1 -1
  103. package/dist/database/commands/checkpoint.js +8 -10
  104. package/dist/database/commands/checkpoint.js.map +1 -1
  105. package/dist/database/commands/generate.js +17 -8
  106. package/dist/database/commands/generate.js.map +1 -1
  107. package/dist/database/commands/handoff.js +9 -8
  108. package/dist/database/commands/handoff.js.map +1 -1
  109. package/dist/database/commands/learn.d.ts +4 -0
  110. package/dist/database/commands/learn.js +245 -43
  111. package/dist/database/commands/learn.js.map +1 -1
  112. package/dist/database/commands/memory.js +1 -1
  113. package/dist/database/commands/validate.js +6 -4
  114. package/dist/database/commands/validate.js.map +1 -1
  115. package/dist/database/commands/watch.js +1 -1
  116. package/dist/database/commands/watch.js.map +1 -1
  117. package/dist/database/generators/templates.js +26 -26
  118. package/dist/database/generators/templates.js.map +1 -1
  119. package/dist/database/utils/json-output.d.ts +4 -0
  120. package/dist/database/utils/json-output.js +7 -0
  121. package/dist/database/utils/json-output.js.map +1 -1
  122. package/dist/generators/unified.d.ts +13 -0
  123. package/dist/generators/unified.js +420 -59
  124. package/dist/generators/unified.js.map +1 -1
  125. package/package.json +2 -2
package/README.md CHANGED
@@ -1,141 +1,157 @@
1
- # DevMind
2
-
3
- > AI Memory Layer for development - Complete project context (codebase + database + memory)
4
-
5
- [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
6
-
7
- ## Overview
8
-
9
- **DevMind** provides AI assistants with complete understanding of your project by combining:
10
-
11
- - 🗂️ **Codebase Structure** - Hierarchical documentation of your code
12
- - 🗄️ **Database Schema** - Complete schema analysis with patterns
13
- - 🧠 **Persistent Memory** - Checkpoints, learnings, and evolution tracking
14
- - 🔍 **Context Slicing** - Focused context for optimized token usage
15
-
16
- A single workflow generates everything your AI needs to understand your project deeply.
17
-
18
- ## Features
19
-
20
- - **Unified Context Generation** - Single command for complete project understanding
21
- - **Context Slicing** - "Zoom in" on specific modules (`devmind context`)
22
- - **Multi-Database Support** - PostgreSQL, MySQL, SQLite, MongoDB, Firebase
23
- - **Memory System** - Checkpoints, `LEARN.md`, session history
24
- - **Evolution Tracking** - Track both schema and codebase changes over time
25
- - **AI-Optimized Output** - Tailored for Claude, Cursor, Windsurf, and OpenClaw
26
-
27
- ## Quick Start
28
-
29
- ```bash
30
- # Install
31
- npm install -g devmind
32
-
33
- # Zero-Friction (auto-detect DB config and generate DB context)
34
- devmind generate
35
-
36
- # Full context (database + codebase)
37
- devmind generate --all
38
-
39
- # Or detailed setup
40
- devmind init
41
- ```
42
-
43
- ## Installation
44
-
45
- ```bash
46
- npm install -g devmind
47
- # or
48
- pnpm add -g devmind
49
- ```
50
-
51
- ## Usage
52
-
53
- ### ⚡ Zero-Friction Generation
54
-
55
- DevMind automatically detects your database configuration from `.env`, `prisma/schema.prisma`, `drizzle.config.ts`, or saved config.
56
-
57
- ```bash
58
- # Auto-detects DB and generates database context
59
- devmind generate
60
-
61
- # Generate full context (database + codebase)
62
- devmind generate --all
63
- ```
64
-
65
- If detection fails (or for first run):
66
-
67
- ```bash
68
- devmind init --url "postgres://..."
69
- ```
70
-
71
- ### Context Slicing (Token Efficient)
72
-
73
- ```bash
74
- # Get high-level map
75
- devmind context
76
-
77
- # Focus on specific module
78
- devmind context --focus src/database
79
- ```
80
-
81
- ### Memory Commands
82
-
83
- ```bash
84
- # Save architectural decision
85
- devmind learn "Services use dependency injection" --category architecture
86
-
87
- # Save checkpoint
88
- devmind checkpoint -m "Before refactoring auth"
89
-
90
- # View history
91
- devmind history --unified
92
- ```
93
-
94
- ### Analyze Code-to-Database Usage
95
-
96
- ```bash
97
- devmind analyze -p ./my-project
98
- ```
99
-
100
- ## Integration
101
-
102
- ### OpenClaw
103
-
104
- DevMind is optimized for OpenClaw agents.
105
- See [OpenClaw Integration Skill](integrations/openclaw/SKILL.md) for agent instructions.
106
-
107
- ### Cursor / Windsurf / Custom Agents
108
-
109
- 1. Run `devmind generate --all`
110
- 2. Point your AI to `.devmind/AGENTS.md`
111
- 3. See [AI Agent Integration Guide](docs/AI_INTEGRATION.md) for detailed patterns.
112
-
113
- ## Output Structure
114
-
115
- ```
116
- .devmind/
117
- ├── codebase/
118
- │ ├── codebase-overview.md
119
- │ ├── architecture.md
120
- │ └── modules/
121
- ├── database/
122
- │ ├── schema-overview.md
123
- │ ├── schema.json
124
- │ └── ...
125
- ├── memory/
126
- │ ├── checkpoints/
127
- │ ├── LEARN.md # Persistent accumulated knowledge
128
- │ ├── schema-evolution.md
129
- │ ├── codebase-evolution.md
130
- │ └── session-history.md
131
- ├── analysis/
132
- │ ├── CODE_DB_MAPPING.md
133
- │ └── UNUSED_TABLES.md
134
- ├── AGENTS.md # Unified context for AI
135
- ├── devmind-tools.json # Tool definitions for agents
136
- └── index.json
137
- ```
138
-
139
- ## License
140
-
141
- Apache 2.0 © Nyan Lin Maung
1
+ # DevMind
2
+
3
+ > Deterministic context and memory layer for AI coding agents.
4
+ Let Agent remember your design system, general context, and database.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm install -g devmind
10
+ ```
11
+
12
+ ## Integrations
13
+
14
+ ### OpenClaw
15
+
16
+ ```bash
17
+ devmind openclaw-plugin --force
18
+ ```
19
+
20
+ Optional:
21
+
22
+ ```bash
23
+ devmind openclaw-plugin --project --force
24
+ ```
25
+
26
+ Default install target:
27
+
28
+ - `~/.openclaw/skills/devmind/SKILL.md`
29
+
30
+ ### Claude Code
31
+
32
+ ```bash
33
+ devmind claude-plugin --force
34
+ ```
35
+
36
+ This creates:
37
+
38
+ - `.claude-plugin/marketplace.json`
39
+ - `.claude-plugin/skills/devmind/SKILL.md`
40
+
41
+ Then install that local folder in Claude Code using your plugin installer flow.
42
+
43
+ ### Codex (CLI + App)
44
+
45
+ ```bash
46
+ devmind codex-plugin --force
47
+ ```
48
+
49
+ Optional:
50
+
51
+ ```bash
52
+ # Also install project-local skill
53
+ devmind codex-plugin --project --force
54
+
55
+ # Skip legacy mirror paths
56
+ devmind codex-plugin --no-legacy --force
57
+ ```
58
+
59
+ Default install targets:
60
+
61
+ - `~/.agents/skills/devmind/SKILL.md`
62
+ - `CODEX_HOME/skills/devmind/SKILL.md`
63
+ - `~/.codex/skills/devmind/SKILL.md`
64
+
65
+ ## Quick Start
66
+
67
+ ```bash
68
+ # 1) Design system policy first
69
+ devmind design-system --init
70
+
71
+ # 2) Build overall context
72
+ devmind generate --all
73
+
74
+ # 3) Validate freshness/recommendation
75
+ devmind status --json
76
+ ```
77
+
78
+ You are ready when `.devmind/AGENTS.md` and `.devmind/index.json` exist.
79
+
80
+ ## Canonical Flow
81
+
82
+ 1. Design system
83
+ 2. Overall context
84
+ 3. Database checks
85
+
86
+ ## Quick Command Guide
87
+
88
+ ### Context lifecycle
89
+
90
+ ```bash
91
+ devmind generate --all
92
+ devmind scan
93
+ devmind status --json
94
+ ```
95
+
96
+ ### Focused context
97
+
98
+ ```bash
99
+ devmind context --focus src/features
100
+ devmind context --query runbook
101
+ devmind retrieve -q "auth middleware flow" --type architecture --json
102
+ ```
103
+
104
+ ### Learning loop
105
+
106
+ ```bash
107
+ devmind audit
108
+ devmind extract
109
+ devmind extract --apply
110
+ devmind autosave --source task-end
111
+ ```
112
+
113
+ ### Database validation
114
+
115
+ ```bash
116
+ devmind analyze
117
+ devmind validate --strict
118
+ ```
119
+
120
+ ## Agent-First Runbook
121
+
122
+ ```bash
123
+ # 1) Preflight
124
+ devmind status --json
125
+
126
+ # 2) If stale, run recommendedCommand
127
+
128
+ # 3) Execute with focused retrieval
129
+ devmind retrieve -q "<task query>" --json
130
+
131
+ # 4) Persist memory
132
+ devmind autosave --source task-end
133
+ ```
134
+
135
+ ## Key Outputs
136
+
137
+ ```text
138
+ .devmind/
139
+ +-- AGENTS.md
140
+ +-- index.json
141
+ +-- design-system.json
142
+ +-- devmind-tools.json
143
+ +-- analysis/
144
+ | +-- AUDIT_REPORT.md
145
+ | +-- DESIGN_SYSTEM_AUDIT.md
146
+ | +-- CODE_DB_MAPPING.md
147
+ +-- memory/
148
+ | +-- LEARN.md
149
+ | +-- checkpoints/
150
+ | +-- SESSION_JOURNAL.md
151
+ +-- codebase/
152
+ +-- database/
153
+ ```
154
+
155
+ ## License
156
+
157
+ Apache 2.0 (c) Nyan Lin Maung
@@ -0,0 +1,2 @@
1
+ export declare function runGenerateCommand(options: Record<string, unknown>): Promise<void>;
2
+ export declare function runScanCommand(options: Record<string, unknown>): Promise<void>;
@@ -0,0 +1,140 @@
1
+ import * as path from 'path';
2
+ import { logger, ensureDir, writeJSON, createProfiler, failCommand, } from '../core/index.js';
3
+ import { generate as generateDatabase, MemoryInfrastructure } from '../database/index.js';
4
+ import { scanCodebase, saveScanResult, calculateCodebaseHash, getCodebaseStats, } from '../codebase/index.js';
5
+ import { generateUnifiedDocs } from '../generators/unified.js';
6
+ async function updateCodebaseMemory(outputDir, structure, profiler) {
7
+ try {
8
+ const memory = new MemoryInfrastructure();
9
+ const codebaseHash = calculateCodebaseHash(structure);
10
+ const codebaseStats = getCodebaseStats(structure);
11
+ await profiler.section('memory.updateSessionContext', async () => memory.updateSessionContext(outputDir, {
12
+ codebaseHash,
13
+ codebaseStats,
14
+ }));
15
+ logger.info('Updated session context with codebase stats');
16
+ await profiler.section('memory.updateCodebaseEvolution', async () => memory.updateCodebaseEvolution(outputDir, codebaseHash, codebaseStats));
17
+ }
18
+ catch (error) {
19
+ logger.warn(`Failed to update session context: ${error.message}`);
20
+ }
21
+ }
22
+ export async function runGenerateCommand(options) {
23
+ try {
24
+ const profiler = createProfiler(!!options.profile);
25
+ const { loadConfig } = await import('../utils/config-loader.js');
26
+ const { detectDatabaseConfig } = await import('../utils/config-detector.js');
27
+ let savedConfig = await profiler.section('config.load', async () => loadConfig(process.cwd()));
28
+ const mergedOptions = { ...savedConfig, ...options };
29
+ let connectionString = options.url || process.env.DATABASE_URL || savedConfig.databaseUrl;
30
+ let configModified = false;
31
+ if (!connectionString &&
32
+ (options.db === true || options.all === true || (!options.code && !options.db))) {
33
+ const detectedUrl = await profiler.section('config.detect', async () => detectDatabaseConfig(process.cwd()));
34
+ if (detectedUrl) {
35
+ logger.info(`Auto-detected database URL: ${detectedUrl.replace(/:[^:@]*@/, ':****@')}`);
36
+ connectionString = detectedUrl;
37
+ savedConfig = { ...savedConfig, databaseUrl: detectedUrl };
38
+ configModified = true;
39
+ }
40
+ }
41
+ if (connectionString) {
42
+ mergedOptions.url = connectionString;
43
+ }
44
+ if (configModified) {
45
+ const configPath = path.join(process.cwd(), '.devmind', 'devmind.config.json');
46
+ await profiler.section('config.persist', async () => {
47
+ await ensureDir(path.dirname(configPath));
48
+ await writeJSON(configPath, savedConfig);
49
+ });
50
+ logger.info(`Saved configuration to ${configPath}`);
51
+ }
52
+ const outputDir = mergedOptions.output || '.devmind';
53
+ const runAll = mergedOptions.all === true;
54
+ const runCode = mergedOptions.code === true || runAll;
55
+ const runDb = mergedOptions.db === true || runAll || (!runCode && mergedOptions.db !== true);
56
+ if (runDb) {
57
+ logger.info('Starting Database Generation...');
58
+ const dbOutputDir = path.join(outputDir, 'database');
59
+ await profiler.section('db.ensureDir', async () => ensureDir(dbOutputDir));
60
+ await profiler.section('db.generate', async () => generateDatabase({ ...mergedOptions, output: dbOutputDir }));
61
+ }
62
+ if (runCode) {
63
+ logger.info('Starting Codebase Generation...');
64
+ const rootPath = path.resolve(mergedOptions.path || '.');
65
+ const codebaseOutputDir = path.join(outputDir, 'codebase');
66
+ await profiler.section('code.ensureDir', async () => ensureDir(codebaseOutputDir));
67
+ const result = await profiler.section('code.scan', async () => scanCodebase(rootPath, codebaseOutputDir));
68
+ await profiler.section('code.save', async () => saveScanResult(result, codebaseOutputDir));
69
+ await updateCodebaseMemory(outputDir, result.structure, profiler);
70
+ await profiler.section('docs.unified', async () => generateUnifiedDocs(outputDir));
71
+ logger.success('Codebase context generated!');
72
+ }
73
+ if (runAll) {
74
+ logger.success('Unified Generation Complete!');
75
+ logger.info(`Context available in ${outputDir}`);
76
+ logger.info('Session startup context:');
77
+ logger.info(` 1. Read ${outputDir}/AGENTS.md`);
78
+ logger.info(` 2. Read ${outputDir}/index.json`);
79
+ logger.info('Tip: run `devmind status` to verify freshness.');
80
+ }
81
+ const { runAutosave } = await import('../commands/autosave.js');
82
+ await profiler.section('autosave.run', async () => runAutosave({
83
+ output: outputDir,
84
+ path: mergedOptions.path || '.',
85
+ source: 'generate',
86
+ note: runAll ? 'Completed unified generation' : 'Completed generation',
87
+ silent: true,
88
+ }));
89
+ const profile = profiler.report();
90
+ if (profile) {
91
+ logger.info('Performance Profile');
92
+ logger.info(`Total: ${profile.totalMs.toFixed(1)}ms`);
93
+ for (const step of profile.steps) {
94
+ logger.info(`- ${step.name}: ${step.ms.toFixed(1)}ms`);
95
+ }
96
+ }
97
+ }
98
+ catch (error) {
99
+ failCommand('Generation failed', error);
100
+ }
101
+ }
102
+ export async function runScanCommand(options) {
103
+ try {
104
+ const profiler = createProfiler(!!options.profile);
105
+ const rootPath = path.resolve(options.path || '.');
106
+ const outputDir = options.output || '.devmind';
107
+ logger.info(`Scanning codebase: ${rootPath}`);
108
+ const codebaseOutputDir = path.join(outputDir, 'codebase');
109
+ await profiler.section('code.ensureDir', async () => ensureDir(codebaseOutputDir));
110
+ const result = await profiler.section('code.scan', async () => scanCodebase(rootPath, codebaseOutputDir));
111
+ await profiler.section('code.save', async () => saveScanResult(result, codebaseOutputDir));
112
+ await updateCodebaseMemory(outputDir, result.structure, profiler);
113
+ await profiler.section('docs.unified', async () => generateUnifiedDocs(outputDir));
114
+ logger.success('Scan complete!');
115
+ logger.info('Session startup context:');
116
+ logger.info(` 1. Read ${outputDir}/AGENTS.md`);
117
+ logger.info(` 2. Read ${outputDir}/index.json`);
118
+ logger.info('Tip: run `devmind status` to verify freshness.');
119
+ const { runAutosave } = await import('../commands/autosave.js');
120
+ await profiler.section('autosave.run', async () => runAutosave({
121
+ output: outputDir,
122
+ path: options.path || '.',
123
+ source: 'scan',
124
+ note: 'Completed codebase scan',
125
+ silent: true,
126
+ }));
127
+ const profile = profiler.report();
128
+ if (profile) {
129
+ logger.info('Performance Profile');
130
+ logger.info(`Total: ${profile.totalMs.toFixed(1)}ms`);
131
+ for (const step of profile.steps) {
132
+ logger.info(`- ${step.name}: ${step.ms.toFixed(1)}ms`);
133
+ }
134
+ }
135
+ }
136
+ catch (error) {
137
+ failCommand('Failed to scan codebase', error);
138
+ }
139
+ }
140
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/cli/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAllCommands(program: Command): void;
@@ -0,0 +1,11 @@
1
+ import { registerDatabaseCommands } from './register-database.js';
2
+ import { registerMemoryCommands } from './register-memory.js';
3
+ import { registerAnalysisCommands } from './register-analysis.js';
4
+ import { registerCodebaseCommands } from './register-codebase.js';
5
+ export function registerAllCommands(program) {
6
+ registerDatabaseCommands(program);
7
+ registerMemoryCommands(program);
8
+ registerAnalysisCommands(program);
9
+ registerCodebaseCommands(program);
10
+ }
11
+ //# sourceMappingURL=register-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../src/cli/register-all.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAnalysisCommands(program: Command): void;
@@ -0,0 +1,137 @@
1
+ import { withCliErrorHandling } from '../core/index.js';
2
+ export function registerAnalysisCommands(program) {
3
+ program
4
+ .command('analyze')
5
+ .description('Analyze code-to-database usage')
6
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
7
+ .option('-p, --path <path>', 'Codebase path to scan', '.')
8
+ .option('--profile', 'Print command phase timings')
9
+ .action(withCliErrorHandling('analyze', async (options) => {
10
+ const { analyze } = await import('../commands/analyze.js');
11
+ await analyze(options);
12
+ const { runAutosave } = await import('../commands/autosave.js');
13
+ await runAutosave({
14
+ output: options.output || '.devmind',
15
+ path: options.path || '.',
16
+ source: 'analyze',
17
+ note: 'Completed code-to-database analysis',
18
+ silent: true,
19
+ });
20
+ }));
21
+ program
22
+ .command('status')
23
+ .description('Show context status, freshness, and recommended next command')
24
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
25
+ .option('-p, --path <path>', 'Codebase path', '.')
26
+ .option('--json', 'Output as JSON')
27
+ .option('--profile', 'Include timing data')
28
+ .action(withCliErrorHandling('status', async (options) => {
29
+ const { status } = await import('../commands/status.js');
30
+ await status(options);
31
+ }));
32
+ program
33
+ .command('audit')
34
+ .description('Audit codebase coverage against recorded learnings')
35
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
36
+ .option('-p, --path <path>', 'Codebase path', '.')
37
+ .option('--json', 'Output as JSON')
38
+ .option('--profile', 'Include timing data')
39
+ .action(withCliErrorHandling('audit', async (options) => {
40
+ const { audit } = await import('../commands/audit.js');
41
+ await audit(options);
42
+ const { runAutosave } = await import('../commands/autosave.js');
43
+ await runAutosave({
44
+ output: options.output || '.devmind',
45
+ path: options.path || '.',
46
+ source: 'audit',
47
+ note: 'Completed learning audit',
48
+ silent: true,
49
+ });
50
+ }));
51
+ program
52
+ .command('extract')
53
+ .description('Extract learning candidates from code and analysis artifacts')
54
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
55
+ .option('-p, --path <path>', 'Codebase path', '.')
56
+ .option('--apply', 'Append extracted learnings to memory/LEARN.md')
57
+ .option('--json', 'Output as JSON')
58
+ .option('--profile', 'Include timing data')
59
+ .action(withCliErrorHandling('extract', async (options) => {
60
+ const { extract } = await import('../commands/extract.js');
61
+ await extract(options);
62
+ }));
63
+ program
64
+ .command('design-system')
65
+ .description('Manage design system profile for UI alignment checks')
66
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
67
+ .option('--init', 'Create default design system profile')
68
+ .option('--force', 'Overwrite existing profile when used with --init')
69
+ .option('--json', 'Output as JSON')
70
+ .action(withCliErrorHandling('design-system', async (options) => {
71
+ const { designSystem } = await import('../commands/design-system.js');
72
+ await designSystem(options);
73
+ }));
74
+ program
75
+ .command('retrieve')
76
+ .description('Retrieve focused context using index metadata and AGENTS sections')
77
+ .requiredOption('-q, --query <query>', 'Retrieval query')
78
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
79
+ .option('--type <type>', 'Section type filter (architecture, database, codebase, etc.)')
80
+ .option('--tags <tags>', 'Comma-separated tag filter')
81
+ .option('--limit <n>', 'Max sections to return', '6')
82
+ .option('--max-words <n>', 'Approximate max words in output', '1400')
83
+ .option('--json', 'Output as JSON')
84
+ .option('--profile', 'Include timing data')
85
+ .action(withCliErrorHandling('retrieve', async (options) => {
86
+ const { retrieve } = await import('../commands/retrieve.js');
87
+ await retrieve(options);
88
+ }));
89
+ program
90
+ .command('autosave')
91
+ .description('Persist session journal/context and auto-apply extracted learnings')
92
+ .option('-o, --output <dir>', 'Output directory', '.devmind')
93
+ .option('-p, --path <path>', 'Codebase path', '.')
94
+ .option('--source <source>', 'Autosave source label', 'manual')
95
+ .option('--note <note>', 'Autosave note')
96
+ .option('--no-extract', 'Skip extraction/apply step')
97
+ .option('--json', 'Output as JSON')
98
+ .action(withCliErrorHandling('autosave', async (options) => {
99
+ const { autosave } = await import('../commands/autosave.js');
100
+ await autosave(options);
101
+ }));
102
+ program
103
+ .command('claude-plugin')
104
+ .description('Generate a local Claude Code plugin package for DevMind skills')
105
+ .option('-o, --output <dir>', 'Plugin output directory', '.claude-plugin')
106
+ .option('--name <name>', 'Plugin name', 'devmind')
107
+ .option('--force', 'Overwrite existing plugin files')
108
+ .option('--json', 'Output as JSON')
109
+ .action(withCliErrorHandling('claude-plugin', async (options) => {
110
+ const { claudePlugin } = await import('../commands/claude-plugin.js');
111
+ await claudePlugin(options);
112
+ }));
113
+ program
114
+ .command('codex-plugin')
115
+ .description('Install DevMind skill for Codex CLI and Codex app')
116
+ .option('--name <name>', 'Skill directory name', 'devmind')
117
+ .option('--project', 'Also install a project-local skill under ./.agents/skills')
118
+ .option('--no-legacy', 'Skip compatibility mirror into CODEX_HOME/.codex skill paths')
119
+ .option('--force', 'Overwrite existing skill files')
120
+ .option('--json', 'Output as JSON')
121
+ .action(withCliErrorHandling('codex-plugin', async (options) => {
122
+ const { codexPlugin } = await import('../commands/codex-plugin.js');
123
+ await codexPlugin(options);
124
+ }));
125
+ program
126
+ .command('openclaw-plugin')
127
+ .description('Install DevMind skill for OpenClaw')
128
+ .option('--name <name>', 'Skill directory name', 'devmind')
129
+ .option('--project', 'Also install a project-local skill under ./.openclaw/skills')
130
+ .option('--force', 'Overwrite existing skill files')
131
+ .option('--json', 'Output as JSON')
132
+ .action(withCliErrorHandling('openclaw-plugin', async (options) => {
133
+ const { openclawPlugin } = await import('../commands/openclaw-plugin.js');
134
+ await openclawPlugin(options);
135
+ }));
136
+ }
137
+ //# sourceMappingURL=register-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-analysis.js","sourceRoot":"","sources":["../../src/cli/register-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerCodebaseCommands(program: Command): void;