@1mcp/agent 0.35.0-beta.1 → 0.35.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/admin/assets/{admin-console-CX5GzncA.css → admin-console-C5_zD_qW.css} +1 -1
- package/build/admin/assets/{admin-console-CkZ5lBKg.js → admin-console-CbHHoqLr.js} +6 -6
- package/build/admin/index.html +2 -2
- package/build/application/services/healthService.d.ts +32 -0
- package/build/application/services/healthService.d.ts.map +1 -1
- package/build/application/services/healthService.js +49 -0
- package/build/application/services/healthService.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +10 -0
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/restart.d.ts +69 -0
- package/build/commands/mcp/restart.d.ts.map +1 -0
- package/build/commands/mcp/restart.js +259 -0
- package/build/commands/mcp/restart.js.map +1 -0
- package/build/commands/mcp/status.d.ts +24 -1
- package/build/commands/mcp/status.d.ts.map +1 -1
- package/build/commands/mcp/status.js +158 -14
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/serve/index.d.ts +8 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +12 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +13 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +111 -57
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts +48 -26
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js +230 -61
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/commands/serve/serveRestart.d.ts +1 -1
- package/build/commands/serve/serveRestart.js +1 -1
- package/build/commands/serve/serveStatus.d.ts +20 -10
- package/build/commands/serve/serveStatus.d.ts.map +1 -1
- package/build/commands/serve/serveStatus.js +174 -13
- package/build/commands/serve/serveStatus.js.map +1 -1
- package/build/commands/serve/serveStop.d.ts +13 -4
- package/build/commands/serve/serveStop.d.ts.map +1 -1
- package/build/commands/serve/serveStop.js +212 -23
- package/build/commands/serve/serveStop.js.map +1 -1
- package/build/config/configManager.d.ts +2 -0
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +19 -8
- package/build/config/configManager.js.map +1 -1
- package/build/config/mcpConfigMerge.d.ts.map +1 -1
- package/build/config/mcpConfigMerge.js +13 -2
- package/build/config/mcpConfigMerge.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/core/client/clientManager.d.ts +24 -1
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +268 -2
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/client/connectionHandler.d.ts.map +1 -1
- package/build/core/client/connectionHandler.js +18 -1
- package/build/core/client/connectionHandler.js.map +1 -1
- package/build/core/configChangeHandler.d.ts +1 -0
- package/build/core/configChangeHandler.d.ts.map +1 -1
- package/build/core/configChangeHandler.js +14 -0
- package/build/core/configChangeHandler.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js +16 -4
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/server/backendStdioSupervisor.d.ts +73 -0
- package/build/core/server/backendStdioSupervisor.d.ts.map +1 -0
- package/build/core/server/backendStdioSupervisor.js +191 -0
- package/build/core/server/backendStdioSupervisor.js.map +1 -0
- package/build/core/server/backgroundLaunchConfig.d.ts +15 -0
- package/build/core/server/backgroundLaunchConfig.d.ts.map +1 -0
- package/build/core/server/backgroundLaunchConfig.js +46 -0
- package/build/core/server/backgroundLaunchConfig.js.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts +44 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisor.js +252 -0
- package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts +30 -0
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisorState.js +81 -0
- package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -0
- package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
- package/build/core/server/clientInstanceFactory.js +1 -0
- package/build/core/server/clientInstanceFactory.js.map +1 -1
- package/build/core/server/clientInstancePool.d.ts +17 -5
- package/build/core/server/clientInstancePool.d.ts.map +1 -1
- package/build/core/server/clientInstancePool.js +198 -33
- package/build/core/server/clientInstancePool.js.map +1 -1
- package/build/core/server/clientInstancePoolTypes.d.ts +7 -1
- package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
- package/build/core/server/clientInstancePoolTypes.js.map +1 -1
- package/build/core/server/runtimeScopeOwnership.d.ts +61 -0
- package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -0
- package/build/core/server/runtimeScopeOwnership.js +544 -0
- package/build/core/server/runtimeScopeOwnership.js.map +1 -0
- package/build/core/server/serverManager.d.ts +2 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +30 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateIdentity.d.ts +10 -0
- package/build/core/server/templateIdentity.d.ts.map +1 -1
- package/build/core/server/templateIdentity.js +33 -0
- package/build/core/server/templateIdentity.js.map +1 -1
- package/build/core/server/templateServerCleanup.d.ts.map +1 -1
- package/build/core/server/templateServerCleanup.js +7 -1
- package/build/core/server/templateServerCleanup.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +13 -0
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +129 -4
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +111 -5
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.js +103 -45
- package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -2
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/management/managementAdapter.js +45 -26
- package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
- package/build/core/tools/internal/adapters/management/types.d.ts +21 -2
- package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.js +73 -22
- package/build/core/tools/internal/managementHandlers.js.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +2 -2
- package/build/core/tools/internal/schemas/edit.js +1 -1
- package/build/core/tools/internal/schemas/edit.js.map +1 -1
- package/build/core/tools/internal/schemas/index.d.ts +77 -6
- package/build/core/tools/internal/schemas/index.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/management.d.ts +75 -4
- package/build/core/tools/internal/schemas/management.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/management.js +69 -2
- package/build/core/tools/internal/schemas/management.js.map +1 -1
- package/build/core/types/client.d.ts +9 -2
- package/build/core/types/client.d.ts.map +1 -1
- package/build/core/types/client.js +4 -0
- package/build/core/types/client.js.map +1 -1
- package/build/core/types/transport.d.ts +25 -1
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +21 -3
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/admin/adminBackendRestartService.d.ts +41 -0
- package/build/domains/admin/adminBackendRestartService.d.ts.map +1 -0
- package/build/domains/admin/adminBackendRestartService.js +22 -0
- package/build/domains/admin/adminBackendRestartService.js.map +1 -0
- package/build/domains/admin/adminDomain.d.ts +7 -0
- package/build/domains/admin/adminDomain.d.ts.map +1 -1
- package/build/domains/admin/adminDomain.js +13 -0
- package/build/domains/admin/adminDomain.js.map +1 -1
- package/build/domains/admin/adminOAuthService.d.ts +26 -0
- package/build/domains/admin/adminOAuthService.d.ts.map +1 -0
- package/build/domains/admin/adminOAuthService.js +71 -0
- package/build/domains/admin/adminOAuthService.js.map +1 -0
- package/build/domains/admin/adminOperationService.d.ts +1 -0
- package/build/domains/admin/adminOperationService.d.ts.map +1 -1
- package/build/domains/admin/adminOperationService.js +39 -14
- package/build/domains/admin/adminOperationService.js.map +1 -1
- package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts +20 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts.map +1 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js +78 -0
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +18 -2
- package/build/server.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts +4 -0
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/adminRoutes.js +280 -22
- package/build/transport/http/routes/adminRoutes.js.map +1 -1
- package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/healthRoutes.js +70 -2
- package/build/transport/http/routes/healthRoutes.js.map +1 -1
- package/build/transport/http/routes/oauthRoutes.d.ts +3 -2
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +10 -8
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +13 -4
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +27 -15
- package/build/transport/transportFactory.js.map +1 -1
- package/build/transport/transportFactory.testSetup.js +2 -0
- package/build/transport/transportFactory.testSetup.js.map +1 -1
- package/build/utils/core/errorTypes.d.ts +3 -0
- package/build/utils/core/errorTypes.d.ts.map +1 -1
- package/build/utils/core/errorTypes.js +7 -0
- package/build/utils/core/errorTypes.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,43 +2,121 @@ import { spawn } from 'child_process';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { ConfigManager } from '../../config/configManager.js';
|
|
5
|
-
import {
|
|
5
|
+
import { cleanupBackgroundLaunchConfig, writeBackgroundLaunchConfig } from '../../core/server/backgroundLaunchConfig.js';
|
|
6
|
+
import { cleanupBackgroundSupervisorState, runBackgroundRuntimeSupervisor, } from '../../core/server/backgroundRuntimeSupervisor.js';
|
|
7
|
+
import { readBackgroundSupervisorState, } from '../../core/server/backgroundRuntimeSupervisorState.js';
|
|
8
|
+
import { isProcessAlive, readPidFile } from '../../core/server/pidFileManager.js';
|
|
6
9
|
import { discoverScopedRuntime, probeLoadingSummary, probeReadiness, } from '../../core/server/runtimeLifecycle.js';
|
|
10
|
+
import { claimRuntimeScope } from '../../core/server/runtimeScopeOwnership.js';
|
|
7
11
|
import logger from '../../logger/logger.js';
|
|
8
12
|
import { resolveLoggingConfig } from '../../logger/loggingConfig.js';
|
|
9
13
|
import { normalizedArgv } from '../../utils/cli/normalizedArgv.js';
|
|
10
14
|
import { resolveServeConfigPaths } from './runtimeScope.js';
|
|
11
15
|
/**
|
|
12
|
-
* `serve --background`: start
|
|
13
|
-
*
|
|
16
|
+
* `serve --background`: start a detached persistent supervisor for the selected
|
|
17
|
+
* Runtime Scope, then return once its current worker is ready.
|
|
14
18
|
*
|
|
15
|
-
* The
|
|
16
|
-
*
|
|
17
|
-
* recursively background itself), waits for the child's PID file and
|
|
18
|
-
* `/health/ready`, and reports the result.
|
|
19
|
+
* The launcher never serves. The supervisor owns the Runtime Scope, starts
|
|
20
|
+
* authorized workers, and remains resident across retries and crash-loop state.
|
|
19
21
|
*/
|
|
20
22
|
/** Internal guard flag name; mirrors the hidden yargs option in `index.ts`. */
|
|
21
23
|
export const BACKGROUND_GUARD_FLAG = 'background-bootstrap';
|
|
24
|
+
export const RUNTIME_OWNER_CLAIM_ID_FLAG = 'runtime-owner-claim-id';
|
|
25
|
+
export const BACKGROUND_LAUNCH_CONFIG_FLAG = 'background-launch-config';
|
|
26
|
+
const BACKGROUND_STARTUP_OPTION_KEYS = [
|
|
27
|
+
'config',
|
|
28
|
+
'config-dir',
|
|
29
|
+
'log-level',
|
|
30
|
+
'log-file',
|
|
31
|
+
'transport',
|
|
32
|
+
'port',
|
|
33
|
+
'host',
|
|
34
|
+
'external-url',
|
|
35
|
+
'preset',
|
|
36
|
+
'filter',
|
|
37
|
+
'pagination',
|
|
38
|
+
'auth',
|
|
39
|
+
'enable-auth',
|
|
40
|
+
'enable-scope-validation',
|
|
41
|
+
'enable-enhanced-security',
|
|
42
|
+
'session-ttl',
|
|
43
|
+
'session-storage-path',
|
|
44
|
+
'rate-limit-window',
|
|
45
|
+
'rate-limit-max',
|
|
46
|
+
'trust-proxy',
|
|
47
|
+
'health-info-level',
|
|
48
|
+
'enable-async-loading',
|
|
49
|
+
'async-min-servers',
|
|
50
|
+
'async-timeout',
|
|
51
|
+
'async-batch-notifications',
|
|
52
|
+
'async-batch-delay',
|
|
53
|
+
'async-notify-on-ready',
|
|
54
|
+
'enable-lazy-loading',
|
|
55
|
+
'lazy-mode',
|
|
56
|
+
'lazy-inline-catalog',
|
|
57
|
+
'lazy-catalog-format',
|
|
58
|
+
'lazy-direct-expose',
|
|
59
|
+
'lazy-cache-max-entries',
|
|
60
|
+
'lazy-cache-ttl',
|
|
61
|
+
'lazy-preload',
|
|
62
|
+
'lazy-preload-keywords',
|
|
63
|
+
'lazy-fallback-on-error',
|
|
64
|
+
'lazy-fallback-timeout',
|
|
65
|
+
'enable-config-reload',
|
|
66
|
+
'config-reload-debounce',
|
|
67
|
+
'enable-env-substitution',
|
|
68
|
+
'enable-session-persistence',
|
|
69
|
+
'session-persist-requests',
|
|
70
|
+
'session-persist-interval',
|
|
71
|
+
'session-background-flush',
|
|
72
|
+
'enable-client-notifications',
|
|
73
|
+
'enable-jsonrpc-error-logging',
|
|
74
|
+
'enable-internal-tools',
|
|
75
|
+
'internal-tools',
|
|
76
|
+
'instructions-template',
|
|
77
|
+
];
|
|
22
78
|
/** Default log file for a background runtime when none is configured. */
|
|
23
79
|
export function defaultBackgroundLogFile(configDir) {
|
|
24
80
|
return path.join(configDir, 'logs', 'server.log');
|
|
25
81
|
}
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
82
|
+
/** Materialize parsed CLI, environment, and default values for the supervisor. */
|
|
83
|
+
export function buildBackgroundSupervisorArgs(parsedArgv, opts) {
|
|
84
|
+
const args = [];
|
|
85
|
+
for (const key of BACKGROUND_STARTUP_OPTION_KEYS) {
|
|
86
|
+
if (key === 'transport' || key === 'log-file')
|
|
87
|
+
continue;
|
|
88
|
+
const value = parsedArgv[key];
|
|
89
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
90
|
+
args.push(`--${key}=${String(value)}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
args.push('--transport=http', `--log-file=${opts.logFile}`, `--${BACKGROUND_GUARD_FLAG}`);
|
|
94
|
+
return args;
|
|
95
|
+
}
|
|
96
|
+
/** Build the immutable effective invocation used for every supervised worker. */
|
|
97
|
+
export function buildBackgroundWorkerArgs(serveArgs, opts) {
|
|
98
|
+
const out = stripBackgroundManagedArgs(serveArgs);
|
|
99
|
+
out.push('--transport', 'http', '--log-file', opts.logFile, `--${RUNTIME_OWNER_CLAIM_ID_FLAG}`, opts.claimId);
|
|
100
|
+
if (opts.launchConfigFile)
|
|
101
|
+
out.push(`--${BACKGROUND_LAUNCH_CONFIG_FLAG}`, opts.launchConfigFile);
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
function stripBackgroundManagedArgs(serveArgs) {
|
|
105
|
+
const stripWithValue = new Set([
|
|
106
|
+
'--transport',
|
|
107
|
+
'-t',
|
|
108
|
+
'--log-file',
|
|
109
|
+
`--${RUNTIME_OWNER_CLAIM_ID_FLAG}`,
|
|
110
|
+
`--${BACKGROUND_LAUNCH_CONFIG_FLAG}`,
|
|
111
|
+
]);
|
|
35
112
|
const out = [];
|
|
36
113
|
for (let i = 0; i < serveArgs.length; i++) {
|
|
37
114
|
const token = serveArgs[i];
|
|
38
|
-
if (
|
|
115
|
+
if (/^--(?:background|restart|status|stop)(?:=.*)?$/.test(token) ||
|
|
116
|
+
/^--background-bootstrap(?:=.*)?$/.test(token)) {
|
|
39
117
|
continue;
|
|
40
118
|
}
|
|
41
|
-
if (/^--(transport|log-file)=/.test(token) || /^-t=/.test(token)) {
|
|
119
|
+
if (/^--(transport|log-file|runtime-owner-claim-id|background-launch-config)=/.test(token) || /^-t=/.test(token)) {
|
|
42
120
|
continue;
|
|
43
121
|
}
|
|
44
122
|
if (stripWithValue.has(token)) {
|
|
@@ -47,7 +125,6 @@ export function buildBackgroundChildArgs(serveArgs, opts) {
|
|
|
47
125
|
}
|
|
48
126
|
out.push(token);
|
|
49
127
|
}
|
|
50
|
-
out.push('--transport', 'http', '--log-file', opts.logFile, `--${BACKGROUND_GUARD_FLAG}`);
|
|
51
128
|
return out;
|
|
52
129
|
}
|
|
53
130
|
/**
|
|
@@ -72,7 +149,7 @@ function stripServeToken(args) {
|
|
|
72
149
|
}
|
|
73
150
|
/**
|
|
74
151
|
* Wait until the child's PID file identifies the spawned child AND
|
|
75
|
-
* `/health/ready` succeeds, or until timeout /
|
|
152
|
+
* `/health/ready` succeeds, or until timeout / worker exit.
|
|
76
153
|
*/
|
|
77
154
|
export async function waitForBackgroundReady(configDir, childPid, options = {}) {
|
|
78
155
|
const timeoutMs = options.timeoutMs ?? 30000;
|
|
@@ -94,10 +171,46 @@ export async function waitForBackgroundReady(configDir, childPid, options = {})
|
|
|
94
171
|
}
|
|
95
172
|
return { ready: false, reason: `timed out after ${timeoutMs}ms waiting for readiness` };
|
|
96
173
|
}
|
|
174
|
+
/** Wait through worker replacement until readiness or terminal crash-loop. */
|
|
175
|
+
export async function waitForBackgroundSupervisorReady(configDir, supervisorPid, options = {}) {
|
|
176
|
+
const intervalMs = options.intervalMs ?? 250;
|
|
177
|
+
const probe = options.readinessProbe ?? probeReadiness;
|
|
178
|
+
const processAlive = options.isSupervisorAlive ?? isProcessAlive;
|
|
179
|
+
const readState = options.readState ?? readBackgroundSupervisorState;
|
|
180
|
+
const readRuntimeInfo = options.readRuntimeInfo ?? readPidFile;
|
|
181
|
+
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
182
|
+
const startedAt = Date.now();
|
|
183
|
+
for (;;) {
|
|
184
|
+
if (!processAlive(supervisorPid)) {
|
|
185
|
+
return { ready: false, reason: 'background supervisor exited before the runtime became ready' };
|
|
186
|
+
}
|
|
187
|
+
const state = readState(configDir);
|
|
188
|
+
if (state?.supervisorPid === supervisorPid) {
|
|
189
|
+
if (state.status === 'crash-loop') {
|
|
190
|
+
return { ready: false, terminal: true, reason: 'background runtime entered crash-loop' };
|
|
191
|
+
}
|
|
192
|
+
if (state.runtimePid !== null) {
|
|
193
|
+
const info = readRuntimeInfo(configDir);
|
|
194
|
+
options.onProgress?.({ elapsedMs: Date.now() - startedAt, info: info ?? undefined });
|
|
195
|
+
if (info?.pid === state.runtimePid && (await probe(info))) {
|
|
196
|
+
return { ready: true, info };
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
options.onProgress?.({ elapsedMs: Date.now() - startedAt });
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
await sleep(intervalMs);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
97
206
|
function defaultLoadAppConfig(parsedArgv) {
|
|
98
207
|
const { configFilePath } = resolveServeConfigPaths(parsedArgv);
|
|
99
208
|
return ConfigManager.getInstance(configFilePath).getAppConfig();
|
|
100
209
|
}
|
|
210
|
+
function failBackgroundStart(message) {
|
|
211
|
+
process.stderr.write(`${message}\n`);
|
|
212
|
+
process.exitCode = 1;
|
|
213
|
+
}
|
|
101
214
|
/**
|
|
102
215
|
* Parent routine for `serve --background`. Sets `process.exitCode` and returns;
|
|
103
216
|
* never starts a server in-process.
|
|
@@ -112,29 +225,25 @@ export async function runServeBackground(parsedArgv, deps = {}) {
|
|
|
112
225
|
// HTTP-only: reject stdio; sse normalizes to http.
|
|
113
226
|
const effectiveTransport = parsedArgv.transport ?? appConfig.transport ?? 'http';
|
|
114
227
|
if (effectiveTransport === 'stdio') {
|
|
115
|
-
|
|
116
|
-
'stdio uses the invoking process stdin/stdout and cannot be detached. Use HTTP transport
|
|
117
|
-
process.exitCode = 1;
|
|
228
|
+
failBackgroundStart('Error: `serve --background --transport stdio` is not supported.\n' +
|
|
229
|
+
'stdio uses the invoking process stdin/stdout and cannot be detached. Use HTTP transport.');
|
|
118
230
|
return;
|
|
119
231
|
}
|
|
120
|
-
//
|
|
232
|
+
// Fail closed when discovery already proves that this scope is occupied.
|
|
121
233
|
const existing = await discoverScopedRuntime(configDir);
|
|
122
234
|
if (existing.status === 'running' && existing.info) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
process.exitCode = 0;
|
|
235
|
+
failBackgroundStart(`A runtime already owns this Runtime Scope (PID ${existing.info.pid}).\n` +
|
|
236
|
+
`Refusing to start another runtime. Stop it first.`);
|
|
126
237
|
return;
|
|
127
238
|
}
|
|
128
239
|
if (existing.status === 'unreachable' && existing.info) {
|
|
129
|
-
|
|
130
|
-
`Refusing to start a second runtime. Check 'serve --status' or stop it first
|
|
131
|
-
process.exitCode = 1;
|
|
240
|
+
failBackgroundStart(`A runtime already occupies this Runtime Scope (PID ${existing.info.pid}) but is not ready yet.\n` +
|
|
241
|
+
`Refusing to start a second runtime. Check 'serve --status' or stop it first.`);
|
|
132
242
|
return;
|
|
133
243
|
}
|
|
134
244
|
if (existing.status === 'error') {
|
|
135
|
-
|
|
136
|
-
`Refusing to start a second runtime until the PID file problem is fixed
|
|
137
|
-
process.exitCode = 1;
|
|
245
|
+
failBackgroundStart(`Cannot inspect Runtime Scope ${configDir}: ${existing.error ?? 'PID file could not be read'}.\n` +
|
|
246
|
+
`Refusing to start a second runtime until the PID file problem is fixed.`);
|
|
138
247
|
return;
|
|
139
248
|
}
|
|
140
249
|
// Resolve the effective log file, defaulting to <configDir>/logs/server.log.
|
|
@@ -148,32 +257,30 @@ export async function runServeBackground(parsedArgv, deps = {}) {
|
|
|
148
257
|
});
|
|
149
258
|
const logFile = resolved.file ?? defaultBackgroundLogFile(configDir);
|
|
150
259
|
fs.mkdirSync(path.dirname(logFile), { recursive: true });
|
|
151
|
-
//
|
|
152
|
-
const
|
|
153
|
-
const childServeArgs = buildBackgroundChildArgs(stripServeToken(rawArgv), { logFile });
|
|
260
|
+
// Materialize parsed CLI/env/default precedence into the detached supervisor.
|
|
261
|
+
const supervisorServeArgs = buildBackgroundSupervisorArgs(parsedArgv, { logFile });
|
|
154
262
|
const { command, baseArgs } = resolveSelfInvocation();
|
|
155
|
-
const
|
|
263
|
+
const supervisorArgs = [...baseArgs, 'serve', ...supervisorServeArgs];
|
|
156
264
|
const spawnChild = deps.spawnChild ??
|
|
157
265
|
((cmd, args, options) => spawn(cmd, args, options));
|
|
158
|
-
const
|
|
159
|
-
if (!
|
|
160
|
-
|
|
161
|
-
process.exitCode = 1;
|
|
266
|
+
const supervisor = spawnChild(command, supervisorArgs, { detached: true, stdio: 'ignore' });
|
|
267
|
+
if (!supervisor.pid) {
|
|
268
|
+
failBackgroundStart('Error: failed to spawn background runtime process.');
|
|
162
269
|
return;
|
|
163
270
|
}
|
|
164
271
|
// Allow the parent to exit independently of the child.
|
|
165
|
-
|
|
272
|
+
supervisor.unref();
|
|
166
273
|
// Acknowledge the spawn immediately so the wait is never silent.
|
|
167
|
-
process.stderr.write(`Starting background runtime (PID ${
|
|
274
|
+
process.stderr.write(`Starting background runtime supervisor (PID ${supervisor.pid})…\n`);
|
|
168
275
|
process.stderr.write(`Log file: ${logFile}\n`);
|
|
169
|
-
let
|
|
170
|
-
|
|
171
|
-
|
|
276
|
+
let supervisorExited = false;
|
|
277
|
+
supervisor.once('exit', () => {
|
|
278
|
+
supervisorExited = true;
|
|
172
279
|
});
|
|
173
280
|
const renderer = createProgressRenderer(logFile);
|
|
174
|
-
const waitForReady = deps.waitForReady ??
|
|
175
|
-
const result = await waitForReady(configDir,
|
|
176
|
-
|
|
281
|
+
const waitForReady = deps.waitForReady ?? waitForBackgroundSupervisorReady;
|
|
282
|
+
const result = await waitForReady(configDir, supervisor.pid, {
|
|
283
|
+
isSupervisorAlive: () => !supervisorExited,
|
|
177
284
|
onProgress: renderer.render,
|
|
178
285
|
});
|
|
179
286
|
renderer.clear();
|
|
@@ -184,35 +291,97 @@ export async function runServeBackground(parsedArgv, deps = {}) {
|
|
|
184
291
|
process.exitCode = 0;
|
|
185
292
|
return;
|
|
186
293
|
}
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
294
|
+
// Startup failure is non-zero. A terminal crash-loop supervisor deliberately
|
|
295
|
+
// remains resident for status/stop/restart; other bootstrap failures are
|
|
296
|
+
// terminated because they never established the persistent lifecycle owner.
|
|
297
|
+
failBackgroundStart(`Error: background runtime did not become ready (${result.reason ?? 'unknown error'}).\n` +
|
|
298
|
+
`See the log for details: ${logFile}`);
|
|
190
299
|
const killChild = deps.killChild ?? defaultKillChild;
|
|
191
|
-
if (!
|
|
192
|
-
killChild(
|
|
300
|
+
if (!result.terminal && !supervisorExited && supervisor.pid) {
|
|
301
|
+
killChild(supervisor.pid);
|
|
193
302
|
}
|
|
194
|
-
|
|
303
|
+
}
|
|
304
|
+
/** Persistent child routine selected by the internal background-bootstrap flag. */
|
|
305
|
+
export async function runServeBackgroundSupervisor(parsedArgv, deps = {}) {
|
|
306
|
+
const { runtimeScope: configDir } = resolveServeConfigPaths(parsedArgv);
|
|
307
|
+
const ownership = (deps.claimScope ?? ((scope) => claimRuntimeScope(scope, { kind: 'background-supervisor' })))(configDir);
|
|
308
|
+
let launchConfigFile;
|
|
309
|
+
let supervisorFailure;
|
|
310
|
+
try {
|
|
311
|
+
const loadAppConfig = deps.loadAppConfig ?? defaultLoadAppConfig;
|
|
312
|
+
const appConfig = loadAppConfig(parsedArgv);
|
|
313
|
+
const { resolved } = resolveLoggingConfig({
|
|
314
|
+
cli: { level: parsedArgv['log-level'], file: parsedArgv['log-file'] },
|
|
315
|
+
structured: appConfig.logging,
|
|
316
|
+
flat: { level: appConfig.logLevel, file: appConfig.logFile },
|
|
317
|
+
});
|
|
318
|
+
const logFile = resolved.file ?? defaultBackgroundLogFile(configDir);
|
|
319
|
+
fs.mkdirSync(path.dirname(logFile), { recursive: true });
|
|
320
|
+
launchConfigFile = writeBackgroundLaunchConfig(configDir, ownership.record.claimId, appConfig);
|
|
321
|
+
const rawArgv = deps.rawArgv ?? normalizedArgv;
|
|
322
|
+
const workerServeArgs = buildBackgroundWorkerArgs(stripServeToken(rawArgv), {
|
|
323
|
+
logFile,
|
|
324
|
+
claimId: ownership.record.claimId,
|
|
325
|
+
launchConfigFile,
|
|
326
|
+
});
|
|
327
|
+
const { command, baseArgs } = resolveSelfInvocation();
|
|
328
|
+
const workerArgs = [...baseArgs, 'serve', ...workerServeArgs];
|
|
329
|
+
const runSupervisor = deps.runSupervisor ?? runBackgroundRuntimeSupervisor;
|
|
330
|
+
const appendEvent = (event) => {
|
|
331
|
+
fs.appendFileSync(logFile, `${JSON.stringify(event)}\n`, 'utf8');
|
|
332
|
+
};
|
|
333
|
+
await runSupervisor({ configDir, workerCommand: command, workerArgs }, {
|
|
334
|
+
waitForReady: async (worker) => {
|
|
335
|
+
const workerPid = worker.pid;
|
|
336
|
+
if (!workerPid)
|
|
337
|
+
return false;
|
|
338
|
+
const result = await waitForBackgroundReady(configDir, workerPid, {
|
|
339
|
+
isChildAlive: () => isProcessAlive(workerPid),
|
|
340
|
+
});
|
|
341
|
+
return result.ready;
|
|
342
|
+
},
|
|
343
|
+
appendEvent,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
supervisorFailure = { error };
|
|
348
|
+
}
|
|
349
|
+
if (launchConfigFile && !cleanupBackgroundLaunchConfig(configDir, ownership.record.claimId)) {
|
|
350
|
+
throw createCleanupMismatchError('Background launch configuration changed before supervisor cleanup', supervisorFailure);
|
|
351
|
+
}
|
|
352
|
+
if (!cleanupBackgroundSupervisorState(configDir, ownership.record.pid)) {
|
|
353
|
+
throw createCleanupMismatchError('Background supervisor state changed before supervisor cleanup', supervisorFailure);
|
|
354
|
+
}
|
|
355
|
+
ownership.release();
|
|
356
|
+
if (supervisorFailure)
|
|
357
|
+
throw supervisorFailure.error;
|
|
358
|
+
}
|
|
359
|
+
function createCleanupMismatchError(message, supervisorFailure) {
|
|
360
|
+
if (!supervisorFailure) {
|
|
361
|
+
return new Error(message);
|
|
362
|
+
}
|
|
363
|
+
return new Error(message, { cause: supervisorFailure.error });
|
|
195
364
|
}
|
|
196
365
|
function defaultKillChild(pid) {
|
|
197
366
|
try {
|
|
198
367
|
process.kill(pid, 'SIGTERM');
|
|
199
368
|
}
|
|
200
369
|
catch (error) {
|
|
201
|
-
logger.warn(`Failed to terminate background
|
|
370
|
+
logger.warn(`Failed to terminate background supervisor (PID: ${pid}): ${error}`);
|
|
202
371
|
}
|
|
203
372
|
}
|
|
204
373
|
function formatStartedReport(info, opts = {}) {
|
|
205
|
-
|
|
374
|
+
const lines = [`PID: ${info.pid}`, `URL: ${info.url}`, `Log file: ${info.logFile ?? '(console only)'}`];
|
|
206
375
|
if (opts.summary) {
|
|
207
|
-
|
|
376
|
+
lines.push(`Servers: ${opts.summary.ready}/${opts.summary.total} ready`);
|
|
208
377
|
}
|
|
209
378
|
// In the default sync mode the wait is bounded by upstream connection time;
|
|
210
379
|
// point users at the fast-detach path. Omitted when async is already on, or
|
|
211
|
-
// when the caller does not supply the flag
|
|
380
|
+
// when the caller does not supply the flag.
|
|
212
381
|
if (opts.asyncEnabled === false) {
|
|
213
|
-
|
|
382
|
+
lines.push('Tip: run with --enable-async-loading for near-instant background detach.');
|
|
214
383
|
}
|
|
215
|
-
return
|
|
384
|
+
return `${lines.join('\n')}\n`;
|
|
216
385
|
}
|
|
217
386
|
/** Truncate a single line so progress output stays on one terminal row. */
|
|
218
387
|
function truncate(text, max) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveBackground.js","sourceRoot":"","sources":["../../../src/commands/serve/serveBackground.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serveBackground.js","sourceRoot":"","sources":["../../../src/commands/serve/serveBackground.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { runServeStop } from './serveStop.js';
|
|
|
9
9
|
* clean no-op and a background runtime is still started, so a successful restart
|
|
10
10
|
* always ends in a running runtime. This is a thin composition of the existing
|
|
11
11
|
* `--stop` and `--background` handlers; staleness handling, signal escalation,
|
|
12
|
-
* detached spawn, readiness wait, and
|
|
12
|
+
* detached spawn, readiness wait, and exclusive startup all come from them unchanged.
|
|
13
13
|
*
|
|
14
14
|
* Both handlers communicate via `process.exitCode` (the established lifecycle
|
|
15
15
|
* pattern), so this routine inspects it between the two phases: if the stop
|
|
@@ -15,7 +15,7 @@ export async function runServeRestart(parsedArgv, deps = {}) {
|
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
// Phase 2: start a fresh detached background runtime. The stop cleaned up the
|
|
18
|
-
//
|
|
18
|
+
// lifecycle metadata, so the background startup sees an empty scope.
|
|
19
19
|
process.exitCode = undefined;
|
|
20
20
|
await runBackground(parsedArgv);
|
|
21
21
|
}
|
|
@@ -1,33 +1,43 @@
|
|
|
1
|
+
import { type BackgroundSupervisorState, cleanupBackgroundSupervisorState, readBackgroundSupervisorState } from '../../core/server/backgroundRuntimeSupervisor.js';
|
|
1
2
|
import { ServerPidInfo } from '../../core/server/pidFileManager.js';
|
|
2
|
-
import { RuntimeStatus } from '../../core/server/runtimeLifecycle.js';
|
|
3
|
+
import { discoverScopedRuntime, RuntimeStatus } from '../../core/server/runtimeLifecycle.js';
|
|
4
|
+
import { readRuntimeScopeOwnership, reclaimStaleRuntimeScopeOwnership, type RuntimeScopeOwnershipRecord } from '../../core/server/runtimeScopeOwnership.js';
|
|
3
5
|
/**
|
|
4
6
|
* `serve --status`: report the state of the Background Aggregated Runtime in the
|
|
5
7
|
* selected Runtime Scope. Discovery goes through the lifecycle module, so the
|
|
6
8
|
* same two-tier staleness rule applies — a dead PID file is cleaned up and the
|
|
7
9
|
* scope is reported not-running.
|
|
8
10
|
*/
|
|
11
|
+
export type ServeRuntimeStatus = RuntimeStatus | 'restarting' | 'crash-loop' | 'orphaned';
|
|
9
12
|
export interface RuntimeStatusReport {
|
|
10
|
-
status:
|
|
13
|
+
status: ServeRuntimeStatus;
|
|
11
14
|
/** The Runtime Scope (resolved configuration directory). */
|
|
12
15
|
configDir: string;
|
|
13
16
|
/** PID record for `running`/`unreachable`; null for `not-running`/`error`. */
|
|
14
17
|
info: ServerPidInfo | null;
|
|
18
|
+
/** Authoritative supervised-background lifecycle snapshot, when present. */
|
|
19
|
+
supervisorState?: BackgroundSupervisorState;
|
|
20
|
+
/** Canonical scope owner when no runtime PID/state is available. */
|
|
21
|
+
ownership?: RuntimeScopeOwnershipRecord;
|
|
15
22
|
/** Human-readable discovery failure for `error` reports. */
|
|
16
23
|
error?: string;
|
|
17
24
|
}
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
/** Process exit codes per runtime state, allowing scripts to branch on status. */
|
|
26
|
+
export declare const STATUS_EXIT_CODES: Record<ServeRuntimeStatus, number>;
|
|
27
|
+
export interface RuntimeStatusDeps {
|
|
28
|
+
readSupervisorState?: typeof readBackgroundSupervisorState;
|
|
29
|
+
cleanupSupervisorState?: typeof cleanupBackgroundSupervisorState;
|
|
30
|
+
isAlive?: (pid: number) => boolean;
|
|
31
|
+
discoverRuntime?: typeof discoverScopedRuntime;
|
|
32
|
+
readOwnership?: typeof readRuntimeScopeOwnership;
|
|
33
|
+
reclaimOwnership?: typeof reclaimStaleRuntimeScopeOwnership;
|
|
34
|
+
}
|
|
25
35
|
/**
|
|
26
36
|
* Discover the scoped runtime and assemble a status report. The default
|
|
27
37
|
* readiness probe (`/health/ready`) distinguishes alive-but-not-ready from
|
|
28
38
|
* alive-and-ready.
|
|
29
39
|
*/
|
|
30
|
-
export declare function getRuntimeStatusReport(configDirOption?: string): Promise<RuntimeStatusReport>;
|
|
40
|
+
export declare function getRuntimeStatusReport(configDirOption?: string, deps?: RuntimeStatusDeps): Promise<RuntimeStatusReport>;
|
|
31
41
|
/**
|
|
32
42
|
* Render a status report as human-readable lines.
|
|
33
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveStatus.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/serveStatus.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"serveStatus.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/serveStatus.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,yBAAyB,EAC9B,gCAAgC,EAChC,6BAA6B,EAC9B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAkB,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,KAAK,2BAA2B,EACjC,MAAM,2CAA2C,CAAC;AAEnD;;;;;GAKG;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,oEAAoE;IACpE,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAQhE,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,CAAC,EAAE,OAAO,6BAA6B,CAAC;IAC3D,sBAAsB,CAAC,EAAE,OAAO,gCAAgC,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,qBAAqB,CAAC;IAC/C,aAAa,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,CAAC;CAC7D;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,eAAe,CAAC,EAAE,MAAM,EACxB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAgF9B;AAwDD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA+C7E;AA8BD;;GAEG;AACH,wBAAsB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E"}
|