@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.
Files changed (186) hide show
  1. package/README.md +1 -0
  2. package/build/admin/assets/{admin-console-CX5GzncA.css → admin-console-C5_zD_qW.css} +1 -1
  3. package/build/admin/assets/{admin-console-CkZ5lBKg.js → admin-console-CbHHoqLr.js} +6 -6
  4. package/build/admin/index.html +2 -2
  5. package/build/application/services/healthService.d.ts +32 -0
  6. package/build/application/services/healthService.d.ts.map +1 -1
  7. package/build/application/services/healthService.js +49 -0
  8. package/build/application/services/healthService.js.map +1 -1
  9. package/build/commands/mcp/index.d.ts.map +1 -1
  10. package/build/commands/mcp/index.js +10 -0
  11. package/build/commands/mcp/index.js.map +1 -1
  12. package/build/commands/mcp/restart.d.ts +69 -0
  13. package/build/commands/mcp/restart.d.ts.map +1 -0
  14. package/build/commands/mcp/restart.js +259 -0
  15. package/build/commands/mcp/restart.js.map +1 -0
  16. package/build/commands/mcp/status.d.ts +24 -1
  17. package/build/commands/mcp/status.d.ts.map +1 -1
  18. package/build/commands/mcp/status.js +158 -14
  19. package/build/commands/mcp/status.js.map +1 -1
  20. package/build/commands/serve/index.d.ts +8 -0
  21. package/build/commands/serve/index.d.ts.map +1 -1
  22. package/build/commands/serve/index.js +12 -0
  23. package/build/commands/serve/index.js.map +1 -1
  24. package/build/commands/serve/serve.d.ts +13 -0
  25. package/build/commands/serve/serve.d.ts.map +1 -1
  26. package/build/commands/serve/serve.js +111 -57
  27. package/build/commands/serve/serve.js.map +1 -1
  28. package/build/commands/serve/serveBackground.d.ts +48 -26
  29. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  30. package/build/commands/serve/serveBackground.js +230 -61
  31. package/build/commands/serve/serveBackground.js.map +1 -1
  32. package/build/commands/serve/serveRestart.d.ts +1 -1
  33. package/build/commands/serve/serveRestart.js +1 -1
  34. package/build/commands/serve/serveStatus.d.ts +20 -10
  35. package/build/commands/serve/serveStatus.d.ts.map +1 -1
  36. package/build/commands/serve/serveStatus.js +174 -13
  37. package/build/commands/serve/serveStatus.js.map +1 -1
  38. package/build/commands/serve/serveStop.d.ts +13 -4
  39. package/build/commands/serve/serveStop.d.ts.map +1 -1
  40. package/build/commands/serve/serveStop.js +212 -23
  41. package/build/commands/serve/serveStop.js.map +1 -1
  42. package/build/config/configManager.d.ts +2 -0
  43. package/build/config/configManager.d.ts.map +1 -1
  44. package/build/config/configManager.js +19 -8
  45. package/build/config/configManager.js.map +1 -1
  46. package/build/config/mcpConfigMerge.d.ts.map +1 -1
  47. package/build/config/mcpConfigMerge.js +13 -2
  48. package/build/config/mcpConfigMerge.js.map +1 -1
  49. package/build/constants/mcp.d.ts +1 -1
  50. package/build/constants/mcp.js +1 -1
  51. package/build/core/client/clientManager.d.ts +24 -1
  52. package/build/core/client/clientManager.d.ts.map +1 -1
  53. package/build/core/client/clientManager.js +268 -2
  54. package/build/core/client/clientManager.js.map +1 -1
  55. package/build/core/client/connectionHandler.d.ts.map +1 -1
  56. package/build/core/client/connectionHandler.js +18 -1
  57. package/build/core/client/connectionHandler.js.map +1 -1
  58. package/build/core/configChangeHandler.d.ts +1 -0
  59. package/build/core/configChangeHandler.d.ts.map +1 -1
  60. package/build/core/configChangeHandler.js +14 -0
  61. package/build/core/configChangeHandler.js.map +1 -1
  62. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  63. package/build/core/loading/mcpLoadingManager.js +16 -4
  64. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  65. package/build/core/server/backendStdioSupervisor.d.ts +73 -0
  66. package/build/core/server/backendStdioSupervisor.d.ts.map +1 -0
  67. package/build/core/server/backendStdioSupervisor.js +191 -0
  68. package/build/core/server/backendStdioSupervisor.js.map +1 -0
  69. package/build/core/server/backgroundLaunchConfig.d.ts +15 -0
  70. package/build/core/server/backgroundLaunchConfig.d.ts.map +1 -0
  71. package/build/core/server/backgroundLaunchConfig.js +46 -0
  72. package/build/core/server/backgroundLaunchConfig.js.map +1 -0
  73. package/build/core/server/backgroundRuntimeSupervisor.d.ts +44 -0
  74. package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -0
  75. package/build/core/server/backgroundRuntimeSupervisor.js +252 -0
  76. package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -0
  77. package/build/core/server/backgroundRuntimeSupervisorState.d.ts +30 -0
  78. package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -0
  79. package/build/core/server/backgroundRuntimeSupervisorState.js +81 -0
  80. package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -0
  81. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  82. package/build/core/server/clientInstanceFactory.js +1 -0
  83. package/build/core/server/clientInstanceFactory.js.map +1 -1
  84. package/build/core/server/clientInstancePool.d.ts +17 -5
  85. package/build/core/server/clientInstancePool.d.ts.map +1 -1
  86. package/build/core/server/clientInstancePool.js +198 -33
  87. package/build/core/server/clientInstancePool.js.map +1 -1
  88. package/build/core/server/clientInstancePoolTypes.d.ts +7 -1
  89. package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
  90. package/build/core/server/clientInstancePoolTypes.js.map +1 -1
  91. package/build/core/server/runtimeScopeOwnership.d.ts +61 -0
  92. package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -0
  93. package/build/core/server/runtimeScopeOwnership.js +544 -0
  94. package/build/core/server/runtimeScopeOwnership.js.map +1 -0
  95. package/build/core/server/serverManager.d.ts +2 -0
  96. package/build/core/server/serverManager.d.ts.map +1 -1
  97. package/build/core/server/serverManager.js +30 -0
  98. package/build/core/server/serverManager.js.map +1 -1
  99. package/build/core/server/templateIdentity.d.ts +10 -0
  100. package/build/core/server/templateIdentity.d.ts.map +1 -1
  101. package/build/core/server/templateIdentity.js +33 -0
  102. package/build/core/server/templateIdentity.js.map +1 -1
  103. package/build/core/server/templateServerCleanup.d.ts.map +1 -1
  104. package/build/core/server/templateServerCleanup.js +7 -1
  105. package/build/core/server/templateServerCleanup.js.map +1 -1
  106. package/build/core/server/templateServerManager.d.ts +13 -0
  107. package/build/core/server/templateServerManager.d.ts.map +1 -1
  108. package/build/core/server/templateServerManager.js +129 -4
  109. package/build/core/server/templateServerManager.js.map +1 -1
  110. package/build/core/tools/handlers/serverManagementHandler.d.ts +111 -5
  111. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  112. package/build/core/tools/handlers/serverManagementHandler.js +103 -45
  113. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  114. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -2
  115. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
  116. package/build/core/tools/internal/adapters/management/managementAdapter.js +45 -26
  117. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
  118. package/build/core/tools/internal/adapters/management/types.d.ts +21 -2
  119. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  120. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
  121. package/build/core/tools/internal/managementHandlers.js +73 -22
  122. package/build/core/tools/internal/managementHandlers.js.map +1 -1
  123. package/build/core/tools/internal/schemas/discovery.d.ts +2 -2
  124. package/build/core/tools/internal/schemas/edit.js +1 -1
  125. package/build/core/tools/internal/schemas/edit.js.map +1 -1
  126. package/build/core/tools/internal/schemas/index.d.ts +77 -6
  127. package/build/core/tools/internal/schemas/index.d.ts.map +1 -1
  128. package/build/core/tools/internal/schemas/management.d.ts +75 -4
  129. package/build/core/tools/internal/schemas/management.d.ts.map +1 -1
  130. package/build/core/tools/internal/schemas/management.js +69 -2
  131. package/build/core/tools/internal/schemas/management.js.map +1 -1
  132. package/build/core/types/client.d.ts +9 -2
  133. package/build/core/types/client.d.ts.map +1 -1
  134. package/build/core/types/client.js +4 -0
  135. package/build/core/types/client.js.map +1 -1
  136. package/build/core/types/transport.d.ts +25 -1
  137. package/build/core/types/transport.d.ts.map +1 -1
  138. package/build/core/types/transport.js +21 -3
  139. package/build/core/types/transport.js.map +1 -1
  140. package/build/domains/admin/adminBackendRestartService.d.ts +41 -0
  141. package/build/domains/admin/adminBackendRestartService.d.ts.map +1 -0
  142. package/build/domains/admin/adminBackendRestartService.js +22 -0
  143. package/build/domains/admin/adminBackendRestartService.js.map +1 -0
  144. package/build/domains/admin/adminDomain.d.ts +7 -0
  145. package/build/domains/admin/adminDomain.d.ts.map +1 -1
  146. package/build/domains/admin/adminDomain.js +13 -0
  147. package/build/domains/admin/adminDomain.js.map +1 -1
  148. package/build/domains/admin/adminOAuthService.d.ts +26 -0
  149. package/build/domains/admin/adminOAuthService.d.ts.map +1 -0
  150. package/build/domains/admin/adminOAuthService.js +71 -0
  151. package/build/domains/admin/adminOAuthService.js.map +1 -0
  152. package/build/domains/admin/adminOperationService.d.ts +1 -0
  153. package/build/domains/admin/adminOperationService.d.ts.map +1 -1
  154. package/build/domains/admin/adminOperationService.js +39 -14
  155. package/build/domains/admin/adminOperationService.js.map +1 -1
  156. package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts +20 -0
  157. package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts.map +1 -0
  158. package/build/domains/admin/runtimeServerManagerBackendRestartService.js +78 -0
  159. package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -0
  160. package/build/server.d.ts.map +1 -1
  161. package/build/server.js +18 -2
  162. package/build/server.js.map +1 -1
  163. package/build/transport/http/routes/adminRoutes.d.ts +4 -0
  164. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  165. package/build/transport/http/routes/adminRoutes.js +280 -22
  166. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  167. package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
  168. package/build/transport/http/routes/healthRoutes.js +70 -2
  169. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  170. package/build/transport/http/routes/oauthRoutes.d.ts +3 -2
  171. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  172. package/build/transport/http/routes/oauthRoutes.js +10 -8
  173. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  174. package/build/transport/http/server.d.ts.map +1 -1
  175. package/build/transport/http/server.js +13 -4
  176. package/build/transport/http/server.js.map +1 -1
  177. package/build/transport/transportFactory.d.ts.map +1 -1
  178. package/build/transport/transportFactory.js +27 -15
  179. package/build/transport/transportFactory.js.map +1 -1
  180. package/build/transport/transportFactory.testSetup.js +2 -0
  181. package/build/transport/transportFactory.testSetup.js.map +1 -1
  182. package/build/utils/core/errorTypes.d.ts +3 -0
  183. package/build/utils/core/errorTypes.d.ts.map +1 -1
  184. package/build/utils/core/errorTypes.js +7 -0
  185. package/build/utils/core/errorTypes.js.map +1 -1
  186. package/package.json +1 -1
@@ -1,26 +1,141 @@
1
1
  import { getConfigDir } from '../../constants.js';
2
+ import { cleanupBackgroundSupervisorState, readBackgroundSupervisorState, } from '../../core/server/backgroundRuntimeSupervisor.js';
3
+ import { isProcessAlive } from '../../core/server/pidFileManager.js';
2
4
  import { discoverScopedRuntime } from '../../core/server/runtimeLifecycle.js';
3
- /**
4
- * Process exit codes per runtime state, so scripts can branch on `serve --status`:
5
- * - running (alive and ready) → 0
6
- * - not-running (empty scope or stale dead PID) → 3
7
- * - unreachable (alive but `/health/ready` failing) → 4
8
- */
5
+ import { readRuntimeScopeOwnership, reclaimStaleRuntimeScopeOwnership, } from '../../core/server/runtimeScopeOwnership.js';
6
+ /** Process exit codes per runtime state, allowing scripts to branch on status. */
9
7
  export const STATUS_EXIT_CODES = {
10
8
  running: 0,
11
9
  'not-running': 3,
12
10
  unreachable: 4,
13
11
  error: 2,
12
+ restarting: 5,
13
+ 'crash-loop': 6,
14
+ orphaned: 7,
14
15
  };
15
16
  /**
16
17
  * Discover the scoped runtime and assemble a status report. The default
17
18
  * readiness probe (`/health/ready`) distinguishes alive-but-not-ready from
18
19
  * alive-and-ready.
19
20
  */
20
- export async function getRuntimeStatusReport(configDirOption) {
21
+ export async function getRuntimeStatusReport(configDirOption, deps = {}) {
21
22
  const configDir = getConfigDir(configDirOption);
22
- const { status, info, error } = await discoverScopedRuntime(configDir);
23
- return { status, configDir, info, error };
23
+ const readSupervisorState = deps.readSupervisorState ?? readBackgroundSupervisorState;
24
+ const cleanupSupervisorState = deps.cleanupSupervisorState ?? cleanupBackgroundSupervisorState;
25
+ const isAlive = deps.isAlive ?? isProcessAlive;
26
+ const discoverRuntime = deps.discoverRuntime ?? discoverScopedRuntime;
27
+ const readOwnership = deps.readOwnership ?? readRuntimeScopeOwnership;
28
+ const reclaimOwnership = deps.reclaimOwnership ?? reclaimStaleRuntimeScopeOwnership;
29
+ let supervisorState;
30
+ try {
31
+ supervisorState = readSupervisorState(configDir);
32
+ }
33
+ catch (error) {
34
+ return statusError(configDir, error);
35
+ }
36
+ if (supervisorState) {
37
+ const supervisorAlive = isAlive(supervisorState.supervisorPid);
38
+ const runtimeAlive = supervisorState.runtimePid !== null && isAlive(supervisorState.runtimePid);
39
+ if (!supervisorAlive && runtimeAlive) {
40
+ return { status: 'orphaned', configDir, info: null, supervisorState };
41
+ }
42
+ if (supervisorAlive && supervisorState.status === 'restarting') {
43
+ return { status: 'restarting', configDir, info: null, supervisorState };
44
+ }
45
+ if (supervisorAlive && supervisorState.status === 'crash-loop') {
46
+ return { status: 'crash-loop', configDir, info: null, supervisorState };
47
+ }
48
+ if (!supervisorAlive && !runtimeAlive) {
49
+ const discovered = await discoverRuntimeWithOwnership(configDir, {
50
+ discoverRuntime,
51
+ readOwnership,
52
+ reclaimOwnership,
53
+ isAlive,
54
+ });
55
+ if ((discovered.status === 'running' || discovered.status === 'unreachable') && discovered.info) {
56
+ let owner;
57
+ try {
58
+ owner = readOwnership(configDir);
59
+ }
60
+ catch (error) {
61
+ return statusError(configDir, error);
62
+ }
63
+ if (owner?.kind === 'background-supervisor' && owner.pid === supervisorState.supervisorPid) {
64
+ return {
65
+ ...discovered,
66
+ status: 'orphaned',
67
+ supervisorState: { ...supervisorState, runtimePid: discovered.info.pid },
68
+ };
69
+ }
70
+ }
71
+ if (discovered.status === 'error' || discovered.ownership) {
72
+ return discovered;
73
+ }
74
+ try {
75
+ if (!cleanupSupervisorState(configDir, supervisorState.supervisorPid)) {
76
+ return {
77
+ status: 'error',
78
+ configDir,
79
+ info: null,
80
+ error: 'Background supervisor state changed while removing stale metadata',
81
+ };
82
+ }
83
+ }
84
+ catch (error) {
85
+ return statusError(configDir, error);
86
+ }
87
+ return discovered;
88
+ }
89
+ const discovered = await discoverRuntime(configDir);
90
+ if (discovered.status === 'not-running') {
91
+ return { status: 'unreachable', configDir, info: null, supervisorState };
92
+ }
93
+ return { ...discovered, configDir, supervisorState };
94
+ }
95
+ return discoverRuntimeWithOwnership(configDir, { discoverRuntime, readOwnership, reclaimOwnership, isAlive });
96
+ }
97
+ async function discoverRuntimeWithOwnership(configDir, deps) {
98
+ const discovered = await deps.discoverRuntime(configDir);
99
+ if (discovered.status !== 'not-running') {
100
+ return { ...discovered, configDir };
101
+ }
102
+ let ownership;
103
+ try {
104
+ ownership = deps.readOwnership(configDir);
105
+ }
106
+ catch (error) {
107
+ return statusError(configDir, error);
108
+ }
109
+ if (!ownership) {
110
+ return { ...discovered, configDir };
111
+ }
112
+ if (deps.isAlive(ownership.pid)) {
113
+ return { status: 'unreachable', configDir, info: null, ownership };
114
+ }
115
+ try {
116
+ if (deps.reclaimOwnership(configDir, ownership, deps.isAlive)) {
117
+ return { ...discovered, configDir };
118
+ }
119
+ const replacement = deps.readOwnership(configDir);
120
+ if (!replacement) {
121
+ return { ...discovered, configDir };
122
+ }
123
+ if (deps.isAlive(replacement.pid)) {
124
+ return { status: 'unreachable', configDir, info: null, ownership: replacement };
125
+ }
126
+ return statusError(configDir, new Error('Runtime Scope ownership changed while removing stale metadata'));
127
+ }
128
+ catch (error) {
129
+ return statusError(configDir, error);
130
+ }
131
+ }
132
+ function statusError(configDir, error) {
133
+ return {
134
+ status: 'error',
135
+ configDir,
136
+ info: null,
137
+ error: error instanceof Error ? error.message : String(error),
138
+ };
24
139
  }
25
140
  /**
26
141
  * Render a status report as human-readable lines.
@@ -28,24 +143,70 @@ export async function getRuntimeStatusReport(configDirOption) {
28
143
  export function formatRuntimeStatusReport(report) {
29
144
  const { status, configDir, info } = report;
30
145
  const lines = [`Runtime Scope: ${configDir}`];
31
- if (status === 'not-running' || !info) {
146
+ if (report.ownership) {
147
+ lines.push('Status: occupied (unreachable)');
148
+ lines.push(`Owner: ${formatOwnershipKind(report.ownership.kind)}`);
149
+ lines.push(`Owner PID: ${report.ownership.pid} (alive)`);
150
+ lines.push('Runtime metadata: unavailable');
151
+ return `${lines.join('\n')}\n`;
152
+ }
153
+ if (report.supervisorState) {
154
+ const state = report.supervisorState;
155
+ const supervisorSuffix = status === 'orphaned' ? ' (not alive)' : '';
156
+ const runtimeSuffix = status === 'orphaned' && state.runtimePid !== null ? ' (alive)' : '';
157
+ lines.push(`Status: ${status}`);
158
+ lines.push(`Supervisor PID: ${state.supervisorPid}${supervisorSuffix}`);
159
+ lines.push(`Runtime PID: ${state.runtimePid ?? 'none'}${runtimeSuffix}`);
160
+ lines.push(`Restart attempt: ${state.restartAttempt}`);
161
+ lines.push(`Last exit: ${formatLastExit(state.lastExit)}`);
162
+ lines.push(`Next retry: ${state.nextRetryAt ?? 'none'}`);
32
163
  if (status === 'error') {
33
- lines.push('Status: error');
34
164
  lines.push(`Error: ${report.error ?? 'PID file could not be read'}`);
35
- return `${lines.join('\n')}\n`;
36
165
  }
166
+ if (info) {
167
+ appendRuntimeDetails(lines, info, status === 'running');
168
+ }
169
+ return `${lines.join('\n')}\n`;
170
+ }
171
+ if (status === 'error') {
172
+ lines.push('Status: error');
173
+ lines.push(`Error: ${report.error ?? 'PID file could not be read'}`);
174
+ return `${lines.join('\n')}\n`;
175
+ }
176
+ if (status === 'not-running' || !info) {
37
177
  lines.push('Status: not running');
38
178
  return `${lines.join('\n')}\n`;
39
179
  }
40
180
  const ready = status === 'running';
41
181
  lines.push(`Status: ${ready ? 'running (ready)' : 'starting (not ready)'}`);
42
182
  lines.push(`PID: ${info.pid}`);
183
+ appendRuntimeDetails(lines, info, ready);
184
+ return `${lines.join('\n')}\n`;
185
+ }
186
+ function appendRuntimeDetails(lines, info, ready) {
43
187
  lines.push(`URL: ${info.url}`);
44
188
  lines.push(`Started: ${info.startedAt}`);
45
189
  lines.push(`Log file: ${info.logFile ?? '(console only)'}`);
46
190
  lines.push('Process: alive');
47
191
  lines.push(`Readiness (/health/ready): ${ready ? 'ready' : 'not ready'}`);
48
- return `${lines.join('\n')}\n`;
192
+ }
193
+ function formatOwnershipKind(kind) {
194
+ switch (kind) {
195
+ case 'foreground-http':
196
+ return 'foreground HTTP';
197
+ case 'foreground-stdio':
198
+ return 'foreground stdio';
199
+ case 'background-supervisor':
200
+ return 'background supervisor';
201
+ }
202
+ }
203
+ function formatLastExit(lastExit) {
204
+ if (!lastExit) {
205
+ return 'none';
206
+ }
207
+ const reason = lastExit.code !== null ? `code ${lastExit.code}` : `signal ${lastExit.signal ?? 'unknown'}`;
208
+ const errorDetail = lastExit.error ? `; process error: ${lastExit.error}` : '';
209
+ return `${reason}${errorDetail} at ${lastExit.at}`;
49
210
  }
50
211
  /**
51
212
  * Entry point for `serve --status`: discover, print, and set the exit code.
@@ -1 +1 @@
1
- {"version":3,"file":"serveStatus.js","sourceRoot":"","sources":["../../../src/commands/serve/serveStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAiB,MAAM,sCAAsC,CAAC;AAmB5F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkC;IAC9D,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,eAAwB;IACnE,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA2B;IACnE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,KAAK,GAAa,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IAExD,IAAI,MAAM,KAAK,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,IAAI,4BAA4B,EAAE,CAAC,CAAC;YACrE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,eAAwB;IAC3D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"serveStatus.js","sourceRoot":"","sources":["../../../src/commands/serve/serveStatus.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
+ import { cleanupBackgroundSupervisorState, readBackgroundSupervisorState } from '../../core/server/backgroundRuntimeSupervisor.js';
1
2
  import { readPidFile } from '../../core/server/pidFileManager.js';
3
+ import { acquireRuntimeScopeStopLock, readRuntimeScopeOwnership } from '../../core/server/runtimeScopeOwnership.js';
2
4
  /**
3
5
  * `serve --stop`: stop only the runtime in the selected Runtime Scope.
4
6
  *
5
- * Discovery uses the pure PID reader plus a liveness check (not the readiness
6
- * probe — stopping should work even for an alive-but-not-ready runtime). The
7
- * signal targets exactly the PID recorded for this scope, so runtimes in other
8
- * config directories are never affected.
7
+ * Supervised scopes stop the supervisor before its worker so no replacement can
8
+ * race with deliberate shutdown. Foreground scopes stop the PID recorded for
9
+ * this scope. Readiness is irrelevant to both paths.
9
10
  */
10
11
  export interface WaitForExitOptions {
11
12
  timeoutMs?: number;
@@ -19,6 +20,14 @@ export declare function waitForProcessExit(pid: number, options?: WaitForExitOpt
19
20
  /** Signals this command sends to a runtime process. */
20
21
  type StopSignal = 'SIGTERM' | 'SIGKILL';
21
22
  export interface RunStopDeps {
23
+ readSupervisorState?: typeof readBackgroundSupervisorState;
24
+ readOwnership?: typeof readRuntimeScopeOwnership;
25
+ acquireStopLock?: typeof acquireRuntimeScopeStopLock;
26
+ cleanupSupervisorState?: typeof cleanupBackgroundSupervisorState;
27
+ /** Remove only the launch snapshot belonging to the observed supervisor. */
28
+ cleanupLaunchConfig?: (configDir: string, expectedSupervisorPid: number) => boolean;
29
+ /** Guarded release of the matching background-supervisor ownership record. */
30
+ cleanupOwnership?: (configDir: string, expectedSupervisorPid: number) => boolean;
22
31
  readInfo?: typeof readPidFile;
23
32
  isAlive?: (pid: number) => boolean;
24
33
  kill?: (pid: number, signal: StopSignal) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"serveStop.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/serveStop.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAG5C;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,wFAAwF;AACxF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAexG;AAED,uDAAuD;AACvD,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9D,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyElG"}
1
+ {"version":3,"file":"serveStop.d.ts","sourceRoot":"","sources":["../../../src/commands/serve/serveStop.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,gCAAgC,EAChC,6BAA6B,EAC9B,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAIL,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAI1B,MAAM,2CAA2C,CAAC;AAGnD;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,wFAAwF;AACxF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAexG;AAED,uDAAuD;AACvD,KAAK,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,mBAAmB,CAAC,EAAE,OAAO,6BAA6B,CAAC;IAC3D,aAAa,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACrD,sBAAsB,CAAC,EAAE,OAAO,gCAAgC,CAAC;IACjE,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,KAAK,OAAO,CAAC;IACpF,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,KAAK,OAAO,CAAC;IACjF,QAAQ,CAAC,EAAE,OAAO,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9D,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAoDD;;GAEG;AACH,wBAAsB,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2NlG"}
@@ -1,5 +1,8 @@
1
1
  import { getConfigDir } from '../../constants.js';
2
+ import { backgroundLaunchConfigExists, cleanupBackgroundLaunchConfig, } from '../../core/server/backgroundLaunchConfig.js';
3
+ import { cleanupBackgroundSupervisorState, readBackgroundSupervisorState, } from '../../core/server/backgroundRuntimeSupervisor.js';
2
4
  import { cleanupPidFileIfMatches, isProcessAlive, PidFileReadError, readPidFile, } from '../../core/server/pidFileManager.js';
5
+ import { acquireRuntimeScopeStopLock, readRuntimeScopeOwnership, releaseRuntimeScopeOwnership, } from '../../core/server/runtimeScopeOwnership.js';
3
6
  import logger from '../../logger/logger.js';
4
7
  /** Poll until the process is gone or the timeout elapses. Returns true if it exited. */
5
8
  export async function waitForProcessExit(pid, options = {}) {
@@ -20,25 +23,201 @@ export async function waitForProcessExit(pid, options = {}) {
20
23
  function defaultKill(pid, signal) {
21
24
  process.kill(pid, signal);
22
25
  }
26
+ function failStop(message) {
27
+ process.stderr.write(`Error: ${message}\n`);
28
+ process.exitCode = 1;
29
+ }
30
+ function errorMessage(error) {
31
+ return error instanceof Error ? error.message : String(error);
32
+ }
33
+ function cleanupSupervisorOwnership(configDir, expectedSupervisorPid) {
34
+ const owner = readRuntimeScopeOwnership(configDir);
35
+ if (!owner) {
36
+ return true;
37
+ }
38
+ if (owner.kind !== 'background-supervisor' || owner.pid !== expectedSupervisorPid) {
39
+ return false;
40
+ }
41
+ return releaseRuntimeScopeOwnership(configDir, owner);
42
+ }
43
+ function cleanupSupervisorLaunchConfig(configDir, expectedSupervisorPid) {
44
+ const owner = readRuntimeScopeOwnership(configDir);
45
+ if (!owner) {
46
+ return !backgroundLaunchConfigExists(configDir);
47
+ }
48
+ if (owner.kind !== 'background-supervisor' || owner.pid !== expectedSupervisorPid) {
49
+ return false;
50
+ }
51
+ return cleanupBackgroundLaunchConfig(configDir, owner.claimId, { removeStaleGeneration: true });
52
+ }
53
+ function bootstrapSupervisorState(supervisorPid) {
54
+ const now = new Date().toISOString();
55
+ return {
56
+ version: 1,
57
+ status: 'starting',
58
+ supervisorPid,
59
+ runtimePid: null,
60
+ restartAttempt: 0,
61
+ lastExit: null,
62
+ nextRetryAt: null,
63
+ readyAt: null,
64
+ updatedAt: now,
65
+ };
66
+ }
23
67
  /**
24
68
  * Stop the scoped runtime. Sets `process.exitCode` and returns.
25
69
  */
26
70
  export async function runServeStop(configDirOption, deps = {}) {
27
71
  const configDir = getConfigDir(configDirOption);
72
+ const readSupervisorState = deps.readSupervisorState ?? readBackgroundSupervisorState;
73
+ const readOwnership = deps.readOwnership ?? readRuntimeScopeOwnership;
74
+ const acquireStopLock = deps.acquireStopLock ?? acquireRuntimeScopeStopLock;
75
+ const cleanupSupervisorState = deps.cleanupSupervisorState ?? cleanupBackgroundSupervisorState;
76
+ const cleanupLaunchConfig = deps.cleanupLaunchConfig ?? cleanupSupervisorLaunchConfig;
77
+ const cleanupOwnership = deps.cleanupOwnership ?? cleanupSupervisorOwnership;
28
78
  const readInfo = deps.readInfo ?? readPidFile;
29
79
  const isAlive = deps.isAlive ?? isProcessAlive;
30
80
  const kill = deps.kill ?? defaultKill;
31
81
  const cleanup = deps.cleanup ?? cleanupPidFileIfMatches;
32
82
  const waitForExit = deps.waitForExit ?? waitForProcessExit;
33
83
  const gracefulTimeoutMs = deps.gracefulTimeoutMs ?? 10000;
84
+ let supervisorState;
85
+ try {
86
+ supervisorState = readSupervisorState(configDir);
87
+ }
88
+ catch (error) {
89
+ failStop(`cannot inspect Background Runtime Supervisor in Runtime Scope ${configDir}: ${errorMessage(error)}`);
90
+ return;
91
+ }
92
+ let owner;
93
+ try {
94
+ owner = readOwnership(configDir);
95
+ }
96
+ catch (error) {
97
+ failStop(`cannot verify lifecycle ownership in Runtime Scope ${configDir}: ${errorMessage(error)}`);
98
+ return;
99
+ }
100
+ if (!supervisorState && owner?.kind === 'background-supervisor') {
101
+ supervisorState = bootstrapSupervisorState(owner.pid);
102
+ }
103
+ if (supervisorState) {
104
+ const stateMatchesOwner = owner?.kind === 'background-supervisor' && owner.pid === supervisorState.supervisorPid;
105
+ if (!stateMatchesOwner) {
106
+ const staleProcessStillAlive = isAlive(supervisorState.supervisorPid) ||
107
+ (supervisorState.runtimePid !== null && isAlive(supervisorState.runtimePid));
108
+ if (staleProcessStillAlive) {
109
+ failStop(`supervisor state does not match Runtime Scope ownership in ${configDir}; refusing ambiguous stop.`);
110
+ return;
111
+ }
112
+ try {
113
+ if (!cleanupSupervisorState(configDir, supervisorState.supervisorPid)) {
114
+ failStop(`stale supervisor state changed before cleanup in Runtime Scope ${configDir}.`);
115
+ return;
116
+ }
117
+ }
118
+ catch (error) {
119
+ failStop(`stale supervisor state could not be removed in Runtime Scope ${configDir}: ${errorMessage(error)}`);
120
+ return;
121
+ }
122
+ supervisorState = owner?.kind === 'background-supervisor' ? bootstrapSupervisorState(owner.pid) : null;
123
+ }
124
+ }
125
+ if (supervisorState) {
126
+ if (owner?.kind !== 'background-supervisor' || owner.pid !== supervisorState.supervisorPid) {
127
+ failStop(`supervisor state does not match Runtime Scope ownership in ${configDir}; refusing ambiguous stop.`);
128
+ return;
129
+ }
130
+ let stopLock;
131
+ try {
132
+ stopLock = acquireStopLock(configDir, owner);
133
+ }
134
+ catch (error) {
135
+ failStop(`cannot lock lifecycle cleanup in Runtime Scope ${configDir}: ${errorMessage(error)}`);
136
+ return;
137
+ }
138
+ try {
139
+ const supervisorWasAlive = isAlive(supervisorState.supervisorPid);
140
+ const runtimeWasAlive = supervisorState.runtimePid !== null && isAlive(supervisorState.runtimePid);
141
+ const terminateOptions = { kill, waitForExit, isAlive, gracefulTimeoutMs };
142
+ if (supervisorWasAlive &&
143
+ !(await terminateProcess(supervisorState.supervisorPid, 'supervisor', terminateOptions))) {
144
+ failStop(`failed to stop Background Runtime Supervisor (PID ${supervisorState.supervisorPid}) in Runtime Scope ${configDir}.`);
145
+ return;
146
+ }
147
+ let runtimePid = supervisorState.runtimePid;
148
+ if (supervisorWasAlive) {
149
+ try {
150
+ const finalState = readSupervisorState(configDir);
151
+ if (finalState?.supervisorPid === supervisorState.supervisorPid) {
152
+ runtimePid = finalState.runtimePid ?? runtimePid;
153
+ }
154
+ }
155
+ catch (error) {
156
+ failStop(`supervisor stopped, but its final runtime state could not be read in Runtime Scope ${configDir}: ${errorMessage(error)}`);
157
+ return;
158
+ }
159
+ }
160
+ // The supervisor can exit immediately after signaling its worker. If its
161
+ // final state has already disappeared, the PID file is the recovery source.
162
+ if (runtimePid === null) {
163
+ try {
164
+ runtimePid = readInfo(configDir)?.pid ?? null;
165
+ }
166
+ catch (error) {
167
+ failStop(`supervisor stopped, but its runtime PID could not be recovered in Runtime Scope ${configDir}: ${errorMessage(error)}`);
168
+ return;
169
+ }
170
+ }
171
+ // Only touch the worker after its supervisor has gone. This ordering is
172
+ // what prevents an in-flight retry policy from replacing a deliberately
173
+ // stopped worker.
174
+ if (runtimePid !== null &&
175
+ isAlive(runtimePid) &&
176
+ !(await terminateProcess(runtimePid, 'runtime', terminateOptions))) {
177
+ failStop(`failed to stop supervised runtime (PID ${runtimePid}) in Runtime Scope ${configDir}.`);
178
+ return;
179
+ }
180
+ if (runtimePid !== null) {
181
+ cleanup(configDir, runtimePid);
182
+ }
183
+ try {
184
+ if (!cleanupLaunchConfig(configDir, supervisorState.supervisorPid)) {
185
+ failStop(`runtime stopped, but launch configuration changed before cleanup in Runtime Scope ${configDir}.`);
186
+ return;
187
+ }
188
+ if (!cleanupSupervisorState(configDir, supervisorState.supervisorPid) &&
189
+ readSupervisorState(configDir) !== null) {
190
+ failStop(`runtime stopped, but supervisor state changed before cleanup in Runtime Scope ${configDir}.`);
191
+ return;
192
+ }
193
+ if (!cleanupOwnership(configDir, supervisorState.supervisorPid)) {
194
+ failStop(`runtime stopped, but lifecycle ownership changed before cleanup in Runtime Scope ${configDir}.`);
195
+ return;
196
+ }
197
+ }
198
+ catch (error) {
199
+ failStop(`runtime stopped, but lifecycle ownership could not be released in Runtime Scope ${configDir}: ${errorMessage(error)}`);
200
+ return;
201
+ }
202
+ const orphaned = !supervisorWasAlive && runtimeWasAlive;
203
+ process.stdout.write(orphaned
204
+ ? `Recovered orphaned runtime in Runtime Scope ${configDir} (runtime PID ${runtimePid}).\n`
205
+ : `Stopped supervised background runtime in Runtime Scope ${configDir} ` +
206
+ `(supervisor PID ${supervisorState.supervisorPid}).\n`);
207
+ process.exitCode = 0;
208
+ return;
209
+ }
210
+ finally {
211
+ stopLock.release();
212
+ }
213
+ }
34
214
  let info;
35
215
  try {
36
216
  info = readInfo(configDir);
37
217
  }
38
218
  catch (error) {
39
219
  if (error instanceof PidFileReadError) {
40
- process.stderr.write(`Error: cannot inspect Runtime Scope ${configDir}: ${error.message}\n`);
41
- process.exitCode = 1;
220
+ failStop(`cannot inspect Runtime Scope ${configDir}: ${error.message}`);
42
221
  return;
43
222
  }
44
223
  throw error;
@@ -55,29 +234,17 @@ export async function runServeStop(configDirOption, deps = {}) {
55
234
  }
56
235
  else {
57
236
  process.stderr.write(`No running runtime in this Runtime Scope, but the stale PID file could not be removed ` +
58
- `(${getConfigDir(configDirOption)}). Remove it manually.\n`);
237
+ `(${configDir}). Remove it manually.\n`);
59
238
  }
60
239
  process.exitCode = 0;
61
240
  return;
62
241
  }
63
- // Graceful termination, then escalate to SIGKILL if it does not exit in time.
64
- try {
65
- kill(info.pid, 'SIGTERM');
66
- }
67
- catch (error) {
68
- logger.warn(`Failed to send SIGTERM to PID ${info.pid}: ${error}`);
69
- }
70
- let exited = await waitForExit(info.pid, { timeoutMs: gracefulTimeoutMs, isAlive });
71
- if (!exited) {
72
- logger.warn(`Runtime (PID ${info.pid}) did not exit after SIGTERM; escalating to SIGKILL`);
73
- try {
74
- kill(info.pid, 'SIGKILL');
75
- }
76
- catch (error) {
77
- logger.warn(`Failed to send SIGKILL to PID ${info.pid}: ${error}`);
78
- }
79
- exited = await waitForExit(info.pid, { timeoutMs: 2000, isAlive });
80
- }
242
+ const exited = await terminateProcess(info.pid, 'Runtime', {
243
+ kill,
244
+ waitForExit,
245
+ isAlive,
246
+ gracefulTimeoutMs,
247
+ });
81
248
  if (exited) {
82
249
  // The runtime removes its own PID file on graceful shutdown; clean up in
83
250
  // case it was force-killed before it could. Match on PID so a runtime that
@@ -87,7 +254,29 @@ export async function runServeStop(configDirOption, deps = {}) {
87
254
  process.exitCode = 0;
88
255
  return;
89
256
  }
90
- process.stderr.write(`Error: failed to stop runtime (PID ${info.pid}) in Runtime Scope ${configDir}.\n`);
91
- process.exitCode = 1;
257
+ failStop(`failed to stop runtime (PID ${info.pid}) in Runtime Scope ${configDir}.`);
258
+ }
259
+ async function terminateProcess(pid, label, options) {
260
+ try {
261
+ options.kill(pid, 'SIGTERM');
262
+ }
263
+ catch (error) {
264
+ logger.warn(`Failed to send SIGTERM to ${label} PID ${pid}: ${error}`);
265
+ }
266
+ let exited = await options.waitForExit(pid, {
267
+ timeoutMs: options.gracefulTimeoutMs,
268
+ isAlive: options.isAlive,
269
+ });
270
+ if (exited) {
271
+ return true;
272
+ }
273
+ logger.warn(`${label} (PID ${pid}) did not exit after SIGTERM; escalating to SIGKILL`);
274
+ try {
275
+ options.kill(pid, 'SIGKILL');
276
+ }
277
+ catch (error) {
278
+ logger.warn(`Failed to send SIGKILL to ${label} PID ${pid}: ${error}`);
279
+ }
280
+ return options.waitForExit(pid, { timeoutMs: 2000, isAlive: options.isAlive });
92
281
  }
93
282
  //# sourceMappingURL=serveStop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serveStop.js","sourceRoot":"","sources":["../../../src/commands/serve/serveStop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serveStop.js","sourceRoot":"","sources":["../../../src/commands/serve/serveStop.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class ConfigManager extends EventEmitter {
13
13
  private processedTemplates;
14
14
  private lastContextHash?;
15
15
  private templateRenderer?;
16
+ private lastValidDeclaredServerConfigs;
16
17
  /**
17
18
  * Private constructor to enforce singleton pattern
18
19
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
@@ -43,6 +44,7 @@ export declare class ConfigManager extends EventEmitter {
43
44
  templateServers: Record<string, MCPServerParams>;
44
45
  errors: string[];
45
46
  };
47
+ private copyLastValidDeclaredServerConfigs;
46
48
  /**
47
49
  * Process template configurations with context data
48
50
  * @param templates - Template configurations to process
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EACL,iBAAiB,EAGjB,eAAe,EAGhB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3E,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAuB;IAG7C,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAA6B;IAEtD;;;OAGG;IACH,OAAO;WAUO,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAOjE,OAAO,CAAC,kBAAkB;IAQb,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,UAAU;IAelB;;;;OAIG;IACU,uBAAuB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QACnE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAsGF;;;;OAIG;IACI,yBAAyB,IAAI;QAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAsDD;;;;;;OAMG;YACW,gBAAgB;IAsC9B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACI,2BAA2B,IAAI,MAAM,EAAE;IAI9C;;;OAGG;IACI,2BAA2B,IAAI,OAAO;IAI7C;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAMjC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACI,eAAe,IAAI,OAAO;YAInB,kBAAkB;IAsCnB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrD,gBAAgB,IAAI,MAAM,EAAE;IAI5B,YAAY,IAAI,iBAAiB;CAGzC;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;AAE3C,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EACL,iBAAiB,EAGjB,eAAe,EAGhB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3E,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAuB;IAG7C,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAA6B;IACtD,OAAO,CAAC,8BAA8B,CAGS;IAE/C;;;OAGG;IACH,OAAO;WAUO,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAOjE,OAAO,CAAC,kBAAkB;IAQb,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,UAAU;IAelB;;;;OAIG;IACU,uBAAuB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QACnE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAsGF;;;;OAIG;IACI,yBAAyB,IAAI;QAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IA0DD,OAAO,CAAC,kCAAkC;IAU1C;;;;;;OAMG;YACW,gBAAgB;IAsC9B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACI,2BAA2B,IAAI,MAAM,EAAE;IAI9C;;;OAGG;IACI,2BAA2B,IAAI,OAAO;IAI7C;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAMjC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACI,eAAe,IAAI,OAAO;YAInB,kBAAkB;IAsCnB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrD,gBAAgB,IAAI,MAAM,EAAE;IAI5B,YAAY,IAAI,iBAAiB;CAGzC;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;AAE3C,eAAe,aAAa,CAAC"}