dev3000 0.0.129 → 0.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +69 -1
- package/dist/cli.js.map +1 -1
- package/dist/dev-environment.d.ts +2 -0
- package/dist/dev-environment.d.ts.map +1 -1
- package/dist/dev-environment.js +144 -37
- package/dist/dev-environment.js.map +1 -1
- package/dist/src/tui-interface-impl.tsx +4 -2
- package/dist/tui-interface-impl.d.ts.map +1 -1
- package/dist/tui-interface-impl.js +4 -2
- package/dist/tui-interface-impl.js.map +1 -1
- package/dist/utils/tmux-helpers.d.ts +35 -0
- package/dist/utils/tmux-helpers.d.ts.map +1 -0
- package/dist/utils/tmux-helpers.js +60 -0
- package/dist/utils/tmux-helpers.js.map +1 -0
- package/mcp-server/.next/BUILD_ID +1 -1
- package/mcp-server/.next/build-manifest.json +2 -2
- package/mcp-server/.next/fallback-build-manifest.json +2 -2
- package/mcp-server/.next/prerender-manifest.json +3 -3
- package/mcp-server/.next/server/app/_global-error.html +2 -2
- package/mcp-server/.next/server/app/_global-error.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.html +1 -1
- package/mcp-server/.next/server/app/_not-found.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/mcp-server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.html +1 -1
- package/mcp-server/.next/server/app/index.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/mcp-server/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/mcp-server/.next/server/chunks/[root-of-the-server]__141a5bc7._.js.map +1 -1
- package/mcp-server/.next/server/pages/404.html +1 -1
- package/mcp-server/.next/server/pages/500.html +2 -2
- package/mcp-server/.next/server/server-reference-manifest.js +1 -1
- package/mcp-server/.next/server/server-reference-manifest.json +1 -1
- package/mcp-server/app/mcp/route.ts +2 -0
- package/package.json +1 -1
- package/src/tui-interface-impl.tsx +4 -2
- /package/mcp-server/.next/static/{BepurBtJdbTpTE52bZxiF → i5SOhj7cf3JSMPksTBNpr}/_buildManifest.js +0 -0
- /package/mcp-server/.next/static/{BepurBtJdbTpTE52bZxiF → i5SOhj7cf3JSMPksTBNpr}/_clientMiddlewareManifest.json +0 -0
- /package/mcp-server/.next/static/{BepurBtJdbTpTE52bZxiF → i5SOhj7cf3JSMPksTBNpr}/_ssgManifest.js +0 -0
package/dist/cli.d.ts
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -12,8 +12,70 @@ import { createPersistentLogFile, findAvailablePort, startDevEnvironment } from
|
|
|
12
12
|
import { detectAIAgent } from "./utils/agent-detection.js";
|
|
13
13
|
import { formatMcpConfigTargets, parseDisabledMcpConfigs } from "./utils/mcp-configs.js";
|
|
14
14
|
import { getProjectName } from "./utils/project-name.js";
|
|
15
|
+
import { DEFAULT_TMUX_CONFIG, generateSessionName, generateTmuxCommands, getTmuxInstallInstructions, isTmuxInstalled } from "./utils/tmux-helpers.js";
|
|
15
16
|
import { loadUserConfig } from "./utils/user-config.js";
|
|
16
17
|
import { checkForUpdates, getUpgradeCommand, performUpgrade } from "./utils/version-check.js";
|
|
18
|
+
/**
|
|
19
|
+
* Launch d3k with an agent using tmux for proper terminal multiplexing.
|
|
20
|
+
* This creates a split-screen with the agent on the left and d3k logs on the right.
|
|
21
|
+
*/
|
|
22
|
+
async function launchWithTmux(agentCommand) {
|
|
23
|
+
const { execSync, spawn } = await import("child_process");
|
|
24
|
+
// Check if tmux is installed
|
|
25
|
+
if (!(await isTmuxInstalled())) {
|
|
26
|
+
console.error(chalk.red("\n❌ tmux is not installed."));
|
|
27
|
+
console.error(chalk.yellow("\nThe --with-agent flag requires tmux for split-screen mode."));
|
|
28
|
+
console.error(chalk.cyan("\nTo install tmux:"));
|
|
29
|
+
for (const instruction of getTmuxInstallInstructions()) {
|
|
30
|
+
console.error(chalk.gray(` ${instruction}`));
|
|
31
|
+
}
|
|
32
|
+
console.error(chalk.yellow("\nAlternatively, run d3k and your agent in separate terminal tabs.\n"));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Generate a unique session name
|
|
36
|
+
const sessionName = generateSessionName();
|
|
37
|
+
// Get the d3k command path (same as what user ran)
|
|
38
|
+
const d3kCommand = process.argv[1].endsWith("d3k") ? "d3k" : "dev3000";
|
|
39
|
+
// Clear screen before launching tmux (prevents leftover text after exit)
|
|
40
|
+
process.stdout.write("\x1b[2J\x1b[0f");
|
|
41
|
+
// Generate tmux commands using the helper
|
|
42
|
+
const commands = generateTmuxCommands({
|
|
43
|
+
sessionName,
|
|
44
|
+
d3kCommand,
|
|
45
|
+
agentCommand,
|
|
46
|
+
agentDelay: DEFAULT_TMUX_CONFIG.agentDelay,
|
|
47
|
+
paneWidthPercent: DEFAULT_TMUX_CONFIG.paneWidthPercent
|
|
48
|
+
});
|
|
49
|
+
try {
|
|
50
|
+
// Execute all setup commands
|
|
51
|
+
for (const cmd of commands) {
|
|
52
|
+
execSync(cmd, {
|
|
53
|
+
stdio: "inherit",
|
|
54
|
+
shell: "/bin/bash"
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Attach to the session
|
|
58
|
+
const tmux = spawn("tmux", ["attach-session", "-t", sessionName], {
|
|
59
|
+
stdio: "inherit"
|
|
60
|
+
});
|
|
61
|
+
tmux.on("exit", (code) => {
|
|
62
|
+
// Clean up the session if it still exists
|
|
63
|
+
try {
|
|
64
|
+
execSync(`tmux kill-session -t "${sessionName}" 2>/dev/null`, { stdio: "ignore" });
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Session might already be killed
|
|
68
|
+
}
|
|
69
|
+
// Clear screen after tmux exits for clean terminal
|
|
70
|
+
process.stdout.write("\x1b[2J\x1b[0f");
|
|
71
|
+
process.exit(code || 0);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(chalk.red("\n❌ Failed to start tmux session:"), error);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
17
79
|
function detectPythonCommand(debug = false) {
|
|
18
80
|
// Check if we're in a virtual environment
|
|
19
81
|
if (process.env.VIRTUAL_ENV) {
|
|
@@ -256,7 +318,13 @@ program
|
|
|
256
318
|
.option("--no-chrome-devtools-mcp", "Disable chrome-devtools MCP integration (enabled by default)")
|
|
257
319
|
.option("--headless", "Run Chrome in headless mode (for serverless/CI environments)")
|
|
258
320
|
.option("--kill-mcp", "Kill the MCP server on port 3684 and exit")
|
|
321
|
+
.option("--with-agent <command>", 'Run an agent (e.g. claude) in split-screen mode using tmux. Example: --with-agent "claude"')
|
|
259
322
|
.action(async (options) => {
|
|
323
|
+
// Handle --with-agent by spawning tmux with split panes
|
|
324
|
+
if (options.withAgent) {
|
|
325
|
+
await launchWithTmux(options.withAgent);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
260
328
|
// Handle --kill-mcp option
|
|
261
329
|
if (options.killMcp) {
|
|
262
330
|
console.log(chalk.yellow("🛑 Killing MCP server on port 3684..."));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ interface DevEnvironmentOptions {
|
|
|
32
32
|
disabledMcpConfigs?: McpConfigTarget[];
|
|
33
33
|
debugPort?: number;
|
|
34
34
|
headless?: boolean;
|
|
35
|
+
withAgent?: string;
|
|
35
36
|
}
|
|
36
37
|
export declare function findAvailablePort(startPort: number): Promise<string>;
|
|
37
38
|
export declare function createPersistentLogFile(): string;
|
|
@@ -72,6 +73,7 @@ export declare class DevEnvironment {
|
|
|
72
73
|
private detectPortChange;
|
|
73
74
|
private debugLog;
|
|
74
75
|
private showRecentLogs;
|
|
76
|
+
private checkForCommonIssues;
|
|
75
77
|
private startMcpServer;
|
|
76
78
|
private waitForServer;
|
|
77
79
|
private detectPackageManagerInDir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-environment.d.ts","sourceRoot":"","sources":["../src/dev-environment.ts"],"names":[],"mappings":"AAwBA,OAAO,EAA8C,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAgBzG;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,gEAGpC,CAAA;AASV,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACzC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAkOD,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1E;AAmTD,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;
|
|
1
|
+
{"version":3,"file":"dev-environment.d.ts","sourceRoot":"","sources":["../src/dev-environment.ts"],"names":[],"mappings":"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"}
|
package/dist/dev-environment.js
CHANGED
|
@@ -539,7 +539,7 @@ export function createPersistentLogFile() {
|
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
541
|
// Write session info for MCP server to discover
|
|
542
|
-
function writeSessionInfo(projectName, logFilePath, appPort, mcpPort, cdpUrl, chromePids, serverCommand, framework) {
|
|
542
|
+
function writeSessionInfo(projectName, logFilePath, appPort, mcpPort, cdpUrl, chromePids, serverCommand, framework, serverPid) {
|
|
543
543
|
const sessionDir = join(homedir(), ".d3k");
|
|
544
544
|
try {
|
|
545
545
|
// Create ~/.d3k directory if it doesn't exist
|
|
@@ -558,7 +558,8 @@ function writeSessionInfo(projectName, logFilePath, appPort, mcpPort, cdpUrl, ch
|
|
|
558
558
|
cwd: process.cwd(),
|
|
559
559
|
chromePids: chromePids || [],
|
|
560
560
|
serverCommand: serverCommand || null,
|
|
561
|
-
framework: framework || null
|
|
561
|
+
framework: framework || null,
|
|
562
|
+
serverPid: serverPid || null
|
|
562
563
|
};
|
|
563
564
|
// Write session file - use project name as filename for easy lookup
|
|
564
565
|
const sessionFile = join(sessionDir, `${projectName}.json`);
|
|
@@ -584,6 +585,21 @@ function getSessionChromePids(projectName) {
|
|
|
584
585
|
}
|
|
585
586
|
return [];
|
|
586
587
|
}
|
|
588
|
+
// Get server PID for this instance
|
|
589
|
+
function getSessionServerPid(projectName) {
|
|
590
|
+
const sessionDir = join(homedir(), ".d3k");
|
|
591
|
+
const sessionFile = join(sessionDir, `${projectName}.json`);
|
|
592
|
+
try {
|
|
593
|
+
if (existsSync(sessionFile)) {
|
|
594
|
+
const sessionInfo = JSON.parse(readFileSync(sessionFile, "utf8"));
|
|
595
|
+
return sessionInfo.serverPid || null;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
catch (_error) {
|
|
599
|
+
// Non-fatal - return null
|
|
600
|
+
}
|
|
601
|
+
return null;
|
|
602
|
+
}
|
|
587
603
|
function createLogFileInDir(baseDir, projectName) {
|
|
588
604
|
// Create timestamp
|
|
589
605
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
@@ -713,12 +729,10 @@ export class DevEnvironment {
|
|
|
713
729
|
// This prevents "kill EPERM" errors when MCP tries to spawn new browsers
|
|
714
730
|
await cleanupOrphanedPlaywrightProcesses((msg) => this.debugLog(msg));
|
|
715
731
|
// Always kill any existing MCP server to ensure clean state
|
|
732
|
+
// We ALWAYS try to kill, even if port appears free - there can be race conditions
|
|
716
733
|
if (this.options.mcpPort) {
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
this.debugLog(`Killing existing process on port ${this.options.mcpPort}`);
|
|
720
|
-
await this.killMcpServer();
|
|
721
|
-
}
|
|
734
|
+
this.debugLog(`Ensuring port ${this.options.mcpPort} is free (always kill)`);
|
|
735
|
+
await this.killMcpServer();
|
|
722
736
|
}
|
|
723
737
|
// Check if user explicitly set ports via CLI flags
|
|
724
738
|
const userSetAppPort = this.options.userSetPort || false;
|
|
@@ -774,21 +788,27 @@ export class DevEnvironment {
|
|
|
774
788
|
this.debugLog("killMcpServer skipped: Running in sandbox environment");
|
|
775
789
|
return;
|
|
776
790
|
}
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
getPidsProcess.stdout?.on("data", (data) => {
|
|
785
|
-
output += data.toString();
|
|
791
|
+
// Retry loop to ensure port is fully released
|
|
792
|
+
const maxRetries = 5;
|
|
793
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
794
|
+
try {
|
|
795
|
+
// First, get the PIDs
|
|
796
|
+
const getPidsProcess = spawn("lsof", ["-ti", `:${this.options.mcpPort}`], {
|
|
797
|
+
stdio: "pipe"
|
|
786
798
|
});
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
799
|
+
const pids = await new Promise((resolve, reject) => {
|
|
800
|
+
let output = "";
|
|
801
|
+
getPidsProcess.stdout?.on("data", (data) => {
|
|
802
|
+
output += data.toString();
|
|
803
|
+
});
|
|
804
|
+
getPidsProcess.on("error", (err) => reject(err));
|
|
805
|
+
getPidsProcess.on("exit", () => resolve(output.trim()));
|
|
806
|
+
});
|
|
807
|
+
if (!pids) {
|
|
808
|
+
this.debugLog(`Port ${this.options.mcpPort} is free (attempt ${attempt})`);
|
|
809
|
+
return; // Port is already free
|
|
810
|
+
}
|
|
811
|
+
this.debugLog(`Found MCP server processes (attempt ${attempt}): ${pids}`);
|
|
792
812
|
// Kill each PID individually with kill -9
|
|
793
813
|
const pidList = pids.split("\n").filter(Boolean);
|
|
794
814
|
for (const pid of pidList) {
|
|
@@ -800,14 +820,22 @@ export class DevEnvironment {
|
|
|
800
820
|
});
|
|
801
821
|
});
|
|
802
822
|
}
|
|
803
|
-
// Give it time to fully release the port
|
|
804
|
-
|
|
805
|
-
|
|
823
|
+
// Give it time to fully release the port (longer waits, macOS can be slow)
|
|
824
|
+
const waitTime = 1000 * attempt;
|
|
825
|
+
this.debugLog(`Waiting ${waitTime}ms for port ${this.options.mcpPort} to be released...`);
|
|
826
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
827
|
+
// Check if port is now free
|
|
828
|
+
const available = await isPortAvailable(this.options.mcpPort.toString());
|
|
829
|
+
if (available) {
|
|
830
|
+
this.debugLog(`Port ${this.options.mcpPort} released successfully`);
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
catch (error) {
|
|
835
|
+
this.debugLog(`Error killing MCP server (attempt ${attempt}): ${error}`);
|
|
806
836
|
}
|
|
807
837
|
}
|
|
808
|
-
|
|
809
|
-
this.debugLog(`Error killing MCP server: ${error}`);
|
|
810
|
-
}
|
|
838
|
+
this.debugLog(`Warning: Port ${this.options.mcpPort} may still be in use after ${maxRetries} attempts`);
|
|
811
839
|
}
|
|
812
840
|
async checkProcessHealth() {
|
|
813
841
|
if (this.isShuttingDown)
|
|
@@ -996,7 +1024,7 @@ export class DevEnvironment {
|
|
|
996
1024
|
// Write session info for MCP server discovery (include CDP URL if browser monitoring was started)
|
|
997
1025
|
const cdpUrl = this.cdpMonitor?.getCdpUrl() || null;
|
|
998
1026
|
const chromePids = this.cdpMonitor?.getChromePids() || [];
|
|
999
|
-
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl, chromePids, this.options.serverCommand, this.options.framework);
|
|
1027
|
+
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl, chromePids, this.options.serverCommand, this.options.framework, this.serverProcess?.pid);
|
|
1000
1028
|
// Clear status - ready!
|
|
1001
1029
|
await this.tui.updateStatus(null);
|
|
1002
1030
|
}
|
|
@@ -1059,7 +1087,7 @@ export class DevEnvironment {
|
|
|
1059
1087
|
// Include CDP URL if browser monitoring was started
|
|
1060
1088
|
const cdpUrl = this.cdpMonitor?.getCdpUrl() || null;
|
|
1061
1089
|
const chromePids = this.cdpMonitor?.getChromePids() || [];
|
|
1062
|
-
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl, chromePids, this.options.serverCommand, this.options.framework);
|
|
1090
|
+
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl, chromePids, this.options.serverCommand, this.options.framework, this.serverProcess?.pid);
|
|
1063
1091
|
// Complete startup with success message only in non-TUI mode
|
|
1064
1092
|
this.spinner.succeed("Development environment ready!");
|
|
1065
1093
|
// Regular console output (when TUI is disabled with --no-tui)
|
|
@@ -1251,7 +1279,7 @@ export class DevEnvironment {
|
|
|
1251
1279
|
const cdpUrl = this.cdpMonitor?.getCdpUrl();
|
|
1252
1280
|
const chromePids = this.cdpMonitor?.getChromePids() || [];
|
|
1253
1281
|
if (cdpUrl || chromePids.length > 0) {
|
|
1254
|
-
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl || undefined, chromePids, this.options.serverCommand);
|
|
1282
|
+
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl || undefined, chromePids, this.options.serverCommand, this.options.framework, this.serverProcess?.pid);
|
|
1255
1283
|
this.debugLog(`Updated session info with new port: ${this.options.port}`);
|
|
1256
1284
|
}
|
|
1257
1285
|
// Update TUI header with new port
|
|
@@ -1340,6 +1368,32 @@ export class DevEnvironment {
|
|
|
1340
1368
|
console.log(chalk.yellow(`💡 Check logs for details: ${this.options.logFile}`));
|
|
1341
1369
|
}
|
|
1342
1370
|
}
|
|
1371
|
+
checkForCommonIssues() {
|
|
1372
|
+
try {
|
|
1373
|
+
if (!existsSync(this.options.logFile))
|
|
1374
|
+
return;
|
|
1375
|
+
const logContent = readFileSync(this.options.logFile, "utf8");
|
|
1376
|
+
// Check for Next.js lock file issue (this fix also kills the process holding the port)
|
|
1377
|
+
if (logContent.includes("Unable to acquire lock") && logContent.includes(".next/dev/lock")) {
|
|
1378
|
+
console.log(chalk.yellow("\n💡 Detected Next.js lock file issue!"));
|
|
1379
|
+
console.log(chalk.white(" Another Next.js dev server may be running or crashed without cleanup."));
|
|
1380
|
+
console.log(chalk.white(" To fix, run:"));
|
|
1381
|
+
console.log(chalk.cyan(" rm -f .next/dev/lock && pkill -f 'next dev'"));
|
|
1382
|
+
return; // pkill also fixes the port-in-use issue, so skip that check
|
|
1383
|
+
}
|
|
1384
|
+
// Check for port in use (only if not a Next.js lock issue)
|
|
1385
|
+
const portInUseMatch = logContent.match(/Port (\d+) is in use by process (\d+)/);
|
|
1386
|
+
if (portInUseMatch) {
|
|
1387
|
+
const [, port, pid] = portInUseMatch;
|
|
1388
|
+
console.log(chalk.yellow(`\n💡 Port ${port} was already in use by process ${pid}`));
|
|
1389
|
+
console.log(chalk.white(" To kill that process, run:"));
|
|
1390
|
+
console.log(chalk.cyan(` kill -9 ${pid}`));
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
catch {
|
|
1394
|
+
// Ignore errors reading log file
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1343
1397
|
async startMcpServer() {
|
|
1344
1398
|
this.debugLog("Starting MCP server setup");
|
|
1345
1399
|
// Note: MCP server cleanup now happens earlier in checkPortsAvailable()
|
|
@@ -1869,7 +1923,7 @@ export class DevEnvironment {
|
|
|
1869
1923
|
}
|
|
1870
1924
|
// Always write session info after CDP monitoring starts - this is critical for
|
|
1871
1925
|
// sandbox environments where external tools poll for the cdpUrl in the session file
|
|
1872
|
-
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl || undefined, chromePids, this.options.serverCommand);
|
|
1926
|
+
writeSessionInfo(projectName, this.options.logFile, this.options.port, this.options.mcpPort, cdpUrl || undefined, chromePids, this.options.serverCommand, this.options.framework, this.serverProcess?.pid);
|
|
1873
1927
|
this.debugLog(`Updated session info with CDP URL: ${cdpUrl}, Chrome PIDs: [${chromePids.join(", ")}]`);
|
|
1874
1928
|
this.logger.log("browser", `[CDP] Session info written with cdpUrl: ${cdpUrl ? "available" : "null"}`);
|
|
1875
1929
|
// Navigate to the app
|
|
@@ -1893,9 +1947,11 @@ export class DevEnvironment {
|
|
|
1893
1947
|
await this.screencastManager.stop();
|
|
1894
1948
|
this.screencastManager = null;
|
|
1895
1949
|
}
|
|
1950
|
+
// Read server PID from session file BEFORE deleting it (needed for cleanup)
|
|
1951
|
+
const projectName = getProjectName();
|
|
1952
|
+
const savedServerPid = getSessionServerPid(projectName);
|
|
1896
1953
|
// Clean up session file
|
|
1897
1954
|
try {
|
|
1898
|
-
const projectName = getProjectName();
|
|
1899
1955
|
const sessionFile = join(homedir(), ".d3k", `${projectName}.json`);
|
|
1900
1956
|
if (existsSync(sessionFile)) {
|
|
1901
1957
|
unlinkSync(sessionFile);
|
|
@@ -1942,6 +1998,24 @@ export class DevEnvironment {
|
|
|
1942
1998
|
// Kill app server only (MCP server remains as singleton)
|
|
1943
1999
|
console.log(chalk.cyan("🔄 Killing app server..."));
|
|
1944
2000
|
await killPortProcess(this.options.port, "your app server");
|
|
2001
|
+
// Kill server process and its children using the saved PID (from before session file was deleted)
|
|
2002
|
+
if (!isInSandbox() && savedServerPid) {
|
|
2003
|
+
try {
|
|
2004
|
+
const { spawnSync } = await import("child_process");
|
|
2005
|
+
// Kill all child processes of the server
|
|
2006
|
+
spawnSync("pkill", ["-P", savedServerPid.toString()], { stdio: "ignore" });
|
|
2007
|
+
// Kill the server process itself
|
|
2008
|
+
try {
|
|
2009
|
+
process.kill(savedServerPid, "SIGKILL");
|
|
2010
|
+
}
|
|
2011
|
+
catch {
|
|
2012
|
+
// Process may already be dead
|
|
2013
|
+
}
|
|
2014
|
+
}
|
|
2015
|
+
catch {
|
|
2016
|
+
// Ignore pkill errors
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
1945
2019
|
// Shutdown CDP monitor if it was started
|
|
1946
2020
|
if (this.cdpMonitor) {
|
|
1947
2021
|
try {
|
|
@@ -1954,8 +2028,10 @@ export class DevEnvironment {
|
|
|
1954
2028
|
}
|
|
1955
2029
|
}
|
|
1956
2030
|
console.log(chalk.red(`❌ ${this.options.commandName} exited due to server failure`));
|
|
1957
|
-
|
|
1958
|
-
|
|
2031
|
+
// Show recent log entries to help diagnose the issue
|
|
2032
|
+
this.showRecentLogs();
|
|
2033
|
+
// Check for common issues and provide specific guidance
|
|
2034
|
+
this.checkForCommonIssues();
|
|
1959
2035
|
process.exit(1);
|
|
1960
2036
|
}
|
|
1961
2037
|
setupCleanupHandlers() {
|
|
@@ -2026,15 +2102,31 @@ export class DevEnvironment {
|
|
|
2026
2102
|
process.exit(1);
|
|
2027
2103
|
});
|
|
2028
2104
|
});
|
|
2105
|
+
// Handle SIGHUP (sent by tmux when session/pane is killed)
|
|
2106
|
+
process.on("SIGHUP", () => {
|
|
2107
|
+
this.debugLog("SIGHUP received (tmux session closing)");
|
|
2108
|
+
if (this.isShuttingDown)
|
|
2109
|
+
return;
|
|
2110
|
+
this.isShuttingDown = true;
|
|
2111
|
+
this.handleShutdown()
|
|
2112
|
+
.then(() => {
|
|
2113
|
+
process.exit(0);
|
|
2114
|
+
})
|
|
2115
|
+
.catch(() => {
|
|
2116
|
+
process.exit(1);
|
|
2117
|
+
});
|
|
2118
|
+
});
|
|
2029
2119
|
}
|
|
2030
2120
|
async handleShutdown() {
|
|
2031
2121
|
// Stop health monitoring
|
|
2032
2122
|
this.stopHealthCheck();
|
|
2033
2123
|
// Release the lock file
|
|
2034
2124
|
this.releaseLock();
|
|
2125
|
+
// Read server PID from session file BEFORE deleting it (needed for cleanup)
|
|
2126
|
+
const projectName = getProjectName();
|
|
2127
|
+
const savedServerPid = getSessionServerPid(projectName);
|
|
2035
2128
|
// Clean up session file
|
|
2036
2129
|
try {
|
|
2037
|
-
const projectName = getProjectName();
|
|
2038
2130
|
const sessionFile = join(homedir(), ".d3k", `${projectName}.json`);
|
|
2039
2131
|
if (existsSync(sessionFile)) {
|
|
2040
2132
|
unlinkSync(sessionFile);
|
|
@@ -2183,9 +2275,24 @@ export class DevEnvironment {
|
|
|
2183
2275
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
2184
2276
|
// Double-check: try to kill any remaining processes on the app port
|
|
2185
2277
|
try {
|
|
2186
|
-
const {
|
|
2187
|
-
|
|
2278
|
+
const { spawnSync } = await import("child_process");
|
|
2279
|
+
// Kill by port
|
|
2280
|
+
spawnSync("sh", ["-c", `pkill -f ":${this.options.port}"`], { stdio: "ignore" });
|
|
2188
2281
|
this.debugLog(`Sent pkill signal for port ${this.options.port}`);
|
|
2282
|
+
// Kill server process and its children using the saved PID (from before session file was deleted)
|
|
2283
|
+
if (savedServerPid) {
|
|
2284
|
+
// Kill all child processes of the server
|
|
2285
|
+
spawnSync("pkill", ["-P", savedServerPid.toString()], { stdio: "ignore" });
|
|
2286
|
+
this.debugLog(`Killed children of server PID ${savedServerPid}`);
|
|
2287
|
+
// Kill the server process itself
|
|
2288
|
+
try {
|
|
2289
|
+
process.kill(savedServerPid, "SIGKILL");
|
|
2290
|
+
this.debugLog(`Killed server PID ${savedServerPid}`);
|
|
2291
|
+
}
|
|
2292
|
+
catch {
|
|
2293
|
+
// Process may already be dead
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2189
2296
|
}
|
|
2190
2297
|
catch {
|
|
2191
2298
|
// Ignore pkill errors
|