@1mcp/agent 0.34.4 → 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 (333) hide show
  1. package/README.md +1 -0
  2. package/build/admin/assets/admin-console-C5_zD_qW.css +1 -0
  3. package/build/admin/assets/admin-console-CbHHoqLr.js +61 -0
  4. package/build/admin/index.html +13 -0
  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/admin/admin.d.ts +90 -0
  10. package/build/commands/admin/admin.d.ts.map +1 -0
  11. package/build/commands/admin/admin.js +545 -0
  12. package/build/commands/admin/admin.js.map +1 -0
  13. package/build/commands/admin/index.d.ts +3 -0
  14. package/build/commands/admin/index.d.ts.map +1 -0
  15. package/build/commands/admin/index.js +99 -0
  16. package/build/commands/admin/index.js.map +1 -0
  17. package/build/commands/auth/index.d.ts.map +1 -1
  18. package/build/commands/auth/index.js +24 -5
  19. package/build/commands/auth/index.js.map +1 -1
  20. package/build/commands/auth/login.d.ts +1 -0
  21. package/build/commands/auth/login.d.ts.map +1 -1
  22. package/build/commands/auth/login.js +6 -10
  23. package/build/commands/auth/login.js.map +1 -1
  24. package/build/commands/auth/logout.d.ts +3 -0
  25. package/build/commands/auth/logout.d.ts.map +1 -1
  26. package/build/commands/auth/logout.js +19 -32
  27. package/build/commands/auth/logout.js.map +1 -1
  28. package/build/commands/auth/runtimeTargetContext.d.ts +25 -0
  29. package/build/commands/auth/runtimeTargetContext.d.ts.map +1 -0
  30. package/build/commands/auth/runtimeTargetContext.js +69 -0
  31. package/build/commands/auth/runtimeTargetContext.js.map +1 -0
  32. package/build/commands/auth/status.d.ts +1 -0
  33. package/build/commands/auth/status.d.ts.map +1 -1
  34. package/build/commands/auth/status.js +10 -33
  35. package/build/commands/auth/status.js.map +1 -1
  36. package/build/commands/inspect/index.d.ts.map +1 -1
  37. package/build/commands/inspect/index.js +4 -0
  38. package/build/commands/inspect/index.js.map +1 -1
  39. package/build/commands/inspect/inspect.d.ts +1 -0
  40. package/build/commands/inspect/inspect.d.ts.map +1 -1
  41. package/build/commands/inspect/inspect.js +2 -2
  42. package/build/commands/inspect/inspect.js.map +1 -1
  43. package/build/commands/instructions/index.d.ts.map +1 -1
  44. package/build/commands/instructions/index.js +4 -0
  45. package/build/commands/instructions/index.js.map +1 -1
  46. package/build/commands/instructions/instructions.d.ts +1 -0
  47. package/build/commands/instructions/instructions.d.ts.map +1 -1
  48. package/build/commands/instructions/instructions.js.map +1 -1
  49. package/build/commands/instructions/instructionsUtils.js +1 -1
  50. package/build/commands/instructions/instructionsUtils.js.map +1 -1
  51. package/build/commands/mcp/enable.d.ts +89 -2
  52. package/build/commands/mcp/enable.d.ts.map +1 -1
  53. package/build/commands/mcp/enable.js +555 -35
  54. package/build/commands/mcp/enable.js.map +1 -1
  55. package/build/commands/mcp/index.d.ts.map +1 -1
  56. package/build/commands/mcp/index.js +10 -0
  57. package/build/commands/mcp/index.js.map +1 -1
  58. package/build/commands/mcp/restart.d.ts +69 -0
  59. package/build/commands/mcp/restart.d.ts.map +1 -0
  60. package/build/commands/mcp/restart.js +259 -0
  61. package/build/commands/mcp/restart.js.map +1 -0
  62. package/build/commands/mcp/status.d.ts +24 -1
  63. package/build/commands/mcp/status.d.ts.map +1 -1
  64. package/build/commands/mcp/status.js +158 -14
  65. package/build/commands/mcp/status.js.map +1 -1
  66. package/build/commands/proxy/index.d.ts +1 -0
  67. package/build/commands/proxy/index.d.ts.map +1 -1
  68. package/build/commands/proxy/index.js +4 -0
  69. package/build/commands/proxy/index.js.map +1 -1
  70. package/build/commands/run/index.d.ts.map +1 -1
  71. package/build/commands/run/index.js +4 -0
  72. package/build/commands/run/index.js.map +1 -1
  73. package/build/commands/run/run.d.ts +1 -0
  74. package/build/commands/run/run.d.ts.map +1 -1
  75. package/build/commands/run/run.js +2 -2
  76. package/build/commands/run/run.js.map +1 -1
  77. package/build/commands/serve/index.d.ts +8 -0
  78. package/build/commands/serve/index.d.ts.map +1 -1
  79. package/build/commands/serve/index.js +12 -0
  80. package/build/commands/serve/index.js.map +1 -1
  81. package/build/commands/serve/serve.d.ts +13 -0
  82. package/build/commands/serve/serve.d.ts.map +1 -1
  83. package/build/commands/serve/serve.js +115 -57
  84. package/build/commands/serve/serve.js.map +1 -1
  85. package/build/commands/serve/serveBackground.d.ts +48 -26
  86. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  87. package/build/commands/serve/serveBackground.js +230 -61
  88. package/build/commands/serve/serveBackground.js.map +1 -1
  89. package/build/commands/serve/serveRestart.d.ts +1 -1
  90. package/build/commands/serve/serveRestart.js +1 -1
  91. package/build/commands/serve/serveStatus.d.ts +20 -10
  92. package/build/commands/serve/serveStatus.d.ts.map +1 -1
  93. package/build/commands/serve/serveStatus.js +174 -13
  94. package/build/commands/serve/serveStatus.js.map +1 -1
  95. package/build/commands/serve/serveStop.d.ts +13 -4
  96. package/build/commands/serve/serveStop.d.ts.map +1 -1
  97. package/build/commands/serve/serveStop.js +212 -23
  98. package/build/commands/serve/serveStop.js.map +1 -1
  99. package/build/commands/shared/apiClient.d.ts +5 -1
  100. package/build/commands/shared/apiClient.d.ts.map +1 -1
  101. package/build/commands/shared/apiClient.js +17 -9
  102. package/build/commands/shared/apiClient.js.map +1 -1
  103. package/build/commands/shared/clientSurfaceAttachment.d.ts +14 -0
  104. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  105. package/build/commands/shared/clientSurfaceAttachment.js +51 -9
  106. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  107. package/build/commands/shared/commandRunner.d.ts +3 -1
  108. package/build/commands/shared/commandRunner.d.ts.map +1 -1
  109. package/build/commands/shared/commandRunner.js +59 -2
  110. package/build/commands/shared/commandRunner.js.map +1 -1
  111. package/build/commands/shared/serveTargetResolver.d.ts +14 -1
  112. package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
  113. package/build/commands/shared/serveTargetResolver.js +145 -3
  114. package/build/commands/shared/serveTargetResolver.js.map +1 -1
  115. package/build/commands/target/index.d.ts +3 -0
  116. package/build/commands/target/index.d.ts.map +1 -0
  117. package/build/commands/target/index.js +171 -0
  118. package/build/commands/target/index.js.map +1 -0
  119. package/build/commands/target/target.d.ts +78 -0
  120. package/build/commands/target/target.d.ts.map +1 -0
  121. package/build/commands/target/target.js +471 -0
  122. package/build/commands/target/target.js.map +1 -0
  123. package/build/config/configManager.d.ts +2 -0
  124. package/build/config/configManager.d.ts.map +1 -1
  125. package/build/config/configManager.js +19 -8
  126. package/build/config/configManager.js.map +1 -1
  127. package/build/config/mcpConfigMerge.d.ts.map +1 -1
  128. package/build/config/mcpConfigMerge.js +13 -2
  129. package/build/config/mcpConfigMerge.js.map +1 -1
  130. package/build/constants/mcp.d.ts +1 -1
  131. package/build/constants/mcp.d.ts.map +1 -1
  132. package/build/constants/mcp.js +1 -1
  133. package/build/constants/mcp.js.map +1 -1
  134. package/build/core/client/clientManager.d.ts +24 -1
  135. package/build/core/client/clientManager.d.ts.map +1 -1
  136. package/build/core/client/clientManager.js +268 -2
  137. package/build/core/client/clientManager.js.map +1 -1
  138. package/build/core/client/connectionHandler.d.ts.map +1 -1
  139. package/build/core/client/connectionHandler.js +18 -1
  140. package/build/core/client/connectionHandler.js.map +1 -1
  141. package/build/core/configChangeHandler.d.ts +1 -0
  142. package/build/core/configChangeHandler.d.ts.map +1 -1
  143. package/build/core/configChangeHandler.js +14 -0
  144. package/build/core/configChangeHandler.js.map +1 -1
  145. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  146. package/build/core/loading/mcpLoadingManager.js +16 -4
  147. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  148. package/build/core/runtime/runtimeIdentityService.d.ts +30 -0
  149. package/build/core/runtime/runtimeIdentityService.d.ts.map +1 -0
  150. package/build/core/runtime/runtimeIdentityService.js +63 -0
  151. package/build/core/runtime/runtimeIdentityService.js.map +1 -0
  152. package/build/core/server/agentConfig.d.ts +4 -0
  153. package/build/core/server/agentConfig.d.ts.map +1 -1
  154. package/build/core/server/agentConfig.js +3 -0
  155. package/build/core/server/agentConfig.js.map +1 -1
  156. package/build/core/server/backendStdioSupervisor.d.ts +73 -0
  157. package/build/core/server/backendStdioSupervisor.d.ts.map +1 -0
  158. package/build/core/server/backendStdioSupervisor.js +191 -0
  159. package/build/core/server/backendStdioSupervisor.js.map +1 -0
  160. package/build/core/server/backgroundLaunchConfig.d.ts +15 -0
  161. package/build/core/server/backgroundLaunchConfig.d.ts.map +1 -0
  162. package/build/core/server/backgroundLaunchConfig.js +46 -0
  163. package/build/core/server/backgroundLaunchConfig.js.map +1 -0
  164. package/build/core/server/backgroundRuntimeSupervisor.d.ts +44 -0
  165. package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -0
  166. package/build/core/server/backgroundRuntimeSupervisor.js +252 -0
  167. package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -0
  168. package/build/core/server/backgroundRuntimeSupervisorState.d.ts +30 -0
  169. package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -0
  170. package/build/core/server/backgroundRuntimeSupervisorState.js +81 -0
  171. package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -0
  172. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  173. package/build/core/server/clientInstanceFactory.js +1 -0
  174. package/build/core/server/clientInstanceFactory.js.map +1 -1
  175. package/build/core/server/clientInstancePool.d.ts +17 -5
  176. package/build/core/server/clientInstancePool.d.ts.map +1 -1
  177. package/build/core/server/clientInstancePool.js +198 -33
  178. package/build/core/server/clientInstancePool.js.map +1 -1
  179. package/build/core/server/clientInstancePoolTypes.d.ts +7 -1
  180. package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
  181. package/build/core/server/clientInstancePoolTypes.js.map +1 -1
  182. package/build/core/server/runtimeScopeOwnership.d.ts +61 -0
  183. package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -0
  184. package/build/core/server/runtimeScopeOwnership.js +544 -0
  185. package/build/core/server/runtimeScopeOwnership.js.map +1 -0
  186. package/build/core/server/serverManager.d.ts +2 -0
  187. package/build/core/server/serverManager.d.ts.map +1 -1
  188. package/build/core/server/serverManager.js +30 -0
  189. package/build/core/server/serverManager.js.map +1 -1
  190. package/build/core/server/templateIdentity.d.ts +10 -0
  191. package/build/core/server/templateIdentity.d.ts.map +1 -1
  192. package/build/core/server/templateIdentity.js +33 -0
  193. package/build/core/server/templateIdentity.js.map +1 -1
  194. package/build/core/server/templateServerCleanup.d.ts.map +1 -1
  195. package/build/core/server/templateServerCleanup.js +7 -1
  196. package/build/core/server/templateServerCleanup.js.map +1 -1
  197. package/build/core/server/templateServerManager.d.ts +13 -0
  198. package/build/core/server/templateServerManager.d.ts.map +1 -1
  199. package/build/core/server/templateServerManager.js +129 -4
  200. package/build/core/server/templateServerManager.js.map +1 -1
  201. package/build/core/tools/handlers/serverManagementHandler.d.ts +117 -11
  202. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  203. package/build/core/tools/handlers/serverManagementHandler.js +103 -45
  204. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  205. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -2
  206. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -2
  207. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
  208. package/build/core/tools/internal/adapters/management/managementAdapter.js +45 -26
  209. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
  210. package/build/core/tools/internal/adapters/management/types.d.ts +21 -2
  211. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  212. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
  213. package/build/core/tools/internal/managementHandlers.js +73 -22
  214. package/build/core/tools/internal/managementHandlers.js.map +1 -1
  215. package/build/core/tools/internal/schemas/discovery.d.ts +3 -3
  216. package/build/core/tools/internal/schemas/edit.js +1 -1
  217. package/build/core/tools/internal/schemas/edit.js.map +1 -1
  218. package/build/core/tools/internal/schemas/index.d.ts +90 -19
  219. package/build/core/tools/internal/schemas/index.d.ts.map +1 -1
  220. package/build/core/tools/internal/schemas/installation.d.ts +7 -7
  221. package/build/core/tools/internal/schemas/management.d.ts +80 -9
  222. package/build/core/tools/internal/schemas/management.d.ts.map +1 -1
  223. package/build/core/tools/internal/schemas/management.js +69 -2
  224. package/build/core/tools/internal/schemas/management.js.map +1 -1
  225. package/build/core/types/client.d.ts +9 -2
  226. package/build/core/types/client.d.ts.map +1 -1
  227. package/build/core/types/client.js +4 -0
  228. package/build/core/types/client.js.map +1 -1
  229. package/build/core/types/transport.d.ts +34 -4
  230. package/build/core/types/transport.d.ts.map +1 -1
  231. package/build/core/types/transport.js +26 -3
  232. package/build/core/types/transport.js.map +1 -1
  233. package/build/domains/admin/adminBackendRestartService.d.ts +41 -0
  234. package/build/domains/admin/adminBackendRestartService.d.ts.map +1 -0
  235. package/build/domains/admin/adminBackendRestartService.js +22 -0
  236. package/build/domains/admin/adminBackendRestartService.js.map +1 -0
  237. package/build/domains/admin/adminConfiguredServerService.d.ts +275 -0
  238. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -0
  239. package/build/domains/admin/adminConfiguredServerService.js +1926 -0
  240. package/build/domains/admin/adminConfiguredServerService.js.map +1 -0
  241. package/build/domains/admin/adminConnectivityChecker.d.ts +7 -0
  242. package/build/domains/admin/adminConnectivityChecker.d.ts.map +1 -0
  243. package/build/domains/admin/adminConnectivityChecker.js +42 -0
  244. package/build/domains/admin/adminConnectivityChecker.js.map +1 -0
  245. package/build/domains/admin/adminDomain.d.ts +36 -0
  246. package/build/domains/admin/adminDomain.d.ts.map +1 -0
  247. package/build/domains/admin/adminDomain.js +52 -0
  248. package/build/domains/admin/adminDomain.js.map +1 -0
  249. package/build/domains/admin/adminIdentityService.d.ts +75 -0
  250. package/build/domains/admin/adminIdentityService.d.ts.map +1 -0
  251. package/build/domains/admin/adminIdentityService.js +321 -0
  252. package/build/domains/admin/adminIdentityService.js.map +1 -0
  253. package/build/domains/admin/adminOAuthService.d.ts +26 -0
  254. package/build/domains/admin/adminOAuthService.d.ts.map +1 -0
  255. package/build/domains/admin/adminOAuthService.js +71 -0
  256. package/build/domains/admin/adminOAuthService.js.map +1 -0
  257. package/build/domains/admin/adminOperationService.d.ts +203 -0
  258. package/build/domains/admin/adminOperationService.d.ts.map +1 -0
  259. package/build/domains/admin/adminOperationService.js +749 -0
  260. package/build/domains/admin/adminOperationService.js.map +1 -0
  261. package/build/domains/admin/adminPresetService.d.ts +140 -0
  262. package/build/domains/admin/adminPresetService.d.ts.map +1 -0
  263. package/build/domains/admin/adminPresetService.js +248 -0
  264. package/build/domains/admin/adminPresetService.js.map +1 -0
  265. package/build/domains/admin/runtimeScopeAdminLock.d.ts +22 -0
  266. package/build/domains/admin/runtimeScopeAdminLock.d.ts.map +1 -0
  267. package/build/domains/admin/runtimeScopeAdminLock.js +121 -0
  268. package/build/domains/admin/runtimeScopeAdminLock.js.map +1 -0
  269. package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts +20 -0
  270. package/build/domains/admin/runtimeServerManagerBackendRestartService.d.ts.map +1 -0
  271. package/build/domains/admin/runtimeServerManagerBackendRestartService.js +78 -0
  272. package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -0
  273. package/build/domains/config-change/configChange.d.ts +6 -1
  274. package/build/domains/config-change/configChange.d.ts.map +1 -1
  275. package/build/domains/config-change/configChange.js +344 -0
  276. package/build/domains/config-change/configChange.js.map +1 -1
  277. package/build/domains/config-change/types.d.ts +18 -3
  278. package/build/domains/config-change/types.d.ts.map +1 -1
  279. package/build/domains/preset/manager/presetManager.d.ts +1 -0
  280. package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
  281. package/build/domains/preset/manager/presetManager.js +3 -0
  282. package/build/domains/preset/manager/presetManager.js.map +1 -1
  283. package/build/domains/preset/tagAuthoring.d.ts +10 -0
  284. package/build/domains/preset/tagAuthoring.d.ts.map +1 -0
  285. package/build/domains/preset/tagAuthoring.js +94 -0
  286. package/build/domains/preset/tagAuthoring.js.map +1 -0
  287. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +51 -0
  288. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -0
  289. package/build/domains/runtime-targets/runtimeIdentityVerification.js +258 -0
  290. package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -0
  291. package/build/domains/runtime-targets/runtimeTargetStore.d.ts +222 -0
  292. package/build/domains/runtime-targets/runtimeTargetStore.d.ts.map +1 -0
  293. package/build/domains/runtime-targets/runtimeTargetStore.js +1456 -0
  294. package/build/domains/runtime-targets/runtimeTargetStore.js.map +1 -0
  295. package/build/index.d.ts.map +1 -1
  296. package/build/index.js +7 -1
  297. package/build/index.js.map +1 -1
  298. package/build/server.d.ts.map +1 -1
  299. package/build/server.js +18 -2
  300. package/build/server.js.map +1 -1
  301. package/build/transport/http/routes/adminRoutes.d.ts +38 -0
  302. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -0
  303. package/build/transport/http/routes/adminRoutes.js +1475 -0
  304. package/build/transport/http/routes/adminRoutes.js.map +1 -0
  305. package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
  306. package/build/transport/http/routes/healthRoutes.js +70 -2
  307. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  308. package/build/transport/http/routes/oauthRoutes.d.ts +4 -1
  309. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  310. package/build/transport/http/routes/oauthRoutes.js +12 -190
  311. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  312. package/build/transport/http/routes/runtimeIdentityRoutes.d.ts +7 -0
  313. package/build/transport/http/routes/runtimeIdentityRoutes.d.ts.map +1 -0
  314. package/build/transport/http/routes/runtimeIdentityRoutes.js +9 -0
  315. package/build/transport/http/routes/runtimeIdentityRoutes.js.map +1 -0
  316. package/build/transport/http/server.d.ts +3 -0
  317. package/build/transport/http/server.d.ts.map +1 -1
  318. package/build/transport/http/server.js +102 -4
  319. package/build/transport/http/server.js.map +1 -1
  320. package/build/transport/transportFactory.d.ts.map +1 -1
  321. package/build/transport/transportFactory.js +27 -15
  322. package/build/transport/transportFactory.js.map +1 -1
  323. package/build/transport/transportFactory.testSetup.js +2 -0
  324. package/build/transport/transportFactory.testSetup.js.map +1 -1
  325. package/build/utils/core/errorTypes.d.ts +3 -0
  326. package/build/utils/core/errorTypes.d.ts.map +1 -1
  327. package/build/utils/core/errorTypes.js +7 -0
  328. package/build/utils/core/errorTypes.js.map +1 -1
  329. package/build/utils/validation/urlDetection.d.ts +13 -2
  330. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  331. package/build/utils/validation/urlDetection.js +37 -6
  332. package/build/utils/validation/urlDetection.js.map +1 -1
  333. package/package.json +22 -9
@@ -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 { readPidFile } from '../../core/server/pidFileManager.js';
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 the HTTP Aggregated Runtime as a detached child
13
- * for the selected Runtime Scope, then return once it is ready.
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 parent never serves; it spawns a detached copy of this executable running
16
- * the normal serve path (marked with an internal guard flag so it does not
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
- * Build the child's serve arguments: strip flags the parent overrides
28
- * (`--background`, `--transport`/`-t`, `--log-file`, and the guard — including
29
- * their `=`-joined forms) and re-append the HTTP transport, the resolved log
30
- * file, and the guard flag. Background is HTTP-only, so the child is always
31
- * forced onto `--transport http`.
32
- */
33
- export function buildBackgroundChildArgs(serveArgs, opts) {
34
- const stripWithValue = new Set(['--transport', '-t', '--log-file']);
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 (token === '--background' || token === `--${BACKGROUND_GUARD_FLAG}`) {
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 / child death.
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
- process.stderr.write('Error: `serve --background --transport stdio` is not supported.\n' +
116
- 'stdio uses the invoking process stdin/stdout and cannot be detached. Use HTTP transport.\n');
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
- // Idempotency: do not start a second runtime if the scope is already occupied.
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
- process.stdout.write(`A runtime is already running in this Runtime Scope; not starting another.\n` +
124
- formatStartedReport(existing.info));
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
- process.stderr.write(`A runtime already occupies this Runtime Scope (PID ${existing.info.pid}) but is not ready yet.\n` +
130
- `Refusing to start a second runtime. Check 'serve --status' or stop it first.\n`);
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
- process.stderr.write(`Cannot inspect Runtime Scope ${configDir}: ${existing.error ?? 'PID file could not be read'}.\n` +
136
- `Refusing to start a second runtime until the PID file problem is fixed.\n`);
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
- // Build the detached child invocation.
152
- const rawArgv = deps.rawArgv ?? normalizedArgv;
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 spawnArgs = [...baseArgs, 'serve', ...childServeArgs];
263
+ const supervisorArgs = [...baseArgs, 'serve', ...supervisorServeArgs];
156
264
  const spawnChild = deps.spawnChild ??
157
265
  ((cmd, args, options) => spawn(cmd, args, options));
158
- const child = spawnChild(command, spawnArgs, { detached: true, stdio: 'ignore' });
159
- if (!child.pid) {
160
- process.stderr.write('Error: failed to spawn background runtime process.\n');
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
- child.unref();
272
+ supervisor.unref();
166
273
  // Acknowledge the spawn immediately so the wait is never silent.
167
- process.stderr.write(`Starting background runtime (PID ${child.pid})…\n`);
274
+ process.stderr.write(`Starting background runtime supervisor (PID ${supervisor.pid})…\n`);
168
275
  process.stderr.write(`Log file: ${logFile}\n`);
169
- let childExited = false;
170
- child.once('exit', () => {
171
- childExited = true;
276
+ let supervisorExited = false;
277
+ supervisor.once('exit', () => {
278
+ supervisorExited = true;
172
279
  });
173
280
  const renderer = createProgressRenderer(logFile);
174
- const waitForReady = deps.waitForReady ?? waitForBackgroundReady;
175
- const result = await waitForReady(configDir, child.pid, {
176
- isChildAlive: () => !childExited,
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
- // Failure: report log path, terminate the child, exit non-zero.
188
- process.stderr.write(`Error: background runtime did not become ready (${result.reason ?? 'unknown error'}).\n` +
189
- `See the log for details: ${logFile}\n`);
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 (!childExited && child.pid) {
192
- killChild(child.pid);
300
+ if (!result.terminal && !supervisorExited && supervisor.pid) {
301
+ killChild(supervisor.pid);
193
302
  }
194
- process.exitCode = 1;
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 child (PID: ${pid}): ${error}`);
370
+ logger.warn(`Failed to terminate background supervisor (PID: ${pid}): ${error}`);
202
371
  }
203
372
  }
204
373
  function formatStartedReport(info, opts = {}) {
205
- let report = `PID: ${info.pid}\n` + `URL: ${info.url}\n` + `Log file: ${info.logFile ?? '(console only)'}\n`;
374
+ const lines = [`PID: ${info.pid}`, `URL: ${info.url}`, `Log file: ${info.logFile ?? '(console only)'}`];
206
375
  if (opts.summary) {
207
- report += `Servers: ${opts.summary.ready}/${opts.summary.total} ready\n`;
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 (e.g. the idempotency report).
380
+ // when the caller does not supply the flag.
212
381
  if (opts.asyncEnabled === false) {
213
- report += `Tip: run with --enable-async-loading for near-instant background detach.\n`;
382
+ lines.push('Tip: run with --enable-async-loading for near-instant background detach.');
214
383
  }
215
- return report;
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 idempotency all come from them unchanged.
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
- // PID file, so the background idempotency probe sees an empty scope.
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: RuntimeStatus;
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
- * Process exit codes per runtime state, so scripts can branch on `serve --status`:
20
- * - running (alive and ready) → 0
21
- * - not-running (empty scope or stale dead PID) → 3
22
- * - unreachable (alive but `/health/ready` failing) → 4
23
- */
24
- export declare const STATUS_EXIT_CODES: Record<RuntimeStatus, number>;
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,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAyB,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAE5F;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAK3D,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAInG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAuB7E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E"}
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"}