@nextclaw/service 0.2.12 → 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 @@
1
+ {"version":3,"file":"platform-auth-commands.service.js","names":[],"sources":["../../../src/services/platform-auth/platform-auth-commands.service.ts"],"sourcesContent":["import { getConfigPath, loadConfig, saveConfig } from \"@nextclaw/core\";\nimport { createInterface } from \"node:readline\";\nimport { buildPlatformApiBaseErrorMessage, resolvePlatformApiBase } from \"@nextclaw-service/controllers/commands/remote-command.controller.js\";\nimport {\n readBrowserAuthPollPayload,\n readBrowserAuthStartPayload,\n readLoginPayload,\n readPlatformAuthResultPayload,\n readPlatformErrorMessage,\n readPlatformUserPayload\n} from \"@nextclaw-service/utils/platform-auth/payload.utils.js\";\nimport { printAccountStatus, printUsernameUpdated, toAccountStatusView } from \"./account-status.service.js\";\nimport type { AccountCommandOptions, AccountSetUsernameCommandOptions, LoginCommandOptions } from \"@nextclaw-service/types/cli.types.js\";\nimport { openBrowser, prompt } from \"@nextclaw-service/utils/cli.utils.js\";\n\ntype NextclawProviderConfig = {\n displayName?: string;\n apiKey?: string;\n apiBase?: string | null;\n extraHeaders?: Record<string, string> | null;\n wireApi?: \"auto\" | \"chat\" | \"responses\";\n models?: string[];\n};\n\nexport type PlatformLoginResult = {\n token: string;\n role: string;\n email: string;\n platformBase: string;\n v1Base: string;\n};\n\nexport type PlatformUserView = {\n id: string;\n email: string;\n username: string | null;\n role: string;\n};\n\nexport type PlatformMeResult = {\n user: PlatformUserView;\n token: string;\n platformBase: string;\n v1Base: string;\n};\n\nexport type PlatformBrowserAuthStartResult = {\n sessionId: string;\n verificationUri: string;\n expiresAt: string;\n intervalMs: number;\n platformBase: string;\n v1Base: string;\n};\n\nexport type PlatformBrowserAuthPollResult =\n | {\n status: \"pending\";\n nextPollMs: number;\n }\n | {\n status: \"authorized\";\n token: string;\n role: string;\n email: string;\n platformBase: string;\n v1Base: string;\n }\n | {\n status: \"expired\";\n message: string;\n };\n\nfunction resolveProviderConfig(opts: LoginCommandOptions): {\n configPath: string;\n config: ReturnType<typeof loadConfig>;\n providers: Record<string, NextclawProviderConfig>;\n nextclawProvider: NextclawProviderConfig;\n platformBase: string;\n v1Base: string;\n inputApiBase: string;\n} {\n const configPath = getConfigPath();\n const config = loadConfig(configPath);\n const providers = config.providers as Record<string, NextclawProviderConfig>;\n const nextclawProvider = providers.nextclaw ?? {\n displayName: \"\",\n apiKey: \"\",\n apiBase: null,\n extraHeaders: null,\n wireApi: \"auto\",\n models: []\n };\n const configuredApiBase =\n typeof nextclawProvider.apiBase === \"string\" && nextclawProvider.apiBase.trim().length > 0\n ? nextclawProvider.apiBase.trim()\n : \"https://ai-gateway-api.nextclaw.io/v1\";\n const requestedApiBase =\n typeof opts.apiBase === \"string\" && opts.apiBase.trim().length > 0\n ? opts.apiBase.trim()\n : configuredApiBase;\n const { platformBase, v1Base, inputApiBase } = resolvePlatformApiBase({\n explicitApiBase: requestedApiBase,\n fallbackApiBase: \"https://ai-gateway-api.nextclaw.io/v1\"\n });\n return {\n configPath,\n config,\n providers,\n nextclawProvider,\n platformBase,\n v1Base,\n inputApiBase\n };\n}\n\nasync function resolveCredentials(opts: LoginCommandOptions): Promise<{ email: string; password: string }> {\n let email = typeof opts.email === \"string\" ? opts.email.trim() : \"\";\n let password = typeof opts.password === \"string\" ? opts.password : \"\";\n if (email && password) {\n return { email, password };\n }\n\n const rl = createInterface({\n input: process.stdin,\n output: process.stdout\n });\n try {\n if (!email) {\n email = (await prompt(rl, \"Email: \")).trim();\n }\n if (!password) {\n password = await prompt(rl, \"Password: \");\n }\n } finally {\n rl.close();\n }\n\n if (!email || !password) {\n throw new Error(\"Email and password are required.\");\n }\n return { email, password };\n}\n\nfunction persistPlatformToken(params: {\n configPath: string;\n config: ReturnType<typeof loadConfig>;\n providers: Record<string, NextclawProviderConfig>;\n nextclawProvider: NextclawProviderConfig;\n v1Base: string;\n token: string;\n}): void {\n const { configPath, config, providers, nextclawProvider, v1Base, token } = params;\n nextclawProvider.apiBase = v1Base;\n nextclawProvider.apiKey = token;\n providers.nextclaw = nextclawProvider;\n saveConfig(config, configPath);\n}\n\nexport class PlatformAuthCommands {\n private shouldUseBrowserLogin = (opts: LoginCommandOptions): boolean => {\n const email = typeof opts.email === \"string\" ? opts.email.trim() : \"\";\n const password = typeof opts.password === \"string\" ? opts.password : \"\";\n return !email && !password;\n };\n\n private waitFor = async (delayMs: number): Promise<void> => {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n };\n\n private formatLoginDeadline = (expiresAt: string): string => {\n const value = Date.parse(expiresAt);\n return Number.isNaN(value) ? expiresAt : new Date(value).toLocaleString();\n };\n\n private printLoginSuccess = (result: PlatformLoginResult): void => {\n console.log(`✓ Logged in to NextClaw platform (${result.platformBase})`);\n console.log(`✓ Account: ${result.email} (${result.role})`);\n console.log(\"✓ Token saved into providers.nextclaw.apiKey\");\n };\n\n private printBrowserLoginIntro = (params: {\n verificationUri: string;\n expiresAt: string;\n open: boolean;\n openedBrowser: boolean;\n }): void => {\n const {\n expiresAt,\n open,\n openedBrowser,\n verificationUri\n } = params;\n const expiresText = this.formatLoginDeadline(expiresAt);\n console.log(\"NextClaw browser sign-in\");\n console.log(`Open this link to continue: ${verificationUri}`);\n if (open) {\n if (openedBrowser) {\n console.log(\"✓ Opened the default browser. Finish sign-in there and this terminal will complete automatically.\");\n } else {\n console.log(\"Browser did not open automatically. Open the link above in any browser to continue.\");\n }\n } else {\n console.log(\"Automatic browser opening is disabled. Open the link above in any browser to continue.\");\n }\n console.log(\"This link can be opened on this machine or on another device if your CLI is running remotely.\");\n console.log(`Waiting for authorization until ${expiresText}...`);\n };\n\n private waitForBrowserLoginResult = async (params: {\n apiBase?: string;\n sessionId: string;\n }): Promise<PlatformLoginResult> => {\n while (true) {\n const result = await this.pollBrowserAuth({\n apiBase: params.apiBase,\n sessionId: params.sessionId\n });\n if (result.status === \"pending\") {\n await this.waitFor(result.nextPollMs);\n continue;\n }\n if (result.status === \"expired\") {\n throw new Error(`${result.message} Run \\`nextclaw login\\` again to generate a new sign-in link.`);\n }\n return {\n token: result.token,\n role: result.role,\n email: result.email,\n platformBase: result.platformBase,\n v1Base: result.v1Base\n };\n }\n };\n\n private loginWithBrowserResult = async (opts: LoginCommandOptions = {}): Promise<PlatformLoginResult> => {\n const startResult = await this.startBrowserAuth({\n apiBase: opts.apiBase\n });\n const shouldOpenBrowser = opts.open !== false;\n const openedBrowser = shouldOpenBrowser ? openBrowser(startResult.verificationUri) : false;\n this.printBrowserLoginIntro({\n verificationUri: startResult.verificationUri,\n expiresAt: startResult.expiresAt,\n open: shouldOpenBrowser,\n openedBrowser\n });\n const result = await this.waitForBrowserLoginResult({\n apiBase: opts.apiBase,\n sessionId: startResult.sessionId\n });\n console.log(\"✓ Browser authorization completed.\");\n return result;\n };\n\n private readStoredToken = (params: { apiBase?: string } = {}): {\n configPath: string;\n config: ReturnType<typeof loadConfig>;\n providers: Record<string, NextclawProviderConfig>;\n nextclawProvider: NextclawProviderConfig;\n platformBase: string;\n v1Base: string;\n inputApiBase: string;\n token: string;\n } => {\n const resolved = resolveProviderConfig({ apiBase: params.apiBase });\n const token = resolved.nextclawProvider.apiKey?.trim() ?? \"\";\n if (!token) {\n throw new Error(\"Not logged in. Run `nextclaw login` first.\");\n }\n return {\n ...resolved,\n token\n };\n };\n\n loginResult = async (opts: LoginCommandOptions = {}): Promise<PlatformLoginResult> => {\n const { configPath, config, providers, nextclawProvider, platformBase, v1Base, inputApiBase } = resolveProviderConfig(opts);\n const { email, password } = await resolveCredentials(opts);\n const response = await fetch(`${platformBase}/platform/auth/login`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ email, password })\n });\n const raw = await response.text();\n\n if (!response.ok) {\n throw new Error(buildPlatformApiBaseErrorMessage(inputApiBase, readPlatformErrorMessage(raw, response.status)));\n }\n\n const { token, role } = readLoginPayload(raw);\n persistPlatformToken({\n configPath,\n config,\n providers,\n nextclawProvider,\n v1Base,\n token\n });\n\n return {\n token,\n role,\n email,\n platformBase,\n v1Base\n };\n };\n\n startBrowserAuth = async (opts: Pick<LoginCommandOptions, \"apiBase\"> = {}): Promise<PlatformBrowserAuthStartResult> => {\n const { platformBase, v1Base, inputApiBase } = resolveProviderConfig(opts);\n const response = await fetch(`${platformBase}/platform/auth/browser/start`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({})\n });\n const raw = await response.text();\n if (!response.ok) {\n throw new Error(buildPlatformApiBaseErrorMessage(inputApiBase, readPlatformErrorMessage(raw, response.status)));\n }\n const result = readBrowserAuthStartPayload(raw);\n return {\n ...result,\n platformBase,\n v1Base\n };\n };\n\n pollBrowserAuth = async (params: {\n apiBase?: string;\n sessionId: string;\n }): Promise<PlatformBrowserAuthPollResult> => {\n const { configPath, config, providers, nextclawProvider, platformBase, v1Base, inputApiBase } = resolveProviderConfig({\n apiBase: params.apiBase\n });\n const response = await fetch(`${platformBase}/platform/auth/browser/poll`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n sessionId: params.sessionId\n })\n });\n const raw = await response.text();\n if (!response.ok) {\n throw new Error(buildPlatformApiBaseErrorMessage(inputApiBase, readPlatformErrorMessage(raw, response.status)));\n }\n const result = readBrowserAuthPollPayload(raw);\n if (result.status === \"pending\") {\n return {\n status: \"pending\",\n nextPollMs: result.nextPollMs ?? 1500\n };\n }\n if (result.status === \"expired\") {\n return {\n status: \"expired\",\n message: result.message ?? \"Authorization session expired.\"\n };\n }\n\n persistPlatformToken({\n configPath,\n config,\n providers,\n nextclawProvider,\n v1Base,\n token: result.token ?? \"\"\n });\n return {\n status: \"authorized\",\n token: result.token ?? \"\",\n role: result.role ?? \"user\",\n email: result.email ?? \"\",\n platformBase,\n v1Base\n };\n };\n\n login = async (opts: LoginCommandOptions = {}): Promise<void> => {\n const result = this.shouldUseBrowserLogin(opts)\n ? await this.loginWithBrowserResult(opts)\n : await this.loginResult(opts);\n this.printLoginSuccess(result);\n };\n\n me = async (params: { apiBase?: string } = {}): Promise<PlatformMeResult> => {\n const { platformBase, v1Base, inputApiBase, token } = this.readStoredToken(params);\n const response = await fetch(`${platformBase}/platform/auth/me`, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n const raw = await response.text();\n if (!response.ok) {\n throw new Error(buildPlatformApiBaseErrorMessage(inputApiBase, readPlatformErrorMessage(raw, response.status)));\n }\n return {\n user: readPlatformUserPayload(raw),\n token,\n platformBase,\n v1Base\n };\n };\n\n updateProfile = async (params: { username: string; apiBase?: string }): Promise<PlatformMeResult> => {\n const {\n configPath,\n config,\n providers,\n nextclawProvider,\n platformBase,\n v1Base,\n inputApiBase,\n token\n } = this.readStoredToken(params);\n const response = await fetch(`${platformBase}/platform/auth/profile`, {\n method: \"PATCH\",\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n username: params.username\n })\n });\n const raw = await response.text();\n if (!response.ok) {\n throw new Error(buildPlatformApiBaseErrorMessage(inputApiBase, readPlatformErrorMessage(raw, response.status)));\n }\n const result = readPlatformAuthResultPayload(raw);\n persistPlatformToken({\n configPath,\n config,\n providers,\n nextclawProvider,\n v1Base,\n token: result.token\n });\n return {\n user: result.user,\n token: result.token,\n platformBase,\n v1Base\n };\n };\n\n logout = (): { cleared: boolean } => {\n const { configPath, config, providers, nextclawProvider } = resolveProviderConfig({});\n const cleared = Boolean(nextclawProvider.apiKey?.trim());\n nextclawProvider.apiKey = \"\";\n providers.nextclaw = nextclawProvider;\n saveConfig(config, configPath);\n return { cleared };\n };\n\n accountStatus = async (opts: AccountCommandOptions = {}): Promise<void> => {\n const result = await this.me({ apiBase: opts.apiBase });\n const view = toAccountStatusView(result);\n if (opts.json) {\n console.log(JSON.stringify(view, null, 2));\n return;\n }\n printAccountStatus(view);\n };\n\n accountSetUsername = async (opts: AccountSetUsernameCommandOptions & { username: string }): Promise<void> => {\n const result = await this.updateProfile({\n apiBase: opts.apiBase,\n username: opts.username\n });\n const view = toAccountStatusView(result);\n if (opts.json) {\n console.log(JSON.stringify(view, null, 2));\n return;\n }\n printUsernameUpdated(view);\n printAccountStatus(view);\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { PlatformAuthCommands } from "../platform-auth/platform-auth-commands.service.js";
2
+ import { RemoteCommands } from "../../controllers/commands/remote-command.controller.js";
3
+ import { RemoteAccessHostServiceCommands, RemoteRuntimeController } from "./remote-service-control.service.js";
4
+ import { RemoteAccessView, RemoteBrowserAuthPollRequest, RemoteBrowserAuthPollResult, RemoteBrowserAuthStartRequest, RemoteBrowserAuthStartResult, RemoteDoctorView, RemoteServiceAction, RemoteServiceActionResult, RemoteSettingsUpdateRequest, UiRemoteAccessHost } from "@nextclaw/server";
5
+
6
+ //#region src/services/remote/remote-access-host.service.d.ts
7
+ declare class RemoteAccessHost implements UiRemoteAccessHost {
8
+ private readonly deps;
9
+ constructor(deps: {
10
+ serviceCommands: RemoteAccessHostServiceCommands;
11
+ requestManagedServiceRestart: (options?: {
12
+ uiPort?: number;
13
+ reason?: string;
14
+ }) => Promise<void>;
15
+ remoteCommands: RemoteCommands;
16
+ platformAuthCommands: PlatformAuthCommands;
17
+ currentUi?: {
18
+ host: string;
19
+ port: number;
20
+ };
21
+ remoteRuntimeController?: RemoteRuntimeController | null;
22
+ });
23
+ getStatus: () => RemoteAccessView;
24
+ login: (input: {
25
+ email: string;
26
+ password: string;
27
+ apiBase?: string;
28
+ }) => Promise<RemoteAccessView>;
29
+ startBrowserAuth: (input: RemoteBrowserAuthStartRequest) => Promise<RemoteBrowserAuthStartResult>;
30
+ pollBrowserAuth: (input: RemoteBrowserAuthPollRequest) => Promise<RemoteBrowserAuthPollResult>;
31
+ logout: () => RemoteAccessView;
32
+ updateSettings: (input: RemoteSettingsUpdateRequest) => RemoteAccessView;
33
+ runDoctor: () => Promise<RemoteDoctorView>;
34
+ controlService: (action: RemoteServiceAction) => Promise<RemoteServiceActionResult>;
35
+ private readAccountView;
36
+ updateProfile: (input: {
37
+ username: string;
38
+ }) => Promise<RemoteAccessView>;
39
+ }
40
+ //#endregion
41
+ export { RemoteAccessHost };
42
+ //# sourceMappingURL=remote-access-host.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-access-host.service.d.ts","names":[],"sources":["../../../src/services/remote/remote-access-host.service.ts"],"mappings":";;;;;;cAmDa,gBAAA,YAA4B,kBAAA;EAAA,iBAEpB,IAAA;cAAA,IAAA;IACf,eAAA,EAAiB,+BAAA;IACjB,4BAAA,GAA+B,OAAA;MAAY,MAAA;MAAiB,MAAA;IAAA,MAAsB,OAAA;IAClF,cAAA,EAAgB,cAAA;IAChB,oBAAA,EAAsB,oBAAA;IACtB,SAAA;MACE,IAAA;MACA,IAAA;IAAA;IAEF,uBAAA,GAA0B,uBAAA;EAAA;EAI9B,SAAA,QAAgB,gBAAA;EAuBhB,KAAA,GAAe,KAAA;IACb,KAAA;IACA,QAAA;IACA,OAAA;EAAA,MACE,OAAA,CAAQ,gBAAA;EAKZ,gBAAA,GAA0B,KAAA,EAAO,6BAAA,KAAgC,OAAA,CAAQ,4BAAA;EAYzE,eAAA,GAAyB,KAAA,EAAO,4BAAA,KAA+B,OAAA,CAAQ,2BAAA;EAmBvE,MAAA,QAAa,gBAAA;EAKb,cAAA,GAAkB,KAAA,EAAO,2BAAA,KAA8B,gBAAA;EASvD,SAAA,QAAsB,OAAA,CAAQ,gBAAA;EAY9B,cAAA,GAAwB,MAAA,EAAQ,mBAAA,KAAsB,OAAA,CAAQ,yBAAA;EAAA,QAItD,eAAA;EA4BR,aAAA,GAAuB,KAAA;IAAS,QAAA;EAAA,MAAqB,OAAA,CAAQ,gBAAA;AAAA"}
@@ -0,0 +1,128 @@
1
+ import { controlRemoteService, resolveRemoteServiceView } from "./remote-service-control.service.js";
2
+ import { getConfigPath, loadConfig } from "@nextclaw/core";
3
+ import { readPlatformSessionTokenState } from "@nextclaw/remote";
4
+ //#region src/services/remote/remote-access-host.service.ts
5
+ function normalizeOptionalString(value) {
6
+ if (typeof value !== "string") return null;
7
+ const trimmed = value.trim();
8
+ return trimmed.length > 0 ? trimmed : null;
9
+ }
10
+ function toRemoteRuntimeView(runtime) {
11
+ if (!runtime) return null;
12
+ return {
13
+ enabled: runtime.enabled,
14
+ mode: runtime.mode,
15
+ state: runtime.state,
16
+ deviceId: runtime.deviceId,
17
+ deviceName: runtime.deviceName,
18
+ platformBase: runtime.platformBase,
19
+ localOrigin: runtime.localOrigin,
20
+ lastConnectedAt: runtime.lastConnectedAt,
21
+ lastError: runtime.lastError,
22
+ updatedAt: runtime.updatedAt
23
+ };
24
+ }
25
+ var RemoteAccessHost = class {
26
+ constructor(deps) {
27
+ this.deps = deps;
28
+ }
29
+ getStatus = () => {
30
+ const config = loadConfig(getConfigPath());
31
+ const status = this.deps.remoteCommands.getStatusView();
32
+ return {
33
+ account: this.readAccountView({
34
+ token: normalizeOptionalString(config.providers.nextclaw?.apiKey),
35
+ apiBase: normalizeOptionalString(config.providers.nextclaw?.apiBase),
36
+ platformBase: status.platformBase
37
+ }),
38
+ settings: {
39
+ enabled: config.remote.enabled,
40
+ deviceName: config.remote.deviceName,
41
+ platformApiBase: config.remote.platformApiBase
42
+ },
43
+ service: resolveRemoteServiceView(this.deps.currentUi),
44
+ localOrigin: status.localOrigin,
45
+ configuredEnabled: status.configuredEnabled,
46
+ platformBase: status.platformBase,
47
+ runtime: toRemoteRuntimeView(status.runtime)
48
+ };
49
+ };
50
+ login = async (input) => {
51
+ await this.deps.platformAuthCommands.loginResult(input);
52
+ return this.getStatus();
53
+ };
54
+ startBrowserAuth = async (input) => {
55
+ const result = await this.deps.platformAuthCommands.startBrowserAuth({ apiBase: input.apiBase });
56
+ return {
57
+ sessionId: result.sessionId,
58
+ verificationUri: result.verificationUri,
59
+ expiresAt: result.expiresAt,
60
+ intervalMs: result.intervalMs
61
+ };
62
+ };
63
+ pollBrowserAuth = async (input) => {
64
+ const config = loadConfig(getConfigPath());
65
+ const result = await this.deps.platformAuthCommands.pollBrowserAuth({
66
+ apiBase: normalizeOptionalString(input.apiBase) ?? normalizeOptionalString(config.remote.platformApiBase) ?? normalizeOptionalString(config.providers.nextclaw?.apiBase) ?? void 0,
67
+ sessionId: input.sessionId
68
+ });
69
+ if (result.status !== "authorized") return result;
70
+ return {
71
+ status: "authorized",
72
+ email: result.email,
73
+ role: result.role
74
+ };
75
+ };
76
+ logout = () => {
77
+ this.deps.platformAuthCommands.logout();
78
+ return this.getStatus();
79
+ };
80
+ updateSettings = (input) => {
81
+ this.deps.remoteCommands.updateConfig({
82
+ enabled: input.enabled,
83
+ apiBase: input.platformApiBase,
84
+ name: input.deviceName
85
+ });
86
+ return this.getStatus();
87
+ };
88
+ runDoctor = async () => {
89
+ const report = await this.deps.remoteCommands.getDoctorView();
90
+ return {
91
+ generatedAt: report.generatedAt,
92
+ checks: report.checks,
93
+ snapshot: {
94
+ configuredEnabled: report.snapshot.configuredEnabled,
95
+ runtime: toRemoteRuntimeView(report.snapshot.runtime)
96
+ }
97
+ };
98
+ };
99
+ controlService = async (action) => {
100
+ return controlRemoteService(action, this.deps);
101
+ };
102
+ readAccountView = (params) => {
103
+ const { apiBase, platformBase, token } = params;
104
+ const tokenState = readPlatformSessionTokenState(token);
105
+ if (!tokenState.valid) return {
106
+ loggedIn: false,
107
+ apiBase,
108
+ platformBase
109
+ };
110
+ const payload = tokenState.payload;
111
+ return {
112
+ loggedIn: true,
113
+ email: typeof payload?.email === "string" ? payload.email : void 0,
114
+ username: typeof payload?.username === "string" ? payload.username : void 0,
115
+ role: typeof payload?.role === "string" ? payload.role : void 0,
116
+ apiBase,
117
+ platformBase
118
+ };
119
+ };
120
+ updateProfile = async (input) => {
121
+ await this.deps.platformAuthCommands.updateProfile({ username: input.username });
122
+ return this.getStatus();
123
+ };
124
+ };
125
+ //#endregion
126
+ export { RemoteAccessHost };
127
+
128
+ //# sourceMappingURL=remote-access-host.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-access-host.service.js","names":[],"sources":["../../../src/services/remote/remote-access-host.service.ts"],"sourcesContent":["import { getConfigPath, loadConfig } from \"@nextclaw/core\";\nimport { readPlatformSessionTokenState } from \"@nextclaw/remote\";\nimport type {\n RemoteAccessView,\n RemoteAccountView,\n RemoteBrowserAuthPollRequest,\n RemoteBrowserAuthPollResult,\n RemoteBrowserAuthStartRequest,\n RemoteBrowserAuthStartResult,\n RemoteDoctorView,\n RemoteRuntimeView,\n RemoteServiceAction,\n RemoteServiceActionResult,\n RemoteSettingsUpdateRequest,\n UiRemoteAccessHost\n} from \"@nextclaw/server\";\nimport type { PlatformAuthCommands } from \"@nextclaw-service/controllers/commands/platform-auth-command.controller.js\";\nimport type { RemoteCommands } from \"@nextclaw-service/controllers/commands/remote-command.controller.js\";\nimport {\n controlRemoteService,\n resolveRemoteServiceView,\n type RemoteAccessHostServiceCommands,\n type RemoteRuntimeController\n} from \"./remote-service-control.service.js\";\n\nfunction normalizeOptionalString(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction toRemoteRuntimeView(runtime: ReturnType<RemoteCommands[\"getStatusView\"]>[\"runtime\"]): RemoteRuntimeView | null {\n if (!runtime) {\n return null;\n }\n return {\n enabled: runtime.enabled,\n mode: runtime.mode,\n state: runtime.state,\n deviceId: runtime.deviceId,\n deviceName: runtime.deviceName,\n platformBase: runtime.platformBase,\n localOrigin: runtime.localOrigin,\n lastConnectedAt: runtime.lastConnectedAt,\n lastError: runtime.lastError,\n updatedAt: runtime.updatedAt\n };\n}\n\nexport class RemoteAccessHost implements UiRemoteAccessHost {\n constructor(\n private readonly deps: {\n serviceCommands: RemoteAccessHostServiceCommands;\n requestManagedServiceRestart: (options?: { uiPort?: number; reason?: string }) => Promise<void>;\n remoteCommands: RemoteCommands;\n platformAuthCommands: PlatformAuthCommands;\n currentUi?: {\n host: string;\n port: number;\n };\n remoteRuntimeController?: RemoteRuntimeController | null;\n }\n ) {}\n\n getStatus = (): RemoteAccessView => {\n const config = loadConfig(getConfigPath());\n const status = this.deps.remoteCommands.getStatusView();\n const account = this.readAccountView({\n token: normalizeOptionalString(config.providers.nextclaw?.apiKey),\n apiBase: normalizeOptionalString(config.providers.nextclaw?.apiBase),\n platformBase: status.platformBase\n });\n return {\n account,\n settings: {\n enabled: config.remote.enabled,\n deviceName: config.remote.deviceName,\n platformApiBase: config.remote.platformApiBase\n },\n service: resolveRemoteServiceView(this.deps.currentUi),\n localOrigin: status.localOrigin,\n configuredEnabled: status.configuredEnabled,\n platformBase: status.platformBase,\n runtime: toRemoteRuntimeView(status.runtime)\n };\n };\n\n login = async (input: {\n email: string;\n password: string;\n apiBase?: string;\n }): Promise<RemoteAccessView> => {\n await this.deps.platformAuthCommands.loginResult(input);\n return this.getStatus();\n };\n\n startBrowserAuth = async (input: RemoteBrowserAuthStartRequest): Promise<RemoteBrowserAuthStartResult> => {\n const result = await this.deps.platformAuthCommands.startBrowserAuth({\n apiBase: input.apiBase\n });\n return {\n sessionId: result.sessionId,\n verificationUri: result.verificationUri,\n expiresAt: result.expiresAt,\n intervalMs: result.intervalMs\n };\n };\n\n pollBrowserAuth = async (input: RemoteBrowserAuthPollRequest): Promise<RemoteBrowserAuthPollResult> => {\n const config = loadConfig(getConfigPath());\n const result = await this.deps.platformAuthCommands.pollBrowserAuth({\n apiBase: normalizeOptionalString(input.apiBase)\n ?? normalizeOptionalString(config.remote.platformApiBase)\n ?? normalizeOptionalString(config.providers.nextclaw?.apiBase)\n ?? undefined,\n sessionId: input.sessionId\n });\n if (result.status !== \"authorized\") {\n return result;\n }\n return {\n status: \"authorized\",\n email: result.email,\n role: result.role\n };\n };\n\n logout = (): RemoteAccessView => {\n this.deps.platformAuthCommands.logout();\n return this.getStatus();\n };\n\n updateSettings = (input: RemoteSettingsUpdateRequest): RemoteAccessView => {\n this.deps.remoteCommands.updateConfig({\n enabled: input.enabled,\n apiBase: input.platformApiBase,\n name: input.deviceName\n });\n return this.getStatus();\n };\n\n runDoctor = async (): Promise<RemoteDoctorView> => {\n const report = await this.deps.remoteCommands.getDoctorView();\n return {\n generatedAt: report.generatedAt,\n checks: report.checks,\n snapshot: {\n configuredEnabled: report.snapshot.configuredEnabled,\n runtime: toRemoteRuntimeView(report.snapshot.runtime)\n }\n };\n };\n\n controlService = async (action: RemoteServiceAction): Promise<RemoteServiceActionResult> => {\n return controlRemoteService(action, this.deps);\n };\n\n private readAccountView = (params: {\n token: string | null;\n apiBase: string | null;\n platformBase: string | null;\n }): RemoteAccountView => {\n const { apiBase, platformBase, token } = params;\n const tokenState = readPlatformSessionTokenState(token);\n if (!tokenState.valid) {\n return {\n loggedIn: false,\n apiBase,\n platformBase\n };\n }\n const payload = tokenState.payload;\n const email = typeof payload?.email === \"string\" ? payload.email : undefined;\n const username = typeof payload?.username === \"string\" ? payload.username : undefined;\n const role = typeof payload?.role === \"string\" ? payload.role : undefined;\n return {\n loggedIn: true,\n email,\n username,\n role,\n apiBase,\n platformBase\n };\n };\n\n updateProfile = async (input: { username: string }): Promise<RemoteAccessView> => {\n await this.deps.platformAuthCommands.updateProfile({\n username: input.username\n });\n return this.getStatus();\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { resolveUiConfig } from "../../utils/cli.utils.js";
2
+ import { RemoteServiceAction, RemoteServiceActionResult, RemoteServiceView } from "@nextclaw/server";
3
+
4
+ //#region src/services/remote/remote-service-control.service.d.ts
5
+ type RemoteAccessHostServiceCommands = {
6
+ startService: (options: {
7
+ uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>;
8
+ open: boolean;
9
+ }) => Promise<void>;
10
+ stopService: () => Promise<void>;
11
+ };
12
+ type RemoteRuntimeController = {
13
+ start: () => Promise<void> | null;
14
+ stop: () => Promise<void>;
15
+ restart: () => Promise<void>;
16
+ };
17
+ type CurrentUi = {
18
+ host: string;
19
+ port: number;
20
+ };
21
+ type RemoteServiceControlDeps = {
22
+ serviceCommands: RemoteAccessHostServiceCommands;
23
+ requestManagedServiceRestart: (options?: {
24
+ uiPort?: number;
25
+ reason?: string;
26
+ }) => Promise<void>;
27
+ currentUi?: CurrentUi;
28
+ remoteRuntimeController?: RemoteRuntimeController | null;
29
+ };
30
+ declare function resolveRemoteServiceView(currentUi?: CurrentUi): RemoteServiceView;
31
+ declare function controlRemoteService(action: RemoteServiceAction, deps: RemoteServiceControlDeps): Promise<RemoteServiceActionResult>;
32
+ //#endregion
33
+ export { RemoteAccessHostServiceCommands, RemoteRuntimeController, controlRemoteService, resolveRemoteServiceView };
34
+ //# sourceMappingURL=remote-service-control.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-service-control.service.d.ts","names":[],"sources":["../../../src/services/remote/remote-service-control.service.ts"],"mappings":";;;;KAOY,+BAAA;EACV,YAAA,GAAe,OAAA;IAAW,WAAA,EAAa,OAAA,CAAQ,UAAA,QAAkB,eAAA;IAAmB,IAAA;EAAA,MAAoB,OAAA;EACxG,WAAA,QAAmB,OAAA;AAAA;AAAA,KAGT,uBAAA;EACV,KAAA,QAAa,OAAA;EACb,IAAA,QAAY,OAAA;EACZ,OAAA,QAAe,OAAA;AAAA;AAAA,KAGZ,SAAA;EACH,IAAA;EACA,IAAA;AAAA;AAAA,KAGG,wBAAA;EACH,eAAA,EAAiB,+BAAA;EACjB,4BAAA,GAA+B,OAAA;IAAY,MAAA;IAAiB,MAAA;EAAA,MAAsB,OAAA;EAClF,SAAA,GAAY,SAAA;EACZ,uBAAA,GAA0B,uBAAA;AAAA;AAAA,iBA6MZ,wBAAA,CAAyB,SAAA,GAAY,SAAA,GAAY,iBAAA;AAAA,iBAI3C,oBAAA,CACpB,MAAA,EAAQ,mBAAA,EACR,IAAA,EAAM,wBAAA,GACL,OAAA,CAAQ,yBAAA"}
@@ -0,0 +1,247 @@
1
+ import { resolveUiApiBase, resolveUiConfig } from "../../utils/cli.utils.js";
2
+ import { managedServiceStateStore } from "../../stores/managed-service-state.store.js";
3
+ import { ManagedServiceSupervisor } from "../runtime/managed-service-supervisor.service.js";
4
+ import { getConfigPath, loadConfig } from "@nextclaw/core";
5
+ import { spawn } from "node:child_process";
6
+ //#region src/services/remote/remote-service-control.service.ts
7
+ const FORCED_PUBLIC_UI_HOST = "0.0.0.0";
8
+ var RemoteServiceControlService = class {
9
+ managedServiceSupervisor = new ManagedServiceSupervisor();
10
+ resolveView = (currentUi) => {
11
+ if (currentUi) return {
12
+ running: true,
13
+ currentProcess: true,
14
+ pid: process.pid,
15
+ uiUrl: resolveUiApiBase(currentUi.host, currentUi.port),
16
+ uiPort: currentUi.port
17
+ };
18
+ const serviceState = managedServiceStateStore.read();
19
+ const liveness = this.managedServiceSupervisor.resolveStateLiveness(serviceState);
20
+ const serviceRunning = Boolean(serviceState && liveness.running);
21
+ return {
22
+ running: serviceRunning,
23
+ currentProcess: Boolean(serviceRunning && serviceState?.pid === process.pid),
24
+ ...serviceState?.pid ? { pid: serviceState.pid } : {},
25
+ ...serviceState?.uiUrl ? { uiUrl: serviceState.uiUrl } : {},
26
+ ...typeof serviceState?.uiPort === "number" ? { uiPort: serviceState.uiPort } : {}
27
+ };
28
+ };
29
+ control = async (action, deps) => {
30
+ if (deps.remoteRuntimeController) return this.controlCurrentProcessRuntime(action, deps.remoteRuntimeController);
31
+ return this.controlManagedService(action, deps);
32
+ };
33
+ controlCurrentProcessRuntime = async (action, controller) => {
34
+ if (action === "start") {
35
+ await controller.start();
36
+ return {
37
+ accepted: true,
38
+ action,
39
+ message: "Remote runtime started."
40
+ };
41
+ }
42
+ if (action === "stop") {
43
+ await controller.stop();
44
+ return {
45
+ accepted: true,
46
+ action,
47
+ message: "Remote runtime stopped."
48
+ };
49
+ }
50
+ await controller.restart();
51
+ return {
52
+ accepted: true,
53
+ action,
54
+ message: "Remote runtime restarted."
55
+ };
56
+ };
57
+ controlManagedService = async (action, deps) => {
58
+ const serviceState = this.resolveManagedServiceControlState();
59
+ const uiOverrides = this.resolveManagedUiOverrides();
60
+ if (action === "start") return this.startManagedService(action, deps, serviceState, uiOverrides);
61
+ if (!serviceState.running) return this.controlStoppedManagedService(action, deps, serviceState, uiOverrides);
62
+ if (serviceState.currentProcess) return this.controlCurrentManagedProcess(action, deps, uiOverrides);
63
+ return this.controlExternalManagedProcess(action, deps, uiOverrides);
64
+ };
65
+ resolveManagedServiceControlState = () => {
66
+ const state = managedServiceStateStore.read();
67
+ const liveness = this.managedServiceSupervisor.resolveStateLiveness(state);
68
+ const running = Boolean(state && liveness.running);
69
+ return {
70
+ currentProcess: Boolean(running && state?.pid === process.pid),
71
+ recordedProcessExists: Boolean(state && liveness.processExists),
72
+ running
73
+ };
74
+ };
75
+ startManagedService = async (action, deps, serviceState, uiOverrides) => {
76
+ if (serviceState.running) return {
77
+ accepted: true,
78
+ action,
79
+ message: serviceState.currentProcess ? "Managed service is already running for this UI." : "Managed service is already running."
80
+ };
81
+ if (serviceState.recordedProcessExists) return this.controlStaleManagedServiceProcess(action, deps, uiOverrides);
82
+ await deps.serviceCommands.startService({
83
+ uiOverrides,
84
+ open: false
85
+ });
86
+ return {
87
+ accepted: true,
88
+ action,
89
+ message: "Managed service started."
90
+ };
91
+ };
92
+ controlStoppedManagedService = async (action, deps, serviceState, uiOverrides) => {
93
+ if (serviceState.recordedProcessExists) return this.controlStaleManagedServiceProcess(action, deps, uiOverrides);
94
+ if (action === "restart") {
95
+ await deps.serviceCommands.startService({
96
+ uiOverrides,
97
+ open: false
98
+ });
99
+ return {
100
+ accepted: true,
101
+ action,
102
+ message: "Managed service was not running and has been started."
103
+ };
104
+ }
105
+ return {
106
+ accepted: true,
107
+ action,
108
+ message: "No managed service is currently running."
109
+ };
110
+ };
111
+ controlStaleManagedServiceProcess = async (action, deps, uiOverrides) => {
112
+ if (action === "stop") {
113
+ await deps.serviceCommands.stopService();
114
+ return {
115
+ accepted: true,
116
+ action,
117
+ message: "Stale managed service process stopped."
118
+ };
119
+ }
120
+ if (action === "restart") {
121
+ await deps.serviceCommands.stopService();
122
+ await deps.serviceCommands.startService({
123
+ uiOverrides,
124
+ open: false
125
+ });
126
+ return {
127
+ accepted: true,
128
+ action,
129
+ message: "Stale managed service process replaced."
130
+ };
131
+ }
132
+ await deps.serviceCommands.stopService();
133
+ await deps.serviceCommands.startService({
134
+ uiOverrides,
135
+ open: false
136
+ });
137
+ return {
138
+ accepted: true,
139
+ action,
140
+ message: "Stale managed service process replaced."
141
+ };
142
+ };
143
+ controlCurrentManagedProcess = async (action, deps, uiOverrides) => {
144
+ if (action === "restart") await deps.requestManagedServiceRestart({ uiPort: uiOverrides.port ?? 55667 });
145
+ else launchManagedSelfControl();
146
+ return {
147
+ accepted: true,
148
+ action,
149
+ message: action === "restart" ? "Restart scheduled. This page may disconnect for a few seconds." : "Stop scheduled. This page will disconnect shortly."
150
+ };
151
+ };
152
+ controlExternalManagedProcess = async (action, deps, uiOverrides) => {
153
+ if (action === "stop") {
154
+ await deps.serviceCommands.stopService();
155
+ return {
156
+ accepted: true,
157
+ action,
158
+ message: "Managed service stopped."
159
+ };
160
+ }
161
+ await deps.serviceCommands.stopService();
162
+ await deps.serviceCommands.startService({
163
+ uiOverrides,
164
+ open: false
165
+ });
166
+ return {
167
+ accepted: true,
168
+ action,
169
+ message: "Managed service restarted."
170
+ };
171
+ };
172
+ resolveManagedUiOverrides = () => {
173
+ return {
174
+ enabled: true,
175
+ host: FORCED_PUBLIC_UI_HOST,
176
+ open: false,
177
+ port: resolveUiConfig(loadConfig(getConfigPath()), {
178
+ enabled: true,
179
+ host: FORCED_PUBLIC_UI_HOST,
180
+ open: false
181
+ }).port
182
+ };
183
+ };
184
+ };
185
+ const remoteServiceControlService = new RemoteServiceControlService();
186
+ function resolveRemoteServiceView(currentUi) {
187
+ return remoteServiceControlService.resolveView(currentUi);
188
+ }
189
+ async function controlRemoteService(action, deps) {
190
+ return remoteServiceControlService.control(action, deps);
191
+ }
192
+ function launchManagedSelfControl(params = {}) {
193
+ const script = [
194
+ "const { spawn } = require(\"node:child_process\");",
195
+ "const { rmSync } = require(\"node:fs\");",
196
+ `const parentPid = ${process.pid};`,
197
+ `const serviceStatePath = ${JSON.stringify(managedServiceStateStore.path)};`,
198
+ `const command = ${JSON.stringify(params.command ?? null)};`,
199
+ `const args = ${JSON.stringify(params.args ?? [])};`,
200
+ `const cwd = ${JSON.stringify(process.cwd())};`,
201
+ "const env = process.env;",
202
+ "function isRunning(pid) {",
203
+ " try {",
204
+ " process.kill(pid, 0);",
205
+ " return true;",
206
+ " } catch {",
207
+ " return false;",
208
+ " }",
209
+ "}",
210
+ "setTimeout(() => {",
211
+ " try {",
212
+ " process.kill(parentPid, 'SIGTERM');",
213
+ " } catch {}",
214
+ "}, 150);",
215
+ "const startedAt = Date.now();",
216
+ "const maxWaitMs = 30000;",
217
+ "const timer = setInterval(() => {",
218
+ " if (isRunning(parentPid)) {",
219
+ " if (Date.now() - startedAt > maxWaitMs) {",
220
+ " try {",
221
+ " process.kill(parentPid, 'SIGKILL');",
222
+ " } catch {}",
223
+ " }",
224
+ " return;",
225
+ " }",
226
+ " clearInterval(timer);",
227
+ " try {",
228
+ " rmSync(serviceStatePath, { force: true });",
229
+ " } catch {}",
230
+ " if (command) {",
231
+ " const child = spawn(command, args, { detached: true, stdio: 'ignore', cwd, env });",
232
+ " child.unref();",
233
+ " }",
234
+ " process.exit(0);",
235
+ "}, 250);"
236
+ ].join("");
237
+ spawn(process.execPath, ["-e", script], {
238
+ detached: true,
239
+ stdio: "ignore",
240
+ env: process.env,
241
+ cwd: process.cwd()
242
+ }).unref();
243
+ }
244
+ //#endregion
245
+ export { controlRemoteService, resolveRemoteServiceView };
246
+
247
+ //# sourceMappingURL=remote-service-control.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-service-control.service.js","names":[],"sources":["../../../src/services/remote/remote-service-control.service.ts"],"sourcesContent":["import { getConfigPath, loadConfig } from \"@nextclaw/core\";\nimport type { RemoteServiceAction, RemoteServiceActionResult, RemoteServiceView } from \"@nextclaw/server\";\nimport { spawn } from \"node:child_process\";\nimport { resolveUiApiBase, resolveUiConfig } from \"@nextclaw-service/utils/cli.utils.js\";\nimport { managedServiceStateStore } from \"@nextclaw-service/stores/managed-service-state.store.js\";\nimport { ManagedServiceSupervisor } from \"@nextclaw-service/services/runtime/managed-service-supervisor.service.js\";\n\nexport type RemoteAccessHostServiceCommands = {\n startService: (options: { uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>; open: boolean }) => Promise<void>;\n stopService: () => Promise<void>;\n};\n\nexport type RemoteRuntimeController = {\n start: () => Promise<void> | null;\n stop: () => Promise<void>;\n restart: () => Promise<void>;\n};\n\ntype CurrentUi = {\n host: string;\n port: number;\n};\n\ntype RemoteServiceControlDeps = {\n serviceCommands: RemoteAccessHostServiceCommands;\n requestManagedServiceRestart: (options?: { uiPort?: number; reason?: string }) => Promise<void>;\n currentUi?: CurrentUi;\n remoteRuntimeController?: RemoteRuntimeController | null;\n};\n\nconst FORCED_PUBLIC_UI_HOST = \"0.0.0.0\";\ntype ManagedServiceControlState = {\n currentProcess: boolean;\n recordedProcessExists: boolean;\n running: boolean;\n};\n\nclass RemoteServiceControlService {\n private readonly managedServiceSupervisor = new ManagedServiceSupervisor();\n\n readonly resolveView = (currentUi?: CurrentUi): RemoteServiceView => {\n if (currentUi) {\n return {\n running: true,\n currentProcess: true,\n pid: process.pid,\n uiUrl: resolveUiApiBase(currentUi.host, currentUi.port),\n uiPort: currentUi.port\n };\n }\n\n const serviceState = managedServiceStateStore.read();\n const liveness = this.managedServiceSupervisor.resolveStateLiveness(serviceState);\n const serviceRunning = Boolean(serviceState && liveness.running);\n return {\n running: serviceRunning,\n currentProcess: Boolean(serviceRunning && serviceState?.pid === process.pid),\n ...(serviceState?.pid ? { pid: serviceState.pid } : {}),\n ...(serviceState?.uiUrl ? { uiUrl: serviceState.uiUrl } : {}),\n ...(typeof serviceState?.uiPort === \"number\" ? { uiPort: serviceState.uiPort } : {})\n };\n };\n\n readonly control = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps\n ): Promise<RemoteServiceActionResult> => {\n if (deps.remoteRuntimeController) {\n return this.controlCurrentProcessRuntime(action, deps.remoteRuntimeController);\n }\n\n return this.controlManagedService(action, deps);\n };\n\n private readonly controlCurrentProcessRuntime = async (\n action: RemoteServiceAction,\n controller: RemoteRuntimeController\n ): Promise<RemoteServiceActionResult> => {\n if (action === \"start\") {\n await controller.start();\n return { accepted: true, action, message: \"Remote runtime started.\" };\n }\n if (action === \"stop\") {\n await controller.stop();\n return { accepted: true, action, message: \"Remote runtime stopped.\" };\n }\n await controller.restart();\n return { accepted: true, action, message: \"Remote runtime restarted.\" };\n };\n\n private readonly controlManagedService = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps\n ): Promise<RemoteServiceActionResult> => {\n const serviceState = this.resolveManagedServiceControlState();\n const uiOverrides = this.resolveManagedUiOverrides();\n\n if (action === \"start\") {\n return this.startManagedService(action, deps, serviceState, uiOverrides);\n }\n if (!serviceState.running) {\n return this.controlStoppedManagedService(action, deps, serviceState, uiOverrides);\n }\n if (serviceState.currentProcess) {\n return this.controlCurrentManagedProcess(action, deps, uiOverrides);\n }\n return this.controlExternalManagedProcess(action, deps, uiOverrides);\n };\n\n private readonly resolveManagedServiceControlState = (): ManagedServiceControlState => {\n const state = managedServiceStateStore.read();\n const liveness = this.managedServiceSupervisor.resolveStateLiveness(state);\n const running = Boolean(state && liveness.running);\n return {\n currentProcess: Boolean(running && state?.pid === process.pid),\n recordedProcessExists: Boolean(state && liveness.processExists),\n running\n };\n };\n\n private readonly startManagedService = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps,\n serviceState: ManagedServiceControlState,\n uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>\n ): Promise<RemoteServiceActionResult> => {\n if (serviceState.running) {\n return {\n accepted: true,\n action,\n message: serviceState.currentProcess ? \"Managed service is already running for this UI.\" : \"Managed service is already running.\"\n };\n }\n if (serviceState.recordedProcessExists) {\n return this.controlStaleManagedServiceProcess(action, deps, uiOverrides);\n }\n await deps.serviceCommands.startService({ uiOverrides, open: false });\n return { accepted: true, action, message: \"Managed service started.\" };\n };\n\n private readonly controlStoppedManagedService = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps,\n serviceState: ManagedServiceControlState,\n uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>\n ): Promise<RemoteServiceActionResult> => {\n if (serviceState.recordedProcessExists) {\n return this.controlStaleManagedServiceProcess(action, deps, uiOverrides);\n }\n if (action === \"restart\") {\n await deps.serviceCommands.startService({ uiOverrides, open: false });\n return {\n accepted: true,\n action,\n message: \"Managed service was not running and has been started.\"\n };\n }\n return { accepted: true, action, message: \"No managed service is currently running.\" };\n };\n\n private readonly controlStaleManagedServiceProcess = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps,\n uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>\n ): Promise<RemoteServiceActionResult> => {\n if (action === \"stop\") {\n await deps.serviceCommands.stopService();\n return { accepted: true, action, message: \"Stale managed service process stopped.\" };\n }\n if (action === \"restart\") {\n await deps.serviceCommands.stopService();\n await deps.serviceCommands.startService({ uiOverrides, open: false });\n return { accepted: true, action, message: \"Stale managed service process replaced.\" };\n }\n await deps.serviceCommands.stopService();\n await deps.serviceCommands.startService({ uiOverrides, open: false });\n return { accepted: true, action, message: \"Stale managed service process replaced.\" };\n };\n\n private readonly controlCurrentManagedProcess = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps,\n uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>\n ): Promise<RemoteServiceActionResult> => {\n if (action === \"restart\") {\n await deps.requestManagedServiceRestart({ uiPort: uiOverrides.port ?? 55667 });\n } else {\n launchManagedSelfControl();\n }\n return {\n accepted: true,\n action,\n message:\n action === \"restart\"\n ? \"Restart scheduled. This page may disconnect for a few seconds.\"\n : \"Stop scheduled. This page will disconnect shortly.\"\n };\n };\n\n private readonly controlExternalManagedProcess = async (\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps,\n uiOverrides: Partial<ReturnType<typeof resolveUiConfig>>\n ): Promise<RemoteServiceActionResult> => {\n if (action === \"stop\") {\n await deps.serviceCommands.stopService();\n return { accepted: true, action, message: \"Managed service stopped.\" };\n }\n\n await deps.serviceCommands.stopService();\n await deps.serviceCommands.startService({ uiOverrides, open: false });\n return { accepted: true, action, message: \"Managed service restarted.\" };\n };\n\n private readonly resolveManagedUiOverrides = (): Partial<ReturnType<typeof resolveUiConfig>> => {\n const config = loadConfig(getConfigPath());\n const resolved = resolveUiConfig(config, {\n enabled: true,\n host: FORCED_PUBLIC_UI_HOST,\n open: false\n });\n return {\n enabled: true,\n host: FORCED_PUBLIC_UI_HOST,\n open: false,\n port: resolved.port\n };\n };\n}\n\nconst remoteServiceControlService = new RemoteServiceControlService();\n\nexport function resolveRemoteServiceView(currentUi?: CurrentUi): RemoteServiceView {\n return remoteServiceControlService.resolveView(currentUi);\n}\n\nexport async function controlRemoteService(\n action: RemoteServiceAction,\n deps: RemoteServiceControlDeps\n): Promise<RemoteServiceActionResult> {\n return remoteServiceControlService.control(action, deps);\n}\n\nfunction launchManagedSelfControl(params: {\n command?: string;\n args?: string[];\n} = {}): void {\n const script = [\n 'const { spawn } = require(\"node:child_process\");',\n 'const { rmSync } = require(\"node:fs\");',\n `const parentPid = ${process.pid};`,\n `const serviceStatePath = ${JSON.stringify(managedServiceStateStore.path)};`,\n `const command = ${JSON.stringify(params.command ?? null)};`,\n `const args = ${JSON.stringify(params.args ?? [])};`,\n `const cwd = ${JSON.stringify(process.cwd())};`,\n \"const env = process.env;\",\n \"function isRunning(pid) {\",\n \" try {\",\n \" process.kill(pid, 0);\",\n \" return true;\",\n \" } catch {\",\n \" return false;\",\n \" }\",\n \"}\",\n \"setTimeout(() => {\",\n \" try {\",\n \" process.kill(parentPid, 'SIGTERM');\",\n \" } catch {}\",\n \"}, 150);\",\n \"const startedAt = Date.now();\",\n \"const maxWaitMs = 30000;\",\n \"const timer = setInterval(() => {\",\n \" if (isRunning(parentPid)) {\",\n \" if (Date.now() - startedAt > maxWaitMs) {\",\n \" try {\",\n \" process.kill(parentPid, 'SIGKILL');\",\n \" } catch {}\",\n \" }\",\n \" return;\",\n \" }\",\n \" clearInterval(timer);\",\n \" try {\",\n \" rmSync(serviceStatePath, { force: true });\",\n \" } catch {}\",\n \" if (command) {\",\n \" const child = spawn(command, args, { detached: true, stdio: 'ignore', cwd, env });\",\n \" child.unref();\",\n \" }\",\n \" process.exit(0);\",\n \"}, 250);\"\n ].join(\"\");\n const helper = spawn(process.execPath, [\"-e\", script], {\n detached: true,\n stdio: \"ignore\",\n env: process.env,\n cwd: process.cwd()\n });\n helper.unref();\n}\n"],"mappings":";;;;;;AA8BA,MAAM,wBAAwB;AAO9B,IAAM,8BAAN,MAAkC;CAChC,2BAA4C,IAAI,0BAA0B;CAE1E,eAAwB,cAA6C;AACnE,MAAI,UACF,QAAO;GACL,SAAS;GACT,gBAAgB;GAChB,KAAK,QAAQ;GACb,OAAO,iBAAiB,UAAU,MAAM,UAAU,KAAK;GACvD,QAAQ,UAAU;GACnB;EAGH,MAAM,eAAe,yBAAyB,MAAM;EACpD,MAAM,WAAW,KAAK,yBAAyB,qBAAqB,aAAa;EACjF,MAAM,iBAAiB,QAAQ,gBAAgB,SAAS,QAAQ;AAChE,SAAO;GACL,SAAS;GACT,gBAAgB,QAAQ,kBAAkB,cAAc,QAAQ,QAAQ,IAAI;GAC5E,GAAI,cAAc,MAAM,EAAE,KAAK,aAAa,KAAK,GAAG,EAAE;GACtD,GAAI,cAAc,QAAQ,EAAE,OAAO,aAAa,OAAO,GAAG,EAAE;GAC5D,GAAI,OAAO,cAAc,WAAW,WAAW,EAAE,QAAQ,aAAa,QAAQ,GAAG,EAAE;GACpF;;CAGH,UAAmB,OACjB,QACA,SACuC;AACvC,MAAI,KAAK,wBACP,QAAO,KAAK,6BAA6B,QAAQ,KAAK,wBAAwB;AAGhF,SAAO,KAAK,sBAAsB,QAAQ,KAAK;;CAGjD,+BAAgD,OAC9C,QACA,eACuC;AACvC,MAAI,WAAW,SAAS;AACtB,SAAM,WAAW,OAAO;AACxB,UAAO;IAAE,UAAU;IAAM;IAAQ,SAAS;IAA2B;;AAEvE,MAAI,WAAW,QAAQ;AACrB,SAAM,WAAW,MAAM;AACvB,UAAO;IAAE,UAAU;IAAM;IAAQ,SAAS;IAA2B;;AAEvE,QAAM,WAAW,SAAS;AAC1B,SAAO;GAAE,UAAU;GAAM;GAAQ,SAAS;GAA6B;;CAGzE,wBAAyC,OACvC,QACA,SACuC;EACvC,MAAM,eAAe,KAAK,mCAAmC;EAC7D,MAAM,cAAc,KAAK,2BAA2B;AAEpD,MAAI,WAAW,QACb,QAAO,KAAK,oBAAoB,QAAQ,MAAM,cAAc,YAAY;AAE1E,MAAI,CAAC,aAAa,QAChB,QAAO,KAAK,6BAA6B,QAAQ,MAAM,cAAc,YAAY;AAEnF,MAAI,aAAa,eACf,QAAO,KAAK,6BAA6B,QAAQ,MAAM,YAAY;AAErE,SAAO,KAAK,8BAA8B,QAAQ,MAAM,YAAY;;CAGtE,0CAAuF;EACrF,MAAM,QAAQ,yBAAyB,MAAM;EAC7C,MAAM,WAAW,KAAK,yBAAyB,qBAAqB,MAAM;EAC1E,MAAM,UAAU,QAAQ,SAAS,SAAS,QAAQ;AAClD,SAAO;GACL,gBAAgB,QAAQ,WAAW,OAAO,QAAQ,QAAQ,IAAI;GAC9D,uBAAuB,QAAQ,SAAS,SAAS,cAAc;GAC/D;GACD;;CAGH,sBAAuC,OACrC,QACA,MACA,cACA,gBACuC;AACvC,MAAI,aAAa,QACf,QAAO;GACL,UAAU;GACV;GACA,SAAS,aAAa,iBAAiB,oDAAoD;GAC5F;AAEH,MAAI,aAAa,sBACf,QAAO,KAAK,kCAAkC,QAAQ,MAAM,YAAY;AAE1E,QAAM,KAAK,gBAAgB,aAAa;GAAE;GAAa,MAAM;GAAO,CAAC;AACrE,SAAO;GAAE,UAAU;GAAM;GAAQ,SAAS;GAA4B;;CAGxE,+BAAgD,OAC9C,QACA,MACA,cACA,gBACuC;AACvC,MAAI,aAAa,sBACf,QAAO,KAAK,kCAAkC,QAAQ,MAAM,YAAY;AAE1E,MAAI,WAAW,WAAW;AACxB,SAAM,KAAK,gBAAgB,aAAa;IAAE;IAAa,MAAM;IAAO,CAAC;AACrE,UAAO;IACL,UAAU;IACV;IACA,SAAS;IACV;;AAEH,SAAO;GAAE,UAAU;GAAM;GAAQ,SAAS;GAA4C;;CAGxF,oCAAqD,OACnD,QACA,MACA,gBACuC;AACvC,MAAI,WAAW,QAAQ;AACrB,SAAM,KAAK,gBAAgB,aAAa;AACxC,UAAO;IAAE,UAAU;IAAM;IAAQ,SAAS;IAA0C;;AAEtF,MAAI,WAAW,WAAW;AACxB,SAAM,KAAK,gBAAgB,aAAa;AACxC,SAAM,KAAK,gBAAgB,aAAa;IAAE;IAAa,MAAM;IAAO,CAAC;AACrE,UAAO;IAAE,UAAU;IAAM;IAAQ,SAAS;IAA2C;;AAEvF,QAAM,KAAK,gBAAgB,aAAa;AACxC,QAAM,KAAK,gBAAgB,aAAa;GAAE;GAAa,MAAM;GAAO,CAAC;AACrE,SAAO;GAAE,UAAU;GAAM;GAAQ,SAAS;GAA2C;;CAGvF,+BAAgD,OAC9C,QACA,MACA,gBACuC;AACvC,MAAI,WAAW,UACb,OAAM,KAAK,6BAA6B,EAAE,QAAQ,YAAY,QAAQ,OAAO,CAAC;MAE9E,2BAA0B;AAE5B,SAAO;GACL,UAAU;GACV;GACA,SACE,WAAW,YACP,mEACA;GACP;;CAGH,gCAAiD,OAC/C,QACA,MACA,gBACuC;AACvC,MAAI,WAAW,QAAQ;AACrB,SAAM,KAAK,gBAAgB,aAAa;AACxC,UAAO;IAAE,UAAU;IAAM;IAAQ,SAAS;IAA4B;;AAGxE,QAAM,KAAK,gBAAgB,aAAa;AACxC,QAAM,KAAK,gBAAgB,aAAa;GAAE;GAAa,MAAM;GAAO,CAAC;AACrE,SAAO;GAAE,UAAU;GAAM;GAAQ,SAAS;GAA8B;;CAG1E,kCAAgG;AAO9F,SAAO;GACL,SAAS;GACT,MAAM;GACN,MAAM;GACN,MATe,gBADF,WAAW,eAAe,CAAC,EACD;IACvC,SAAS;IACT,MAAM;IACN,MAAM;IACP,CAAC,CAKe;GAChB;;;AAIL,MAAM,8BAA8B,IAAI,6BAA6B;AAErE,SAAgB,yBAAyB,WAA0C;AACjF,QAAO,4BAA4B,YAAY,UAAU;;AAG3D,eAAsB,qBACpB,QACA,MACoC;AACpC,QAAO,4BAA4B,QAAQ,QAAQ,KAAK;;AAG1D,SAAS,yBAAyB,SAG9B,EAAE,EAAQ;CACZ,MAAM,SAAS;EACb;EACA;EACA,qBAAqB,QAAQ,IAAI;EACjC,4BAA4B,KAAK,UAAU,yBAAyB,KAAK,CAAC;EAC1E,mBAAmB,KAAK,UAAU,OAAO,WAAW,KAAK,CAAC;EAC1D,gBAAgB,KAAK,UAAU,OAAO,QAAQ,EAAE,CAAC,CAAC;EAClD,eAAe,KAAK,UAAU,QAAQ,KAAK,CAAC,CAAC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,KAAK,GAAG;AACK,OAAM,QAAQ,UAAU,CAAC,MAAM,OAAO,EAAE;EACrD,UAAU;EACV,OAAO;EACP,KAAK,QAAQ;EACb,KAAK,QAAQ,KAAK;EACnB,CAAC,CACK,OAAO"}
@@ -0,0 +1,31 @@
1
+ import { ManagedServiceState } from "../../stores/managed-service-state.store.js";
2
+
3
+ //#region src/services/restart/restart-coordinator.service.d.ts
4
+ type RestartStrategy = "background-service-or-manual" | "background-service-or-exit" | "exit-process";
5
+ type RestartRequest = {
6
+ reason: string;
7
+ strategy?: RestartStrategy;
8
+ delayMs?: number;
9
+ manualMessage?: string;
10
+ };
11
+ type RestartResult = {
12
+ status: "service-restarted" | "restart-in-progress" | "exit-scheduled" | "manual-required";
13
+ message: string;
14
+ };
15
+ type RestartCoordinatorDeps = {
16
+ readServiceState: () => ManagedServiceState | null;
17
+ isProcessRunning: (pid: number) => boolean;
18
+ currentPid: () => number;
19
+ restartBackgroundService: (reason: string) => Promise<boolean>;
20
+ scheduleProcessExit: (delayMs: number, reason: string) => void;
21
+ };
22
+ declare class RestartCoordinator {
23
+ private deps;
24
+ private restartingService;
25
+ private exitScheduled;
26
+ constructor(deps: RestartCoordinatorDeps);
27
+ readonly requestRestart: (request: RestartRequest) => Promise<RestartResult>;
28
+ }
29
+ //#endregion
30
+ export { RestartCoordinator, RestartRequest, RestartResult, RestartStrategy };
31
+ //# sourceMappingURL=restart-coordinator.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart-coordinator.service.d.ts","names":[],"sources":["../../../src/services/restart/restart-coordinator.service.ts"],"mappings":";;;KAEY,eAAA;AAAA,KAEA,cAAA;EACV,MAAA;EACA,QAAA,GAAW,eAAA;EACX,OAAA;EACA,aAAA;AAAA;AAAA,KAGU,aAAA;EACV,MAAA;EACA,OAAA;AAAA;AAAA,KAGG,sBAAA;EACH,gBAAA,QAAwB,mBAAA;EACxB,gBAAA,GAAmB,GAAA;EACnB,UAAA;EACA,wBAAA,GAA2B,MAAA,aAAmB,OAAA;EAC9C,mBAAA,GAAsB,OAAA,UAAiB,MAAA;AAAA;AAAA,cAG5B,kBAAA;EAAA,QAIS,IAAA;EAAA,QAHZ,iBAAA;EAAA,QACA,aAAA;cAEY,IAAA,EAAM,sBAAA;EAAA,SAEjB,cAAA,GAAwB,OAAA,EAAS,cAAA,KAAiB,OAAA,CAAQ,aAAA;AAAA"}
@@ -0,0 +1,53 @@
1
+ //#region src/services/restart/restart-coordinator.service.ts
2
+ var RestartCoordinator = class {
3
+ restartingService = false;
4
+ exitScheduled = false;
5
+ constructor(deps) {
6
+ this.deps = deps;
7
+ }
8
+ requestRestart = async (request) => {
9
+ const reason = request.reason.trim() || "config changed";
10
+ const strategy = request.strategy ?? "background-service-or-manual";
11
+ if (strategy !== "exit-process") {
12
+ const state = this.deps.readServiceState();
13
+ const serviceRunning = Boolean(state && this.deps.isProcessRunning(state.pid));
14
+ const managedByCurrentProcess = Boolean(state && state.pid === this.deps.currentPid());
15
+ if (serviceRunning && !managedByCurrentProcess) {
16
+ if (this.restartingService) return {
17
+ status: "restart-in-progress",
18
+ message: "Restart already in progress; skipping duplicate request."
19
+ };
20
+ this.restartingService = true;
21
+ try {
22
+ if (await this.deps.restartBackgroundService(reason)) return {
23
+ status: "service-restarted",
24
+ message: `Restarted background service to apply changes (${reason}).`
25
+ };
26
+ } finally {
27
+ this.restartingService = false;
28
+ }
29
+ }
30
+ }
31
+ if (strategy === "background-service-or-exit" || strategy === "exit-process") {
32
+ if (this.exitScheduled) return {
33
+ status: "exit-scheduled",
34
+ message: "Restart already scheduled; skipping duplicate request."
35
+ };
36
+ const delay = typeof request.delayMs === "number" && Number.isFinite(request.delayMs) ? Math.max(0, Math.floor(request.delayMs)) : 100;
37
+ this.exitScheduled = true;
38
+ this.deps.scheduleProcessExit(delay, reason);
39
+ return {
40
+ status: "exit-scheduled",
41
+ message: `Restart scheduled (${reason}).`
42
+ };
43
+ }
44
+ return {
45
+ status: "manual-required",
46
+ message: request.manualMessage ?? "Restart the gateway to apply changes."
47
+ };
48
+ };
49
+ };
50
+ //#endregion
51
+ export { RestartCoordinator };
52
+
53
+ //# sourceMappingURL=restart-coordinator.service.js.map