conqr 1.7.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-buffer.js","sourceRoot":"","sources":["../src/log-buffer.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAUnC,MAAM,OAAO,SAAS;IACZ,OAAO,CAA0B;IACjC,aAAa,CAAa;IAC1B,QAAQ,CAAS;IAEzB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,IAAY,EAAE,SAA8B,QAAQ,EAAE,WAAoB,KAAK;QACvG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAkB;QACtB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;CACF"}
@@ -1,48 +0,0 @@
1
- import { ChildProcess } from 'child_process';
2
- import { EventEmitter } from 'events';
3
- import { CommandInfo } from './cli.js';
4
- import { LogBuffer } from './log-buffer.js';
5
- export type ProcessStatus = 'running' | 'stopped' | 'error' | 'unknown';
6
- export interface LogEvent {
7
- processId: number;
8
- line: string;
9
- source: 'stdout' | 'stderr';
10
- }
11
- export interface StatusChangeEvent {
12
- processId: number;
13
- status: ProcessStatus;
14
- }
15
- export interface RestartStateChangeEvent {
16
- processId: number;
17
- isRestarting: boolean;
18
- restartCount: number;
19
- crashCount: number;
20
- }
21
- export declare class ProcessManager extends EventEmitter {
22
- private processes;
23
- private logBuffer;
24
- private buffers;
25
- private restartTimeouts;
26
- private restartCounts;
27
- private crashCounts;
28
- private isRestartingMap;
29
- private intentionalExitProcesses;
30
- constructor(logBuffer: LogBuffer);
31
- private detectError;
32
- startCommand(commandInfo: CommandInfo): ChildProcess;
33
- startAll(commands: CommandInfo[]): void;
34
- getStatus(processId: number): ProcessStatus;
35
- getAllStatuses(): Map<number, ProcessStatus>;
36
- private updateStatusToError;
37
- private checkRecentErrors;
38
- private killProcess;
39
- killAll(): Promise<void>;
40
- private killOne;
41
- restart(processId: number, isManual?: boolean): Promise<void>;
42
- private scheduleRestart;
43
- private emitRestartStateChange;
44
- isRestarting(processId: number): boolean;
45
- getRestartCount(processId: number): number;
46
- getCrashCount(processId: number): number;
47
- }
48
- //# sourceMappingURL=process-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAaxE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,wBAAwB,CAAoB;gBAExC,SAAS,EAAE,SAAS;IAYhC,OAAO,CAAC,WAAW;IAoBnB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;IA0JpD,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAIvC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAK3C,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAQ5C,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,WAAW;IA6Bb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA8EhB,OAAO;IAkDf,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C1E,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,sBAAsB;IAY9B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGzC"}
@@ -1,449 +0,0 @@
1
- import { spawn } from 'child_process';
2
- import { EventEmitter } from 'events';
3
- export class ProcessManager extends EventEmitter {
4
- processes;
5
- logBuffer;
6
- buffers;
7
- restartTimeouts;
8
- restartCounts;
9
- crashCounts;
10
- isRestartingMap;
11
- intentionalExitProcesses;
12
- constructor(logBuffer) {
13
- super();
14
- this.processes = new Map();
15
- this.logBuffer = logBuffer;
16
- this.buffers = new Map();
17
- this.restartTimeouts = new Map();
18
- this.restartCounts = new Map();
19
- this.crashCounts = new Map();
20
- this.isRestartingMap = new Map();
21
- this.intentionalExitProcesses = new Set();
22
- }
23
- detectError(line) {
24
- const hasRedAnsi = /\x1b\[31m|\x1b\[91m|\x1b\[38;5;1m/.test(line);
25
- const errorPatterns = [
26
- /SyntaxError/i,
27
- /TypeError/i,
28
- /ReferenceError/i,
29
- /Error:/i,
30
- /Error\s+at/i,
31
- /FATAL/i,
32
- /CRITICAL/i,
33
- /failed/i,
34
- /failure/i,
35
- /cannot/i,
36
- /uncaught/i,
37
- /unhandled/i,
38
- /^\s+at .+\(.+:\d+:\d+\)$/,
39
- ];
40
- return hasRedAnsi || errorPatterns.some(pattern => pattern.test(line));
41
- }
42
- startCommand(commandInfo) {
43
- const { id, name, command } = commandInfo;
44
- const proc = spawn(command, {
45
- shell: true,
46
- stdio: ['ignore', 'pipe', 'pipe'],
47
- detached: true
48
- });
49
- proc.stdout?.setEncoding('utf8');
50
- proc.stderr?.setEncoding('utf8');
51
- this.buffers.set(id, { stdout: '', stderr: '' });
52
- proc.stdout?.on('data', (data) => {
53
- const buffer = this.buffers.get(id);
54
- if (!buffer)
55
- return;
56
- buffer.stdout += data.toString();
57
- const lines = buffer.stdout.split('\n');
58
- buffer.stdout = lines.pop() || '';
59
- lines.forEach(line => {
60
- if (line.length > 0) {
61
- this.logBuffer.addLog(id, line, 'stdout');
62
- this.emit('log', { processId: id, line, source: 'stdout' });
63
- this.checkRecentErrors(id);
64
- }
65
- });
66
- });
67
- proc.stderr?.on('data', (data) => {
68
- const buffer = this.buffers.get(id);
69
- if (!buffer)
70
- return;
71
- buffer.stderr += data.toString();
72
- const lines = buffer.stderr.split('\n');
73
- buffer.stderr = lines.pop() || '';
74
- lines.forEach(line => {
75
- if (line.length > 0) {
76
- this.logBuffer.addLog(id, line, 'stderr');
77
- this.emit('log', { processId: id, line, source: 'stderr' });
78
- this.checkRecentErrors(id);
79
- }
80
- });
81
- });
82
- // Flush remaining buffer data when streams end
83
- const flushBuffer = (source) => {
84
- const buffer = this.buffers.get(id);
85
- if (!buffer)
86
- return;
87
- const bufferContent = source === 'stdout' ? buffer.stdout : buffer.stderr;
88
- if (bufferContent.trim().length > 0) {
89
- this.logBuffer.addLog(id, bufferContent.trim(), source);
90
- this.emit('log', { processId: id, line: bufferContent.trim(), source });
91
- this.checkRecentErrors(id);
92
- }
93
- if (source === 'stdout') {
94
- buffer.stdout = '';
95
- }
96
- else {
97
- buffer.stderr = '';
98
- }
99
- };
100
- proc.stdout?.on('end', () => {
101
- flushBuffer('stdout');
102
- });
103
- proc.stderr?.on('end', () => {
104
- flushBuffer('stderr');
105
- });
106
- proc.on('error', (err) => {
107
- this.logBuffer.addLog(id, `Process error: ${err.message}`, 'stderr', true);
108
- const current = this.processes.get(id);
109
- if (current && current.process === proc) {
110
- current.status = 'error';
111
- current.pid = proc.pid;
112
- this.emit('status-change', { processId: id, status: 'error' });
113
- }
114
- });
115
- proc.on('exit', (code) => {
116
- const wasIntentionalExit = this.intentionalExitProcesses.has(proc);
117
- this.intentionalExitProcesses.delete(proc);
118
- const hasNonZeroExitCode = typeof code === 'number' && code !== 0;
119
- const procInfo = this.processes.get(id);
120
- if (procInfo && procInfo.process === proc) {
121
- // Flush any remaining buffer data before logging exit message
122
- const buffer = this.buffers.get(id);
123
- if (buffer) {
124
- if (buffer.stdout.trim().length > 0) {
125
- this.logBuffer.addLog(id, buffer.stdout.trim(), 'stdout');
126
- this.emit('log', { processId: id, line: buffer.stdout.trim(), source: 'stdout' });
127
- this.checkRecentErrors(id);
128
- buffer.stdout = '';
129
- }
130
- if (buffer.stderr.trim().length > 0) {
131
- this.logBuffer.addLog(id, buffer.stderr.trim(), 'stderr');
132
- this.emit('log', { processId: id, line: buffer.stderr.trim(), source: 'stderr' });
133
- this.checkRecentErrors(id);
134
- buffer.stderr = '';
135
- }
136
- }
137
- procInfo.status = 'stopped';
138
- procInfo.pid = proc.pid;
139
- this.emit('status-change', { processId: id, status: 'stopped' });
140
- // Increment crash count for non-zero exits
141
- if (hasNonZeroExitCode && !wasIntentionalExit) {
142
- const currentCrashCount = this.crashCounts.get(id) || 0;
143
- this.crashCounts.set(id, currentCrashCount + 1);
144
- this.emitRestartStateChange(id);
145
- }
146
- // Check restart policy and schedule restart if needed (Requirements 1.4, 1.5, 1.6)
147
- const restartConfig = procInfo.restart;
148
- let willRestart = false;
149
- if (restartConfig && !wasIntentionalExit) {
150
- const { policy, delay } = restartConfig;
151
- if (policy === 'on-exit') {
152
- // Requirement 1.6: Restart whenever process exits, regardless of exit code
153
- this.scheduleRestart(id, delay, code);
154
- willRestart = true;
155
- }
156
- else if (policy === 'on-error' && hasNonZeroExitCode) {
157
- // Requirement 1.5: Restart only when exit code is non-zero
158
- this.scheduleRestart(id, delay, code);
159
- willRestart = true;
160
- }
161
- // Requirement 1.4: If policy is 'never', do nothing (existing behavior)
162
- }
163
- // Log exit code for non-restartable processes or when restart won't happen
164
- if (!willRestart) {
165
- const exitEmoji = code === 0 ? '•' : '×';
166
- const exitCodeStr = code === null ? 'null' : code.toString();
167
- const exitMessage = `${exitEmoji} Process exited with code ${exitCodeStr}`.trim();
168
- this.logBuffer.addLog(id, exitMessage, 'stdout', true);
169
- this.emit('log', { processId: id, line: exitMessage, source: 'stdout' });
170
- }
171
- }
172
- });
173
- const startMessage = '› Service starting';
174
- this.logBuffer.addLog(id, startMessage, 'stdout', true);
175
- this.emit('log', { processId: id, line: startMessage, source: 'stdout' });
176
- const procInfo = { ...commandInfo, status: 'running', process: proc, pid: proc.pid };
177
- this.processes.set(id, procInfo);
178
- this.emit('status-change', { processId: id, status: 'running' });
179
- return proc;
180
- }
181
- startAll(commands) {
182
- commands.forEach(cmd => this.startCommand(cmd));
183
- }
184
- getStatus(processId) {
185
- const procInfo = this.processes.get(processId);
186
- return procInfo ? procInfo.status : 'unknown';
187
- }
188
- getAllStatuses() {
189
- const statuses = new Map();
190
- this.processes.forEach((procInfo, id) => {
191
- statuses.set(id, procInfo.status);
192
- });
193
- return statuses;
194
- }
195
- updateStatusToError(processId) {
196
- const procInfo = this.processes.get(processId);
197
- if (procInfo && procInfo.status === 'running') {
198
- procInfo.status = 'error';
199
- this.emit('status-change', { processId, status: 'error' });
200
- }
201
- }
202
- checkRecentErrors(processId) {
203
- const procInfo = this.processes.get(processId);
204
- if (!procInfo || procInfo.status === 'stopped' || procInfo.status === 'unknown') {
205
- return;
206
- }
207
- const logs = this.logBuffer.getLogs(processId);
208
- const recentLogs = logs.slice(-10);
209
- const hasRecentError = recentLogs.some(log => this.detectError(log.line));
210
- if (hasRecentError && procInfo.status === 'running') {
211
- procInfo.status = 'error';
212
- this.emit('status-change', { processId, status: 'error' });
213
- }
214
- else if (!hasRecentError && procInfo.status === 'error' && procInfo.process.exitCode === null && !procInfo.process.killed) {
215
- procInfo.status = 'running';
216
- this.emit('status-change', { processId, status: 'running' });
217
- }
218
- }
219
- killProcess(procInfo, signal) {
220
- if (!procInfo.process || procInfo.process.killed) {
221
- return;
222
- }
223
- try {
224
- this.intentionalExitProcesses.add(procInfo.process);
225
- const pid = procInfo.process.pid;
226
- if (!pid) {
227
- return;
228
- }
229
- if (process.platform !== 'win32') {
230
- try {
231
- process.kill(-pid, signal);
232
- }
233
- catch {
234
- procInfo.process.kill(signal);
235
- }
236
- }
237
- else {
238
- try {
239
- spawn('taskkill', ['/pid', pid.toString(), '/t', '/f'], { stdio: 'ignore' });
240
- }
241
- catch {
242
- procInfo.process.kill(signal);
243
- }
244
- }
245
- }
246
- catch {
247
- }
248
- }
249
- async killAll() {
250
- // Clear all pending restart timeouts to prevent restarts during shutdown
251
- // This ensures processes don't auto-restart while the application is shutting down
252
- for (const timeout of this.restartTimeouts.values()) {
253
- clearTimeout(timeout);
254
- }
255
- this.restartTimeouts.clear();
256
- // Clear restart states
257
- for (const processId of this.isRestartingMap.keys()) {
258
- this.isRestartingMap.set(processId, false);
259
- this.emitRestartStateChange(processId);
260
- }
261
- const killPromises = [];
262
- this.processes.forEach((procInfo) => {
263
- if (!procInfo.process || procInfo.process.killed) {
264
- return;
265
- }
266
- const promise = new Promise((resolve) => {
267
- let resolved = false;
268
- const timeout = setTimeout(() => {
269
- if (!resolved) {
270
- resolved = true;
271
- resolve();
272
- }
273
- }, 1000);
274
- const onExit = () => {
275
- if (!resolved) {
276
- resolved = true;
277
- clearTimeout(timeout);
278
- resolve();
279
- }
280
- };
281
- procInfo.process.once('exit', onExit);
282
- this.killProcess(procInfo, 'SIGTERM');
283
- });
284
- killPromises.push(promise);
285
- });
286
- await Promise.all(killPromises);
287
- const forceKillPromises = [];
288
- this.processes.forEach((procInfo) => {
289
- if (!procInfo.process || procInfo.process.killed) {
290
- return;
291
- }
292
- this.killProcess(procInfo, 'SIGKILL');
293
- const promise = new Promise((resolve) => {
294
- let resolved = false;
295
- const timeout = setTimeout(() => {
296
- if (!resolved) {
297
- resolved = true;
298
- resolve();
299
- }
300
- }, 500);
301
- const onExit = () => {
302
- if (!resolved) {
303
- resolved = true;
304
- clearTimeout(timeout);
305
- resolve();
306
- }
307
- };
308
- procInfo.process.once('exit', onExit);
309
- });
310
- forceKillPromises.push(promise);
311
- });
312
- await Promise.all(forceKillPromises);
313
- }
314
- async killOne(procInfo) {
315
- if (!procInfo.process || procInfo.process.killed) {
316
- return;
317
- }
318
- await new Promise((resolve) => {
319
- let resolved = false;
320
- const timeout = setTimeout(() => {
321
- if (!resolved) {
322
- resolved = true;
323
- resolve();
324
- }
325
- }, 1000);
326
- const onExit = () => {
327
- if (!resolved) {
328
- resolved = true;
329
- clearTimeout(timeout);
330
- resolve();
331
- }
332
- };
333
- procInfo.process.once('exit', onExit);
334
- this.killProcess(procInfo, 'SIGTERM');
335
- });
336
- if (!procInfo.process.killed) {
337
- await new Promise((resolve) => {
338
- let resolved = false;
339
- const timeout = setTimeout(() => {
340
- if (!resolved) {
341
- resolved = true;
342
- resolve();
343
- }
344
- }, 500);
345
- const onExit = () => {
346
- if (!resolved) {
347
- resolved = true;
348
- clearTimeout(timeout);
349
- resolve();
350
- }
351
- };
352
- procInfo.process.once('exit', onExit);
353
- this.killProcess(procInfo, 'SIGKILL');
354
- });
355
- }
356
- }
357
- async restart(processId, isManual = false) {
358
- // Clear any pending auto-restart timeout for this process (Requirement 1.4)
359
- // This prevents duplicate restarts when user manually restarts a process
360
- // that already has an auto-restart scheduled
361
- const pendingTimeout = this.restartTimeouts.get(processId);
362
- if (pendingTimeout) {
363
- clearTimeout(pendingTimeout);
364
- this.restartTimeouts.delete(processId);
365
- }
366
- const procInfo = this.processes.get(processId);
367
- if (!procInfo) {
368
- return;
369
- }
370
- // Log manual restart message immediately when restart is initiated
371
- if (isManual) {
372
- const restartMessage = '› Restart initiated, SIGTERM signal sent';
373
- this.logBuffer.addLog(processId, restartMessage, 'stdout', true);
374
- this.emit('log', { processId, line: restartMessage, source: 'stdout' });
375
- }
376
- if (procInfo.process && !procInfo.process.killed) {
377
- await this.killOne(procInfo);
378
- }
379
- // Increment restart count
380
- const currentRestartCount = this.restartCounts.get(processId) || 0;
381
- this.restartCounts.set(processId, currentRestartCount + 1);
382
- // Set restarting state to false since we're about to start the new process
383
- this.isRestartingMap.set(processId, false);
384
- this.startCommand({
385
- id: procInfo.id,
386
- name: procInfo.name,
387
- command: procInfo.command,
388
- restart: procInfo.restart
389
- });
390
- // Emit restart state change after restart completes
391
- this.emitRestartStateChange(processId);
392
- }
393
- scheduleRestart(processId, delay, exitCode) {
394
- // Clear any existing timeout for this process to prevent duplicate restarts
395
- const existingTimeout = this.restartTimeouts.get(processId);
396
- if (existingTimeout) {
397
- clearTimeout(existingTimeout);
398
- }
399
- // Get process info for logging
400
- const procInfo = this.processes.get(processId);
401
- const processName = procInfo?.name ?? `Process ${processId}`;
402
- // Log restart message with delay info (Requirement 3.1)
403
- const delaySeconds = (delay / 1000).toFixed(1);
404
- let restartMessage;
405
- if (exitCode !== undefined) {
406
- // Combined exit and restart message for auto-restarts
407
- const exitEmoji = exitCode === 0 ? '•' : '×';
408
- const exitCodeStr = exitCode === null ? 'null' : exitCode.toString();
409
- restartMessage = `${exitEmoji} Process exited with code ${exitCodeStr} › ${delaySeconds}s`.trim();
410
- }
411
- else {
412
- // Manual restart message (shouldn't happen in practice, but keeping for safety)
413
- restartMessage = `› ${processName} ${delaySeconds}s`.trim();
414
- }
415
- this.logBuffer.addLog(processId, restartMessage, 'stdout', true);
416
- this.emit('log', { processId, line: restartMessage, source: 'stdout' });
417
- // Set restarting state to true
418
- this.isRestartingMap.set(processId, true);
419
- this.emitRestartStateChange(processId);
420
- // Schedule restart via setTimeout (Requirement 1.7)
421
- const timeout = setTimeout(() => {
422
- this.restartTimeouts.delete(processId);
423
- this.restart(processId, false); // false = automatic restart
424
- }, delay);
425
- // Store the timeout in the map
426
- this.restartTimeouts.set(processId, timeout);
427
- }
428
- emitRestartStateChange(processId) {
429
- const isRestarting = this.isRestartingMap.get(processId) || false;
430
- const restartCount = this.restartCounts.get(processId) || 0;
431
- const crashCount = this.crashCounts.get(processId) || 0;
432
- this.emit('restart-state-change', {
433
- processId,
434
- isRestarting,
435
- restartCount,
436
- crashCount
437
- });
438
- }
439
- isRestarting(processId) {
440
- return this.isRestartingMap.get(processId) || false;
441
- }
442
- getRestartCount(processId) {
443
- return this.restartCounts.get(processId) || 0;
444
- }
445
- getCrashCount(processId) {
446
- return this.crashCounts.get(processId) || 0;
447
- }
448
- }
449
- //# sourceMappingURL=process-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAmCtC,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,SAAS,CAA2B;IACpC,SAAS,CAAY;IACrB,OAAO,CAA6B;IACpC,eAAe,CAA8B;IAC7C,aAAa,CAAsB;IACnC,WAAW,CAAsB;IACjC,eAAe,CAAuB;IACtC,wBAAwB,CAAoB;IAEpD,YAAY,SAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5C,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,MAAM,UAAU,GAAG,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG;YACpB,cAAc;YACd,YAAY;YACZ,iBAAiB;YACjB,SAAS;YACT,aAAa;YACb,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,SAAS;YACT,WAAW;YACX,YAAY;YACZ,0BAA0B;SAC3B,CAAC;QACF,OAAO,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE;YAC1B,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;oBACxE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;oBACxE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,aAAa,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1E,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAc,CAAC,CAAC;gBACpF,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC1B,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC1B,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;gBACzB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAuB,CAAC,CAAC;YACtF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE;YACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,kBAAkB,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,CAAC,CAAC;YAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC1C,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;wBAC9F,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;wBAC3B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;oBACrB,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;wBAC9F,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;wBAC3B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC5B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAuB,CAAC,CAAC;gBAEtF,2CAA2C;gBAC3C,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC;oBAChD,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC;gBAED,mFAAmF;gBACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;gBACvC,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,IAAI,aAAa,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;oBAExC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,2EAA2E;wBAC3E,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBACtC,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;yBAAM,IAAI,MAAM,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAAC;wBACvD,2DAA2D;wBAC3D,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBACtC,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;oBACD,wEAAwE;gBAC1E,CAAC;gBAED,2EAA2E;gBAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBACzC,MAAM,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC7D,MAAM,WAAW,GAAG,GAAG,SAAS,6BAA6B,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;oBAClF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,oBAAoB,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;QAEtF,MAAM,QAAQ,GAAgB,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAClG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAuB,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,QAAuB;QAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;YACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAuB,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,SAAiB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChF,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpD,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAuB,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5H,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAuB,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAAqB,EAAE,MAAsB;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QACT,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,yEAAyE;QACzE,mFAAmF;QACnF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,uBAAuB;QACvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,MAAM,MAAM,GAAG,GAAG,EAAE;oBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC;gBAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,MAAM,MAAM,GAAG,GAAG,EAAE;oBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC;gBAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAAqB;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,MAAM,MAAM,GAAG,GAAG,EAAE;oBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC;gBAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,WAAoB,KAAK;QACxD,4EAA4E;QAC5E,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,0CAA0C,CAAC;YAClE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,0BAA0B;QAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAE3D,2EAA2E;QAC3E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,YAAY,CAAC;YAChB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;QAEH,oDAAoD;QACpD,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAEO,eAAe,CAAC,SAAiB,EAAE,KAAa,EAAE,QAAwB;QAChF,4EAA4E;QAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,eAAe,EAAE,CAAC;YACpB,YAAY,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;QAED,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,IAAI,WAAW,SAAS,EAAE,CAAC;QAE7D,wDAAwD;QACxD,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,cAAsB,CAAC;QAE3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,sDAAsD;YACtD,MAAM,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7C,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrE,cAAc,GAAG,GAAG,SAAS,6BAA6B,WAAW,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,cAAc,GAAG,KAAK,WAAW,IAAI,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAc,CAAC,CAAC;QAEpF,+BAA+B;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,oDAAoD;QACpD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,4BAA4B;QAC9D,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,+BAA+B;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEO,sBAAsB,CAAC,SAAiB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChC,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,UAAU;SACgB,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACtD,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF"}
package/dist/ui.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { CommandInfo } from './cli.js';
2
- import { ProcessManager } from './process-manager.js';
3
- import { LogBuffer } from './log-buffer.js';
4
- interface TUIProps {
5
- commands: CommandInfo[];
6
- processManager: ProcessManager;
7
- logBuffer: LogBuffer;
8
- }
9
- export declare function TUI({ commands, processManager, logBuffer }: TUIProps): import("react/jsx-runtime").JSX.Element;
10
- export declare function renderTUI(commands: CommandInfo[], processManager: ProcessManager, logBuffer: LogBuffer): void;
11
- export {};
12
- //# sourceMappingURL=ui.d.ts.map
package/dist/ui.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAqC,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAmGtD,UAAU,QAAQ;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;CACtB;AAqED,wBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,QAAQ,2CA4RpE;AA0VD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,QAgCtG"}