@sudu-cli/fronted-preview-mcp 1.0.0-beta.3 → 1.0.0-beta.5

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.
Files changed (62) hide show
  1. package/dist/cdp/connectionManager.d.ts +57 -0
  2. package/dist/cdp/connectionManager.js +153 -0
  3. package/dist/cdp/connectionManager.js.map +1 -0
  4. package/dist/cli.js +2 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/constants.d.ts +19 -0
  7. package/dist/constants.js +26 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/detectors/frameworkDetector.js +17 -13
  10. package/dist/detectors/frameworkDetector.js.map +1 -1
  11. package/dist/handlers/autoFixLoop.d.ts +24 -0
  12. package/dist/handlers/autoFixLoop.js +81 -4
  13. package/dist/handlers/autoFixLoop.js.map +1 -1
  14. package/dist/handlers/checkPageErrors.js +11 -50
  15. package/dist/handlers/checkPageErrors.js.map +1 -1
  16. package/dist/handlers/typescriptDiagnostics.d.ts +9 -0
  17. package/dist/handlers/typescriptDiagnostics.js +4 -25
  18. package/dist/handlers/typescriptDiagnostics.js.map +1 -1
  19. package/dist/index.js +15 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/serverManager.d.ts +22 -4
  22. package/dist/serverManager.js +215 -140
  23. package/dist/serverManager.js.map +1 -1
  24. package/dist/strategies/baseStrategy.d.ts +27 -0
  25. package/dist/strategies/baseStrategy.js +23 -0
  26. package/dist/strategies/baseStrategy.js.map +1 -0
  27. package/dist/strategies/index.d.ts +9 -0
  28. package/dist/strategies/index.js +22 -0
  29. package/dist/strategies/index.js.map +1 -0
  30. package/dist/strategies/missingImport.d.ts +16 -0
  31. package/dist/strategies/missingImport.js +156 -0
  32. package/dist/strategies/missingImport.js.map +1 -0
  33. package/dist/strategies/missingProperty.d.ts +13 -0
  34. package/dist/strategies/missingProperty.js +134 -0
  35. package/dist/strategies/missingProperty.js.map +1 -0
  36. package/dist/strategies/networkError.d.ts +10 -0
  37. package/dist/strategies/networkError.js +56 -0
  38. package/dist/strategies/networkError.js.map +1 -0
  39. package/dist/strategies/nullCheckInsertion.d.ts +14 -0
  40. package/dist/strategies/nullCheckInsertion.js +138 -0
  41. package/dist/strategies/nullCheckInsertion.js.map +1 -0
  42. package/dist/strategies/typeAssignment.d.ts +13 -0
  43. package/dist/strategies/typeAssignment.js +121 -0
  44. package/dist/strategies/typeAssignment.js.map +1 -0
  45. package/dist/strategies/unusedImportRemoval.d.ts +11 -0
  46. package/dist/strategies/unusedImportRemoval.js +138 -0
  47. package/dist/strategies/unusedImportRemoval.js.map +1 -0
  48. package/dist/types.d.ts +9 -0
  49. package/dist/types.js +21 -1
  50. package/dist/types.js.map +1 -1
  51. package/dist/version.d.ts +7 -0
  52. package/dist/version.js +10 -0
  53. package/dist/version.js.map +1 -0
  54. package/package.json +1 -1
  55. package/templates/init/instructions.md +1 -11
  56. package/templates/init/opencode.json +1 -1
  57. package/dist/handlers/pickElement.d.ts +0 -10
  58. package/dist/handlers/pickElement.js +0 -413
  59. package/dist/handlers/pickElement.js.map +0 -1
  60. package/dist/handlers/takeScreenshot.d.ts +0 -17
  61. package/dist/handlers/takeScreenshot.js +0 -83
  62. package/dist/handlers/takeScreenshot.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"checkPageErrors.js","sourceRoot":"","sources":["../../src/handlers/checkPageErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkPageErrors.js","sourceRoot":"","sources":["../../src/handlers/checkPageErrors.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,14 @@ interface GetTypeScriptDiagnosticsArgs {
5
5
  files?: string[];
6
6
  includeWarnings?: boolean;
7
7
  }
8
+ export interface DiagnosticInfo {
9
+ file: string;
10
+ line: number;
11
+ column: number;
12
+ code: number;
13
+ message: string;
14
+ severity: 'error' | 'warning' | 'suggestion' | 'message';
15
+ category: 'typescript' | 'semantic' | 'syntactic' | 'declaration' | 'global' | 'config';
16
+ }
8
17
  declare function handleGetTypeScriptDiagnostics(args: GetTypeScriptDiagnosticsArgs): Promise<MCPToolResponse>;
9
18
  export { handleGetTypeScriptDiagnostics };
@@ -1,5 +1,6 @@
1
1
  import * as path from 'node:path';
2
2
  import { Project } from 'ts-morph';
3
+ import { createMCPError, createMCPSuccess } from '../types.js';
3
4
  function getSeverity(diagnostic) {
4
5
  const category = diagnostic.getCategory();
5
6
  if (category === 1)
@@ -72,19 +73,7 @@ async function handleGetTypeScriptDiagnostics(args) {
72
73
  await fs.access(fullTsConfigPath);
73
74
  }
74
75
  catch {
75
- return {
76
- content: [
77
- {
78
- type: 'text',
79
- text: JSON.stringify({
80
- error: `tsconfig.json not found at ${fullTsConfigPath}`,
81
- projectDir,
82
- suggestion: 'Ensure the project has a tsconfig.json file',
83
- }, null, 2),
84
- },
85
- ],
86
- isError: true,
87
- };
76
+ return createMCPError('CONFIG_NOT_FOUND', `tsconfig.json not found at ${fullTsConfigPath}`, { projectDir }, 'Ensure the project has a tsconfig.json file');
88
77
  }
89
78
  // Create ts-morph project
90
79
  const project = new Project({
@@ -130,21 +119,11 @@ async function handleGetTypeScriptDiagnostics(args) {
130
119
  durationMs: Date.now() - startTime,
131
120
  timestamp: new Date().toISOString(),
132
121
  };
133
- return {
134
- content: [
135
- {
136
- type: 'text',
137
- text: JSON.stringify(report, null, 2),
138
- },
139
- ],
140
- };
122
+ return createMCPSuccess(report);
141
123
  }
142
124
  catch (err) {
143
125
  const errorMessage = err instanceof Error ? err.message : String(err);
144
- return {
145
- content: [{ type: 'text', text: JSON.stringify({ error: errorMessage }, null, 2) }],
146
- isError: true,
147
- };
126
+ return createMCPError('TYPE_CHECK_FAILED', errorMessage);
148
127
  }
149
128
  }
150
129
  export { handleGetTypeScriptDiagnostics };
@@ -1 +1 @@
1
- {"version":3,"file":"typescriptDiagnostics.js","sourceRoot":"","sources":["../../src/handlers/typescriptDiagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescriptDiagnostics.js","sourceRoot":"","sources":["../../src/handlers/typescriptDiagnostics.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -205,8 +205,9 @@ server.tool('get_typescript_diagnostics', 'Get TypeScript compiler diagnostics (
205
205
  // ============================================================
206
206
  server.tool('auto_fix_loop', 'Automatically detect and fix frontend errors in an iterative loop. ' +
207
207
  'Combines console error checking (via CDP) and TypeScript diagnostics ' +
208
- 'to identify and verify fixes automatically.\n\n' +
209
- 'Returns { success, iterations, errorsFixed, errorsRemaining, messages, errors }.\n\n' +
208
+ 'to identify and verify fixes automatically. Includes built-in fix strategies ' +
209
+ 'for common TypeScript and console errors.\n\n' +
210
+ 'Returns { success, iterations, errorsFixed, errorsRemaining, messages, errors, fixesApplied }.\n\n' +
210
211
  'WHEN TO USE:\n' +
211
212
  '- User wants to automatically fix all detected errors\n' +
212
213
  '- User says "fix all errors" or "auto-fix this project"\n' +
@@ -218,8 +219,9 @@ server.tool('auto_fix_loop', 'Automatically detect and fix frontend errors in an
218
219
  '- Start Chrome: chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug\n\n' +
219
220
  'AFTER THIS TOOL:\n' +
220
221
  '- Check the result for errorsFixed vs errorsRemaining\n' +
222
+ '- Review fixesApplied for applied fixes and suggestions\n' +
221
223
  '- For visual inspection, use chrome-devtools take_screenshot\n' +
222
- '- If errors remain, run again with more iterations\n' +
224
+ '- If errors remain, run again with more iterations or fixAction: "auto"\n' +
223
225
  '- Manual review may be needed for complex issues', {
224
226
  projectDir: z
225
227
  .string()
@@ -253,6 +255,10 @@ server.tool('auto_fix_loop', 'Automatically detect and fix frontend errors in an
253
255
  .array(z.string())
254
256
  .optional()
255
257
  .describe('Optional: filter to specific error messages. If omitted, fixes all errors.'),
258
+ fixAction: z
259
+ .enum(['auto', 'suggest', 'none'])
260
+ .optional()
261
+ .describe('Fix behavior: "auto" = apply fixes automatically, "suggest" = only suggest fixes, "none" = only detect. Defaults to "suggest".'),
256
262
  }, async (args) => {
257
263
  const result = await handleAutoFixLoop(args);
258
264
  const content = [
@@ -272,6 +278,12 @@ server.tool('auto_fix_loop', 'Automatically detect and fix frontend errors in an
272
278
  text: `\nErrors:\n${result.errors.join('\n')}`
273
279
  });
274
280
  }
281
+ if (result.fixesApplied.length > 0) {
282
+ content.push({
283
+ type: 'text',
284
+ text: `\nFixes Applied:\n${result.fixesApplied.map(f => `${f.success ? '✅' : '💡'} ${f.message}`).join('\n')}`
285
+ });
286
+ }
275
287
  return { content };
276
288
  });
277
289
  // ============================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,26 @@
1
1
  import type { ServerStatus } from './types.js';
2
- declare function startServer(projectDir: string, devCommand: string, port: number): Promise<ServerStatus>;
3
- declare function stopServer(): Promise<{
2
+ export declare class ServerManager {
3
+ private static instance;
4
+ private activeServer;
5
+ private startLocks;
6
+ private shutdownLock;
7
+ private constructor();
8
+ static getInstance(): ServerManager;
9
+ static resetInstance(): void;
10
+ private isPortAvailable;
11
+ private waitForServerReady;
12
+ startServer(projectDir: string, devCommand: string, port: number, timeoutMs?: number): Promise<ServerStatus>;
13
+ private doStartServer;
14
+ stopServer(): Promise<{
15
+ success: boolean;
16
+ message: string;
17
+ }>;
18
+ private doStopServer;
19
+ getServerStatus(): ServerStatus | null;
20
+ }
21
+ export declare function startServer(projectDir: string, devCommand: string, port: number): Promise<ServerStatus>;
22
+ export declare function stopServer(): Promise<{
4
23
  success: boolean;
5
24
  message: string;
6
25
  }>;
7
- declare function getServerStatus(): ServerStatus | null;
8
- export { startServer, stopServer, getServerStatus };
26
+ export declare function getServerStatus(): ServerStatus | null;
@@ -1,166 +1,241 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import * as net from 'node:net';
3
- let activeServer = null;
4
- function isPortAvailable(port) {
5
- return new Promise((resolve) => {
6
- const server = net.createServer();
7
- server.once('error', () => resolve(false));
8
- server.once('listening', () => {
9
- server.close();
10
- resolve(true);
3
+ import { TIMEOUTS } from './constants.js';
4
+ export class ServerManager {
5
+ static instance = null;
6
+ activeServer = null;
7
+ startLocks = new Map();
8
+ shutdownLock = null;
9
+ constructor() { }
10
+ static getInstance() {
11
+ if (!ServerManager.instance) {
12
+ ServerManager.instance = new ServerManager();
13
+ }
14
+ return ServerManager.instance;
15
+ }
16
+ static resetInstance() {
17
+ ServerManager.instance = null;
18
+ }
19
+ isPortAvailable(port) {
20
+ return new Promise((resolve) => {
21
+ const server = net.createServer();
22
+ server.once('error', () => resolve(false));
23
+ server.once('listening', () => {
24
+ server.close();
25
+ resolve(true);
26
+ });
27
+ server.listen(port, '127.0.0.1');
11
28
  });
12
- server.listen(port, '127.0.0.1');
13
- });
14
- }
15
- function waitForPort(port, timeoutMs = 30000) {
16
- const start = Date.now();
17
- return new Promise((resolve) => {
18
- const check = async () => {
19
- const available = await isPortAvailable(port);
20
- if (!available) {
21
- resolve(true); // port is in use = server is ready
22
- return;
23
- }
24
- if (Date.now() - start > timeoutMs) {
25
- resolve(false); // timeout
26
- return;
29
+ }
30
+ waitForServerReady(port, timeoutMs = TIMEOUTS.SERVER_START_TIMEOUT) {
31
+ const start = Date.now();
32
+ return new Promise((resolve) => {
33
+ const check = async () => {
34
+ const available = await this.isPortAvailable(port);
35
+ if (!available) {
36
+ resolve(true); // port is in use = server is ready
37
+ return;
38
+ }
39
+ if (Date.now() - start > timeoutMs) {
40
+ resolve(false); // timeout
41
+ return;
42
+ }
43
+ setTimeout(check, TIMEOUTS.PORT_CHECK_INTERVAL);
44
+ };
45
+ check();
46
+ });
47
+ }
48
+ async startServer(projectDir, devCommand, port, timeoutMs = TIMEOUTS.SERVER_START_TIMEOUT) {
49
+ // Check if there's already a start in progress for this port
50
+ const existingLock = this.startLocks.get(port);
51
+ if (existingLock) {
52
+ return existingLock;
53
+ }
54
+ // Create the start operation with lock
55
+ const startPromise = this.doStartServer(projectDir, devCommand, port, timeoutMs);
56
+ this.startLocks.set(port, startPromise);
57
+ try {
58
+ const result = await startPromise;
59
+ return result;
60
+ }
61
+ finally {
62
+ this.startLocks.delete(port);
63
+ }
64
+ }
65
+ async doStartServer(projectDir, devCommand, port, timeoutMs) {
66
+ // Atomic check: if we have a running server on this port, return it
67
+ if (this.activeServer && this.activeServer.port === port) {
68
+ const isRunning = this.activeServer.process.exitCode === null;
69
+ if (isRunning) {
70
+ return {
71
+ url: this.activeServer.url,
72
+ port: this.activeServer.port,
73
+ pid: this.activeServer.process.pid || 0,
74
+ ready: true,
75
+ startedAt: new Date(this.activeServer.startTime).toISOString(),
76
+ };
27
77
  }
28
- setTimeout(check, 500);
29
- };
30
- check();
31
- });
32
- }
33
- async function startServer(projectDir, devCommand, port) {
34
- // If already running, return current status
35
- if (activeServer) {
36
- const isRunning = activeServer.process.exitCode === null;
37
- if (isRunning) {
78
+ // Process died, clean up atomically
79
+ this.activeServer = null;
80
+ }
81
+ // Check if port is already in use (server running externally)
82
+ const portAvailable = await this.isPortAvailable(port);
83
+ if (!portAvailable) {
38
84
  return {
39
- url: activeServer.url,
40
- port: activeServer.port,
41
- pid: activeServer.process.pid || 0,
85
+ url: `http://localhost:${port}`,
86
+ port,
87
+ pid: 0,
42
88
  ready: true,
43
- startedAt: new Date(activeServer.startTime).toISOString(),
89
+ startedAt: new Date().toISOString(),
44
90
  };
45
91
  }
46
- // Process died, clean up
47
- activeServer = null;
48
- }
49
- // Check if port is already in use (server running externally)
50
- const portAvailable = await isPortAvailable(port);
51
- if (!portAvailable) {
92
+ // Determine shell command
93
+ const isWin = process.platform === 'win32';
94
+ const shellCmd = isWin ? `cmd /c "${devCommand}"` : devCommand;
95
+ const child = spawn(shellCmd, [], {
96
+ cwd: projectDir,
97
+ shell: true,
98
+ stdio: ['ignore', 'pipe', 'pipe'],
99
+ windowsHide: true,
100
+ });
101
+ let urlConfirmed = false;
102
+ child.stdout?.on('data', (data) => {
103
+ const text = data.toString();
104
+ // Vite prints local URL on stdout
105
+ if (text.includes('Local:')) {
106
+ const urlMatch = text.match(/http:\/\/localhost:\d+/);
107
+ if (urlMatch) {
108
+ urlConfirmed = true;
109
+ }
110
+ }
111
+ });
112
+ child.stderr?.on('data', (data) => {
113
+ // Some frameworks output to stderr
114
+ });
115
+ // Handle process errors
116
+ const errorPromise = new Promise((_, reject) => {
117
+ child.on('error', (err) => {
118
+ this.activeServer = null;
119
+ reject(new Error(`Failed to start dev server: ${err.message}`));
120
+ });
121
+ });
122
+ // Handle process exit
123
+ child.on('exit', (code) => {
124
+ if (this.activeServer?.process === child) {
125
+ this.activeServer = null;
126
+ }
127
+ });
128
+ // Wait for server to be ready with timeout
129
+ const ready = await Promise.race([
130
+ this.waitForServerReady(port, timeoutMs),
131
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout waiting for server on port ${port}`)), timeoutMs + TIMEOUTS.PORT_CHECK_INTERVAL)),
132
+ errorPromise.then(() => false)
133
+ ]);
134
+ if (!ready) {
135
+ // Kill the process if it didn't start in time
136
+ try {
137
+ child.kill();
138
+ }
139
+ catch {
140
+ // Ignore kill errors
141
+ }
142
+ throw new Error(`Dev server did not start within ${timeoutMs}ms on port ${port}`);
143
+ }
144
+ const url = `http://localhost:${port}`;
145
+ this.activeServer = {
146
+ process: child,
147
+ port,
148
+ url,
149
+ startTime: Date.now(),
150
+ };
52
151
  return {
53
- url: `http://localhost:${port}`,
152
+ url,
54
153
  port,
55
- pid: 0,
154
+ pid: child.pid || 0,
56
155
  ready: true,
57
156
  startedAt: new Date().toISOString(),
58
157
  };
59
158
  }
60
- // Determine shell command
61
- const isWin = process.platform === 'win32';
62
- const shellCmd = isWin ? `cmd /c "${devCommand}"` : devCommand;
63
- const child = spawn(shellCmd, [], {
64
- cwd: projectDir,
65
- shell: true,
66
- stdio: ['ignore', 'pipe', 'pipe'],
67
- windowsHide: true,
68
- });
69
- child.stdout?.on('data', (data) => {
70
- // Optionally log or filter output
71
- const text = data.toString();
72
- // Vite prints local URL on stdout
73
- if (text.includes('Local:')) {
74
- const urlMatch = text.match(/http:\/\/localhost:\d+/);
75
- if (urlMatch) {
76
- // URL is confirmed
77
- }
159
+ async stopServer() {
160
+ // If shutdown already in progress, return that promise
161
+ if (this.shutdownLock) {
162
+ return this.shutdownLock;
78
163
  }
79
- });
80
- child.stderr?.on('data', (data) => {
81
- // Some frameworks output to stderr
82
- });
83
- child.on('error', (err) => {
84
- activeServer = null;
85
- throw new Error(`Failed to start dev server: ${err.message}`);
86
- });
87
- child.on('exit', (code) => {
88
- if (activeServer?.process === child) {
89
- activeServer = null;
164
+ const shutdownPromise = this.doStopServer();
165
+ this.shutdownLock = shutdownPromise;
166
+ try {
167
+ return await shutdownPromise;
168
+ }
169
+ finally {
170
+ this.shutdownLock = null;
90
171
  }
91
- });
92
- // Wait for port to be ready
93
- const ready = await waitForPort(port, 30000);
94
- if (!ready) {
95
- // Kill the process if it didn't start in time
96
- child.kill();
97
- throw new Error(`Dev server did not start within 30 seconds on port ${port}`);
98
- }
99
- const url = `http://localhost:${port}`;
100
- activeServer = {
101
- process: child,
102
- port,
103
- url,
104
- startTime: Date.now(),
105
- };
106
- return {
107
- url,
108
- port,
109
- pid: child.pid || 0,
110
- ready: true,
111
- startedAt: new Date().toISOString(),
112
- };
113
- }
114
- async function stopServer() {
115
- if (!activeServer) {
116
- return { success: true, message: 'No active dev server to stop.' };
117
172
  }
118
- const child = activeServer.process;
119
- const port = activeServer.port;
120
- try {
121
- // Try graceful shutdown first
122
- const isWin = process.platform === 'win32';
123
- if (isWin) {
124
- spawn('taskkill', ['/pid', String(child.pid), '/f', '/t']);
173
+ async doStopServer() {
174
+ if (!this.activeServer) {
175
+ return { success: true, message: 'No active dev server to stop.' };
125
176
  }
126
- else {
127
- child.kill('SIGTERM');
177
+ const child = this.activeServer.process;
178
+ const port = this.activeServer.port;
179
+ try {
180
+ // Try graceful shutdown first
181
+ const isWin = process.platform === 'win32';
182
+ if (isWin) {
183
+ spawn('taskkill', ['/pid', String(child.pid), '/f', '/t']);
184
+ }
185
+ else {
186
+ child.kill('SIGTERM');
187
+ }
188
+ // Wait for process to exit with timeout
189
+ await Promise.race([
190
+ new Promise((resolve) => {
191
+ child.on('exit', () => resolve());
192
+ }),
193
+ new Promise((resolve) => {
194
+ setTimeout(() => {
195
+ try {
196
+ child.kill('SIGKILL');
197
+ }
198
+ catch { }
199
+ resolve();
200
+ }, TIMEOUTS.SERVER_STOP_TIMEOUT);
201
+ })
202
+ ]);
203
+ this.activeServer = null;
204
+ return {
205
+ success: true,
206
+ message: `Dev server on port ${port} stopped.`,
207
+ };
208
+ }
209
+ catch (err) {
210
+ const errorMessage = err instanceof Error ? err.message : String(err);
211
+ this.activeServer = null;
212
+ return {
213
+ success: false,
214
+ message: `Failed to stop dev server: ${errorMessage}`,
215
+ };
128
216
  }
129
- // Wait for process to exit
130
- await new Promise((resolve) => {
131
- const timeout = setTimeout(() => {
132
- child.kill('SIGKILL');
133
- resolve();
134
- }, 5000);
135
- child.on('exit', () => {
136
- clearTimeout(timeout);
137
- resolve();
138
- });
139
- });
140
- activeServer = null;
141
- return {
142
- success: true,
143
- message: `Dev server on port ${port} stopped.`,
144
- };
145
217
  }
146
- catch (err) {
147
- const errorMessage = err instanceof Error ? err.message : String(err);
218
+ getServerStatus() {
219
+ if (!this.activeServer)
220
+ return null;
148
221
  return {
149
- success: false,
150
- message: `Failed to stop dev server: ${errorMessage}`,
222
+ url: this.activeServer.url,
223
+ port: this.activeServer.port,
224
+ pid: this.activeServer.process.pid || 0,
225
+ ready: this.activeServer.process.exitCode === null,
226
+ startedAt: new Date(this.activeServer.startTime).toISOString(),
151
227
  };
152
228
  }
153
229
  }
154
- function getServerStatus() {
155
- if (!activeServer)
156
- return null;
157
- return {
158
- url: activeServer.url,
159
- port: activeServer.port,
160
- pid: activeServer.process.pid || 0,
161
- ready: activeServer.process.exitCode === null,
162
- startedAt: new Date(activeServer.startTime).toISOString(),
163
- };
230
+ // Backward compatibility exports
231
+ const manager = ServerManager.getInstance();
232
+ export async function startServer(projectDir, devCommand, port) {
233
+ return manager.startServer(projectDir, devCommand, port);
234
+ }
235
+ export async function stopServer() {
236
+ return manager.stopServer();
237
+ }
238
+ export function getServerStatus() {
239
+ return manager.getServerStatus();
164
240
  }
165
- export { startServer, stopServer, getServerStatus };
166
241
  //# sourceMappingURL=serverManager.js.map