midas-mcp 5.44.0 → 5.44.4
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/auth.d.ts +11 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +49 -0
- package/dist/auth.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloud.d.ts +40 -0
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +199 -35
- package/dist/cloud.js.map +1 -1
- package/dist/pilot.d.ts +80 -0
- package/dist/pilot.d.ts.map +1 -0
- package/dist/pilot.js +543 -0
- package/dist/pilot.js.map +1 -0
- package/package.json +3 -1
package/dist/cloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../src/cloud.ts"],"names":[],"mappings":"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"}
|
package/dist/pilot.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Midas Pilot
|
|
3
|
+
*
|
|
4
|
+
* Local background runner that:
|
|
5
|
+
* 1. Polls the cloud for pending commands
|
|
6
|
+
* 2. Executes Claude Code via CLI
|
|
7
|
+
* 3. Streams output back to cloud
|
|
8
|
+
* 4. Updates task status on completion
|
|
9
|
+
*
|
|
10
|
+
* Usage: midas pilot [--watch] [--remote] [--project <path>]
|
|
11
|
+
*/
|
|
12
|
+
export interface PilotCommand {
|
|
13
|
+
id: string;
|
|
14
|
+
project_id: string;
|
|
15
|
+
command_type: 'prompt' | 'task' | 'auto_advance';
|
|
16
|
+
prompt: string;
|
|
17
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
18
|
+
created_at: string;
|
|
19
|
+
started_at?: string;
|
|
20
|
+
completed_at?: string;
|
|
21
|
+
output?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface PilotConfig {
|
|
25
|
+
projectPath: string;
|
|
26
|
+
autoMode: boolean;
|
|
27
|
+
maxTurns: number;
|
|
28
|
+
allowedTools: string[];
|
|
29
|
+
pollInterval: number;
|
|
30
|
+
outputFormat: 'text' | 'json' | 'stream-json';
|
|
31
|
+
}
|
|
32
|
+
export interface ExecutionResult {
|
|
33
|
+
success: boolean;
|
|
34
|
+
output: string;
|
|
35
|
+
exitCode: number;
|
|
36
|
+
duration: number;
|
|
37
|
+
sessionId?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Execute a prompt via Claude Code CLI
|
|
41
|
+
*/
|
|
42
|
+
export declare function executeClaudeCode(prompt: string, config?: Partial<PilotConfig>): Promise<ExecutionResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Execute a gameplan task with context
|
|
45
|
+
*/
|
|
46
|
+
export declare function executeTask(task: string, projectName: string, phase: string, step: string, config?: Partial<PilotConfig>): Promise<ExecutionResult>;
|
|
47
|
+
export interface PilotStatus {
|
|
48
|
+
running: boolean;
|
|
49
|
+
currentCommand?: PilotCommand;
|
|
50
|
+
lastExecution?: ExecutionResult;
|
|
51
|
+
executedCount: number;
|
|
52
|
+
failedCount: number;
|
|
53
|
+
startedAt?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Start the Midas Pilot
|
|
57
|
+
* Currently runs a single command for prototyping
|
|
58
|
+
*/
|
|
59
|
+
export declare function runPilot(prompt: string, config?: Partial<PilotConfig>): Promise<ExecutionResult>;
|
|
60
|
+
/**
|
|
61
|
+
* Run a gameplan task via Pilot
|
|
62
|
+
*/
|
|
63
|
+
export declare function runTaskPilot(task: string, projectPath: string): Promise<ExecutionResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Get current pilot status
|
|
66
|
+
*/
|
|
67
|
+
export declare function getPilotStatus(): PilotStatus;
|
|
68
|
+
/**
|
|
69
|
+
* Run Pilot in watch mode - polls cloud for commands
|
|
70
|
+
*/
|
|
71
|
+
export declare function runWatchMode(pollInterval?: number): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Run Pilot in remote mode - shows QR code for phone control
|
|
74
|
+
*/
|
|
75
|
+
export declare function runRemoteMode(pollInterval?: number): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* CLI handler for: midas pilot "prompt"
|
|
78
|
+
*/
|
|
79
|
+
export declare function runPilotCLI(args: string[]): Promise<void>;
|
|
80
|
+
//# sourceMappingURL=pilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot.d.ts","sourceRoot":"","sources":["../src/pilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqBH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,eAAe,CAAC,CA4E1B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,eAAe,CAAC,CAU1B;AAMD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAW1B;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAYD;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDrE;AA0JD;;GAEG;AACH,wBAAsB,aAAa,CAAC,YAAY,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmHtE;AA0CD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD/D"}
|
package/dist/pilot.js
ADDED
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Midas Pilot
|
|
3
|
+
*
|
|
4
|
+
* Local background runner that:
|
|
5
|
+
* 1. Polls the cloud for pending commands
|
|
6
|
+
* 2. Executes Claude Code via CLI
|
|
7
|
+
* 3. Streams output back to cloud
|
|
8
|
+
* 4. Updates task status on completion
|
|
9
|
+
*
|
|
10
|
+
* Usage: midas pilot [--watch] [--remote] [--project <path>]
|
|
11
|
+
*/
|
|
12
|
+
import { spawn } from 'child_process';
|
|
13
|
+
import { randomBytes } from 'crypto';
|
|
14
|
+
import { isAuthenticated, getAuthenticatedUser, loadAuth } from './auth.js';
|
|
15
|
+
import { sanitizePath } from './security.js';
|
|
16
|
+
import { fetchPendingCommands, markCommandRunning, markCommandCompleted, getProjectById } from './cloud.js';
|
|
17
|
+
// QR code library (dynamic import for ESM compatibility)
|
|
18
|
+
let qrcode = null;
|
|
19
|
+
// Default configuration
|
|
20
|
+
const DEFAULT_CONFIG = {
|
|
21
|
+
projectPath: process.cwd(),
|
|
22
|
+
autoMode: false,
|
|
23
|
+
maxTurns: 10,
|
|
24
|
+
allowedTools: ['Read', 'Edit', 'Bash', 'Grep', 'Glob'],
|
|
25
|
+
pollInterval: 5000,
|
|
26
|
+
outputFormat: 'json',
|
|
27
|
+
};
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// CLAUDE CODE EXECUTION
|
|
30
|
+
// ============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Execute a prompt via Claude Code CLI
|
|
33
|
+
*/
|
|
34
|
+
export async function executeClaudeCode(prompt, config = {}) {
|
|
35
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
36
|
+
const startTime = Date.now();
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
const args = [
|
|
39
|
+
'-p', prompt,
|
|
40
|
+
'--output-format', cfg.outputFormat,
|
|
41
|
+
'--max-turns', String(cfg.maxTurns),
|
|
42
|
+
];
|
|
43
|
+
// Add allowed tools
|
|
44
|
+
if (cfg.allowedTools.length > 0) {
|
|
45
|
+
args.push('--allowedTools', cfg.allowedTools.join(','));
|
|
46
|
+
}
|
|
47
|
+
// Add Midas context to system prompt
|
|
48
|
+
args.push('--append-system-prompt', `You are being executed by Midas Pilot automation.
|
|
49
|
+
Complete the task efficiently and report results clearly.
|
|
50
|
+
If you encounter errors, provide actionable diagnostics.
|
|
51
|
+
When done, summarize what was accomplished.`);
|
|
52
|
+
let output = '';
|
|
53
|
+
let stderr = '';
|
|
54
|
+
const proc = spawn('claude', args, {
|
|
55
|
+
cwd: cfg.projectPath,
|
|
56
|
+
env: process.env,
|
|
57
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
58
|
+
});
|
|
59
|
+
proc.stdout.on('data', (data) => {
|
|
60
|
+
output += data.toString();
|
|
61
|
+
});
|
|
62
|
+
proc.stderr.on('data', (data) => {
|
|
63
|
+
stderr += data.toString();
|
|
64
|
+
});
|
|
65
|
+
proc.on('error', (err) => {
|
|
66
|
+
resolve({
|
|
67
|
+
success: false,
|
|
68
|
+
output: `Failed to spawn claude: ${err.message}`,
|
|
69
|
+
exitCode: -1,
|
|
70
|
+
duration: Date.now() - startTime,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
proc.on('close', (code) => {
|
|
74
|
+
const duration = Date.now() - startTime;
|
|
75
|
+
const exitCode = code ?? 0;
|
|
76
|
+
// Try to parse JSON output for session ID
|
|
77
|
+
let sessionId;
|
|
78
|
+
if (cfg.outputFormat === 'json') {
|
|
79
|
+
try {
|
|
80
|
+
const parsed = JSON.parse(output);
|
|
81
|
+
sessionId = parsed.session_id;
|
|
82
|
+
output = parsed.result || output;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Not JSON, use raw output
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
resolve({
|
|
89
|
+
success: exitCode === 0,
|
|
90
|
+
output: output || stderr,
|
|
91
|
+
exitCode,
|
|
92
|
+
duration,
|
|
93
|
+
sessionId,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Execute a gameplan task with context
|
|
100
|
+
*/
|
|
101
|
+
export async function executeTask(task, projectName, phase, step, config = {}) {
|
|
102
|
+
const prompt = `I'm working on ${projectName}, currently in ${phase} phase (${step} step).
|
|
103
|
+
|
|
104
|
+
My next task from the gameplan is:
|
|
105
|
+
${task}
|
|
106
|
+
|
|
107
|
+
Please implement this task. Start by analyzing what's needed, then proceed with the implementation.
|
|
108
|
+
When complete, summarize what was done.`;
|
|
109
|
+
return executeClaudeCode(prompt, config);
|
|
110
|
+
}
|
|
111
|
+
let pilotStatus = {
|
|
112
|
+
running: false,
|
|
113
|
+
executedCount: 0,
|
|
114
|
+
failedCount: 0,
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Start the Midas Pilot
|
|
118
|
+
* Currently runs a single command for prototyping
|
|
119
|
+
*/
|
|
120
|
+
export async function runPilot(prompt, config = {}) {
|
|
121
|
+
if (!isAuthenticated()) {
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
output: 'Not authenticated. Run: midas login',
|
|
125
|
+
exitCode: 1,
|
|
126
|
+
duration: 0,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
130
|
+
console.log('\n ╔══════════════════════════════════════╗');
|
|
131
|
+
console.log(' ║ MIDAS PILOT ENGAGED ║');
|
|
132
|
+
console.log(' ╚══════════════════════════════════════╝\n');
|
|
133
|
+
console.log(` Project: ${cfg.projectPath}`);
|
|
134
|
+
console.log(` Max turns: ${cfg.maxTurns}`);
|
|
135
|
+
console.log(` Tools: ${cfg.allowedTools.join(', ')}\n`);
|
|
136
|
+
console.log(' Executing prompt...\n');
|
|
137
|
+
pilotStatus.running = true;
|
|
138
|
+
pilotStatus.startedAt = new Date().toISOString();
|
|
139
|
+
const result = await executeClaudeCode(prompt, cfg);
|
|
140
|
+
pilotStatus.running = false;
|
|
141
|
+
pilotStatus.lastExecution = result;
|
|
142
|
+
if (result.success) {
|
|
143
|
+
pilotStatus.executedCount++;
|
|
144
|
+
console.log(' ✓ Execution complete\n');
|
|
145
|
+
console.log(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
146
|
+
if (result.sessionId) {
|
|
147
|
+
console.log(` Session: ${result.sessionId}`);
|
|
148
|
+
}
|
|
149
|
+
console.log('\n --- Output ---\n');
|
|
150
|
+
console.log(result.output);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
pilotStatus.failedCount++;
|
|
154
|
+
console.log(' ✗ Execution failed\n');
|
|
155
|
+
console.log(` Exit code: ${result.exitCode}`);
|
|
156
|
+
console.log(` Error: ${result.output}\n`);
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Run a gameplan task via Pilot
|
|
162
|
+
*/
|
|
163
|
+
export async function runTaskPilot(task, projectPath) {
|
|
164
|
+
const projectName = projectPath.split('/').pop() || 'project';
|
|
165
|
+
// TODO: Get actual phase/step from state
|
|
166
|
+
const phase = 'BUILD';
|
|
167
|
+
const step = 'IMPLEMENT';
|
|
168
|
+
return runPilot(`Task from gameplan: ${task}`, { projectPath });
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get current pilot status
|
|
172
|
+
*/
|
|
173
|
+
export function getPilotStatus() {
|
|
174
|
+
return { ...pilotStatus };
|
|
175
|
+
}
|
|
176
|
+
// ============================================================================
|
|
177
|
+
// CLI COMMAND
|
|
178
|
+
// ============================================================================
|
|
179
|
+
// ============================================================================
|
|
180
|
+
// WATCH MODE (polls cloud for pending commands)
|
|
181
|
+
// ============================================================================
|
|
182
|
+
let watchRunning = false;
|
|
183
|
+
/**
|
|
184
|
+
* Run Pilot in watch mode - polls cloud for commands
|
|
185
|
+
*/
|
|
186
|
+
export async function runWatchMode(pollInterval = 5000) {
|
|
187
|
+
if (!isAuthenticated()) {
|
|
188
|
+
console.log('\n ✗ Not authenticated. Run: midas login\n');
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
// Check for Claude Code
|
|
192
|
+
const checkClaude = spawn('which', ['claude']);
|
|
193
|
+
const hasClaudeCode = await new Promise((resolve) => {
|
|
194
|
+
checkClaude.on('close', (code) => resolve(code === 0));
|
|
195
|
+
});
|
|
196
|
+
if (!hasClaudeCode) {
|
|
197
|
+
console.log('\n ✗ Claude Code CLI not found');
|
|
198
|
+
console.log(' Install from: https://claude.ai/code\n');
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
console.log('\n ╔══════════════════════════════════════╗');
|
|
202
|
+
console.log(' ║ MIDAS PILOT - WATCH MODE ║');
|
|
203
|
+
console.log(' ╚══════════════════════════════════════╝\n');
|
|
204
|
+
console.log(' Watching for commands from dashboard...');
|
|
205
|
+
console.log(' Press Ctrl+C to stop\n');
|
|
206
|
+
watchRunning = true;
|
|
207
|
+
// Handle graceful shutdown
|
|
208
|
+
process.on('SIGINT', () => {
|
|
209
|
+
console.log('\n\n Pilot stopped.\n');
|
|
210
|
+
watchRunning = false;
|
|
211
|
+
process.exit(0);
|
|
212
|
+
});
|
|
213
|
+
while (watchRunning) {
|
|
214
|
+
try {
|
|
215
|
+
const commands = await fetchPendingCommands();
|
|
216
|
+
if (commands.length > 0) {
|
|
217
|
+
const command = commands[0]; // Process one at a time
|
|
218
|
+
console.log(`\n ▸ Received command #${command.id}`);
|
|
219
|
+
console.log(` Type: ${command.command_type}`);
|
|
220
|
+
console.log(` Prompt: ${command.prompt.slice(0, 60)}...`);
|
|
221
|
+
await executeCommand(command);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
// Network error, wait and retry
|
|
226
|
+
console.log(` ⚠ Poll error: ${err instanceof Error ? err.message : 'unknown'}`);
|
|
227
|
+
}
|
|
228
|
+
// Wait before next poll
|
|
229
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Execute a pending command from the cloud
|
|
234
|
+
*/
|
|
235
|
+
async function executeCommand(command) {
|
|
236
|
+
// Get project details
|
|
237
|
+
const project = await getProjectById(command.project_id);
|
|
238
|
+
if (!project) {
|
|
239
|
+
console.log(` ✗ Project not found: ${command.project_id}`);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
console.log(` Project: ${project.name}`);
|
|
243
|
+
console.log(` Path: ${project.local_path}\n`);
|
|
244
|
+
// Mark as running
|
|
245
|
+
await markCommandRunning(command.id);
|
|
246
|
+
// Execute
|
|
247
|
+
const result = await executeClaudeCode(command.prompt, {
|
|
248
|
+
projectPath: project.local_path,
|
|
249
|
+
maxTurns: command.max_turns,
|
|
250
|
+
});
|
|
251
|
+
// Update status
|
|
252
|
+
await markCommandCompleted(command.id, {
|
|
253
|
+
success: result.success,
|
|
254
|
+
output: result.output,
|
|
255
|
+
exitCode: result.exitCode,
|
|
256
|
+
durationMs: result.duration,
|
|
257
|
+
sessionId: result.sessionId,
|
|
258
|
+
});
|
|
259
|
+
if (result.success) {
|
|
260
|
+
console.log(` ✓ Command #${command.id} completed`);
|
|
261
|
+
console.log(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
console.log(` ✗ Command #${command.id} failed`);
|
|
265
|
+
console.log(` Exit code: ${result.exitCode}`);
|
|
266
|
+
}
|
|
267
|
+
console.log('\n Waiting for next command...');
|
|
268
|
+
}
|
|
269
|
+
// ============================================================================
|
|
270
|
+
// REMOTE MODE (QR code for phone control)
|
|
271
|
+
// ============================================================================
|
|
272
|
+
const DASHBOARD_URL = process.env.MIDAS_DASHBOARD_URL || 'https://dashboard.midasmcp.com';
|
|
273
|
+
/**
|
|
274
|
+
* Generate a new remote session
|
|
275
|
+
*/
|
|
276
|
+
function generateRemoteSession() {
|
|
277
|
+
const sessionId = randomBytes(8).toString('hex');
|
|
278
|
+
const sessionToken = randomBytes(16).toString('hex');
|
|
279
|
+
const expiresAt = new Date(Date.now() + 60 * 60 * 1000); // 1 hour
|
|
280
|
+
return { sessionId, sessionToken, expiresAt };
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Register session with the cloud
|
|
284
|
+
*/
|
|
285
|
+
async function registerRemoteSession(session) {
|
|
286
|
+
const auth = loadAuth();
|
|
287
|
+
if (!auth.githubUserId || !auth.githubAccessToken) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
const response = await fetch(`${DASHBOARD_URL}/api/pilot-session`, {
|
|
292
|
+
method: 'POST',
|
|
293
|
+
headers: {
|
|
294
|
+
'Content-Type': 'application/json',
|
|
295
|
+
},
|
|
296
|
+
body: JSON.stringify({
|
|
297
|
+
session_id: session.sessionId,
|
|
298
|
+
session_token: session.sessionToken,
|
|
299
|
+
github_user_id: auth.githubUserId,
|
|
300
|
+
github_access_token: auth.githubAccessToken,
|
|
301
|
+
expires_at: session.expiresAt.toISOString(),
|
|
302
|
+
}),
|
|
303
|
+
});
|
|
304
|
+
return response.ok;
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Update session status in cloud
|
|
312
|
+
*/
|
|
313
|
+
async function updateRemoteSession(sessionId, updates) {
|
|
314
|
+
const auth = loadAuth();
|
|
315
|
+
if (!auth.githubAccessToken)
|
|
316
|
+
return;
|
|
317
|
+
try {
|
|
318
|
+
await fetch(`${DASHBOARD_URL}/api/pilot-session/${sessionId}`, {
|
|
319
|
+
method: 'PATCH',
|
|
320
|
+
headers: {
|
|
321
|
+
'Content-Type': 'application/json',
|
|
322
|
+
'Authorization': `Bearer ${auth.githubAccessToken}`,
|
|
323
|
+
},
|
|
324
|
+
body: JSON.stringify(updates),
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
// Ignore update errors
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Display QR code for remote connection
|
|
333
|
+
*/
|
|
334
|
+
async function displayQRCode(url) {
|
|
335
|
+
// Load qrcode-terminal dynamically
|
|
336
|
+
if (!qrcode) {
|
|
337
|
+
try {
|
|
338
|
+
qrcode = await import('qrcode-terminal');
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
console.log(`\n QR code library not available.`);
|
|
342
|
+
console.log(` Open this URL on your phone:\n`);
|
|
343
|
+
console.log(` ${url}\n`);
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return new Promise((resolve) => {
|
|
348
|
+
qrcode.generate(url, { small: true }, (qr) => {
|
|
349
|
+
const indented = qr.split('\n').map(line => ' ' + line).join('\n');
|
|
350
|
+
console.log(indented);
|
|
351
|
+
console.log(`\n ${url}\n`);
|
|
352
|
+
resolve();
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Run Pilot in remote mode - shows QR code for phone control
|
|
358
|
+
*/
|
|
359
|
+
export async function runRemoteMode(pollInterval = 3000) {
|
|
360
|
+
if (!isAuthenticated()) {
|
|
361
|
+
console.log('\n ✗ Not authenticated. Run: midas login\n');
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const user = getAuthenticatedUser();
|
|
365
|
+
if (!user) {
|
|
366
|
+
console.log('\n ✗ User info not available\n');
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
// Check for Claude Code
|
|
370
|
+
const checkClaude = spawn('which', ['claude']);
|
|
371
|
+
const hasClaudeCode = await new Promise((resolve) => {
|
|
372
|
+
checkClaude.on('close', (code) => resolve(code === 0));
|
|
373
|
+
});
|
|
374
|
+
if (!hasClaudeCode) {
|
|
375
|
+
console.log('\n ✗ Claude Code CLI not found');
|
|
376
|
+
console.log(' Install from: https://claude.ai/code\n');
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
// Generate session
|
|
380
|
+
const session = generateRemoteSession();
|
|
381
|
+
const connectionUrl = `${DASHBOARD_URL}/pilot/${session.sessionId}?token=${session.sessionToken}`;
|
|
382
|
+
// Clear screen and show header
|
|
383
|
+
console.clear();
|
|
384
|
+
console.log('\n ╔══════════════════════════════════════╗');
|
|
385
|
+
console.log(' ║ MIDAS PILOT - REMOTE MODE ║');
|
|
386
|
+
console.log(' ╚══════════════════════════════════════╝\n');
|
|
387
|
+
// Register session with cloud
|
|
388
|
+
console.log(' Registering session...');
|
|
389
|
+
const registered = await registerRemoteSession(session);
|
|
390
|
+
if (!registered) {
|
|
391
|
+
console.log('\n ✗ Failed to register session');
|
|
392
|
+
console.log(' Check your internet connection\n');
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
console.log(' ✓ Session registered\n');
|
|
396
|
+
console.log(' Scan this QR code with your phone:\n');
|
|
397
|
+
await displayQRCode(connectionUrl);
|
|
398
|
+
console.log(' Keep this terminal open. Commands will execute here.');
|
|
399
|
+
console.log(' Session expires in 60 minutes.');
|
|
400
|
+
console.log(' Press Ctrl+C to stop.\n');
|
|
401
|
+
console.log(' ─'.repeat(30) + '\n');
|
|
402
|
+
console.log(' Waiting for commands...\n');
|
|
403
|
+
watchRunning = true;
|
|
404
|
+
// Handle graceful shutdown
|
|
405
|
+
process.on('SIGINT', async () => {
|
|
406
|
+
console.log('\n\n Closing session...');
|
|
407
|
+
await updateRemoteSession(session.sessionId, { status: 'disconnected' });
|
|
408
|
+
console.log(' Pilot stopped.\n');
|
|
409
|
+
watchRunning = false;
|
|
410
|
+
process.exit(0);
|
|
411
|
+
});
|
|
412
|
+
// Update status to connected
|
|
413
|
+
await updateRemoteSession(session.sessionId, { status: 'connected' });
|
|
414
|
+
// Heartbeat loop
|
|
415
|
+
let lastHeartbeat = Date.now();
|
|
416
|
+
while (watchRunning) {
|
|
417
|
+
try {
|
|
418
|
+
// Check if session expired
|
|
419
|
+
if (new Date() > session.expiresAt) {
|
|
420
|
+
console.log('\n Session expired. Start a new one with: midas pilot --remote\n');
|
|
421
|
+
break;
|
|
422
|
+
}
|
|
423
|
+
// Send heartbeat every 30 seconds
|
|
424
|
+
if (Date.now() - lastHeartbeat > 30000) {
|
|
425
|
+
await updateRemoteSession(session.sessionId, { status: 'idle' });
|
|
426
|
+
lastHeartbeat = Date.now();
|
|
427
|
+
}
|
|
428
|
+
// Poll for commands
|
|
429
|
+
const commands = await fetchPendingCommands();
|
|
430
|
+
if (commands.length > 0) {
|
|
431
|
+
const command = commands[0];
|
|
432
|
+
console.log(` ▸ Received command #${command.id}`);
|
|
433
|
+
console.log(` ${command.prompt.slice(0, 60)}...`);
|
|
434
|
+
// Update session status
|
|
435
|
+
await updateRemoteSession(session.sessionId, {
|
|
436
|
+
status: 'running',
|
|
437
|
+
current_task: command.prompt.slice(0, 100),
|
|
438
|
+
});
|
|
439
|
+
// Execute command (reusing existing function)
|
|
440
|
+
await executeCommandWithUpdates(command, session.sessionId);
|
|
441
|
+
// Back to idle
|
|
442
|
+
await updateRemoteSession(session.sessionId, {
|
|
443
|
+
status: 'idle',
|
|
444
|
+
current_task: undefined,
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
catch (err) {
|
|
449
|
+
// Network error, continue
|
|
450
|
+
}
|
|
451
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Execute command with real-time session updates
|
|
456
|
+
*/
|
|
457
|
+
async function executeCommandWithUpdates(command, sessionId) {
|
|
458
|
+
const project = await getProjectById(command.project_id);
|
|
459
|
+
if (!project) {
|
|
460
|
+
console.log(` ✗ Project not found: ${command.project_id}`);
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
console.log(` Project: ${project.name}`);
|
|
464
|
+
await markCommandRunning(command.id);
|
|
465
|
+
const result = await executeClaudeCode(command.prompt, {
|
|
466
|
+
projectPath: project.local_path,
|
|
467
|
+
maxTurns: command.max_turns,
|
|
468
|
+
});
|
|
469
|
+
// Update session with output
|
|
470
|
+
await updateRemoteSession(sessionId, {
|
|
471
|
+
last_output: result.output.slice(-5000), // Last 5KB
|
|
472
|
+
output_lines: result.output.split('\n').length,
|
|
473
|
+
});
|
|
474
|
+
await markCommandCompleted(command.id, {
|
|
475
|
+
success: result.success,
|
|
476
|
+
output: result.output,
|
|
477
|
+
exitCode: result.exitCode,
|
|
478
|
+
durationMs: result.duration,
|
|
479
|
+
sessionId: result.sessionId,
|
|
480
|
+
});
|
|
481
|
+
if (result.success) {
|
|
482
|
+
console.log(` ✓ Complete (${(result.duration / 1000).toFixed(1)}s)\n`);
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
console.log(` ✗ Failed (exit ${result.exitCode})\n`);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* CLI handler for: midas pilot "prompt"
|
|
490
|
+
*/
|
|
491
|
+
export async function runPilotCLI(args) {
|
|
492
|
+
// Check for remote mode
|
|
493
|
+
if (args.includes('--remote') || args.includes('-r')) {
|
|
494
|
+
const pollInterval = 3000;
|
|
495
|
+
await runRemoteMode(pollInterval);
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
// Check for watch mode
|
|
499
|
+
if (args.includes('--watch') || args.includes('-w')) {
|
|
500
|
+
const pollInterval = 5000;
|
|
501
|
+
await runWatchMode(pollInterval);
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
// Check for Claude Code
|
|
505
|
+
const checkClaude = spawn('which', ['claude']);
|
|
506
|
+
const hasClaudeCode = await new Promise((resolve) => {
|
|
507
|
+
checkClaude.on('close', (code) => resolve(code === 0));
|
|
508
|
+
});
|
|
509
|
+
if (!hasClaudeCode) {
|
|
510
|
+
console.log('\n ✗ Claude Code CLI not found');
|
|
511
|
+
console.log(' Install from: https://claude.ai/code\n');
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
// Parse arguments
|
|
515
|
+
let prompt = '';
|
|
516
|
+
let projectPath = process.cwd();
|
|
517
|
+
for (let i = 0; i < args.length; i++) {
|
|
518
|
+
if (args[i] === '--project' && args[i + 1]) {
|
|
519
|
+
projectPath = sanitizePath(args[i + 1]);
|
|
520
|
+
i++;
|
|
521
|
+
}
|
|
522
|
+
else if (!args[i].startsWith('--')) {
|
|
523
|
+
prompt = args[i];
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
if (!prompt) {
|
|
527
|
+
console.log('\n Usage: midas pilot "your prompt here"');
|
|
528
|
+
console.log(' midas pilot --watch');
|
|
529
|
+
console.log(' midas pilot --remote');
|
|
530
|
+
console.log('');
|
|
531
|
+
console.log(' Options:');
|
|
532
|
+
console.log(' --project <path> Project directory');
|
|
533
|
+
console.log(' --watch, -w Watch mode - poll cloud for commands');
|
|
534
|
+
console.log(' --remote, -r Remote mode - show QR code for phone control\n');
|
|
535
|
+
console.log(' Examples:');
|
|
536
|
+
console.log(' midas pilot "Fix the failing test in auth.ts"');
|
|
537
|
+
console.log(' midas pilot --watch');
|
|
538
|
+
console.log(' midas pilot --remote\n');
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
await runPilot(prompt, { projectPath });
|
|
542
|
+
}
|
|
543
|
+
//# sourceMappingURL=pilot.js.map
|