devmind 1.0.2 → 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 (122) hide show
  1. package/README.md +126 -162
  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 -316
  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 +1 -0
  43. package/dist/commands/audit.js +174 -73
  44. package/dist/commands/audit.js.map +1 -1
  45. package/dist/commands/claude-plugin.d.ts +8 -0
  46. package/dist/commands/claude-plugin.js +123 -0
  47. package/dist/commands/claude-plugin.js.map +1 -0
  48. package/dist/commands/codex-plugin.d.ts +9 -0
  49. package/dist/commands/codex-plugin.js +145 -0
  50. package/dist/commands/codex-plugin.js.map +1 -0
  51. package/dist/commands/context.js +66 -5
  52. package/dist/commands/context.js.map +1 -1
  53. package/dist/commands/design-system.d.ts +8 -0
  54. package/dist/commands/design-system.js +95 -0
  55. package/dist/commands/design-system.js.map +1 -0
  56. package/dist/commands/extract.d.ts +13 -0
  57. package/dist/commands/extract.js +79 -16
  58. package/dist/commands/extract.js.map +1 -1
  59. package/dist/commands/openclaw-plugin.d.ts +8 -0
  60. package/dist/commands/openclaw-plugin.js +103 -0
  61. package/dist/commands/openclaw-plugin.js.map +1 -0
  62. package/dist/commands/retrieve.d.ts +12 -0
  63. package/dist/commands/retrieve.js +230 -0
  64. package/dist/commands/retrieve.js.map +1 -0
  65. package/dist/commands/status.d.ts +1 -0
  66. package/dist/commands/status.js +54 -18
  67. package/dist/commands/status.js.map +1 -1
  68. package/dist/core/cache-json.d.ts +7 -0
  69. package/dist/core/cache-json.js +60 -0
  70. package/dist/core/cache-json.js.map +1 -0
  71. package/dist/core/errors.d.ts +2 -0
  72. package/dist/core/errors.js +49 -1
  73. package/dist/core/errors.js.map +1 -1
  74. package/dist/core/index.d.ts +4 -0
  75. package/dist/core/index.js +4 -0
  76. package/dist/core/index.js.map +1 -1
  77. package/dist/core/learning-parser.d.ts +6 -0
  78. package/dist/core/learning-parser.js +23 -0
  79. package/dist/core/learning-parser.js.map +1 -0
  80. package/dist/core/profile.d.ts +18 -0
  81. package/dist/core/profile.js +37 -0
  82. package/dist/core/profile.js.map +1 -0
  83. package/dist/core/source-file-cache.d.ts +13 -0
  84. package/dist/core/source-file-cache.js +85 -0
  85. package/dist/core/source-file-cache.js.map +1 -0
  86. package/dist/database/cli/register-all.d.ts +2 -0
  87. package/dist/database/cli/register-all.js +9 -0
  88. package/dist/database/cli/register-all.js.map +1 -0
  89. package/dist/database/cli/register-database.d.ts +2 -0
  90. package/dist/database/cli/register-database.js +44 -0
  91. package/dist/database/cli/register-database.js.map +1 -0
  92. package/dist/database/cli/register-interactive.d.ts +2 -0
  93. package/dist/database/cli/register-interactive.js +29 -0
  94. package/dist/database/cli/register-interactive.js.map +1 -0
  95. package/dist/database/cli/register-memory.d.ts +2 -0
  96. package/dist/database/cli/register-memory.js +47 -0
  97. package/dist/database/cli/register-memory.js.map +1 -0
  98. package/dist/database/cli.js +5 -112
  99. package/dist/database/cli.js.map +1 -1
  100. package/dist/database/commands/checkpoint.js +8 -10
  101. package/dist/database/commands/checkpoint.js.map +1 -1
  102. package/dist/database/commands/generate.js +6 -7
  103. package/dist/database/commands/generate.js.map +1 -1
  104. package/dist/database/commands/handoff.js +9 -8
  105. package/dist/database/commands/handoff.js.map +1 -1
  106. package/dist/database/commands/learn.d.ts +4 -0
  107. package/dist/database/commands/learn.js +245 -43
  108. package/dist/database/commands/learn.js.map +1 -1
  109. package/dist/database/commands/memory.js +1 -1
  110. package/dist/database/commands/validate.js +6 -4
  111. package/dist/database/commands/validate.js.map +1 -1
  112. package/dist/database/commands/watch.js +1 -1
  113. package/dist/database/commands/watch.js.map +1 -1
  114. package/dist/database/generators/templates.js +26 -26
  115. package/dist/database/generators/templates.js.map +1 -1
  116. package/dist/database/utils/json-output.d.ts +4 -0
  117. package/dist/database/utils/json-output.js +7 -0
  118. package/dist/database/utils/json-output.js.map +1 -1
  119. package/dist/generators/unified.d.ts +13 -0
  120. package/dist/generators/unified.js +390 -46
  121. package/dist/generators/unified.js.map +1 -1
  122. package/package.json +2 -2
package/README.md CHANGED
@@ -1,193 +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 Health Check** - `devmind status` reports freshness and recommends next action
22
- - **Context Slicing** - "Zoom in" on specific modules (`devmind context`)
23
- - **Learning Audit** - `devmind audit` checks code coverage against recorded learnings
24
- - **Learning Extraction** - `devmind extract` discovers reusable patterns from code and reports
25
- - **Crash-Safe Autosave** - `devmind autosave` journals session state and applies learnings
26
- - **Multi-Database Support** - PostgreSQL, MySQL, SQLite, MongoDB, Firebase
27
- - **Memory System** - Checkpoints, `LEARN.md`, session history
28
- - **Evolution Tracking** - Track both schema and codebase changes over time
29
- - **AI-Optimized Output** - Tailored for Claude, Cursor, Windsurf, and OpenClaw
30
-
31
- ## Quick Start
32
-
33
- ```bash
34
- # Install
35
- npm install -g devmind
36
-
37
- # Zero-Friction (auto-detect DB config and generate DB context)
38
- devmind generate
39
-
40
- # Full context (database + codebase)
41
- devmind generate --all
42
-
43
- # Or detailed setup
44
- devmind init
45
- ```
46
-
47
- ## Installation
48
-
49
- ```bash
50
- npm install -g devmind
51
- # or
52
- pnpm add -g devmind
53
- ```
54
-
55
- ## Usage
56
-
57
- ### ⚡ Zero-Friction Generation
58
-
59
- DevMind automatically detects your database configuration from `.env`, `prisma/schema.prisma`, `drizzle.config.ts`, or saved config.
60
-
61
- ```bash
62
- # Auto-detects DB and generates database context
63
- devmind generate
64
-
65
- # Generate full context (database + codebase)
66
- devmind generate --all
67
- ```
68
-
69
- If detection fails (or for first run):
70
-
71
- ```bash
72
- devmind init --url "postgres://..."
73
- ```
74
-
75
- ### Context Slicing (Token Efficient)
76
-
77
- ```bash
78
- # Get high-level map
79
- devmind context
80
-
81
- # Focus on specific module
82
- devmind context --focus src/database
83
- ```
84
-
85
- ### Memory Commands
86
-
87
- ```bash
88
- # Save architectural decision
89
- devmind learn "Services use dependency injection" --category architecture
90
-
91
- # Save checkpoint
92
- devmind checkpoint -m "Before refactoring auth"
93
-
94
- # View history
95
- devmind history --unified
96
- ```
97
-
98
- ### Analyze Code-to-Database Usage
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)
99
44
 
100
45
  ```bash
101
- devmind analyze -p ./my-project
46
+ devmind codex-plugin --force
102
47
  ```
103
48
 
104
- ### Context Health and Drift Recommendations
49
+ Optional:
105
50
 
106
51
  ```bash
107
- # Show context freshness + recommended next command
108
- devmind status
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`
109
64
 
110
- # Machine-readable preflight
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
111
75
  devmind status --json
112
76
  ```
113
77
 
114
- ### Learning Quality Loop
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
115
89
 
116
90
  ```bash
117
- # Audit codebase coverage against LEARN.md
118
- devmind audit
91
+ devmind generate --all
92
+ devmind scan
93
+ devmind status --json
94
+ ```
119
95
 
120
- # Extract learning candidates to report
121
- devmind extract
96
+ ### Focused context
122
97
 
123
- # Extract and append learnings to memory/LEARN.md
124
- devmind extract --apply
98
+ ```bash
99
+ devmind context --focus src/features
100
+ devmind context --query runbook
101
+ devmind retrieve -q "auth middleware flow" --type architecture --json
125
102
  ```
126
103
 
127
- ### Crash-Safe Session Persistence
104
+ ### Learning loop
128
105
 
129
106
  ```bash
130
- # Persist session journal + context + extracted learnings
107
+ devmind audit
108
+ devmind extract
109
+ devmind extract --apply
131
110
  devmind autosave --source task-end
111
+ ```
132
112
 
133
- # Persist without extraction/apply
134
- devmind autosave --no-extract
113
+ ### Database validation
114
+
115
+ ```bash
116
+ devmind analyze
117
+ devmind validate --strict
135
118
  ```
136
119
 
137
- ### Agent-First Session Flow
120
+ ## Agent-First Runbook
138
121
 
139
122
  ```bash
140
123
  # 1) Preflight
141
124
  devmind status --json
142
125
 
143
- # 2) If stale/missing, run recommendedCommand from status output
144
- # 3) Re-check
145
- devmind status --json
126
+ # 2) If stale, run recommendedCommand
146
127
 
147
- # 4) Do task, then autosave
128
+ # 3) Execute with focused retrieval
129
+ devmind retrieve -q "<task query>" --json
130
+
131
+ # 4) Persist memory
148
132
  devmind autosave --source task-end
149
133
  ```
150
-
151
- ## Integration
152
-
153
- ### OpenClaw
154
-
155
- DevMind is optimized for OpenClaw agents.
156
- See [OpenClaw Integration Skill](integrations/openclaw/SKILL.md) for agent instructions.
157
-
158
- ### Cursor / Windsurf / Custom Agents
159
-
160
- 1. Run `devmind generate --all`
161
- 2. Point your AI to `.devmind/AGENTS.md`
162
- 3. See [AI Agent Integration Guide](docs/AI_INTEGRATION.md) for detailed patterns.
163
-
164
- ## Output Structure
165
-
166
- ```
134
+
135
+ ## Key Outputs
136
+
137
+ ```text
167
138
  .devmind/
168
- ├── codebase/
169
- │ ├── codebase-overview.md
170
- │ ├── architecture.md
171
- │ └── modules/
172
- ├── database/
173
- ├── schema-overview.md
174
- ├── schema.json
175
- └── ...
176
- ├── memory/
177
- ├── checkpoints/
178
- ├── LEARN.md # Persistent accumulated knowledge
179
- ├── SESSION_JOURNAL.md # Incremental crash-safe journal
180
- │ ├── schema-evolution.md
181
- │ ├── codebase-evolution.md
182
- │ └── session-history.md
183
- ├── analysis/
184
- │ ├── CODE_DB_MAPPING.md
185
- │ └── UNUSED_TABLES.md
186
- ├── AGENTS.md # Unified context for AI
187
- ├── devmind-tools.json # Tool definitions for agents
188
- └── index.json
189
- ```
190
-
191
- ## License
192
-
193
- Apache 2.0 © Nyan Lin Maung
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":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,SAAkB,EAAE,QAA2C;IACpH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAkB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAkB,CAAC,CAAC;QAE3D,MAAM,QAAQ,CAAC,OAAO,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE,CAC/D,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACrC,YAAY;YACZ,aAAa;SACd,CAAC,CACH,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAE3D,MAAM,QAAQ,CAAC,OAAO,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAClE,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CACvE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,qCAAsC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgC;IACvE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACjE,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAE7E,IAAI,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,EAA6B,CAAC;QAEhF,IAAI,gBAAgB,GACjB,OAAO,CAAC,GAA0B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC,WAAW,CAAC;QAC7F,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IACE,CAAC,gBAAgB;YACjB,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAC/E,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CACrE,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACpC,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,+BAA+B,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACxF,gBAAgB,GAAG,WAAW,CAAC;gBAC/B,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;gBAC3D,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,aAAa,CAAC,GAAG,GAAG,gBAAgB,CAAC;QACvC,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;YAC/E,MAAM,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1C,MAAM,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,GAAI,aAAa,CAAC,MAAiB,IAAI,UAAU,CAAC;QACjE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,KAAK,IAAI,CAAC;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC;QACtD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAE7F,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3E,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAC/C,gBAAgB,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAE,aAAa,CAAC,IAAe,IAAI,GAAG,CAAC,CAAC;YACrE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC3D,MAAM,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAC5D,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAC1C,CAAC;YACF,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAE3F,MAAM,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAClE,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,YAAY,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,aAAa,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAChD,WAAW,CAAC;YACV,MAAM,EAAE,SAAS;YACjB,IAAI,EAAG,aAAa,CAAC,IAAe,IAAI,GAAG;YAC3C,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,sBAAsB;YACtE,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgC;IACnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAE,OAAO,CAAC,IAAe,IAAI,GAAG,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAI,OAAO,CAAC,MAAiB,IAAI,UAAU,CAAC;QAE3D,MAAM,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAC5D,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAC1C,CAAC;QACF,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAE3F,MAAM,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnF,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,YAAY,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAE9D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAChD,WAAW,CAAC;YACV,MAAM,EAAE,SAAS;YACjB,IAAI,EAAG,OAAO,CAAC,IAAe,IAAI,GAAG;YACrC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,yBAAyB;YAC/B,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -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;