browser-debugger-cli 0.6.1 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -3
- package/dist/__tests__/smoke/error-handling.smoke.test.js +9 -4
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +27 -24
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -1
- package/dist/__testutils__/daemonHelpers.d.ts +13 -1
- package/dist/__testutils__/daemonHelpers.d.ts.map +1 -1
- package/dist/__testutils__/daemonHelpers.js +54 -5
- package/dist/__testutils__/daemonHelpers.js.map +1 -1
- package/dist/cdp/protocol.d.ts.map +1 -1
- package/dist/cdp/protocol.js +6 -10
- package/dist/cdp/protocol.js.map +1 -1
- package/dist/cdp/schema.d.ts.map +1 -1
- package/dist/cdp/schema.js +0 -2
- package/dist/cdp/schema.js.map +1 -1
- package/dist/commands/cdp.d.ts.map +1 -1
- package/dist/commands/cdp.js +1 -20
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +17 -15
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +0 -5
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.d.ts.map +1 -1
- package/dist/commands/details.js +0 -5
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom/a11y.d.ts +18 -0
- package/dist/commands/dom/a11y.d.ts.map +1 -0
- package/dist/commands/dom/a11y.js +134 -0
- package/dist/commands/dom/a11y.js.map +1 -0
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
- package/dist/commands/dom/evalHelpers.js +1 -6
- package/dist/commands/dom/evalHelpers.js.map +1 -1
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formFillHelpers.js +0 -9
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/formInteraction.d.ts.map +1 -1
- package/dist/commands/dom/formInteraction.js +0 -5
- package/dist/commands/dom/formInteraction.js.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.js +0 -13
- package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
- package/dist/commands/dom/helpers.d.ts.map +1 -1
- package/dist/commands/dom/helpers.js +0 -22
- package/dist/commands/dom/helpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +41 -26
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +3 -3
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
- package/dist/commands/dom/reactEventHelpers.js +0 -28
- package/dist/commands/dom/reactEventHelpers.js.map +1 -1
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js +159 -10
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +17 -12
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +0 -8
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/__tests__/validation.unit.test.d.ts +7 -0
- package/dist/commands/shared/__tests__/validation.unit.test.d.ts.map +1 -0
- package/dist/commands/shared/__tests__/validation.unit.test.js +141 -0
- package/dist/commands/shared/__tests__/validation.unit.test.js.map +1 -0
- package/dist/commands/shared/startHelpers.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.js +0 -10
- package/dist/commands/shared/startHelpers.js.map +1 -1
- package/dist/commands/shared/validation.d.ts +17 -0
- package/dist/commands/shared/validation.d.ts.map +1 -1
- package/dist/commands/shared/validation.js +105 -5
- package/dist/commands/shared/validation.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +0 -6
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +0 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +11 -13
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +0 -7
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/types.d.ts +3 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +0 -5
- package/dist/commands.js.map +1 -1
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +0 -3
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/diagnostics.d.ts.map +1 -1
- package/dist/connection/diagnostics.js +7 -4
- package/dist/connection/diagnostics.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts.map +1 -1
- package/dist/connection/pageReadiness.js +0 -1
- package/dist/connection/pageReadiness.js.map +1 -1
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/commandRegistry.contract.test.js +259 -0
- package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +1 -1
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts +19 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js +212 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js.map +1 -0
- package/dist/daemon/handlers/BaseHandler.d.ts +75 -0
- package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -0
- package/dist/daemon/handlers/BaseHandler.js +103 -0
- package/dist/daemon/handlers/BaseHandler.js.map +1 -0
- package/dist/daemon/handlers/CommandHandlers.d.ts +3 -4
- package/dist/daemon/handlers/CommandHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/CommandHandlers.js +14 -52
- package/dist/daemon/handlers/CommandHandlers.js.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.d.ts +8 -6
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.js +42 -94
- package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.js +0 -15
- package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
- package/dist/daemon/handlers/requestHandlers.d.ts +5 -1
- package/dist/daemon/handlers/requestHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/requestHandlers.js +7 -2
- package/dist/daemon/handlers/requestHandlers.js.map +1 -1
- package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
- package/dist/daemon/handlers/responseHandler.js +19 -8
- package/dist/daemon/handlers/responseHandler.js.map +1 -1
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +4 -11
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +2 -19
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/lifecycle/cdpSetup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/cdpSetup.js +0 -4
- package/dist/daemon/lifecycle/cdpSetup.js.map +1 -1
- package/dist/daemon/lifecycle/chromeConnection.js +0 -1
- package/dist/daemon/lifecycle/chromeConnection.js.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js +0 -3
- package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js +1 -8
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.js +0 -1
- package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
- package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
- package/dist/daemon/server/JsonlParser.js +0 -2
- package/dist/daemon/server/JsonlParser.js.map +1 -1
- package/dist/daemon/services/SessionService.js +1 -1
- package/dist/daemon/services/SessionService.js.map +1 -1
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +0 -15
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
- package/dist/daemon/worker/commandRegistry.js +34 -1
- package/dist/daemon/worker/commandRegistry.js.map +1 -1
- package/dist/daemon/worker/plugins.d.ts.map +1 -1
- package/dist/daemon/worker/plugins.js +0 -3
- package/dist/daemon/worker/plugins.js.map +1 -1
- package/dist/daemon/worker.js +0 -9
- package/dist/daemon/worker.js.map +1 -1
- package/dist/daemon.js +0 -2
- package/dist/daemon.js.map +1 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +251 -19
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/__tests__/jsonl.unit.test.js +19 -1
- package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -1
- package/dist/ipc/client.d.ts +47 -1
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +51 -0
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/index.d.ts.map +1 -1
- package/dist/ipc/index.js +0 -6
- package/dist/ipc/index.js.map +1 -1
- package/dist/ipc/protocol/commands.d.ts +44 -0
- package/dist/ipc/protocol/commands.d.ts.map +1 -1
- package/dist/ipc/protocol/commands.js +8 -0
- package/dist/ipc/protocol/commands.js.map +1 -1
- package/dist/ipc/session/queries.d.ts +26 -2
- package/dist/ipc/session/queries.d.ts.map +1 -1
- package/dist/ipc/transport/index.d.ts.map +1 -1
- package/dist/ipc/transport/index.js +0 -1
- package/dist/ipc/transport/index.js.map +1 -1
- package/dist/ipc/transport/jsonl.d.ts +16 -0
- package/dist/ipc/transport/jsonl.d.ts.map +1 -1
- package/dist/ipc/transport/jsonl.js +24 -0
- package/dist/ipc/transport/jsonl.js.map +1 -1
- package/dist/session/chrome.js +2 -2
- package/dist/session/chrome.js.map +1 -1
- package/dist/session/cleanup.d.ts +21 -0
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +92 -12
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/lock.js +1 -1
- package/dist/session/lock.js.map +1 -1
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts +10 -0
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/a11y.unit.test.js +265 -0
- package/dist/telemetry/__tests__/a11y.unit.test.js.map +1 -0
- package/dist/telemetry/__tests__/filters.unit.test.js +119 -1
- package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -1
- package/dist/telemetry/__tests__/network.contract.test.js +114 -0
- package/dist/telemetry/__tests__/network.contract.test.js.map +1 -1
- package/dist/telemetry/a11y.d.ts +78 -0
- package/dist/telemetry/a11y.d.ts.map +1 -0
- package/dist/telemetry/a11y.js +280 -0
- package/dist/telemetry/a11y.js.map +1 -0
- package/dist/telemetry/dom.d.ts +1 -1
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +36 -5
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/telemetry/filters.d.ts +17 -0
- package/dist/telemetry/filters.d.ts.map +1 -1
- package/dist/telemetry/filters.js +25 -0
- package/dist/telemetry/filters.js.map +1 -1
- package/dist/telemetry/har/__tests__/builder.unit.test.d.ts +8 -0
- package/dist/telemetry/har/__tests__/builder.unit.test.d.ts.map +1 -0
- package/dist/telemetry/har/__tests__/builder.unit.test.js +694 -0
- package/dist/telemetry/har/__tests__/builder.unit.test.js.map +1 -0
- package/dist/telemetry/har/builder.d.ts +43 -0
- package/dist/telemetry/har/builder.d.ts.map +1 -0
- package/dist/telemetry/har/builder.js +440 -0
- package/dist/telemetry/har/builder.js.map +1 -0
- package/dist/telemetry/har/types.d.ts +290 -0
- package/dist/telemetry/har/types.d.ts.map +1 -0
- package/dist/telemetry/har/types.js +7 -0
- package/dist/telemetry/har/types.js.map +1 -0
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +37 -4
- package/dist/telemetry/network.js.map +1 -1
- package/dist/types.d.ts +108 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/OutputBuilder.d.ts.map +1 -1
- package/dist/ui/OutputBuilder.js +0 -8
- package/dist/ui/OutputBuilder.js.map +1 -1
- package/dist/ui/errors/CommandError.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.js +0 -1
- package/dist/ui/errors/CommandError.js.map +1 -1
- package/dist/ui/errors/index.d.ts.map +1 -1
- package/dist/ui/errors/index.js +0 -2
- package/dist/ui/errors/index.js.map +1 -1
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts +2 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts.map +1 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.js +111 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.js.map +1 -0
- package/dist/ui/formatters/a11y.d.ts +30 -0
- package/dist/ui/formatters/a11y.d.ts.map +1 -0
- package/dist/ui/formatters/a11y.js +178 -0
- package/dist/ui/formatters/a11y.js.map +1 -0
- package/dist/ui/formatters/details.d.ts.map +1 -1
- package/dist/ui/formatters/details.js +1 -0
- package/dist/ui/formatters/details.js.map +1 -1
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +0 -3
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/formatters/index.d.ts +1 -0
- package/dist/ui/formatters/index.d.ts.map +1 -1
- package/dist/ui/formatters/index.js +1 -0
- package/dist/ui/formatters/index.js.map +1 -1
- package/dist/ui/formatters/networkHeaders.d.ts +14 -0
- package/dist/ui/formatters/networkHeaders.d.ts.map +1 -0
- package/dist/ui/formatters/networkHeaders.js +47 -0
- package/dist/ui/formatters/networkHeaders.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts +2 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +67 -23
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/formatters/semantic.d.ts +36 -0
- package/dist/ui/formatters/semantic.d.ts.map +1 -0
- package/dist/ui/formatters/semantic.js +98 -0
- package/dist/ui/formatters/semantic.js.map +1 -0
- package/dist/ui/formatters/status.d.ts.map +1 -1
- package/dist/ui/formatters/status.js +1 -12
- package/dist/ui/formatters/status.js.map +1 -1
- package/dist/ui/formatting.d.ts.map +1 -1
- package/dist/ui/formatting.js +0 -6
- package/dist/ui/formatting.js.map +1 -1
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/chrome.d.ts.map +1 -1
- package/dist/ui/messages/chrome.js +0 -6
- package/dist/ui/messages/chrome.js.map +1 -1
- package/dist/ui/messages/commands.d.ts +7 -0
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +9 -12
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/ui/messages/debug.d.ts.map +1 -1
- package/dist/ui/messages/debug.js +0 -6
- package/dist/ui/messages/debug.js.map +1 -1
- package/dist/ui/messages/internal.d.ts.map +1 -1
- package/dist/ui/messages/internal.js +0 -3
- package/dist/ui/messages/internal.js.map +1 -1
- package/dist/ui/messages/preview.d.ts.map +1 -1
- package/dist/ui/messages/preview.js +0 -12
- package/dist/ui/messages/preview.js.map +1 -1
- package/dist/ui/messages/session.d.ts.map +1 -1
- package/dist/ui/messages/session.js +0 -3
- package/dist/ui/messages/session.js.map +1 -1
- package/dist/utils/__tests__/errors.unit.test.d.ts +12 -0
- package/dist/utils/__tests__/errors.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/errors.unit.test.js +255 -0
- package/dist/utils/__tests__/errors.unit.test.js.map +1 -0
- package/dist/utils/__tests__/http.unit.test.d.ts +12 -0
- package/dist/utils/__tests__/http.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/http.unit.test.js +218 -0
- package/dist/utils/__tests__/http.unit.test.js.map +1 -0
- package/dist/utils/__tests__/process.unit.test.d.ts +14 -0
- package/dist/utils/__tests__/process.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/process.unit.test.js +124 -0
- package/dist/utils/__tests__/process.unit.test.js.map +1 -0
- package/dist/utils/__tests__/session.contract.test.js +1 -1
- package/dist/utils/__tests__/session.contract.test.js.map +1 -1
- package/dist/utils/atomicFile.d.ts.map +1 -1
- package/dist/utils/atomicFile.js +9 -6
- package/dist/utils/atomicFile.js.map +1 -1
- package/dist/utils/exitCodes.d.ts.map +1 -1
- package/dist/utils/exitCodes.js +0 -2
- package/dist/utils/exitCodes.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +0 -3
- package/dist/utils/validation.js.map +1 -1
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +0 -1
- package/dist/utils/version.js.map +1 -1
- package/package.json +22 -1
|
@@ -28,14 +28,11 @@ export class SessionHandlers {
|
|
|
28
28
|
async handleStartSession(socket, request) {
|
|
29
29
|
console.error(`[daemon] Start session request received (sessionId: ${request.sessionId}, url: ${request.url})`);
|
|
30
30
|
try {
|
|
31
|
-
// Check for existing session (concurrency guard)
|
|
32
31
|
const sessionPid = this.sessionService.readPid();
|
|
33
32
|
if (sessionPid && this.sessionService.isProcessAlive(sessionPid)) {
|
|
34
|
-
// Read session metadata to provide helpful error context
|
|
35
33
|
const metadata = this.sessionService.readMetadata({ warnOnCorruption: false });
|
|
36
34
|
const startTime = metadata?.startTime;
|
|
37
35
|
const duration = startTime ? Math.floor((Date.now() - startTime) / 1000) : undefined;
|
|
38
|
-
// Try to get target URL from CDP
|
|
39
36
|
let targetUrl;
|
|
40
37
|
if (metadata?.port && metadata?.targetId) {
|
|
41
38
|
try {
|
|
@@ -66,7 +63,6 @@ export class SessionHandlers {
|
|
|
66
63
|
console.error('[daemon] Start session error response sent (session already running)');
|
|
67
64
|
return;
|
|
68
65
|
}
|
|
69
|
-
// Launch worker
|
|
70
66
|
console.error('[daemon] Launching worker...');
|
|
71
67
|
try {
|
|
72
68
|
const metadata = await this.workerManager.launch(request.url, filterDefined({
|
|
@@ -80,7 +76,6 @@ export class SessionHandlers {
|
|
|
80
76
|
chromeWsUrl: request.chromeWsUrl,
|
|
81
77
|
}));
|
|
82
78
|
console.error('[daemon] Worker launched successfully');
|
|
83
|
-
// Build response data
|
|
84
79
|
const data = {
|
|
85
80
|
workerPid: metadata.workerPid,
|
|
86
81
|
chromePid: metadata.chromePid,
|
|
@@ -99,11 +94,9 @@ export class SessionHandlers {
|
|
|
99
94
|
console.error('[daemon] Start session response sent');
|
|
100
95
|
}
|
|
101
96
|
catch (error) {
|
|
102
|
-
// Map worker errors to IPC error codes
|
|
103
97
|
let errorCode = IPCErrorCode.WORKER_START_FAILED;
|
|
104
98
|
let errorMessage = 'Failed to start worker';
|
|
105
99
|
if (error instanceof WorkerStartError) {
|
|
106
|
-
// Include error details (contains worker stderr) for debugging
|
|
107
100
|
errorMessage = error.details ? `${error.message}\n${error.details}` : error.message;
|
|
108
101
|
switch (error.code) {
|
|
109
102
|
case 'SPAWN_FAILED':
|
|
@@ -148,7 +141,6 @@ export class SessionHandlers {
|
|
|
148
141
|
handleStopSession(socket, request) {
|
|
149
142
|
console.error(`[daemon] Stop session request received (sessionId: ${request.sessionId})`);
|
|
150
143
|
try {
|
|
151
|
-
// Check for active session
|
|
152
144
|
const sessionPid = this.sessionService.readPid();
|
|
153
145
|
if (!sessionPid || !this.sessionService.isProcessAlive(sessionPid)) {
|
|
154
146
|
const response = {
|
|
@@ -162,13 +154,11 @@ export class SessionHandlers {
|
|
|
162
154
|
console.error('[daemon] Stop session error response sent (no session)');
|
|
163
155
|
return;
|
|
164
156
|
}
|
|
165
|
-
// Capture Chrome PID BEFORE cleanup (so CLI can kill Chrome if needed)
|
|
166
157
|
const metadata = this.sessionService.readMetadata({ warnOnCorruption: true });
|
|
167
158
|
const chromePid = metadata?.chromePid;
|
|
168
159
|
if (chromePid) {
|
|
169
160
|
console.error(`[daemon] Captured Chrome PID ${chromePid} before cleanup`);
|
|
170
161
|
}
|
|
171
|
-
// Kill the session process (use SIGTERM for graceful shutdown)
|
|
172
162
|
try {
|
|
173
163
|
process.kill(sessionPid, 'SIGTERM');
|
|
174
164
|
console.error(`[daemon] Sent SIGTERM to session process (PID ${sessionPid})`);
|
|
@@ -186,10 +176,8 @@ export class SessionHandlers {
|
|
|
186
176
|
console.error('[daemon] Stop session error response sent (kill failed)');
|
|
187
177
|
return;
|
|
188
178
|
}
|
|
189
|
-
// Clean up session files
|
|
190
179
|
this.sessionService.cleanup();
|
|
191
180
|
console.error('[daemon] Cleaned up session files');
|
|
192
|
-
// Clear worker process reference
|
|
193
181
|
this.workerManager.dispose();
|
|
194
182
|
console.error('[daemon] Cleared worker process reference');
|
|
195
183
|
const response = {
|
|
@@ -201,11 +189,8 @@ export class SessionHandlers {
|
|
|
201
189
|
};
|
|
202
190
|
this.sendResponse(socket, response);
|
|
203
191
|
console.error('[daemon] Stop session response sent');
|
|
204
|
-
// Release lock immediately so new sessions can start
|
|
205
192
|
this.sessionService.releaseLock();
|
|
206
193
|
console.error('[daemon] Daemon lock released');
|
|
207
|
-
// Shutdown daemon after successful stop
|
|
208
|
-
// Give socket time to flush response, then exit gracefully
|
|
209
194
|
setTimeout(() => {
|
|
210
195
|
console.error('[daemon] Shutting down daemon after successful stop');
|
|
211
196
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionHandlers.js","sourceRoot":"","sources":["../../../src/daemon/handlers/SessionHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAML,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAOnC;;GAEG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,aAA4B,EAC5B,cAA+B,EAC/B,YAA4B;QAF5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAgB;IAC5C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,OAA4B;QACnE,OAAO,CAAC,KAAK,CACX,uDAAuD,OAAO,CAAC,SAAS,UAAU,OAAO,CAAC,GAAG,GAAG,CACjG,CAAC;QAEF,IAAI,CAAC;YACH,
|
|
1
|
+
{"version":3,"file":"SessionHandlers.js","sourceRoot":"","sources":["../../../src/daemon/handlers/SessionHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAML,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAOnC;;GAEG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,aAA4B,EAC5B,cAA+B,EAC/B,YAA4B;QAF5B,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAgB;IAC5C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,OAA4B;QACnE,OAAO,CAAC,KAAK,CACX,uDAAuD,OAAO,CAAC,SAAS,UAAU,OAAO,CAAC,GAAG,GAAG,CACjG,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,CAAC;gBACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAErF,IAAI,SAA6B,CAAC;gBAClC,IAAI,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC1E,IAAI,MAAM,EAAE,CAAC;4BACX,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;wBACzB,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,CAAC,KAAK,CACP,qDAAqD,eAAe,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAyB;oBACrC,IAAI,EAAE,wBAAwB;oBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,gCAAgC,UAAU,6CAA6C;oBAChG,SAAS,EAAE,YAAY,CAAC,uBAAuB;oBAC/C,eAAe,EAAE;wBACf,GAAG,EAAE,UAAU;wBACf,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC/B,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;wBAC/B,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;qBAC5C;iBACF,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAC9C,OAAO,CAAC,GAAG,EACX,aAAa,CAAC;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CACH,CAAC;gBAEF,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAEvD,MAAM,IAAI,GAA6B;oBACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;iBACjF,CAAC;gBAEF,MAAM,QAAQ,GAAyB;oBACrC,IAAI,EAAE,wBAAwB;oBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,IAAI;oBACZ,IAAI;oBACJ,OAAO,EAAE,8BAA8B;iBACxC,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,SAAS,GAAiB,YAAY,CAAC,mBAAmB,CAAC;gBAC/D,IAAI,YAAY,GAAG,wBAAwB,CAAC;gBAE5C,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;oBACtC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;oBACpF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,cAAc,CAAC;wBACpB,KAAK,cAAc,CAAC;wBACpB,KAAK,uBAAuB;4BAC1B,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAAC;4BAC7C,MAAM;wBACR,KAAK,eAAe;4BAClB,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC;4BACrC,MAAM;oBACV,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC;gBAED,MAAM,QAAQ,GAAyB;oBACrC,IAAI,EAAE,wBAAwB;oBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,YAAY;oBACrB,SAAS;iBACV,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,+CAA+C,SAAS,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAyB;gBACrC,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,iBAAiB,eAAe,CAAC,KAAK,CAAC,EAAE;gBAClD,SAAS,EAAE,YAAY,CAAC,YAAY;aACrC,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,OAA2B;QAC3D,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QAE1F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAwB;oBACpC,IAAI,EAAE,uBAAuB;oBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,yBAAyB;oBAClC,SAAS,EAAE,YAAY,CAAC,UAAU;iBACnC,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,CAAC;YACtC,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,iBAAiB,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,SAAkB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAwB;oBACpC,IAAI,EAAE,uBAAuB;oBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,mCAAmC,YAAY,EAAE;oBAC1D,SAAS,EAAE,YAAY,CAAC,mBAAmB;iBAC5C,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAEnD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAwB;gBACpC,IAAI,EAAE,uBAAuB;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,8BAA8B;gBACvC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;aAC9C,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAErD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAE/C,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAwB;gBACpC,IAAI,EAAE,uBAAuB;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,2BAA2B,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC5D,SAAS,EAAE,YAAY,CAAC,YAAY;aACrC,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ import type { PendingRequestManager } from './pendingRequests.js';
|
|
|
8
8
|
import type { Socket } from 'net';
|
|
9
9
|
import type { WorkerManager } from '../../daemon/server/WorkerManager.js';
|
|
10
10
|
import type { ISessionService } from '../../daemon/services/SessionService.js';
|
|
11
|
-
import { type ClientRequestUnion, type HandshakeRequest, type PeekRequest, type StartSessionRequest, type StatusRequest, type StopSessionRequest } from '../../ipc/index.js';
|
|
11
|
+
import { type ClientRequestUnion, type HandshakeRequest, type HARDataRequest, type PeekRequest, type StartSessionRequest, type StatusRequest, type StopSessionRequest } from '../../ipc/index.js';
|
|
12
12
|
/**
|
|
13
13
|
* Response sender function type.
|
|
14
14
|
*/
|
|
@@ -34,6 +34,10 @@ export declare class RequestHandlers {
|
|
|
34
34
|
* Handle peek request.
|
|
35
35
|
*/
|
|
36
36
|
handlePeekRequest(socket: Socket, request: PeekRequest): void;
|
|
37
|
+
/**
|
|
38
|
+
* Handle HAR data request.
|
|
39
|
+
*/
|
|
40
|
+
handleHARDataRequest(socket: Socket, request: HARDataRequest): void;
|
|
37
41
|
/**
|
|
38
42
|
* Handle start session request.
|
|
39
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB;;GAEG;AACH,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAGhD,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,qBAAqB,EACtC,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,cAAc,EAC5B,eAAe,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAMxB;;GAEG;AACH,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAGhD,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,qBAAqB,EACtC,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,cAAc,EAC5B,eAAe,EAAE,MAAM;IAezB;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIhE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIjE;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAI7D;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAInE;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F;;OAEG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3E;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAGxE"}
|
|
@@ -16,9 +16,8 @@ export class RequestHandlers {
|
|
|
16
16
|
queryHandlers;
|
|
17
17
|
commandHandlers;
|
|
18
18
|
constructor(workerManager, pendingRequests, sessionService, sendResponse, daemonStartTime) {
|
|
19
|
-
// Initialize specialized handlers
|
|
20
19
|
this.sessionHandlers = new SessionHandlers(workerManager, sessionService, sendResponse);
|
|
21
|
-
this.queryHandlers = new QueryHandlers(workerManager, pendingRequests,
|
|
20
|
+
this.queryHandlers = new QueryHandlers(workerManager, pendingRequests, sendResponse, sessionService, daemonStartTime);
|
|
22
21
|
this.commandHandlers = new CommandHandlers(workerManager, pendingRequests, sendResponse);
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
@@ -39,6 +38,12 @@ export class RequestHandlers {
|
|
|
39
38
|
handlePeekRequest(socket, request) {
|
|
40
39
|
this.queryHandlers.handlePeek(socket, request);
|
|
41
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Handle HAR data request.
|
|
43
|
+
*/
|
|
44
|
+
handleHARDataRequest(socket, request) {
|
|
45
|
+
this.queryHandlers.handleHARData(socket, request);
|
|
46
|
+
}
|
|
42
47
|
/**
|
|
43
48
|
* Handle start session request.
|
|
44
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../../../src/daemon/handlers/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"requestHandlers.js","sourceRoot":"","sources":["../../../src/daemon/handlers/requestHandlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD;;;GAGG;AACH,MAAM,OAAO,eAAe;IACT,eAAe,CAAkB;IACjC,aAAa,CAAgB;IAC7B,eAAe,CAAkB;IAElD,YACE,aAA4B,EAC5B,eAAsC,EACtC,cAA+B,EAC/B,YAA4B,EAC5B,eAAuB;QAEvB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAExF,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,aAAa,EACb,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,CAChB,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,OAAyB;QACvD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAAc,EAAE,OAAsB;QACxD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,OAAoB;QACpD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc,EAAE,OAAuB;QAC1D,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAAC,MAAc,EAAE,OAA4B;QAC1E,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,MAAc,EAAE,OAA2B;QAClE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc,EAAE,OAA2B;QAC9D,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseHandler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/responseHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAOL,KAAK,mBAAmB,EAGzB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,eAAe,EAAE,qBAAqB,EACtC,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,cAAc;IAG/C;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"responseHandler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/responseHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAOL,KAAK,mBAAmB,EAGzB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;AAElE;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,eAAe,EAAE,qBAAqB,EACtC,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,cAAc;IAG/C;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,IAAI;IAuB5E;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI;IA0D1E;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoG9B;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAwDpC"}
|
|
@@ -22,22 +22,17 @@ export class ResponseHandler {
|
|
|
22
22
|
*/
|
|
23
23
|
handleWorkerResponse(message) {
|
|
24
24
|
console.error(`[daemon] Received worker response: ${message.type} (requestId: ${message.requestId})`);
|
|
25
|
-
// Check for ready signal (not a command response)
|
|
26
25
|
if (message.type === 'worker_ready') {
|
|
27
26
|
console.error('[daemon] Worker ready signal (already processed during launch)');
|
|
28
27
|
return;
|
|
29
28
|
}
|
|
30
|
-
// Check if this is a command response
|
|
31
29
|
if (isCommandResponse(message.type)) {
|
|
32
|
-
// Look up pending request
|
|
33
30
|
const pending = this.pendingRequests.get(message.requestId);
|
|
34
31
|
if (!pending) {
|
|
35
32
|
console.error(`[daemon] No pending request found for requestId: ${message.requestId}`);
|
|
36
33
|
return;
|
|
37
34
|
}
|
|
38
|
-
// Remove from pending (includes clearing timeout)
|
|
39
35
|
this.pendingRequests.remove(message.requestId);
|
|
40
|
-
// Forward response to client
|
|
41
36
|
this.forwardCommandResponse(pending.socket, pending.sessionId, message, pending);
|
|
42
37
|
}
|
|
43
38
|
}
|
|
@@ -101,12 +96,10 @@ export class ResponseHandler {
|
|
|
101
96
|
console.error(`[daemon] Invalid worker response type: ${workerResponse.type}`);
|
|
102
97
|
return;
|
|
103
98
|
}
|
|
104
|
-
// Special handling for worker_status - merge with base status data
|
|
105
99
|
if (commandName === 'worker_status') {
|
|
106
100
|
this.forwardWorkerStatusResponse(socket, sessionId, workerResponse, pendingRequest);
|
|
107
101
|
return;
|
|
108
102
|
}
|
|
109
|
-
// Special handling for worker_peek - transform to PeekResponse format
|
|
110
103
|
if (commandName === 'worker_peek') {
|
|
111
104
|
const { requestId: _requestId, success, data, error, } = workerResponse;
|
|
112
105
|
const peekResponse = {
|
|
@@ -137,7 +130,25 @@ export class ResponseHandler {
|
|
|
137
130
|
console.error('[daemon] Forwarded worker_peek_response to client (transformed to PeekResponse)');
|
|
138
131
|
return;
|
|
139
132
|
}
|
|
140
|
-
|
|
133
|
+
if (commandName === 'worker_har_data') {
|
|
134
|
+
const { requestId: _requestId, success, data, error, } = workerResponse;
|
|
135
|
+
const harDataResponse = {
|
|
136
|
+
type: 'har_data_response',
|
|
137
|
+
sessionId,
|
|
138
|
+
status: success ? 'ok' : 'error',
|
|
139
|
+
...(success &&
|
|
140
|
+
data && {
|
|
141
|
+
data: {
|
|
142
|
+
sessionPid: this.sessionService.readPid() ?? 0,
|
|
143
|
+
requests: data.requests,
|
|
144
|
+
},
|
|
145
|
+
}),
|
|
146
|
+
...(error && { error }),
|
|
147
|
+
};
|
|
148
|
+
this.sendResponse(socket, harDataResponse);
|
|
149
|
+
console.error('[daemon] Forwarded worker_har_data_response to client (transformed to HARDataResponse)');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
141
152
|
const { requestId: _requestId, success, ...rest } = workerResponse;
|
|
142
153
|
const response = {
|
|
143
154
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseHandler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/responseHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAQL,cAAc,EACd,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAOxB;;GAEG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IACA;IAHnB,YACmB,eAAsC,EACtC,cAA+B,EAC/B,YAA4B;QAF5B,oBAAe,GAAf,eAAe,CAAuB;QACtC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAgB;IAC5C,CAAC;IAEJ;;OAEG;IACH,oBAAoB,CAAC,OAAgD;QACnE,OAAO,CAAC,KAAK,CACX,sCAAsC,OAAO,CAAC,IAAI,gBAAgB,OAAO,CAAC,SAAS,GAAG,CACvF,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"responseHandler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/responseHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../src/daemon/ipcServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;
|
|
1
|
+
{"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../src/daemon/ipcServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgCH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAEvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;;IAyBlD;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwDrB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAiB3B;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,MAAM;CAG/B"}
|
package/dist/daemon/ipcServer.js
CHANGED
|
@@ -40,14 +40,11 @@ export class IPCServer {
|
|
|
40
40
|
workerManager = new WorkerManager();
|
|
41
41
|
pendingRequests = new PendingRequestManager();
|
|
42
42
|
sessionService = new SessionService();
|
|
43
|
-
// Delegate handlers
|
|
44
43
|
requestHandlers;
|
|
45
44
|
responseHandler;
|
|
46
45
|
constructor() {
|
|
47
|
-
// Initialize handlers with dependencies
|
|
48
46
|
this.requestHandlers = new RequestHandlers(this.workerManager, this.pendingRequests, this.sessionService, (socket, response) => this.sendResponse(socket, response), this.startTime);
|
|
49
47
|
this.responseHandler = new ResponseHandler(this.pendingRequests, this.sessionService, (socket, response) => this.sendResponse(socket, response));
|
|
50
|
-
// Wire up worker events
|
|
51
48
|
this.workerManager.on('message', (message) => this.responseHandler.handleWorkerResponse(message));
|
|
52
49
|
this.workerManager.on('exit', (code, signal) => this.responseHandler.handleWorkerExit(code, signal));
|
|
53
50
|
}
|
|
@@ -61,7 +58,6 @@ export class IPCServer {
|
|
|
61
58
|
* Start the IPC server on Unix domain socket.
|
|
62
59
|
*/
|
|
63
60
|
async start() {
|
|
64
|
-
// Ensure ~/.bdg directory exists
|
|
65
61
|
ensureSessionDir();
|
|
66
62
|
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
67
63
|
await this.socketServer.start(socketPath, (socket) => this.handleConnection(socket));
|
|
@@ -75,7 +71,6 @@ export class IPCServer {
|
|
|
75
71
|
let buffer = '';
|
|
76
72
|
socket.on('data', (chunk) => {
|
|
77
73
|
buffer += chunk.toString('utf-8');
|
|
78
|
-
// Process complete JSONL frames (separated by newlines)
|
|
79
74
|
const lines = buffer.split('\n');
|
|
80
75
|
buffer = lines.pop() ?? ''; // Keep incomplete line in buffer
|
|
81
76
|
for (const line of lines) {
|
|
@@ -97,24 +92,20 @@ export class IPCServer {
|
|
|
97
92
|
handleMessage(socket, line) {
|
|
98
93
|
console.error('[daemon] Raw frame:', line);
|
|
99
94
|
try {
|
|
100
|
-
// Parse message - could be either IPC message or command request
|
|
101
95
|
const parsed = JSON.parse(line);
|
|
102
96
|
if (!isValidIPCMessage(parsed)) {
|
|
103
97
|
console.error('[daemon] Invalid message structure:', parsed);
|
|
104
98
|
return;
|
|
105
99
|
}
|
|
106
100
|
const message = parsed;
|
|
107
|
-
// Check if this is a command request
|
|
108
101
|
if (isCommandRequest(message.type)) {
|
|
109
102
|
this.requestHandlers.handleCommandRequest(socket, message);
|
|
110
103
|
return;
|
|
111
104
|
}
|
|
112
|
-
// Filter out response messages (should never be received from client)
|
|
113
105
|
if (message.type.endsWith('_response')) {
|
|
114
106
|
console.error(`[daemon] Unexpected response message from client: ${message.type}`);
|
|
115
107
|
return;
|
|
116
108
|
}
|
|
117
|
-
// Route to appropriate handler
|
|
118
109
|
switch (message.type) {
|
|
119
110
|
case 'handshake_request':
|
|
120
111
|
this.requestHandlers.handleHandshake(socket, message);
|
|
@@ -125,6 +116,9 @@ export class IPCServer {
|
|
|
125
116
|
case 'peek_request':
|
|
126
117
|
this.requestHandlers.handlePeekRequest(socket, message);
|
|
127
118
|
break;
|
|
119
|
+
case 'har_data_request':
|
|
120
|
+
this.requestHandlers.handleHARDataRequest(socket, message);
|
|
121
|
+
break;
|
|
128
122
|
case 'start_session_request':
|
|
129
123
|
void this.requestHandlers.handleStartSessionRequest(socket, message);
|
|
130
124
|
break;
|
|
@@ -134,9 +128,9 @@ export class IPCServer {
|
|
|
134
128
|
case 'handshake_response':
|
|
135
129
|
case 'status_response':
|
|
136
130
|
case 'peek_response':
|
|
131
|
+
case 'har_data_response':
|
|
137
132
|
case 'start_session_response':
|
|
138
133
|
case 'stop_session_response':
|
|
139
|
-
// Already filtered above, but keeping cases for exhaustiveness check
|
|
140
134
|
console.error('[daemon] Unexpected response message (should have been filtered)');
|
|
141
135
|
break;
|
|
142
136
|
}
|
|
@@ -151,7 +145,6 @@ export class IPCServer {
|
|
|
151
145
|
async stop() {
|
|
152
146
|
await this.socketServer.stop();
|
|
153
147
|
this.workerManager.dispose();
|
|
154
|
-
// Cleanup files
|
|
155
148
|
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
156
149
|
try {
|
|
157
150
|
unlinkSync(socketPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcServer.js","sourceRoot":"","sources":["../../src/daemon/ipcServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAIhC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAgD,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEnC;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,GAAG,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACH,SAAS,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC9C,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ipcServer.js","sourceRoot":"","sources":["../../src/daemon/ipcServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAgBlD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAgBlD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAqF1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAgBzC"}
|
package/dist/daemon/launcher.js
CHANGED
|
@@ -16,9 +16,9 @@ import { DaemonStartupError } from '../daemon/errors.js';
|
|
|
16
16
|
import { cleanupStaleSession } from '../session/cleanup.js';
|
|
17
17
|
import { acquireDaemonLock, releaseDaemonLock } from '../session/lock.js';
|
|
18
18
|
import { getSessionFilePath } from '../session/paths.js';
|
|
19
|
-
import { isProcessAlive } from '../session/process.js';
|
|
20
19
|
import { createLogger } from '../ui/logging/index.js';
|
|
21
20
|
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
21
|
+
import { isProcessAlive } from '../utils/process.js';
|
|
22
22
|
const __filename = fileURLToPath(import.meta.url);
|
|
23
23
|
const __dirname = dirname(__filename);
|
|
24
24
|
const log = createLogger('launcher');
|
|
@@ -36,7 +36,6 @@ const log = createLogger('launcher');
|
|
|
36
36
|
* @throws Error if daemon fails to start or is already running
|
|
37
37
|
*/
|
|
38
38
|
export async function launchDaemon() {
|
|
39
|
-
// Acquire daemon lock atomically to prevent concurrent daemon starts (P0 Fix #1)
|
|
40
39
|
log.debug('Acquiring daemon lock...');
|
|
41
40
|
if (!acquireDaemonLock()) {
|
|
42
41
|
const error = new Error('Daemon startup already in progress. Wait a moment and try again.');
|
|
@@ -45,13 +44,11 @@ export async function launchDaemon() {
|
|
|
45
44
|
throw error;
|
|
46
45
|
}
|
|
47
46
|
try {
|
|
48
|
-
// Clean up stale session files first
|
|
49
47
|
log.debug('Checking for stale session files...');
|
|
50
48
|
const cleaned = cleanupStaleSession();
|
|
51
49
|
if (cleaned) {
|
|
52
50
|
log.debug('Cleaned up stale session files');
|
|
53
51
|
}
|
|
54
|
-
// Check if daemon is already running
|
|
55
52
|
const daemonPidPath = getSessionFilePath('DAEMON_PID');
|
|
56
53
|
if (fs.existsSync(daemonPidPath)) {
|
|
57
54
|
try {
|
|
@@ -65,25 +62,19 @@ export async function launchDaemon() {
|
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
catch (error) {
|
|
68
|
-
// If it's our "already running" error, re-throw it
|
|
69
65
|
if (error instanceof Error &&
|
|
70
66
|
'code' in error &&
|
|
71
67
|
error.code === 'DAEMON_ALREADY_RUNNING') {
|
|
72
68
|
throw error;
|
|
73
69
|
}
|
|
74
|
-
// Otherwise ignore read errors, will clean up below
|
|
75
70
|
}
|
|
76
71
|
}
|
|
77
|
-
// Determine the daemon script path
|
|
78
|
-
// When running from dist/daemon/launcher.js, __dirname is dist/daemon/
|
|
79
|
-
// So we go up one level to dist/, then to daemon.js
|
|
80
72
|
const daemonScriptPath = join(__dirname, '..', 'daemon.js');
|
|
81
73
|
if (!fs.existsSync(daemonScriptPath)) {
|
|
82
74
|
throw new DaemonStartupError(`Daemon script not found at ${daemonScriptPath}. Did you run 'npm run build'?`, 'DAEMON_SCRIPT_NOT_FOUND');
|
|
83
75
|
}
|
|
84
76
|
log.debug(`Starting daemon: ${daemonScriptPath}`);
|
|
85
|
-
|
|
86
|
-
const daemon = spawn('node', [daemonScriptPath], {
|
|
77
|
+
const daemon = spawn(process.execPath, [daemonScriptPath], {
|
|
87
78
|
detached: true,
|
|
88
79
|
stdio: 'ignore', // Fully detached - daemon must not depend on parent's stdio
|
|
89
80
|
env: {
|
|
@@ -91,11 +82,7 @@ export async function launchDaemon() {
|
|
|
91
82
|
BDG_DAEMON: '1', // Mark as daemon worker
|
|
92
83
|
},
|
|
93
84
|
});
|
|
94
|
-
// Note: No stdio pipes to avoid SIGPIPE when CLI exits
|
|
95
|
-
// Daemon logs go to daemon's own stderr (can be captured separately if needed)
|
|
96
|
-
// Detach the daemon so it continues running after parent exits
|
|
97
85
|
daemon.unref();
|
|
98
|
-
// Wait for daemon to be ready (socket file exists)
|
|
99
86
|
log.debug('Waiting for daemon to be ready...');
|
|
100
87
|
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
101
88
|
const maxWaitMs = 5000;
|
|
@@ -103,18 +90,14 @@ export async function launchDaemon() {
|
|
|
103
90
|
while (Date.now() - startTime < maxWaitMs) {
|
|
104
91
|
if (fs.existsSync(socketPath)) {
|
|
105
92
|
log.debug('Daemon is ready');
|
|
106
|
-
// Note: Keep daemon lock held - daemon will release it when it writes its PID
|
|
107
93
|
return daemon;
|
|
108
94
|
}
|
|
109
|
-
// Wait 100ms before checking again
|
|
110
95
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
111
96
|
}
|
|
112
|
-
// Timeout - daemon failed to start
|
|
113
97
|
daemon.kill();
|
|
114
98
|
throw new DaemonStartupError('Daemon failed to start within 5 seconds', 'DAEMON_START_TIMEOUT');
|
|
115
99
|
}
|
|
116
100
|
catch (error) {
|
|
117
|
-
// Release lock on any error
|
|
118
101
|
releaseDaemonLock();
|
|
119
102
|
throw error;
|
|
120
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdpSetup.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/cdpSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,aAAa,CAAC;IACnB,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"cdpSetup.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/cdpSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,aAAa,CAAC;IACnB,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,cAAc,CAAC,CAyCzB"}
|
|
@@ -20,7 +20,6 @@ export async function setupCDPAndNavigate(config, telemetryStore, chrome, log, o
|
|
|
20
20
|
if (!telemetryStore.targetInfo) {
|
|
21
21
|
throw new CDPConnectionError('Failed to obtain target information');
|
|
22
22
|
}
|
|
23
|
-
// Connect to CDP (inject logger for structured logging)
|
|
24
23
|
const cdp = new CDPConnection(log);
|
|
25
24
|
await cdp.connect(telemetryStore.targetInfo.webSocketDebuggerUrl, {
|
|
26
25
|
autoReconnect: false,
|
|
@@ -32,11 +31,9 @@ export async function setupCDPAndNavigate(config, telemetryStore, chrome, log, o
|
|
|
32
31
|
},
|
|
33
32
|
});
|
|
34
33
|
log.info('CDP connection established');
|
|
35
|
-
// Activate telemetry collectors BEFORE navigation
|
|
36
34
|
console.error(`[worker] Activating collectors before navigation...`);
|
|
37
35
|
const cleanupFunctions = await startTelemetryCollectors(cdp, config, telemetryStore, log);
|
|
38
36
|
console.error(`[worker] Collectors active and ready to capture telemetry`);
|
|
39
|
-
// Navigate to target URL
|
|
40
37
|
const normalizedUrl = normalizeUrl(config.url);
|
|
41
38
|
console.error(`[worker] Navigating to ${normalizedUrl}...`);
|
|
42
39
|
await cdp.send('Page.navigate', { url: normalizedUrl });
|
|
@@ -44,7 +41,6 @@ export async function setupCDPAndNavigate(config, telemetryStore, chrome, log, o
|
|
|
44
41
|
maxWaitMs: DEFAULT_PAGE_READINESS_TIMEOUT_MS,
|
|
45
42
|
});
|
|
46
43
|
console.error(`[worker] Page ready`);
|
|
47
|
-
// Update target info after navigation
|
|
48
44
|
if (chrome && telemetryStore.targetInfo) {
|
|
49
45
|
const currentTargetId = telemetryStore.targetInfo.id;
|
|
50
46
|
const updatedTargets = await fetchCDPTargets(config.port, log);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdpSetup.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/cdpSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAoB,EACpB,cAA8B,EAC9B,MAA6B,EAC7B,GAAW,EACX,YAAwB;IAExB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;IACtE,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"cdpSetup.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/cdpSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAoB,EACpB,cAA8B,EAC9B,MAA6B,EAC7B,GAAW,EACX,YAAwB;IAExB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,kBAAkB,CAAC,qCAAqC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE;QAChE,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,iCAAiC,IAAI,aAAa,MAAM,GAAG,CAAC,CAAC;YACtE,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC;YACzC,YAAY,EAAE,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAEvC,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAC1F,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,0BAA0B,aAAa,KAAK,CAAC,CAAC;IAC5D,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAExD,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC1B,SAAS,EAAE,iCAAiC;KAC7C,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAErC,IAAI,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;QAC3E,IAAI,aAAa,EAAE,CAAC;YAClB,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,4BAA4B,aAAa,CAAC,KAAK,KAAK,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -61,7 +61,6 @@ async function setupLaunchedChrome(config, telemetryStore, log) {
|
|
|
61
61
|
log.info(`Chrome launched (PID ${chrome.pid})`);
|
|
62
62
|
writeChromePid(chrome.pid);
|
|
63
63
|
log.debug(`[worker] Chrome PID ${chrome.pid} cached for emergency cleanup`);
|
|
64
|
-
// Find page target
|
|
65
64
|
console.error(`[worker] Connecting to Chrome via CDP...`);
|
|
66
65
|
const targets = await fetchCDPTargets(config.port, log);
|
|
67
66
|
const foundTarget = targets.find((t) => t.type === 'page');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chromeConnection.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/chromeConnection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB,EACpB,cAA8B,EAC9B,GAAW;IAEX,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAoB,EAAE,cAA8B;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CACnB,wDAAwD,EACxD,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,YAAY,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,YAAY,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;IAEtD,cAAc,CAAC,aAAa,CAAC;QAC3B,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,iBAAiB;QACxB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,oBAAoB,EAAE,KAAK;KAC5B,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,YAAY,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAE1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAoB,EACpB,cAA8B,EAC9B,GAAW;IAEX,GAAG,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,GAAG;QACX,GAAG,aAAa,CAAC;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;KACH,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAEhD,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAE5E,
|
|
1
|
+
{"version":3,"file":"chromeConnection.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/chromeConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signalHandlers.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/signalHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAQ1E;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"signalHandlers.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/signalHandlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAQ1E;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAoBnF"}
|
|
@@ -13,17 +13,14 @@ import { workerReceivedSIGTERM, workerReceivedSIGINT, workerTimeoutReached, } fr
|
|
|
13
13
|
*/
|
|
14
14
|
export function setupSignalHandlers(context, timeout) {
|
|
15
15
|
const { log } = context;
|
|
16
|
-
// SIGTERM handler (graceful shutdown from daemon)
|
|
17
16
|
process.on('SIGTERM', () => {
|
|
18
17
|
log.debug(workerReceivedSIGTERM());
|
|
19
18
|
void cleanupWorker('normal', context).then(() => process.exit(0));
|
|
20
19
|
});
|
|
21
|
-
// SIGINT handler (Ctrl+C)
|
|
22
20
|
process.on('SIGINT', () => {
|
|
23
21
|
log.debug(workerReceivedSIGINT());
|
|
24
22
|
void cleanupWorker('normal', context).then(() => process.exit(0));
|
|
25
23
|
});
|
|
26
|
-
// Timeout handler (auto-stop after configured duration)
|
|
27
24
|
if (timeout) {
|
|
28
25
|
console.error(`[worker] Auto-stop after ${timeout}s`);
|
|
29
26
|
setTimeout(() => {
|