midas-mcp 1.8.0 → 2.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 +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +54 -1
- package/dist/cli.js.map +1 -1
- package/dist/docs/CURSORRULES_TEMPLATE.md +61 -46
- package/dist/docs/USER_RULES.md +62 -81
- package/dist/metrics.d.ts +36 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +144 -0
- package/dist/metrics.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -4
- package/dist/server.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +151 -7
- package/dist/tui.js.map +1 -1
- package/docs/CURSORRULES_TEMPLATE.md +61 -46
- package/docs/USER_RULES.md +62 -81
- package/package.json +1 -1
package/dist/cli.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export declare function showStatus(): void;
|
|
|
3
3
|
export declare function runInit(projectName: string): void;
|
|
4
4
|
export declare function runAudit(): void;
|
|
5
5
|
export declare function runDocsCheck(): void;
|
|
6
|
+
export declare function showMetrics(): void;
|
|
6
7
|
export declare function runCLI(args: string[]): 'interactive' | 'server' | 'handled';
|
|
7
8
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAkCA,wBAAgB,QAAQ,IAAI,IAAI,CAuB/B;AAED,wBAAgB,UAAU,IAAI,IAAI,CA6DjC;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,WAAW,IAAI,IAAI,CAmDlC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAyC3E"}
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@ import { loadState } from './state/phase.js';
|
|
|
2
2
|
import { startProject } from './tools/phase.js';
|
|
3
3
|
import { audit } from './tools/audit.js';
|
|
4
4
|
import { checkDocs } from './tools/docs.js';
|
|
5
|
+
import { loadMetrics } from './metrics.js';
|
|
5
6
|
// ANSI colors
|
|
6
7
|
const reset = '\x1b[0m';
|
|
7
8
|
const bold = '\x1b[1m';
|
|
@@ -34,15 +35,18 @@ ${bold}${cyan}MIDAS${reset} - Everything you vibecode turns to gold
|
|
|
34
35
|
${bold}Usage:${reset}
|
|
35
36
|
npx midas-mcp Interactive coach (recommended)
|
|
36
37
|
npx midas-mcp status Show current phase and progress
|
|
38
|
+
npx midas-mcp metrics Show session metrics and statistics
|
|
37
39
|
npx midas-mcp init <name> Initialize new project with Eagle Sight
|
|
38
40
|
npx midas-mcp audit Audit project against 12 ingredients
|
|
39
41
|
npx midas-mcp docs Check Eagle Sight docs completeness
|
|
40
42
|
npx midas-mcp server Start MCP server (for Cursor integration)
|
|
41
43
|
npx midas-mcp help Show this help
|
|
42
44
|
|
|
43
|
-
${bold}The
|
|
45
|
+
${bold}The Four Phases:${reset}
|
|
44
46
|
${yellow}EAGLE SIGHT${reset} Plan before building (Idea → Research → Brainlift → PRD → Gameplan)
|
|
45
47
|
${blue}BUILD${reset} Execute with the 7-step process
|
|
48
|
+
${green}SHIP${reset} Deploy to production (Review → Deploy → Monitor)
|
|
49
|
+
${cyan}GROW${reset} Iterate and improve (Feedback → Analyze → Iterate)
|
|
46
50
|
|
|
47
51
|
${bold}Learn more:${reset}
|
|
48
52
|
https://github.com/christiancattaneo/midas-mcp
|
|
@@ -184,6 +188,52 @@ export function runDocsCheck() {
|
|
|
184
188
|
console.log(` ${yellow}Complete the docs to proceed to BUILD.${reset}\n`);
|
|
185
189
|
}
|
|
186
190
|
}
|
|
191
|
+
export function showMetrics() {
|
|
192
|
+
const projectPath = process.cwd();
|
|
193
|
+
const m = loadMetrics(projectPath);
|
|
194
|
+
console.log(`\n${bold}${cyan}MIDAS METRICS${reset}\n`);
|
|
195
|
+
if (m.totalSessions === 0) {
|
|
196
|
+
console.log(` ${dim}No sessions recorded yet.${reset}`);
|
|
197
|
+
console.log(` ${dim}Run 'midas-mcp' to start your first session.${reset}\n`);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Summary stats
|
|
201
|
+
console.log(box([
|
|
202
|
+
`${bold}Sessions${reset}`,
|
|
203
|
+
` Total: ${m.totalSessions}`,
|
|
204
|
+
` Streak: ${m.currentStreak} day${m.currentStreak !== 1 ? 's' : ''}`,
|
|
205
|
+
` Avg length: ${m.averageSessionMinutes} min`,
|
|
206
|
+
'',
|
|
207
|
+
`${bold}Activity${reset}`,
|
|
208
|
+
` Tool calls: ${m.totalToolCalls}`,
|
|
209
|
+
` Tornado cycles: ${m.totalTornadoCycles}`,
|
|
210
|
+
` Journals saved: ${m.totalJournalsSaved}`,
|
|
211
|
+
].join('\n'), 40));
|
|
212
|
+
// Phase history
|
|
213
|
+
if (m.phaseHistory.length > 0) {
|
|
214
|
+
console.log(`\n${bold}Phase Journey:${reset}`);
|
|
215
|
+
const recent = m.phaseHistory.slice(-5);
|
|
216
|
+
for (const p of recent) {
|
|
217
|
+
const duration = p.duration ? ` (${p.duration} min)` : ' (current)';
|
|
218
|
+
const date = new Date(p.enteredAt).toLocaleDateString();
|
|
219
|
+
console.log(` ${dim}${date}${reset} ${p.phase}${dim}${duration}${reset}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Recent sessions
|
|
223
|
+
if (m.sessions.length > 0) {
|
|
224
|
+
console.log(`\n${bold}Recent Sessions:${reset}`);
|
|
225
|
+
const recent = m.sessions.slice(-3);
|
|
226
|
+
for (const s of recent) {
|
|
227
|
+
const date = new Date(s.startTime).toLocaleDateString();
|
|
228
|
+
const time = new Date(s.startTime).toLocaleTimeString().slice(0, 5);
|
|
229
|
+
const duration = s.endTime
|
|
230
|
+
? Math.round((new Date(s.endTime).getTime() - new Date(s.startTime).getTime()) / 60000)
|
|
231
|
+
: 0;
|
|
232
|
+
console.log(` ${dim}${date} ${time}${reset} - ${s.toolCalls} tools, ${duration}min`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
console.log('');
|
|
236
|
+
}
|
|
187
237
|
export function runCLI(args) {
|
|
188
238
|
const command = args[0];
|
|
189
239
|
switch (command) {
|
|
@@ -204,6 +254,9 @@ export function runCLI(args) {
|
|
|
204
254
|
case 'docs':
|
|
205
255
|
runDocsCheck();
|
|
206
256
|
return 'handled';
|
|
257
|
+
case 'metrics':
|
|
258
|
+
showMetrics();
|
|
259
|
+
return 'handled';
|
|
207
260
|
case 'server':
|
|
208
261
|
return 'server'; // Start MCP server
|
|
209
262
|
case undefined:
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +1,84 @@
|
|
|
1
1
|
# Recommended .cursorrules for Midas Users
|
|
2
2
|
|
|
3
|
-
Add this to your project's `.cursorrules` file to
|
|
3
|
+
Add this to your project's `.cursorrules` file to make Cursor automatically follow the Golden Code methodology:
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
# Golden Code Methodology
|
|
6
|
+
# Golden Code Methodology (via Midas MCP)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## AUTOMATIC BEHAVIOR - Do these without being asked:
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### On EVERY new chat session:
|
|
11
|
+
1. Call `midas_journal_list` to load context from previous sessions
|
|
12
|
+
2. Call `midas_analyze` to understand current project phase
|
|
13
|
+
3. Follow the suggested approach from the analysis
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
4. **When output doesn't fit**: Call `midas_horizon` to expand context
|
|
16
|
-
5. **When retrying failed prompts**: Call `midas_oneshot` to construct a better retry
|
|
15
|
+
### After EVERY significant code change:
|
|
16
|
+
1. Call `midas_journal_save` with title describing what was done
|
|
17
|
+
2. Include the full conversation in the journal entry
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
### Before EVERY implementation:
|
|
20
|
+
1. Call `midas_suggest_prompt` to get phase-appropriate guidance
|
|
21
|
+
2. Follow the Golden Code methodology for current phase
|
|
22
|
+
|
|
23
|
+
## When Things Go Wrong:
|
|
24
|
+
- **Stuck/confused**: Call `midas_tornado` for Research + Logs + Tests cycle
|
|
25
|
+
- **Output doesn't fit**: Call `midas_horizon` to expand context
|
|
26
|
+
- **Retry after error**: Call `midas_oneshot` to construct better retry
|
|
27
|
+
|
|
28
|
+
## The 7-Step BUILD Cycle:
|
|
29
|
+
RULES → INDEX → READ → RESEARCH → IMPLEMENT → TEST → DEBUG
|
|
30
|
+
Always complete earlier steps before jumping to implementation.
|
|
31
|
+
|
|
32
|
+
## The 4 Phases:
|
|
19
33
|
|
|
20
34
|
### EAGLE_SIGHT (Planning)
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
- IDEA: Define core idea, problem, audience
|
|
36
|
+
- RESEARCH: Landscape scan, competitors
|
|
37
|
+
- BRAINLIFT: Document unique insights
|
|
38
|
+
- PRD: Write requirements
|
|
39
|
+
- GAMEPLAN: Plan the build
|
|
40
|
+
|
|
41
|
+
### BUILD (Development)
|
|
42
|
+
- RULES: Read .cursorrules and project constraints
|
|
43
|
+
- INDEX: Understand codebase structure
|
|
44
|
+
- READ: Read specific implementation files
|
|
45
|
+
- RESEARCH: Look up docs, APIs, best practices
|
|
46
|
+
- IMPLEMENT: Write code with tests
|
|
47
|
+
- TEST: Run tests, fix failures
|
|
48
|
+
- DEBUG: Use Tornado cycle if stuck
|
|
33
49
|
|
|
34
50
|
### SHIP (Deployment)
|
|
35
|
-
- Code review, security audit
|
|
36
|
-
- CI/CD and production deploy
|
|
37
|
-
-
|
|
51
|
+
- REVIEW: Code review, security audit
|
|
52
|
+
- DEPLOY: CI/CD and production deploy
|
|
53
|
+
- MONITOR: Logs, alerts, health checks
|
|
38
54
|
|
|
39
55
|
### GROW (Iteration)
|
|
40
|
-
- Collect feedback
|
|
41
|
-
-
|
|
42
|
-
- Plan next cycle (back to EAGLE_SIGHT)
|
|
43
|
-
|
|
44
|
-
## Journal Important Conversations
|
|
45
|
-
|
|
46
|
-
When making significant decisions or completing major implementations, save the conversation:
|
|
56
|
+
- FEEDBACK: Collect user feedback
|
|
57
|
+
- ANALYZE: Study metrics and behavior
|
|
58
|
+
- ITERATE: Plan next cycle (back to EAGLE_SIGHT)
|
|
59
|
+
```
|
|
47
60
|
|
|
48
|
-
|
|
61
|
+
## Why This Works
|
|
49
62
|
|
|
50
|
-
|
|
63
|
+
With these rules, Cursor will **automatically**:
|
|
51
64
|
|
|
52
|
-
|
|
65
|
+
1. **Load context** from your journal at session start
|
|
66
|
+
2. **Analyze the project** to understand where you are
|
|
67
|
+
3. **Save conversations** to journal after changes
|
|
68
|
+
4. **Follow methodology** without you having to ask
|
|
53
69
|
|
|
54
|
-
|
|
55
|
-
2. **Tornado Building**: When stuck: Research → Logs → Tests
|
|
56
|
-
3. **Horizon Thinking**: Expand context when output doesn't fit
|
|
57
|
-
```
|
|
70
|
+
You still initiate each chat, but Cursor does the Midas calls automatically.
|
|
58
71
|
|
|
59
72
|
## Installation
|
|
60
73
|
|
|
61
|
-
1.
|
|
62
|
-
2.
|
|
63
|
-
3.
|
|
74
|
+
1. Run `midas-mcp tui` in your project
|
|
75
|
+
2. Press `[a]` to add these rules to `.cursorrules`
|
|
76
|
+
3. Or manually create `.cursorrules` with the content above
|
|
77
|
+
|
|
78
|
+
## What You DON'T Get (Yet)
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
- Auto-starting new chats (Cursor must be manually opened)
|
|
81
|
+
- Auto-committing before/after prompts (would need Claude Code CLI)
|
|
82
|
+
- Proactive notifications (MCP is request/response only)
|
|
66
83
|
|
|
67
|
-
|
|
68
|
-
- **Journal entries persist context** - unlike chat history which is ephemeral
|
|
69
|
-
- **Phase tracking helps stay focused** - prevents scope creep and random tangents
|
|
84
|
+
For fully automated workflows, consider wrapping Claude Code CLI.
|
package/dist/docs/USER_RULES.md
CHANGED
|
@@ -1,90 +1,71 @@
|
|
|
1
|
-
# User Rules
|
|
1
|
+
# Midas - Cursor User Rules
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Add these rules to your **Cursor User Rules** (Settings → Rules for AI) to make Cursor automatically follow the Golden Code methodology across ALL projects.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## The Rules to Add
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- Simple short git commit after changes, no emojis or special characters
|
|
47
|
-
- Deploy Firebase rules/functions/indexes when changed
|
|
48
|
-
- Deploy Firebase cloud functions when updated
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Testing
|
|
53
|
-
|
|
54
|
-
- Use iPhone 16 or 16 Pro for Xcode iOS simulator
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Full Rules Template
|
|
7
|
+
```
|
|
8
|
+
# Golden Code Methodology (via Midas MCP)
|
|
9
|
+
|
|
10
|
+
## AUTOMATIC BEHAVIOR - Do these without being asked:
|
|
11
|
+
|
|
12
|
+
### On EVERY new chat session:
|
|
13
|
+
1. Call `midas_journal_list` to load context from previous sessions
|
|
14
|
+
2. Call `midas_analyze` to understand current project phase
|
|
15
|
+
3. Follow the suggested approach from the analysis
|
|
16
|
+
|
|
17
|
+
### After EVERY significant code change:
|
|
18
|
+
1. Git commit with descriptive message before AND after major changes
|
|
19
|
+
2. Call `midas_journal_save` with title describing what was done
|
|
20
|
+
3. Include the full conversation in the journal entry
|
|
21
|
+
|
|
22
|
+
### Before EVERY implementation:
|
|
23
|
+
1. Call `midas_suggest_prompt` to get phase-appropriate guidance
|
|
24
|
+
2. Follow the Golden Code methodology for current phase
|
|
25
|
+
|
|
26
|
+
## When Things Go Wrong:
|
|
27
|
+
- **Stuck/confused**: Call `midas_tornado` for Research + Logs + Tests cycle
|
|
28
|
+
- **Output doesn't fit**: Call `midas_horizon` to expand context
|
|
29
|
+
- **Retry after error**: Call `midas_oneshot` to construct better retry
|
|
30
|
+
|
|
31
|
+
## Git Discipline:
|
|
32
|
+
- Commit BEFORE starting any significant change (checkpoint)
|
|
33
|
+
- Commit AFTER completing each logical unit of work
|
|
34
|
+
- Use descriptive commit messages that explain WHY not just WHAT
|
|
35
|
+
|
|
36
|
+
## The 7-Step BUILD Cycle:
|
|
37
|
+
RULES → INDEX → READ → RESEARCH → IMPLEMENT → TEST → DEBUG
|
|
38
|
+
Always complete earlier steps before jumping to implementation.
|
|
39
|
+
|
|
40
|
+
## The 4 Phases:
|
|
41
|
+
1. EAGLE_SIGHT: Plan before coding (brainlift, PRD, gameplan)
|
|
42
|
+
2. BUILD: The 7-step cycle above
|
|
43
|
+
3. SHIP: Review, deploy, monitor
|
|
44
|
+
4. GROW: Feedback, analyze, iterate back to EAGLE_SIGHT
|
|
45
|
+
```
|
|
59
46
|
|
|
60
|
-
|
|
61
|
-
# DOCUMENTATION
|
|
62
|
-
- No emojis, no ALL CAPS, no tables with dashes/pipes
|
|
63
|
-
- No em dashes, no excessive formatting
|
|
64
|
-
- Bold for emphasis, write tersely, casually, high IQ
|
|
47
|
+
## How to Add
|
|
65
48
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
49
|
+
1. Open Cursor Settings (Cmd+,)
|
|
50
|
+
2. Search for "Rules for AI" or navigate to it
|
|
51
|
+
3. Paste the rules above
|
|
52
|
+
4. Save
|
|
70
53
|
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
54
|
+
Now Cursor will automatically:
|
|
55
|
+
- Load journal context at session start
|
|
56
|
+
- Analyze project phase
|
|
57
|
+
- Save conversations to journal
|
|
58
|
+
- Git commit before/after changes
|
|
59
|
+
- Follow the Golden Code methodology
|
|
76
60
|
|
|
77
|
-
|
|
78
|
-
- Single responsibility principle
|
|
79
|
-
- Achieve each task in minimum tokens
|
|
80
|
-
- Add logs and look up documentation to debug
|
|
61
|
+
## Why User Rules Instead of .cursorrules
|
|
81
62
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
63
|
+
| Feature | User Rules | .cursorrules |
|
|
64
|
+
|---------|-----------|--------------|
|
|
65
|
+
| Scope | All projects | One project |
|
|
66
|
+
| Git tracked | No | Yes |
|
|
67
|
+
| Setup | Once | Per project |
|
|
68
|
+
| Override | Per-project can override | N/A |
|
|
87
69
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
```
|
|
70
|
+
User Rules are ideal for methodology/workflow rules that should apply everywhere.
|
|
71
|
+
Project `.cursorrules` are for project-specific conventions (TypeScript config, naming, etc).
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Phase } from './state/phase.js';
|
|
2
|
+
export interface SessionMetrics {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
startTime: string;
|
|
5
|
+
endTime?: string;
|
|
6
|
+
startPhase: Phase;
|
|
7
|
+
endPhase?: Phase;
|
|
8
|
+
toolCalls: number;
|
|
9
|
+
tornadoCycles: number;
|
|
10
|
+
journalsSaved: number;
|
|
11
|
+
promptsCopied: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ProjectMetrics {
|
|
14
|
+
totalSessions: number;
|
|
15
|
+
totalToolCalls: number;
|
|
16
|
+
totalTornadoCycles: number;
|
|
17
|
+
totalJournalsSaved: number;
|
|
18
|
+
phaseHistory: Array<{
|
|
19
|
+
phase: string;
|
|
20
|
+
enteredAt: string;
|
|
21
|
+
duration?: number;
|
|
22
|
+
}>;
|
|
23
|
+
sessions: SessionMetrics[];
|
|
24
|
+
averageSessionMinutes: number;
|
|
25
|
+
currentStreak: number;
|
|
26
|
+
lastSessionDate: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function loadMetrics(projectPath: string): ProjectMetrics;
|
|
29
|
+
export declare function saveMetrics(projectPath: string, metrics: ProjectMetrics): void;
|
|
30
|
+
export declare function startSession(projectPath: string, currentPhase: Phase): string;
|
|
31
|
+
export declare function endSession(projectPath: string, sessionId: string, endPhase: Phase): void;
|
|
32
|
+
export declare function recordToolCall(projectPath: string, sessionId: string, toolName: string): void;
|
|
33
|
+
export declare function recordPromptCopied(projectPath: string, sessionId: string): void;
|
|
34
|
+
export declare function recordPhaseChange(projectPath: string, phase: Phase): void;
|
|
35
|
+
export declare function getMetricsSummary(projectPath: string): string;
|
|
36
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAK9C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAaD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAkB/D;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAG9E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,GAAG,MAAM,CAkC7E;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,CAqBxF;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoB7F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAS/E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAkBzE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAe7D"}
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
const MIDAS_DIR = '.midas';
|
|
4
|
+
const METRICS_FILE = 'metrics.json';
|
|
5
|
+
function getMetricsPath(projectPath) {
|
|
6
|
+
return join(projectPath, MIDAS_DIR, METRICS_FILE);
|
|
7
|
+
}
|
|
8
|
+
function ensureDir(projectPath) {
|
|
9
|
+
const dir = join(projectPath, MIDAS_DIR);
|
|
10
|
+
if (!existsSync(dir)) {
|
|
11
|
+
mkdirSync(dir, { recursive: true });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function loadMetrics(projectPath) {
|
|
15
|
+
const path = getMetricsPath(projectPath);
|
|
16
|
+
if (existsSync(path)) {
|
|
17
|
+
try {
|
|
18
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
19
|
+
}
|
|
20
|
+
catch { }
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
totalSessions: 0,
|
|
24
|
+
totalToolCalls: 0,
|
|
25
|
+
totalTornadoCycles: 0,
|
|
26
|
+
totalJournalsSaved: 0,
|
|
27
|
+
phaseHistory: [],
|
|
28
|
+
sessions: [],
|
|
29
|
+
averageSessionMinutes: 0,
|
|
30
|
+
currentStreak: 0,
|
|
31
|
+
lastSessionDate: '',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function saveMetrics(projectPath, metrics) {
|
|
35
|
+
ensureDir(projectPath);
|
|
36
|
+
writeFileSync(getMetricsPath(projectPath), JSON.stringify(metrics, null, 2));
|
|
37
|
+
}
|
|
38
|
+
export function startSession(projectPath, currentPhase) {
|
|
39
|
+
const metrics = loadMetrics(projectPath);
|
|
40
|
+
const sessionId = `${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
41
|
+
const session = {
|
|
42
|
+
sessionId,
|
|
43
|
+
startTime: new Date().toISOString(),
|
|
44
|
+
startPhase: currentPhase,
|
|
45
|
+
toolCalls: 0,
|
|
46
|
+
tornadoCycles: 0,
|
|
47
|
+
journalsSaved: 0,
|
|
48
|
+
promptsCopied: 0,
|
|
49
|
+
};
|
|
50
|
+
metrics.sessions.push(session);
|
|
51
|
+
metrics.totalSessions++;
|
|
52
|
+
// Update streak
|
|
53
|
+
const today = new Date().toISOString().slice(0, 10);
|
|
54
|
+
const lastDate = metrics.lastSessionDate;
|
|
55
|
+
if (lastDate) {
|
|
56
|
+
const yesterday = new Date(Date.now() - 86400000).toISOString().slice(0, 10);
|
|
57
|
+
if (lastDate === yesterday) {
|
|
58
|
+
metrics.currentStreak++;
|
|
59
|
+
}
|
|
60
|
+
else if (lastDate !== today) {
|
|
61
|
+
metrics.currentStreak = 1;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
metrics.currentStreak = 1;
|
|
66
|
+
}
|
|
67
|
+
metrics.lastSessionDate = today;
|
|
68
|
+
saveMetrics(projectPath, metrics);
|
|
69
|
+
return sessionId;
|
|
70
|
+
}
|
|
71
|
+
export function endSession(projectPath, sessionId, endPhase) {
|
|
72
|
+
const metrics = loadMetrics(projectPath);
|
|
73
|
+
const session = metrics.sessions.find(s => s.sessionId === sessionId);
|
|
74
|
+
if (session) {
|
|
75
|
+
session.endTime = new Date().toISOString();
|
|
76
|
+
session.endPhase = endPhase;
|
|
77
|
+
// Calculate average session time
|
|
78
|
+
const completedSessions = metrics.sessions.filter(s => s.endTime);
|
|
79
|
+
if (completedSessions.length > 0) {
|
|
80
|
+
const totalMinutes = completedSessions.reduce((acc, s) => {
|
|
81
|
+
const start = new Date(s.startTime).getTime();
|
|
82
|
+
const end = new Date(s.endTime).getTime();
|
|
83
|
+
return acc + (end - start) / 60000;
|
|
84
|
+
}, 0);
|
|
85
|
+
metrics.averageSessionMinutes = Math.round(totalMinutes / completedSessions.length);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
saveMetrics(projectPath, metrics);
|
|
89
|
+
}
|
|
90
|
+
export function recordToolCall(projectPath, sessionId, toolName) {
|
|
91
|
+
const metrics = loadMetrics(projectPath);
|
|
92
|
+
const session = metrics.sessions.find(s => s.sessionId === sessionId);
|
|
93
|
+
if (session) {
|
|
94
|
+
session.toolCalls++;
|
|
95
|
+
metrics.totalToolCalls++;
|
|
96
|
+
if (toolName === 'midas_tornado') {
|
|
97
|
+
session.tornadoCycles++;
|
|
98
|
+
metrics.totalTornadoCycles++;
|
|
99
|
+
}
|
|
100
|
+
if (toolName === 'midas_journal_save') {
|
|
101
|
+
session.journalsSaved++;
|
|
102
|
+
metrics.totalJournalsSaved++;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
saveMetrics(projectPath, metrics);
|
|
106
|
+
}
|
|
107
|
+
export function recordPromptCopied(projectPath, sessionId) {
|
|
108
|
+
const metrics = loadMetrics(projectPath);
|
|
109
|
+
const session = metrics.sessions.find(s => s.sessionId === sessionId);
|
|
110
|
+
if (session) {
|
|
111
|
+
session.promptsCopied++;
|
|
112
|
+
}
|
|
113
|
+
saveMetrics(projectPath, metrics);
|
|
114
|
+
}
|
|
115
|
+
export function recordPhaseChange(projectPath, phase) {
|
|
116
|
+
const metrics = loadMetrics(projectPath);
|
|
117
|
+
// Close previous phase
|
|
118
|
+
const lastPhase = metrics.phaseHistory[metrics.phaseHistory.length - 1];
|
|
119
|
+
if (lastPhase && !lastPhase.duration) {
|
|
120
|
+
const entered = new Date(lastPhase.enteredAt).getTime();
|
|
121
|
+
lastPhase.duration = Math.round((Date.now() - entered) / 60000); // minutes
|
|
122
|
+
}
|
|
123
|
+
// Add new phase
|
|
124
|
+
const phaseStr = phase.phase === 'IDLE' ? 'IDLE' : `${phase.phase}:${phase.step}`;
|
|
125
|
+
metrics.phaseHistory.push({
|
|
126
|
+
phase: phaseStr,
|
|
127
|
+
enteredAt: new Date().toISOString(),
|
|
128
|
+
});
|
|
129
|
+
saveMetrics(projectPath, metrics);
|
|
130
|
+
}
|
|
131
|
+
export function getMetricsSummary(projectPath) {
|
|
132
|
+
const m = loadMetrics(projectPath);
|
|
133
|
+
if (m.totalSessions === 0) {
|
|
134
|
+
return 'No sessions yet';
|
|
135
|
+
}
|
|
136
|
+
const lines = [];
|
|
137
|
+
lines.push(`Sessions: ${m.totalSessions} (${m.currentStreak} day streak)`);
|
|
138
|
+
lines.push(`Avg session: ${m.averageSessionMinutes} min`);
|
|
139
|
+
lines.push(`Tool calls: ${m.totalToolCalls}`);
|
|
140
|
+
lines.push(`Tornado cycles: ${m.totalTornadoCycles}`);
|
|
141
|
+
lines.push(`Journals saved: ${m.totalJournalsSaved}`);
|
|
142
|
+
return lines.join('\n');
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqCpE,wBAAgB,YAAY,IAAI,SAAS,CA6KxC"}
|