@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,4 +1,5 @@
1
- import { serializePoolIdentity, templateRenderedHash } from '../../core/server/templateIdentity.js';
1
+ import { BackendStdioSupervisor } from '../../core/server/backendStdioSupervisor.js';
2
+ import { createTemplateInstanceId, resolveTemplateInstanceId, serializePoolIdentity, templateRenderedHash, } from '../../core/server/templateIdentity.js';
2
3
  import logger, { debugIf, infoIf } from '../../logger/logger.js';
3
4
  import { HandlebarsTemplateRenderer } from '../../template/handlebarsTemplateRenderer.js';
4
5
  import { createPooledClientInstance } from './clientInstanceFactory.js';
@@ -17,8 +18,11 @@ export class ClientInstancePool {
17
18
  templateToInstances = new Map();
18
19
  options;
19
20
  cleanupTimer;
20
- instanceCounter = 0;
21
21
  pendingCreations = new Map();
22
+ removalOperations = new Map();
23
+ supervisionPublisher;
24
+ isShuttingDown = false;
25
+ shutdownPromise;
22
26
  constructor(options = {}) {
23
27
  this.options = { ...DEFAULT_POOL_OPTIONS, ...options };
24
28
  this.startCleanupTimer();
@@ -27,10 +31,14 @@ export class ClientInstancePool {
27
31
  meta: { options: this.options },
28
32
  }));
29
33
  }
34
+ setSupervisionPublisher(publisher) {
35
+ this.supervisionPublisher = publisher;
36
+ }
30
37
  /**
31
38
  * Creates or retrieves a client instance for the given template and variables
32
39
  */
33
40
  async getOrCreateClientInstance(templateName, templateConfig, context, clientId, options) {
41
+ this.assertActive();
34
42
  // Render template with context data
35
43
  const renderer = new HandlebarsTemplateRenderer();
36
44
  const renderedConfig = renderer.renderTemplate(templateConfig, context);
@@ -80,7 +88,7 @@ export class ClientInstancePool {
80
88
  this.checkInstanceLimits(templateName);
81
89
  // Create new client instance
82
90
  const instance = await createPooledClientInstance({
83
- instanceId: this.generateInstanceId(),
91
+ instanceId: createTemplateInstanceId(),
84
92
  instanceKey,
85
93
  templateName,
86
94
  processedConfig: renderedConfig,
@@ -88,6 +96,11 @@ export class ClientInstancePool {
88
96
  clientId,
89
97
  idleTimeout: templateSettings.idleTimeout,
90
98
  });
99
+ if (this.isShuttingDown) {
100
+ await this.disposeInstance(instance);
101
+ throw new Error('ClientInstancePool is shutting down');
102
+ }
103
+ this.configureInstanceSupervision(instance);
91
104
  this.instances.set(instanceKey, instance);
92
105
  this.addToTemplateIndex(templateName, instanceKey);
93
106
  infoIf(() => ({
@@ -107,7 +120,9 @@ export class ClientInstancePool {
107
120
  return await instancePromise;
108
121
  }
109
122
  finally {
110
- this.pendingCreations.delete(instanceKey);
123
+ if (this.pendingCreations.get(instanceKey) === instancePromise) {
124
+ this.pendingCreations.delete(instanceKey);
125
+ }
111
126
  }
112
127
  }
113
128
  /**
@@ -150,6 +165,12 @@ export class ClientInstancePool {
150
165
  }));
151
166
  // Mark as idle if no more clients
152
167
  if (instance.referenceCount === 0) {
168
+ const supervisionState = instance.supervisor?.snapshot().state;
169
+ if (supervisionState === 'restarting' || supervisionState === 'crash-loop') {
170
+ instance.status = 'terminating';
171
+ void this.removeInstance(instance.instanceKey);
172
+ return;
173
+ }
153
174
  instance.status = 'idle';
154
175
  instance.lastUsedAt = idleSince; // Set lastUsedAt to when it became idle
155
176
  infoIf(() => ({
@@ -171,8 +192,12 @@ export class ClientInstancePool {
171
192
  * Gets an instance key by its generated instance ID
172
193
  */
173
194
  getInstanceKeyById(instanceId) {
195
+ const resolvedId = resolveTemplateInstanceId(instanceId, Array.from(this.instances.values(), (instance) => instance.id));
196
+ if (!resolvedId) {
197
+ return undefined;
198
+ }
174
199
  for (const [instanceKey, instance] of this.instances) {
175
- if (instance.id === instanceId) {
200
+ if (instance.id === resolvedId) {
176
201
  return instanceKey;
177
202
  }
178
203
  }
@@ -190,6 +215,14 @@ export class ClientInstancePool {
190
215
  .map((key) => this.instances.get(key))
191
216
  .filter((instance) => !!instance);
192
217
  }
218
+ /**
219
+ * Resolves a full or unambiguous-prefix instance ID within one template.
220
+ */
221
+ resolveTemplateInstance(templateName, instanceIdOrPrefix) {
222
+ const instances = this.getTemplateInstances(templateName);
223
+ const resolvedId = resolveTemplateInstanceId(instanceIdOrPrefix, instances.map((instance) => instance.id));
224
+ return resolvedId ? instances.find((instance) => instance.id === resolvedId) : undefined;
225
+ }
193
226
  /**
194
227
  * Gets all active instances in the pool
195
228
  */
@@ -204,17 +237,39 @@ export class ClientInstancePool {
204
237
  if (!instance) {
205
238
  return;
206
239
  }
240
+ // Make the removal visible before yielding so concurrent lookups cannot
241
+ // attach new memberships to an instance that is already being closed.
207
242
  instance.status = 'terminating';
208
- try {
209
- // Close transport and client connection
210
- await instance.client.close();
211
- await instance.transport.close();
243
+ return this.scheduleRemoval(instanceKey, instance);
244
+ }
245
+ scheduleRemoval(instanceKey, instance) {
246
+ const previousRemoval = this.removalOperations.get(instanceKey) ?? Promise.resolve();
247
+ const removal = previousRemoval
248
+ .catch(() => undefined)
249
+ .then(() => this.removeCapturedInstance(instanceKey, instance));
250
+ this.removalOperations.set(instanceKey, removal);
251
+ void removal.then(() => {
252
+ if (this.removalOperations.get(instanceKey) === removal) {
253
+ this.removalOperations.delete(instanceKey);
254
+ }
255
+ }, () => {
256
+ if (this.removalOperations.get(instanceKey) === removal) {
257
+ this.removalOperations.delete(instanceKey);
258
+ }
259
+ });
260
+ return removal;
261
+ }
262
+ async removeCapturedInstance(instanceKey, instance) {
263
+ if (this.instances.get(instanceKey) !== instance) {
264
+ return;
212
265
  }
213
- catch (error) {
214
- logger.warn(`Error closing client instance ${instance.id}:`, error);
266
+ instance.status = 'terminating';
267
+ await instance.supervisor?.stop();
268
+ await this.disposeInstance(instance);
269
+ if (this.instances.get(instanceKey) === instance) {
270
+ this.instances.delete(instanceKey);
271
+ this.removeFromTemplateIndex(instance.templateName, instanceKey);
215
272
  }
216
- this.instances.delete(instanceKey);
217
- this.removeFromTemplateIndex(instance.templateName, instanceKey);
218
273
  infoIf(() => ({
219
274
  message: 'Removed client instance from pool',
220
275
  meta: {
@@ -260,28 +315,26 @@ export class ClientInstancePool {
260
315
  * Shuts down the instance pool and cleans up all resources
261
316
  */
262
317
  async shutdown() {
318
+ if (this.shutdownPromise) {
319
+ return this.shutdownPromise;
320
+ }
321
+ this.isShuttingDown = true;
322
+ this.shutdownPromise = this.performShutdown();
323
+ return this.shutdownPromise;
324
+ }
325
+ async performShutdown() {
263
326
  if (this.cleanupTimer) {
264
327
  clearInterval(this.cleanupTimer);
265
328
  this.cleanupTimer = undefined;
266
329
  }
267
- // Mark all instances as terminating
268
- for (const instance of this.instances.values()) {
269
- instance.status = 'terminating';
270
- }
330
+ await Promise.allSettled(Array.from(this.pendingCreations.values()));
271
331
  const instanceCount = this.instances.size;
272
- // Close all client connections and transports
273
- await Promise.all(Array.from(this.instances.values()).map(async (instance) => {
274
- try {
275
- await instance.client.close();
276
- await instance.transport.close();
277
- }
278
- catch (error) {
279
- logger.warn(`Error shutting down client instance ${instance.id}:`, error);
280
- }
281
- }));
332
+ await Promise.allSettled(Array.from(this.instances, ([instanceKey, instance]) => this.scheduleRemoval(instanceKey, instance)));
333
+ await Promise.allSettled(Array.from(this.removalOperations.values()));
282
334
  this.instances.clear();
283
335
  this.templateToInstances.clear();
284
336
  this.pendingCreations.clear();
337
+ this.removalOperations.clear();
285
338
  debugIf(() => ({
286
339
  message: 'ClientInstancePool shutdown complete',
287
340
  meta: {
@@ -289,6 +342,124 @@ export class ClientInstancePool {
289
342
  },
290
343
  }));
291
344
  }
345
+ assertActive() {
346
+ if (this.isShuttingDown) {
347
+ throw new Error('ClientInstancePool is shutting down');
348
+ }
349
+ }
350
+ async disposeInstance(instance) {
351
+ try {
352
+ await instance.client.close();
353
+ }
354
+ catch (error) {
355
+ logger.warn(`Error closing client for instance ${instance.id}:`, error);
356
+ }
357
+ try {
358
+ await instance.transport.close();
359
+ }
360
+ catch (error) {
361
+ logger.warn(`Error closing transport for instance ${instance.id}:`, error);
362
+ }
363
+ }
364
+ async restartInstance(instance) {
365
+ if (!instance.supervisor) {
366
+ throw new Error(`Template instance ${instance.id} does not have stdio supervision enabled`);
367
+ }
368
+ await instance.supervisor.restartNow();
369
+ return instance.supervisor.snapshot();
370
+ }
371
+ configureInstanceSupervision(instance) {
372
+ const metadata = instance.transport.stdioSupervision;
373
+ if (!metadata)
374
+ return;
375
+ const supervisor = instance.supervisor ??
376
+ new BackendStdioSupervisor({
377
+ backendId: `template:${instance.templateName}:${instance.id}`,
378
+ policy: metadata.policy,
379
+ initialPid: instance.transport.pid ?? null,
380
+ recover: async (signal) => {
381
+ const currentClient = instance.client;
382
+ currentClient.onclose = undefined;
383
+ try {
384
+ await currentClient.close();
385
+ }
386
+ catch (error) {
387
+ debugIf(() => ({ message: `Could not close template instance ${instance.id}: ${error}` }));
388
+ }
389
+ if (signal.aborted || instance.status === 'terminating') {
390
+ throw new Error(`Template recovery cancelled for ${instance.id}`);
391
+ }
392
+ const clientId = instance.clientIds.values().next().value;
393
+ if (!clientId) {
394
+ throw new Error(`Template instance ${instance.id} has no active memberships`);
395
+ }
396
+ const candidate = await createPooledClientInstance({
397
+ instanceId: instance.id,
398
+ instanceKey: instance.instanceKey,
399
+ templateName: instance.templateName,
400
+ processedConfig: instance.processedConfig,
401
+ renderedHash: instance.renderedHash,
402
+ clientId,
403
+ idleTimeout: instance.idleTimeout,
404
+ });
405
+ const dispose = async () => {
406
+ candidate.client.onclose = undefined;
407
+ await candidate.client.close().catch(() => candidate.transport.close().catch(() => undefined));
408
+ };
409
+ return {
410
+ pid: candidate.transport.pid ?? null,
411
+ activate: () => {
412
+ instance.client = candidate.client;
413
+ instance.transport = candidate.transport;
414
+ this.configureInstanceSupervision(instance);
415
+ },
416
+ dispose,
417
+ };
418
+ },
419
+ onStateChange: (snapshot) => {
420
+ instance.supervision = snapshot;
421
+ if (snapshot.state === 'restarting')
422
+ instance.status = 'restarting';
423
+ if (snapshot.state === 'crash-loop')
424
+ instance.status = 'crash-loop';
425
+ if (snapshot.state === 'connected')
426
+ instance.status = instance.referenceCount > 0 ? 'active' : 'idle';
427
+ if (snapshot.state === 'stopped')
428
+ instance.status = 'terminating';
429
+ logger.info(`Template backend stdio supervision state changed for ${instance.templateName}`, {
430
+ instanceId: instance.id,
431
+ state: snapshot.state,
432
+ attempt: snapshot.attempt,
433
+ limit: snapshot.limit,
434
+ nextRetryAt: snapshot.nextRetryAt,
435
+ lastExit: snapshot.lastExit,
436
+ currentPid: snapshot.currentPid,
437
+ error: snapshot.lastError?.message,
438
+ });
439
+ this.supervisionPublisher?.(instance, snapshot);
440
+ },
441
+ });
442
+ instance.supervisor = supervisor;
443
+ instance.supervision = supervisor.snapshot();
444
+ const client = instance.client;
445
+ client.onclose = () => {
446
+ if (instance.client !== client || instance.status === 'terminating')
447
+ return;
448
+ if (instance.referenceCount === 0) {
449
+ instance.status = 'terminating';
450
+ void this.removeInstance(instance.instanceKey).catch((error) => {
451
+ logger.warn(`Failed to remove idle template instance ${instance.id} after child exit:`, error);
452
+ });
453
+ return;
454
+ }
455
+ supervisor.handleUnexpectedExit(instance.transport.stdioSupervision?.getLastExit() ?? {
456
+ code: null,
457
+ signal: null,
458
+ pid: instance.transport.pid ?? null,
459
+ at: new Date(),
460
+ });
461
+ };
462
+ }
292
463
  /**
293
464
  * Gets pool statistics for monitoring
294
465
  */
@@ -331,12 +502,6 @@ export class ClientInstancePool {
331
502
  createInstanceKey(templateName, variableHash, clientId) {
332
503
  return serializePoolIdentity({ templateName, renderedHash: variableHash, sessionId: clientId });
333
504
  }
334
- /**
335
- * Generates a unique instance ID
336
- */
337
- generateInstanceId() {
338
- return `client-instance-${++this.instanceCounter}-${Date.now()}`;
339
- }
340
505
  /**
341
506
  * Checks if creating a new instance would exceed limits
342
507
  */
@@ -1 +1 @@
1
- {"version":3,"file":"clientInstancePool.js","sourceRoot":"","sources":["../../../src/core/server/clientInstancePool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientInstancePool.js","sourceRoot":"","sources":["../../../src/core/server/clientInstancePool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
+ import type { BackendStdioSupervisor, BackendSupervisionSnapshot } from '../../core/server/backendStdioSupervisor.js';
2
3
  import { AuthProviderTransport } from '../../core/types/index.js';
3
4
  import type { MCPServerParams } from '../../core/types/transport.js';
4
5
  /**
@@ -43,7 +44,12 @@ export interface PooledClientInstance {
43
44
  /** Timestamp of last client activity */
44
45
  lastUsedAt: Date;
45
46
  /** Current status of the instance */
46
- status: 'active' | 'idle' | 'terminating';
47
+ status: 'active' | 'idle' | 'restarting' | 'crash-loop' | 'terminating';
48
+ /** Runtime-owned stdio supervision state for this logical instance. */
49
+ supervisor?: BackendStdioSupervisor;
50
+ supervision?: BackendSupervisionSnapshot;
51
+ /** Routable outbound connection keys currently backed by this logical instance. */
52
+ outboundKeys: Set<string>;
47
53
  /** Set of client IDs connected to this instance */
48
54
  clientIds: Set<string>;
49
55
  /** Template-specific idle timeout */
@@ -1 +1 @@
1
- {"version":3,"file":"clientInstancePoolTypes.d.ts","sourceRoot":"","sources":["../../../src/core/server/clientInstancePoolTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAKlC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,SAAS,EAAE,qBAAqB,CAAC;IACjC,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,IAAI,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;IAC1C,mDAAmD;IACnD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"clientInstancePoolTypes.d.ts","sourceRoot":"","sources":["../../../src/core/server/clientInstancePoolTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAKlC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,SAAS,EAAE,qBAAqB,CAAC;IACjC,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,SAAS,EAAE,IAAI,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,IAAI,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;IACxE,uEAAuE;IACvE,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,mFAAmF;IACnF,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,mDAAmD;IACnD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"clientInstancePoolTypes.js","sourceRoot":"","sources":["../../../src/core/server/clientInstancePoolTypes.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,eAAe,EAAE,EAAE,GAAG,IAAI;IAC1B,iBAAiB,EAAE,GAAG;CACvB,CAAC"}
1
+ {"version":3,"file":"clientInstancePoolTypes.js","sourceRoot":"","sources":["../../../src/core/server/clientInstancePoolTypes.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC1B,eAAe,EAAE,EAAE,GAAG,IAAI;IAC1B,iBAAiB,EAAE,GAAG;CACvB,CAAC"}
@@ -0,0 +1,61 @@
1
+ export type RuntimeScopeClaimantKind = 'foreground-http' | 'foreground-stdio' | 'background-supervisor';
2
+ export interface RuntimeScopeOwnershipRecord {
3
+ version: 1;
4
+ pid: number;
5
+ claimId: string;
6
+ kind: RuntimeScopeClaimantKind;
7
+ claimedAt: string;
8
+ }
9
+ export interface RuntimeScopeOwnership {
10
+ record: RuntimeScopeOwnershipRecord;
11
+ release: () => void;
12
+ }
13
+ export interface RuntimeScopeStopLock {
14
+ release: () => void;
15
+ }
16
+ export interface RuntimeScopeClaimant {
17
+ kind: RuntimeScopeClaimantKind;
18
+ pid?: number;
19
+ }
20
+ export type RuntimeScopeOwnershipFailureReason = 'owned' | 'ambiguous';
21
+ type RuntimeScopeOwnershipIdentity = Pick<RuntimeScopeOwnershipRecord, 'claimId' | 'pid'>;
22
+ export declare class RuntimeScopeOwnedError extends Error {
23
+ readonly ownerPath: string;
24
+ readonly reason: RuntimeScopeOwnershipFailureReason;
25
+ readonly owner: RuntimeScopeOwnershipRecord | null;
26
+ constructor(ownerPath: string, reason: RuntimeScopeOwnershipFailureReason, owner: RuntimeScopeOwnershipRecord | null, detail?: string);
27
+ }
28
+ interface OwnershipDependencies {
29
+ processAlive?: (pid: number) => boolean;
30
+ createClaimId?: () => string;
31
+ now?: () => Date;
32
+ }
33
+ export declare function getRuntimeScopeOwnershipPath(configDir: string): string;
34
+ export declare function getRuntimeScopeStopLockPath(configDir: string): string;
35
+ /**
36
+ * Atomically claims one Runtime Scope before runtime setup or transport binding.
37
+ * The complete candidate directory is renamed into the absent canonical path;
38
+ * a creator crash cannot expose partial canonical metadata.
39
+ */
40
+ export declare function claimRuntimeScope(configDir: string, claimant: RuntimeScopeClaimant, dependencies?: OwnershipDependencies): RuntimeScopeOwnership;
41
+ /** Serializes stop metadata cleanup against ordinary claims and workers. */
42
+ export declare function acquireRuntimeScopeStopLock(configDir: string, expectedOwner: Pick<RuntimeScopeOwnershipRecord, 'claimId' | 'pid'>, dependencies?: OwnershipDependencies): RuntimeScopeStopLock;
43
+ /**
44
+ * Guarded stale cleanup for discovery/status paths. It applies the same
45
+ * supervisor orphan checks as startup and removes only the observed generation.
46
+ */
47
+ export declare function reclaimStaleRuntimeScopeOwnership(configDir: string, expected: RuntimeScopeOwnershipIdentity, processAlive?: (pid: number) => boolean): boolean;
48
+ /**
49
+ * Verifies that a supervised worker was authorized by the live owner of the
50
+ * selected Runtime Scope. This does not transfer or release ownership.
51
+ */
52
+ export declare function verifyRuntimeScopeOwnership(configDir: string, claimId: string, expectedKind: RuntimeScopeClaimantKind, processAlive?: (pid: number) => boolean): RuntimeScopeOwnershipRecord;
53
+ /** Strictly reads the canonical owner record for lifecycle recovery commands. */
54
+ export declare function readRuntimeScopeOwnership(configDir: string): RuntimeScopeOwnershipRecord | null;
55
+ /**
56
+ * Releases only the owner observed by a lifecycle recovery command. Both PID
57
+ * and claim ID must still match so a replacement owner is never removed.
58
+ */
59
+ export declare function releaseRuntimeScopeOwnership(configDir: string, expected: RuntimeScopeOwnershipIdentity): boolean;
60
+ export {};
61
+ //# sourceMappingURL=runtimeScopeOwnership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeScopeOwnership.d.ts","sourceRoot":"","sources":["../../../src/core/server/runtimeScopeOwnership.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAExG,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kCAAkC,GAAG,OAAO,GAAG,WAAW,CAAC;AAEvE,KAAK,6BAA6B,GAAG,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;AAE1F,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,SAAS,EAAE,MAAM;aACjB,MAAM,EAAE,kCAAkC;aAC1C,KAAK,EAAE,2BAA2B,GAAG,IAAI;gBAFzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,kCAAkC,EAC1C,KAAK,EAAE,2BAA2B,GAAG,IAAI,EACzD,MAAM,CAAC,EAAE,MAAM;CAMlB;AAkBD,UAAU,qBAAqB;IAC7B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAgBD,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,YAAY,GAAE,qBAA0B,GACvC,qBAAqB,CA8DvB;AAED,4EAA4E;AAC5E,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,IAAI,CAAC,2BAA2B,EAAE,SAAS,GAAG,KAAK,CAAC,EACnE,YAAY,GAAE,qBAA0B,GACvC,oBAAoB,CA+DtB;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,6BAA6B,EACvC,YAAY,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAwB,GACtD,OAAO,CAMT;AA8FD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,wBAAwB,EACtC,YAAY,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAwB,GACtD,2BAA2B,CAgB7B;AA2JD,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAE/F;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,6BAA6B,GAAG,OAAO,CAMhH"}