brainforge-ai 1.2.0 → 1.2.2
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 +193 -570
- package/dist/cli.js +47 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/defensePack.d.ts +2 -0
- package/dist/commands/defensePack.d.ts.map +1 -0
- package/dist/commands/defensePack.js +269 -0
- package/dist/commands/defensePack.js.map +1 -0
- package/dist/commands/difficulty.d.ts +2 -0
- package/dist/commands/difficulty.d.ts.map +1 -0
- package/dist/commands/difficulty.js +177 -0
- package/dist/commands/difficulty.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +53 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +24 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +64 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/professorCheck.d.ts +2 -0
- package/dist/commands/professorCheck.d.ts.map +1 -0
- package/dist/commands/professorCheck.js +203 -0
- package/dist/commands/professorCheck.js.map +1 -0
- package/dist/commands/simplify.d.ts +2 -0
- package/dist/commands/simplify.d.ts.map +1 -0
- package/dist/commands/simplify.js +174 -0
- package/dist/commands/simplify.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +105 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/study.d.ts +2 -0
- package/dist/commands/study.d.ts.map +1 -0
- package/dist/commands/study.js +193 -0
- package/dist/commands/study.js.map +1 -0
- package/dist/commands/update.js +2 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/core/dashboard.d.ts +41 -0
- package/dist/core/dashboard.d.ts.map +1 -1
- package/dist/core/dashboard.js +121 -0
- package/dist/core/dashboard.js.map +1 -1
- package/dist/core/dashboardTemplate.d.ts.map +1 -1
- package/dist/core/dashboardTemplate.js +523 -92
- package/dist/core/dashboardTemplate.js.map +1 -1
- package/dist/core/fileSystem.d.ts.map +1 -1
- package/dist/core/fileSystem.js +175 -0
- package/dist/core/fileSystem.js.map +1 -1
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +652 -233
- package/dist/core/templates.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.statusCommand = statusCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const config_1 = require("../core/config");
|
|
11
|
+
const git_1 = require("../core/git");
|
|
12
|
+
const logger_1 = require("../utils/logger");
|
|
13
|
+
async function statusCommand() {
|
|
14
|
+
const cwd = process.cwd();
|
|
15
|
+
if (!(0, config_1.configExists)(cwd)) {
|
|
16
|
+
logger_1.logger.error('BrainForge not initialized. Run: brainforge init');
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const config = (0, config_1.readConfig)(cwd);
|
|
20
|
+
const brainDir = path_1.default.join(cwd, '.brainforge');
|
|
21
|
+
logger_1.logger.title('⚡ BrainForge Status');
|
|
22
|
+
logger_1.logger.divider();
|
|
23
|
+
console.log();
|
|
24
|
+
// Project info
|
|
25
|
+
console.log(chalk_1.default.bold('Project'));
|
|
26
|
+
console.log(chalk_1.default.gray(' Name: ') + chalk_1.default.white(config.projectName));
|
|
27
|
+
console.log(chalk_1.default.gray(' Description: ') + chalk_1.default.white(config.description || '(none)'));
|
|
28
|
+
console.log(chalk_1.default.gray(' Type: ') + chalk_1.default.cyan(config.projectType));
|
|
29
|
+
console.log(chalk_1.default.gray(' Stack: ') + chalk_1.default.cyan(config.stack.join(', ')));
|
|
30
|
+
console.log(chalk_1.default.gray(' User level: ') + chalk_1.default.cyan(config.userLevel));
|
|
31
|
+
console.log(chalk_1.default.gray(' Code level: ') + chalk_1.default.cyan(config.codeLevel));
|
|
32
|
+
console.log(chalk_1.default.gray(' Academic: ') + chalk_1.default.cyan(config.isAcademic ? 'Yes' : 'No'));
|
|
33
|
+
console.log();
|
|
34
|
+
// Progress
|
|
35
|
+
const bar = progressBar(config.currentPhase, config.totalPhases);
|
|
36
|
+
console.log(chalk_1.default.bold('Progress'));
|
|
37
|
+
console.log(chalk_1.default.gray(' Phases: ') +
|
|
38
|
+
bar +
|
|
39
|
+
chalk_1.default.white(`${config.currentPhase}`) +
|
|
40
|
+
chalk_1.default.gray(` / ${config.totalPhases}`));
|
|
41
|
+
const phasesDir = path_1.default.join(brainDir, 'phases');
|
|
42
|
+
if (fs_extra_1.default.existsSync(phasesDir)) {
|
|
43
|
+
const files = fs_extra_1.default
|
|
44
|
+
.readdirSync(phasesDir)
|
|
45
|
+
.filter((f) => f.endsWith('.md'))
|
|
46
|
+
.sort();
|
|
47
|
+
for (const file of files) {
|
|
48
|
+
const content = fs_extra_1.default.readFileSync(path_1.default.join(phasesDir, file), 'utf-8');
|
|
49
|
+
const titleMatch = content.match(/^#\s+(.+)/m);
|
|
50
|
+
const title = titleMatch ? titleMatch[1] : file.replace('.md', '');
|
|
51
|
+
const statusMatch = content.match(/\*\*Status\*\*:\s*(.+)/i);
|
|
52
|
+
const status = statusMatch ? statusMatch[1].trim() : 'pending';
|
|
53
|
+
const icon = status === 'done'
|
|
54
|
+
? chalk_1.default.green('✔')
|
|
55
|
+
: status === 'in-progress'
|
|
56
|
+
? chalk_1.default.yellow('●')
|
|
57
|
+
: chalk_1.default.gray('○');
|
|
58
|
+
console.log(` ${icon} ${chalk_1.default.gray(title)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
console.log();
|
|
62
|
+
// Features
|
|
63
|
+
console.log(chalk_1.default.bold('Features'));
|
|
64
|
+
console.log(chalk_1.default.gray(' Docker: ') + flag(config.useDocker));
|
|
65
|
+
console.log(chalk_1.default.gray(' Database: ') + flag(config.useDatabase));
|
|
66
|
+
console.log(chalk_1.default.gray(' Auth: ') + flag(config.useAuth));
|
|
67
|
+
console.log(chalk_1.default.gray(' Admin panel: ') + flag(config.useAdminDashboard));
|
|
68
|
+
console.log(chalk_1.default.gray(' Responsive: ') + flag(config.useResponsive));
|
|
69
|
+
console.log();
|
|
70
|
+
// Git
|
|
71
|
+
console.log(chalk_1.default.bold('Git'));
|
|
72
|
+
try {
|
|
73
|
+
const gitStatus = await (0, git_1.getGitStatus)(cwd);
|
|
74
|
+
const recentCommits = await (0, git_1.getRecentCommits)(3, cwd);
|
|
75
|
+
console.log(chalk_1.default.gray(' Status: ') + chalk_1.default.cyan(gitStatus));
|
|
76
|
+
if (recentCommits.length > 0) {
|
|
77
|
+
console.log(chalk_1.default.gray(' Recent commits:'));
|
|
78
|
+
for (const commit of recentCommits) {
|
|
79
|
+
console.log(chalk_1.default.gray(' · ') + chalk_1.default.white(commit));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
console.log(chalk_1.default.gray(' Status: ') + chalk_1.default.yellow('(not a git repo)'));
|
|
85
|
+
}
|
|
86
|
+
console.log();
|
|
87
|
+
// Timestamps
|
|
88
|
+
console.log(chalk_1.default.bold('Timestamps'));
|
|
89
|
+
console.log(chalk_1.default.gray(' Created: ') + chalk_1.default.gray(config.createdAt));
|
|
90
|
+
console.log(chalk_1.default.gray(' Updated: ') + chalk_1.default.gray(config.updatedAt));
|
|
91
|
+
console.log();
|
|
92
|
+
logger_1.logger.divider();
|
|
93
|
+
logger_1.logger.info('Run brainforge serve to open the live dashboard.');
|
|
94
|
+
}
|
|
95
|
+
function progressBar(current, total) {
|
|
96
|
+
if (total === 0)
|
|
97
|
+
return chalk_1.default.gray('[──────────] ');
|
|
98
|
+
const filled = Math.round((current / total) * 10);
|
|
99
|
+
const bar = '█'.repeat(filled) + '─'.repeat(10 - filled);
|
|
100
|
+
return chalk_1.default.green('[') + chalk_1.default.green(bar) + chalk_1.default.green(']') + ' ';
|
|
101
|
+
}
|
|
102
|
+
function flag(value) {
|
|
103
|
+
return value ? chalk_1.default.green('Yes') : chalk_1.default.gray('No');
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"study.d.ts","sourceRoot":"","sources":["../../src/commands/study.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAiDlD"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.studyCommand = studyCommand;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const config_1 = require("../core/config");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
async function studyCommand() {
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
if (!(0, config_1.configExists)(cwd)) {
|
|
15
|
+
logger_1.logger.error('BrainForge not initialized. Run: brainforge init');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const config = (0, config_1.readConfig)(cwd);
|
|
19
|
+
const brainDir = (0, config_1.getBrainforgeDir)(cwd);
|
|
20
|
+
const studyDir = path_1.default.join(brainDir, 'study');
|
|
21
|
+
logger_1.logger.title('⚡ BrainForge Study Mode');
|
|
22
|
+
logger_1.logger.divider();
|
|
23
|
+
logger_1.logger.info(`Project: ${chalk_1.default.white(config.projectName)}`);
|
|
24
|
+
console.log();
|
|
25
|
+
await fs_extra_1.default.ensureDir(studyDir);
|
|
26
|
+
const files = {
|
|
27
|
+
'README.md': generateStudyReadme(config.projectName),
|
|
28
|
+
'study-guide.md': generateStudyGuide(config),
|
|
29
|
+
'oral-defense.md': generateOralDefense(),
|
|
30
|
+
'concepts-to-review.md': generateConceptsToReview(),
|
|
31
|
+
'professor-questions.md': generateProfessorQuestions(),
|
|
32
|
+
'file-map.md': generateFileMap(),
|
|
33
|
+
};
|
|
34
|
+
let created = 0;
|
|
35
|
+
for (const [filename, content] of Object.entries(files)) {
|
|
36
|
+
const filePath = path_1.default.join(studyDir, filename);
|
|
37
|
+
if (!fs_extra_1.default.existsSync(filePath)) {
|
|
38
|
+
await fs_extra_1.default.writeFile(filePath, content);
|
|
39
|
+
console.log(chalk_1.default.green(' ✔ Created: ') + chalk_1.default.gray(`.brainforge/study/${filename}`));
|
|
40
|
+
created++;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.log(chalk_1.default.gray(' ○ Exists: ') + chalk_1.default.gray(`.brainforge/study/${filename}`));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
console.log();
|
|
47
|
+
logger_1.logger.divider();
|
|
48
|
+
logger_1.logger.success(`Study Mode initialized. ${created} new file(s) created.`);
|
|
49
|
+
console.log();
|
|
50
|
+
console.log(chalk_1.default.gray(' Next steps:'));
|
|
51
|
+
console.log(' ' + chalk_1.default.cyan('1.') + ' Open your AI tool and run ' + chalk_1.default.yellow('/study-phase 1'));
|
|
52
|
+
console.log(' ' + chalk_1.default.cyan('2.') + ' Run ' + chalk_1.default.yellow('brainforge difficulty') + ' to find hard files');
|
|
53
|
+
console.log(' ' + chalk_1.default.cyan('3.') + ' Run ' + chalk_1.default.yellow('brainforge defense-pack') + ' when ready for presentation');
|
|
54
|
+
console.log();
|
|
55
|
+
}
|
|
56
|
+
function generateStudyReadme(projectName) {
|
|
57
|
+
return `# Study Mode — ${projectName}
|
|
58
|
+
|
|
59
|
+
Study Mode helps you understand, explain, and defend your project.
|
|
60
|
+
|
|
61
|
+
## What this folder contains
|
|
62
|
+
|
|
63
|
+
| File | Purpose |
|
|
64
|
+
|------|---------|
|
|
65
|
+
| study-guide.md | Phase-by-phase explanations and important files |
|
|
66
|
+
| oral-defense.md | 30s / 1min / 5min explanations for presentation |
|
|
67
|
+
| concepts-to-review.md | Concepts you need to understand |
|
|
68
|
+
| professor-questions.md | Likely professor questions with answers |
|
|
69
|
+
| file-map.md | Map of every important file with difficulty |
|
|
70
|
+
|
|
71
|
+
## How to use Study Mode
|
|
72
|
+
|
|
73
|
+
### Step 1: Study your phases
|
|
74
|
+
|
|
75
|
+
Run in your AI tool:
|
|
76
|
+
\`\`\`
|
|
77
|
+
/study-phase 1
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
This reads your phase files and memory, then fills in study-guide.md, professor-questions.md, and oral-defense.md.
|
|
81
|
+
|
|
82
|
+
### Step 2: Find difficult files
|
|
83
|
+
|
|
84
|
+
Run:
|
|
85
|
+
\`\`\`
|
|
86
|
+
brainforge difficulty
|
|
87
|
+
\`\`\`
|
|
88
|
+
|
|
89
|
+
Then paste the generated prompt into your AI tool.
|
|
90
|
+
|
|
91
|
+
### Step 3: Prepare your defense
|
|
92
|
+
|
|
93
|
+
Run:
|
|
94
|
+
\`\`\`
|
|
95
|
+
brainforge defense-pack
|
|
96
|
+
\`\`\`
|
|
97
|
+
|
|
98
|
+
Then paste the generated prompt into your AI tool to get a complete defense pack.
|
|
99
|
+
|
|
100
|
+
## Commands to use
|
|
101
|
+
|
|
102
|
+
| Command | What it does |
|
|
103
|
+
|---------|-------------|
|
|
104
|
+
| \`/study-phase N\` | Study a specific phase |
|
|
105
|
+
| \`/analyze-difficulty\` | Score file complexity |
|
|
106
|
+
| \`/defense-pack\` | Generate presentation prep |
|
|
107
|
+
| \`/professor-check\` | Check for AI-suspicious code |
|
|
108
|
+
| \`brainforge serve\` | Open dashboard |
|
|
109
|
+
`;
|
|
110
|
+
}
|
|
111
|
+
function generateStudyGuide(config) {
|
|
112
|
+
return `# Study Guide
|
|
113
|
+
|
|
114
|
+
## Current project
|
|
115
|
+
|
|
116
|
+
- **Project:** ${config.projectName}
|
|
117
|
+
- **Stack:** ${config.stack.join(', ')}
|
|
118
|
+
- **Code level:** ${config.codeLevel}
|
|
119
|
+
- **User level:** ${config.userLevel}
|
|
120
|
+
- **Academic:** ${config.isAcademic ? 'Yes' : 'No'}
|
|
121
|
+
|
|
122
|
+
## What to study first
|
|
123
|
+
|
|
124
|
+
1. _To be filled by /study-phase_
|
|
125
|
+
2.
|
|
126
|
+
3.
|
|
127
|
+
|
|
128
|
+
## Phase-by-phase explanations
|
|
129
|
+
|
|
130
|
+
_To be filled by /study-phase._
|
|
131
|
+
|
|
132
|
+
## Important files
|
|
133
|
+
|
|
134
|
+
_To be filled by /analyze-difficulty._
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
function generateOralDefense() {
|
|
138
|
+
return `# Oral Defense Preparation
|
|
139
|
+
|
|
140
|
+
## 30-second project explanation
|
|
141
|
+
|
|
142
|
+
_To be filled by /study-phase or /defense-pack._
|
|
143
|
+
|
|
144
|
+
## 1-minute project explanation
|
|
145
|
+
|
|
146
|
+
_To be filled._
|
|
147
|
+
|
|
148
|
+
## 5-minute project explanation
|
|
149
|
+
|
|
150
|
+
_To be filled._
|
|
151
|
+
|
|
152
|
+
## Architecture explanation
|
|
153
|
+
|
|
154
|
+
_To be filled._
|
|
155
|
+
|
|
156
|
+
## Main features
|
|
157
|
+
|
|
158
|
+
_To be filled._
|
|
159
|
+
|
|
160
|
+
## What I built myself
|
|
161
|
+
|
|
162
|
+
_To be filled._
|
|
163
|
+
|
|
164
|
+
## What I should be ready to explain
|
|
165
|
+
|
|
166
|
+
_To be filled._
|
|
167
|
+
`;
|
|
168
|
+
}
|
|
169
|
+
function generateConceptsToReview() {
|
|
170
|
+
return `# Concepts To Review
|
|
171
|
+
|
|
172
|
+
| Concept | Why it matters | Related files | Priority |
|
|
173
|
+
|---------|---------------|---------------|----------|
|
|
174
|
+
| _To be filled by /study-phase_ | | | |
|
|
175
|
+
`;
|
|
176
|
+
}
|
|
177
|
+
function generateProfessorQuestions() {
|
|
178
|
+
return `# Professor Questions
|
|
179
|
+
|
|
180
|
+
| Question | Simple answer | Related file |
|
|
181
|
+
|----------|--------------|-------------|
|
|
182
|
+
| _To be filled by /study-phase_ | | |
|
|
183
|
+
`;
|
|
184
|
+
}
|
|
185
|
+
function generateFileMap() {
|
|
186
|
+
return `# Study File Map
|
|
187
|
+
|
|
188
|
+
| File | Role | Difficulty | Must understand? |
|
|
189
|
+
|------|------|------------|-----------------|
|
|
190
|
+
| _To be filled by /analyze-difficulty_ | | | |
|
|
191
|
+
`;
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=study.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"study.js","sourceRoot":"","sources":["../../src/commands/study.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -77,8 +77,8 @@ async function updateCommand() {
|
|
|
77
77
|
for (const f of PROTECTED) {
|
|
78
78
|
skipped.push(f);
|
|
79
79
|
}
|
|
80
|
-
// phases
|
|
81
|
-
skipped.push('phases/', 'memory/');
|
|
80
|
+
// phases/, memory/, study/, and user-filled reports are always preserved
|
|
81
|
+
skipped.push('phases/', 'memory/', 'study/', 'reports/difficulty-report.md', 'reports/defense-pack.md');
|
|
82
82
|
spinner.succeed('Update complete.');
|
|
83
83
|
console.log();
|
|
84
84
|
// Summary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/core/dashboard.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export interface DashboardData {
|
|
|
13
13
|
gitStatus: string;
|
|
14
14
|
knownBugs: string[];
|
|
15
15
|
decisions: string[];
|
|
16
|
+
docs: DocEntry[];
|
|
17
|
+
agents: AgentEntry[];
|
|
18
|
+
study: StudyInfo;
|
|
19
|
+
defense: DefenseInfo;
|
|
20
|
+
projectDepth: ProjectDepth;
|
|
16
21
|
updatedAt: string;
|
|
17
22
|
}
|
|
18
23
|
export interface PhaseEntry {
|
|
@@ -20,6 +25,42 @@ export interface PhaseEntry {
|
|
|
20
25
|
title: string;
|
|
21
26
|
status: 'pending' | 'in-progress' | 'done';
|
|
22
27
|
}
|
|
28
|
+
export interface DocEntry {
|
|
29
|
+
path: string;
|
|
30
|
+
title: string;
|
|
31
|
+
category: string;
|
|
32
|
+
exists: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface AgentEntry {
|
|
35
|
+
path: string;
|
|
36
|
+
title: string;
|
|
37
|
+
family: string;
|
|
38
|
+
summary: string;
|
|
39
|
+
}
|
|
40
|
+
export interface StudyInfo {
|
|
41
|
+
enabled: boolean;
|
|
42
|
+
files: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface DefenseInfo {
|
|
45
|
+
reportExists: boolean;
|
|
46
|
+
professorCheckExists: boolean;
|
|
47
|
+
difficultyReportExists: boolean;
|
|
48
|
+
lastUpdated: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ProjectDepth {
|
|
51
|
+
totalMarkdownFiles: number;
|
|
52
|
+
totalAgents: number;
|
|
53
|
+
totalCommands: number;
|
|
54
|
+
totalMemoryFiles: number;
|
|
55
|
+
totalReports: number;
|
|
56
|
+
totalPhases: number;
|
|
57
|
+
studyEnabled: boolean;
|
|
58
|
+
defensePackExists: boolean;
|
|
59
|
+
difficultyReportExists: boolean;
|
|
60
|
+
professorCheckExists: boolean;
|
|
61
|
+
estimatedComplexity: 'small' | 'medium' | 'large';
|
|
62
|
+
academicReadiness: 'low' | 'medium' | 'high';
|
|
63
|
+
}
|
|
23
64
|
export declare function generateDashboardData(config: BrainForgeConfig, cwd?: string): Promise<DashboardData>;
|
|
24
65
|
export declare function writeDashboardData(data: DashboardData, cwd?: string): Promise<void>;
|
|
25
66
|
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,UAAU,CAAC;AAG9D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,GAAG,SAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,UAAU,CAAC;AAG9D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClD,iBAAiB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC9C;AA0CD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,GAAG,SAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,CAsHxB;AAgDD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,aAAa,EACnB,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/dist/core/dashboard.js
CHANGED
|
@@ -9,6 +9,44 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const config_1 = require("./config");
|
|
11
11
|
const git_1 = require("./git");
|
|
12
|
+
const DOC_CATALOG = [
|
|
13
|
+
{ path: 'brain.md', title: 'Brain', category: 'Core' },
|
|
14
|
+
{ path: 'project.md', title: 'Project', category: 'Core' },
|
|
15
|
+
{ path: 'roadmap.md', title: 'Roadmap', category: 'Core' },
|
|
16
|
+
{ path: 'decisions.md', title: 'Decisions', category: 'Core' },
|
|
17
|
+
{ path: 'questions.md', title: 'Questions', category: 'Core' },
|
|
18
|
+
{ path: 'memory/architecture.md', title: 'Architecture', category: 'Memory' },
|
|
19
|
+
{ path: 'memory/coding-style.md', title: 'Coding Style', category: 'Memory' },
|
|
20
|
+
{ path: 'memory/learning-notes.md', title: 'Learning Notes', category: 'Memory' },
|
|
21
|
+
{ path: 'memory/known-bugs.md', title: 'Known Bugs', category: 'Memory' },
|
|
22
|
+
{ path: 'memory/constraints.md', title: 'Constraints', category: 'Memory' },
|
|
23
|
+
{ path: 'study/study-guide.md', title: 'Study Guide', category: 'Study' },
|
|
24
|
+
{ path: 'study/oral-defense.md', title: 'Oral Defense', category: 'Study' },
|
|
25
|
+
{ path: 'study/professor-questions.md', title: 'Professor Questions', category: 'Study' },
|
|
26
|
+
{ path: 'study/concepts-to-review.md', title: 'Concepts to Review', category: 'Study' },
|
|
27
|
+
{ path: 'study/file-map.md', title: 'File Map', category: 'Study' },
|
|
28
|
+
{ path: 'reports/professor-check.md', title: 'Professor Check', category: 'Reports' },
|
|
29
|
+
{ path: 'reports/difficulty-report.md', title: 'Difficulty Report', category: 'Reports' },
|
|
30
|
+
{ path: 'reports/defense-pack.md', title: 'Defense Pack', category: 'Reports' },
|
|
31
|
+
{ path: 'reports/simplify-plan.md', title: 'Simplify Plan', category: 'Reports' },
|
|
32
|
+
];
|
|
33
|
+
const AGENT_CATALOG = [
|
|
34
|
+
{ file: 'brainforge-router.md', title: 'Router', family: 'Routing', summary: 'Decides the best next command or workflow' },
|
|
35
|
+
{ file: 'architect.md', title: 'Architect', family: 'Planning', summary: 'System design and architecture decisions' },
|
|
36
|
+
{ file: 'researcher.md', title: 'Researcher', family: 'Planning', summary: 'Technical research before implementation' },
|
|
37
|
+
{ file: 'planner.md', title: 'Planner', family: 'Planning', summary: 'Phase planning and task breakdown' },
|
|
38
|
+
{ file: 'coder.md', title: 'Coder', family: 'Building', summary: 'Writes code following the plan' },
|
|
39
|
+
{ file: 'reviewer.md', title: 'Reviewer', family: 'Reviewing', summary: 'Code quality review after implementation' },
|
|
40
|
+
{ file: 'teacher.md', title: 'Teacher', family: 'Studying', summary: 'Explains code and prepares for presentations' },
|
|
41
|
+
{ file: 'git-agent.md', title: 'Git Agent', family: 'Building', summary: 'Version control and checkpoints' },
|
|
42
|
+
{ file: 'brainforge-code-reviewer.md', title: 'Code Reviewer', family: 'Reviewing', summary: 'Deep adversarial code review' },
|
|
43
|
+
{ file: 'brainforge-security-auditor.md', title: 'Security Auditor', family: 'Reviewing', summary: 'Verify threat mitigations in code' },
|
|
44
|
+
{ file: 'brainforge-verifier.md', title: 'Verifier', family: 'Building', summary: 'Verify phase goal achievement' },
|
|
45
|
+
{ file: 'brainforge-doc-writer.md', title: 'Doc Writer', family: 'Documentation', summary: 'Write and update project documentation' },
|
|
46
|
+
{ file: 'brainforge-debugger.md', title: 'Debugger', family: 'Debugging', summary: 'Systematic bug investigation' },
|
|
47
|
+
{ file: 'brainforge-codebase-mapper.md', title: 'Codebase Mapper', family: 'Documentation', summary: 'Map codebase structure and patterns' },
|
|
48
|
+
{ file: 'brainforge-roadmapper.md', title: 'Roadmapper', family: 'Planning', summary: 'Transform requirements into phase roadmaps' },
|
|
49
|
+
];
|
|
12
50
|
async function generateDashboardData(config, cwd = process.cwd()) {
|
|
13
51
|
const brainDir = (0, config_1.getBrainforgeDir)(cwd);
|
|
14
52
|
const phasesDir = path_1.default.join(brainDir, 'phases');
|
|
@@ -51,6 +89,45 @@ async function generateDashboardData(config, cwd = process.cwd()) {
|
|
|
51
89
|
}
|
|
52
90
|
const recentCommits = await (0, git_1.getRecentCommits)(5, cwd);
|
|
53
91
|
const gitStatus = await (0, git_1.getGitStatus)(cwd);
|
|
92
|
+
// Build docs catalog
|
|
93
|
+
const docs = DOC_CATALOG.map((doc) => ({
|
|
94
|
+
path: `.brainforge/${doc.path}`,
|
|
95
|
+
title: doc.title,
|
|
96
|
+
category: doc.category,
|
|
97
|
+
exists: fs_extra_1.default.existsSync(path_1.default.join(brainDir, doc.path)),
|
|
98
|
+
}));
|
|
99
|
+
// Build agents catalog
|
|
100
|
+
const agentsDir = path_1.default.join(brainDir, 'agents');
|
|
101
|
+
const agents = AGENT_CATALOG.filter((a) => fs_extra_1.default.existsSync(path_1.default.join(agentsDir, a.file))).map((a) => ({
|
|
102
|
+
path: `.brainforge/agents/${a.file}`,
|
|
103
|
+
title: a.title,
|
|
104
|
+
family: a.family,
|
|
105
|
+
summary: a.summary,
|
|
106
|
+
}));
|
|
107
|
+
// Study info
|
|
108
|
+
const studyDir = path_1.default.join(brainDir, 'study');
|
|
109
|
+
const studyEnabled = fs_extra_1.default.existsSync(studyDir);
|
|
110
|
+
const studyFiles = studyEnabled
|
|
111
|
+
? fs_extra_1.default.readdirSync(studyDir).filter((f) => f.endsWith('.md'))
|
|
112
|
+
: [];
|
|
113
|
+
const study = {
|
|
114
|
+
enabled: studyEnabled,
|
|
115
|
+
files: studyFiles,
|
|
116
|
+
};
|
|
117
|
+
// Defense info
|
|
118
|
+
const defenseReportPath = path_1.default.join(brainDir, 'reports', 'defense-pack.md');
|
|
119
|
+
const professorCheckPath = path_1.default.join(brainDir, 'reports', 'professor-check.md');
|
|
120
|
+
const difficultyPath = path_1.default.join(brainDir, 'reports', 'difficulty-report.md');
|
|
121
|
+
const defense = {
|
|
122
|
+
reportExists: fs_extra_1.default.existsSync(defenseReportPath),
|
|
123
|
+
professorCheckExists: fs_extra_1.default.existsSync(professorCheckPath),
|
|
124
|
+
difficultyReportExists: fs_extra_1.default.existsSync(difficultyPath),
|
|
125
|
+
lastUpdated: fs_extra_1.default.existsSync(defenseReportPath)
|
|
126
|
+
? fs_extra_1.default.statSync(defenseReportPath).mtime.toISOString()
|
|
127
|
+
: '',
|
|
128
|
+
};
|
|
129
|
+
// Project depth
|
|
130
|
+
const projectDepth = computeProjectDepth(brainDir, phases.length, defense);
|
|
54
131
|
return {
|
|
55
132
|
projectName: config.projectName,
|
|
56
133
|
description: config.description,
|
|
@@ -65,9 +142,53 @@ async function generateDashboardData(config, cwd = process.cwd()) {
|
|
|
65
142
|
gitStatus,
|
|
66
143
|
knownBugs,
|
|
67
144
|
decisions,
|
|
145
|
+
docs,
|
|
146
|
+
agents,
|
|
147
|
+
study,
|
|
148
|
+
defense,
|
|
149
|
+
projectDepth,
|
|
68
150
|
updatedAt: new Date().toISOString(),
|
|
69
151
|
};
|
|
70
152
|
}
|
|
153
|
+
function computeProjectDepth(brainDir, phaseCount, defense) {
|
|
154
|
+
const countMd = (dir) => {
|
|
155
|
+
if (!fs_extra_1.default.existsSync(dir))
|
|
156
|
+
return 0;
|
|
157
|
+
return fs_extra_1.default.readdirSync(dir).filter((f) => f.endsWith('.md')).length;
|
|
158
|
+
};
|
|
159
|
+
const totalAgents = countMd(path_1.default.join(brainDir, 'agents'));
|
|
160
|
+
const totalCommands = countMd(path_1.default.join(brainDir, 'commands'));
|
|
161
|
+
const totalMemoryFiles = countMd(path_1.default.join(brainDir, 'memory'));
|
|
162
|
+
const totalReports = countMd(path_1.default.join(brainDir, 'reports'));
|
|
163
|
+
const studyEnabled = fs_extra_1.default.existsSync(path_1.default.join(brainDir, 'study'));
|
|
164
|
+
const studyFiles = studyEnabled ? countMd(path_1.default.join(brainDir, 'study')) : 0;
|
|
165
|
+
const totalMarkdownFiles = totalAgents + totalCommands + totalMemoryFiles + totalReports + phaseCount + studyFiles;
|
|
166
|
+
const complexity = totalMarkdownFiles < 20 ? 'small' : totalMarkdownFiles < 40 ? 'medium' : 'large';
|
|
167
|
+
let readinessScore = 0;
|
|
168
|
+
if (studyEnabled)
|
|
169
|
+
readinessScore++;
|
|
170
|
+
if (defense.reportExists)
|
|
171
|
+
readinessScore++;
|
|
172
|
+
if (defense.difficultyReportExists)
|
|
173
|
+
readinessScore++;
|
|
174
|
+
if (defense.professorCheckExists)
|
|
175
|
+
readinessScore++;
|
|
176
|
+
const academicReadiness = readinessScore >= 3 ? 'high' : readinessScore >= 1 ? 'medium' : 'low';
|
|
177
|
+
return {
|
|
178
|
+
totalMarkdownFiles,
|
|
179
|
+
totalAgents,
|
|
180
|
+
totalCommands,
|
|
181
|
+
totalMemoryFiles,
|
|
182
|
+
totalReports,
|
|
183
|
+
totalPhases: phaseCount,
|
|
184
|
+
studyEnabled,
|
|
185
|
+
defensePackExists: defense.reportExists,
|
|
186
|
+
difficultyReportExists: defense.difficultyReportExists,
|
|
187
|
+
professorCheckExists: defense.professorCheckExists,
|
|
188
|
+
estimatedComplexity: complexity,
|
|
189
|
+
academicReadiness,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
71
192
|
async function writeDashboardData(data, cwd = process.cwd()) {
|
|
72
193
|
const dashDir = path_1.default.join((0, config_1.getBrainforgeDir)(cwd), 'dashboard');
|
|
73
194
|
await fs_extra_1.default.ensureDir(dashDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboardTemplate.d.ts","sourceRoot":"","sources":["../../src/core/dashboardTemplate.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"dashboardTemplate.d.ts","sourceRoot":"","sources":["../../src/core/dashboardTemplate.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,CAkYzC;AAED,wBAAgB,eAAe,IAAI,MAAM,CA8WxC"}
|