@nextclaw/service 0.2.13 → 0.2.14

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 (846) hide show
  1. package/dist/app/nextclaw-service-runtime.d.ts +41 -0
  2. package/dist/app/nextclaw-service-runtime.d.ts.map +1 -0
  3. package/dist/app/nextclaw-service-runtime.js +136 -0
  4. package/dist/app/nextclaw-service-runtime.js.map +1 -0
  5. package/dist/controllers/commands/agent-command.controller.d.ts +3 -0
  6. package/dist/controllers/commands/agent-command.controller.js +3 -0
  7. package/dist/controllers/commands/channel-command.controller.d.ts +21 -0
  8. package/dist/controllers/commands/channel-command.controller.d.ts.map +1 -0
  9. package/dist/controllers/commands/channel-command.controller.js +115 -0
  10. package/dist/controllers/commands/channel-command.controller.js.map +1 -0
  11. package/dist/controllers/commands/config-command.controller.d.ts +2 -0
  12. package/dist/controllers/commands/config-command.controller.js +2 -0
  13. package/dist/controllers/commands/cron-command.controller.d.ts +2 -0
  14. package/dist/controllers/commands/cron-command.controller.js +2 -0
  15. package/dist/controllers/commands/diagnostics-command.controller.d.ts +2 -0
  16. package/dist/controllers/commands/diagnostics-command.controller.js +2 -0
  17. package/dist/controllers/commands/gateway-command.controller.d.ts +15 -0
  18. package/dist/controllers/commands/gateway-command.controller.d.ts.map +1 -0
  19. package/dist/controllers/commands/gateway-command.controller.js +17 -0
  20. package/dist/controllers/commands/gateway-command.controller.js.map +1 -0
  21. package/dist/controllers/commands/logs-command.controller.d.ts +13 -0
  22. package/dist/controllers/commands/logs-command.controller.d.ts.map +1 -0
  23. package/dist/controllers/commands/logs-command.controller.js +31 -0
  24. package/dist/controllers/commands/logs-command.controller.js.map +1 -0
  25. package/dist/controllers/commands/marketplace-skill-command.controller.d.ts +28 -0
  26. package/dist/controllers/commands/marketplace-skill-command.controller.d.ts.map +1 -0
  27. package/dist/controllers/commands/marketplace-skill-command.controller.js +170 -0
  28. package/dist/controllers/commands/marketplace-skill-command.controller.js.map +1 -0
  29. package/dist/controllers/commands/mcp-command.controller.d.ts +15 -0
  30. package/dist/controllers/commands/mcp-command.controller.d.ts.map +1 -0
  31. package/dist/controllers/commands/mcp-command.controller.js +195 -0
  32. package/dist/controllers/commands/mcp-command.controller.js.map +1 -0
  33. package/dist/controllers/commands/platform-auth-command.controller.d.ts +2 -0
  34. package/dist/controllers/commands/platform-auth-command.controller.js +2 -0
  35. package/dist/controllers/commands/remote-command.controller.d.ts +48 -0
  36. package/dist/controllers/commands/remote-command.controller.d.ts.map +1 -0
  37. package/dist/controllers/commands/remote-command.controller.js +176 -0
  38. package/dist/controllers/commands/remote-command.controller.js.map +1 -0
  39. package/dist/controllers/commands/restart-command.controller.d.ts +21 -0
  40. package/dist/controllers/commands/restart-command.controller.d.ts.map +1 -0
  41. package/dist/controllers/commands/restart-command.controller.js +90 -0
  42. package/dist/controllers/commands/restart-command.controller.js.map +1 -0
  43. package/dist/controllers/commands/secrets-command.controller.d.ts +23 -0
  44. package/dist/controllers/commands/secrets-command.controller.d.ts.map +1 -0
  45. package/dist/controllers/commands/secrets-command.controller.js +282 -0
  46. package/dist/controllers/commands/secrets-command.controller.js.map +1 -0
  47. package/dist/controllers/commands/serve-command.controller.d.ts +15 -0
  48. package/dist/controllers/commands/serve-command.controller.d.ts.map +1 -0
  49. package/dist/controllers/commands/serve-command.controller.js +21 -0
  50. package/dist/controllers/commands/serve-command.controller.js.map +1 -0
  51. package/dist/controllers/commands/service-command.controller.d.ts +17 -0
  52. package/dist/controllers/commands/service-command.controller.d.ts.map +1 -0
  53. package/dist/controllers/commands/service-command.controller.js +33 -0
  54. package/dist/controllers/commands/service-command.controller.js.map +1 -0
  55. package/dist/controllers/commands/start-command.controller.d.ts +19 -0
  56. package/dist/controllers/commands/start-command.controller.d.ts.map +1 -0
  57. package/dist/controllers/commands/start-command.controller.js +27 -0
  58. package/dist/controllers/commands/start-command.controller.js.map +1 -0
  59. package/dist/controllers/commands/stop-command.controller.d.ts +13 -0
  60. package/dist/controllers/commands/stop-command.controller.d.ts.map +1 -0
  61. package/dist/controllers/commands/stop-command.controller.js +13 -0
  62. package/dist/controllers/commands/stop-command.controller.js.map +1 -0
  63. package/dist/controllers/commands/ui-command.controller.d.ts +15 -0
  64. package/dist/controllers/commands/ui-command.controller.d.ts.map +1 -0
  65. package/dist/controllers/commands/ui-command.controller.js +19 -0
  66. package/dist/controllers/commands/ui-command.controller.js.map +1 -0
  67. package/dist/controllers/commands/usage-command.controller.d.ts +2 -0
  68. package/dist/controllers/commands/usage-command.controller.js +2 -0
  69. package/dist/controllers/gateway.controller.d.ts +54 -0
  70. package/dist/controllers/gateway.controller.d.ts.map +1 -0
  71. package/dist/controllers/gateway.controller.js +162 -0
  72. package/dist/controllers/gateway.controller.js.map +1 -0
  73. package/dist/index.d.ts +4 -4
  74. package/dist/index.js +2 -2
  75. package/dist/launcher/npm-runtime-launcher.service.d.ts +1 -1
  76. package/dist/launcher/npm-runtime-launcher.service.js +6 -6
  77. package/dist/launcher/npm-runtime-launcher.service.js.map +1 -1
  78. package/dist/managers/gateway-extension.manager.d.ts +29 -0
  79. package/dist/managers/gateway-extension.manager.d.ts.map +1 -0
  80. package/dist/managers/gateway-extension.manager.js +78 -0
  81. package/dist/managers/gateway-extension.manager.js.map +1 -0
  82. package/dist/managers/gateway-remote.manager.d.ts +23 -0
  83. package/dist/managers/gateway-remote.manager.d.ts.map +1 -0
  84. package/dist/managers/gateway-remote.manager.js +28 -0
  85. package/dist/managers/gateway-remote.manager.js.map +1 -0
  86. package/dist/managers/managed-service.manager.d.ts +42 -0
  87. package/dist/managers/managed-service.manager.d.ts.map +1 -0
  88. package/dist/managers/managed-service.manager.js +195 -0
  89. package/dist/managers/managed-service.manager.js.map +1 -0
  90. package/dist/managers/runtime-update.manager.d.ts +43 -0
  91. package/dist/managers/runtime-update.manager.d.ts.map +1 -0
  92. package/dist/managers/runtime-update.manager.js +185 -0
  93. package/dist/managers/runtime-update.manager.js.map +1 -0
  94. package/dist/managers/service-command.manager.d.ts +67 -0
  95. package/dist/managers/service-command.manager.d.ts.map +1 -0
  96. package/dist/managers/service-command.manager.js +94 -0
  97. package/dist/managers/service-command.manager.js.map +1 -0
  98. package/dist/managers/service-gateway.manager.d.ts +85 -0
  99. package/dist/managers/service-gateway.manager.d.ts.map +1 -0
  100. package/dist/managers/service-gateway.manager.js +278 -0
  101. package/dist/managers/service-gateway.manager.js.map +1 -0
  102. package/dist/managers/service-restart.manager.d.ts +22 -0
  103. package/dist/managers/service-restart.manager.d.ts.map +1 -0
  104. package/dist/managers/service-restart.manager.js +183 -0
  105. package/dist/managers/service-restart.manager.js.map +1 -0
  106. package/dist/managers/service-workspace.manager.d.ts +14 -0
  107. package/dist/managers/service-workspace.manager.d.ts.map +1 -0
  108. package/dist/managers/service-workspace.manager.js +86 -0
  109. package/dist/managers/service-workspace.manager.js.map +1 -0
  110. package/dist/services/agent/agent-commands.service.d.ts +17 -0
  111. package/dist/services/agent/agent-commands.service.d.ts.map +1 -0
  112. package/dist/services/agent/agent-commands.service.js +111 -0
  113. package/dist/services/agent/agent-commands.service.js.map +1 -0
  114. package/dist/services/autostart/host-autostart-command.service.d.ts +30 -0
  115. package/dist/services/autostart/host-autostart-command.service.d.ts.map +1 -0
  116. package/dist/services/autostart/host-autostart-command.service.js +160 -0
  117. package/dist/services/autostart/host-autostart-command.service.js.map +1 -0
  118. package/dist/services/autostart/host-autostart-runtime.service.d.ts +24 -0
  119. package/dist/services/autostart/host-autostart-runtime.service.d.ts.map +1 -0
  120. package/dist/services/autostart/host-autostart-runtime.service.js +55 -0
  121. package/dist/services/autostart/host-autostart-runtime.service.js.map +1 -0
  122. package/dist/services/autostart/host-autostart.service.d.ts +42 -0
  123. package/dist/services/autostart/host-autostart.service.d.ts.map +1 -0
  124. package/dist/services/autostart/host-autostart.service.js +50 -0
  125. package/dist/services/autostart/host-autostart.service.js.map +1 -0
  126. package/dist/services/autostart/linux-systemd-autostart.service.d.ts +49 -0
  127. package/dist/services/autostart/linux-systemd-autostart.service.d.ts.map +1 -0
  128. package/dist/services/autostart/linux-systemd-autostart.service.js +435 -0
  129. package/dist/services/autostart/linux-systemd-autostart.service.js.map +1 -0
  130. package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts +55 -0
  131. package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts.map +1 -0
  132. package/dist/services/autostart/macos-launch-agent-autostart.service.js +407 -0
  133. package/dist/services/autostart/macos-launch-agent-autostart.service.js.map +1 -0
  134. package/dist/services/autostart/windows-task-autostart.service.d.ts +55 -0
  135. package/dist/services/autostart/windows-task-autostart.service.d.ts.map +1 -0
  136. package/dist/services/autostart/windows-task-autostart.service.js +406 -0
  137. package/dist/services/autostart/windows-task-autostart.service.js.map +1 -0
  138. package/dist/services/channel/channel-list-view.service.d.ts +29 -0
  139. package/dist/services/channel/channel-list-view.service.d.ts.map +1 -0
  140. package/dist/services/channel/channel-list-view.service.js +53 -0
  141. package/dist/services/channel/channel-list-view.service.js.map +1 -0
  142. package/dist/services/config/config-commands.service.d.ts +17 -0
  143. package/dist/services/config/config-commands.service.d.ts.map +1 -0
  144. package/dist/services/config/config-commands.service.js +117 -0
  145. package/dist/services/config/config-commands.service.js.map +1 -0
  146. package/dist/services/cron/cron-commands.service.d.ts +23 -0
  147. package/dist/services/cron/cron-commands.service.d.ts.map +1 -0
  148. package/dist/services/cron/cron-commands.service.js +109 -0
  149. package/dist/services/cron/cron-commands.service.js.map +1 -0
  150. package/dist/services/cron/cron-local.service.d.ts +26 -0
  151. package/dist/services/cron/cron-local.service.d.ts.map +1 -0
  152. package/dist/services/cron/cron-local.service.js +89 -0
  153. package/dist/services/cron/cron-local.service.js.map +1 -0
  154. package/dist/services/diagnostics/diagnostics-commands.service.d.ts +25 -0
  155. package/dist/services/diagnostics/diagnostics-commands.service.d.ts.map +1 -0
  156. package/dist/services/diagnostics/diagnostics-commands.service.js +345 -0
  157. package/dist/services/diagnostics/diagnostics-commands.service.js.map +1 -0
  158. package/dist/services/gateway/gateway-restart-wake.service.d.ts +13 -0
  159. package/dist/services/gateway/gateway-restart-wake.service.d.ts.map +1 -0
  160. package/dist/services/gateway/gateway-restart-wake.service.js +99 -0
  161. package/dist/services/gateway/gateway-restart-wake.service.js.map +1 -0
  162. package/dist/services/gateway/nextclaw-app.service.d.ts +18 -0
  163. package/dist/services/gateway/nextclaw-app.service.d.ts.map +1 -0
  164. package/dist/services/gateway/nextclaw-app.service.js +44 -0
  165. package/dist/services/gateway/nextclaw-app.service.js.map +1 -0
  166. package/dist/services/gateway/service-bootstrap-status.service.d.ts +33 -0
  167. package/dist/services/gateway/service-bootstrap-status.service.d.ts.map +1 -0
  168. package/dist/services/gateway/service-bootstrap-status.service.js +144 -0
  169. package/dist/services/gateway/service-bootstrap-status.service.js.map +1 -0
  170. package/dist/services/gateway/service-startup-support.service.d.ts +35 -0
  171. package/dist/services/gateway/service-startup-support.service.d.ts.map +1 -0
  172. package/dist/services/gateway/service-startup-support.service.js +83 -0
  173. package/dist/services/gateway/service-startup-support.service.js.map +1 -0
  174. package/dist/services/marketplace/service-marketplace-installer.service.d.ts +29 -0
  175. package/dist/services/marketplace/service-marketplace-installer.service.d.ts.map +1 -0
  176. package/dist/services/marketplace/service-marketplace-installer.service.js +87 -0
  177. package/dist/services/marketplace/service-marketplace-installer.service.js.map +1 -0
  178. package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts +40 -0
  179. package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts.map +1 -0
  180. package/dist/services/marketplace/service-mcp-marketplace-ops.service.js +69 -0
  181. package/dist/services/marketplace/service-mcp-marketplace-ops.service.js.map +1 -0
  182. package/dist/services/marketplace/skills-query.service.d.ts +110 -0
  183. package/dist/services/marketplace/skills-query.service.d.ts.map +1 -0
  184. package/dist/services/marketplace/skills-query.service.js +132 -0
  185. package/dist/services/marketplace/skills-query.service.js.map +1 -0
  186. package/dist/services/platform-auth/account-status.service.d.ts +20 -0
  187. package/dist/services/platform-auth/account-status.service.d.ts.map +1 -0
  188. package/dist/services/platform-auth/account-status.service.js +36 -0
  189. package/dist/services/platform-auth/account-status.service.js.map +1 -0
  190. package/dist/services/platform-auth/platform-auth-commands.service.d.ts +78 -0
  191. package/dist/services/platform-auth/platform-auth-commands.service.d.ts.map +1 -0
  192. package/dist/services/platform-auth/platform-auth-commands.service.js +297 -0
  193. package/dist/services/platform-auth/platform-auth-commands.service.js.map +1 -0
  194. package/dist/services/remote/remote-access-host.service.d.ts +42 -0
  195. package/dist/services/remote/remote-access-host.service.d.ts.map +1 -0
  196. package/dist/services/remote/remote-access-host.service.js +128 -0
  197. package/dist/services/remote/remote-access-host.service.js.map +1 -0
  198. package/dist/services/remote/remote-service-control.service.d.ts +34 -0
  199. package/dist/services/remote/remote-service-control.service.d.ts.map +1 -0
  200. package/dist/services/remote/remote-service-control.service.js +247 -0
  201. package/dist/services/remote/remote-service-control.service.js.map +1 -0
  202. package/dist/services/restart/restart-coordinator.service.d.ts +31 -0
  203. package/dist/services/restart/restart-coordinator.service.d.ts.map +1 -0
  204. package/dist/services/restart/restart-coordinator.service.js +53 -0
  205. package/dist/services/restart/restart-coordinator.service.js.map +1 -0
  206. package/dist/services/runtime/managed-service-supervisor.service.d.ts +85 -0
  207. package/dist/services/runtime/managed-service-supervisor.service.d.ts.map +1 -0
  208. package/dist/services/runtime/managed-service-supervisor.service.js +271 -0
  209. package/dist/services/runtime/managed-service-supervisor.service.js.map +1 -0
  210. package/dist/services/runtime/nextclaw-distribution.service.d.ts +11 -0
  211. package/dist/services/runtime/nextclaw-distribution.service.d.ts.map +1 -0
  212. package/dist/services/runtime/nextclaw-distribution.service.js +15 -0
  213. package/dist/services/runtime/nextclaw-distribution.service.js.map +1 -0
  214. package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts +10 -0
  215. package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts.map +1 -0
  216. package/dist/services/runtime/npm-runtime-bundle-manifest.service.js +41 -0
  217. package/dist/services/runtime/npm-runtime-bundle-manifest.service.js.map +1 -0
  218. package/dist/services/runtime/npm-runtime-bundle.service.d.ts +48 -0
  219. package/dist/services/runtime/npm-runtime-bundle.service.d.ts.map +1 -0
  220. package/dist/services/runtime/npm-runtime-bundle.service.js +152 -0
  221. package/dist/services/runtime/npm-runtime-bundle.service.js.map +1 -0
  222. package/dist/services/runtime/npm-runtime-update-command.service.d.ts +16 -0
  223. package/dist/services/runtime/npm-runtime-update-command.service.d.ts.map +1 -0
  224. package/dist/services/runtime/npm-runtime-update-command.service.js +120 -0
  225. package/dist/services/runtime/npm-runtime-update-command.service.js.map +1 -0
  226. package/dist/services/runtime/npm-runtime-update-host.service.d.ts +41 -0
  227. package/dist/services/runtime/npm-runtime-update-host.service.d.ts.map +1 -0
  228. package/dist/services/runtime/npm-runtime-update-host.service.js +189 -0
  229. package/dist/services/runtime/npm-runtime-update-host.service.js.map +1 -0
  230. package/dist/services/runtime/npm-runtime-update-source.service.d.ts +22 -0
  231. package/dist/services/runtime/npm-runtime-update-source.service.d.ts.map +1 -0
  232. package/dist/services/runtime/npm-runtime-update-source.service.js +61 -0
  233. package/dist/services/runtime/npm-runtime-update-source.service.js.map +1 -0
  234. package/dist/services/runtime/npm-runtime-update.service.d.ts +55 -0
  235. package/dist/services/runtime/npm-runtime-update.service.d.ts.map +1 -0
  236. package/dist/services/runtime/npm-runtime-update.service.js +185 -0
  237. package/dist/services/runtime/npm-runtime-update.service.js.map +1 -0
  238. package/dist/services/runtime/runtime-config-init.service.d.ts +5 -0
  239. package/dist/services/runtime/runtime-config-init.service.d.ts.map +1 -0
  240. package/dist/services/runtime/runtime-config-init.service.js +12 -0
  241. package/dist/services/runtime/runtime-config-init.service.js.map +1 -0
  242. package/dist/services/runtime/service-managed-startup.service.d.ts +95 -0
  243. package/dist/services/runtime/service-managed-startup.service.d.ts.map +1 -0
  244. package/dist/services/runtime/service-managed-startup.service.js +341 -0
  245. package/dist/services/runtime/service-managed-startup.service.js.map +1 -0
  246. package/dist/services/ui/companion-runtime.service.d.ts +36 -0
  247. package/dist/services/ui/companion-runtime.service.d.ts.map +1 -0
  248. package/dist/services/ui/companion-runtime.service.js +180 -0
  249. package/dist/services/ui/companion-runtime.service.js.map +1 -0
  250. package/dist/services/ui/local-ui-discovery.service.d.ts +20 -0
  251. package/dist/services/ui/local-ui-discovery.service.d.ts.map +1 -0
  252. package/dist/services/ui/local-ui-discovery.service.js +43 -0
  253. package/dist/services/ui/local-ui-discovery.service.js.map +1 -0
  254. package/dist/services/ui/runtime-control-host.service.d.ts +29 -0
  255. package/dist/services/ui/runtime-control-host.service.d.ts.map +1 -0
  256. package/dist/services/ui/runtime-control-host.service.js +91 -0
  257. package/dist/services/ui/runtime-control-host.service.js.map +1 -0
  258. package/dist/services/ui/service-remote-access.service.d.ts +26 -0
  259. package/dist/services/ui/service-remote-access.service.d.ts.map +1 -0
  260. package/dist/services/ui/service-remote-access.service.js +40 -0
  261. package/dist/services/ui/service-remote-access.service.js.map +1 -0
  262. package/dist/services/ui/ui-bridge-api.service.d.ts +17 -0
  263. package/dist/services/ui/ui-bridge-api.service.d.ts.map +1 -0
  264. package/dist/services/ui/ui-bridge-api.service.js +45 -0
  265. package/dist/services/ui/ui-bridge-api.service.js.map +1 -0
  266. package/dist/services/usage/llm-usage-command.service.d.ts +21 -0
  267. package/dist/services/usage/llm-usage-command.service.d.ts.map +1 -0
  268. package/dist/services/usage/llm-usage-command.service.js +152 -0
  269. package/dist/services/usage/llm-usage-command.service.js.map +1 -0
  270. package/dist/stores/companion-runtime.store.d.ts +16 -0
  271. package/dist/stores/companion-runtime.store.d.ts.map +1 -0
  272. package/dist/stores/companion-runtime.store.js +29 -0
  273. package/dist/stores/companion-runtime.store.js.map +1 -0
  274. package/dist/stores/local-ui-runtime.store.d.ts +26 -0
  275. package/dist/stores/local-ui-runtime.store.d.ts.map +1 -0
  276. package/dist/stores/local-ui-runtime.store.js +56 -0
  277. package/dist/stores/local-ui-runtime.store.js.map +1 -0
  278. package/dist/stores/managed-service-state.store.d.ts +46 -0
  279. package/dist/stores/managed-service-state.store.d.ts.map +1 -0
  280. package/dist/stores/managed-service-state.store.js +40 -0
  281. package/dist/stores/managed-service-state.store.js.map +1 -0
  282. package/dist/stores/marketplace-install-state.store.d.ts +39 -0
  283. package/dist/stores/marketplace-install-state.store.d.ts.map +1 -0
  284. package/dist/stores/marketplace-install-state.store.js +58 -0
  285. package/dist/stores/marketplace-install-state.store.js.map +1 -0
  286. package/dist/stores/npm-runtime-bundle-layout.store.d.ts +24 -0
  287. package/dist/stores/npm-runtime-bundle-layout.store.d.ts.map +1 -0
  288. package/dist/stores/npm-runtime-bundle-layout.store.js +39 -0
  289. package/dist/stores/npm-runtime-bundle-layout.store.js.map +1 -0
  290. package/dist/stores/npm-runtime-update-state.store.d.ts +18 -0
  291. package/dist/stores/npm-runtime-update-state.store.d.ts.map +1 -0
  292. package/dist/stores/npm-runtime-update-state.store.js +94 -0
  293. package/dist/stores/npm-runtime-update-state.store.js.map +1 -0
  294. package/dist/stores/pending-restart.store.d.ts +22 -0
  295. package/dist/stores/pending-restart.store.d.ts.map +1 -0
  296. package/dist/stores/pending-restart.store.js +37 -0
  297. package/dist/stores/pending-restart.store.js.map +1 -0
  298. package/dist/types/cli.types.d.ts +304 -0
  299. package/dist/types/cli.types.d.ts.map +1 -0
  300. package/dist/types/distribution.types.d.ts +11 -0
  301. package/dist/types/distribution.types.d.ts.map +1 -0
  302. package/dist/types/host-autostart.types.d.ts +65 -0
  303. package/dist/types/host-autostart.types.d.ts.map +1 -0
  304. package/dist/types/npm-runtime-bundle.types.d.ts +50 -0
  305. package/dist/types/npm-runtime-bundle.types.d.ts.map +1 -0
  306. package/dist/utils/agent-runtime.utils.d.ts +15 -0
  307. package/dist/utils/agent-runtime.utils.d.ts.map +1 -0
  308. package/dist/utils/agent-runtime.utils.js +40 -0
  309. package/dist/utils/agent-runtime.utils.js.map +1 -0
  310. package/dist/utils/channel-config-view.utils.d.ts +7 -0
  311. package/dist/utils/channel-config-view.utils.d.ts.map +1 -0
  312. package/dist/utils/channel-config-view.utils.js +9 -0
  313. package/dist/utils/channel-config-view.utils.js.map +1 -0
  314. package/dist/utils/cli-agent-runner.utils.d.ts +14 -0
  315. package/dist/utils/cli-agent-runner.utils.d.ts.map +1 -0
  316. package/dist/utils/cli-agent-runner.utils.js +94 -0
  317. package/dist/utils/cli-agent-runner.utils.js.map +1 -0
  318. package/dist/utils/cli.utils.d.ts +32 -0
  319. package/dist/utils/cli.utils.d.ts.map +1 -0
  320. package/dist/utils/cli.utils.js +254 -0
  321. package/dist/utils/cli.utils.js.map +1 -0
  322. package/dist/utils/config-path.utils.d.ts +16 -0
  323. package/dist/utils/config-path.utils.d.ts.map +1 -0
  324. package/dist/utils/config-path.utils.js +169 -0
  325. package/dist/utils/config-path.utils.js.map +1 -0
  326. package/dist/utils/cron/cron-job.utils.d.ts +28 -0
  327. package/dist/utils/cron/cron-job.utils.d.ts.map +1 -0
  328. package/dist/utils/cron/cron-job.utils.js +17 -0
  329. package/dist/utils/cron/cron-job.utils.js.map +1 -0
  330. package/dist/utils/diagnostics/diagnostics-render.utils.d.ts +24 -0
  331. package/dist/utils/diagnostics/diagnostics-render.utils.d.ts.map +1 -0
  332. package/dist/utils/diagnostics/diagnostics-render.utils.js +74 -0
  333. package/dist/utils/diagnostics/diagnostics-render.utils.js.map +1 -0
  334. package/dist/utils/gateway-cron-job-handler.utils.d.ts +18 -0
  335. package/dist/utils/gateway-cron-job-handler.utils.d.ts.map +1 -0
  336. package/dist/utils/gateway-cron-job-handler.utils.js +56 -0
  337. package/dist/utils/gateway-cron-job-handler.utils.js.map +1 -0
  338. package/dist/utils/gateway-runtime-lifecycle.utils.d.ts +10 -0
  339. package/dist/utils/gateway-runtime-lifecycle.utils.d.ts.map +1 -0
  340. package/dist/utils/gateway-runtime-lifecycle.utils.js +12 -0
  341. package/dist/utils/gateway-runtime-lifecycle.utils.js.map +1 -0
  342. package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts +17 -0
  343. package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +1 -0
  344. package/dist/utils/marketplace/cli-subcommand-launch.utils.js +48 -0
  345. package/dist/utils/marketplace/cli-subcommand-launch.utils.js.map +1 -0
  346. package/dist/utils/marketplace/marketplace-client.utils.d.ts +46 -0
  347. package/dist/utils/marketplace/marketplace-client.utils.d.ts.map +1 -0
  348. package/dist/utils/marketplace/marketplace-client.utils.js +137 -0
  349. package/dist/utils/marketplace/marketplace-client.utils.js.map +1 -0
  350. package/dist/utils/marketplace/marketplace-command-options.utils.d.ts +26 -0
  351. package/dist/utils/marketplace/marketplace-command-options.utils.d.ts.map +1 -0
  352. package/dist/utils/marketplace/marketplace-command-options.utils.js +33 -0
  353. package/dist/utils/marketplace/marketplace-command-options.utils.js.map +1 -0
  354. package/dist/utils/marketplace/marketplace-identity.utils.d.ts +15 -0
  355. package/dist/utils/marketplace/marketplace-identity.utils.d.ts.map +1 -0
  356. package/dist/utils/marketplace/marketplace-identity.utils.js +79 -0
  357. package/dist/utils/marketplace/marketplace-identity.utils.js.map +1 -0
  358. package/dist/utils/marketplace/marketplace-metadata.utils.d.ts +21 -0
  359. package/dist/utils/marketplace/marketplace-metadata.utils.d.ts.map +1 -0
  360. package/dist/utils/marketplace/marketplace-metadata.utils.js +74 -0
  361. package/dist/utils/marketplace/marketplace-metadata.utils.js.map +1 -0
  362. package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts +5 -0
  363. package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts.map +1 -0
  364. package/dist/utils/marketplace/marketplace-network-retry.utils.js +34 -0
  365. package/dist/utils/marketplace/marketplace-network-retry.utils.js.map +1 -0
  366. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts +27 -0
  367. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts.map +1 -0
  368. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js +206 -0
  369. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js.map +1 -0
  370. package/dist/utils/marketplace/marketplace.utils.d.ts +34 -0
  371. package/dist/utils/marketplace/marketplace.utils.d.ts.map +1 -0
  372. package/dist/utils/marketplace/marketplace.utils.js +77 -0
  373. package/dist/utils/marketplace/marketplace.utils.js.map +1 -0
  374. package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts +15 -0
  375. package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +1 -0
  376. package/dist/utils/marketplace/service-marketplace-helpers.utils.js +47 -0
  377. package/dist/utils/marketplace/service-marketplace-helpers.utils.js.map +1 -0
  378. package/dist/utils/package/package-manifest.utils.d.ts +5 -0
  379. package/dist/utils/package/package-manifest.utils.d.ts.map +1 -0
  380. package/dist/utils/package/package-manifest.utils.js +40 -0
  381. package/dist/utils/package/package-manifest.utils.js.map +1 -0
  382. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +5 -0
  383. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +1 -0
  384. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +37 -0
  385. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +1 -0
  386. package/dist/utils/platform-auth/payload.utils.d.ts +30 -0
  387. package/dist/utils/platform-auth/payload.utils.d.ts.map +1 -0
  388. package/dist/utils/platform-auth/payload.utils.js +89 -0
  389. package/dist/utils/platform-auth/payload.utils.js.map +1 -0
  390. package/dist/utils/remote/platform-api-base.utils.d.ts +15 -0
  391. package/dist/utils/remote/platform-api-base.utils.d.ts.map +1 -0
  392. package/dist/utils/remote/platform-api-base.utils.js +41 -0
  393. package/dist/utils/remote/platform-api-base.utils.js.map +1 -0
  394. package/dist/utils/remote/remote-runtime-support.utils.d.ts +16 -0
  395. package/dist/utils/remote/remote-runtime-support.utils.d.ts.map +1 -0
  396. package/dist/utils/remote/remote-runtime-support.utils.js +82 -0
  397. package/dist/utils/remote/remote-runtime-support.utils.js.map +1 -0
  398. package/dist/utils/restart-sentinel.utils.d.ts +37 -0
  399. package/dist/utils/restart-sentinel.utils.d.ts.map +1 -0
  400. package/dist/utils/restart-sentinel.utils.js +76 -0
  401. package/dist/utils/restart-sentinel.utils.js.map +1 -0
  402. package/dist/utils/runtime/managed-service-routing.utils.d.ts +31 -0
  403. package/dist/utils/runtime/managed-service-routing.utils.d.ts.map +1 -0
  404. package/dist/utils/runtime/managed-service-routing.utils.js +64 -0
  405. package/dist/utils/runtime/managed-service-routing.utils.js.map +1 -0
  406. package/dist/utils/runtime/service-remote-runtime.utils.d.ts +58 -0
  407. package/dist/utils/runtime/service-remote-runtime.utils.d.ts.map +1 -0
  408. package/dist/utils/runtime/service-remote-runtime.utils.js +184 -0
  409. package/dist/utils/runtime/service-remote-runtime.utils.js.map +1 -0
  410. package/dist/utils/runtime-helpers.utils.d.ts +15 -0
  411. package/dist/utils/runtime-helpers.utils.d.ts.map +1 -0
  412. package/dist/utils/runtime-helpers.utils.js +28 -0
  413. package/dist/utils/runtime-helpers.utils.js.map +1 -0
  414. package/dist/utils/service-port-probe.utils.d.ts +42 -0
  415. package/dist/utils/service-port-probe.utils.d.ts.map +1 -0
  416. package/dist/utils/service-port-probe.utils.js +166 -0
  417. package/dist/utils/service-port-probe.utils.js.map +1 -0
  418. package/dist/utils/startup-trace.utils.d.ts +8 -0
  419. package/dist/utils/startup-trace.utils.d.ts.map +1 -0
  420. package/dist/utils/startup-trace.utils.js +39 -0
  421. package/dist/utils/startup-trace.utils.js.map +1 -0
  422. package/dist/utils/top-level-nextclaw-command-env.utils.d.ts +5 -0
  423. package/dist/utils/top-level-nextclaw-command-env.utils.d.ts.map +1 -0
  424. package/dist/utils/top-level-nextclaw-command-env.utils.js +12 -0
  425. package/dist/utils/top-level-nextclaw-command-env.utils.js.map +1 -0
  426. package/package.json +26 -26
  427. package/dist/cli/commands/agent/agent-runtime.utils.d.ts +0 -15
  428. package/dist/cli/commands/agent/agent-runtime.utils.d.ts.map +0 -1
  429. package/dist/cli/commands/agent/agent-runtime.utils.js +0 -43
  430. package/dist/cli/commands/agent/agent-runtime.utils.js.map +0 -1
  431. package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts +0 -14
  432. package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts.map +0 -1
  433. package/dist/cli/commands/agent/cli-agent-runner.utils.js +0 -94
  434. package/dist/cli/commands/agent/cli-agent-runner.utils.js.map +0 -1
  435. package/dist/cli/commands/agent/index.d.ts +0 -3
  436. package/dist/cli/commands/agent/index.js +0 -3
  437. package/dist/cli/commands/agent/services/agent-commands.service.d.ts +0 -18
  438. package/dist/cli/commands/agent/services/agent-commands.service.d.ts.map +0 -1
  439. package/dist/cli/commands/agent/services/agent-commands.service.js +0 -113
  440. package/dist/cli/commands/agent/services/agent-commands.service.js.map +0 -1
  441. package/dist/cli/commands/config/index.d.ts +0 -2
  442. package/dist/cli/commands/config/index.js +0 -2
  443. package/dist/cli/commands/config/services/config-commands.service.d.ts +0 -17
  444. package/dist/cli/commands/config/services/config-commands.service.d.ts.map +0 -1
  445. package/dist/cli/commands/config/services/config-commands.service.js +0 -117
  446. package/dist/cli/commands/config/services/config-commands.service.js.map +0 -1
  447. package/dist/cli/commands/cron/index.d.ts +0 -2
  448. package/dist/cli/commands/cron/index.js +0 -2
  449. package/dist/cli/commands/cron/services/cron-commands.service.d.ts +0 -23
  450. package/dist/cli/commands/cron/services/cron-commands.service.d.ts.map +0 -1
  451. package/dist/cli/commands/cron/services/cron-commands.service.js +0 -109
  452. package/dist/cli/commands/cron/services/cron-commands.service.js.map +0 -1
  453. package/dist/cli/commands/cron/services/cron-local.service.d.ts +0 -26
  454. package/dist/cli/commands/cron/services/cron-local.service.d.ts.map +0 -1
  455. package/dist/cli/commands/cron/services/cron-local.service.js +0 -89
  456. package/dist/cli/commands/cron/services/cron-local.service.js.map +0 -1
  457. package/dist/cli/commands/cron/utils/cron-job.utils.d.ts +0 -28
  458. package/dist/cli/commands/cron/utils/cron-job.utils.d.ts.map +0 -1
  459. package/dist/cli/commands/cron/utils/cron-job.utils.js +0 -17
  460. package/dist/cli/commands/cron/utils/cron-job.utils.js.map +0 -1
  461. package/dist/cli/commands/diagnostics/index.d.ts +0 -2
  462. package/dist/cli/commands/diagnostics/index.js +0 -2
  463. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts +0 -25
  464. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts.map +0 -1
  465. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js +0 -345
  466. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js.map +0 -1
  467. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts +0 -24
  468. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts.map +0 -1
  469. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js +0 -74
  470. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js.map +0 -1
  471. package/dist/cli/commands/gateway/index.d.ts +0 -15
  472. package/dist/cli/commands/gateway/index.d.ts.map +0 -1
  473. package/dist/cli/commands/gateway/index.js +0 -17
  474. package/dist/cli/commands/gateway/index.js.map +0 -1
  475. package/dist/cli/commands/logs/index.d.ts +0 -13
  476. package/dist/cli/commands/logs/index.d.ts.map +0 -1
  477. package/dist/cli/commands/logs/index.js +0 -31
  478. package/dist/cli/commands/logs/index.js.map +0 -1
  479. package/dist/cli/commands/mcp/index.d.ts +0 -15
  480. package/dist/cli/commands/mcp/index.d.ts.map +0 -1
  481. package/dist/cli/commands/mcp/index.js +0 -195
  482. package/dist/cli/commands/mcp/index.js.map +0 -1
  483. package/dist/cli/commands/restart/index.d.ts +0 -21
  484. package/dist/cli/commands/restart/index.d.ts.map +0 -1
  485. package/dist/cli/commands/restart/index.js +0 -90
  486. package/dist/cli/commands/restart/index.js.map +0 -1
  487. package/dist/cli/commands/secrets/index.d.ts +0 -23
  488. package/dist/cli/commands/secrets/index.d.ts.map +0 -1
  489. package/dist/cli/commands/secrets/index.js +0 -282
  490. package/dist/cli/commands/secrets/index.js.map +0 -1
  491. package/dist/cli/commands/serve/index.d.ts +0 -15
  492. package/dist/cli/commands/serve/index.d.ts.map +0 -1
  493. package/dist/cli/commands/serve/index.js +0 -21
  494. package/dist/cli/commands/serve/index.js.map +0 -1
  495. package/dist/cli/commands/skills/index.d.ts +0 -28
  496. package/dist/cli/commands/skills/index.d.ts.map +0 -1
  497. package/dist/cli/commands/skills/index.js +0 -170
  498. package/dist/cli/commands/skills/index.js.map +0 -1
  499. package/dist/cli/commands/skills/marketplace-client.d.ts +0 -46
  500. package/dist/cli/commands/skills/marketplace-client.d.ts.map +0 -1
  501. package/dist/cli/commands/skills/marketplace-client.js +0 -137
  502. package/dist/cli/commands/skills/marketplace-client.js.map +0 -1
  503. package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts +0 -26
  504. package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts.map +0 -1
  505. package/dist/cli/commands/skills/marketplace-command-options.utils.js +0 -33
  506. package/dist/cli/commands/skills/marketplace-command-options.utils.js.map +0 -1
  507. package/dist/cli/commands/skills/marketplace-identity.utils.d.ts +0 -15
  508. package/dist/cli/commands/skills/marketplace-identity.utils.d.ts.map +0 -1
  509. package/dist/cli/commands/skills/marketplace-identity.utils.js +0 -79
  510. package/dist/cli/commands/skills/marketplace-identity.utils.js.map +0 -1
  511. package/dist/cli/commands/skills/marketplace-network-retry.d.ts +0 -5
  512. package/dist/cli/commands/skills/marketplace-network-retry.d.ts.map +0 -1
  513. package/dist/cli/commands/skills/marketplace-network-retry.js +0 -34
  514. package/dist/cli/commands/skills/marketplace-network-retry.js.map +0 -1
  515. package/dist/cli/commands/skills/marketplace.metadata.d.ts +0 -21
  516. package/dist/cli/commands/skills/marketplace.metadata.d.ts.map +0 -1
  517. package/dist/cli/commands/skills/marketplace.metadata.js +0 -74
  518. package/dist/cli/commands/skills/marketplace.metadata.js.map +0 -1
  519. package/dist/cli/commands/skills/marketplace.utils.d.ts +0 -34
  520. package/dist/cli/commands/skills/marketplace.utils.d.ts.map +0 -1
  521. package/dist/cli/commands/skills/marketplace.utils.js +0 -77
  522. package/dist/cli/commands/skills/marketplace.utils.js.map +0 -1
  523. package/dist/cli/commands/skills/skills-query.service.d.ts +0 -110
  524. package/dist/cli/commands/skills/skills-query.service.d.ts.map +0 -1
  525. package/dist/cli/commands/skills/skills-query.service.js +0 -132
  526. package/dist/cli/commands/skills/skills-query.service.js.map +0 -1
  527. package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts +0 -39
  528. package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts.map +0 -1
  529. package/dist/cli/commands/skills/stores/marketplace-install-state.store.js +0 -58
  530. package/dist/cli/commands/skills/stores/marketplace-install-state.store.js.map +0 -1
  531. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts +0 -27
  532. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts.map +0 -1
  533. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js +0 -206
  534. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js.map +0 -1
  535. package/dist/cli/commands/start/index.d.ts +0 -19
  536. package/dist/cli/commands/start/index.d.ts.map +0 -1
  537. package/dist/cli/commands/start/index.js +0 -27
  538. package/dist/cli/commands/start/index.js.map +0 -1
  539. package/dist/cli/commands/stop/index.d.ts +0 -13
  540. package/dist/cli/commands/stop/index.d.ts.map +0 -1
  541. package/dist/cli/commands/stop/index.js +0 -13
  542. package/dist/cli/commands/stop/index.js.map +0 -1
  543. package/dist/cli/commands/ui/index.d.ts +0 -15
  544. package/dist/cli/commands/ui/index.d.ts.map +0 -1
  545. package/dist/cli/commands/ui/index.js +0 -19
  546. package/dist/cli/commands/ui/index.js.map +0 -1
  547. package/dist/cli/commands/usage/index.d.ts +0 -2
  548. package/dist/cli/commands/usage/index.js +0 -2
  549. package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts +0 -21
  550. package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts.map +0 -1
  551. package/dist/cli/commands/usage/services/llm-usage-command.service.js +0 -152
  552. package/dist/cli/commands/usage/services/llm-usage-command.service.js.map +0 -1
  553. package/dist/commands/channel/channel-config-view.utils.d.ts +0 -7
  554. package/dist/commands/channel/channel-config-view.utils.d.ts.map +0 -1
  555. package/dist/commands/channel/channel-config-view.utils.js +0 -9
  556. package/dist/commands/channel/channel-config-view.utils.js.map +0 -1
  557. package/dist/commands/channel/channel-list-view.service.d.ts +0 -29
  558. package/dist/commands/channel/channel-list-view.service.d.ts.map +0 -1
  559. package/dist/commands/channel/channel-list-view.service.js +0 -53
  560. package/dist/commands/channel/channel-list-view.service.js.map +0 -1
  561. package/dist/commands/channel/index.d.ts +0 -21
  562. package/dist/commands/channel/index.d.ts.map +0 -1
  563. package/dist/commands/channel/index.js +0 -115
  564. package/dist/commands/channel/index.js.map +0 -1
  565. package/dist/commands/platform-auth/index.d.ts +0 -2
  566. package/dist/commands/platform-auth/index.js +0 -2
  567. package/dist/commands/platform-auth/services/account-status.service.d.ts +0 -19
  568. package/dist/commands/platform-auth/services/account-status.service.d.ts.map +0 -1
  569. package/dist/commands/platform-auth/services/account-status.service.js +0 -36
  570. package/dist/commands/platform-auth/services/account-status.service.js.map +0 -1
  571. package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts +0 -78
  572. package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts.map +0 -1
  573. package/dist/commands/platform-auth/services/platform-auth-commands.service.js +0 -297
  574. package/dist/commands/platform-auth/services/platform-auth-commands.service.js.map +0 -1
  575. package/dist/commands/platform-auth/utils/payload.utils.d.ts +0 -29
  576. package/dist/commands/platform-auth/utils/payload.utils.d.ts.map +0 -1
  577. package/dist/commands/platform-auth/utils/payload.utils.js +0 -89
  578. package/dist/commands/platform-auth/utils/payload.utils.js.map +0 -1
  579. package/dist/commands/remote/index.d.ts +0 -48
  580. package/dist/commands/remote/index.d.ts.map +0 -1
  581. package/dist/commands/remote/index.js +0 -176
  582. package/dist/commands/remote/index.js.map +0 -1
  583. package/dist/commands/remote/services/remote-access-host.service.d.ts +0 -42
  584. package/dist/commands/remote/services/remote-access-host.service.d.ts.map +0 -1
  585. package/dist/commands/remote/services/remote-access-host.service.js +0 -128
  586. package/dist/commands/remote/services/remote-access-host.service.js.map +0 -1
  587. package/dist/commands/remote/services/remote-service-control.service.d.ts +0 -34
  588. package/dist/commands/remote/services/remote-service-control.service.d.ts.map +0 -1
  589. package/dist/commands/remote/services/remote-service-control.service.js +0 -247
  590. package/dist/commands/remote/services/remote-service-control.service.js.map +0 -1
  591. package/dist/commands/remote/utils/platform-api-base.utils.d.ts +0 -15
  592. package/dist/commands/remote/utils/platform-api-base.utils.d.ts.map +0 -1
  593. package/dist/commands/remote/utils/platform-api-base.utils.js +0 -41
  594. package/dist/commands/remote/utils/platform-api-base.utils.js.map +0 -1
  595. package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts +0 -16
  596. package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts.map +0 -1
  597. package/dist/commands/remote/utils/remote-runtime-support.utils.js +0 -82
  598. package/dist/commands/remote/utils/remote-runtime-support.utils.js.map +0 -1
  599. package/dist/commands/service/index.d.ts +0 -17
  600. package/dist/commands/service/index.d.ts.map +0 -1
  601. package/dist/commands/service/index.js +0 -33
  602. package/dist/commands/service/index.js.map +0 -1
  603. package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts +0 -30
  604. package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts.map +0 -1
  605. package/dist/commands/service/services/autostart/host-autostart-command.service.js +0 -160
  606. package/dist/commands/service/services/autostart/host-autostart-command.service.js.map +0 -1
  607. package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts +0 -24
  608. package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts.map +0 -1
  609. package/dist/commands/service/services/autostart/host-autostart-runtime.service.js +0 -55
  610. package/dist/commands/service/services/autostart/host-autostart-runtime.service.js.map +0 -1
  611. package/dist/commands/service/services/autostart/host-autostart.service.d.ts +0 -42
  612. package/dist/commands/service/services/autostart/host-autostart.service.d.ts.map +0 -1
  613. package/dist/commands/service/services/autostart/host-autostart.service.js +0 -50
  614. package/dist/commands/service/services/autostart/host-autostart.service.js.map +0 -1
  615. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts +0 -49
  616. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts.map +0 -1
  617. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js +0 -435
  618. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js.map +0 -1
  619. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts +0 -55
  620. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts.map +0 -1
  621. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js +0 -407
  622. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js.map +0 -1
  623. package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts +0 -55
  624. package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts.map +0 -1
  625. package/dist/commands/service/services/autostart/windows-task-autostart.service.js +0 -406
  626. package/dist/commands/service/services/autostart/windows-task-autostart.service.js.map +0 -1
  627. package/dist/commands/service/types/autostart/host-autostart.types.d.ts +0 -65
  628. package/dist/commands/service/types/autostart/host-autostart.types.d.ts.map +0 -1
  629. package/dist/launcher/npm-runtime-bundle-layout.store.d.ts +0 -24
  630. package/dist/launcher/npm-runtime-bundle-layout.store.d.ts.map +0 -1
  631. package/dist/launcher/npm-runtime-bundle-layout.store.js +0 -39
  632. package/dist/launcher/npm-runtime-bundle-layout.store.js.map +0 -1
  633. package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts +0 -10
  634. package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts.map +0 -1
  635. package/dist/launcher/npm-runtime-bundle-manifest.service.js +0 -41
  636. package/dist/launcher/npm-runtime-bundle-manifest.service.js.map +0 -1
  637. package/dist/launcher/npm-runtime-bundle.service.d.ts +0 -48
  638. package/dist/launcher/npm-runtime-bundle.service.d.ts.map +0 -1
  639. package/dist/launcher/npm-runtime-bundle.service.js +0 -152
  640. package/dist/launcher/npm-runtime-bundle.service.js.map +0 -1
  641. package/dist/launcher/npm-runtime-bundle.types.d.ts +0 -50
  642. package/dist/launcher/npm-runtime-bundle.types.d.ts.map +0 -1
  643. package/dist/launcher/npm-runtime-update-command.service.d.ts +0 -16
  644. package/dist/launcher/npm-runtime-update-command.service.d.ts.map +0 -1
  645. package/dist/launcher/npm-runtime-update-command.service.js +0 -120
  646. package/dist/launcher/npm-runtime-update-command.service.js.map +0 -1
  647. package/dist/launcher/npm-runtime-update-source.service.d.ts +0 -22
  648. package/dist/launcher/npm-runtime-update-source.service.d.ts.map +0 -1
  649. package/dist/launcher/npm-runtime-update-source.service.js +0 -61
  650. package/dist/launcher/npm-runtime-update-source.service.js.map +0 -1
  651. package/dist/launcher/npm-runtime-update-state.store.d.ts +0 -18
  652. package/dist/launcher/npm-runtime-update-state.store.d.ts.map +0 -1
  653. package/dist/launcher/npm-runtime-update-state.store.js +0 -94
  654. package/dist/launcher/npm-runtime-update-state.store.js.map +0 -1
  655. package/dist/launcher/npm-runtime-update.manager.d.ts +0 -43
  656. package/dist/launcher/npm-runtime-update.manager.d.ts.map +0 -1
  657. package/dist/launcher/npm-runtime-update.manager.js +0 -185
  658. package/dist/launcher/npm-runtime-update.manager.js.map +0 -1
  659. package/dist/launcher/npm-runtime-update.service.d.ts +0 -55
  660. package/dist/launcher/npm-runtime-update.service.d.ts.map +0 -1
  661. package/dist/launcher/npm-runtime-update.service.js +0 -185
  662. package/dist/launcher/npm-runtime-update.service.js.map +0 -1
  663. package/dist/service-runtime.service.d.ts +0 -88
  664. package/dist/service-runtime.service.d.ts.map +0 -1
  665. package/dist/service-runtime.service.js +0 -366
  666. package/dist/service-runtime.service.js.map +0 -1
  667. package/dist/shared/controllers/gateway.controller.d.ts +0 -54
  668. package/dist/shared/controllers/gateway.controller.d.ts.map +0 -1
  669. package/dist/shared/controllers/gateway.controller.js +0 -162
  670. package/dist/shared/controllers/gateway.controller.js.map +0 -1
  671. package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts +0 -13
  672. package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts.map +0 -1
  673. package/dist/shared/services/gateway/gateway-restart-wake.service.js +0 -99
  674. package/dist/shared/services/gateway/gateway-restart-wake.service.js.map +0 -1
  675. package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts +0 -29
  676. package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts.map +0 -1
  677. package/dist/shared/services/gateway/managers/gateway-extension.manager.js +0 -78
  678. package/dist/shared/services/gateway/managers/gateway-extension.manager.js.map +0 -1
  679. package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts +0 -23
  680. package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts.map +0 -1
  681. package/dist/shared/services/gateway/managers/gateway-remote.manager.js +0 -28
  682. package/dist/shared/services/gateway/managers/gateway-remote.manager.js.map +0 -1
  683. package/dist/shared/services/gateway/nextclaw-app.service.d.ts +0 -18
  684. package/dist/shared/services/gateway/nextclaw-app.service.d.ts.map +0 -1
  685. package/dist/shared/services/gateway/nextclaw-app.service.js +0 -44
  686. package/dist/shared/services/gateway/nextclaw-app.service.js.map +0 -1
  687. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts +0 -85
  688. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts.map +0 -1
  689. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js +0 -278
  690. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js.map +0 -1
  691. package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts +0 -33
  692. package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts.map +0 -1
  693. package/dist/shared/services/gateway/service-bootstrap-status.service.js +0 -144
  694. package/dist/shared/services/gateway/service-bootstrap-status.service.js.map +0 -1
  695. package/dist/shared/services/gateway/service-startup-support.service.d.ts +0 -35
  696. package/dist/shared/services/gateway/service-startup-support.service.d.ts.map +0 -1
  697. package/dist/shared/services/gateway/service-startup-support.service.js +0 -85
  698. package/dist/shared/services/gateway/service-startup-support.service.js.map +0 -1
  699. package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts +0 -18
  700. package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts.map +0 -1
  701. package/dist/shared/services/gateway/utils/cron-job-handler.utils.js +0 -56
  702. package/dist/shared/services/gateway/utils/cron-job-handler.utils.js.map +0 -1
  703. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts +0 -10
  704. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts.map +0 -1
  705. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js +0 -12
  706. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js.map +0 -1
  707. package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts +0 -29
  708. package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts.map +0 -1
  709. package/dist/shared/services/marketplace/service-marketplace-installer.service.js +0 -87
  710. package/dist/shared/services/marketplace/service-marketplace-installer.service.js.map +0 -1
  711. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts +0 -40
  712. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts.map +0 -1
  713. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js +0 -69
  714. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js.map +0 -1
  715. package/dist/shared/services/restart/restart-coordinator.service.d.ts +0 -31
  716. package/dist/shared/services/restart/restart-coordinator.service.d.ts.map +0 -1
  717. package/dist/shared/services/restart/restart-coordinator.service.js +0 -53
  718. package/dist/shared/services/restart/restart-coordinator.service.js.map +0 -1
  719. package/dist/shared/services/restart/runtime-restart-request.service.d.ts +0 -25
  720. package/dist/shared/services/restart/runtime-restart-request.service.d.ts.map +0 -1
  721. package/dist/shared/services/restart/runtime-restart-request.service.js +0 -44
  722. package/dist/shared/services/restart/runtime-restart-request.service.js.map +0 -1
  723. package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts +0 -85
  724. package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts.map +0 -1
  725. package/dist/shared/services/runtime/managed-service-supervisor.service.js +0 -271
  726. package/dist/shared/services/runtime/managed-service-supervisor.service.js.map +0 -1
  727. package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts +0 -11
  728. package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts.map +0 -1
  729. package/dist/shared/services/runtime/nextclaw-distribution.service.js +0 -15
  730. package/dist/shared/services/runtime/nextclaw-distribution.service.js.map +0 -1
  731. package/dist/shared/services/runtime/runtime-command.service.d.ts +0 -42
  732. package/dist/shared/services/runtime/runtime-command.service.d.ts.map +0 -1
  733. package/dist/shared/services/runtime/runtime-command.service.js +0 -195
  734. package/dist/shared/services/runtime/runtime-command.service.js.map +0 -1
  735. package/dist/shared/services/runtime/runtime-config-init.service.d.ts +0 -5
  736. package/dist/shared/services/runtime/runtime-config-init.service.d.ts.map +0 -1
  737. package/dist/shared/services/runtime/runtime-config-init.service.js +0 -12
  738. package/dist/shared/services/runtime/runtime-config-init.service.js.map +0 -1
  739. package/dist/shared/services/runtime/service-managed-startup.service.d.ts +0 -95
  740. package/dist/shared/services/runtime/service-managed-startup.service.d.ts.map +0 -1
  741. package/dist/shared/services/runtime/service-managed-startup.service.js +0 -341
  742. package/dist/shared/services/runtime/service-managed-startup.service.js.map +0 -1
  743. package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts +0 -31
  744. package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts.map +0 -1
  745. package/dist/shared/services/runtime/utils/managed-service-routing.utils.js +0 -64
  746. package/dist/shared/services/runtime/utils/managed-service-routing.utils.js.map +0 -1
  747. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts +0 -58
  748. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts.map +0 -1
  749. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js +0 -184
  750. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js.map +0 -1
  751. package/dist/shared/services/ui/companion-runtime.service.d.ts +0 -36
  752. package/dist/shared/services/ui/companion-runtime.service.d.ts.map +0 -1
  753. package/dist/shared/services/ui/companion-runtime.service.js +0 -180
  754. package/dist/shared/services/ui/companion-runtime.service.js.map +0 -1
  755. package/dist/shared/services/ui/local-ui-discovery.service.d.ts +0 -20
  756. package/dist/shared/services/ui/local-ui-discovery.service.d.ts.map +0 -1
  757. package/dist/shared/services/ui/local-ui-discovery.service.js +0 -43
  758. package/dist/shared/services/ui/local-ui-discovery.service.js.map +0 -1
  759. package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts +0 -41
  760. package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts.map +0 -1
  761. package/dist/shared/services/ui/npm-runtime-update-host.service.js +0 -189
  762. package/dist/shared/services/ui/npm-runtime-update-host.service.js.map +0 -1
  763. package/dist/shared/services/ui/runtime-control-host.service.d.ts +0 -29
  764. package/dist/shared/services/ui/runtime-control-host.service.d.ts.map +0 -1
  765. package/dist/shared/services/ui/runtime-control-host.service.js +0 -91
  766. package/dist/shared/services/ui/runtime-control-host.service.js.map +0 -1
  767. package/dist/shared/services/ui/service-remote-access.service.d.ts +0 -26
  768. package/dist/shared/services/ui/service-remote-access.service.d.ts.map +0 -1
  769. package/dist/shared/services/ui/service-remote-access.service.js +0 -40
  770. package/dist/shared/services/ui/service-remote-access.service.js.map +0 -1
  771. package/dist/shared/services/ui/ui-bridge-api.service.d.ts +0 -17
  772. package/dist/shared/services/ui/ui-bridge-api.service.d.ts.map +0 -1
  773. package/dist/shared/services/ui/ui-bridge-api.service.js +0 -45
  774. package/dist/shared/services/ui/ui-bridge-api.service.js.map +0 -1
  775. package/dist/shared/services/workspace/workspace-manager.service.d.ts +0 -14
  776. package/dist/shared/services/workspace/workspace-manager.service.d.ts.map +0 -1
  777. package/dist/shared/services/workspace/workspace-manager.service.js +0 -86
  778. package/dist/shared/services/workspace/workspace-manager.service.js.map +0 -1
  779. package/dist/shared/stores/companion-runtime.store.d.ts +0 -16
  780. package/dist/shared/stores/companion-runtime.store.d.ts.map +0 -1
  781. package/dist/shared/stores/companion-runtime.store.js +0 -29
  782. package/dist/shared/stores/companion-runtime.store.js.map +0 -1
  783. package/dist/shared/stores/local-ui-runtime.store.d.ts +0 -26
  784. package/dist/shared/stores/local-ui-runtime.store.d.ts.map +0 -1
  785. package/dist/shared/stores/local-ui-runtime.store.js +0 -56
  786. package/dist/shared/stores/local-ui-runtime.store.js.map +0 -1
  787. package/dist/shared/stores/managed-service-state.store.d.ts +0 -46
  788. package/dist/shared/stores/managed-service-state.store.d.ts.map +0 -1
  789. package/dist/shared/stores/managed-service-state.store.js +0 -40
  790. package/dist/shared/stores/managed-service-state.store.js.map +0 -1
  791. package/dist/shared/stores/pending-restart.store.d.ts +0 -22
  792. package/dist/shared/stores/pending-restart.store.d.ts.map +0 -1
  793. package/dist/shared/stores/pending-restart.store.js +0 -37
  794. package/dist/shared/stores/pending-restart.store.js.map +0 -1
  795. package/dist/shared/types/cli.types.d.ts +0 -304
  796. package/dist/shared/types/cli.types.d.ts.map +0 -1
  797. package/dist/shared/types/distribution.types.d.ts +0 -11
  798. package/dist/shared/types/distribution.types.d.ts.map +0 -1
  799. package/dist/shared/utils/cli.utils.d.ts +0 -32
  800. package/dist/shared/utils/cli.utils.d.ts.map +0 -1
  801. package/dist/shared/utils/cli.utils.js +0 -254
  802. package/dist/shared/utils/cli.utils.js.map +0 -1
  803. package/dist/shared/utils/config-path.d.ts +0 -16
  804. package/dist/shared/utils/config-path.d.ts.map +0 -1
  805. package/dist/shared/utils/config-path.js +0 -169
  806. package/dist/shared/utils/config-path.js.map +0 -1
  807. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts +0 -17
  808. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +0 -1
  809. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js +0 -48
  810. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js.map +0 -1
  811. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts +0 -15
  812. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +0 -1
  813. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js +0 -47
  814. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js.map +0 -1
  815. package/dist/shared/utils/package/package-manifest.utils.d.ts +0 -5
  816. package/dist/shared/utils/package/package-manifest.utils.d.ts.map +0 -1
  817. package/dist/shared/utils/package/package-manifest.utils.js +0 -40
  818. package/dist/shared/utils/package/package-manifest.utils.js.map +0 -1
  819. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +0 -5
  820. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +0 -1
  821. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +0 -37
  822. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +0 -1
  823. package/dist/shared/utils/restart/restart-sentinel.utils.d.ts +0 -37
  824. package/dist/shared/utils/restart/restart-sentinel.utils.d.ts.map +0 -1
  825. package/dist/shared/utils/restart/restart-sentinel.utils.js +0 -76
  826. package/dist/shared/utils/restart/restart-sentinel.utils.js.map +0 -1
  827. package/dist/shared/utils/runtime-helpers.d.ts +0 -15
  828. package/dist/shared/utils/runtime-helpers.d.ts.map +0 -1
  829. package/dist/shared/utils/runtime-helpers.js +0 -28
  830. package/dist/shared/utils/runtime-helpers.js.map +0 -1
  831. package/dist/shared/utils/service-port-probe.utils.d.ts +0 -42
  832. package/dist/shared/utils/service-port-probe.utils.d.ts.map +0 -1
  833. package/dist/shared/utils/service-port-probe.utils.js +0 -166
  834. package/dist/shared/utils/service-port-probe.utils.js.map +0 -1
  835. package/dist/shared/utils/startup-trace.d.ts +0 -8
  836. package/dist/shared/utils/startup-trace.d.ts.map +0 -1
  837. package/dist/shared/utils/startup-trace.js +0 -39
  838. package/dist/shared/utils/startup-trace.js.map +0 -1
  839. package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts +0 -5
  840. package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts.map +0 -1
  841. package/dist/shared/utils/top-level-nextclaw-command-env.utils.js +0 -12
  842. package/dist/shared/utils/top-level-nextclaw-command-env.utils.js.map +0 -1
  843. /package/dist/{shared/types → types}/cli.types.js +0 -0
  844. /package/dist/{shared/types → types}/distribution.types.js +0 -0
  845. /package/dist/{commands/service/types/autostart → types}/host-autostart.types.js +0 -0
  846. /package/dist/{launcher → types}/npm-runtime-bundle.types.js +0 -0
@@ -0,0 +1,341 @@
1
+ import { isProcessRunning, openBrowser, resolveServiceLogPath, resolveUiApiBase, resolveUiConfig, waitForExit } from "../../utils/cli.utils.js";
2
+ import { localUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
3
+ import { managedServiceStateStore } from "../../stores/managed-service-state.store.js";
4
+ import { resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate } from "../../utils/runtime/managed-service-routing.utils.js";
5
+ import { probeHealthEndpoint } from "../../utils/service-port-probe.utils.js";
6
+ import { ManagedServiceSupervisor } from "./managed-service-supervisor.service.js";
7
+ import * as NextclawCore from "@nextclaw/core";
8
+ //#region src/services/runtime/service-managed-startup.service.ts
9
+ const { APP_NAME: APP_NAME$1, loadConfig: loadConfig$1 } = NextclawCore;
10
+ async function waitForManagedServiceReadiness(params) {
11
+ params.appendStartupStage(params.logPath, `health probe started: ${params.healthUrl} (phase=quick, timeoutMs=${params.quickPhaseTimeoutMs})`);
12
+ let readiness = await params.waitForBackgroundServiceReady({
13
+ pid: params.childPid,
14
+ healthUrl: params.healthUrl,
15
+ timeoutMs: params.quickPhaseTimeoutMs
16
+ });
17
+ if (!readiness.ready && params.isProcessRunning(params.childPid) && params.extendedPhaseTimeoutMs > 0) {
18
+ console.warn(`Warning: Background service is still running but not ready after ${Math.ceil(params.quickPhaseTimeoutMs / 1e3)}s; waiting up to ${Math.ceil(params.extendedPhaseTimeoutMs / 1e3)}s more.`);
19
+ params.appendStartupStage(params.logPath, `health probe entering extended phase (timeoutMs=${params.extendedPhaseTimeoutMs}, lastError=${readiness.lastProbeError ?? "none"})`);
20
+ readiness = await params.waitForBackgroundServiceReady({
21
+ pid: params.childPid,
22
+ healthUrl: params.healthUrl,
23
+ timeoutMs: params.extendedPhaseTimeoutMs
24
+ });
25
+ }
26
+ if (!readiness.ready && params.isProcessRunning(params.childPid)) params.appendStartupStage(params.logPath, `startup degraded: process alive but health probe timed out after ${params.readinessTimeoutMs}ms (lastError=${readiness.lastProbeError ?? "none"})`);
27
+ return readiness;
28
+ }
29
+ async function reportManagedServiceStart(params) {
30
+ if (!params.readiness.ready) {
31
+ const hint = params.readiness.lastProbeError ? ` Last probe error: ${params.readiness.lastProbeError}` : "";
32
+ console.warn(`Warning: ${params.appName} is running (PID ${params.state.pid}) but not healthy yet after ${Math.ceil(params.readinessTimeoutMs / 1e3)}s. Marked as degraded.${hint}`);
33
+ console.warn(`Tip: Run "${params.appName} status --json" and check logs: ${params.state.logPath}`);
34
+ } else console.log(`✓ ${params.appName} started in background (PID ${params.state.pid})`);
35
+ console.log(`UI: ${params.uiUrl}`);
36
+ console.log(`API: ${params.apiUrl}`);
37
+ await params.printPublicUiUrls(params.uiConfig.host, params.uiConfig.port);
38
+ console.log(`Logs: ${params.state.logPath}`);
39
+ params.printServiceControlHints();
40
+ }
41
+ var ManagedServiceCommandService = class {
42
+ loggingRuntime = NextclawCore.getLoggingRuntime();
43
+ serviceLogger = this.loggingRuntime.getLogger("service");
44
+ startupLogger = this.serviceLogger.child("startup");
45
+ supervisor = new ManagedServiceSupervisor();
46
+ constructor(deps) {
47
+ this.deps = deps;
48
+ }
49
+ runForeground = async (options) => {
50
+ const uiConfig = resolveUiConfig(loadConfig$1(), options.uiOverrides);
51
+ const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);
52
+ if (options.open) openBrowser(uiUrl);
53
+ await this.deps.startGateway({
54
+ uiOverrides: options.uiOverrides,
55
+ uiStaticDir: this.deps.resolveUiStaticDir()
56
+ });
57
+ };
58
+ startService = async (options) => {
59
+ this.loggingRuntime.ensureReady();
60
+ const { open, startupTimeoutMs, uiOverrides } = options;
61
+ const config = loadConfig$1();
62
+ const uiConfig = resolveUiConfig(config, uiOverrides);
63
+ const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);
64
+ const apiUrl = `${uiUrl}/api`;
65
+ const staticDir = this.deps.resolveUiStaticDir();
66
+ const existing = managedServiceStateStore.read();
67
+ const existingLiveness = this.supervisor.resolveStateLiveness(existing);
68
+ if (existing && existingLiveness.running) {
69
+ await this.handleExistingManagedService({
70
+ existing,
71
+ uiConfig,
72
+ options
73
+ });
74
+ return;
75
+ }
76
+ if (existing && !existingLiveness.processExists) managedServiceStateStore.clear();
77
+ if (!staticDir) {
78
+ process.exitCode = 1, console.error(`Error: ${APP_NAME$1} UI frontend bundle not found. Reinstall or rebuild ${APP_NAME$1}. For dev-only overrides, set NEXTCLAW_UI_STATIC_DIR to a built frontend directory.`);
79
+ return;
80
+ }
81
+ const healthUrl = `${apiUrl}/health`;
82
+ const portPreflight = await this.deps.checkUiPortPreflight({
83
+ host: uiConfig.host,
84
+ port: uiConfig.port,
85
+ healthUrl
86
+ });
87
+ if (!portPreflight.ok) {
88
+ process.exitCode = 1, console.error(`Error: Cannot start ${APP_NAME$1} because UI port ${uiConfig.port} is already occupied.`), console.error(portPreflight.message);
89
+ return;
90
+ }
91
+ if (portPreflight.reusedExistingHealthyTarget) {
92
+ await this.reuseExistingHealthyStartTarget({
93
+ uiConfig,
94
+ uiUrl,
95
+ apiUrl,
96
+ open
97
+ });
98
+ return;
99
+ }
100
+ await this.startNewManagedServiceTarget({
101
+ config,
102
+ uiConfig,
103
+ uiUrl,
104
+ apiUrl,
105
+ healthUrl,
106
+ startupTimeoutMs
107
+ });
108
+ if (open) openBrowser(uiUrl);
109
+ };
110
+ stopService = async () => {
111
+ const state = managedServiceStateStore.read();
112
+ if (!state) {
113
+ console.log("No running background service found.");
114
+ return;
115
+ }
116
+ if (!isProcessRunning(state.pid)) {
117
+ console.log("Service is not running. Cleaning up state.");
118
+ managedServiceStateStore.clear();
119
+ return;
120
+ }
121
+ console.log(`Stopping ${APP_NAME$1} (PID ${state.pid})...`);
122
+ this.serviceLogger.info("runtime.process.stop_requested", {
123
+ runtimeKind: "managed-service",
124
+ pid: state.pid,
125
+ reason: "nextclaw-stop-command",
126
+ uiUrl: state.uiUrl,
127
+ apiUrl: state.apiUrl
128
+ });
129
+ try {
130
+ process.kill(state.pid, "SIGTERM");
131
+ } catch (error) {
132
+ console.error(`Failed to stop service: ${String(error)}`);
133
+ return;
134
+ }
135
+ if (!await waitForExit(state.pid, 3e3)) {
136
+ this.serviceLogger.warn("runtime.process.stop_requested", {
137
+ runtimeKind: "managed-service",
138
+ pid: state.pid,
139
+ reason: "nextclaw-stop-command-force",
140
+ signal: "SIGKILL",
141
+ uiUrl: state.uiUrl,
142
+ apiUrl: state.apiUrl
143
+ });
144
+ try {
145
+ process.kill(state.pid, "SIGKILL");
146
+ } catch (error) {
147
+ console.error(`Failed to force stop service: ${String(error)}`);
148
+ return;
149
+ }
150
+ await waitForExit(state.pid, 2e3);
151
+ }
152
+ managedServiceStateStore.clear();
153
+ localUiRuntimeStore.clearIfOwnedByProcess(state.pid);
154
+ this.serviceLogger.info("service_state.cleared", {
155
+ runtimeKind: "managed-service",
156
+ pid: state.pid,
157
+ statePath: managedServiceStateStore.path,
158
+ uiUrl: state.uiUrl,
159
+ apiUrl: state.apiUrl
160
+ });
161
+ console.log(`✓ ${APP_NAME$1} stopped`);
162
+ };
163
+ handleExistingManagedService = async (params) => {
164
+ const { existing, options, uiConfig } = params;
165
+ console.log(`✓ ${APP_NAME$1} is already running (PID ${existing.pid})`);
166
+ console.log(`UI: ${existing.uiUrl}`);
167
+ console.log(`API: ${existing.apiUrl}`);
168
+ const binding = resolveManagedServiceUiBinding(existing);
169
+ if (binding.host !== uiConfig.host || binding.port !== uiConfig.port) {
170
+ console.log(`Detected running service UI bind (${binding.host}:${binding.port}); enforcing (${uiConfig.host}:${uiConfig.port})...`);
171
+ await this.stopService();
172
+ const stateAfterStop = managedServiceStateStore.read();
173
+ if (stateAfterStop && isProcessRunning(stateAfterStop.pid)) {
174
+ process.exitCode = 1;
175
+ console.error("Error: Failed to stop running service while enforcing public UI exposure.");
176
+ return true;
177
+ }
178
+ await this.startService(options);
179
+ return true;
180
+ }
181
+ await this.deps.printPublicUiUrls(binding.host, binding.port);
182
+ console.log(`Logs: ${existing.logPath}`);
183
+ this.deps.printServiceControlHints();
184
+ return true;
185
+ };
186
+ reuseExistingHealthyStartTarget = async (params) => {
187
+ const { apiUrl, open, uiConfig, uiUrl } = params;
188
+ console.log(`✓ ${APP_NAME$1} is already serving the target UI/API port`);
189
+ console.log(`UI: ${uiUrl}`);
190
+ console.log(`API: ${apiUrl}`);
191
+ console.warn([
192
+ `Warning: The healthy listener on ${uiConfig.port} is not tracked by ${managedServiceStateStore.path}.`,
193
+ "This start call reused the existing runtime instead of spawning another one.",
194
+ "Use the owning process or port-level tools to stop it; managed stop/restart will not control it automatically."
195
+ ].join(" "));
196
+ await this.deps.printPublicUiUrls(uiConfig.host, uiConfig.port);
197
+ if (open) openBrowser(uiUrl);
198
+ };
199
+ startNewManagedServiceTarget = async (params) => {
200
+ const { apiUrl, config, healthUrl, startupTimeoutMs, uiConfig, uiUrl } = params;
201
+ const startup = this.supervisor.spawnManagedService({
202
+ appName: APP_NAME$1,
203
+ config,
204
+ uiConfig,
205
+ uiUrl,
206
+ apiUrl,
207
+ healthUrl,
208
+ startupTimeoutMs,
209
+ resolveStartupTimeoutMs: this.resolveStartupTimeoutMs,
210
+ appendStartupStage: this.appendStartupStage,
211
+ printStartupFailureDiagnostics: this.printStartupFailureDiagnostics,
212
+ resolveServiceLogPath
213
+ });
214
+ if (!startup) {
215
+ this.serviceLogger.fatal("managed service startup aborted", { reason: "child_process_not_created" });
216
+ process.exitCode = 1;
217
+ return;
218
+ }
219
+ const readiness = await waitForManagedServiceReadiness({
220
+ appName: APP_NAME$1,
221
+ childPid: startup.snapshot.pid,
222
+ healthUrl,
223
+ logPath: startup.logPath,
224
+ readinessTimeoutMs: startup.readinessTimeoutMs,
225
+ quickPhaseTimeoutMs: startup.quickPhaseTimeoutMs,
226
+ extendedPhaseTimeoutMs: startup.extendedPhaseTimeoutMs,
227
+ appendStartupStage: this.appendStartupStage,
228
+ waitForBackgroundServiceReady: this.waitForBackgroundServiceReady,
229
+ isProcessRunning
230
+ });
231
+ if (!readiness.ready && !isProcessRunning(startup.snapshot.pid)) {
232
+ process.exitCode = 1;
233
+ managedServiceStateStore.clear();
234
+ const hint = readiness.lastProbeError ? ` Last probe error: ${readiness.lastProbeError}` : "";
235
+ this.appendStartupStage(startup.logPath, `startup failed: process exited before ready.${hint}`);
236
+ this.serviceLogger.fatal("managed service exited before readiness completed", {
237
+ uiUrl,
238
+ apiUrl,
239
+ healthUrl,
240
+ logPath: startup.logPath,
241
+ ...readiness.lastProbeError ? { lastProbeError: readiness.lastProbeError } : {}
242
+ });
243
+ console.error(`Error: Failed to start background service. Check logs: ${startup.logPath}.${hint}`);
244
+ this.printStartupFailureDiagnostics({
245
+ uiUrl,
246
+ apiUrl,
247
+ healthUrl,
248
+ logPath: startup.logPath,
249
+ lastProbeError: readiness.lastProbeError
250
+ });
251
+ return;
252
+ }
253
+ startup.child.unref();
254
+ const readySnapshot = resolveManagedServiceReadySnapshot({ snapshot: startup.snapshot });
255
+ const state = this.supervisor.writeReadyState({
256
+ readinessTimeoutMs: startup.readinessTimeoutMs,
257
+ readiness,
258
+ snapshot: readySnapshot
259
+ });
260
+ this.startupLogger.info("runtime.process.ready", {
261
+ runtimeKind: "managed-service",
262
+ pid: state.pid,
263
+ uiUrl: state.uiUrl,
264
+ apiUrl: state.apiUrl,
265
+ startupState: state.startupState,
266
+ readinessTimeoutMs: startup.readinessTimeoutMs
267
+ });
268
+ await reportManagedServiceStart({
269
+ appName: APP_NAME$1,
270
+ state,
271
+ uiConfig,
272
+ uiUrl,
273
+ apiUrl,
274
+ readinessTimeoutMs: startup.readinessTimeoutMs,
275
+ readiness,
276
+ printPublicUiUrls: this.deps.printPublicUiUrls,
277
+ printServiceControlHints: this.deps.printServiceControlHints
278
+ });
279
+ };
280
+ waitForBackgroundServiceReady = async (params) => {
281
+ const { pid, healthUrl, timeoutMs } = params;
282
+ const startedAt = Date.now();
283
+ let lastProbeError = null;
284
+ while (Date.now() - startedAt < timeoutMs) {
285
+ if (!isProcessRunning(pid)) return {
286
+ ready: false,
287
+ lastProbeError
288
+ };
289
+ const probe = await probeHealthEndpoint(healthUrl);
290
+ if (!probe.healthy) {
291
+ lastProbeError = probe.error;
292
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));
293
+ continue;
294
+ }
295
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, 300));
296
+ if (isProcessRunning(pid)) return {
297
+ ready: true,
298
+ lastProbeError: null
299
+ };
300
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));
301
+ }
302
+ return {
303
+ ready: false,
304
+ lastProbeError
305
+ };
306
+ };
307
+ resolveStartupTimeoutMs = (overrideTimeoutMs) => {
308
+ const fallback = process.platform === "win32" ? 28e3 : 33e3;
309
+ const envRaw = process.env.NEXTCLAW_START_TIMEOUT_MS?.trim();
310
+ const envValue = envRaw ? Number(envRaw) : NaN;
311
+ const fromEnv = Number.isFinite(envValue) && envValue > 0 ? Math.floor(envValue) : null;
312
+ const resolved = (Number.isFinite(overrideTimeoutMs) && Number(overrideTimeoutMs) > 0 ? Math.floor(Number(overrideTimeoutMs)) : null) ?? fromEnv ?? fallback;
313
+ return Math.max(3e3, resolved);
314
+ };
315
+ appendStartupStage = (logPath, message) => {
316
+ try {
317
+ this.startupLogger.info(message, { logPath });
318
+ } catch (error) {
319
+ const detail = error instanceof Error ? error.message : String(error);
320
+ console.error(`Warning: failed to write startup diagnostics log (${logPath}): ${detail}`);
321
+ }
322
+ };
323
+ printStartupFailureDiagnostics = (params) => {
324
+ const { apiUrl, healthUrl, lastProbeError, logPath, uiUrl } = params;
325
+ const statePath = managedServiceStateStore.path;
326
+ const lines = [
327
+ "Startup diagnostics:",
328
+ `- UI URL: ${uiUrl}`,
329
+ `- API URL: ${apiUrl}`,
330
+ `- Health probe: ${healthUrl}`,
331
+ `- Service state path: ${statePath}`,
332
+ `- Startup log path: ${logPath}`
333
+ ];
334
+ if (lastProbeError) lines.push(`- Last probe detail: ${lastProbeError}`);
335
+ console.error(lines.join("\n"));
336
+ };
337
+ };
338
+ //#endregion
339
+ export { ManagedServiceCommandService, reportManagedServiceStart, resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate, waitForManagedServiceReadiness };
340
+
341
+ //# sourceMappingURL=service-managed-startup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-managed-startup.service.js","names":["loadConfig","APP_NAME"],"sources":["../../../src/services/runtime/service-managed-startup.service.ts"],"sourcesContent":["import * as NextclawCore from \"@nextclaw/core\";\nimport { localUiRuntimeStore } from \"@nextclaw-service/stores/local-ui-runtime.store.js\";\nimport { managedServiceStateStore, type ManagedServiceState } from \"@nextclaw-service/stores/managed-service-state.store.js\";\nimport {\n resolveManagedServiceReadySnapshot,\n resolveManagedServiceUiBinding,\n resolveSessionRouteCandidate,\n} from \"@nextclaw-service/utils/runtime/managed-service-routing.utils.js\";\nimport {\n isProcessRunning,\n openBrowser,\n resolveServiceLogPath,\n resolveUiApiBase,\n resolveUiConfig,\n waitForExit\n} from \"@nextclaw-service/utils/cli.utils.js\";\nimport { probeHealthEndpoint } from \"@nextclaw-service/utils/service-port-probe.utils.js\";\nimport { ManagedServiceSupervisor } from \"@nextclaw-service/services/runtime/managed-service-supervisor.service.js\";\n\nconst { APP_NAME, loadConfig } = NextclawCore;\n\ntype Config = NextclawCore.Config;\n\nexport type StartServiceOptions = {\n uiOverrides: Partial<Config[\"ui\"]>;\n open: boolean;\n startupTimeoutMs?: number;\n};\n\nexport { resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate };\n\nexport async function waitForManagedServiceReadiness(params: {\n appName: string;\n childPid: number;\n healthUrl: string;\n logPath: string;\n readinessTimeoutMs: number;\n quickPhaseTimeoutMs: number;\n extendedPhaseTimeoutMs: number;\n appendStartupStage: (logPath: string, message: string) => void;\n waitForBackgroundServiceReady: (params: {\n pid: number;\n healthUrl: string;\n timeoutMs: number;\n }) => Promise<{ ready: boolean; lastProbeError: string | null }>;\n isProcessRunning: (pid: number) => boolean;\n}): Promise<{ ready: boolean; lastProbeError: string | null }> {\n params.appendStartupStage(params.logPath, `health probe started: ${params.healthUrl} (phase=quick, timeoutMs=${params.quickPhaseTimeoutMs})`);\n let readiness = await params.waitForBackgroundServiceReady({\n pid: params.childPid,\n healthUrl: params.healthUrl,\n timeoutMs: params.quickPhaseTimeoutMs\n });\n if (!readiness.ready && params.isProcessRunning(params.childPid) && params.extendedPhaseTimeoutMs > 0) {\n console.warn(\n `Warning: Background service is still running but not ready after ${Math.ceil(params.quickPhaseTimeoutMs / 1000)}s; waiting up to ${Math.ceil(params.extendedPhaseTimeoutMs / 1000)}s more.`\n );\n params.appendStartupStage(\n params.logPath,\n `health probe entering extended phase (timeoutMs=${params.extendedPhaseTimeoutMs}, lastError=${readiness.lastProbeError ?? \"none\"})`\n );\n readiness = await params.waitForBackgroundServiceReady({\n pid: params.childPid,\n healthUrl: params.healthUrl,\n timeoutMs: params.extendedPhaseTimeoutMs\n });\n }\n if (!readiness.ready && params.isProcessRunning(params.childPid)) {\n params.appendStartupStage(\n params.logPath,\n `startup degraded: process alive but health probe timed out after ${params.readinessTimeoutMs}ms (lastError=${readiness.lastProbeError ?? \"none\"})`\n );\n }\n return readiness;\n}\n\nexport async function reportManagedServiceStart(params: {\n appName: string;\n state: { pid: number; logPath: string };\n uiConfig: { host: string; port: number };\n uiUrl: string;\n apiUrl: string;\n readinessTimeoutMs: number;\n readiness: { ready: boolean; lastProbeError: string | null };\n printPublicUiUrls: (host: string, port: number) => Promise<void>;\n printServiceControlHints: () => void;\n}): Promise<void> {\n if (!params.readiness.ready) {\n const hint = params.readiness.lastProbeError ? ` Last probe error: ${params.readiness.lastProbeError}` : \"\";\n console.warn(\n `Warning: ${params.appName} is running (PID ${params.state.pid}) but not healthy yet after ${Math.ceil(params.readinessTimeoutMs / 1000)}s. Marked as degraded.${hint}`\n );\n console.warn(`Tip: Run \"${params.appName} status --json\" and check logs: ${params.state.logPath}`);\n } else {\n console.log(`✓ ${params.appName} started in background (PID ${params.state.pid})`);\n }\n console.log(`UI: ${params.uiUrl}`);\n console.log(`API: ${params.apiUrl}`);\n await params.printPublicUiUrls(params.uiConfig.host, params.uiConfig.port);\n console.log(`Logs: ${params.state.logPath}`);\n params.printServiceControlHints();\n}\n\nexport class ManagedServiceCommandService {\n private readonly loggingRuntime = NextclawCore.getLoggingRuntime();\n private readonly serviceLogger = this.loggingRuntime.getLogger(\"service\");\n private readonly startupLogger = this.serviceLogger.child(\"startup\");\n private readonly supervisor = new ManagedServiceSupervisor();\n\n constructor(private readonly deps: {\n startGateway: (options: { uiOverrides: Partial<Config[\"ui\"]>; uiStaticDir?: string | null }) => Promise<void>;\n printPublicUiUrls: (host: string, port: number) => Promise<void>;\n printServiceControlHints: () => void;\n checkUiPortPreflight: (params: { host: string; port: number; healthUrl: string }) => Promise<{ ok: true; reusedExistingHealthyTarget: boolean } | { ok: false; message: string }>;\n resolveUiStaticDir: () => string | null;\n }) {}\n\n runForeground = async (options: {\n uiOverrides: Partial<Config[\"ui\"]>;\n open: boolean;\n }): Promise<void> => {\n const config = loadConfig();\n const uiConfig = resolveUiConfig(config, options.uiOverrides);\n const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);\n\n if (options.open) {\n openBrowser(uiUrl);\n }\n\n await this.deps.startGateway({\n uiOverrides: options.uiOverrides,\n uiStaticDir: this.deps.resolveUiStaticDir()\n });\n };\n\n startService = async (options: StartServiceOptions): Promise<void> => {\n this.loggingRuntime.ensureReady();\n const { open, startupTimeoutMs, uiOverrides } = options;\n const config = loadConfig();\n const uiConfig = resolveUiConfig(config, uiOverrides);\n const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);\n const apiUrl = `${uiUrl}/api`;\n const staticDir = this.deps.resolveUiStaticDir();\n\n const existing = managedServiceStateStore.read();\n const existingLiveness = this.supervisor.resolveStateLiveness(existing);\n if (existing && existingLiveness.running) {\n await this.handleExistingManagedService({ existing, uiConfig, options });\n return;\n }\n if (existing && !existingLiveness.processExists) {\n managedServiceStateStore.clear();\n }\n\n if (!staticDir) {\n return void (\n process.exitCode = 1,\n console.error(`Error: ${APP_NAME} UI frontend bundle not found. Reinstall or rebuild ${APP_NAME}. For dev-only overrides, set NEXTCLAW_UI_STATIC_DIR to a built frontend directory.`)\n );\n }\n\n const healthUrl = `${apiUrl}/health`;\n const portPreflight = await this.deps.checkUiPortPreflight({ host: uiConfig.host, port: uiConfig.port, healthUrl });\n if (!portPreflight.ok) {\n return void (\n process.exitCode = 1,\n console.error(`Error: Cannot start ${APP_NAME} because UI port ${uiConfig.port} is already occupied.`),\n console.error(portPreflight.message)\n );\n }\n if (portPreflight.reusedExistingHealthyTarget) {\n await this.reuseExistingHealthyStartTarget({ uiConfig, uiUrl, apiUrl, open });\n return;\n }\n\n await this.startNewManagedServiceTarget({\n config,\n uiConfig,\n uiUrl,\n apiUrl,\n healthUrl,\n startupTimeoutMs,\n });\n\n if (open) {\n openBrowser(uiUrl);\n }\n };\n\n stopService = async (): Promise<void> => {\n const state = managedServiceStateStore.read();\n if (!state) {\n console.log(\"No running background service found.\");\n return;\n }\n if (!isProcessRunning(state.pid)) {\n console.log(\"Service is not running. Cleaning up state.\");\n managedServiceStateStore.clear();\n return;\n }\n\n console.log(`Stopping ${APP_NAME} (PID ${state.pid})...`);\n this.serviceLogger.info(\"runtime.process.stop_requested\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n reason: \"nextclaw-stop-command\",\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n try {\n process.kill(state.pid, \"SIGTERM\");\n } catch (error) {\n console.error(`Failed to stop service: ${String(error)}`);\n return;\n }\n\n const stopped = await waitForExit(state.pid, 3000);\n if (!stopped) {\n this.serviceLogger.warn(\"runtime.process.stop_requested\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n reason: \"nextclaw-stop-command-force\",\n signal: \"SIGKILL\",\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n try {\n process.kill(state.pid, \"SIGKILL\");\n } catch (error) {\n console.error(`Failed to force stop service: ${String(error)}`);\n return;\n }\n await waitForExit(state.pid, 2000);\n }\n\n managedServiceStateStore.clear();\n localUiRuntimeStore.clearIfOwnedByProcess(state.pid);\n this.serviceLogger.info(\"service_state.cleared\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n statePath: managedServiceStateStore.path,\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n console.log(`✓ ${APP_NAME} stopped`);\n };\n\n private handleExistingManagedService = async (params: {\n existing: ManagedServiceState;\n uiConfig: Config[\"ui\"];\n options: StartServiceOptions;\n }): Promise<boolean> => {\n const { existing, options, uiConfig } = params;\n console.log(`✓ ${APP_NAME} is already running (PID ${existing.pid})`);\n console.log(`UI: ${existing.uiUrl}`);\n console.log(`API: ${existing.apiUrl}`);\n\n const binding = resolveManagedServiceUiBinding(existing);\n if (binding.host !== uiConfig.host || binding.port !== uiConfig.port) {\n console.log(\n `Detected running service UI bind (${binding.host}:${binding.port}); enforcing (${uiConfig.host}:${uiConfig.port})...`\n );\n await this.stopService();\n const stateAfterStop = managedServiceStateStore.read();\n if (stateAfterStop && isProcessRunning(stateAfterStop.pid)) {\n process.exitCode = 1;\n console.error(\"Error: Failed to stop running service while enforcing public UI exposure.\");\n return true;\n }\n await this.startService(options);\n return true;\n }\n\n await this.deps.printPublicUiUrls(binding.host, binding.port);\n console.log(`Logs: ${existing.logPath}`);\n this.deps.printServiceControlHints();\n return true;\n };\n\n private reuseExistingHealthyStartTarget = async (params: {\n uiConfig: Config[\"ui\"];\n uiUrl: string;\n apiUrl: string;\n open: boolean;\n }): Promise<void> => {\n const { apiUrl, open, uiConfig, uiUrl } = params;\n console.log(`✓ ${APP_NAME} is already serving the target UI/API port`);\n console.log(`UI: ${uiUrl}`);\n console.log(`API: ${apiUrl}`);\n console.warn(\n [\n `Warning: The healthy listener on ${uiConfig.port} is not tracked by ${managedServiceStateStore.path}.`,\n \"This start call reused the existing runtime instead of spawning another one.\",\n \"Use the owning process or port-level tools to stop it; managed stop/restart will not control it automatically.\"\n ].join(\" \")\n );\n await this.deps.printPublicUiUrls(uiConfig.host, uiConfig.port);\n if (open) {\n openBrowser(uiUrl);\n }\n };\n\n private startNewManagedServiceTarget = async (params: {\n config: Config;\n uiConfig: Config[\"ui\"];\n uiUrl: string;\n apiUrl: string;\n healthUrl: string;\n startupTimeoutMs?: number;\n }): Promise<void> => {\n const { apiUrl, config, healthUrl, startupTimeoutMs, uiConfig, uiUrl } = params;\n const startup = this.supervisor.spawnManagedService({\n appName: APP_NAME,\n config,\n uiConfig,\n uiUrl,\n apiUrl,\n healthUrl,\n startupTimeoutMs,\n resolveStartupTimeoutMs: this.resolveStartupTimeoutMs,\n appendStartupStage: this.appendStartupStage,\n printStartupFailureDiagnostics: this.printStartupFailureDiagnostics,\n resolveServiceLogPath\n });\n if (!startup) {\n this.serviceLogger.fatal(\"managed service startup aborted\", {\n reason: \"child_process_not_created\"\n });\n process.exitCode = 1;\n return;\n }\n\n const readiness = await waitForManagedServiceReadiness({\n appName: APP_NAME,\n childPid: startup.snapshot.pid,\n healthUrl,\n logPath: startup.logPath,\n readinessTimeoutMs: startup.readinessTimeoutMs,\n quickPhaseTimeoutMs: startup.quickPhaseTimeoutMs,\n extendedPhaseTimeoutMs: startup.extendedPhaseTimeoutMs,\n appendStartupStage: this.appendStartupStage,\n waitForBackgroundServiceReady: this.waitForBackgroundServiceReady,\n isProcessRunning\n });\n if (!readiness.ready && !isProcessRunning(startup.snapshot.pid)) {\n process.exitCode = 1;\n managedServiceStateStore.clear();\n const hint = readiness.lastProbeError ? ` Last probe error: ${readiness.lastProbeError}` : \"\";\n this.appendStartupStage(startup.logPath, `startup failed: process exited before ready.${hint}`);\n this.serviceLogger.fatal(\"managed service exited before readiness completed\", {\n uiUrl,\n apiUrl,\n healthUrl,\n logPath: startup.logPath,\n ...(readiness.lastProbeError ? { lastProbeError: readiness.lastProbeError } : {}),\n });\n console.error(`Error: Failed to start background service. Check logs: ${startup.logPath}.${hint}`);\n this.printStartupFailureDiagnostics({\n uiUrl,\n apiUrl,\n healthUrl,\n logPath: startup.logPath,\n lastProbeError: readiness.lastProbeError\n });\n return;\n }\n\n startup.child.unref();\n const readySnapshot = resolveManagedServiceReadySnapshot({\n snapshot: startup.snapshot\n });\n const state = this.supervisor.writeReadyState({\n readinessTimeoutMs: startup.readinessTimeoutMs,\n readiness,\n snapshot: readySnapshot\n });\n this.startupLogger.info(\"runtime.process.ready\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl,\n startupState: state.startupState,\n readinessTimeoutMs: startup.readinessTimeoutMs\n });\n await reportManagedServiceStart({\n appName: APP_NAME,\n state,\n uiConfig,\n uiUrl,\n apiUrl,\n readinessTimeoutMs: startup.readinessTimeoutMs,\n readiness,\n printPublicUiUrls: this.deps.printPublicUiUrls,\n printServiceControlHints: this.deps.printServiceControlHints\n });\n };\n\n private waitForBackgroundServiceReady = async (params: { pid: number; healthUrl: string; timeoutMs: number }): Promise<{ ready: boolean; lastProbeError: string | null }> => {\n const { pid, healthUrl, timeoutMs } = params;\n const startedAt = Date.now();\n let lastProbeError: string | null = null;\n while (Date.now() - startedAt < timeoutMs) {\n if (!isProcessRunning(pid)) {\n return { ready: false, lastProbeError };\n }\n const probe = await probeHealthEndpoint(healthUrl);\n if (!probe.healthy) {\n lastProbeError = probe.error;\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));\n continue;\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 300));\n if (isProcessRunning(pid)) {\n return { ready: true, lastProbeError: null };\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));\n }\n return { ready: false, lastProbeError };\n };\n\n private resolveStartupTimeoutMs = (overrideTimeoutMs: number | undefined): number => {\n const fallback = process.platform === \"win32\" ? 28000 : 33000;\n const envRaw = process.env.NEXTCLAW_START_TIMEOUT_MS?.trim();\n const envValue = envRaw ? Number(envRaw) : Number.NaN;\n const fromEnv = Number.isFinite(envValue) && envValue > 0 ? Math.floor(envValue) : null;\n const fromOverride = Number.isFinite(overrideTimeoutMs) && Number(overrideTimeoutMs) > 0\n ? Math.floor(Number(overrideTimeoutMs))\n : null;\n const resolved = fromOverride ?? fromEnv ?? fallback;\n return Math.max(3000, resolved);\n };\n\n private appendStartupStage = (logPath: string, message: string): void => {\n try {\n this.startupLogger.info(message, { logPath });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n console.error(`Warning: failed to write startup diagnostics log (${logPath}): ${detail}`);\n }\n };\n\n private printStartupFailureDiagnostics = (params: { uiUrl: string; apiUrl: string; healthUrl: string; logPath: string; lastProbeError: string | null }): void => {\n const { apiUrl, healthUrl, lastProbeError, logPath, uiUrl } = params;\n const statePath = managedServiceStateStore.path;\n const lines = [\n \"Startup diagnostics:\",\n `- UI URL: ${uiUrl}`,\n `- API URL: ${apiUrl}`,\n `- Health probe: ${healthUrl}`,\n `- Service state path: ${statePath}`,\n `- Startup log path: ${logPath}`\n ];\n if (lastProbeError) {\n lines.push(`- Last probe detail: ${lastProbeError}`);\n }\n console.error(lines.join(\"\\n\"));\n };\n\n}\n"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { LocalUiDiscoveryService } from "./local-ui-discovery.service.js";
2
+ import { CompanionRuntimeState, CompanionRuntimeStore } from "../../stores/companion-runtime.store.js";
3
+ import { Config } from "@nextclaw/core";
4
+
5
+ //#region src/services/ui/companion-runtime.service.d.ts
6
+ declare class CompanionRuntimeService {
7
+ private readonly runtimeStore;
8
+ private readonly uiDiscoveryService;
9
+ constructor(runtimeStore?: CompanionRuntimeStore, uiDiscoveryService?: LocalUiDiscoveryService);
10
+ readonly getRunningState: () => CompanionRuntimeState | null;
11
+ readonly resolveDiscoveredBaseUrl: () => string | null;
12
+ readonly isAvailable: () => boolean;
13
+ readonly applyConfig: (config: Config) => Promise<void>;
14
+ readonly updateEnabled: (enabled: boolean, options?: {
15
+ baseUrl?: string;
16
+ }) => Promise<Config>;
17
+ readonly ensureStarted: (options: {
18
+ baseUrl: string;
19
+ }) => Promise<CompanionRuntimeState>;
20
+ readonly ensureStopped: (options?: {
21
+ force?: boolean;
22
+ }) => Promise<boolean>;
23
+ readonly printStatus: (options?: {
24
+ json?: boolean;
25
+ }) => void;
26
+ readonly printStarted: (state: CompanionRuntimeState) => void;
27
+ readonly printStopped: (stopped: boolean) => void;
28
+ private readonly killProcess;
29
+ private readonly ensureStartedIfAvailable;
30
+ private readonly resolveLaunchSpec;
31
+ private readonly waitForRunningState;
32
+ }
33
+ declare const companionRuntimeService: CompanionRuntimeService;
34
+ //#endregion
35
+ export { CompanionRuntimeService, companionRuntimeService };
36
+ //# sourceMappingURL=companion-runtime.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion-runtime.service.d.ts","names":[],"sources":["../../../src/services/ui/companion-runtime.service.ts"],"mappings":";;;;;cA2Ba,uBAAA;EAAA,iBAEQ,YAAA;EAAA,iBACA,kBAAA;cADA,YAAA,GAAc,qBAAA,EACd,kBAAA,GAAoB,uBAAA;EAAA,SAG9B,eAAA,QAAsB,qBAAA;EAAA,SAYtB,wBAAA;EAAA,SAIA,WAAA;EAAA,SAYA,WAAA,GAAqB,MAAA,EAAQ,MAAA,KAAS,OAAA;EAAA,SAUtC,aAAA,GAAuB,OAAA,WAAkB,OAAA;IAAW,OAAA;EAAA,MAA0B,OAAA,CAAQ,MAAA;EAAA,SA4BtF,aAAA,GAAuB,OAAA;IAAW,OAAA;EAAA,MAAoB,OAAA,CAAQ,qBAAA;EAAA,SA0B9D,aAAA,GAAuB,OAAA;IAAW,KAAA;EAAA,MAAyB,OAAA;EAAA,SAc3D,WAAA,GAAe,OAAA;IAAW,IAAA;EAAA;EAAA,SA0B1B,YAAA,GAAgB,KAAA,EAAO,qBAAA;EAAA,SAIvB,YAAA,GAAgB,OAAA;EAAA,iBAIR,WAAA;EAAA,iBAIA,wBAAA;EAAA,iBAcA,iBAAA;EAAA,iBAwBA,mBAAA;AAAA;AAAA,cAqBN,uBAAA,EAAuB,uBAAA"}
@@ -0,0 +1,180 @@
1
+ import { isProcessRunning } from "../../utils/cli.utils.js";
2
+ import { localUiDiscoveryService } from "./local-ui-discovery.service.js";
3
+ import { companionRuntimeStore } from "../../stores/companion-runtime.store.js";
4
+ import { createRequire } from "node:module";
5
+ import { APP_NAME, getConfigPath, loadConfig, saveConfig } from "@nextclaw/core";
6
+ import { existsSync } from "node:fs";
7
+ import { spawn } from "node:child_process";
8
+ import { dirname, resolve } from "node:path";
9
+ //#region src/services/ui/companion-runtime.service.ts
10
+ const require = createRequire(import.meta.url);
11
+ var CompanionUnavailableError = class extends Error {
12
+ constructor(message) {
13
+ super(message);
14
+ this.name = "CompanionUnavailableError";
15
+ }
16
+ };
17
+ function isCompanionUnavailableError(error) {
18
+ return error instanceof CompanionUnavailableError;
19
+ }
20
+ var CompanionRuntimeService = class {
21
+ constructor(runtimeStore = companionRuntimeStore, uiDiscoveryService = localUiDiscoveryService) {
22
+ this.runtimeStore = runtimeStore;
23
+ this.uiDiscoveryService = uiDiscoveryService;
24
+ }
25
+ getRunningState = () => {
26
+ const state = this.runtimeStore.read();
27
+ if (!state) return null;
28
+ if (!isProcessRunning(state.pid)) {
29
+ this.runtimeStore.clear();
30
+ return null;
31
+ }
32
+ return state;
33
+ };
34
+ resolveDiscoveredBaseUrl = () => {
35
+ return this.uiDiscoveryService.resolveApiBase();
36
+ };
37
+ isAvailable = () => {
38
+ try {
39
+ this.resolveLaunchSpec();
40
+ return true;
41
+ } catch (error) {
42
+ if (isCompanionUnavailableError(error)) return false;
43
+ throw error;
44
+ }
45
+ };
46
+ applyConfig = async (config) => {
47
+ if (!config.companion.enabled) {
48
+ await this.ensureStopped();
49
+ return;
50
+ }
51
+ await this.ensureStartedIfAvailable({ baseUrl: this.uiDiscoveryService.resolveLocalOrigin(config) });
52
+ };
53
+ updateEnabled = async (enabled, options = {}) => {
54
+ const config = loadConfig(getConfigPath());
55
+ const next = {
56
+ ...config,
57
+ companion: {
58
+ ...config.companion,
59
+ enabled
60
+ }
61
+ };
62
+ saveConfig(next, getConfigPath());
63
+ if (enabled) {
64
+ const explicitBaseUrl = options.baseUrl?.trim();
65
+ if (explicitBaseUrl) {
66
+ await this.ensureStartedIfAvailable({ baseUrl: explicitBaseUrl });
67
+ return next;
68
+ }
69
+ const discoveredBaseUrl = this.uiDiscoveryService.resolveApiBase();
70
+ if (discoveredBaseUrl) await this.ensureStartedIfAvailable({ baseUrl: discoveredBaseUrl });
71
+ return next;
72
+ }
73
+ await this.ensureStopped();
74
+ return next;
75
+ };
76
+ ensureStarted = async (options) => {
77
+ const baseUrl = options.baseUrl.trim().replace(/\/+$/, "");
78
+ const runningState = this.getRunningState();
79
+ if (runningState?.baseUrl === baseUrl) return runningState;
80
+ if (runningState) {
81
+ this.killProcess(runningState.pid, false);
82
+ this.runtimeStore.clear();
83
+ }
84
+ const launchSpec = this.resolveLaunchSpec();
85
+ const child = spawn(launchSpec.command, [
86
+ ...launchSpec.args,
87
+ "--base-url",
88
+ baseUrl
89
+ ], {
90
+ detached: true,
91
+ stdio: "ignore",
92
+ windowsHide: true,
93
+ env: {
94
+ ...process.env,
95
+ NEXTCLAW_COMPANION_RUNTIME_STATE_PATH: this.runtimeStore.path
96
+ }
97
+ });
98
+ child.unref();
99
+ return await this.waitForRunningState(baseUrl, child.pid ?? -1);
100
+ };
101
+ ensureStopped = async (options = {}) => {
102
+ const state = this.runtimeStore.read();
103
+ if (!state) return false;
104
+ if (!isProcessRunning(state.pid)) {
105
+ this.runtimeStore.clear();
106
+ return false;
107
+ }
108
+ this.killProcess(state.pid, options.force === true);
109
+ this.runtimeStore.clear();
110
+ return true;
111
+ };
112
+ printStatus = (options = {}) => {
113
+ const runningState = this.getRunningState();
114
+ const config = loadConfig(getConfigPath());
115
+ const view = runningState ? {
116
+ configuredEnabled: config.companion.enabled,
117
+ running: true,
118
+ ...runningState
119
+ } : {
120
+ configuredEnabled: config.companion.enabled,
121
+ running: false
122
+ };
123
+ if (options.json) {
124
+ console.log(JSON.stringify(view, null, 2));
125
+ return;
126
+ }
127
+ if (!runningState) {
128
+ console.log(config.companion.enabled ? "Companion is enabled in config but is not running." : "Companion is disabled and not running.");
129
+ return;
130
+ }
131
+ console.log(`Companion is running (pid ${runningState.pid}) at ${runningState.baseUrl}. Configured enabled: ${config.companion.enabled ? "yes" : "no"}.`);
132
+ };
133
+ printStarted = (state) => {
134
+ console.log(`Started ${APP_NAME} companion (pid ${state.pid}) using ${state.baseUrl}.`);
135
+ };
136
+ printStopped = (stopped) => {
137
+ console.log(stopped ? "Stopped companion process." : "Companion is not running.");
138
+ };
139
+ killProcess = (pid, force) => {
140
+ process.kill(pid, force ? "SIGKILL" : "SIGTERM");
141
+ };
142
+ ensureStartedIfAvailable = async (options) => {
143
+ try {
144
+ return await this.ensureStarted(options);
145
+ } catch (error) {
146
+ if (!isCompanionUnavailableError(error)) throw error;
147
+ console.warn(error.message);
148
+ return null;
149
+ }
150
+ };
151
+ resolveLaunchSpec = () => {
152
+ let packageJsonPath;
153
+ try {
154
+ packageJsonPath = require.resolve("@nextclaw/companion/package.json");
155
+ } catch {
156
+ throw new CompanionUnavailableError("@nextclaw/companion is not installed. Install it separately to use the companion shell.");
157
+ }
158
+ const packageRoot = dirname(packageJsonPath);
159
+ const mainPath = resolve(packageRoot, "dist", "src", "main.js");
160
+ if (!existsSync(mainPath)) throw new CompanionUnavailableError(`Companion app build is missing at ${mainPath}. Install or build @nextclaw/companion separately to use the companion shell.`);
161
+ return {
162
+ command: createRequire(packageJsonPath)("electron"),
163
+ args: [packageRoot]
164
+ };
165
+ };
166
+ waitForRunningState = async (baseUrl, fallbackPid) => {
167
+ const timeoutAt = Date.now() + 5e3;
168
+ while (Date.now() < timeoutAt) {
169
+ const state = this.getRunningState();
170
+ if (state?.baseUrl === baseUrl) return state;
171
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, 100));
172
+ }
173
+ throw new Error(fallbackPid > 0 ? `Companion started but did not report a live runtime state (launcher pid ${fallbackPid}).` : "Companion started but did not report a live runtime state.");
174
+ };
175
+ };
176
+ const companionRuntimeService = new CompanionRuntimeService();
177
+ //#endregion
178
+ export { CompanionRuntimeService, companionRuntimeService };
179
+
180
+ //# sourceMappingURL=companion-runtime.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"companion-runtime.service.js","names":[],"sources":["../../../src/services/ui/companion-runtime.service.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { spawn } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport { dirname, resolve } from \"node:path\";\nimport { getConfigPath, loadConfig, saveConfig, type Config } from \"@nextclaw/core\";\nimport { APP_NAME } from \"@nextclaw/core\";\nimport { localUiDiscoveryService, type LocalUiDiscoveryService } from \"@nextclaw-service/services/ui/local-ui-discovery.service.js\";\nimport { isProcessRunning } from \"@nextclaw-service/utils/cli.utils.js\";\nimport {\n companionRuntimeStore,\n type CompanionRuntimeState,\n type CompanionRuntimeStore\n} from \"@nextclaw-service/stores/companion-runtime.store.js\";\n\nconst require = createRequire(import.meta.url);\n\nclass CompanionUnavailableError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CompanionUnavailableError\";\n }\n}\n\nfunction isCompanionUnavailableError(error: unknown): error is CompanionUnavailableError {\n return error instanceof CompanionUnavailableError;\n}\n\nexport class CompanionRuntimeService {\n constructor(\n private readonly runtimeStore: CompanionRuntimeStore = companionRuntimeStore,\n private readonly uiDiscoveryService: LocalUiDiscoveryService = localUiDiscoveryService\n ) {}\n\n readonly getRunningState = (): CompanionRuntimeState | null => {\n const state = this.runtimeStore.read();\n if (!state) {\n return null;\n }\n if (!isProcessRunning(state.pid)) {\n this.runtimeStore.clear();\n return null;\n }\n return state;\n };\n\n readonly resolveDiscoveredBaseUrl = (): string | null => {\n return this.uiDiscoveryService.resolveApiBase();\n };\n\n readonly isAvailable = (): boolean => {\n try {\n this.resolveLaunchSpec();\n return true;\n } catch (error) {\n if (isCompanionUnavailableError(error)) {\n return false;\n }\n throw error;\n }\n };\n\n readonly applyConfig = async (config: Config): Promise<void> => {\n if (!config.companion.enabled) {\n await this.ensureStopped();\n return;\n }\n await this.ensureStartedIfAvailable({\n baseUrl: this.uiDiscoveryService.resolveLocalOrigin(config)\n });\n };\n\n readonly updateEnabled = async (enabled: boolean, options: { baseUrl?: string } = {}): Promise<Config> => {\n const config = loadConfig(getConfigPath());\n const next: Config = {\n ...config,\n companion: {\n ...config.companion,\n enabled\n }\n };\n saveConfig(next, getConfigPath());\n\n if (enabled) {\n const explicitBaseUrl = options.baseUrl?.trim();\n if (explicitBaseUrl) {\n await this.ensureStartedIfAvailable({ baseUrl: explicitBaseUrl });\n return next;\n }\n const discoveredBaseUrl = this.uiDiscoveryService.resolveApiBase();\n if (discoveredBaseUrl) {\n await this.ensureStartedIfAvailable({ baseUrl: discoveredBaseUrl });\n }\n return next;\n }\n\n await this.ensureStopped();\n return next;\n };\n\n readonly ensureStarted = async (options: { baseUrl: string }): Promise<CompanionRuntimeState> => {\n const baseUrl = options.baseUrl.trim().replace(/\\/+$/, \"\");\n const runningState = this.getRunningState();\n if (runningState?.baseUrl === baseUrl) {\n return runningState;\n }\n if (runningState) {\n this.killProcess(runningState.pid, false);\n this.runtimeStore.clear();\n }\n\n const launchSpec = this.resolveLaunchSpec();\n const child = spawn(launchSpec.command, [...launchSpec.args, \"--base-url\", baseUrl], {\n detached: true,\n stdio: \"ignore\",\n windowsHide: true,\n env: {\n ...process.env,\n NEXTCLAW_COMPANION_RUNTIME_STATE_PATH: this.runtimeStore.path\n }\n });\n child.unref();\n\n return await this.waitForRunningState(baseUrl, child.pid ?? -1);\n };\n\n readonly ensureStopped = async (options: { force?: boolean } = {}): Promise<boolean> => {\n const state = this.runtimeStore.read();\n if (!state) {\n return false;\n }\n if (!isProcessRunning(state.pid)) {\n this.runtimeStore.clear();\n return false;\n }\n this.killProcess(state.pid, options.force === true);\n this.runtimeStore.clear();\n return true;\n };\n\n readonly printStatus = (options: { json?: boolean } = {}): void => {\n const runningState = this.getRunningState();\n const config = loadConfig(getConfigPath());\n const view = runningState\n ? { configuredEnabled: config.companion.enabled, running: true, ...runningState }\n : { configuredEnabled: config.companion.enabled, running: false };\n\n if (options.json) {\n console.log(JSON.stringify(view, null, 2));\n return;\n }\n\n if (!runningState) {\n console.log(\n config.companion.enabled\n ? \"Companion is enabled in config but is not running.\"\n : \"Companion is disabled and not running.\"\n );\n return;\n }\n\n console.log(\n `Companion is running (pid ${runningState.pid}) at ${runningState.baseUrl}. Configured enabled: ${config.companion.enabled ? \"yes\" : \"no\"}.`\n );\n };\n\n readonly printStarted = (state: CompanionRuntimeState): void => {\n console.log(`Started ${APP_NAME} companion (pid ${state.pid}) using ${state.baseUrl}.`);\n };\n\n readonly printStopped = (stopped: boolean): void => {\n console.log(stopped ? \"Stopped companion process.\" : \"Companion is not running.\");\n };\n\n private readonly killProcess = (pid: number, force: boolean): void => {\n process.kill(pid, force ? \"SIGKILL\" : \"SIGTERM\");\n };\n\n private readonly ensureStartedIfAvailable = async (\n options: { baseUrl: string }\n ): Promise<CompanionRuntimeState | null> => {\n try {\n return await this.ensureStarted(options);\n } catch (error) {\n if (!isCompanionUnavailableError(error)) {\n throw error;\n }\n console.warn(error.message);\n return null;\n }\n };\n\n private readonly resolveLaunchSpec = (): { command: string; args: string[] } => {\n let packageJsonPath: string;\n try {\n packageJsonPath = require.resolve(\"@nextclaw/companion/package.json\");\n } catch {\n throw new CompanionUnavailableError(\n \"@nextclaw/companion is not installed. Install it separately to use the companion shell.\"\n );\n }\n const packageRoot = dirname(packageJsonPath);\n const mainPath = resolve(packageRoot, \"dist\", \"src\", \"main.js\");\n if (!existsSync(mainPath)) {\n throw new CompanionUnavailableError(\n `Companion app build is missing at ${mainPath}. Install or build @nextclaw/companion separately to use the companion shell.`\n );\n }\n const companionRequire = createRequire(packageJsonPath);\n const electronBinary = companionRequire(\"electron\") as string;\n return {\n command: electronBinary,\n args: [packageRoot]\n };\n };\n\n private readonly waitForRunningState = async (\n baseUrl: string,\n fallbackPid: number\n ): Promise<CompanionRuntimeState> => {\n const timeoutAt = Date.now() + 5000;\n while (Date.now() < timeoutAt) {\n const state = this.getRunningState();\n if (state?.baseUrl === baseUrl) {\n return state;\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 100));\n }\n\n throw new Error(\n fallbackPid > 0\n ? `Companion started but did not report a live runtime state (launcher pid ${fallbackPid}).`\n : \"Companion started but did not report a live runtime state.\"\n );\n };\n}\n\nexport const companionRuntimeService = new CompanionRuntimeService();\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ManagedServiceState, ManagedServiceStateStore } from "../../stores/managed-service-state.store.js";
2
+ import { LocalUiRuntimeState, LocalUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
3
+ import { Config } from "@nextclaw/core";
4
+
5
+ //#region src/services/ui/local-ui-discovery.service.d.ts
6
+ type DiscoveredLocalUiState = LocalUiRuntimeState | ManagedServiceState;
7
+ declare class LocalUiDiscoveryService {
8
+ private readonly localUiStore;
9
+ private readonly managedServiceStore;
10
+ private readonly isProcessRunningFn;
11
+ constructor(localUiStore?: LocalUiRuntimeStore, managedServiceStore?: ManagedServiceStateStore, isProcessRunningFn?: (pid: number) => boolean);
12
+ private readonly readRunningState;
13
+ readonly readRunningRuntimeState: () => DiscoveredLocalUiState | null;
14
+ readonly resolveApiBase: () => string | null;
15
+ readonly resolveLocalOrigin: (config: Config) => string;
16
+ }
17
+ declare const localUiDiscoveryService: LocalUiDiscoveryService;
18
+ //#endregion
19
+ export { LocalUiDiscoveryService, localUiDiscoveryService };
20
+ //# sourceMappingURL=local-ui-discovery.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-ui-discovery.service.d.ts","names":[],"sources":["../../../src/services/ui/local-ui-discovery.service.ts"],"mappings":";;;;;KAaK,sBAAA,GAAyB,mBAAA,GAAsB,mBAAA;AAAA,cAEvC,uBAAA;EAAA,iBAEQ,YAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,kBAAA;cAFA,YAAA,GAAc,mBAAA,EACd,mBAAA,GAAqB,wBAAA,EACrB,kBAAA,IAAqB,GAAA;EAAA,iBAGvB,gBAAA;EAAA,SAOR,uBAAA,QAA8B,sBAAA;EAAA,SAI9B,cAAA;EAAA,SAcA,kBAAA,GAAsB,MAAA,EAAQ,MAAA;AAAA;AAAA,cAc5B,uBAAA,EAAuB,uBAAA"}