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.
- package/README.md +157 -141
- package/dist/cli/handlers.d.ts +2 -0
- package/dist/cli/handlers.js +140 -0
- package/dist/cli/handlers.js.map +1 -0
- package/dist/cli/register-all.d.ts +2 -0
- package/dist/cli/register-all.js +11 -0
- package/dist/cli/register-all.js.map +1 -0
- package/dist/cli/register-analysis.d.ts +2 -0
- package/dist/cli/register-analysis.js +137 -0
- package/dist/cli/register-analysis.js.map +1 -0
- package/dist/cli/register-codebase.d.ts +2 -0
- package/dist/cli/register-codebase.js +22 -0
- package/dist/cli/register-codebase.js.map +1 -0
- package/dist/cli/register-database.d.ts +2 -0
- package/dist/cli/register-database.js +44 -0
- package/dist/cli/register-database.js.map +1 -0
- package/dist/cli/register-memory.d.ts +2 -0
- package/dist/cli/register-memory.js +58 -0
- package/dist/cli/register-memory.js.map +1 -0
- package/dist/cli.js +9 -220
- package/dist/cli.js.map +1 -1
- package/dist/codebase/index.js +2 -2
- package/dist/codebase/index.js.map +1 -1
- package/dist/codebase/parsers/typescript.d.ts +1 -0
- package/dist/codebase/parsers/typescript.js +3 -0
- package/dist/codebase/parsers/typescript.js.map +1 -1
- package/dist/codebase/scanners/filesystem.d.ts +1 -0
- package/dist/codebase/scanners/filesystem.js +131 -4
- package/dist/codebase/scanners/filesystem.js.map +1 -1
- package/dist/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.js +166 -24
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/audit-design.d.ts +8 -0
- package/dist/commands/audit-design.js +158 -0
- package/dist/commands/audit-design.js.map +1 -0
- package/dist/commands/audit-report.d.ts +18 -0
- package/dist/commands/audit-report.js +30 -0
- package/dist/commands/audit-report.js.map +1 -0
- package/dist/commands/audit-source.d.ts +21 -0
- package/dist/commands/audit-source.js +57 -0
- package/dist/commands/audit-source.js.map +1 -0
- package/dist/commands/audit.d.ts +8 -0
- package/dist/commands/audit.js +266 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/autosave.d.ts +19 -0
- package/dist/commands/autosave.js +85 -0
- package/dist/commands/autosave.js.map +1 -0
- package/dist/commands/claude-plugin.d.ts +8 -0
- package/dist/commands/claude-plugin.js +123 -0
- package/dist/commands/claude-plugin.js.map +1 -0
- package/dist/commands/codex-plugin.d.ts +9 -0
- package/dist/commands/codex-plugin.js +145 -0
- package/dist/commands/codex-plugin.js.map +1 -0
- package/dist/commands/context.js +66 -5
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/design-system.d.ts +8 -0
- package/dist/commands/design-system.js +95 -0
- package/dist/commands/design-system.js.map +1 -0
- package/dist/commands/extract.d.ts +33 -0
- package/dist/commands/extract.js +231 -0
- package/dist/commands/extract.js.map +1 -0
- package/dist/commands/openclaw-plugin.d.ts +8 -0
- package/dist/commands/openclaw-plugin.js +103 -0
- package/dist/commands/openclaw-plugin.js.map +1 -0
- package/dist/commands/retrieve.d.ts +12 -0
- package/dist/commands/retrieve.js +230 -0
- package/dist/commands/retrieve.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.js +148 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/core/cache-json.d.ts +7 -0
- package/dist/core/cache-json.js +60 -0
- package/dist/core/cache-json.js.map +1 -0
- package/dist/core/errors.d.ts +2 -0
- package/dist/core/errors.js +49 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/learning-parser.d.ts +6 -0
- package/dist/core/learning-parser.js +23 -0
- package/dist/core/learning-parser.js.map +1 -0
- package/dist/core/profile.d.ts +18 -0
- package/dist/core/profile.js +37 -0
- package/dist/core/profile.js.map +1 -0
- package/dist/core/source-file-cache.d.ts +13 -0
- package/dist/core/source-file-cache.js +85 -0
- package/dist/core/source-file-cache.js.map +1 -0
- package/dist/database/cli/register-all.d.ts +2 -0
- package/dist/database/cli/register-all.js +9 -0
- package/dist/database/cli/register-all.js.map +1 -0
- package/dist/database/cli/register-database.d.ts +2 -0
- package/dist/database/cli/register-database.js +44 -0
- package/dist/database/cli/register-database.js.map +1 -0
- package/dist/database/cli/register-interactive.d.ts +2 -0
- package/dist/database/cli/register-interactive.js +29 -0
- package/dist/database/cli/register-interactive.js.map +1 -0
- package/dist/database/cli/register-memory.d.ts +2 -0
- package/dist/database/cli/register-memory.js +47 -0
- package/dist/database/cli/register-memory.js.map +1 -0
- package/dist/database/cli.js +5 -112
- package/dist/database/cli.js.map +1 -1
- package/dist/database/commands/checkpoint.js +8 -10
- package/dist/database/commands/checkpoint.js.map +1 -1
- package/dist/database/commands/generate.js +17 -8
- package/dist/database/commands/generate.js.map +1 -1
- package/dist/database/commands/handoff.js +9 -8
- package/dist/database/commands/handoff.js.map +1 -1
- package/dist/database/commands/learn.d.ts +4 -0
- package/dist/database/commands/learn.js +245 -43
- package/dist/database/commands/learn.js.map +1 -1
- package/dist/database/commands/memory.js +1 -1
- package/dist/database/commands/validate.js +6 -4
- package/dist/database/commands/validate.js.map +1 -1
- package/dist/database/commands/watch.js +1 -1
- package/dist/database/commands/watch.js.map +1 -1
- package/dist/database/generators/templates.js +26 -26
- package/dist/database/generators/templates.js.map +1 -1
- package/dist/database/utils/json-output.d.ts +4 -0
- package/dist/database/utils/json-output.js +7 -0
- package/dist/database/utils/json-output.js.map +1 -1
- package/dist/generators/unified.d.ts +13 -0
- package/dist/generators/unified.js +420 -59
- package/dist/generators/unified.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,141 +1,157 @@
|
|
|
1
|
-
# DevMind
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
devmind
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
devmind
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
devmind
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
devmind
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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,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,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,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":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,GAAG,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;SAClD,MAAM,CACL,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACzB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,qCAAqC;YAC3C,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CACL,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACzD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CACL,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACzB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CACL,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,QAAQ,EAAE,sCAAsC,CAAC;SACxD,MAAM,CAAC,SAAS,EAAE,kDAAkD,CAAC;SACrE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACL,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACtE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SACxD,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;SACvF,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,GAAG,CAAC;SACpD,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,EAAE,MAAM,CAAC;SACpE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CACL,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,CAAC;SAC9D,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC;SACxC,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;SACpD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACL,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,gBAAgB,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;SACjD,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;SACpD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACL,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACtE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,SAAS,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,2DAA2D,CAAC;SAChF,MAAM,CAAC,aAAa,EAAE,8DAA8D,CAAC;SACrF,MAAM,CAAC,SAAS,EAAE,gCAAgC,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACL,oBAAoB,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACrD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACpE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,SAAS,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,6DAA6D,CAAC;SAClF,MAAM,CAAC,SAAS,EAAE,gCAAgC,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CACL,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC1E,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
|