midas-mcp 1.6.0 → 1.8.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/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +50 -21
- package/dist/analyzer.js.map +1 -1
- package/dist/docs/CURSORRULES_TEMPLATE.md +69 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +17 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/journal.d.ts +75 -0
- package/dist/tools/journal.d.ts.map +1 -0
- package/dist/tools/journal.js +100 -0
- package/dist/tools/journal.js.map +1 -0
- package/dist/tracker.d.ts +41 -0
- package/dist/tracker.d.ts.map +1 -0
- package/dist/tracker.js +243 -0
- package/dist/tracker.js.map +1 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +13 -13
- package/dist/tui.js.map +1 -1
- package/docs/CURSORRULES_TEMPLATE.md +69 -0
- package/package.json +1 -1
package/dist/analyzer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAiD,MAAM,kBAAkB,CAAC;AAwG7F,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,KAAK,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4KlF"}
|
package/dist/analyzer.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getApiKey } from './config.js';
|
|
2
|
-
import { getRecentConversationIds, getConversation } from './cursor.js';
|
|
3
2
|
import { readdirSync, readFileSync, existsSync } from 'fs';
|
|
4
3
|
import { join, extname } from 'path';
|
|
4
|
+
import { updateTracker } from './tracker.js';
|
|
5
|
+
import { getJournalEntries } from './tools/journal.js';
|
|
5
6
|
async function callClaude(prompt, systemPrompt) {
|
|
6
7
|
const apiKey = getApiKey();
|
|
7
8
|
if (!apiKey)
|
|
@@ -59,24 +60,44 @@ function readFile(path, maxLines = 30) {
|
|
|
59
60
|
return '';
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
function
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (messages.length >= limit)
|
|
74
|
-
break;
|
|
63
|
+
function getActivityContext(projectPath) {
|
|
64
|
+
try {
|
|
65
|
+
const tracker = updateTracker(projectPath);
|
|
66
|
+
const lines = [];
|
|
67
|
+
// Recent file activity
|
|
68
|
+
if (tracker.recentFiles.length > 0) {
|
|
69
|
+
lines.push('## Recent File Activity:');
|
|
70
|
+
for (const f of tracker.recentFiles.slice(0, 10)) {
|
|
71
|
+
const ago = Math.round((Date.now() - f.lastModified) / 60000);
|
|
72
|
+
lines.push(`- ${f.path} (${ago}min ago)`);
|
|
73
|
+
}
|
|
75
74
|
}
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
// Git activity
|
|
76
|
+
if (tracker.gitActivity) {
|
|
77
|
+
lines.push('\n## Git Activity:');
|
|
78
|
+
lines.push(`- Branch: ${tracker.gitActivity.branch}`);
|
|
79
|
+
lines.push(`- Uncommitted changes: ${tracker.gitActivity.uncommittedChanges}`);
|
|
80
|
+
if (tracker.gitActivity.lastCommitMessage) {
|
|
81
|
+
lines.push(`- Last commit: "${tracker.gitActivity.lastCommitMessage}"`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Recent tool calls
|
|
85
|
+
if (tracker.recentToolCalls.length > 0) {
|
|
86
|
+
lines.push('\n## Recent Midas Tool Calls:');
|
|
87
|
+
for (const t of tracker.recentToolCalls.slice(0, 5)) {
|
|
88
|
+
const ago = Math.round((Date.now() - t.timestamp) / 60000);
|
|
89
|
+
lines.push(`- ${t.tool} (${ago}min ago)`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Completion signals
|
|
93
|
+
lines.push('\n## Completion Signals:');
|
|
94
|
+
lines.push(`- Tests exist: ${tracker.completionSignals.testsExist ? 'yes' : 'no'}`);
|
|
95
|
+
lines.push(`- Docs complete: ${tracker.completionSignals.docsComplete ? 'yes' : 'no'}`);
|
|
96
|
+
return lines.join('\n');
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return 'No activity data available';
|
|
78
100
|
}
|
|
79
|
-
return messages.join('\n\n');
|
|
80
101
|
}
|
|
81
102
|
export async function analyzeProject(projectPath) {
|
|
82
103
|
const apiKey = getApiKey();
|
|
@@ -105,8 +126,13 @@ export async function analyzeProject(projectPath) {
|
|
|
105
126
|
const hasDockerfile = existsSync(join(projectPath, 'Dockerfile')) || existsSync(join(projectPath, 'docker-compose.yml'));
|
|
106
127
|
const hasCI = existsSync(join(projectPath, '.github', 'workflows'));
|
|
107
128
|
const hasTests = files.some(f => f.includes('.test.') || f.includes('.spec.') || f.includes('__tests__'));
|
|
108
|
-
// Get chat history
|
|
109
|
-
const
|
|
129
|
+
// Get activity context (replaces broken chat history)
|
|
130
|
+
const activityContext = getActivityContext(projectPath);
|
|
131
|
+
// Get journal entries for conversation history
|
|
132
|
+
const journalEntries = getJournalEntries({ projectPath, limit: 5 });
|
|
133
|
+
const journalContext = journalEntries.length > 0
|
|
134
|
+
? journalEntries.map(e => `### ${e.title} (${e.timestamp.slice(0, 10)})\n${e.conversation.slice(0, 500)}...`).join('\n\n')
|
|
135
|
+
: 'No journal entries yet';
|
|
110
136
|
// Sample some code files
|
|
111
137
|
const codeSamples = files.slice(0, 5).map(f => {
|
|
112
138
|
const content = readFile(f, 20);
|
|
@@ -132,8 +158,11 @@ ${gameplanContent ? `Preview:\n${gameplanContent.slice(0, 400)}` : ''}
|
|
|
132
158
|
- Dockerfile/compose: ${hasDockerfile ? 'yes' : 'no'}
|
|
133
159
|
- CI/CD (.github/workflows): ${hasCI ? 'yes' : 'no'}
|
|
134
160
|
|
|
135
|
-
## Recent
|
|
136
|
-
${
|
|
161
|
+
## Recent Activity:
|
|
162
|
+
${activityContext}
|
|
163
|
+
|
|
164
|
+
## Journal (Past Conversations):
|
|
165
|
+
${journalContext}
|
|
137
166
|
|
|
138
167
|
## Code Samples:
|
|
139
168
|
${codeSamples || 'No code files yet'}
|
package/dist/analyzer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Recommended .cursorrules for Midas Users
|
|
2
|
+
|
|
3
|
+
Add this to your project's `.cursorrules` file to get the most out of Midas:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
# Golden Code Methodology
|
|
7
|
+
|
|
8
|
+
This project follows the Golden Code methodology. Use the Midas MCP tools to guide development.
|
|
9
|
+
|
|
10
|
+
## Workflow Rules
|
|
11
|
+
|
|
12
|
+
1. **Before any code changes**: Call `midas_analyze` to understand current phase and get guidance
|
|
13
|
+
2. **After important discussions**: Call `midas_journal_save` to preserve context for future sessions
|
|
14
|
+
3. **When stuck**: Call `midas_tornado` to get unstuck with the Research + Logs + Tests cycle
|
|
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
|
|
17
|
+
|
|
18
|
+
## The 4 Phases
|
|
19
|
+
|
|
20
|
+
### EAGLE_SIGHT (Planning)
|
|
21
|
+
- Start here for new features
|
|
22
|
+
- Complete brainlift.md, prd.md, and gameplan.md before coding
|
|
23
|
+
- Never skip planning - it prevents costly rewrites
|
|
24
|
+
|
|
25
|
+
### BUILD (7-Step Cycle)
|
|
26
|
+
1. RULES - Read .cursorrules and project constraints
|
|
27
|
+
2. INDEX - Understand codebase structure
|
|
28
|
+
3. READ - Read specific implementation files
|
|
29
|
+
4. RESEARCH - Look up docs, APIs, best practices
|
|
30
|
+
5. IMPLEMENT - Write code with tests
|
|
31
|
+
6. TEST - Run tests, fix failures
|
|
32
|
+
7. DEBUG - Use Tornado cycle if stuck
|
|
33
|
+
|
|
34
|
+
### SHIP (Deployment)
|
|
35
|
+
- Code review, security audit
|
|
36
|
+
- CI/CD and production deploy
|
|
37
|
+
- Monitoring and health checks
|
|
38
|
+
|
|
39
|
+
### GROW (Iteration)
|
|
40
|
+
- Collect feedback
|
|
41
|
+
- Analyze metrics
|
|
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:
|
|
47
|
+
|
|
48
|
+
"Save this conversation to the Midas journal with title 'Implemented user authentication'"
|
|
49
|
+
|
|
50
|
+
This preserves context for future sessions and helps track project history.
|
|
51
|
+
|
|
52
|
+
## Key Principles
|
|
53
|
+
|
|
54
|
+
1. **Oneshot Paradigm**: One clear task per prompt
|
|
55
|
+
2. **Tornado Building**: When stuck: Research → Logs → Tests
|
|
56
|
+
3. **Horizon Thinking**: Expand context when output doesn't fit
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
1. Create a `.cursorrules` file in your project root
|
|
62
|
+
2. Paste the content above
|
|
63
|
+
3. Cursor will now follow Golden Code methodology and use Midas tools
|
|
64
|
+
|
|
65
|
+
## Why This Matters
|
|
66
|
+
|
|
67
|
+
- **Midas tools only work when called** - these rules tell Cursor WHEN to call them
|
|
68
|
+
- **Journal entries persist context** - unlike chat history which is ephemeral
|
|
69
|
+
- **Phase tracking helps stay focused** - prevents scope creep and random tangents
|
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;AAoCpE,wBAAgB,YAAY,IAAI,SAAS,CAuKxC"}
|
package/dist/server.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { startProject, startProjectSchema, getPhase, getPhaseSchema, setPhaseManually, setPhaseSchema, audit, auditSchema, checkDocs, checkDocsSchema, constructOneshot, oneshotSchema, triggerTornado, tornadoSchema, expandHorizon, horizonSchema, analyze, analyzeSchema, suggestPrompt, suggestPromptSchema, advancePhase, advancePhaseSchema, } from './tools/index.js';
|
|
2
|
+
import { startProject, startProjectSchema, getPhase, getPhaseSchema, setPhaseManually, setPhaseSchema, audit, auditSchema, checkDocs, checkDocsSchema, constructOneshot, oneshotSchema, triggerTornado, tornadoSchema, expandHorizon, horizonSchema, analyze, analyzeSchema, suggestPrompt, suggestPromptSchema, advancePhase, advancePhaseSchema, saveToJournal, saveJournalSchema, getJournalEntries, getJournalSchema, searchJournal, searchJournalSchema, } from './tools/index.js';
|
|
3
3
|
import { registerAllPrompts } from './prompts/index.js';
|
|
4
4
|
import { registerAllResources } from './resources/index.js';
|
|
5
5
|
import { logger } from './logger.js';
|
|
6
|
+
import { trackToolCall } from './tracker.js';
|
|
6
7
|
export function createServer() {
|
|
7
8
|
logger.info('Creating Midas MCP server');
|
|
8
9
|
const server = new McpServer({
|
|
@@ -13,6 +14,11 @@ export function createServer() {
|
|
|
13
14
|
const wrapTool = (name, fn) => {
|
|
14
15
|
return async (args) => {
|
|
15
16
|
logger.tool(name, args);
|
|
17
|
+
// Track tool call for activity monitoring
|
|
18
|
+
try {
|
|
19
|
+
trackToolCall(process.cwd(), name, args);
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
16
22
|
try {
|
|
17
23
|
const result = fn(args);
|
|
18
24
|
logger.debug(`Tool ${name} completed`);
|
|
@@ -41,6 +47,11 @@ export function createServer() {
|
|
|
41
47
|
const wrapAsyncTool = (name, fn) => {
|
|
42
48
|
return async (args) => {
|
|
43
49
|
logger.tool(name, args);
|
|
50
|
+
// Track tool call for activity monitoring
|
|
51
|
+
try {
|
|
52
|
+
trackToolCall(process.cwd(), name, args);
|
|
53
|
+
}
|
|
54
|
+
catch { }
|
|
44
55
|
try {
|
|
45
56
|
const result = await fn(args);
|
|
46
57
|
logger.debug(`Tool ${name} completed`);
|
|
@@ -60,13 +71,17 @@ export function createServer() {
|
|
|
60
71
|
server.tool('midas_analyze', 'AI-powered project analysis - determines current phase, what is done, and suggests next steps', analyzeSchema.shape, wrapAsyncTool('midas_analyze', analyze));
|
|
61
72
|
server.tool('midas_suggest_prompt', 'Get a context-aware prompt suggestion for the current phase and step', suggestPromptSchema.shape, wrapTool('midas_suggest_prompt', suggestPrompt));
|
|
62
73
|
server.tool('midas_advance_phase', 'Advance to the next step in the development lifecycle', advancePhaseSchema.shape, wrapTool('midas_advance_phase', advancePhase));
|
|
74
|
+
// Journal tools - save full conversations for future context
|
|
75
|
+
server.tool('midas_journal_save', 'Save a full conversation to the project journal. Use this after important discussions, decisions, or implementations to preserve context for future sessions.', saveJournalSchema.shape, wrapTool('midas_journal_save', saveToJournal));
|
|
76
|
+
server.tool('midas_journal_list', 'Get recent journal entries to understand project history and past decisions', getJournalSchema.shape, wrapTool('midas_journal_list', getJournalEntries));
|
|
77
|
+
server.tool('midas_journal_search', 'Search journal entries for specific topics, decisions, or implementations', searchJournalSchema.shape, wrapTool('midas_journal_search', searchJournal));
|
|
63
78
|
// Register prompts
|
|
64
79
|
registerAllPrompts(server);
|
|
65
80
|
logger.debug('Registered prompts');
|
|
66
81
|
// Register resources
|
|
67
82
|
registerAllResources(server);
|
|
68
83
|
logger.debug('Registered resources');
|
|
69
|
-
logger.info('Midas MCP server ready', { tools:
|
|
84
|
+
logger.info('Midas MCP server ready', { tools: 14, prompts: 17, resources: 5 });
|
|
70
85
|
return server;
|
|
71
86
|
}
|
|
72
87
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,QAAQ,GAAG,CAAO,IAAY,EAAE,EAAkB,EAAE,EAAE;QAC1D,OAAO,KAAK,EAAE,IAAO,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAC;YACnD,0CAA0C;YAC1C,IAAI,CAAC;gBACH,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAA+B,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC5E,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC3C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,2EAA2E,EAC3E,kBAAkB,CAAC,KAAK,EACxB,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAC9C,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,8CAA8C,EAC9C,cAAc,CAAC,KAAK,EACpB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,CAAC,KAAK,EACpB,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAC9C,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,8DAA8D,EAC9D,WAAW,CAAC,KAAK,EACjB,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAC/B,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,2EAA2E,EAC3E,eAAe,CAAC,KAAK,EACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,CACxC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,iEAAiE,EACjE,aAAa,CAAC,KAAK,EACnB,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAC5C,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,2DAA2D,EAC3D,aAAa,CAAC,KAAK,EACnB,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAC1C,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,uDAAuD,EACvD,aAAa,CAAC,KAAK,EACnB,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CACzC,CAAC;IAEF,kDAAkD;IAClD,MAAM,aAAa,GAAG,CAAO,IAAY,EAAE,EAA2B,EAAE,EAAE;QACxE,OAAO,KAAK,EAAE,IAAO,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAC;YACnD,0CAA0C;YAC1C,IAAI,CAAC;gBACH,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAA+B,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC5E,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC3C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,+FAA+F,EAC/F,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CACxC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,sEAAsE,EACtE,mBAAmB,CAAC,KAAK,EACzB,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAChD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,uDAAuD,EACvD,kBAAkB,CAAC,KAAK,EACxB,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAC9C,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,+JAA+J,EAC/J,iBAAiB,CAAC,KAAK,EACvB,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAC9C,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,6EAA6E,EAC7E,gBAAgB,CAAC,KAAK,EACtB,QAAQ,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAClD,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,2EAA2E,EAC3E,mBAAmB,CAAC,KAAK,EACzB,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAChD,CAAC;IAEF,mBAAmB;IACnB,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEnC,qBAAqB;IACrB,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAErC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export { constructOneshot, oneshotSchema } from './oneshot.js';
|
|
|
5
5
|
export { triggerTornado, tornadoSchema } from './tornado.js';
|
|
6
6
|
export { expandHorizon, horizonSchema } from './horizon.js';
|
|
7
7
|
export { analyze, analyzeSchema, suggestPrompt, suggestPromptSchema, advancePhase, advancePhaseSchema, } from './analyze.js';
|
|
8
|
+
export { saveToJournal, saveJournalSchema, getJournalEntries, getJournalSchema, searchJournal, searchJournalSchema, } from './journal.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -12,4 +12,6 @@ export { triggerTornado, tornadoSchema } from './tornado.js';
|
|
|
12
12
|
export { expandHorizon, horizonSchema } from './horizon.js';
|
|
13
13
|
// AI-powered analyze tools
|
|
14
14
|
export { analyze, analyzeSchema, suggestPrompt, suggestPromptSchema, advancePhase, advancePhaseSchema, } from './analyze.js';
|
|
15
|
+
// Journal tools - save full conversations for context
|
|
16
|
+
export { saveToJournal, saveJournalSchema, getJournalEntries, getJournalSchema, searchJournal, searchJournalSchema, } from './journal.js';
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEhD,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEvD,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7D,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,2BAA2B;AAC3B,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEhD,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEvD,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7D,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5D,2BAA2B;AAC3B,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,sDAAsD;AACtD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const saveJournalSchema: z.ZodObject<{
|
|
3
|
+
projectPath: z.ZodOptional<z.ZodString>;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
conversation: z.ZodString;
|
|
6
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
title: string;
|
|
9
|
+
conversation: string;
|
|
10
|
+
projectPath?: string | undefined;
|
|
11
|
+
tags?: string[] | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
title: string;
|
|
14
|
+
conversation: string;
|
|
15
|
+
projectPath?: string | undefined;
|
|
16
|
+
tags?: string[] | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const getJournalSchema: z.ZodObject<{
|
|
19
|
+
projectPath: z.ZodOptional<z.ZodString>;
|
|
20
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
projectPath?: string | undefined;
|
|
23
|
+
limit?: number | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
projectPath?: string | undefined;
|
|
26
|
+
limit?: number | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const searchJournalSchema: z.ZodObject<{
|
|
29
|
+
projectPath: z.ZodOptional<z.ZodString>;
|
|
30
|
+
query: z.ZodString;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
query: string;
|
|
33
|
+
projectPath?: string | undefined;
|
|
34
|
+
}, {
|
|
35
|
+
query: string;
|
|
36
|
+
projectPath?: string | undefined;
|
|
37
|
+
}>;
|
|
38
|
+
export interface JournalEntry {
|
|
39
|
+
id: string;
|
|
40
|
+
timestamp: string;
|
|
41
|
+
title: string;
|
|
42
|
+
conversation: string;
|
|
43
|
+
phase?: string;
|
|
44
|
+
step?: string;
|
|
45
|
+
tags?: string[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Save a conversation to the journal
|
|
49
|
+
* Users should call this after important exchanges
|
|
50
|
+
*/
|
|
51
|
+
export declare function saveToJournal(input: {
|
|
52
|
+
projectPath?: string;
|
|
53
|
+
title: string;
|
|
54
|
+
conversation: string;
|
|
55
|
+
tags?: string[];
|
|
56
|
+
}): {
|
|
57
|
+
success: boolean;
|
|
58
|
+
path: string;
|
|
59
|
+
entry: JournalEntry;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Get recent journal entries
|
|
63
|
+
*/
|
|
64
|
+
export declare function getJournalEntries(input: {
|
|
65
|
+
projectPath?: string;
|
|
66
|
+
limit?: number;
|
|
67
|
+
}): JournalEntry[];
|
|
68
|
+
/**
|
|
69
|
+
* Search journal entries by content or tags
|
|
70
|
+
*/
|
|
71
|
+
export declare function searchJournal(input: {
|
|
72
|
+
projectPath?: string;
|
|
73
|
+
query: string;
|
|
74
|
+
}): JournalEntry[];
|
|
75
|
+
//# sourceMappingURL=journal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/tools/journal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CA+B1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,YAAY,EAAE,CA6BjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,YAAY,EAAE,CASjB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync, readdirSync, readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
const MIDAS_DIR = '.midas';
|
|
5
|
+
const JOURNAL_DIR = 'journal';
|
|
6
|
+
// Schemas for MCP tools
|
|
7
|
+
export const saveJournalSchema = z.object({
|
|
8
|
+
projectPath: z.string().optional().describe('Path to project root'),
|
|
9
|
+
title: z.string().describe('Title for this journal entry (e.g., "Implemented auth flow")'),
|
|
10
|
+
conversation: z.string().describe('The full conversation to save - include both user prompts and AI responses'),
|
|
11
|
+
tags: z.array(z.string()).optional().describe('Optional tags like ["auth", "bugfix", "architecture"]'),
|
|
12
|
+
});
|
|
13
|
+
export const getJournalSchema = z.object({
|
|
14
|
+
projectPath: z.string().optional().describe('Path to project root'),
|
|
15
|
+
limit: z.number().optional().describe('Max entries to return (default 10)'),
|
|
16
|
+
});
|
|
17
|
+
export const searchJournalSchema = z.object({
|
|
18
|
+
projectPath: z.string().optional().describe('Path to project root'),
|
|
19
|
+
query: z.string().describe('Search term to find in journal entries'),
|
|
20
|
+
});
|
|
21
|
+
function getJournalDir(projectPath) {
|
|
22
|
+
return join(projectPath, MIDAS_DIR, JOURNAL_DIR);
|
|
23
|
+
}
|
|
24
|
+
function ensureJournalDir(projectPath) {
|
|
25
|
+
const dir = getJournalDir(projectPath);
|
|
26
|
+
if (!existsSync(dir)) {
|
|
27
|
+
mkdirSync(dir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Save a conversation to the journal
|
|
32
|
+
* Users should call this after important exchanges
|
|
33
|
+
*/
|
|
34
|
+
export function saveToJournal(input) {
|
|
35
|
+
const projectPath = input.projectPath || process.cwd();
|
|
36
|
+
ensureJournalDir(projectPath);
|
|
37
|
+
const timestamp = new Date().toISOString();
|
|
38
|
+
const id = `${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
39
|
+
const filename = `${timestamp.slice(0, 10)}-${id}.md`;
|
|
40
|
+
const entry = {
|
|
41
|
+
id,
|
|
42
|
+
timestamp,
|
|
43
|
+
title: input.title,
|
|
44
|
+
conversation: input.conversation,
|
|
45
|
+
tags: input.tags,
|
|
46
|
+
};
|
|
47
|
+
// Format as markdown for easy reading
|
|
48
|
+
const content = `# ${input.title}
|
|
49
|
+
|
|
50
|
+
**Date**: ${timestamp}
|
|
51
|
+
${input.tags?.length ? `**Tags**: ${input.tags.join(', ')}` : ''}
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
${input.conversation}
|
|
56
|
+
`;
|
|
57
|
+
const filepath = join(getJournalDir(projectPath), filename);
|
|
58
|
+
writeFileSync(filepath, content);
|
|
59
|
+
return { success: true, path: filepath, entry };
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get recent journal entries
|
|
63
|
+
*/
|
|
64
|
+
export function getJournalEntries(input) {
|
|
65
|
+
const projectPath = input.projectPath || process.cwd();
|
|
66
|
+
const journalDir = getJournalDir(projectPath);
|
|
67
|
+
if (!existsSync(journalDir)) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
const files = readdirSync(journalDir)
|
|
71
|
+
.filter(f => f.endsWith('.md'))
|
|
72
|
+
.sort()
|
|
73
|
+
.reverse()
|
|
74
|
+
.slice(0, input.limit || 10);
|
|
75
|
+
return files.map(file => {
|
|
76
|
+
const content = readFileSync(join(journalDir, file), 'utf-8');
|
|
77
|
+
const titleMatch = content.match(/^# (.+)$/m);
|
|
78
|
+
const dateMatch = content.match(/\*\*Date\*\*: (.+)$/m);
|
|
79
|
+
const tagsMatch = content.match(/\*\*Tags\*\*: (.+)$/m);
|
|
80
|
+
const conversationStart = content.indexOf('---\n') + 4;
|
|
81
|
+
return {
|
|
82
|
+
id: file.replace('.md', ''),
|
|
83
|
+
timestamp: dateMatch?.[1] || '',
|
|
84
|
+
title: titleMatch?.[1] || file,
|
|
85
|
+
conversation: content.slice(conversationStart).trim(),
|
|
86
|
+
tags: tagsMatch?.[1]?.split(', '),
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Search journal entries by content or tags
|
|
92
|
+
*/
|
|
93
|
+
export function searchJournal(input) {
|
|
94
|
+
const entries = getJournalEntries({ projectPath: input.projectPath, limit: 100 });
|
|
95
|
+
const query = input.query.toLowerCase();
|
|
96
|
+
return entries.filter(entry => entry.title.toLowerCase().includes(query) ||
|
|
97
|
+
entry.conversation.toLowerCase().includes(query) ||
|
|
98
|
+
entry.tags?.some(t => t.toLowerCase().includes(query)));
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=journal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/tools/journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type Phase } from './state/phase.js';
|
|
2
|
+
export interface FileActivity {
|
|
3
|
+
path: string;
|
|
4
|
+
lastModified: number;
|
|
5
|
+
linesChanged?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface GitActivity {
|
|
8
|
+
lastCommit?: string;
|
|
9
|
+
lastCommitMessage?: string;
|
|
10
|
+
lastCommitTime?: number;
|
|
11
|
+
uncommittedChanges: number;
|
|
12
|
+
branch: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ToolCall {
|
|
15
|
+
tool: string;
|
|
16
|
+
timestamp: number;
|
|
17
|
+
args?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export interface TrackerState {
|
|
20
|
+
lastUpdated: string;
|
|
21
|
+
recentFiles: FileActivity[];
|
|
22
|
+
recentToolCalls: ToolCall[];
|
|
23
|
+
gitActivity: GitActivity | null;
|
|
24
|
+
completionSignals: {
|
|
25
|
+
testsExist: boolean;
|
|
26
|
+
testsLastRun?: number;
|
|
27
|
+
buildSucceeded?: boolean;
|
|
28
|
+
docsComplete: boolean;
|
|
29
|
+
};
|
|
30
|
+
inferredPhase: Phase;
|
|
31
|
+
confidence: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function loadTracker(projectPath: string): TrackerState;
|
|
34
|
+
export declare function saveTracker(projectPath: string, tracker: TrackerState): void;
|
|
35
|
+
export declare function trackToolCall(projectPath: string, tool: string, args?: Record<string, unknown>): void;
|
|
36
|
+
export declare function scanRecentFiles(projectPath: string, since?: number): FileActivity[];
|
|
37
|
+
export declare function getGitActivity(projectPath: string): GitActivity | null;
|
|
38
|
+
export declare function checkCompletionSignals(projectPath: string): TrackerState['completionSignals'];
|
|
39
|
+
export declare function updateTracker(projectPath: string): TrackerState;
|
|
40
|
+
export declare function getActivitySummary(projectPath: string): string;
|
|
41
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKpE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,aAAa,EAAE,KAAK,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAQ7D;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAI5E;AAkBD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYrG;AAGD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CA8BnF;AAGD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA2BtE;AAGD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAqB7F;AA0BD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAiB/D;AAqDD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA2B9D"}
|
package/dist/tracker.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, statSync, readdirSync } from 'fs';
|
|
2
|
+
import { join, relative } from 'path';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
const MIDAS_DIR = '.midas';
|
|
5
|
+
const TRACKER_FILE = 'tracker.json';
|
|
6
|
+
function getTrackerPath(projectPath) {
|
|
7
|
+
return join(projectPath, MIDAS_DIR, TRACKER_FILE);
|
|
8
|
+
}
|
|
9
|
+
function ensureDir(projectPath) {
|
|
10
|
+
const dir = join(projectPath, MIDAS_DIR);
|
|
11
|
+
if (!existsSync(dir)) {
|
|
12
|
+
mkdirSync(dir, { recursive: true });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function loadTracker(projectPath) {
|
|
16
|
+
const path = getTrackerPath(projectPath);
|
|
17
|
+
if (existsSync(path)) {
|
|
18
|
+
try {
|
|
19
|
+
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
22
|
+
}
|
|
23
|
+
return getDefaultTracker();
|
|
24
|
+
}
|
|
25
|
+
export function saveTracker(projectPath, tracker) {
|
|
26
|
+
ensureDir(projectPath);
|
|
27
|
+
tracker.lastUpdated = new Date().toISOString();
|
|
28
|
+
writeFileSync(getTrackerPath(projectPath), JSON.stringify(tracker, null, 2));
|
|
29
|
+
}
|
|
30
|
+
function getDefaultTracker() {
|
|
31
|
+
return {
|
|
32
|
+
lastUpdated: new Date().toISOString(),
|
|
33
|
+
recentFiles: [],
|
|
34
|
+
recentToolCalls: [],
|
|
35
|
+
gitActivity: null,
|
|
36
|
+
completionSignals: {
|
|
37
|
+
testsExist: false,
|
|
38
|
+
docsComplete: false,
|
|
39
|
+
},
|
|
40
|
+
inferredPhase: { phase: 'IDLE' },
|
|
41
|
+
confidence: 0,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// Track when an MCP tool is called
|
|
45
|
+
export function trackToolCall(projectPath, tool, args) {
|
|
46
|
+
const tracker = loadTracker(projectPath);
|
|
47
|
+
tracker.recentToolCalls = [
|
|
48
|
+
{ tool, timestamp: Date.now(), args },
|
|
49
|
+
...tracker.recentToolCalls.slice(0, 49), // Keep last 50
|
|
50
|
+
];
|
|
51
|
+
// Update phase based on tool calls
|
|
52
|
+
updatePhaseFromToolCalls(tracker);
|
|
53
|
+
saveTracker(projectPath, tracker);
|
|
54
|
+
}
|
|
55
|
+
// Scan for recently modified files
|
|
56
|
+
export function scanRecentFiles(projectPath, since) {
|
|
57
|
+
const cutoff = since || Date.now() - 3600000; // Last hour by default
|
|
58
|
+
const files = [];
|
|
59
|
+
const ignore = ['node_modules', '.git', 'dist', 'build', '.next', '__pycache__', '.midas'];
|
|
60
|
+
function scan(dir, depth = 0) {
|
|
61
|
+
if (depth > 4 || files.length >= 100)
|
|
62
|
+
return;
|
|
63
|
+
try {
|
|
64
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
65
|
+
if (entry.name.startsWith('.') || ignore.includes(entry.name))
|
|
66
|
+
continue;
|
|
67
|
+
const path = join(dir, entry.name);
|
|
68
|
+
if (entry.isDirectory()) {
|
|
69
|
+
scan(path, depth + 1);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
try {
|
|
73
|
+
const stat = statSync(path);
|
|
74
|
+
if (stat.mtimeMs > cutoff) {
|
|
75
|
+
files.push({
|
|
76
|
+
path: relative(projectPath, path),
|
|
77
|
+
lastModified: stat.mtimeMs,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch { }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch { }
|
|
86
|
+
}
|
|
87
|
+
scan(projectPath);
|
|
88
|
+
return files.sort((a, b) => b.lastModified - a.lastModified);
|
|
89
|
+
}
|
|
90
|
+
// Get git activity
|
|
91
|
+
export function getGitActivity(projectPath) {
|
|
92
|
+
if (!existsSync(join(projectPath, '.git')))
|
|
93
|
+
return null;
|
|
94
|
+
try {
|
|
95
|
+
const branch = execSync('git branch --show-current', { cwd: projectPath, encoding: 'utf-8' }).trim();
|
|
96
|
+
let lastCommit;
|
|
97
|
+
let lastCommitMessage;
|
|
98
|
+
let lastCommitTime;
|
|
99
|
+
try {
|
|
100
|
+
lastCommit = execSync('git log -1 --format=%H', { cwd: projectPath, encoding: 'utf-8' }).trim();
|
|
101
|
+
lastCommitMessage = execSync('git log -1 --format=%s', { cwd: projectPath, encoding: 'utf-8' }).trim();
|
|
102
|
+
const timeStr = execSync('git log -1 --format=%ct', { cwd: projectPath, encoding: 'utf-8' }).trim();
|
|
103
|
+
lastCommitTime = parseInt(timeStr) * 1000;
|
|
104
|
+
}
|
|
105
|
+
catch { }
|
|
106
|
+
let uncommittedChanges = 0;
|
|
107
|
+
try {
|
|
108
|
+
const status = execSync('git status --porcelain', { cwd: projectPath, encoding: 'utf-8' });
|
|
109
|
+
uncommittedChanges = status.split('\n').filter(Boolean).length;
|
|
110
|
+
}
|
|
111
|
+
catch { }
|
|
112
|
+
return { branch, lastCommit, lastCommitMessage, lastCommitTime, uncommittedChanges };
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check completion signals
|
|
119
|
+
export function checkCompletionSignals(projectPath) {
|
|
120
|
+
const signals = {
|
|
121
|
+
testsExist: false,
|
|
122
|
+
docsComplete: false,
|
|
123
|
+
};
|
|
124
|
+
// Check for tests
|
|
125
|
+
const testPatterns = ['.test.', '.spec.', '__tests__', 'tests/'];
|
|
126
|
+
const files = scanRecentFiles(projectPath, 0); // All files
|
|
127
|
+
signals.testsExist = files.some(f => testPatterns.some(p => f.path.includes(p)));
|
|
128
|
+
// Check docs
|
|
129
|
+
const docsPath = join(projectPath, 'docs');
|
|
130
|
+
if (existsSync(docsPath)) {
|
|
131
|
+
const brainlift = existsSync(join(docsPath, 'brainlift.md'));
|
|
132
|
+
const prd = existsSync(join(docsPath, 'prd.md'));
|
|
133
|
+
const gameplan = existsSync(join(docsPath, 'gameplan.md'));
|
|
134
|
+
signals.docsComplete = brainlift && prd && gameplan;
|
|
135
|
+
}
|
|
136
|
+
return signals;
|
|
137
|
+
}
|
|
138
|
+
// Infer phase from tool calls
|
|
139
|
+
function updatePhaseFromToolCalls(tracker) {
|
|
140
|
+
const recent = tracker.recentToolCalls.slice(0, 10);
|
|
141
|
+
if (recent.length === 0)
|
|
142
|
+
return;
|
|
143
|
+
const lastTool = recent[0].tool;
|
|
144
|
+
// Tool -> Phase mapping
|
|
145
|
+
const toolPhaseMap = {
|
|
146
|
+
'midas_start_project': { phase: 'EAGLE_SIGHT', step: 'IDEA' },
|
|
147
|
+
'midas_check_docs': { phase: 'EAGLE_SIGHT', step: 'BRAINLIFT' },
|
|
148
|
+
'midas_tornado': { phase: 'BUILD', step: 'DEBUG' },
|
|
149
|
+
'midas_oneshot': { phase: 'BUILD', step: 'DEBUG' },
|
|
150
|
+
'midas_horizon': { phase: 'BUILD', step: 'IMPLEMENT' },
|
|
151
|
+
'midas_audit': { phase: 'SHIP', step: 'REVIEW' },
|
|
152
|
+
};
|
|
153
|
+
if (toolPhaseMap[lastTool]) {
|
|
154
|
+
tracker.inferredPhase = toolPhaseMap[lastTool];
|
|
155
|
+
tracker.confidence = 80;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Full tracker update - call this periodically or on-demand
|
|
159
|
+
export function updateTracker(projectPath) {
|
|
160
|
+
const tracker = loadTracker(projectPath);
|
|
161
|
+
// Update file activity
|
|
162
|
+
tracker.recentFiles = scanRecentFiles(projectPath);
|
|
163
|
+
// Update git activity
|
|
164
|
+
tracker.gitActivity = getGitActivity(projectPath);
|
|
165
|
+
// Update completion signals
|
|
166
|
+
tracker.completionSignals = checkCompletionSignals(projectPath);
|
|
167
|
+
// Infer phase from signals
|
|
168
|
+
inferPhaseFromSignals(tracker);
|
|
169
|
+
saveTracker(projectPath, tracker);
|
|
170
|
+
return tracker;
|
|
171
|
+
}
|
|
172
|
+
// Use multiple signals to infer phase
|
|
173
|
+
function inferPhaseFromSignals(tracker) {
|
|
174
|
+
const signals = tracker.completionSignals;
|
|
175
|
+
const git = tracker.gitActivity;
|
|
176
|
+
const recentTools = tracker.recentToolCalls.slice(0, 5).map(t => t.tool);
|
|
177
|
+
// If docs don't exist yet, we're in EAGLE_SIGHT
|
|
178
|
+
if (!signals.docsComplete) {
|
|
179
|
+
if (!existsSync(join(process.cwd(), 'docs'))) {
|
|
180
|
+
tracker.inferredPhase = { phase: 'IDLE' };
|
|
181
|
+
tracker.confidence = 90;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
tracker.inferredPhase = { phase: 'EAGLE_SIGHT', step: 'BRAINLIFT' };
|
|
185
|
+
tracker.confidence = 70;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// If we have uncommitted changes and recent file edits, we're building
|
|
189
|
+
if (git && git.uncommittedChanges > 0 && tracker.recentFiles.length > 0) {
|
|
190
|
+
// Check what type of files changed
|
|
191
|
+
const recentPaths = tracker.recentFiles.map(f => f.path);
|
|
192
|
+
const hasTestChanges = recentPaths.some(p => p.includes('.test.') || p.includes('.spec.'));
|
|
193
|
+
const hasSrcChanges = recentPaths.some(p => p.includes('src/') || p.includes('lib/'));
|
|
194
|
+
if (hasTestChanges) {
|
|
195
|
+
tracker.inferredPhase = { phase: 'BUILD', step: 'TEST' };
|
|
196
|
+
}
|
|
197
|
+
else if (hasSrcChanges) {
|
|
198
|
+
tracker.inferredPhase = { phase: 'BUILD', step: 'IMPLEMENT' };
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
tracker.inferredPhase = { phase: 'BUILD', step: 'READ' };
|
|
202
|
+
}
|
|
203
|
+
tracker.confidence = 60;
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
// If audit was recently called, we're shipping
|
|
207
|
+
if (recentTools.includes('midas_audit')) {
|
|
208
|
+
tracker.inferredPhase = { phase: 'SHIP', step: 'REVIEW' };
|
|
209
|
+
tracker.confidence = 75;
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
// Default to BUILD:IMPLEMENT if we have code
|
|
213
|
+
if (tracker.recentFiles.length > 0) {
|
|
214
|
+
tracker.inferredPhase = { phase: 'BUILD', step: 'IMPLEMENT' };
|
|
215
|
+
tracker.confidence = 40;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Get a summary of current activity for display
|
|
219
|
+
export function getActivitySummary(projectPath) {
|
|
220
|
+
const tracker = updateTracker(projectPath);
|
|
221
|
+
const lines = [];
|
|
222
|
+
// Recent files
|
|
223
|
+
if (tracker.recentFiles.length > 0) {
|
|
224
|
+
const topFiles = tracker.recentFiles.slice(0, 3);
|
|
225
|
+
lines.push(`Files: ${topFiles.map(f => f.path.split('/').pop()).join(', ')}`);
|
|
226
|
+
}
|
|
227
|
+
// Git status
|
|
228
|
+
if (tracker.gitActivity) {
|
|
229
|
+
if (tracker.gitActivity.uncommittedChanges > 0) {
|
|
230
|
+
lines.push(`${tracker.gitActivity.uncommittedChanges} uncommitted changes`);
|
|
231
|
+
}
|
|
232
|
+
if (tracker.gitActivity.lastCommitMessage) {
|
|
233
|
+
lines.push(`Last: "${tracker.gitActivity.lastCommitMessage.slice(0, 30)}..."`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// Recent tools
|
|
237
|
+
if (tracker.recentToolCalls.length > 0) {
|
|
238
|
+
const lastTool = tracker.recentToolCalls[0].tool.replace('midas_', '');
|
|
239
|
+
lines.push(`Tool: ${lastTool}`);
|
|
240
|
+
}
|
|
241
|
+
return lines.join(' | ') || 'No recent activity';
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAuNA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA8GpD"}
|
package/dist/tui.js
CHANGED
|
@@ -2,8 +2,8 @@ import { exec } from 'child_process';
|
|
|
2
2
|
import { loadState, saveState, PHASE_INFO } from './state/phase.js';
|
|
3
3
|
import { hasApiKey, ensureApiKey } from './config.js';
|
|
4
4
|
import { logEvent } from './events.js';
|
|
5
|
-
import { isCursorAvailable, watchConversations, getConversationSummary, extractMidasToolCalls, } from './cursor.js';
|
|
6
5
|
import { analyzeProject } from './analyzer.js';
|
|
6
|
+
import { getActivitySummary, loadTracker } from './tracker.js';
|
|
7
7
|
// ANSI codes
|
|
8
8
|
const ESC = '\x1b';
|
|
9
9
|
const reset = `${ESC}[0m`;
|
|
@@ -90,7 +90,7 @@ function drawUI(state, _projectPath) {
|
|
|
90
90
|
const lines = [];
|
|
91
91
|
// Header
|
|
92
92
|
lines.push(`${cyan}╔${hLine}╗${reset}`);
|
|
93
|
-
lines.push(row(`${bold}${white}MIDAS${reset} ${dim}- Golden Code Coach${reset} ${state.
|
|
93
|
+
lines.push(row(`${bold}${white}MIDAS${reset} ${dim}- Golden Code Coach${reset} ${state.hasApiKey ? `${green}●${reset} AI` : `${dim}○${reset} --`}`, I));
|
|
94
94
|
lines.push(`${cyan}╠${hLine}╣${reset}`);
|
|
95
95
|
if (state.isAnalyzing) {
|
|
96
96
|
lines.push(emptyRow());
|
|
@@ -196,8 +196,7 @@ export async function runInteractive() {
|
|
|
196
196
|
const tuiState = {
|
|
197
197
|
analysis: null,
|
|
198
198
|
isAnalyzing: false,
|
|
199
|
-
|
|
200
|
-
lastChatSummary: '',
|
|
199
|
+
activitySummary: getActivitySummary(projectPath),
|
|
201
200
|
recentToolCalls: [],
|
|
202
201
|
message: '',
|
|
203
202
|
hasApiKey: hasApiKey(),
|
|
@@ -243,20 +242,21 @@ export async function runInteractive() {
|
|
|
243
242
|
if (tuiState.hasApiKey) {
|
|
244
243
|
await runAnalysis();
|
|
245
244
|
}
|
|
246
|
-
// Watch
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
tuiState.
|
|
251
|
-
|
|
245
|
+
// Watch for activity updates (poll tracker every 5s)
|
|
246
|
+
const activityInterval = setInterval(() => {
|
|
247
|
+
const newSummary = getActivitySummary(projectPath);
|
|
248
|
+
if (newSummary !== tuiState.activitySummary) {
|
|
249
|
+
tuiState.activitySummary = newSummary;
|
|
250
|
+
const tracker = loadTracker(projectPath);
|
|
251
|
+
tuiState.recentToolCalls = tracker.recentToolCalls.slice(0, 5).map(t => t.tool);
|
|
252
252
|
render();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
253
|
+
}
|
|
254
|
+
}, 5000);
|
|
255
255
|
process.stdin.on('data', async (key) => {
|
|
256
256
|
if (key === 'q' || key === '\u0003') {
|
|
257
257
|
console.log(clearScreen);
|
|
258
258
|
console.log(`\n ${cyan}Midas${reset} signing off. Happy vibecoding!\n`);
|
|
259
|
-
|
|
259
|
+
clearInterval(activityInterval);
|
|
260
260
|
process.exit(0);
|
|
261
261
|
}
|
|
262
262
|
if (key === 'c') {
|
package/dist/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Recommended .cursorrules for Midas Users
|
|
2
|
+
|
|
3
|
+
Add this to your project's `.cursorrules` file to get the most out of Midas:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
# Golden Code Methodology
|
|
7
|
+
|
|
8
|
+
This project follows the Golden Code methodology. Use the Midas MCP tools to guide development.
|
|
9
|
+
|
|
10
|
+
## Workflow Rules
|
|
11
|
+
|
|
12
|
+
1. **Before any code changes**: Call `midas_analyze` to understand current phase and get guidance
|
|
13
|
+
2. **After important discussions**: Call `midas_journal_save` to preserve context for future sessions
|
|
14
|
+
3. **When stuck**: Call `midas_tornado` to get unstuck with the Research + Logs + Tests cycle
|
|
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
|
|
17
|
+
|
|
18
|
+
## The 4 Phases
|
|
19
|
+
|
|
20
|
+
### EAGLE_SIGHT (Planning)
|
|
21
|
+
- Start here for new features
|
|
22
|
+
- Complete brainlift.md, prd.md, and gameplan.md before coding
|
|
23
|
+
- Never skip planning - it prevents costly rewrites
|
|
24
|
+
|
|
25
|
+
### BUILD (7-Step Cycle)
|
|
26
|
+
1. RULES - Read .cursorrules and project constraints
|
|
27
|
+
2. INDEX - Understand codebase structure
|
|
28
|
+
3. READ - Read specific implementation files
|
|
29
|
+
4. RESEARCH - Look up docs, APIs, best practices
|
|
30
|
+
5. IMPLEMENT - Write code with tests
|
|
31
|
+
6. TEST - Run tests, fix failures
|
|
32
|
+
7. DEBUG - Use Tornado cycle if stuck
|
|
33
|
+
|
|
34
|
+
### SHIP (Deployment)
|
|
35
|
+
- Code review, security audit
|
|
36
|
+
- CI/CD and production deploy
|
|
37
|
+
- Monitoring and health checks
|
|
38
|
+
|
|
39
|
+
### GROW (Iteration)
|
|
40
|
+
- Collect feedback
|
|
41
|
+
- Analyze metrics
|
|
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:
|
|
47
|
+
|
|
48
|
+
"Save this conversation to the Midas journal with title 'Implemented user authentication'"
|
|
49
|
+
|
|
50
|
+
This preserves context for future sessions and helps track project history.
|
|
51
|
+
|
|
52
|
+
## Key Principles
|
|
53
|
+
|
|
54
|
+
1. **Oneshot Paradigm**: One clear task per prompt
|
|
55
|
+
2. **Tornado Building**: When stuck: Research → Logs → Tests
|
|
56
|
+
3. **Horizon Thinking**: Expand context when output doesn't fit
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
1. Create a `.cursorrules` file in your project root
|
|
62
|
+
2. Paste the content above
|
|
63
|
+
3. Cursor will now follow Golden Code methodology and use Midas tools
|
|
64
|
+
|
|
65
|
+
## Why This Matters
|
|
66
|
+
|
|
67
|
+
- **Midas tools only work when called** - these rules tell Cursor WHEN to call them
|
|
68
|
+
- **Journal entries persist context** - unlike chat history which is ephemeral
|
|
69
|
+
- **Phase tracking helps stay focused** - prevents scope creep and random tangents
|