midas-mcp 5.43.12 → 5.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/auth.d.ts +59 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +198 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli.d.ts +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +52 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloud.d.ts +85 -0
- package/dist/cloud.d.ts.map +1 -0
- package/dist/cloud.js +472 -0
- package/dist/cloud.js.map +1 -0
- package/dist/docs/index.html +1177 -0
- package/dist/docs/vercel.json +5 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pilot.d.ts +76 -0
- package/dist/pilot.d.ts.map +1 -0
- package/dist/pilot.js +312 -0
- package/dist/pilot.js.map +1 -0
- package/docs/index.html +1177 -0
- package/docs/vercel.json +5 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,6DAA6D;AAC7D,cAAc,EAAE,CAAC;AAEjB,gDAAgD;AAChD,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAAC,MAAM,CAAC;IACP,6CAA6C;AAC/C,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,6DAA6D;AAC7D,cAAc,EAAE,CAAC;AAEjB,gDAAgD;AAChD,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAAC,MAAM,CAAC;IACP,6CAA6C;AAC/C,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,cAAc,EAAE,CAAC;YACvB,MAAM;IACV,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,YAAY,CAAC,KAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/pilot.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
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 [--project <path>] [--auto]
|
|
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
|
+
* CLI handler for: midas pilot "prompt"
|
|
74
|
+
*/
|
|
75
|
+
export declare function runPilotCLI(args: string[]): Promise<void>;
|
|
76
|
+
//# sourceMappingURL=pilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot.d.ts","sourceRoot":"","sources":["../src/pilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,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;AA6CD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C/D"}
|
package/dist/pilot.js
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
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 [--project <path>] [--auto]
|
|
11
|
+
*/
|
|
12
|
+
import { spawn } from 'child_process';
|
|
13
|
+
import { isAuthenticated } from './auth.js';
|
|
14
|
+
import { sanitizePath } from './security.js';
|
|
15
|
+
import { fetchPendingCommands, markCommandRunning, markCommandCompleted, getProjectById } from './cloud.js';
|
|
16
|
+
// Default configuration
|
|
17
|
+
const DEFAULT_CONFIG = {
|
|
18
|
+
projectPath: process.cwd(),
|
|
19
|
+
autoMode: false,
|
|
20
|
+
maxTurns: 10,
|
|
21
|
+
allowedTools: ['Read', 'Edit', 'Bash', 'Grep', 'Glob'],
|
|
22
|
+
pollInterval: 5000,
|
|
23
|
+
outputFormat: 'json',
|
|
24
|
+
};
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// CLAUDE CODE EXECUTION
|
|
27
|
+
// ============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* Execute a prompt via Claude Code CLI
|
|
30
|
+
*/
|
|
31
|
+
export async function executeClaudeCode(prompt, config = {}) {
|
|
32
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
33
|
+
const startTime = Date.now();
|
|
34
|
+
return new Promise((resolve) => {
|
|
35
|
+
const args = [
|
|
36
|
+
'-p', prompt,
|
|
37
|
+
'--output-format', cfg.outputFormat,
|
|
38
|
+
'--max-turns', String(cfg.maxTurns),
|
|
39
|
+
];
|
|
40
|
+
// Add allowed tools
|
|
41
|
+
if (cfg.allowedTools.length > 0) {
|
|
42
|
+
args.push('--allowedTools', cfg.allowedTools.join(','));
|
|
43
|
+
}
|
|
44
|
+
// Add Midas context to system prompt
|
|
45
|
+
args.push('--append-system-prompt', `You are being executed by Midas Pilot automation.
|
|
46
|
+
Complete the task efficiently and report results clearly.
|
|
47
|
+
If you encounter errors, provide actionable diagnostics.
|
|
48
|
+
When done, summarize what was accomplished.`);
|
|
49
|
+
let output = '';
|
|
50
|
+
let stderr = '';
|
|
51
|
+
const proc = spawn('claude', args, {
|
|
52
|
+
cwd: cfg.projectPath,
|
|
53
|
+
env: process.env,
|
|
54
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
55
|
+
});
|
|
56
|
+
proc.stdout.on('data', (data) => {
|
|
57
|
+
output += data.toString();
|
|
58
|
+
});
|
|
59
|
+
proc.stderr.on('data', (data) => {
|
|
60
|
+
stderr += data.toString();
|
|
61
|
+
});
|
|
62
|
+
proc.on('error', (err) => {
|
|
63
|
+
resolve({
|
|
64
|
+
success: false,
|
|
65
|
+
output: `Failed to spawn claude: ${err.message}`,
|
|
66
|
+
exitCode: -1,
|
|
67
|
+
duration: Date.now() - startTime,
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
proc.on('close', (code) => {
|
|
71
|
+
const duration = Date.now() - startTime;
|
|
72
|
+
const exitCode = code ?? 0;
|
|
73
|
+
// Try to parse JSON output for session ID
|
|
74
|
+
let sessionId;
|
|
75
|
+
if (cfg.outputFormat === 'json') {
|
|
76
|
+
try {
|
|
77
|
+
const parsed = JSON.parse(output);
|
|
78
|
+
sessionId = parsed.session_id;
|
|
79
|
+
output = parsed.result || output;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Not JSON, use raw output
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
resolve({
|
|
86
|
+
success: exitCode === 0,
|
|
87
|
+
output: output || stderr,
|
|
88
|
+
exitCode,
|
|
89
|
+
duration,
|
|
90
|
+
sessionId,
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Execute a gameplan task with context
|
|
97
|
+
*/
|
|
98
|
+
export async function executeTask(task, projectName, phase, step, config = {}) {
|
|
99
|
+
const prompt = `I'm working on ${projectName}, currently in ${phase} phase (${step} step).
|
|
100
|
+
|
|
101
|
+
My next task from the gameplan is:
|
|
102
|
+
${task}
|
|
103
|
+
|
|
104
|
+
Please implement this task. Start by analyzing what's needed, then proceed with the implementation.
|
|
105
|
+
When complete, summarize what was done.`;
|
|
106
|
+
return executeClaudeCode(prompt, config);
|
|
107
|
+
}
|
|
108
|
+
let pilotStatus = {
|
|
109
|
+
running: false,
|
|
110
|
+
executedCount: 0,
|
|
111
|
+
failedCount: 0,
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Start the Midas Pilot
|
|
115
|
+
* Currently runs a single command for prototyping
|
|
116
|
+
*/
|
|
117
|
+
export async function runPilot(prompt, config = {}) {
|
|
118
|
+
if (!isAuthenticated()) {
|
|
119
|
+
return {
|
|
120
|
+
success: false,
|
|
121
|
+
output: 'Not authenticated. Run: midas login',
|
|
122
|
+
exitCode: 1,
|
|
123
|
+
duration: 0,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const cfg = { ...DEFAULT_CONFIG, ...config };
|
|
127
|
+
console.log('\n ╔══════════════════════════════════════╗');
|
|
128
|
+
console.log(' ║ MIDAS PILOT ENGAGED ║');
|
|
129
|
+
console.log(' ╚══════════════════════════════════════╝\n');
|
|
130
|
+
console.log(` Project: ${cfg.projectPath}`);
|
|
131
|
+
console.log(` Max turns: ${cfg.maxTurns}`);
|
|
132
|
+
console.log(` Tools: ${cfg.allowedTools.join(', ')}\n`);
|
|
133
|
+
console.log(' Executing prompt...\n');
|
|
134
|
+
pilotStatus.running = true;
|
|
135
|
+
pilotStatus.startedAt = new Date().toISOString();
|
|
136
|
+
const result = await executeClaudeCode(prompt, cfg);
|
|
137
|
+
pilotStatus.running = false;
|
|
138
|
+
pilotStatus.lastExecution = result;
|
|
139
|
+
if (result.success) {
|
|
140
|
+
pilotStatus.executedCount++;
|
|
141
|
+
console.log(' ✓ Execution complete\n');
|
|
142
|
+
console.log(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
143
|
+
if (result.sessionId) {
|
|
144
|
+
console.log(` Session: ${result.sessionId}`);
|
|
145
|
+
}
|
|
146
|
+
console.log('\n --- Output ---\n');
|
|
147
|
+
console.log(result.output);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
pilotStatus.failedCount++;
|
|
151
|
+
console.log(' ✗ Execution failed\n');
|
|
152
|
+
console.log(` Exit code: ${result.exitCode}`);
|
|
153
|
+
console.log(` Error: ${result.output}\n`);
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Run a gameplan task via Pilot
|
|
159
|
+
*/
|
|
160
|
+
export async function runTaskPilot(task, projectPath) {
|
|
161
|
+
const projectName = projectPath.split('/').pop() || 'project';
|
|
162
|
+
// TODO: Get actual phase/step from state
|
|
163
|
+
const phase = 'BUILD';
|
|
164
|
+
const step = 'IMPLEMENT';
|
|
165
|
+
return runPilot(`Task from gameplan: ${task}`, { projectPath });
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get current pilot status
|
|
169
|
+
*/
|
|
170
|
+
export function getPilotStatus() {
|
|
171
|
+
return { ...pilotStatus };
|
|
172
|
+
}
|
|
173
|
+
// ============================================================================
|
|
174
|
+
// CLI COMMAND
|
|
175
|
+
// ============================================================================
|
|
176
|
+
// ============================================================================
|
|
177
|
+
// WATCH MODE (polls cloud for pending commands)
|
|
178
|
+
// ============================================================================
|
|
179
|
+
let watchRunning = false;
|
|
180
|
+
/**
|
|
181
|
+
* Run Pilot in watch mode - polls cloud for commands
|
|
182
|
+
*/
|
|
183
|
+
export async function runWatchMode(pollInterval = 5000) {
|
|
184
|
+
if (!isAuthenticated()) {
|
|
185
|
+
console.log('\n ✗ Not authenticated. Run: midas login\n');
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// Check for Claude Code
|
|
189
|
+
const checkClaude = spawn('which', ['claude']);
|
|
190
|
+
const hasClaudeCode = await new Promise((resolve) => {
|
|
191
|
+
checkClaude.on('close', (code) => resolve(code === 0));
|
|
192
|
+
});
|
|
193
|
+
if (!hasClaudeCode) {
|
|
194
|
+
console.log('\n ✗ Claude Code CLI not found');
|
|
195
|
+
console.log(' Install from: https://claude.ai/code\n');
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
console.log('\n ╔══════════════════════════════════════╗');
|
|
199
|
+
console.log(' ║ MIDAS PILOT - WATCH MODE ║');
|
|
200
|
+
console.log(' ╚══════════════════════════════════════╝\n');
|
|
201
|
+
console.log(' Watching for commands from dashboard...');
|
|
202
|
+
console.log(' Press Ctrl+C to stop\n');
|
|
203
|
+
watchRunning = true;
|
|
204
|
+
// Handle graceful shutdown
|
|
205
|
+
process.on('SIGINT', () => {
|
|
206
|
+
console.log('\n\n Pilot stopped.\n');
|
|
207
|
+
watchRunning = false;
|
|
208
|
+
process.exit(0);
|
|
209
|
+
});
|
|
210
|
+
while (watchRunning) {
|
|
211
|
+
try {
|
|
212
|
+
const commands = await fetchPendingCommands();
|
|
213
|
+
if (commands.length > 0) {
|
|
214
|
+
const command = commands[0]; // Process one at a time
|
|
215
|
+
console.log(`\n ▸ Received command #${command.id}`);
|
|
216
|
+
console.log(` Type: ${command.command_type}`);
|
|
217
|
+
console.log(` Prompt: ${command.prompt.slice(0, 60)}...`);
|
|
218
|
+
await executeCommand(command);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
// Network error, wait and retry
|
|
223
|
+
console.log(` ⚠ Poll error: ${err instanceof Error ? err.message : 'unknown'}`);
|
|
224
|
+
}
|
|
225
|
+
// Wait before next poll
|
|
226
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Execute a pending command from the cloud
|
|
231
|
+
*/
|
|
232
|
+
async function executeCommand(command) {
|
|
233
|
+
// Get project details
|
|
234
|
+
const project = await getProjectById(command.project_id);
|
|
235
|
+
if (!project) {
|
|
236
|
+
console.log(` ✗ Project not found: ${command.project_id}`);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
console.log(` Project: ${project.name}`);
|
|
240
|
+
console.log(` Path: ${project.local_path}\n`);
|
|
241
|
+
// Mark as running
|
|
242
|
+
await markCommandRunning(command.id);
|
|
243
|
+
// Execute
|
|
244
|
+
const result = await executeClaudeCode(command.prompt, {
|
|
245
|
+
projectPath: project.local_path,
|
|
246
|
+
maxTurns: command.max_turns,
|
|
247
|
+
});
|
|
248
|
+
// Update status
|
|
249
|
+
await markCommandCompleted(command.id, {
|
|
250
|
+
success: result.success,
|
|
251
|
+
output: result.output,
|
|
252
|
+
exitCode: result.exitCode,
|
|
253
|
+
durationMs: result.duration,
|
|
254
|
+
sessionId: result.sessionId,
|
|
255
|
+
});
|
|
256
|
+
if (result.success) {
|
|
257
|
+
console.log(` ✓ Command #${command.id} completed`);
|
|
258
|
+
console.log(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
console.log(` ✗ Command #${command.id} failed`);
|
|
262
|
+
console.log(` Exit code: ${result.exitCode}`);
|
|
263
|
+
}
|
|
264
|
+
console.log('\n Waiting for next command...');
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* CLI handler for: midas pilot "prompt"
|
|
268
|
+
*/
|
|
269
|
+
export async function runPilotCLI(args) {
|
|
270
|
+
// Check for watch mode
|
|
271
|
+
if (args.includes('--watch') || args.includes('-w')) {
|
|
272
|
+
const pollInterval = 5000; // Could be made configurable
|
|
273
|
+
await runWatchMode(pollInterval);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
// Check for Claude Code
|
|
277
|
+
const checkClaude = spawn('which', ['claude']);
|
|
278
|
+
const hasClaudeCode = await new Promise((resolve) => {
|
|
279
|
+
checkClaude.on('close', (code) => resolve(code === 0));
|
|
280
|
+
});
|
|
281
|
+
if (!hasClaudeCode) {
|
|
282
|
+
console.log('\n ✗ Claude Code CLI not found');
|
|
283
|
+
console.log(' Install from: https://claude.ai/code\n');
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
// Parse arguments
|
|
287
|
+
let prompt = '';
|
|
288
|
+
let projectPath = process.cwd();
|
|
289
|
+
for (let i = 0; i < args.length; i++) {
|
|
290
|
+
if (args[i] === '--project' && args[i + 1]) {
|
|
291
|
+
projectPath = sanitizePath(args[i + 1]);
|
|
292
|
+
i++;
|
|
293
|
+
}
|
|
294
|
+
else if (!args[i].startsWith('--')) {
|
|
295
|
+
prompt = args[i];
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (!prompt) {
|
|
299
|
+
console.log('\n Usage: midas pilot "your prompt here"');
|
|
300
|
+
console.log(' midas pilot --watch');
|
|
301
|
+
console.log('');
|
|
302
|
+
console.log(' Options:');
|
|
303
|
+
console.log(' --project <path> Project directory');
|
|
304
|
+
console.log(' --watch, -w Watch mode - poll cloud for commands\n');
|
|
305
|
+
console.log(' Examples:');
|
|
306
|
+
console.log(' midas pilot "Fix the failing test in auth.ts"');
|
|
307
|
+
console.log(' midas pilot --watch\n');
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
await runPilot(prompt, { projectPath });
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=pilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot.js","sourceRoot":"","sources":["../src/pilot.ts"],"names":[],"mappings":"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"}
|