midas-mcp 1.0.0 → 1.2.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/dist/cli.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export declare function showHelp(): void;
2
+ export declare function showStatus(): void;
3
+ export declare function runInit(projectName: string): void;
4
+ export declare function runAudit(): void;
5
+ export declare function runDocsCheck(): void;
6
+ export declare function runCLI(args: string[]): 'interactive' | 'server' | 'handled';
7
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAiCA,wBAAgB,QAAQ,IAAI,IAAI,CAoB/B;AAED,wBAAgB,UAAU,IAAI,IAAI,CAmFjC;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmBjD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAmC/B;AAED,wBAAgB,YAAY,IAAI,IAAI,CAgCnC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAqC3E"}
package/dist/cli.js ADDED
@@ -0,0 +1,235 @@
1
+ import { loadState } from './state/phase.js';
2
+ import { startProject } from './tools/phase.js';
3
+ import { audit } from './tools/audit.js';
4
+ import { checkDocs } from './tools/docs.js';
5
+ // ANSI colors
6
+ const reset = '\x1b[0m';
7
+ const bold = '\x1b[1m';
8
+ const dim = '\x1b[2m';
9
+ const green = '\x1b[32m';
10
+ const yellow = '\x1b[33m';
11
+ const blue = '\x1b[34m';
12
+ const cyan = '\x1b[36m';
13
+ const white = '\x1b[37m';
14
+ function box(content, width = 50) {
15
+ const lines = content.split('\n');
16
+ const top = `┌${'─'.repeat(width - 2)}┐`;
17
+ const bottom = `└${'─'.repeat(width - 2)}┘`;
18
+ const padded = lines.map(l => {
19
+ const stripped = l.replace(/\x1b\[[0-9;]*m/g, '');
20
+ const padding = width - 4 - stripped.length;
21
+ return `│ ${l}${' '.repeat(Math.max(0, padding))} │`;
22
+ });
23
+ return [top, ...padded, bottom].join('\n');
24
+ }
25
+ function progressBar(current, total, width = 20) {
26
+ const filled = Math.round((current / total) * width);
27
+ const empty = width - filled;
28
+ return `${green}${'█'.repeat(filled)}${dim}${'░'.repeat(empty)}${reset}`;
29
+ }
30
+ export function showHelp() {
31
+ console.log(`
32
+ ${bold}${cyan}MIDAS${reset} - Everything you vibecode turns to gold
33
+
34
+ ${bold}Usage:${reset}
35
+ npx midas-mcp Interactive coach (recommended)
36
+ npx midas-mcp status Show current phase and progress
37
+ npx midas-mcp init <name> Initialize new project with Eagle Sight
38
+ npx midas-mcp audit Audit project against 12 ingredients
39
+ npx midas-mcp docs Check Eagle Sight docs completeness
40
+ npx midas-mcp server Start MCP server (for Cursor integration)
41
+ npx midas-mcp help Show this help
42
+
43
+ ${bold}The Two Phases:${reset}
44
+ ${yellow}EAGLE SIGHT${reset} Plan before building (Idea → Research → Brainlift → PRD → Gameplan)
45
+ ${blue}BUILD${reset} Execute with the 7-step process
46
+
47
+ ${bold}Learn more:${reset}
48
+ https://github.com/christiancattaneo/midas-mcp
49
+ `);
50
+ }
51
+ export function showStatus() {
52
+ const state = loadState(process.cwd());
53
+ const phase = state.current;
54
+ console.log('');
55
+ if (phase.phase === 'IDLE') {
56
+ console.log(box(`${dim}IDLE${reset} - No project started`));
57
+ console.log(`\n Run: ${cyan}npx midas-mcp init <project-name>${reset}\n`);
58
+ return;
59
+ }
60
+ if (phase.phase === 'EAGLE_SIGHT') {
61
+ const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
62
+ const currentIdx = steps.indexOf(phase.step);
63
+ const progress = currentIdx + 1;
64
+ console.log(box(`${yellow}${bold}EAGLE SIGHT${reset} ${progressBar(progress, 5)} ${progress}/5`));
65
+ console.log('');
66
+ steps.forEach((step, i) => {
67
+ if (i < currentIdx) {
68
+ console.log(` ${green}✓${reset} ${dim}${step}${reset}`);
69
+ }
70
+ else if (i === currentIdx) {
71
+ console.log(` ${yellow}→${reset} ${bold}${step}${reset} ${dim}(current)${reset}`);
72
+ }
73
+ else {
74
+ console.log(` ${dim}○ ${step}${reset}`);
75
+ }
76
+ });
77
+ console.log('');
78
+ const nextActions = {
79
+ IDEA: 'Define your core idea. What problem are you solving?',
80
+ RESEARCH: 'Scan the landscape. What already exists?',
81
+ BRAINLIFT: 'Fill out docs/brainlift.md with YOUR unique insights',
82
+ PRD: 'Fill out docs/prd.md with requirements',
83
+ GAMEPLAN: 'Fill out docs/gameplan.md with your build plan',
84
+ };
85
+ console.log(` ${bold}Next:${reset} ${nextActions[phase.step]}\n`);
86
+ return;
87
+ }
88
+ if (phase.phase === 'BUILD') {
89
+ const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
90
+ const currentIdx = steps.indexOf(phase.step);
91
+ const progress = currentIdx + 1;
92
+ console.log(box(`${blue}${bold}BUILD${reset} ${progressBar(progress, 7)} ${progress}/7`));
93
+ console.log('');
94
+ const stepLabels = {
95
+ RULES_LOADED: 'Load Rules',
96
+ CODEBASE_INDEXED: 'Index Codebase',
97
+ FILES_READ: 'Read Files',
98
+ RESEARCHING: 'Research',
99
+ IMPLEMENTING: 'Implement',
100
+ TESTING: 'Test',
101
+ DEBUGGING: 'Debug',
102
+ };
103
+ steps.forEach((step, i) => {
104
+ const label = stepLabels[step];
105
+ if (i < currentIdx) {
106
+ console.log(` ${green}✓${reset} ${dim}${label}${reset}`);
107
+ }
108
+ else if (i === currentIdx) {
109
+ console.log(` ${blue}→${reset} ${bold}${label}${reset} ${dim}(current)${reset}`);
110
+ }
111
+ else {
112
+ console.log(` ${dim}○ ${label}${reset}`);
113
+ }
114
+ });
115
+ console.log('');
116
+ return;
117
+ }
118
+ if (phase.phase === 'SHIPPED') {
119
+ console.log(box(`${green}${bold}SHIPPED${reset} ${progressBar(1, 1)} Done!`));
120
+ console.log(`\n Run ${cyan}npx midas-mcp audit${reset} to check production readiness.\n`);
121
+ }
122
+ }
123
+ export function runInit(projectName) {
124
+ if (!projectName) {
125
+ console.log(`\n ${yellow}Usage:${reset} npx midas-mcp init <project-name>\n`);
126
+ return;
127
+ }
128
+ const result = startProject({ projectName, projectPath: process.cwd() });
129
+ console.log('');
130
+ console.log(box(`${green}${bold}✓ Project Initialized${reset}`));
131
+ console.log('');
132
+ console.log(` ${bold}${projectName}${reset} is ready for Eagle Sight.\n`);
133
+ console.log(' Created:');
134
+ console.log(` ${dim}docs/brainlift.md${reset} - Your unique insights`);
135
+ console.log(` ${dim}docs/prd.md${reset} - Requirements`);
136
+ console.log(` ${dim}docs/gameplan.md${reset} - Build plan`);
137
+ console.log('');
138
+ console.log(` ${bold}Next:${reset} Fill out ${cyan}docs/brainlift.md${reset}`);
139
+ console.log(` Then run ${cyan}npx midas-mcp status${reset}\n`);
140
+ }
141
+ export function runAudit() {
142
+ const result = audit({ projectPath: process.cwd() });
143
+ console.log('');
144
+ console.log(box(`${bold}12 INGREDIENTS AUDIT${reset} Score: ${result.overall}%`));
145
+ console.log('');
146
+ const categories = [
147
+ { name: 'CORE', items: ['1-frontend', '2-backend', '3-database', '4-authentication'] },
148
+ { name: 'POWER', items: ['5-api-integrations', '6-state-management', '7-design-ux'] },
149
+ { name: 'PROTECTION', items: ['8-testing', '9-security', '10-error-handling'] },
150
+ { name: 'MASTERY', items: ['11-version-control', '12-deployment'] },
151
+ ];
152
+ for (const cat of categories) {
153
+ console.log(` ${dim}${cat.name}${reset}`);
154
+ for (const item of cat.items) {
155
+ const score = result.scores[item];
156
+ const num = item.split('-')[0];
157
+ const name = item.split('-').slice(1).join(' ');
158
+ const icon = score.exists ? `${green}✓${reset}` : `${dim}○${reset}`;
159
+ const label = score.exists ? name : `${dim}${name}${reset}`;
160
+ console.log(` ${icon} ${num}. ${label}`);
161
+ }
162
+ console.log('');
163
+ }
164
+ const levelColors = {
165
+ functional: yellow,
166
+ integrated: blue,
167
+ protected: cyan,
168
+ production: green,
169
+ };
170
+ const color = levelColors[result.level] || white;
171
+ console.log(` Level: ${color}${bold}${result.level.toUpperCase()}${reset}\n`);
172
+ }
173
+ export function runDocsCheck() {
174
+ const result = checkDocs({ projectPath: process.cwd() });
175
+ console.log('');
176
+ console.log(box(`${bold}EAGLE SIGHT DOCS${reset}`));
177
+ console.log('');
178
+ const docs = [
179
+ { name: 'brainlift.md', status: result.brainlift },
180
+ { name: 'prd.md', status: result.prd },
181
+ { name: 'gameplan.md', status: result.gameplan },
182
+ ];
183
+ for (const doc of docs) {
184
+ if (!doc.status.exists) {
185
+ console.log(` ${dim}○${reset} ${dim}${doc.name}${reset} - not found`);
186
+ }
187
+ else if (!doc.status.complete) {
188
+ console.log(` ${yellow}◐${reset} ${doc.name} - incomplete`);
189
+ for (const issue of doc.status.issues) {
190
+ console.log(` ${dim}${issue}${reset}`);
191
+ }
192
+ }
193
+ else {
194
+ console.log(` ${green}✓${reset} ${doc.name}`);
195
+ }
196
+ }
197
+ console.log('');
198
+ if (result.ready) {
199
+ console.log(` ${green}${bold}Ready for BUILD phase!${reset}\n`);
200
+ }
201
+ else {
202
+ console.log(` ${yellow}Complete the docs to proceed to BUILD.${reset}\n`);
203
+ }
204
+ }
205
+ export function runCLI(args) {
206
+ const command = args[0];
207
+ switch (command) {
208
+ case 'help':
209
+ case '--help':
210
+ case '-h':
211
+ showHelp();
212
+ return 'handled';
213
+ case 'status':
214
+ showStatus();
215
+ return 'handled';
216
+ case 'init':
217
+ runInit(args[1]);
218
+ return 'handled';
219
+ case 'audit':
220
+ runAudit();
221
+ return 'handled';
222
+ case 'docs':
223
+ runDocsCheck();
224
+ return 'handled';
225
+ case 'server':
226
+ return 'server'; // Start MCP server
227
+ case undefined:
228
+ return 'interactive'; // No args = interactive mode
229
+ default:
230
+ console.log(`Unknown command: ${command}`);
231
+ console.log('Run: npx midas-mcp help');
232
+ return 'handled';
233
+ }
234
+ }
235
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ # Brainlift: my-project
2
+
3
+ ## Contrarian Insights
4
+ - [What do YOU know that contradicts conventional wisdom?]
5
+ - [What have you learned from experience that AI can't know?]
6
+
7
+ ## Domain Knowledge
8
+ - [Industry-specific context]
9
+ - [User behavior patterns you've observed]
10
+
11
+ ## Hard-Won Lessons
12
+ - [What NOT to do based on past experience]
13
+ - [Hidden gotchas in this space]
14
+
15
+ ## Current Context
16
+ - [Recent market changes]
17
+ - [Technology updates post-training-cutoff]
@@ -0,0 +1,18 @@
1
+ # Gameplan: my-project
2
+
3
+ ## Tech Stack
4
+ [Stack choice with justification]
5
+
6
+ ## Architecture Overview
7
+ [High-level system design]
8
+
9
+ ## Phase 1: Foundation
10
+ - [ ] Task 1
11
+ - [ ] Task 2
12
+
13
+ ## Phase 2: Core Features
14
+ - [ ] Task 1
15
+ - [ ] Task 2
16
+
17
+ ## Risk Mitigation
18
+ - Risk: [issue] → Mitigation: [solution]
@@ -0,0 +1,20 @@
1
+ # PRD: my-project
2
+
3
+ ## Overview
4
+ [One-paragraph description]
5
+
6
+ ## Goals
7
+ 1. [Primary goal]
8
+ 2. [Secondary goal]
9
+
10
+ ## Non-Goals
11
+ - [What you're explicitly NOT building]
12
+
13
+ ## User Stories
14
+ - As a [user type], I want to [action] so that [benefit]
15
+
16
+ ## Technical Requirements
17
+ - [Performance, security, integration requirements]
18
+
19
+ ## Success Metrics
20
+ - [How you'll measure success]
package/dist/index.js CHANGED
@@ -1,13 +1,29 @@
1
1
  #!/usr/bin/env node
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { createServer } from './server.js';
4
- async function main() {
4
+ import { runCLI } from './cli.js';
5
+ import { runInteractive } from './tui.js';
6
+ async function startMCPServer() {
5
7
  const server = createServer();
6
8
  const transport = new StdioServerTransport();
7
9
  await server.connect(transport);
8
- // Log to stderr (stdout is for MCP protocol)
9
10
  console.error('Midas MCP server running');
10
11
  }
12
+ async function main() {
13
+ const args = process.argv.slice(2);
14
+ const result = runCLI(args);
15
+ switch (result) {
16
+ case 'handled':
17
+ process.exit(0);
18
+ break;
19
+ case 'server':
20
+ await startMCPServer();
21
+ break;
22
+ case 'interactive':
23
+ await runInteractive();
24
+ break;
25
+ }
26
+ }
11
27
  main().catch((error) => {
12
28
  console.error('Fatal error:', error);
13
29
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/dist/tui.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function runInteractive(): Promise<void>;
2
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAwVA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8EpD"}
package/dist/tui.js ADDED
@@ -0,0 +1,404 @@
1
+ import { watch, existsSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { loadState, saveState } from './state/phase.js';
4
+ import { checkDocs } from './tools/docs.js';
5
+ import { exec } from 'child_process';
6
+ // ANSI codes
7
+ const ESC = '\x1b';
8
+ const reset = `${ESC}[0m`;
9
+ const bold = `${ESC}[1m`;
10
+ const dim = `${ESC}[2m`;
11
+ const green = `${ESC}[32m`;
12
+ const yellow = `${ESC}[33m`;
13
+ const blue = `${ESC}[34m`;
14
+ const cyan = `${ESC}[36m`;
15
+ const white = `${ESC}[37m`;
16
+ const bgBlue = `${ESC}[44m`;
17
+ const clearScreen = `${ESC}[2J${ESC}[H`;
18
+ // Prompts for each step
19
+ const STEP_PROMPTS = {
20
+ // Eagle Sight
21
+ 'EAGLE_SIGHT:IDEA': {
22
+ action: 'Define your core idea',
23
+ prompt: `I'm starting a new project. Help me clarify:
24
+ 1. What problem am I solving?
25
+ 2. Who is it for?
26
+ 3. Why now?
27
+
28
+ Ask me clarifying questions before we proceed.`,
29
+ },
30
+ 'EAGLE_SIGHT:RESEARCH': {
31
+ action: 'Research the landscape',
32
+ prompt: `Research the landscape for my project idea.
33
+ Find:
34
+ 1. Existing solutions
35
+ 2. What they do well
36
+ 3. What they miss
37
+ 4. Technical approaches used
38
+
39
+ Summarize findings.`,
40
+ },
41
+ 'EAGLE_SIGHT:BRAINLIFT': {
42
+ action: 'Fill out docs/brainlift.md',
43
+ prompt: `Review my brainlift.md and help me strengthen it.
44
+ Ask me questions to extract:
45
+ 1. Contrarian insights I have
46
+ 2. Domain knowledge AI lacks
47
+ 3. Hard-won lessons from experience
48
+ 4. Current context you might miss`,
49
+ },
50
+ 'EAGLE_SIGHT:PRD': {
51
+ action: 'Fill out docs/prd.md',
52
+ prompt: `Review my PRD and help me improve it.
53
+ Check for:
54
+ 1. Clear goals
55
+ 2. Explicit non-goals
56
+ 3. Complete user stories
57
+ 4. Technical requirements
58
+ 5. Success metrics
59
+
60
+ Ask clarifying questions.`,
61
+ },
62
+ 'EAGLE_SIGHT:GAMEPLAN': {
63
+ action: 'Fill out docs/gameplan.md',
64
+ prompt: `Review my gameplan and help me refine it.
65
+ Verify:
66
+ 1. Tech stack justified
67
+ 2. Phases are logical
68
+ 3. Tasks are specific
69
+ 4. Risks identified
70
+
71
+ Suggest improvements.`,
72
+ },
73
+ // Build
74
+ 'BUILD:RULES_LOADED': {
75
+ action: 'Load user rules',
76
+ prompt: `Read and understand user rules.
77
+ Research each for complete understanding.
78
+ Ask me any clarifying questions.
79
+ Make todos of all tasks.
80
+ Don't start yet.`,
81
+ },
82
+ 'BUILD:CODEBASE_INDEXED': {
83
+ action: 'Index the codebase',
84
+ prompt: `Index this codebase structure.
85
+ Understand the architecture.
86
+ Note key files and patterns.
87
+ Summarize what you find.`,
88
+ },
89
+ 'BUILD:FILES_READ': {
90
+ action: 'Read relevant files',
91
+ prompt: `Read the files relevant to my current task.
92
+ Understand the implementation details.
93
+ Note patterns to follow.
94
+ Identify integration points.`,
95
+ },
96
+ 'BUILD:RESEARCHING': {
97
+ action: 'Research docs and APIs',
98
+ prompt: `Research the documentation for the libraries/APIs I'm using.
99
+ Find:
100
+ 1. Best practices
101
+ 2. Common pitfalls
102
+ 3. Code examples
103
+ 4. Security considerations`,
104
+ },
105
+ 'BUILD:IMPLEMENTING': {
106
+ action: 'Write code with tests',
107
+ prompt: `Continue todos, do each comprehensively.
108
+ Write the test file FIRST.
109
+ Then implement to make tests pass.
110
+ Each function should do ONE thing.
111
+ Run tests after each file.`,
112
+ },
113
+ 'BUILD:TESTING': {
114
+ action: 'Run and fix tests',
115
+ prompt: `Run all tests.
116
+ Fix any failures.
117
+ Add edge case tests.
118
+ Verify no regressions.
119
+ Commit when green.`,
120
+ },
121
+ 'BUILD:DEBUGGING': {
122
+ action: 'Debug with Tornado cycle',
123
+ prompt: `I'm stuck on a bug. Help me with the Tornado cycle:
124
+ 1. RESEARCH: Look up relevant docs
125
+ 2. LOGS: Add strategic console.logs
126
+ 3. TESTS: Write test to reproduce
127
+
128
+ Let's start with research.`,
129
+ },
130
+ // Idle/Shipped
131
+ 'IDLE': {
132
+ action: 'Start a new project',
133
+ prompt: `I want to start a new project.
134
+ Help me through Eagle Sight:
135
+ 1. Clarify my idea
136
+ 2. Research landscape
137
+ 3. Document my brainlift
138
+ 4. Write the PRD
139
+ 5. Create the gameplan`,
140
+ },
141
+ 'SHIPPED': {
142
+ action: 'Run production audit',
143
+ prompt: `My project is shipped. Run a production readiness audit.
144
+ Check all 12 ingredients:
145
+ 1-4: Core (Frontend, Backend, Database, Auth)
146
+ 5-7: Power (APIs, State, Design)
147
+ 8-10: Protection (Testing, Security, Errors)
148
+ 11-12: Mastery (Git, Deployment)`,
149
+ },
150
+ };
151
+ function getPhaseKey(phase) {
152
+ if (phase.phase === 'IDLE' || phase.phase === 'SHIPPED') {
153
+ return phase.phase;
154
+ }
155
+ return `${phase.phase}:${phase.step}`;
156
+ }
157
+ function progressBar(current, total, width = 20) {
158
+ const filled = Math.round((current / total) * width);
159
+ const empty = width - filled;
160
+ return `${green}${'█'.repeat(filled)}${dim}${'░'.repeat(empty)}${reset}`;
161
+ }
162
+ function copyToClipboard(text) {
163
+ return new Promise((resolve, reject) => {
164
+ const proc = exec('pbcopy', (err) => {
165
+ if (err)
166
+ reject(err);
167
+ else
168
+ resolve();
169
+ });
170
+ proc.stdin?.write(text);
171
+ proc.stdin?.end();
172
+ });
173
+ }
174
+ function drawUI(phase, projectPath) {
175
+ const lines = [];
176
+ const width = 54;
177
+ const hLine = '═'.repeat(width - 2);
178
+ const hLineLight = '─'.repeat(width - 4);
179
+ lines.push(`${cyan}╔${hLine}╗${reset}`);
180
+ lines.push(`${cyan}║${reset} ${bold}${white}MIDAS${reset} ${dim}- Elite Vibecoding Coach${reset}${' '.repeat(width - 36)}${cyan}║${reset}`);
181
+ lines.push(`${cyan}╠${hLine}╣${reset}`);
182
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
183
+ if (phase.phase === 'IDLE') {
184
+ lines.push(`${cyan}║${reset} ${dim}No project initialized${reset}${' '.repeat(width - 27)}${cyan}║${reset}`);
185
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
186
+ lines.push(`${cyan}║${reset} Run: ${yellow}npx midas-mcp init <name>${reset}${' '.repeat(width - 35)}${cyan}║${reset}`);
187
+ }
188
+ else if (phase.phase === 'EAGLE_SIGHT') {
189
+ const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
190
+ const currentIdx = steps.indexOf(phase.step);
191
+ const progress = currentIdx + 1;
192
+ lines.push(`${cyan}║${reset} ${yellow}${bold}EAGLE SIGHT${reset} ${progressBar(progress, 5)} ${progress}/5${' '.repeat(width - 44)}${cyan}║${reset}`);
193
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
194
+ for (let i = 0; i < steps.length; i++) {
195
+ const step = steps[i];
196
+ let icon, label;
197
+ if (i < currentIdx) {
198
+ icon = `${green}✓${reset}`;
199
+ label = `${dim}${step}${reset}`;
200
+ }
201
+ else if (i === currentIdx) {
202
+ icon = `${yellow}→${reset}`;
203
+ label = `${bold}${step}${reset} ${dim}(current)${reset}`;
204
+ }
205
+ else {
206
+ icon = `${dim}○${reset}`;
207
+ label = `${dim}${step}${reset}`;
208
+ }
209
+ const padding = width - 8 - step.length - (i === currentIdx ? 10 : 0);
210
+ lines.push(`${cyan}║${reset} ${icon} ${label}${' '.repeat(Math.max(0, padding))}${cyan}║${reset}`);
211
+ }
212
+ }
213
+ else if (phase.phase === 'BUILD') {
214
+ const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
215
+ const labels = {
216
+ RULES_LOADED: 'Load Rules',
217
+ CODEBASE_INDEXED: 'Index Codebase',
218
+ FILES_READ: 'Read Files',
219
+ RESEARCHING: 'Research',
220
+ IMPLEMENTING: 'Implement',
221
+ TESTING: 'Test',
222
+ DEBUGGING: 'Debug',
223
+ };
224
+ const currentIdx = steps.indexOf(phase.step);
225
+ const progress = currentIdx + 1;
226
+ lines.push(`${cyan}║${reset} ${blue}${bold}BUILD${reset} ${progressBar(progress, 7)} ${progress}/7${' '.repeat(width - 38)}${cyan}║${reset}`);
227
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
228
+ for (let i = 0; i < steps.length; i++) {
229
+ const step = steps[i];
230
+ const label = labels[step];
231
+ let icon, text;
232
+ if (i < currentIdx) {
233
+ icon = `${green}✓${reset}`;
234
+ text = `${dim}${label}${reset}`;
235
+ }
236
+ else if (i === currentIdx) {
237
+ icon = `${blue}→${reset}`;
238
+ text = `${bold}${label}${reset} ${dim}(current)${reset}`;
239
+ }
240
+ else {
241
+ icon = `${dim}○${reset}`;
242
+ text = `${dim}${label}${reset}`;
243
+ }
244
+ const padding = width - 8 - label.length - (i === currentIdx ? 10 : 0);
245
+ lines.push(`${cyan}║${reset} ${icon} ${text}${' '.repeat(Math.max(0, padding))}${cyan}║${reset}`);
246
+ }
247
+ }
248
+ else if (phase.phase === 'SHIPPED') {
249
+ lines.push(`${cyan}║${reset} ${green}${bold}SHIPPED${reset} ${progressBar(1, 1)}${' '.repeat(width - 40)}${cyan}║${reset}`);
250
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
251
+ lines.push(`${cyan}║${reset} ${green}✓${reset} Project complete!${' '.repeat(width - 23)}${cyan}║${reset}`);
252
+ }
253
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
254
+ lines.push(`${cyan}╠${hLine}╣${reset}`);
255
+ // Get current prompt
256
+ const key = getPhaseKey(phase);
257
+ const stepData = STEP_PROMPTS[key] || { action: 'Continue', prompt: 'What would you like to do?' };
258
+ lines.push(`${cyan}║${reset} ${bold}NEXT:${reset} ${stepData.action}${' '.repeat(Math.max(0, width - 10 - stepData.action.length))}${cyan}║${reset}`);
259
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
260
+ lines.push(`${cyan}║${reset} ${dim}Paste this in Cursor:${reset}${' '.repeat(width - 26)}${cyan}║${reset}`);
261
+ lines.push(`${cyan}║${reset} ${dim}┌${hLineLight}┐${reset} ${cyan}║${reset}`);
262
+ // Wrap prompt text
263
+ const promptLines = stepData.prompt.split('\n');
264
+ for (const pLine of promptLines.slice(0, 4)) {
265
+ const truncated = pLine.slice(0, width - 10);
266
+ const padding = width - 8 - truncated.length;
267
+ lines.push(`${cyan}║${reset} ${dim}│${reset} ${truncated}${' '.repeat(Math.max(0, padding))}${dim}│${reset} ${cyan}║${reset}`);
268
+ }
269
+ if (promptLines.length > 4) {
270
+ lines.push(`${cyan}║${reset} ${dim}│ ...${' '.repeat(width - 13)}│${reset} ${cyan}║${reset}`);
271
+ }
272
+ lines.push(`${cyan}║${reset} ${dim}└${hLineLight}┘${reset} ${cyan}║${reset}`);
273
+ lines.push(`${cyan}║${reset}${' '.repeat(width - 2)}${cyan}║${reset}`);
274
+ lines.push(`${cyan}╠${hLine}╣${reset}`);
275
+ lines.push(`${cyan}║${reset} ${dim}[c]${reset} Copy prompt ${dim}[n]${reset} Next step ${dim}[b]${reset} Back ${dim}[q]${reset} Quit ${cyan}║${reset}`);
276
+ lines.push(`${cyan}╚${hLine}╝${reset}`);
277
+ return lines.join('\n');
278
+ }
279
+ function advancePhase(projectPath) {
280
+ const state = loadState(projectPath);
281
+ const phase = state.current;
282
+ if (phase.phase === 'IDLE') {
283
+ state.current = { phase: 'EAGLE_SIGHT', step: 'IDEA' };
284
+ }
285
+ else if (phase.phase === 'EAGLE_SIGHT') {
286
+ const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
287
+ const idx = steps.indexOf(phase.step);
288
+ if (idx < steps.length - 1) {
289
+ state.current = { phase: 'EAGLE_SIGHT', step: steps[idx + 1] };
290
+ }
291
+ else {
292
+ state.current = { phase: 'BUILD', step: 'RULES_LOADED' };
293
+ }
294
+ }
295
+ else if (phase.phase === 'BUILD') {
296
+ const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
297
+ const idx = steps.indexOf(phase.step);
298
+ if (idx < steps.length - 1) {
299
+ state.current = { phase: 'BUILD', step: steps[idx + 1] };
300
+ }
301
+ else {
302
+ state.current = { phase: 'SHIPPED' };
303
+ }
304
+ }
305
+ saveState(projectPath, state);
306
+ return state.current;
307
+ }
308
+ function goBackPhase(projectPath) {
309
+ const state = loadState(projectPath);
310
+ const phase = state.current;
311
+ if (phase.phase === 'EAGLE_SIGHT') {
312
+ const steps = ['IDEA', 'RESEARCH', 'BRAINLIFT', 'PRD', 'GAMEPLAN'];
313
+ const idx = steps.indexOf(phase.step);
314
+ if (idx > 0) {
315
+ state.current = { phase: 'EAGLE_SIGHT', step: steps[idx - 1] };
316
+ }
317
+ }
318
+ else if (phase.phase === 'BUILD') {
319
+ const steps = ['RULES_LOADED', 'CODEBASE_INDEXED', 'FILES_READ', 'RESEARCHING', 'IMPLEMENTING', 'TESTING', 'DEBUGGING'];
320
+ const idx = steps.indexOf(phase.step);
321
+ if (idx > 0) {
322
+ state.current = { phase: 'BUILD', step: steps[idx - 1] };
323
+ }
324
+ else {
325
+ state.current = { phase: 'EAGLE_SIGHT', step: 'GAMEPLAN' };
326
+ }
327
+ }
328
+ else if (phase.phase === 'SHIPPED') {
329
+ state.current = { phase: 'BUILD', step: 'DEBUGGING' };
330
+ }
331
+ saveState(projectPath, state);
332
+ return state.current;
333
+ }
334
+ export async function runInteractive() {
335
+ const projectPath = process.cwd();
336
+ // Set up raw mode for single keypress
337
+ if (process.stdin.isTTY) {
338
+ process.stdin.setRawMode(true);
339
+ }
340
+ process.stdin.resume();
341
+ process.stdin.setEncoding('utf8');
342
+ let state = loadState(projectPath);
343
+ let phase = state.current;
344
+ let message = '';
345
+ const render = () => {
346
+ console.log(clearScreen);
347
+ console.log(drawUI(phase, projectPath));
348
+ if (message) {
349
+ console.log(`\n ${message}`);
350
+ message = '';
351
+ }
352
+ };
353
+ render();
354
+ // Watch for docs changes
355
+ const docsPath = join(projectPath, 'docs');
356
+ let watcher = null;
357
+ if (existsSync(docsPath)) {
358
+ watcher = watch(docsPath, { recursive: true }, () => {
359
+ // Re-check docs completeness
360
+ const docs = checkDocs({ projectPath });
361
+ if (docs.ready && phase.phase === 'EAGLE_SIGHT') {
362
+ message = `${green}✓${reset} Docs complete! Press [n] to start BUILD.`;
363
+ render();
364
+ }
365
+ });
366
+ }
367
+ process.stdin.on('data', async (key) => {
368
+ if (key === 'q' || key === '\u0003') { // q or Ctrl+C
369
+ console.log(clearScreen);
370
+ console.log(`\n ${cyan}Midas${reset} signing off. Happy vibecoding!\n`);
371
+ watcher?.close();
372
+ process.exit(0);
373
+ }
374
+ if (key === 'c') {
375
+ const stepKey = getPhaseKey(phase);
376
+ const prompt = STEP_PROMPTS[stepKey]?.prompt || '';
377
+ try {
378
+ await copyToClipboard(prompt);
379
+ message = `${green}✓${reset} Prompt copied to clipboard!`;
380
+ }
381
+ catch {
382
+ message = `${yellow}!${reset} Could not copy. Manually copy the prompt above.`;
383
+ }
384
+ render();
385
+ }
386
+ if (key === 'n') {
387
+ phase = advancePhase(projectPath);
388
+ message = `${green}→${reset} Advanced to next step`;
389
+ render();
390
+ }
391
+ if (key === 'b') {
392
+ phase = goBackPhase(projectPath);
393
+ message = `${yellow}←${reset} Went back one step`;
394
+ render();
395
+ }
396
+ if (key === 'r') {
397
+ state = loadState(projectPath);
398
+ phase = state.current;
399
+ message = `${blue}↻${reset} Refreshed`;
400
+ render();
401
+ }
402
+ });
403
+ }
404
+ //# sourceMappingURL=tui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ # Brainlift: my-project
2
+
3
+ ## Contrarian Insights
4
+ - [What do YOU know that contradicts conventional wisdom?]
5
+ - [What have you learned from experience that AI can't know?]
6
+
7
+ ## Domain Knowledge
8
+ - [Industry-specific context]
9
+ - [User behavior patterns you've observed]
10
+
11
+ ## Hard-Won Lessons
12
+ - [What NOT to do based on past experience]
13
+ - [Hidden gotchas in this space]
14
+
15
+ ## Current Context
16
+ - [Recent market changes]
17
+ - [Technology updates post-training-cutoff]
@@ -0,0 +1,18 @@
1
+ # Gameplan: my-project
2
+
3
+ ## Tech Stack
4
+ [Stack choice with justification]
5
+
6
+ ## Architecture Overview
7
+ [High-level system design]
8
+
9
+ ## Phase 1: Foundation
10
+ - [ ] Task 1
11
+ - [ ] Task 2
12
+
13
+ ## Phase 2: Core Features
14
+ - [ ] Task 1
15
+ - [ ] Task 2
16
+
17
+ ## Risk Mitigation
18
+ - Risk: [issue] → Mitigation: [solution]
package/docs/prd.md ADDED
@@ -0,0 +1,20 @@
1
+ # PRD: my-project
2
+
3
+ ## Overview
4
+ [One-paragraph description]
5
+
6
+ ## Goals
7
+ 1. [Primary goal]
8
+ 2. [Secondary goal]
9
+
10
+ ## Non-Goals
11
+ - [What you're explicitly NOT building]
12
+
13
+ ## User Stories
14
+ - As a [user type], I want to [action] so that [benefit]
15
+
16
+ ## Technical Requirements
17
+ - [Performance, security, integration requirements]
18
+
19
+ ## Success Metrics
20
+ - [How you'll measure success]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "midas-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "MCP server for Elite Vibecoding - everything you vibecode turns to gold",
5
5
  "main": "dist/index.js",
6
6
  "bin": {