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
|
@@ -1,10 +1,111 @@
|
|
|
1
1
|
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs/promises';
|
|
3
|
+
import { createHash } from 'crypto';
|
|
2
4
|
import { readFileSafe, writeFileSafe, logger } from '../core/index.js';
|
|
3
5
|
const START_MARKER = '<!-- devmind:auto-context:start -->';
|
|
4
6
|
const END_MARKER = '<!-- devmind:auto-context:end -->';
|
|
7
|
+
const SECTION_START = '<!-- devmind:section';
|
|
8
|
+
const SECTION_END = '<!-- /devmind:section';
|
|
5
9
|
function toPosixPath(filePath) {
|
|
6
10
|
return filePath.replace(/\\/g, '/');
|
|
7
11
|
}
|
|
12
|
+
function hashContent(content) {
|
|
13
|
+
return createHash('sha256').update(content, 'utf8').digest('hex').slice(0, 16);
|
|
14
|
+
}
|
|
15
|
+
function serializeSectionMetadata(section) {
|
|
16
|
+
const tags = section.tags.join(',');
|
|
17
|
+
return `${SECTION_START} id=${section.id} type=${section.type} priority=${section.priority} source=${section.source} tags=${tags} -->`;
|
|
18
|
+
}
|
|
19
|
+
function renderSection(section) {
|
|
20
|
+
return [
|
|
21
|
+
serializeSectionMetadata(section),
|
|
22
|
+
`## ${section.title}`,
|
|
23
|
+
section.content.trim() || '(No context available)',
|
|
24
|
+
`${SECTION_END} id=${section.id} -->`,
|
|
25
|
+
].join('\n');
|
|
26
|
+
}
|
|
27
|
+
function parseSectionsFromAgentsContent(agentsContent) {
|
|
28
|
+
const lines = agentsContent.split('\n');
|
|
29
|
+
const parsed = [];
|
|
30
|
+
const idRegex = /id=([a-z0-9._-]+)/i;
|
|
31
|
+
let current = null;
|
|
32
|
+
lines.forEach((line, idx) => {
|
|
33
|
+
const lineNo = idx + 1;
|
|
34
|
+
if (line.startsWith(SECTION_START)) {
|
|
35
|
+
const idMatch = line.match(idRegex);
|
|
36
|
+
if (!idMatch)
|
|
37
|
+
return;
|
|
38
|
+
current = {
|
|
39
|
+
id: idMatch[1],
|
|
40
|
+
startLine: lineNo + 1,
|
|
41
|
+
contentLines: [],
|
|
42
|
+
};
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (line.startsWith(SECTION_END)) {
|
|
46
|
+
if (!current)
|
|
47
|
+
return;
|
|
48
|
+
parsed.push({
|
|
49
|
+
id: current.id,
|
|
50
|
+
startLine: current.startLine,
|
|
51
|
+
endLine: lineNo - 1,
|
|
52
|
+
content: current.contentLines.join('\n').trim(),
|
|
53
|
+
});
|
|
54
|
+
current = null;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (current)
|
|
58
|
+
current.contentLines.push(line);
|
|
59
|
+
});
|
|
60
|
+
return parsed;
|
|
61
|
+
}
|
|
62
|
+
async function replaceFile(tempPath, targetPath) {
|
|
63
|
+
await fs.rm(targetPath, { force: true });
|
|
64
|
+
await fs.rename(tempPath, targetPath);
|
|
65
|
+
}
|
|
66
|
+
function buildIndexSections(declaredSections, parsedSections) {
|
|
67
|
+
const parsedById = new Map(parsedSections.map((section) => [section.id, section]));
|
|
68
|
+
return declaredSections.map((declared) => {
|
|
69
|
+
const parsed = parsedById.get(declared.id);
|
|
70
|
+
if (!parsed) {
|
|
71
|
+
throw new Error(`Missing section marker for id=${declared.id}`);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
id: declared.id,
|
|
75
|
+
title: declared.title,
|
|
76
|
+
type: declared.type,
|
|
77
|
+
tags: declared.tags,
|
|
78
|
+
priority: declared.priority,
|
|
79
|
+
source: declared.source,
|
|
80
|
+
startLine: parsed.startLine,
|
|
81
|
+
endLine: parsed.endLine,
|
|
82
|
+
contentHash: hashContent(parsed.content),
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function validateSectionSync(indexSections, parsedSections) {
|
|
87
|
+
const ids = new Set();
|
|
88
|
+
for (const section of indexSections) {
|
|
89
|
+
if (ids.has(section.id)) {
|
|
90
|
+
throw new Error(`Duplicate index section id=${section.id}`);
|
|
91
|
+
}
|
|
92
|
+
ids.add(section.id);
|
|
93
|
+
}
|
|
94
|
+
const parsedById = new Map(parsedSections.map((section) => [section.id, section]));
|
|
95
|
+
for (const indexSection of indexSections) {
|
|
96
|
+
const parsed = parsedById.get(indexSection.id);
|
|
97
|
+
if (!parsed) {
|
|
98
|
+
throw new Error(`Section not found in AGENTS.md: ${indexSection.id}`);
|
|
99
|
+
}
|
|
100
|
+
if (indexSection.startLine > indexSection.endLine) {
|
|
101
|
+
throw new Error(`Invalid section line range for ${indexSection.id}`);
|
|
102
|
+
}
|
|
103
|
+
const parsedHash = hashContent(parsed.content);
|
|
104
|
+
if (parsedHash !== indexSection.contentHash) {
|
|
105
|
+
throw new Error(`Hash mismatch for section ${indexSection.id}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
8
109
|
function buildAutoContextBlock(outputDir) {
|
|
9
110
|
const workspaceRoot = process.cwd();
|
|
10
111
|
const agentsPath = toPosixPath(path.relative(workspaceRoot, path.join(outputDir, 'AGENTS.md')));
|
|
@@ -49,82 +150,207 @@ export async function generateUnifiedDocs(outputDir) {
|
|
|
49
150
|
const architecture = await readFileSafe(path.join(outputDir, 'codebase', 'architecture.md')).catch(() => '');
|
|
50
151
|
const businessLogic = await readFileSafe(path.join(outputDir, 'database', 'BUSINESS_LOGIC.md')).catch(() => '');
|
|
51
152
|
const learnings = await readFileSafe(path.join(memoryDir, 'LEARN.md')).catch(() => '');
|
|
153
|
+
const designSystemRaw = await readFileSafe(path.join(outputDir, 'design-system.json')).catch(() => '');
|
|
154
|
+
let designSystemProfile = null;
|
|
155
|
+
if (designSystemRaw) {
|
|
156
|
+
try {
|
|
157
|
+
designSystemProfile = JSON.parse(designSystemRaw);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
logger.warn(`Failed to parse design-system.json: ${error.message}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const sourceMap = {
|
|
164
|
+
architecture: 'codebase/architecture.md',
|
|
165
|
+
database: 'database/schema-overview.md',
|
|
166
|
+
businessLogic: 'database/BUSINESS_LOGIC.md',
|
|
167
|
+
codebase: 'codebase/codebase-overview.md',
|
|
168
|
+
designSystem: 'design-system.json',
|
|
169
|
+
learnings: 'memory/LEARN.md',
|
|
170
|
+
};
|
|
171
|
+
const capabilityContent = `
|
|
172
|
+
<tools>
|
|
173
|
+
<tool name="devmind-scan">
|
|
174
|
+
<description>Scan codebase structure and generate QMD summary.</description>
|
|
175
|
+
</tool>
|
|
176
|
+
<tool name="devmind-analyze">
|
|
177
|
+
<description>Analyze code-to-database usage patterns.</description>
|
|
178
|
+
</tool>
|
|
179
|
+
<tool name="devmind-status">
|
|
180
|
+
<description>Check context freshness and get the recommended next command.</description>
|
|
181
|
+
</tool>
|
|
182
|
+
<tool name="devmind-audit">
|
|
183
|
+
<description>Audit codebase coverage against recorded learnings.</description>
|
|
184
|
+
</tool>
|
|
185
|
+
<tool name="devmind-extract">
|
|
186
|
+
<description>Extract learning candidates from code and analysis artifacts.</description>
|
|
187
|
+
</tool>
|
|
188
|
+
<tool name="devmind-autosave">
|
|
189
|
+
<description>Persist session journal/context and auto-apply extracted learnings.</description>
|
|
190
|
+
</tool>
|
|
191
|
+
<tool name="devmind-retrieve">
|
|
192
|
+
<description>Retrieve focused context using index metadata filters and AGENTS section chunks.</description>
|
|
193
|
+
</tool>
|
|
194
|
+
<tool name="devmind-design-system">
|
|
195
|
+
<description>Initialize or inspect design-system.json used for UI alignment auditing and agent guidance.</description>
|
|
196
|
+
</tool>
|
|
197
|
+
<tool name="devmind-learn">
|
|
198
|
+
<description>Save a new technical learning, pattern, or architectural decision to LEARN.md.</description>
|
|
199
|
+
<arguments>
|
|
200
|
+
<arg name="learning">The knowledge to save</arg>
|
|
201
|
+
<arg name="category">Category (architecture, database, etc)</arg>
|
|
202
|
+
</arguments>
|
|
203
|
+
</tool>
|
|
204
|
+
<tool name="devmind-context">
|
|
205
|
+
<description>Get focused context for a specific directory or module.</description>
|
|
206
|
+
<arguments>
|
|
207
|
+
<arg name="focus">Path to focus on</arg>
|
|
208
|
+
</arguments>
|
|
209
|
+
</tool>
|
|
210
|
+
</tools>
|
|
211
|
+
`.trim();
|
|
212
|
+
const designSystemContent = designSystemProfile
|
|
213
|
+
? `
|
|
214
|
+
Design system profile: \`${designSystemProfile.name || 'unnamed'}\` (v${designSystemProfile.version || 'n/a'})
|
|
215
|
+
|
|
216
|
+
- Allowed component imports: ${(designSystemProfile.allowedComponentImports || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
|
|
217
|
+
- Token sources: ${(designSystemProfile.tokenSources || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
|
|
218
|
+
- Required wrappers: ${(designSystemProfile.requiredWrappers || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
|
|
219
|
+
- Banned rules: ${(designSystemProfile.bannedRegexRules || [])
|
|
220
|
+
.map((rule) => `\`${rule.id || 'rule'}\` (${rule.message || 'no message'})`)
|
|
221
|
+
.join('; ') || '(none configured)'}
|
|
222
|
+
`
|
|
223
|
+
.trim()
|
|
224
|
+
: 'No design-system profile found. Run `devmind design-system --init` and customize `.devmind/design-system.json`.';
|
|
225
|
+
const runbookContent = `
|
|
226
|
+
### Agent Runbook (Auto Workflow, Recommendation Drift Control)
|
|
227
|
+
1. Automatically run \`devmind status --json\` at session start.
|
|
228
|
+
2. If context is stale/missing, automatically run the returned \`recommendedCommand\` (drift control remains recommendation-based).
|
|
229
|
+
3. Automatically re-run \`devmind status --json\` and continue when context is fresh.
|
|
230
|
+
4. Perform the requested coding task.
|
|
231
|
+
5. Automatically run \`devmind autosave --source task-end\` at task end (journal + session context + learnings apply).
|
|
232
|
+
6. Optionally run \`devmind extract --json\` for a verbose extraction report.
|
|
233
|
+
|
|
234
|
+
### Working Rules
|
|
235
|
+
- **Context:** Read this file first, then linked files from \`index.json\`.
|
|
236
|
+
- **Style:** Follow patterns in \`architecture.md\` and module docs.
|
|
237
|
+
- **Database:** Run \`devmind analyze\` or \`devmind validate\` before risky schema changes.
|
|
238
|
+
- **Memory:** Use \`LEARN.md\` to keep decisions consistent across sessions.
|
|
239
|
+
`.trim();
|
|
240
|
+
const sections = [
|
|
241
|
+
{
|
|
242
|
+
id: 'architecture.overview',
|
|
243
|
+
title: 'Architecture',
|
|
244
|
+
type: 'architecture',
|
|
245
|
+
tags: ['architecture', 'layers', 'patterns'],
|
|
246
|
+
priority: 'high',
|
|
247
|
+
source: sourceMap.architecture,
|
|
248
|
+
content: architecture || '(No architecture context available)',
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: 'database.schema',
|
|
252
|
+
title: 'Database Schema',
|
|
253
|
+
type: 'database',
|
|
254
|
+
tags: ['database', 'schema', 'tables'],
|
|
255
|
+
priority: 'high',
|
|
256
|
+
source: sourceMap.database,
|
|
257
|
+
content: schemaContext ? 'See schema-overview.md for details.' : '(No database context available)',
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: 'business.logic',
|
|
261
|
+
title: 'Business Logic',
|
|
262
|
+
type: 'business-logic',
|
|
263
|
+
tags: ['business', 'rules', 'domain'],
|
|
264
|
+
priority: 'medium',
|
|
265
|
+
source: sourceMap.businessLogic,
|
|
266
|
+
content: businessLogic || '(No business logic detected)',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 'codebase.overview',
|
|
270
|
+
title: 'Codebase Overview',
|
|
271
|
+
type: 'codebase',
|
|
272
|
+
tags: ['codebase', 'modules', 'entrypoints'],
|
|
273
|
+
priority: 'high',
|
|
274
|
+
source: sourceMap.codebase,
|
|
275
|
+
content: codebaseOverview || '(No codebase overview available)',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 'memory.learnings',
|
|
279
|
+
title: 'Project Learnings',
|
|
280
|
+
type: 'memory',
|
|
281
|
+
tags: ['memory', 'learnings', 'decisions'],
|
|
282
|
+
priority: 'medium',
|
|
283
|
+
source: sourceMap.learnings,
|
|
284
|
+
content: learnings || '(No learnings recorded)',
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: 'ui.design-system',
|
|
288
|
+
title: 'Design System',
|
|
289
|
+
type: 'design-system',
|
|
290
|
+
tags: ['ui', 'design-system', 'components', 'tokens'],
|
|
291
|
+
priority: 'high',
|
|
292
|
+
source: sourceMap.designSystem,
|
|
293
|
+
content: designSystemContent,
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
id: 'agent.capabilities',
|
|
297
|
+
title: 'Agent Capabilities',
|
|
298
|
+
type: 'capabilities',
|
|
299
|
+
tags: ['tools', 'capabilities', 'commands'],
|
|
300
|
+
priority: 'medium',
|
|
301
|
+
source: 'devmind-tools.json',
|
|
302
|
+
content: capabilityContent,
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
id: 'agent.runbook',
|
|
306
|
+
title: 'Instructions',
|
|
307
|
+
type: 'runbook',
|
|
308
|
+
tags: ['runbook', 'workflow', 'status', 'autosave'],
|
|
309
|
+
priority: 'high',
|
|
310
|
+
source: 'AGENTS.md',
|
|
311
|
+
content: runbookContent,
|
|
312
|
+
},
|
|
313
|
+
];
|
|
52
314
|
// Generate AGENTS.md (Consolidated Context in QMD Format)
|
|
53
|
-
const agentsContent = `
|
|
54
|
-
# Project Context
|
|
55
|
-
|
|
56
|
-
> Generated by DevMind for AI Agents (Claude, Cursor, Windsurf)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
## Database Schema
|
|
62
|
-
${schemaContext ? 'See schema-overview.md for details.' : '(No database context available)'}
|
|
63
|
-
|
|
64
|
-
## Business Logic
|
|
65
|
-
${businessLogic || '(No business logic detected)'}
|
|
66
|
-
|
|
67
|
-
## Codebase Overview
|
|
68
|
-
${codebaseOverview || '(No codebase overview available)'}
|
|
69
|
-
|
|
70
|
-
## Project Learnings
|
|
71
|
-
${learnings || '(No learnings recorded)'}
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## Agent Capabilities
|
|
76
|
-
|
|
77
|
-
<tools>
|
|
78
|
-
<tool name="devmind-scan">
|
|
79
|
-
<description>Scan codebase structure and generate QMD summary.</description>
|
|
80
|
-
</tool>
|
|
81
|
-
<tool name="devmind-analyze">
|
|
82
|
-
<description>Analyze code-to-database usage patterns.</description>
|
|
83
|
-
</tool>
|
|
84
|
-
<tool name="devmind-learn">
|
|
85
|
-
<description>Save a new technical learning, pattern, or architectural decision to LEARN.md.</description>
|
|
86
|
-
<arguments>
|
|
87
|
-
<arg name="learning">The knowledge to save</arg>
|
|
88
|
-
<arg name="category">Category (architecture, database, etc)</arg>
|
|
89
|
-
</arguments>
|
|
90
|
-
</tool>
|
|
91
|
-
<tool name="devmind-context">
|
|
92
|
-
<description>Get focused context for a specific directory or module.</description>
|
|
93
|
-
<arguments>
|
|
94
|
-
<arg name="focus">Path to focus on</arg>
|
|
95
|
-
</arguments>
|
|
96
|
-
</tool>
|
|
97
|
-
</tools>
|
|
98
|
-
|
|
99
|
-
## Instructions
|
|
100
|
-
|
|
101
|
-
### Cursor / Windsurf
|
|
102
|
-
- **Context:** Read this file and linked overviews.
|
|
103
|
-
- **Style:** Follow patterns in architecture.md.
|
|
104
|
-
- **Database:** Check schema-overview.md before writing SQL.
|
|
105
|
-
|
|
106
|
-
### Claude
|
|
107
|
-
- **Validation:** Run \`devmind validate\` before major changes.
|
|
108
|
-
- **Memory:** Check \`LEARN.md\` for past lessons.
|
|
315
|
+
const agentsContent = `
|
|
316
|
+
# Project Context
|
|
317
|
+
|
|
318
|
+
> Generated by DevMind for AI Agents (Claude, Cursor, Windsurf)
|
|
319
|
+
|
|
320
|
+
${sections.map((section) => renderSection(section)).join('\n\n')}
|
|
321
|
+
|
|
322
|
+
---
|
|
109
323
|
`.trim();
|
|
110
|
-
|
|
324
|
+
const parsedSections = parseSectionsFromAgentsContent(agentsContent);
|
|
325
|
+
const indexSections = buildIndexSections(sections, parsedSections);
|
|
326
|
+
validateSectionSync(indexSections, parsedSections);
|
|
111
327
|
// Generate unified index.json
|
|
112
328
|
const index = {
|
|
113
329
|
timestamp: new Date().toISOString(),
|
|
114
|
-
version: '1.0
|
|
330
|
+
version: '1.1.0',
|
|
115
331
|
contexts: {
|
|
116
332
|
agents: 'AGENTS.md',
|
|
117
333
|
schema: 'database/schema-overview.md',
|
|
118
334
|
codebase: 'codebase/codebase-overview.md',
|
|
119
335
|
architecture: 'codebase/architecture.md',
|
|
336
|
+
designSystem: 'design-system.json',
|
|
120
337
|
learnings: 'memory/LEARN.md',
|
|
121
338
|
},
|
|
122
339
|
metadata: {
|
|
123
340
|
hasDatabase: !!schemaContext,
|
|
124
341
|
hasCodebase: !!codebaseOverview,
|
|
342
|
+
hasDesignSystem: !!designSystemProfile,
|
|
125
343
|
},
|
|
344
|
+
sections: indexSections,
|
|
126
345
|
};
|
|
127
|
-
|
|
346
|
+
const agentsPath = path.join(outputDir, 'AGENTS.md');
|
|
347
|
+
const indexPath = path.join(outputDir, 'index.json');
|
|
348
|
+
const agentsTempPath = `${agentsPath}.tmp`;
|
|
349
|
+
const indexTempPath = `${indexPath}.tmp`;
|
|
350
|
+
await writeFileSafe(agentsTempPath, agentsContent);
|
|
351
|
+
await writeFileSafe(indexTempPath, JSON.stringify(index, null, 2));
|
|
352
|
+
await replaceFile(agentsTempPath, agentsPath);
|
|
353
|
+
await replaceFile(indexTempPath, indexPath);
|
|
128
354
|
logger.success('Unified documentation generated:');
|
|
129
355
|
logger.info(` - ${path.join(outputDir, 'AGENTS.md')}`);
|
|
130
356
|
// Generate devmind-tools.json (Tool Definitions for Agents)
|
|
@@ -155,6 +381,141 @@ ${learnings || '(No learnings recorded)'}
|
|
|
155
381
|
},
|
|
156
382
|
},
|
|
157
383
|
},
|
|
384
|
+
{
|
|
385
|
+
name: 'devmind_status',
|
|
386
|
+
description: 'Checks context freshness and returns a recommended next command when generated context is stale or missing.',
|
|
387
|
+
parameters: {
|
|
388
|
+
type: 'object',
|
|
389
|
+
properties: {
|
|
390
|
+
output: {
|
|
391
|
+
type: 'string',
|
|
392
|
+
description: 'Context output directory (default: .devmind)',
|
|
393
|
+
},
|
|
394
|
+
path: {
|
|
395
|
+
type: 'string',
|
|
396
|
+
description: 'Root path for source freshness checks (default: current directory)',
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
},
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
name: 'devmind_audit',
|
|
403
|
+
description: 'Audits codebase coverage against recorded learnings in memory/LEARN.md and writes an audit report.',
|
|
404
|
+
parameters: {
|
|
405
|
+
type: 'object',
|
|
406
|
+
properties: {
|
|
407
|
+
output: {
|
|
408
|
+
type: 'string',
|
|
409
|
+
description: 'Context output directory (default: .devmind)',
|
|
410
|
+
},
|
|
411
|
+
path: {
|
|
412
|
+
type: 'string',
|
|
413
|
+
description: 'Root path to audit (default: current directory)',
|
|
414
|
+
},
|
|
415
|
+
},
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
name: 'devmind_extract',
|
|
420
|
+
description: 'Extracts learning candidates from analysis artifacts and source comments, with optional apply to LEARN.md.',
|
|
421
|
+
parameters: {
|
|
422
|
+
type: 'object',
|
|
423
|
+
properties: {
|
|
424
|
+
output: {
|
|
425
|
+
type: 'string',
|
|
426
|
+
description: 'Context output directory (default: .devmind)',
|
|
427
|
+
},
|
|
428
|
+
path: {
|
|
429
|
+
type: 'string',
|
|
430
|
+
description: 'Root path to scan for comments (default: current directory)',
|
|
431
|
+
},
|
|
432
|
+
apply: {
|
|
433
|
+
type: 'boolean',
|
|
434
|
+
description: 'Append extracted learning candidates into memory/LEARN.md',
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
name: 'devmind_autosave',
|
|
441
|
+
description: 'Persists crash-safe session journal/context and auto-applies extracted learnings.',
|
|
442
|
+
parameters: {
|
|
443
|
+
type: 'object',
|
|
444
|
+
properties: {
|
|
445
|
+
output: {
|
|
446
|
+
type: 'string',
|
|
447
|
+
description: 'Context output directory (default: .devmind)',
|
|
448
|
+
},
|
|
449
|
+
path: {
|
|
450
|
+
type: 'string',
|
|
451
|
+
description: 'Root path for extraction (default: current directory)',
|
|
452
|
+
},
|
|
453
|
+
source: {
|
|
454
|
+
type: 'string',
|
|
455
|
+
description: 'Autosave source label (e.g., task-end, scan, generate)',
|
|
456
|
+
},
|
|
457
|
+
note: {
|
|
458
|
+
type: 'string',
|
|
459
|
+
description: 'Optional note attached to journal/context state',
|
|
460
|
+
},
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
name: 'devmind_retrieve',
|
|
466
|
+
description: 'Performs two-stage retrieval using index metadata as filter and AGENTS.md sections as content.',
|
|
467
|
+
parameters: {
|
|
468
|
+
type: 'object',
|
|
469
|
+
properties: {
|
|
470
|
+
query: {
|
|
471
|
+
type: 'string',
|
|
472
|
+
description: 'Retrieval query',
|
|
473
|
+
},
|
|
474
|
+
output: {
|
|
475
|
+
type: 'string',
|
|
476
|
+
description: 'Context output directory (default: .devmind)',
|
|
477
|
+
},
|
|
478
|
+
type: {
|
|
479
|
+
type: 'string',
|
|
480
|
+
description: 'Optional section type filter',
|
|
481
|
+
},
|
|
482
|
+
tags: {
|
|
483
|
+
type: 'string',
|
|
484
|
+
description: 'Optional comma-separated tags filter',
|
|
485
|
+
},
|
|
486
|
+
limit: {
|
|
487
|
+
type: 'number',
|
|
488
|
+
description: 'Max sections to return (default: 6)',
|
|
489
|
+
},
|
|
490
|
+
max_words: {
|
|
491
|
+
type: 'number',
|
|
492
|
+
description: 'Approximate max words in output (default: 1400)',
|
|
493
|
+
},
|
|
494
|
+
},
|
|
495
|
+
required: ['query'],
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
name: 'devmind_design_system',
|
|
500
|
+
description: 'Initializes or reads the design system profile used to keep UI code aligned with component/token policies.',
|
|
501
|
+
parameters: {
|
|
502
|
+
type: 'object',
|
|
503
|
+
properties: {
|
|
504
|
+
output: {
|
|
505
|
+
type: 'string',
|
|
506
|
+
description: 'Context output directory (default: .devmind)',
|
|
507
|
+
},
|
|
508
|
+
init: {
|
|
509
|
+
type: 'boolean',
|
|
510
|
+
description: 'Create default profile file if missing',
|
|
511
|
+
},
|
|
512
|
+
force: {
|
|
513
|
+
type: 'boolean',
|
|
514
|
+
description: 'Overwrite profile when used with init',
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
},
|
|
518
|
+
},
|
|
158
519
|
{
|
|
159
520
|
name: 'devmind_learn',
|
|
160
521
|
description: "Saves a new technical learning, pattern, or architectural decision to the project's persistent memory (LEARN.md). Use this when you discover something important that future agents should know.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/generators/unified.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/generators/unified.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devmind",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "AI Memory Layer for development - Complete project context (codebase + database + memory)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "tsc",
|
|
19
19
|
"prepack": "npm run build",
|
|
20
|
-
"pack:dry": "npm pack --dry-run",
|
|
20
|
+
"pack:dry": "npm pack --dry-run --cache .npm-cache",
|
|
21
21
|
"dev": "ts-node --esm src/cli.ts",
|
|
22
22
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.cjs --runInBand",
|
|
23
23
|
"format": "prettier --write .",
|