@nextclaw/service 0.2.13 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (846) hide show
  1. package/dist/app/nextclaw-service-runtime.d.ts +41 -0
  2. package/dist/app/nextclaw-service-runtime.d.ts.map +1 -0
  3. package/dist/app/nextclaw-service-runtime.js +136 -0
  4. package/dist/app/nextclaw-service-runtime.js.map +1 -0
  5. package/dist/controllers/commands/agent-command.controller.d.ts +3 -0
  6. package/dist/controllers/commands/agent-command.controller.js +3 -0
  7. package/dist/controllers/commands/channel-command.controller.d.ts +21 -0
  8. package/dist/controllers/commands/channel-command.controller.d.ts.map +1 -0
  9. package/dist/controllers/commands/channel-command.controller.js +115 -0
  10. package/dist/controllers/commands/channel-command.controller.js.map +1 -0
  11. package/dist/controllers/commands/config-command.controller.d.ts +2 -0
  12. package/dist/controllers/commands/config-command.controller.js +2 -0
  13. package/dist/controllers/commands/cron-command.controller.d.ts +2 -0
  14. package/dist/controllers/commands/cron-command.controller.js +2 -0
  15. package/dist/controllers/commands/diagnostics-command.controller.d.ts +2 -0
  16. package/dist/controllers/commands/diagnostics-command.controller.js +2 -0
  17. package/dist/controllers/commands/gateway-command.controller.d.ts +15 -0
  18. package/dist/controllers/commands/gateway-command.controller.d.ts.map +1 -0
  19. package/dist/controllers/commands/gateway-command.controller.js +17 -0
  20. package/dist/controllers/commands/gateway-command.controller.js.map +1 -0
  21. package/dist/controllers/commands/logs-command.controller.d.ts +13 -0
  22. package/dist/controllers/commands/logs-command.controller.d.ts.map +1 -0
  23. package/dist/controllers/commands/logs-command.controller.js +31 -0
  24. package/dist/controllers/commands/logs-command.controller.js.map +1 -0
  25. package/dist/controllers/commands/marketplace-skill-command.controller.d.ts +28 -0
  26. package/dist/controllers/commands/marketplace-skill-command.controller.d.ts.map +1 -0
  27. package/dist/controllers/commands/marketplace-skill-command.controller.js +170 -0
  28. package/dist/controllers/commands/marketplace-skill-command.controller.js.map +1 -0
  29. package/dist/controllers/commands/mcp-command.controller.d.ts +15 -0
  30. package/dist/controllers/commands/mcp-command.controller.d.ts.map +1 -0
  31. package/dist/controllers/commands/mcp-command.controller.js +195 -0
  32. package/dist/controllers/commands/mcp-command.controller.js.map +1 -0
  33. package/dist/controllers/commands/platform-auth-command.controller.d.ts +2 -0
  34. package/dist/controllers/commands/platform-auth-command.controller.js +2 -0
  35. package/dist/controllers/commands/remote-command.controller.d.ts +48 -0
  36. package/dist/controllers/commands/remote-command.controller.d.ts.map +1 -0
  37. package/dist/controllers/commands/remote-command.controller.js +176 -0
  38. package/dist/controllers/commands/remote-command.controller.js.map +1 -0
  39. package/dist/controllers/commands/restart-command.controller.d.ts +21 -0
  40. package/dist/controllers/commands/restart-command.controller.d.ts.map +1 -0
  41. package/dist/controllers/commands/restart-command.controller.js +90 -0
  42. package/dist/controllers/commands/restart-command.controller.js.map +1 -0
  43. package/dist/controllers/commands/secrets-command.controller.d.ts +23 -0
  44. package/dist/controllers/commands/secrets-command.controller.d.ts.map +1 -0
  45. package/dist/controllers/commands/secrets-command.controller.js +282 -0
  46. package/dist/controllers/commands/secrets-command.controller.js.map +1 -0
  47. package/dist/controllers/commands/serve-command.controller.d.ts +15 -0
  48. package/dist/controllers/commands/serve-command.controller.d.ts.map +1 -0
  49. package/dist/controllers/commands/serve-command.controller.js +21 -0
  50. package/dist/controllers/commands/serve-command.controller.js.map +1 -0
  51. package/dist/controllers/commands/service-command.controller.d.ts +17 -0
  52. package/dist/controllers/commands/service-command.controller.d.ts.map +1 -0
  53. package/dist/controllers/commands/service-command.controller.js +33 -0
  54. package/dist/controllers/commands/service-command.controller.js.map +1 -0
  55. package/dist/controllers/commands/start-command.controller.d.ts +19 -0
  56. package/dist/controllers/commands/start-command.controller.d.ts.map +1 -0
  57. package/dist/controllers/commands/start-command.controller.js +27 -0
  58. package/dist/controllers/commands/start-command.controller.js.map +1 -0
  59. package/dist/controllers/commands/stop-command.controller.d.ts +13 -0
  60. package/dist/controllers/commands/stop-command.controller.d.ts.map +1 -0
  61. package/dist/controllers/commands/stop-command.controller.js +13 -0
  62. package/dist/controllers/commands/stop-command.controller.js.map +1 -0
  63. package/dist/controllers/commands/ui-command.controller.d.ts +15 -0
  64. package/dist/controllers/commands/ui-command.controller.d.ts.map +1 -0
  65. package/dist/controllers/commands/ui-command.controller.js +19 -0
  66. package/dist/controllers/commands/ui-command.controller.js.map +1 -0
  67. package/dist/controllers/commands/usage-command.controller.d.ts +2 -0
  68. package/dist/controllers/commands/usage-command.controller.js +2 -0
  69. package/dist/controllers/gateway.controller.d.ts +54 -0
  70. package/dist/controllers/gateway.controller.d.ts.map +1 -0
  71. package/dist/controllers/gateway.controller.js +162 -0
  72. package/dist/controllers/gateway.controller.js.map +1 -0
  73. package/dist/index.d.ts +4 -4
  74. package/dist/index.js +2 -2
  75. package/dist/launcher/npm-runtime-launcher.service.d.ts +1 -1
  76. package/dist/launcher/npm-runtime-launcher.service.js +6 -6
  77. package/dist/launcher/npm-runtime-launcher.service.js.map +1 -1
  78. package/dist/managers/gateway-extension.manager.d.ts +29 -0
  79. package/dist/managers/gateway-extension.manager.d.ts.map +1 -0
  80. package/dist/managers/gateway-extension.manager.js +78 -0
  81. package/dist/managers/gateway-extension.manager.js.map +1 -0
  82. package/dist/managers/gateway-remote.manager.d.ts +23 -0
  83. package/dist/managers/gateway-remote.manager.d.ts.map +1 -0
  84. package/dist/managers/gateway-remote.manager.js +28 -0
  85. package/dist/managers/gateway-remote.manager.js.map +1 -0
  86. package/dist/managers/managed-service.manager.d.ts +42 -0
  87. package/dist/managers/managed-service.manager.d.ts.map +1 -0
  88. package/dist/managers/managed-service.manager.js +195 -0
  89. package/dist/managers/managed-service.manager.js.map +1 -0
  90. package/dist/managers/runtime-update.manager.d.ts +43 -0
  91. package/dist/managers/runtime-update.manager.d.ts.map +1 -0
  92. package/dist/managers/runtime-update.manager.js +185 -0
  93. package/dist/managers/runtime-update.manager.js.map +1 -0
  94. package/dist/managers/service-command.manager.d.ts +67 -0
  95. package/dist/managers/service-command.manager.d.ts.map +1 -0
  96. package/dist/managers/service-command.manager.js +94 -0
  97. package/dist/managers/service-command.manager.js.map +1 -0
  98. package/dist/managers/service-gateway.manager.d.ts +85 -0
  99. package/dist/managers/service-gateway.manager.d.ts.map +1 -0
  100. package/dist/managers/service-gateway.manager.js +278 -0
  101. package/dist/managers/service-gateway.manager.js.map +1 -0
  102. package/dist/managers/service-restart.manager.d.ts +22 -0
  103. package/dist/managers/service-restart.manager.d.ts.map +1 -0
  104. package/dist/managers/service-restart.manager.js +183 -0
  105. package/dist/managers/service-restart.manager.js.map +1 -0
  106. package/dist/managers/service-workspace.manager.d.ts +14 -0
  107. package/dist/managers/service-workspace.manager.d.ts.map +1 -0
  108. package/dist/managers/service-workspace.manager.js +86 -0
  109. package/dist/managers/service-workspace.manager.js.map +1 -0
  110. package/dist/services/agent/agent-commands.service.d.ts +17 -0
  111. package/dist/services/agent/agent-commands.service.d.ts.map +1 -0
  112. package/dist/services/agent/agent-commands.service.js +111 -0
  113. package/dist/services/agent/agent-commands.service.js.map +1 -0
  114. package/dist/services/autostart/host-autostart-command.service.d.ts +30 -0
  115. package/dist/services/autostart/host-autostart-command.service.d.ts.map +1 -0
  116. package/dist/services/autostart/host-autostart-command.service.js +160 -0
  117. package/dist/services/autostart/host-autostart-command.service.js.map +1 -0
  118. package/dist/services/autostart/host-autostart-runtime.service.d.ts +24 -0
  119. package/dist/services/autostart/host-autostart-runtime.service.d.ts.map +1 -0
  120. package/dist/services/autostart/host-autostart-runtime.service.js +55 -0
  121. package/dist/services/autostart/host-autostart-runtime.service.js.map +1 -0
  122. package/dist/services/autostart/host-autostart.service.d.ts +42 -0
  123. package/dist/services/autostart/host-autostart.service.d.ts.map +1 -0
  124. package/dist/services/autostart/host-autostart.service.js +50 -0
  125. package/dist/services/autostart/host-autostart.service.js.map +1 -0
  126. package/dist/services/autostart/linux-systemd-autostart.service.d.ts +49 -0
  127. package/dist/services/autostart/linux-systemd-autostart.service.d.ts.map +1 -0
  128. package/dist/services/autostart/linux-systemd-autostart.service.js +435 -0
  129. package/dist/services/autostart/linux-systemd-autostart.service.js.map +1 -0
  130. package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts +55 -0
  131. package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts.map +1 -0
  132. package/dist/services/autostart/macos-launch-agent-autostart.service.js +407 -0
  133. package/dist/services/autostart/macos-launch-agent-autostart.service.js.map +1 -0
  134. package/dist/services/autostart/windows-task-autostart.service.d.ts +55 -0
  135. package/dist/services/autostart/windows-task-autostart.service.d.ts.map +1 -0
  136. package/dist/services/autostart/windows-task-autostart.service.js +406 -0
  137. package/dist/services/autostart/windows-task-autostart.service.js.map +1 -0
  138. package/dist/services/channel/channel-list-view.service.d.ts +29 -0
  139. package/dist/services/channel/channel-list-view.service.d.ts.map +1 -0
  140. package/dist/services/channel/channel-list-view.service.js +53 -0
  141. package/dist/services/channel/channel-list-view.service.js.map +1 -0
  142. package/dist/services/config/config-commands.service.d.ts +17 -0
  143. package/dist/services/config/config-commands.service.d.ts.map +1 -0
  144. package/dist/services/config/config-commands.service.js +117 -0
  145. package/dist/services/config/config-commands.service.js.map +1 -0
  146. package/dist/services/cron/cron-commands.service.d.ts +23 -0
  147. package/dist/services/cron/cron-commands.service.d.ts.map +1 -0
  148. package/dist/services/cron/cron-commands.service.js +109 -0
  149. package/dist/services/cron/cron-commands.service.js.map +1 -0
  150. package/dist/services/cron/cron-local.service.d.ts +26 -0
  151. package/dist/services/cron/cron-local.service.d.ts.map +1 -0
  152. package/dist/services/cron/cron-local.service.js +89 -0
  153. package/dist/services/cron/cron-local.service.js.map +1 -0
  154. package/dist/services/diagnostics/diagnostics-commands.service.d.ts +25 -0
  155. package/dist/services/diagnostics/diagnostics-commands.service.d.ts.map +1 -0
  156. package/dist/services/diagnostics/diagnostics-commands.service.js +345 -0
  157. package/dist/services/diagnostics/diagnostics-commands.service.js.map +1 -0
  158. package/dist/services/gateway/gateway-restart-wake.service.d.ts +13 -0
  159. package/dist/services/gateway/gateway-restart-wake.service.d.ts.map +1 -0
  160. package/dist/services/gateway/gateway-restart-wake.service.js +99 -0
  161. package/dist/services/gateway/gateway-restart-wake.service.js.map +1 -0
  162. package/dist/services/gateway/nextclaw-app.service.d.ts +18 -0
  163. package/dist/services/gateway/nextclaw-app.service.d.ts.map +1 -0
  164. package/dist/services/gateway/nextclaw-app.service.js +44 -0
  165. package/dist/services/gateway/nextclaw-app.service.js.map +1 -0
  166. package/dist/services/gateway/service-bootstrap-status.service.d.ts +33 -0
  167. package/dist/services/gateway/service-bootstrap-status.service.d.ts.map +1 -0
  168. package/dist/services/gateway/service-bootstrap-status.service.js +144 -0
  169. package/dist/services/gateway/service-bootstrap-status.service.js.map +1 -0
  170. package/dist/services/gateway/service-startup-support.service.d.ts +35 -0
  171. package/dist/services/gateway/service-startup-support.service.d.ts.map +1 -0
  172. package/dist/services/gateway/service-startup-support.service.js +83 -0
  173. package/dist/services/gateway/service-startup-support.service.js.map +1 -0
  174. package/dist/services/marketplace/service-marketplace-installer.service.d.ts +29 -0
  175. package/dist/services/marketplace/service-marketplace-installer.service.d.ts.map +1 -0
  176. package/dist/services/marketplace/service-marketplace-installer.service.js +87 -0
  177. package/dist/services/marketplace/service-marketplace-installer.service.js.map +1 -0
  178. package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts +40 -0
  179. package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts.map +1 -0
  180. package/dist/services/marketplace/service-mcp-marketplace-ops.service.js +69 -0
  181. package/dist/services/marketplace/service-mcp-marketplace-ops.service.js.map +1 -0
  182. package/dist/services/marketplace/skills-query.service.d.ts +110 -0
  183. package/dist/services/marketplace/skills-query.service.d.ts.map +1 -0
  184. package/dist/services/marketplace/skills-query.service.js +132 -0
  185. package/dist/services/marketplace/skills-query.service.js.map +1 -0
  186. package/dist/services/platform-auth/account-status.service.d.ts +20 -0
  187. package/dist/services/platform-auth/account-status.service.d.ts.map +1 -0
  188. package/dist/services/platform-auth/account-status.service.js +36 -0
  189. package/dist/services/platform-auth/account-status.service.js.map +1 -0
  190. package/dist/services/platform-auth/platform-auth-commands.service.d.ts +78 -0
  191. package/dist/services/platform-auth/platform-auth-commands.service.d.ts.map +1 -0
  192. package/dist/services/platform-auth/platform-auth-commands.service.js +297 -0
  193. package/dist/services/platform-auth/platform-auth-commands.service.js.map +1 -0
  194. package/dist/services/remote/remote-access-host.service.d.ts +42 -0
  195. package/dist/services/remote/remote-access-host.service.d.ts.map +1 -0
  196. package/dist/services/remote/remote-access-host.service.js +128 -0
  197. package/dist/services/remote/remote-access-host.service.js.map +1 -0
  198. package/dist/services/remote/remote-service-control.service.d.ts +34 -0
  199. package/dist/services/remote/remote-service-control.service.d.ts.map +1 -0
  200. package/dist/services/remote/remote-service-control.service.js +247 -0
  201. package/dist/services/remote/remote-service-control.service.js.map +1 -0
  202. package/dist/services/restart/restart-coordinator.service.d.ts +31 -0
  203. package/dist/services/restart/restart-coordinator.service.d.ts.map +1 -0
  204. package/dist/services/restart/restart-coordinator.service.js +53 -0
  205. package/dist/services/restart/restart-coordinator.service.js.map +1 -0
  206. package/dist/services/runtime/managed-service-supervisor.service.d.ts +85 -0
  207. package/dist/services/runtime/managed-service-supervisor.service.d.ts.map +1 -0
  208. package/dist/services/runtime/managed-service-supervisor.service.js +271 -0
  209. package/dist/services/runtime/managed-service-supervisor.service.js.map +1 -0
  210. package/dist/services/runtime/nextclaw-distribution.service.d.ts +11 -0
  211. package/dist/services/runtime/nextclaw-distribution.service.d.ts.map +1 -0
  212. package/dist/services/runtime/nextclaw-distribution.service.js +15 -0
  213. package/dist/services/runtime/nextclaw-distribution.service.js.map +1 -0
  214. package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts +10 -0
  215. package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts.map +1 -0
  216. package/dist/services/runtime/npm-runtime-bundle-manifest.service.js +41 -0
  217. package/dist/services/runtime/npm-runtime-bundle-manifest.service.js.map +1 -0
  218. package/dist/services/runtime/npm-runtime-bundle.service.d.ts +48 -0
  219. package/dist/services/runtime/npm-runtime-bundle.service.d.ts.map +1 -0
  220. package/dist/services/runtime/npm-runtime-bundle.service.js +152 -0
  221. package/dist/services/runtime/npm-runtime-bundle.service.js.map +1 -0
  222. package/dist/services/runtime/npm-runtime-update-command.service.d.ts +16 -0
  223. package/dist/services/runtime/npm-runtime-update-command.service.d.ts.map +1 -0
  224. package/dist/services/runtime/npm-runtime-update-command.service.js +120 -0
  225. package/dist/services/runtime/npm-runtime-update-command.service.js.map +1 -0
  226. package/dist/services/runtime/npm-runtime-update-host.service.d.ts +41 -0
  227. package/dist/services/runtime/npm-runtime-update-host.service.d.ts.map +1 -0
  228. package/dist/services/runtime/npm-runtime-update-host.service.js +189 -0
  229. package/dist/services/runtime/npm-runtime-update-host.service.js.map +1 -0
  230. package/dist/services/runtime/npm-runtime-update-source.service.d.ts +22 -0
  231. package/dist/services/runtime/npm-runtime-update-source.service.d.ts.map +1 -0
  232. package/dist/services/runtime/npm-runtime-update-source.service.js +61 -0
  233. package/dist/services/runtime/npm-runtime-update-source.service.js.map +1 -0
  234. package/dist/services/runtime/npm-runtime-update.service.d.ts +55 -0
  235. package/dist/services/runtime/npm-runtime-update.service.d.ts.map +1 -0
  236. package/dist/services/runtime/npm-runtime-update.service.js +185 -0
  237. package/dist/services/runtime/npm-runtime-update.service.js.map +1 -0
  238. package/dist/services/runtime/runtime-config-init.service.d.ts +5 -0
  239. package/dist/services/runtime/runtime-config-init.service.d.ts.map +1 -0
  240. package/dist/services/runtime/runtime-config-init.service.js +12 -0
  241. package/dist/services/runtime/runtime-config-init.service.js.map +1 -0
  242. package/dist/services/runtime/service-managed-startup.service.d.ts +95 -0
  243. package/dist/services/runtime/service-managed-startup.service.d.ts.map +1 -0
  244. package/dist/services/runtime/service-managed-startup.service.js +341 -0
  245. package/dist/services/runtime/service-managed-startup.service.js.map +1 -0
  246. package/dist/services/ui/companion-runtime.service.d.ts +36 -0
  247. package/dist/services/ui/companion-runtime.service.d.ts.map +1 -0
  248. package/dist/services/ui/companion-runtime.service.js +180 -0
  249. package/dist/services/ui/companion-runtime.service.js.map +1 -0
  250. package/dist/services/ui/local-ui-discovery.service.d.ts +20 -0
  251. package/dist/services/ui/local-ui-discovery.service.d.ts.map +1 -0
  252. package/dist/services/ui/local-ui-discovery.service.js +43 -0
  253. package/dist/services/ui/local-ui-discovery.service.js.map +1 -0
  254. package/dist/services/ui/runtime-control-host.service.d.ts +29 -0
  255. package/dist/services/ui/runtime-control-host.service.d.ts.map +1 -0
  256. package/dist/services/ui/runtime-control-host.service.js +91 -0
  257. package/dist/services/ui/runtime-control-host.service.js.map +1 -0
  258. package/dist/services/ui/service-remote-access.service.d.ts +26 -0
  259. package/dist/services/ui/service-remote-access.service.d.ts.map +1 -0
  260. package/dist/services/ui/service-remote-access.service.js +40 -0
  261. package/dist/services/ui/service-remote-access.service.js.map +1 -0
  262. package/dist/services/ui/ui-bridge-api.service.d.ts +17 -0
  263. package/dist/services/ui/ui-bridge-api.service.d.ts.map +1 -0
  264. package/dist/services/ui/ui-bridge-api.service.js +45 -0
  265. package/dist/services/ui/ui-bridge-api.service.js.map +1 -0
  266. package/dist/services/usage/llm-usage-command.service.d.ts +21 -0
  267. package/dist/services/usage/llm-usage-command.service.d.ts.map +1 -0
  268. package/dist/services/usage/llm-usage-command.service.js +152 -0
  269. package/dist/services/usage/llm-usage-command.service.js.map +1 -0
  270. package/dist/stores/companion-runtime.store.d.ts +16 -0
  271. package/dist/stores/companion-runtime.store.d.ts.map +1 -0
  272. package/dist/stores/companion-runtime.store.js +29 -0
  273. package/dist/stores/companion-runtime.store.js.map +1 -0
  274. package/dist/stores/local-ui-runtime.store.d.ts +26 -0
  275. package/dist/stores/local-ui-runtime.store.d.ts.map +1 -0
  276. package/dist/stores/local-ui-runtime.store.js +56 -0
  277. package/dist/stores/local-ui-runtime.store.js.map +1 -0
  278. package/dist/stores/managed-service-state.store.d.ts +46 -0
  279. package/dist/stores/managed-service-state.store.d.ts.map +1 -0
  280. package/dist/stores/managed-service-state.store.js +40 -0
  281. package/dist/stores/managed-service-state.store.js.map +1 -0
  282. package/dist/stores/marketplace-install-state.store.d.ts +39 -0
  283. package/dist/stores/marketplace-install-state.store.d.ts.map +1 -0
  284. package/dist/stores/marketplace-install-state.store.js +58 -0
  285. package/dist/stores/marketplace-install-state.store.js.map +1 -0
  286. package/dist/stores/npm-runtime-bundle-layout.store.d.ts +24 -0
  287. package/dist/stores/npm-runtime-bundle-layout.store.d.ts.map +1 -0
  288. package/dist/stores/npm-runtime-bundle-layout.store.js +39 -0
  289. package/dist/stores/npm-runtime-bundle-layout.store.js.map +1 -0
  290. package/dist/stores/npm-runtime-update-state.store.d.ts +18 -0
  291. package/dist/stores/npm-runtime-update-state.store.d.ts.map +1 -0
  292. package/dist/stores/npm-runtime-update-state.store.js +94 -0
  293. package/dist/stores/npm-runtime-update-state.store.js.map +1 -0
  294. package/dist/stores/pending-restart.store.d.ts +22 -0
  295. package/dist/stores/pending-restart.store.d.ts.map +1 -0
  296. package/dist/stores/pending-restart.store.js +37 -0
  297. package/dist/stores/pending-restart.store.js.map +1 -0
  298. package/dist/types/cli.types.d.ts +304 -0
  299. package/dist/types/cli.types.d.ts.map +1 -0
  300. package/dist/types/distribution.types.d.ts +11 -0
  301. package/dist/types/distribution.types.d.ts.map +1 -0
  302. package/dist/types/host-autostart.types.d.ts +65 -0
  303. package/dist/types/host-autostart.types.d.ts.map +1 -0
  304. package/dist/types/npm-runtime-bundle.types.d.ts +50 -0
  305. package/dist/types/npm-runtime-bundle.types.d.ts.map +1 -0
  306. package/dist/utils/agent-runtime.utils.d.ts +15 -0
  307. package/dist/utils/agent-runtime.utils.d.ts.map +1 -0
  308. package/dist/utils/agent-runtime.utils.js +40 -0
  309. package/dist/utils/agent-runtime.utils.js.map +1 -0
  310. package/dist/utils/channel-config-view.utils.d.ts +7 -0
  311. package/dist/utils/channel-config-view.utils.d.ts.map +1 -0
  312. package/dist/utils/channel-config-view.utils.js +9 -0
  313. package/dist/utils/channel-config-view.utils.js.map +1 -0
  314. package/dist/utils/cli-agent-runner.utils.d.ts +14 -0
  315. package/dist/utils/cli-agent-runner.utils.d.ts.map +1 -0
  316. package/dist/utils/cli-agent-runner.utils.js +94 -0
  317. package/dist/utils/cli-agent-runner.utils.js.map +1 -0
  318. package/dist/utils/cli.utils.d.ts +32 -0
  319. package/dist/utils/cli.utils.d.ts.map +1 -0
  320. package/dist/utils/cli.utils.js +254 -0
  321. package/dist/utils/cli.utils.js.map +1 -0
  322. package/dist/utils/config-path.utils.d.ts +16 -0
  323. package/dist/utils/config-path.utils.d.ts.map +1 -0
  324. package/dist/utils/config-path.utils.js +169 -0
  325. package/dist/utils/config-path.utils.js.map +1 -0
  326. package/dist/utils/cron/cron-job.utils.d.ts +28 -0
  327. package/dist/utils/cron/cron-job.utils.d.ts.map +1 -0
  328. package/dist/utils/cron/cron-job.utils.js +17 -0
  329. package/dist/utils/cron/cron-job.utils.js.map +1 -0
  330. package/dist/utils/diagnostics/diagnostics-render.utils.d.ts +24 -0
  331. package/dist/utils/diagnostics/diagnostics-render.utils.d.ts.map +1 -0
  332. package/dist/utils/diagnostics/diagnostics-render.utils.js +74 -0
  333. package/dist/utils/diagnostics/diagnostics-render.utils.js.map +1 -0
  334. package/dist/utils/gateway-cron-job-handler.utils.d.ts +18 -0
  335. package/dist/utils/gateway-cron-job-handler.utils.d.ts.map +1 -0
  336. package/dist/utils/gateway-cron-job-handler.utils.js +56 -0
  337. package/dist/utils/gateway-cron-job-handler.utils.js.map +1 -0
  338. package/dist/utils/gateway-runtime-lifecycle.utils.d.ts +10 -0
  339. package/dist/utils/gateway-runtime-lifecycle.utils.d.ts.map +1 -0
  340. package/dist/utils/gateway-runtime-lifecycle.utils.js +12 -0
  341. package/dist/utils/gateway-runtime-lifecycle.utils.js.map +1 -0
  342. package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts +17 -0
  343. package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +1 -0
  344. package/dist/utils/marketplace/cli-subcommand-launch.utils.js +48 -0
  345. package/dist/utils/marketplace/cli-subcommand-launch.utils.js.map +1 -0
  346. package/dist/utils/marketplace/marketplace-client.utils.d.ts +46 -0
  347. package/dist/utils/marketplace/marketplace-client.utils.d.ts.map +1 -0
  348. package/dist/utils/marketplace/marketplace-client.utils.js +137 -0
  349. package/dist/utils/marketplace/marketplace-client.utils.js.map +1 -0
  350. package/dist/utils/marketplace/marketplace-command-options.utils.d.ts +26 -0
  351. package/dist/utils/marketplace/marketplace-command-options.utils.d.ts.map +1 -0
  352. package/dist/utils/marketplace/marketplace-command-options.utils.js +33 -0
  353. package/dist/utils/marketplace/marketplace-command-options.utils.js.map +1 -0
  354. package/dist/utils/marketplace/marketplace-identity.utils.d.ts +15 -0
  355. package/dist/utils/marketplace/marketplace-identity.utils.d.ts.map +1 -0
  356. package/dist/utils/marketplace/marketplace-identity.utils.js +79 -0
  357. package/dist/utils/marketplace/marketplace-identity.utils.js.map +1 -0
  358. package/dist/utils/marketplace/marketplace-metadata.utils.d.ts +21 -0
  359. package/dist/utils/marketplace/marketplace-metadata.utils.d.ts.map +1 -0
  360. package/dist/utils/marketplace/marketplace-metadata.utils.js +74 -0
  361. package/dist/utils/marketplace/marketplace-metadata.utils.js.map +1 -0
  362. package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts +5 -0
  363. package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts.map +1 -0
  364. package/dist/utils/marketplace/marketplace-network-retry.utils.js +34 -0
  365. package/dist/utils/marketplace/marketplace-network-retry.utils.js.map +1 -0
  366. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts +27 -0
  367. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts.map +1 -0
  368. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js +206 -0
  369. package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js.map +1 -0
  370. package/dist/utils/marketplace/marketplace.utils.d.ts +34 -0
  371. package/dist/utils/marketplace/marketplace.utils.d.ts.map +1 -0
  372. package/dist/utils/marketplace/marketplace.utils.js +77 -0
  373. package/dist/utils/marketplace/marketplace.utils.js.map +1 -0
  374. package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts +15 -0
  375. package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +1 -0
  376. package/dist/utils/marketplace/service-marketplace-helpers.utils.js +47 -0
  377. package/dist/utils/marketplace/service-marketplace-helpers.utils.js.map +1 -0
  378. package/dist/utils/package/package-manifest.utils.d.ts +5 -0
  379. package/dist/utils/package/package-manifest.utils.d.ts.map +1 -0
  380. package/dist/utils/package/package-manifest.utils.js +40 -0
  381. package/dist/utils/package/package-manifest.utils.js.map +1 -0
  382. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +5 -0
  383. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +1 -0
  384. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +37 -0
  385. package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +1 -0
  386. package/dist/utils/platform-auth/payload.utils.d.ts +30 -0
  387. package/dist/utils/platform-auth/payload.utils.d.ts.map +1 -0
  388. package/dist/utils/platform-auth/payload.utils.js +89 -0
  389. package/dist/utils/platform-auth/payload.utils.js.map +1 -0
  390. package/dist/utils/remote/platform-api-base.utils.d.ts +15 -0
  391. package/dist/utils/remote/platform-api-base.utils.d.ts.map +1 -0
  392. package/dist/utils/remote/platform-api-base.utils.js +41 -0
  393. package/dist/utils/remote/platform-api-base.utils.js.map +1 -0
  394. package/dist/utils/remote/remote-runtime-support.utils.d.ts +16 -0
  395. package/dist/utils/remote/remote-runtime-support.utils.d.ts.map +1 -0
  396. package/dist/utils/remote/remote-runtime-support.utils.js +82 -0
  397. package/dist/utils/remote/remote-runtime-support.utils.js.map +1 -0
  398. package/dist/utils/restart-sentinel.utils.d.ts +37 -0
  399. package/dist/utils/restart-sentinel.utils.d.ts.map +1 -0
  400. package/dist/utils/restart-sentinel.utils.js +76 -0
  401. package/dist/utils/restart-sentinel.utils.js.map +1 -0
  402. package/dist/utils/runtime/managed-service-routing.utils.d.ts +31 -0
  403. package/dist/utils/runtime/managed-service-routing.utils.d.ts.map +1 -0
  404. package/dist/utils/runtime/managed-service-routing.utils.js +64 -0
  405. package/dist/utils/runtime/managed-service-routing.utils.js.map +1 -0
  406. package/dist/utils/runtime/service-remote-runtime.utils.d.ts +58 -0
  407. package/dist/utils/runtime/service-remote-runtime.utils.d.ts.map +1 -0
  408. package/dist/utils/runtime/service-remote-runtime.utils.js +184 -0
  409. package/dist/utils/runtime/service-remote-runtime.utils.js.map +1 -0
  410. package/dist/utils/runtime-helpers.utils.d.ts +15 -0
  411. package/dist/utils/runtime-helpers.utils.d.ts.map +1 -0
  412. package/dist/utils/runtime-helpers.utils.js +28 -0
  413. package/dist/utils/runtime-helpers.utils.js.map +1 -0
  414. package/dist/utils/service-port-probe.utils.d.ts +42 -0
  415. package/dist/utils/service-port-probe.utils.d.ts.map +1 -0
  416. package/dist/utils/service-port-probe.utils.js +166 -0
  417. package/dist/utils/service-port-probe.utils.js.map +1 -0
  418. package/dist/utils/startup-trace.utils.d.ts +8 -0
  419. package/dist/utils/startup-trace.utils.d.ts.map +1 -0
  420. package/dist/utils/startup-trace.utils.js +39 -0
  421. package/dist/utils/startup-trace.utils.js.map +1 -0
  422. package/dist/utils/top-level-nextclaw-command-env.utils.d.ts +5 -0
  423. package/dist/utils/top-level-nextclaw-command-env.utils.d.ts.map +1 -0
  424. package/dist/utils/top-level-nextclaw-command-env.utils.js +12 -0
  425. package/dist/utils/top-level-nextclaw-command-env.utils.js.map +1 -0
  426. package/package.json +26 -26
  427. package/dist/cli/commands/agent/agent-runtime.utils.d.ts +0 -15
  428. package/dist/cli/commands/agent/agent-runtime.utils.d.ts.map +0 -1
  429. package/dist/cli/commands/agent/agent-runtime.utils.js +0 -43
  430. package/dist/cli/commands/agent/agent-runtime.utils.js.map +0 -1
  431. package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts +0 -14
  432. package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts.map +0 -1
  433. package/dist/cli/commands/agent/cli-agent-runner.utils.js +0 -94
  434. package/dist/cli/commands/agent/cli-agent-runner.utils.js.map +0 -1
  435. package/dist/cli/commands/agent/index.d.ts +0 -3
  436. package/dist/cli/commands/agent/index.js +0 -3
  437. package/dist/cli/commands/agent/services/agent-commands.service.d.ts +0 -18
  438. package/dist/cli/commands/agent/services/agent-commands.service.d.ts.map +0 -1
  439. package/dist/cli/commands/agent/services/agent-commands.service.js +0 -113
  440. package/dist/cli/commands/agent/services/agent-commands.service.js.map +0 -1
  441. package/dist/cli/commands/config/index.d.ts +0 -2
  442. package/dist/cli/commands/config/index.js +0 -2
  443. package/dist/cli/commands/config/services/config-commands.service.d.ts +0 -17
  444. package/dist/cli/commands/config/services/config-commands.service.d.ts.map +0 -1
  445. package/dist/cli/commands/config/services/config-commands.service.js +0 -117
  446. package/dist/cli/commands/config/services/config-commands.service.js.map +0 -1
  447. package/dist/cli/commands/cron/index.d.ts +0 -2
  448. package/dist/cli/commands/cron/index.js +0 -2
  449. package/dist/cli/commands/cron/services/cron-commands.service.d.ts +0 -23
  450. package/dist/cli/commands/cron/services/cron-commands.service.d.ts.map +0 -1
  451. package/dist/cli/commands/cron/services/cron-commands.service.js +0 -109
  452. package/dist/cli/commands/cron/services/cron-commands.service.js.map +0 -1
  453. package/dist/cli/commands/cron/services/cron-local.service.d.ts +0 -26
  454. package/dist/cli/commands/cron/services/cron-local.service.d.ts.map +0 -1
  455. package/dist/cli/commands/cron/services/cron-local.service.js +0 -89
  456. package/dist/cli/commands/cron/services/cron-local.service.js.map +0 -1
  457. package/dist/cli/commands/cron/utils/cron-job.utils.d.ts +0 -28
  458. package/dist/cli/commands/cron/utils/cron-job.utils.d.ts.map +0 -1
  459. package/dist/cli/commands/cron/utils/cron-job.utils.js +0 -17
  460. package/dist/cli/commands/cron/utils/cron-job.utils.js.map +0 -1
  461. package/dist/cli/commands/diagnostics/index.d.ts +0 -2
  462. package/dist/cli/commands/diagnostics/index.js +0 -2
  463. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts +0 -25
  464. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts.map +0 -1
  465. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js +0 -345
  466. package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js.map +0 -1
  467. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts +0 -24
  468. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts.map +0 -1
  469. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js +0 -74
  470. package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js.map +0 -1
  471. package/dist/cli/commands/gateway/index.d.ts +0 -15
  472. package/dist/cli/commands/gateway/index.d.ts.map +0 -1
  473. package/dist/cli/commands/gateway/index.js +0 -17
  474. package/dist/cli/commands/gateway/index.js.map +0 -1
  475. package/dist/cli/commands/logs/index.d.ts +0 -13
  476. package/dist/cli/commands/logs/index.d.ts.map +0 -1
  477. package/dist/cli/commands/logs/index.js +0 -31
  478. package/dist/cli/commands/logs/index.js.map +0 -1
  479. package/dist/cli/commands/mcp/index.d.ts +0 -15
  480. package/dist/cli/commands/mcp/index.d.ts.map +0 -1
  481. package/dist/cli/commands/mcp/index.js +0 -195
  482. package/dist/cli/commands/mcp/index.js.map +0 -1
  483. package/dist/cli/commands/restart/index.d.ts +0 -21
  484. package/dist/cli/commands/restart/index.d.ts.map +0 -1
  485. package/dist/cli/commands/restart/index.js +0 -90
  486. package/dist/cli/commands/restart/index.js.map +0 -1
  487. package/dist/cli/commands/secrets/index.d.ts +0 -23
  488. package/dist/cli/commands/secrets/index.d.ts.map +0 -1
  489. package/dist/cli/commands/secrets/index.js +0 -282
  490. package/dist/cli/commands/secrets/index.js.map +0 -1
  491. package/dist/cli/commands/serve/index.d.ts +0 -15
  492. package/dist/cli/commands/serve/index.d.ts.map +0 -1
  493. package/dist/cli/commands/serve/index.js +0 -21
  494. package/dist/cli/commands/serve/index.js.map +0 -1
  495. package/dist/cli/commands/skills/index.d.ts +0 -28
  496. package/dist/cli/commands/skills/index.d.ts.map +0 -1
  497. package/dist/cli/commands/skills/index.js +0 -170
  498. package/dist/cli/commands/skills/index.js.map +0 -1
  499. package/dist/cli/commands/skills/marketplace-client.d.ts +0 -46
  500. package/dist/cli/commands/skills/marketplace-client.d.ts.map +0 -1
  501. package/dist/cli/commands/skills/marketplace-client.js +0 -137
  502. package/dist/cli/commands/skills/marketplace-client.js.map +0 -1
  503. package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts +0 -26
  504. package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts.map +0 -1
  505. package/dist/cli/commands/skills/marketplace-command-options.utils.js +0 -33
  506. package/dist/cli/commands/skills/marketplace-command-options.utils.js.map +0 -1
  507. package/dist/cli/commands/skills/marketplace-identity.utils.d.ts +0 -15
  508. package/dist/cli/commands/skills/marketplace-identity.utils.d.ts.map +0 -1
  509. package/dist/cli/commands/skills/marketplace-identity.utils.js +0 -79
  510. package/dist/cli/commands/skills/marketplace-identity.utils.js.map +0 -1
  511. package/dist/cli/commands/skills/marketplace-network-retry.d.ts +0 -5
  512. package/dist/cli/commands/skills/marketplace-network-retry.d.ts.map +0 -1
  513. package/dist/cli/commands/skills/marketplace-network-retry.js +0 -34
  514. package/dist/cli/commands/skills/marketplace-network-retry.js.map +0 -1
  515. package/dist/cli/commands/skills/marketplace.metadata.d.ts +0 -21
  516. package/dist/cli/commands/skills/marketplace.metadata.d.ts.map +0 -1
  517. package/dist/cli/commands/skills/marketplace.metadata.js +0 -74
  518. package/dist/cli/commands/skills/marketplace.metadata.js.map +0 -1
  519. package/dist/cli/commands/skills/marketplace.utils.d.ts +0 -34
  520. package/dist/cli/commands/skills/marketplace.utils.d.ts.map +0 -1
  521. package/dist/cli/commands/skills/marketplace.utils.js +0 -77
  522. package/dist/cli/commands/skills/marketplace.utils.js.map +0 -1
  523. package/dist/cli/commands/skills/skills-query.service.d.ts +0 -110
  524. package/dist/cli/commands/skills/skills-query.service.d.ts.map +0 -1
  525. package/dist/cli/commands/skills/skills-query.service.js +0 -132
  526. package/dist/cli/commands/skills/skills-query.service.js.map +0 -1
  527. package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts +0 -39
  528. package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts.map +0 -1
  529. package/dist/cli/commands/skills/stores/marketplace-install-state.store.js +0 -58
  530. package/dist/cli/commands/skills/stores/marketplace-install-state.store.js.map +0 -1
  531. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts +0 -27
  532. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts.map +0 -1
  533. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js +0 -206
  534. package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js.map +0 -1
  535. package/dist/cli/commands/start/index.d.ts +0 -19
  536. package/dist/cli/commands/start/index.d.ts.map +0 -1
  537. package/dist/cli/commands/start/index.js +0 -27
  538. package/dist/cli/commands/start/index.js.map +0 -1
  539. package/dist/cli/commands/stop/index.d.ts +0 -13
  540. package/dist/cli/commands/stop/index.d.ts.map +0 -1
  541. package/dist/cli/commands/stop/index.js +0 -13
  542. package/dist/cli/commands/stop/index.js.map +0 -1
  543. package/dist/cli/commands/ui/index.d.ts +0 -15
  544. package/dist/cli/commands/ui/index.d.ts.map +0 -1
  545. package/dist/cli/commands/ui/index.js +0 -19
  546. package/dist/cli/commands/ui/index.js.map +0 -1
  547. package/dist/cli/commands/usage/index.d.ts +0 -2
  548. package/dist/cli/commands/usage/index.js +0 -2
  549. package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts +0 -21
  550. package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts.map +0 -1
  551. package/dist/cli/commands/usage/services/llm-usage-command.service.js +0 -152
  552. package/dist/cli/commands/usage/services/llm-usage-command.service.js.map +0 -1
  553. package/dist/commands/channel/channel-config-view.utils.d.ts +0 -7
  554. package/dist/commands/channel/channel-config-view.utils.d.ts.map +0 -1
  555. package/dist/commands/channel/channel-config-view.utils.js +0 -9
  556. package/dist/commands/channel/channel-config-view.utils.js.map +0 -1
  557. package/dist/commands/channel/channel-list-view.service.d.ts +0 -29
  558. package/dist/commands/channel/channel-list-view.service.d.ts.map +0 -1
  559. package/dist/commands/channel/channel-list-view.service.js +0 -53
  560. package/dist/commands/channel/channel-list-view.service.js.map +0 -1
  561. package/dist/commands/channel/index.d.ts +0 -21
  562. package/dist/commands/channel/index.d.ts.map +0 -1
  563. package/dist/commands/channel/index.js +0 -115
  564. package/dist/commands/channel/index.js.map +0 -1
  565. package/dist/commands/platform-auth/index.d.ts +0 -2
  566. package/dist/commands/platform-auth/index.js +0 -2
  567. package/dist/commands/platform-auth/services/account-status.service.d.ts +0 -19
  568. package/dist/commands/platform-auth/services/account-status.service.d.ts.map +0 -1
  569. package/dist/commands/platform-auth/services/account-status.service.js +0 -36
  570. package/dist/commands/platform-auth/services/account-status.service.js.map +0 -1
  571. package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts +0 -78
  572. package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts.map +0 -1
  573. package/dist/commands/platform-auth/services/platform-auth-commands.service.js +0 -297
  574. package/dist/commands/platform-auth/services/platform-auth-commands.service.js.map +0 -1
  575. package/dist/commands/platform-auth/utils/payload.utils.d.ts +0 -29
  576. package/dist/commands/platform-auth/utils/payload.utils.d.ts.map +0 -1
  577. package/dist/commands/platform-auth/utils/payload.utils.js +0 -89
  578. package/dist/commands/platform-auth/utils/payload.utils.js.map +0 -1
  579. package/dist/commands/remote/index.d.ts +0 -48
  580. package/dist/commands/remote/index.d.ts.map +0 -1
  581. package/dist/commands/remote/index.js +0 -176
  582. package/dist/commands/remote/index.js.map +0 -1
  583. package/dist/commands/remote/services/remote-access-host.service.d.ts +0 -42
  584. package/dist/commands/remote/services/remote-access-host.service.d.ts.map +0 -1
  585. package/dist/commands/remote/services/remote-access-host.service.js +0 -128
  586. package/dist/commands/remote/services/remote-access-host.service.js.map +0 -1
  587. package/dist/commands/remote/services/remote-service-control.service.d.ts +0 -34
  588. package/dist/commands/remote/services/remote-service-control.service.d.ts.map +0 -1
  589. package/dist/commands/remote/services/remote-service-control.service.js +0 -247
  590. package/dist/commands/remote/services/remote-service-control.service.js.map +0 -1
  591. package/dist/commands/remote/utils/platform-api-base.utils.d.ts +0 -15
  592. package/dist/commands/remote/utils/platform-api-base.utils.d.ts.map +0 -1
  593. package/dist/commands/remote/utils/platform-api-base.utils.js +0 -41
  594. package/dist/commands/remote/utils/platform-api-base.utils.js.map +0 -1
  595. package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts +0 -16
  596. package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts.map +0 -1
  597. package/dist/commands/remote/utils/remote-runtime-support.utils.js +0 -82
  598. package/dist/commands/remote/utils/remote-runtime-support.utils.js.map +0 -1
  599. package/dist/commands/service/index.d.ts +0 -17
  600. package/dist/commands/service/index.d.ts.map +0 -1
  601. package/dist/commands/service/index.js +0 -33
  602. package/dist/commands/service/index.js.map +0 -1
  603. package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts +0 -30
  604. package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts.map +0 -1
  605. package/dist/commands/service/services/autostart/host-autostart-command.service.js +0 -160
  606. package/dist/commands/service/services/autostart/host-autostart-command.service.js.map +0 -1
  607. package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts +0 -24
  608. package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts.map +0 -1
  609. package/dist/commands/service/services/autostart/host-autostart-runtime.service.js +0 -55
  610. package/dist/commands/service/services/autostart/host-autostart-runtime.service.js.map +0 -1
  611. package/dist/commands/service/services/autostart/host-autostart.service.d.ts +0 -42
  612. package/dist/commands/service/services/autostart/host-autostart.service.d.ts.map +0 -1
  613. package/dist/commands/service/services/autostart/host-autostart.service.js +0 -50
  614. package/dist/commands/service/services/autostart/host-autostart.service.js.map +0 -1
  615. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts +0 -49
  616. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts.map +0 -1
  617. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js +0 -435
  618. package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js.map +0 -1
  619. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts +0 -55
  620. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts.map +0 -1
  621. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js +0 -407
  622. package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js.map +0 -1
  623. package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts +0 -55
  624. package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts.map +0 -1
  625. package/dist/commands/service/services/autostart/windows-task-autostart.service.js +0 -406
  626. package/dist/commands/service/services/autostart/windows-task-autostart.service.js.map +0 -1
  627. package/dist/commands/service/types/autostart/host-autostart.types.d.ts +0 -65
  628. package/dist/commands/service/types/autostart/host-autostart.types.d.ts.map +0 -1
  629. package/dist/launcher/npm-runtime-bundle-layout.store.d.ts +0 -24
  630. package/dist/launcher/npm-runtime-bundle-layout.store.d.ts.map +0 -1
  631. package/dist/launcher/npm-runtime-bundle-layout.store.js +0 -39
  632. package/dist/launcher/npm-runtime-bundle-layout.store.js.map +0 -1
  633. package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts +0 -10
  634. package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts.map +0 -1
  635. package/dist/launcher/npm-runtime-bundle-manifest.service.js +0 -41
  636. package/dist/launcher/npm-runtime-bundle-manifest.service.js.map +0 -1
  637. package/dist/launcher/npm-runtime-bundle.service.d.ts +0 -48
  638. package/dist/launcher/npm-runtime-bundle.service.d.ts.map +0 -1
  639. package/dist/launcher/npm-runtime-bundle.service.js +0 -152
  640. package/dist/launcher/npm-runtime-bundle.service.js.map +0 -1
  641. package/dist/launcher/npm-runtime-bundle.types.d.ts +0 -50
  642. package/dist/launcher/npm-runtime-bundle.types.d.ts.map +0 -1
  643. package/dist/launcher/npm-runtime-update-command.service.d.ts +0 -16
  644. package/dist/launcher/npm-runtime-update-command.service.d.ts.map +0 -1
  645. package/dist/launcher/npm-runtime-update-command.service.js +0 -120
  646. package/dist/launcher/npm-runtime-update-command.service.js.map +0 -1
  647. package/dist/launcher/npm-runtime-update-source.service.d.ts +0 -22
  648. package/dist/launcher/npm-runtime-update-source.service.d.ts.map +0 -1
  649. package/dist/launcher/npm-runtime-update-source.service.js +0 -61
  650. package/dist/launcher/npm-runtime-update-source.service.js.map +0 -1
  651. package/dist/launcher/npm-runtime-update-state.store.d.ts +0 -18
  652. package/dist/launcher/npm-runtime-update-state.store.d.ts.map +0 -1
  653. package/dist/launcher/npm-runtime-update-state.store.js +0 -94
  654. package/dist/launcher/npm-runtime-update-state.store.js.map +0 -1
  655. package/dist/launcher/npm-runtime-update.manager.d.ts +0 -43
  656. package/dist/launcher/npm-runtime-update.manager.d.ts.map +0 -1
  657. package/dist/launcher/npm-runtime-update.manager.js +0 -185
  658. package/dist/launcher/npm-runtime-update.manager.js.map +0 -1
  659. package/dist/launcher/npm-runtime-update.service.d.ts +0 -55
  660. package/dist/launcher/npm-runtime-update.service.d.ts.map +0 -1
  661. package/dist/launcher/npm-runtime-update.service.js +0 -185
  662. package/dist/launcher/npm-runtime-update.service.js.map +0 -1
  663. package/dist/service-runtime.service.d.ts +0 -88
  664. package/dist/service-runtime.service.d.ts.map +0 -1
  665. package/dist/service-runtime.service.js +0 -366
  666. package/dist/service-runtime.service.js.map +0 -1
  667. package/dist/shared/controllers/gateway.controller.d.ts +0 -54
  668. package/dist/shared/controllers/gateway.controller.d.ts.map +0 -1
  669. package/dist/shared/controllers/gateway.controller.js +0 -162
  670. package/dist/shared/controllers/gateway.controller.js.map +0 -1
  671. package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts +0 -13
  672. package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts.map +0 -1
  673. package/dist/shared/services/gateway/gateway-restart-wake.service.js +0 -99
  674. package/dist/shared/services/gateway/gateway-restart-wake.service.js.map +0 -1
  675. package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts +0 -29
  676. package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts.map +0 -1
  677. package/dist/shared/services/gateway/managers/gateway-extension.manager.js +0 -78
  678. package/dist/shared/services/gateway/managers/gateway-extension.manager.js.map +0 -1
  679. package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts +0 -23
  680. package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts.map +0 -1
  681. package/dist/shared/services/gateway/managers/gateway-remote.manager.js +0 -28
  682. package/dist/shared/services/gateway/managers/gateway-remote.manager.js.map +0 -1
  683. package/dist/shared/services/gateway/nextclaw-app.service.d.ts +0 -18
  684. package/dist/shared/services/gateway/nextclaw-app.service.d.ts.map +0 -1
  685. package/dist/shared/services/gateway/nextclaw-app.service.js +0 -44
  686. package/dist/shared/services/gateway/nextclaw-app.service.js.map +0 -1
  687. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts +0 -85
  688. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts.map +0 -1
  689. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js +0 -278
  690. package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js.map +0 -1
  691. package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts +0 -33
  692. package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts.map +0 -1
  693. package/dist/shared/services/gateway/service-bootstrap-status.service.js +0 -144
  694. package/dist/shared/services/gateway/service-bootstrap-status.service.js.map +0 -1
  695. package/dist/shared/services/gateway/service-startup-support.service.d.ts +0 -35
  696. package/dist/shared/services/gateway/service-startup-support.service.d.ts.map +0 -1
  697. package/dist/shared/services/gateway/service-startup-support.service.js +0 -85
  698. package/dist/shared/services/gateway/service-startup-support.service.js.map +0 -1
  699. package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts +0 -18
  700. package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts.map +0 -1
  701. package/dist/shared/services/gateway/utils/cron-job-handler.utils.js +0 -56
  702. package/dist/shared/services/gateway/utils/cron-job-handler.utils.js.map +0 -1
  703. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts +0 -10
  704. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts.map +0 -1
  705. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js +0 -12
  706. package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js.map +0 -1
  707. package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts +0 -29
  708. package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts.map +0 -1
  709. package/dist/shared/services/marketplace/service-marketplace-installer.service.js +0 -87
  710. package/dist/shared/services/marketplace/service-marketplace-installer.service.js.map +0 -1
  711. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts +0 -40
  712. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts.map +0 -1
  713. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js +0 -69
  714. package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js.map +0 -1
  715. package/dist/shared/services/restart/restart-coordinator.service.d.ts +0 -31
  716. package/dist/shared/services/restart/restart-coordinator.service.d.ts.map +0 -1
  717. package/dist/shared/services/restart/restart-coordinator.service.js +0 -53
  718. package/dist/shared/services/restart/restart-coordinator.service.js.map +0 -1
  719. package/dist/shared/services/restart/runtime-restart-request.service.d.ts +0 -25
  720. package/dist/shared/services/restart/runtime-restart-request.service.d.ts.map +0 -1
  721. package/dist/shared/services/restart/runtime-restart-request.service.js +0 -44
  722. package/dist/shared/services/restart/runtime-restart-request.service.js.map +0 -1
  723. package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts +0 -85
  724. package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts.map +0 -1
  725. package/dist/shared/services/runtime/managed-service-supervisor.service.js +0 -271
  726. package/dist/shared/services/runtime/managed-service-supervisor.service.js.map +0 -1
  727. package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts +0 -11
  728. package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts.map +0 -1
  729. package/dist/shared/services/runtime/nextclaw-distribution.service.js +0 -15
  730. package/dist/shared/services/runtime/nextclaw-distribution.service.js.map +0 -1
  731. package/dist/shared/services/runtime/runtime-command.service.d.ts +0 -42
  732. package/dist/shared/services/runtime/runtime-command.service.d.ts.map +0 -1
  733. package/dist/shared/services/runtime/runtime-command.service.js +0 -195
  734. package/dist/shared/services/runtime/runtime-command.service.js.map +0 -1
  735. package/dist/shared/services/runtime/runtime-config-init.service.d.ts +0 -5
  736. package/dist/shared/services/runtime/runtime-config-init.service.d.ts.map +0 -1
  737. package/dist/shared/services/runtime/runtime-config-init.service.js +0 -12
  738. package/dist/shared/services/runtime/runtime-config-init.service.js.map +0 -1
  739. package/dist/shared/services/runtime/service-managed-startup.service.d.ts +0 -95
  740. package/dist/shared/services/runtime/service-managed-startup.service.d.ts.map +0 -1
  741. package/dist/shared/services/runtime/service-managed-startup.service.js +0 -341
  742. package/dist/shared/services/runtime/service-managed-startup.service.js.map +0 -1
  743. package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts +0 -31
  744. package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts.map +0 -1
  745. package/dist/shared/services/runtime/utils/managed-service-routing.utils.js +0 -64
  746. package/dist/shared/services/runtime/utils/managed-service-routing.utils.js.map +0 -1
  747. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts +0 -58
  748. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts.map +0 -1
  749. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js +0 -184
  750. package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js.map +0 -1
  751. package/dist/shared/services/ui/companion-runtime.service.d.ts +0 -36
  752. package/dist/shared/services/ui/companion-runtime.service.d.ts.map +0 -1
  753. package/dist/shared/services/ui/companion-runtime.service.js +0 -180
  754. package/dist/shared/services/ui/companion-runtime.service.js.map +0 -1
  755. package/dist/shared/services/ui/local-ui-discovery.service.d.ts +0 -20
  756. package/dist/shared/services/ui/local-ui-discovery.service.d.ts.map +0 -1
  757. package/dist/shared/services/ui/local-ui-discovery.service.js +0 -43
  758. package/dist/shared/services/ui/local-ui-discovery.service.js.map +0 -1
  759. package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts +0 -41
  760. package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts.map +0 -1
  761. package/dist/shared/services/ui/npm-runtime-update-host.service.js +0 -189
  762. package/dist/shared/services/ui/npm-runtime-update-host.service.js.map +0 -1
  763. package/dist/shared/services/ui/runtime-control-host.service.d.ts +0 -29
  764. package/dist/shared/services/ui/runtime-control-host.service.d.ts.map +0 -1
  765. package/dist/shared/services/ui/runtime-control-host.service.js +0 -91
  766. package/dist/shared/services/ui/runtime-control-host.service.js.map +0 -1
  767. package/dist/shared/services/ui/service-remote-access.service.d.ts +0 -26
  768. package/dist/shared/services/ui/service-remote-access.service.d.ts.map +0 -1
  769. package/dist/shared/services/ui/service-remote-access.service.js +0 -40
  770. package/dist/shared/services/ui/service-remote-access.service.js.map +0 -1
  771. package/dist/shared/services/ui/ui-bridge-api.service.d.ts +0 -17
  772. package/dist/shared/services/ui/ui-bridge-api.service.d.ts.map +0 -1
  773. package/dist/shared/services/ui/ui-bridge-api.service.js +0 -45
  774. package/dist/shared/services/ui/ui-bridge-api.service.js.map +0 -1
  775. package/dist/shared/services/workspace/workspace-manager.service.d.ts +0 -14
  776. package/dist/shared/services/workspace/workspace-manager.service.d.ts.map +0 -1
  777. package/dist/shared/services/workspace/workspace-manager.service.js +0 -86
  778. package/dist/shared/services/workspace/workspace-manager.service.js.map +0 -1
  779. package/dist/shared/stores/companion-runtime.store.d.ts +0 -16
  780. package/dist/shared/stores/companion-runtime.store.d.ts.map +0 -1
  781. package/dist/shared/stores/companion-runtime.store.js +0 -29
  782. package/dist/shared/stores/companion-runtime.store.js.map +0 -1
  783. package/dist/shared/stores/local-ui-runtime.store.d.ts +0 -26
  784. package/dist/shared/stores/local-ui-runtime.store.d.ts.map +0 -1
  785. package/dist/shared/stores/local-ui-runtime.store.js +0 -56
  786. package/dist/shared/stores/local-ui-runtime.store.js.map +0 -1
  787. package/dist/shared/stores/managed-service-state.store.d.ts +0 -46
  788. package/dist/shared/stores/managed-service-state.store.d.ts.map +0 -1
  789. package/dist/shared/stores/managed-service-state.store.js +0 -40
  790. package/dist/shared/stores/managed-service-state.store.js.map +0 -1
  791. package/dist/shared/stores/pending-restart.store.d.ts +0 -22
  792. package/dist/shared/stores/pending-restart.store.d.ts.map +0 -1
  793. package/dist/shared/stores/pending-restart.store.js +0 -37
  794. package/dist/shared/stores/pending-restart.store.js.map +0 -1
  795. package/dist/shared/types/cli.types.d.ts +0 -304
  796. package/dist/shared/types/cli.types.d.ts.map +0 -1
  797. package/dist/shared/types/distribution.types.d.ts +0 -11
  798. package/dist/shared/types/distribution.types.d.ts.map +0 -1
  799. package/dist/shared/utils/cli.utils.d.ts +0 -32
  800. package/dist/shared/utils/cli.utils.d.ts.map +0 -1
  801. package/dist/shared/utils/cli.utils.js +0 -254
  802. package/dist/shared/utils/cli.utils.js.map +0 -1
  803. package/dist/shared/utils/config-path.d.ts +0 -16
  804. package/dist/shared/utils/config-path.d.ts.map +0 -1
  805. package/dist/shared/utils/config-path.js +0 -169
  806. package/dist/shared/utils/config-path.js.map +0 -1
  807. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts +0 -17
  808. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +0 -1
  809. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js +0 -48
  810. package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js.map +0 -1
  811. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts +0 -15
  812. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +0 -1
  813. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js +0 -47
  814. package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js.map +0 -1
  815. package/dist/shared/utils/package/package-manifest.utils.d.ts +0 -5
  816. package/dist/shared/utils/package/package-manifest.utils.d.ts.map +0 -1
  817. package/dist/shared/utils/package/package-manifest.utils.js +0 -40
  818. package/dist/shared/utils/package/package-manifest.utils.js.map +0 -1
  819. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +0 -5
  820. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +0 -1
  821. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +0 -37
  822. package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +0 -1
  823. package/dist/shared/utils/restart/restart-sentinel.utils.d.ts +0 -37
  824. package/dist/shared/utils/restart/restart-sentinel.utils.d.ts.map +0 -1
  825. package/dist/shared/utils/restart/restart-sentinel.utils.js +0 -76
  826. package/dist/shared/utils/restart/restart-sentinel.utils.js.map +0 -1
  827. package/dist/shared/utils/runtime-helpers.d.ts +0 -15
  828. package/dist/shared/utils/runtime-helpers.d.ts.map +0 -1
  829. package/dist/shared/utils/runtime-helpers.js +0 -28
  830. package/dist/shared/utils/runtime-helpers.js.map +0 -1
  831. package/dist/shared/utils/service-port-probe.utils.d.ts +0 -42
  832. package/dist/shared/utils/service-port-probe.utils.d.ts.map +0 -1
  833. package/dist/shared/utils/service-port-probe.utils.js +0 -166
  834. package/dist/shared/utils/service-port-probe.utils.js.map +0 -1
  835. package/dist/shared/utils/startup-trace.d.ts +0 -8
  836. package/dist/shared/utils/startup-trace.d.ts.map +0 -1
  837. package/dist/shared/utils/startup-trace.js +0 -39
  838. package/dist/shared/utils/startup-trace.js.map +0 -1
  839. package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts +0 -5
  840. package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts.map +0 -1
  841. package/dist/shared/utils/top-level-nextclaw-command-env.utils.js +0 -12
  842. package/dist/shared/utils/top-level-nextclaw-command-env.utils.js.map +0 -1
  843. /package/dist/{shared/types → types}/cli.types.js +0 -0
  844. /package/dist/{shared/types → types}/distribution.types.js +0 -0
  845. /package/dist/{commands/service/types/autostart → types}/host-autostart.types.js +0 -0
  846. /package/dist/{launcher → types}/npm-runtime-bundle.types.js +0 -0
@@ -0,0 +1,152 @@
1
+ import { NpmRuntimeBundleManifestReader } from "./npm-runtime-bundle-manifest.service.js";
2
+ import { existsSync } from "node:fs";
3
+ import { join, resolve } from "node:path";
4
+ import { cp, readdir, rename, rm } from "node:fs/promises";
5
+ //#region src/services/runtime/npm-runtime-bundle.service.ts
6
+ function shouldRetryInstallWithCopy(error) {
7
+ if (!error || typeof error !== "object") return false;
8
+ const code = "code" in error ? String(error.code) : "";
9
+ return code === "EXDEV" || code === "EPERM";
10
+ }
11
+ var NpmRuntimeBundleService = class {
12
+ manifestReader;
13
+ platform;
14
+ arch;
15
+ launcherVersion;
16
+ now;
17
+ constructor(options) {
18
+ this.options = options;
19
+ this.manifestReader = options.manifestReader ?? new NpmRuntimeBundleManifestReader();
20
+ this.platform = options.platform ?? process.platform;
21
+ this.arch = options.arch ?? process.arch;
22
+ this.launcherVersion = options.launcherVersion?.trim() || null;
23
+ this.now = options.now ?? Date.now;
24
+ }
25
+ resolveCurrentBundle = () => {
26
+ const pointer = this.options.layout.readCurrentPointer();
27
+ if (!pointer) return null;
28
+ return this.resolveVersion(pointer.version);
29
+ };
30
+ resolveVersion = (version) => {
31
+ const bundleDirectory = this.options.layout.getVersionDir(version);
32
+ const bundle = this.verifyBundle(bundleDirectory);
33
+ if (bundle.manifest.bundleVersion !== version) throw new Error(`runtime bundle version mismatch: pointer expects ${version} but manifest is ${bundle.manifest.bundleVersion}`);
34
+ return bundle;
35
+ };
36
+ installFromDirectory = async (sourceDirectory) => {
37
+ this.options.layout.ensureLauncherDirs();
38
+ const sourceBundle = this.verifyBundle(sourceDirectory);
39
+ const targetDirectory = this.options.layout.getVersionDir(sourceBundle.manifest.bundleVersion);
40
+ if (existsSync(targetDirectory)) return this.verifyBundle(targetDirectory);
41
+ try {
42
+ await rename(sourceDirectory, targetDirectory);
43
+ return this.verifyBundle(targetDirectory);
44
+ } catch (error) {
45
+ if (!shouldRetryInstallWithCopy(error)) throw error;
46
+ }
47
+ const stagingDirectory = join(this.options.layout.getStagingDir(), `${sourceBundle.manifest.bundleVersion}-${this.now()}`);
48
+ await rm(stagingDirectory, {
49
+ recursive: true,
50
+ force: true
51
+ });
52
+ try {
53
+ await cp(sourceDirectory, stagingDirectory, { recursive: true });
54
+ await rename(stagingDirectory, targetDirectory);
55
+ return this.verifyBundle(targetDirectory);
56
+ } catch (error) {
57
+ await rm(stagingDirectory, {
58
+ recursive: true,
59
+ force: true
60
+ });
61
+ throw error;
62
+ }
63
+ };
64
+ activateVersion = (version) => {
65
+ this.resolveVersion(version);
66
+ const currentPointer = this.options.layout.readCurrentPointer();
67
+ if (currentPointer) this.options.layout.writePreviousPointer(currentPointer);
68
+ this.options.layout.writeCurrentPointer({ version });
69
+ this.options.stateStore.update((state) => ({
70
+ ...state,
71
+ currentVersion: version,
72
+ previousVersion: currentPointer?.version ?? state.previousVersion,
73
+ candidateVersion: version,
74
+ candidateLaunchCount: 0,
75
+ downloadedVersion: null,
76
+ downloadedReleaseNotesUrl: null
77
+ }));
78
+ };
79
+ pruneRetainedArtifacts = async () => {
80
+ this.options.layout.ensureLauncherDirs();
81
+ const state = this.options.stateStore.read();
82
+ const retained = new Set([
83
+ state.currentVersion,
84
+ state.previousVersion,
85
+ state.candidateVersion,
86
+ state.lastKnownGoodVersion,
87
+ state.downloadedVersion,
88
+ this.options.layout.readCurrentPointer()?.version,
89
+ this.options.layout.readPreviousPointer()?.version
90
+ ].filter((version) => Boolean(version?.trim())));
91
+ const entries = await readdir(this.options.layout.getVersionsDir(), { withFileTypes: true });
92
+ for (const entry of entries.sort((left, right) => compareNpmRuntimeVersions(left.name, right.name))) {
93
+ if (!entry.isDirectory() || retained.has(entry.name)) continue;
94
+ await rm(join(this.options.layout.getVersionsDir(), entry.name), {
95
+ recursive: true,
96
+ force: true
97
+ });
98
+ }
99
+ await this.clearStagingDirectory();
100
+ };
101
+ clearStagingDirectory = async () => {
102
+ const entries = await readdir(this.options.layout.getStagingDir(), { withFileTypes: true });
103
+ await Promise.all(entries.map(async (entry) => await rm(join(this.options.layout.getStagingDir(), entry.name), {
104
+ recursive: true,
105
+ force: true
106
+ })));
107
+ };
108
+ verifyBundle = (bundleDirectory) => {
109
+ const manifest = this.manifestReader.readFile(resolve(bundleDirectory, "manifest.json"));
110
+ if (manifest.platform !== this.platform) throw new Error(`runtime bundle platform mismatch: expected ${this.platform} but got ${manifest.platform}`);
111
+ if (manifest.arch !== this.arch) throw new Error(`runtime bundle arch mismatch: expected ${this.arch} but got ${manifest.arch}`);
112
+ if (this.launcherVersion && compareNpmRuntimeVersions(this.launcherVersion, manifest.launcherCompatibility.minVersion) < 0) throw new Error(`runtime bundle requires launcher >= ${manifest.launcherCompatibility.minVersion} but current launcher is ${this.launcherVersion}`);
113
+ const runtimeScriptPath = resolve(bundleDirectory, manifest.entrypoints.runtimeScript);
114
+ if (!existsSync(runtimeScriptPath)) throw new Error(`runtime bundle script missing: ${runtimeScriptPath}`);
115
+ return {
116
+ bundleDirectory,
117
+ manifest,
118
+ runtimeScriptPath
119
+ };
120
+ };
121
+ };
122
+ function compareNpmRuntimeVersions(left, right) {
123
+ const [leftCore = "", leftPrerelease = ""] = left.split("+")[0]?.split("-", 2) ?? [];
124
+ const [rightCore = "", rightPrerelease = ""] = right.split("+")[0]?.split("-", 2) ?? [];
125
+ const leftParts = parseVersionParts(leftCore);
126
+ const rightParts = parseVersionParts(rightCore);
127
+ const length = Math.max(leftParts.length, rightParts.length);
128
+ for (let index = 0; index < length; index += 1) {
129
+ const compared = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);
130
+ if (compared !== 0) return compared;
131
+ }
132
+ if (!leftPrerelease || !rightPrerelease) return Number(!leftPrerelease) - Number(!rightPrerelease);
133
+ return leftPrerelease.localeCompare(rightPrerelease, void 0, { numeric: true });
134
+ }
135
+ function resolveEffectiveNpmRuntimeVersion(params) {
136
+ const launcherVersion = params.launcherVersion?.trim() || null;
137
+ const currentBundleVersion = params.currentBundleVersion?.trim() || null;
138
+ if (!launcherVersion) return currentBundleVersion;
139
+ if (!currentBundleVersion) return launcherVersion;
140
+ return compareNpmRuntimeVersions(launcherVersion, currentBundleVersion) > 0 ? launcherVersion : currentBundleVersion;
141
+ }
142
+ function shouldPreferPackagedNpmRuntime(params) {
143
+ const launcherVersion = params.launcherVersion?.trim() || null;
144
+ return Boolean(launcherVersion) && resolveEffectiveNpmRuntimeVersion(params) === launcherVersion;
145
+ }
146
+ function parseVersionParts(version) {
147
+ return version.split(".").map((part) => Number(part)).map((part) => Number.isFinite(part) ? part : 0);
148
+ }
149
+ //#endregion
150
+ export { NpmRuntimeBundleService, compareNpmRuntimeVersions, resolveEffectiveNpmRuntimeVersion, shouldPreferPackagedNpmRuntime };
151
+
152
+ //# sourceMappingURL=npm-runtime-bundle.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-bundle.service.js","names":[],"sources":["../../../src/services/runtime/npm-runtime-bundle.service.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { cp, readdir, rename, rm } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { NpmRuntimeBundleManifestReader } from \"@nextclaw-service/services/runtime/npm-runtime-bundle-manifest.service.js\";\nimport type { NpmRuntimeBundleLayoutStore } from \"@nextclaw-service/stores/npm-runtime-bundle-layout.store.js\";\nimport type { NpmRuntimeBundleManifest } from \"@nextclaw-service/types/npm-runtime-bundle.types.js\";\nimport type { NpmRuntimeUpdateStateStore } from \"@nextclaw-service/stores/npm-runtime-update-state.store.js\";\n\nexport type ResolvedNpmRuntimeBundle = {\n bundleDirectory: string;\n manifest: NpmRuntimeBundleManifest;\n runtimeScriptPath: string;\n};\n\ntype NpmRuntimeBundleServiceOptions = {\n layout: NpmRuntimeBundleLayoutStore;\n stateStore: NpmRuntimeUpdateStateStore;\n manifestReader?: NpmRuntimeBundleManifestReader;\n platform?: NodeJS.Platform;\n arch?: string;\n launcherVersion?: string;\n now?: () => number;\n};\n\nfunction shouldRetryInstallWithCopy(error: unknown): boolean {\n if (!error || typeof error !== \"object\") {\n return false;\n }\n const code = \"code\" in error ? String(error.code) : \"\";\n return code === \"EXDEV\" || code === \"EPERM\";\n}\n\nexport class NpmRuntimeBundleService {\n private readonly manifestReader: NpmRuntimeBundleManifestReader;\n private readonly platform: NodeJS.Platform;\n private readonly arch: string;\n private readonly launcherVersion: string | null;\n private readonly now: () => number;\n\n constructor(private readonly options: NpmRuntimeBundleServiceOptions) {\n this.manifestReader = options.manifestReader ?? new NpmRuntimeBundleManifestReader();\n this.platform = options.platform ?? process.platform;\n this.arch = options.arch ?? process.arch;\n this.launcherVersion = options.launcherVersion?.trim() || null;\n this.now = options.now ?? Date.now;\n }\n\n resolveCurrentBundle = (): ResolvedNpmRuntimeBundle | null => {\n const pointer = this.options.layout.readCurrentPointer();\n if (!pointer) {\n return null;\n }\n return this.resolveVersion(pointer.version);\n };\n\n resolveVersion = (version: string): ResolvedNpmRuntimeBundle => {\n const bundleDirectory = this.options.layout.getVersionDir(version);\n const bundle = this.verifyBundle(bundleDirectory);\n if (bundle.manifest.bundleVersion !== version) {\n throw new Error(`runtime bundle version mismatch: pointer expects ${version} but manifest is ${bundle.manifest.bundleVersion}`);\n }\n return bundle;\n };\n\n installFromDirectory = async (sourceDirectory: string): Promise<ResolvedNpmRuntimeBundle> => {\n this.options.layout.ensureLauncherDirs();\n const sourceBundle = this.verifyBundle(sourceDirectory);\n const targetDirectory = this.options.layout.getVersionDir(sourceBundle.manifest.bundleVersion);\n if (existsSync(targetDirectory)) {\n return this.verifyBundle(targetDirectory);\n }\n\n try {\n await rename(sourceDirectory, targetDirectory);\n return this.verifyBundle(targetDirectory);\n } catch (error) {\n if (!shouldRetryInstallWithCopy(error)) {\n throw error;\n }\n }\n\n const stagingDirectory = join(this.options.layout.getStagingDir(), `${sourceBundle.manifest.bundleVersion}-${this.now()}`);\n await rm(stagingDirectory, { recursive: true, force: true });\n try {\n await cp(sourceDirectory, stagingDirectory, { recursive: true });\n await rename(stagingDirectory, targetDirectory);\n return this.verifyBundle(targetDirectory);\n } catch (error) {\n await rm(stagingDirectory, { recursive: true, force: true });\n throw error;\n }\n };\n\n activateVersion = (version: string): void => {\n this.resolveVersion(version);\n const currentPointer = this.options.layout.readCurrentPointer();\n if (currentPointer) {\n this.options.layout.writePreviousPointer(currentPointer);\n }\n this.options.layout.writeCurrentPointer({ version });\n this.options.stateStore.update((state) => ({\n ...state,\n currentVersion: version,\n previousVersion: currentPointer?.version ?? state.previousVersion,\n candidateVersion: version,\n candidateLaunchCount: 0,\n downloadedVersion: null,\n downloadedReleaseNotesUrl: null\n }));\n };\n\n pruneRetainedArtifacts = async (): Promise<void> => {\n this.options.layout.ensureLauncherDirs();\n const state = this.options.stateStore.read();\n const retained = new Set(\n [\n state.currentVersion,\n state.previousVersion,\n state.candidateVersion,\n state.lastKnownGoodVersion,\n state.downloadedVersion,\n this.options.layout.readCurrentPointer()?.version,\n this.options.layout.readPreviousPointer()?.version\n ].filter((version): version is string => Boolean(version?.trim()))\n );\n\n const entries = await readdir(this.options.layout.getVersionsDir(), { withFileTypes: true });\n for (const entry of entries.sort((left, right) => compareNpmRuntimeVersions(left.name, right.name))) {\n if (!entry.isDirectory() || retained.has(entry.name)) {\n continue;\n }\n await rm(join(this.options.layout.getVersionsDir(), entry.name), { recursive: true, force: true });\n }\n await this.clearStagingDirectory();\n };\n\n private clearStagingDirectory = async (): Promise<void> => {\n const entries = await readdir(this.options.layout.getStagingDir(), { withFileTypes: true });\n await Promise.all(entries.map(async (entry) => await rm(join(this.options.layout.getStagingDir(), entry.name), { recursive: true, force: true })));\n };\n\n private verifyBundle = (bundleDirectory: string): ResolvedNpmRuntimeBundle => {\n const manifest = this.manifestReader.readFile(resolve(bundleDirectory, \"manifest.json\"));\n if (manifest.platform !== this.platform) {\n throw new Error(`runtime bundle platform mismatch: expected ${this.platform} but got ${manifest.platform}`);\n }\n if (manifest.arch !== this.arch) {\n throw new Error(`runtime bundle arch mismatch: expected ${this.arch} but got ${manifest.arch}`);\n }\n if (this.launcherVersion && compareNpmRuntimeVersions(this.launcherVersion, manifest.launcherCompatibility.minVersion) < 0) {\n throw new Error(`runtime bundle requires launcher >= ${manifest.launcherCompatibility.minVersion} but current launcher is ${this.launcherVersion}`);\n }\n const runtimeScriptPath = resolve(bundleDirectory, manifest.entrypoints.runtimeScript);\n if (!existsSync(runtimeScriptPath)) {\n throw new Error(`runtime bundle script missing: ${runtimeScriptPath}`);\n }\n return {\n bundleDirectory,\n manifest,\n runtimeScriptPath\n };\n };\n}\n\nexport function compareNpmRuntimeVersions(left: string, right: string): number {\n const [leftCore = \"\", leftPrerelease = \"\"] = left.split(\"+\")[0]?.split(\"-\", 2) ?? [];\n const [rightCore = \"\", rightPrerelease = \"\"] = right.split(\"+\")[0]?.split(\"-\", 2) ?? [];\n const leftParts = parseVersionParts(leftCore);\n const rightParts = parseVersionParts(rightCore);\n const length = Math.max(leftParts.length, rightParts.length);\n for (let index = 0; index < length; index += 1) {\n const compared = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);\n if (compared !== 0) {\n return compared;\n }\n }\n if (!leftPrerelease || !rightPrerelease) {\n return Number(!leftPrerelease) - Number(!rightPrerelease);\n }\n return leftPrerelease.localeCompare(rightPrerelease, undefined, { numeric: true });\n}\n\nexport function resolveEffectiveNpmRuntimeVersion(params: {\n launcherVersion: string | null;\n currentBundleVersion: string | null;\n}): string | null {\n const launcherVersion = params.launcherVersion?.trim() || null;\n const currentBundleVersion = params.currentBundleVersion?.trim() || null;\n if (!launcherVersion) {\n return currentBundleVersion;\n }\n if (!currentBundleVersion) {\n return launcherVersion;\n }\n return compareNpmRuntimeVersions(launcherVersion, currentBundleVersion) > 0\n ? launcherVersion\n : currentBundleVersion;\n}\n\nexport function shouldPreferPackagedNpmRuntime(params: {\n launcherVersion: string | null;\n currentBundleVersion: string | null;\n}): boolean {\n const launcherVersion = params.launcherVersion?.trim() || null;\n return Boolean(launcherVersion) && resolveEffectiveNpmRuntimeVersion(params) === launcherVersion;\n}\n\nfunction parseVersionParts(version: string): number[] {\n return version\n .split(\".\")\n .map((part) => Number(part))\n .map((part) => (Number.isFinite(part) ? part : 0));\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { UpdateCommandOptions } from "../../types/cli.types.js";
2
+ import { UpdateSnapshot } from "@nextclaw/kernel";
3
+
4
+ //#region src/services/runtime/npm-runtime-update-command.service.d.ts
5
+ declare class NpmRuntimeUpdateCommandService {
6
+ private readonly env;
7
+ constructor(env?: NodeJS.ProcessEnv);
8
+ run: (opts: UpdateCommandOptions) => Promise<UpdateSnapshot>;
9
+ runManaged: (opts: UpdateCommandOptions) => Promise<UpdateSnapshot>;
10
+ private printProgress;
11
+ private printSnapshot;
12
+ private createDesktopCommandSurfaceBlockedSnapshot;
13
+ }
14
+ //#endregion
15
+ export { NpmRuntimeUpdateCommandService };
16
+ //# sourceMappingURL=npm-runtime-update-command.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-update-command.service.d.ts","names":[],"sources":["../../../src/services/runtime/npm-runtime-update-command.service.ts"],"mappings":";;;;cAUa,8BAAA;EAAA,iBACkB,GAAA;cAAA,GAAA,GAAK,MAAA,CAAO,UAAA;EAEzC,GAAA,GAAa,IAAA,EAAM,oBAAA,KAAuB,OAAA,CAAQ,cAAA;EAUlD,UAAA,GAAoB,IAAA,EAAM,oBAAA,KAAuB,OAAA,CAAQ,cAAA;EAAA,QA8CjD,aAAA;EAAA,QASA,aAAA;EAAA,QAiCA,0CAAA;AAAA"}
@@ -0,0 +1,120 @@
1
+ import { NpmRuntimeBundleLayoutStore } from "../../stores/npm-runtime-bundle-layout.store.js";
2
+ import { NpmRuntimeBundleService } from "./npm-runtime-bundle.service.js";
3
+ import { RuntimeUpdateManager } from "../../managers/runtime-update.manager.js";
4
+ import { NpmRuntimeUpdateService } from "./npm-runtime-update.service.js";
5
+ import { NpmRuntimeUpdateSourceService } from "./npm-runtime-update-source.service.js";
6
+ import { NpmRuntimeUpdateStateStore } from "../../stores/npm-runtime-update-state.store.js";
7
+ import { NextclawDistributionService } from "./nextclaw-distribution.service.js";
8
+ //#region src/services/runtime/npm-runtime-update-command.service.ts
9
+ var NpmRuntimeUpdateCommandService = class {
10
+ constructor(env = process.env) {
11
+ this.env = env;
12
+ }
13
+ run = async (opts) => {
14
+ const snapshot = await this.runManaged(opts);
15
+ if (opts.json) console.log(JSON.stringify(snapshot, null, 2));
16
+ else this.printSnapshot(snapshot);
17
+ return snapshot;
18
+ };
19
+ runManaged = async (opts) => {
20
+ if (this.env.NEXTCLAW_DESKTOP_COMMAND_SURFACE === "1") return this.createDesktopCommandSurfaceBlockedSnapshot(opts);
21
+ const downloadOnly = Boolean(opts.downloadOnly || opts.download);
22
+ const distribution = NextclawDistributionService.get();
23
+ const source = new NpmRuntimeUpdateSourceService({ packagedPublicKeyPath: distribution.runtimeUpdatePublicKeyPath });
24
+ const launcherVersion = distribution.version;
25
+ const channel = source.resolveChannel(opts.channel, launcherVersion);
26
+ const manifestUrl = source.resolveManifestUrl(channel, opts.manifestUrl);
27
+ const layout = new NpmRuntimeBundleLayoutStore();
28
+ const stateStore = new NpmRuntimeUpdateStateStore(layout.getStatePath(), { defaultChannel: channel });
29
+ const bundleService = new NpmRuntimeBundleService({
30
+ layout,
31
+ stateStore,
32
+ launcherVersion
33
+ });
34
+ return await new RuntimeUpdateManager({
35
+ layout,
36
+ stateStore,
37
+ bundleService,
38
+ updateService: new NpmRuntimeUpdateService({
39
+ layout,
40
+ bundleService,
41
+ launcherVersion,
42
+ bundlePublicKey: source.resolveBundlePublicKey() ?? void 0
43
+ }),
44
+ resolveManifestUrl: () => manifestUrl,
45
+ launcherVersion,
46
+ channel
47
+ }).run({
48
+ apply: Boolean(opts.apply),
49
+ checkOnly: Boolean(opts.check),
50
+ applyAfterDownload: !downloadOnly,
51
+ onProgress: opts.json ? void 0 : this.printProgress
52
+ });
53
+ };
54
+ printProgress = (progress) => {
55
+ const percent = progress.percent === null ? "" : ` ${progress.percent}%`;
56
+ const total = progress.totalBytes === null ? "" : ` / ${progress.totalBytes} bytes`;
57
+ process.stdout.write(`\rDownloading${percent} (${progress.downloadedBytes} bytes${total})`);
58
+ if (progress.percent === 100) process.stdout.write("\n");
59
+ };
60
+ printSnapshot = (snapshot) => {
61
+ if (snapshot.status === "blocked") {
62
+ console.error(`Update blocked: ${snapshot.errorMessage ?? snapshot.blockReason ?? "unknown reason"}`);
63
+ if (snapshot.recoveryCommand) console.error(`Recovery: ${snapshot.recoveryCommand}`);
64
+ return;
65
+ }
66
+ if (snapshot.status === "failed") {
67
+ console.error(`Update failed: ${snapshot.errorMessage ?? "unknown error"}`);
68
+ return;
69
+ }
70
+ if (snapshot.status === "up-to-date") {
71
+ console.log(`NextClaw runtime is already up to date (${snapshot.currentVersion ?? snapshot.hostVersion ?? "unknown"}).`);
72
+ return;
73
+ }
74
+ if (snapshot.status === "downloaded") {
75
+ console.log(`Runtime update downloaded: ${snapshot.downloadedVersion ?? snapshot.availableVersion}`);
76
+ console.log("Run `nextclaw update --apply` to switch to the downloaded runtime.");
77
+ return;
78
+ }
79
+ if (snapshot.status === "restart-required") {
80
+ console.log(`Runtime update applied: ${snapshot.currentVersion}`);
81
+ console.log("Restart the running NextClaw service or start a new CLI process to use it.");
82
+ return;
83
+ }
84
+ if (snapshot.status === "update-available") {
85
+ console.log(`Runtime update available: ${snapshot.currentVersion ?? "none"} -> ${snapshot.availableVersion}`);
86
+ return;
87
+ }
88
+ console.log(`Update status: ${snapshot.status}`);
89
+ };
90
+ createDesktopCommandSurfaceBlockedSnapshot = (opts) => {
91
+ const distribution = NextclawDistributionService.get();
92
+ return {
93
+ status: "blocked",
94
+ installationKind: "desktop-bundle",
95
+ channel: opts.channel === "beta" ? "beta" : "stable",
96
+ hostVersion: distribution.version,
97
+ currentVersion: distribution.version,
98
+ availableVersion: null,
99
+ downloadedVersion: null,
100
+ minimumHostVersion: null,
101
+ releaseNotesUrl: null,
102
+ lastCheckedAt: (/* @__PURE__ */ new Date()).toISOString(),
103
+ progress: null,
104
+ canAutoDownload: false,
105
+ canApplyInApp: false,
106
+ requiresRestart: false,
107
+ blockReason: "unsupported-installation",
108
+ recoveryCommand: "Use the desktop update settings or restart NextClaw Desktop to check for desktop updates.",
109
+ errorMessage: "The desktop-installed nextclaw command uses the desktop update channel instead of the npm runtime updater.",
110
+ preferences: {
111
+ automaticChecks: false,
112
+ autoDownload: false
113
+ }
114
+ };
115
+ };
116
+ };
117
+ //#endregion
118
+ export { NpmRuntimeUpdateCommandService };
119
+
120
+ //# sourceMappingURL=npm-runtime-update-command.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-update-command.service.js","names":[],"sources":["../../../src/services/runtime/npm-runtime-update-command.service.ts"],"sourcesContent":["import { NpmRuntimeBundleLayoutStore } from \"@nextclaw-service/stores/npm-runtime-bundle-layout.store.js\";\nimport { NpmRuntimeBundleService } from \"@nextclaw-service/services/runtime/npm-runtime-bundle.service.js\";\nimport { RuntimeUpdateManager } from \"@nextclaw-service/managers/runtime-update.manager.js\";\nimport { NpmRuntimeUpdateService } from \"@nextclaw-service/services/runtime/npm-runtime-update.service.js\";\nimport { NpmRuntimeUpdateSourceService } from \"@nextclaw-service/services/runtime/npm-runtime-update-source.service.js\";\nimport { NpmRuntimeUpdateStateStore } from \"@nextclaw-service/stores/npm-runtime-update-state.store.js\";\nimport { NextclawDistributionService } from \"@nextclaw-service/services/runtime/nextclaw-distribution.service.js\";\nimport type { UpdateCommandOptions } from \"@nextclaw-service/types/cli.types.js\";\nimport type { UpdateProgress, UpdateSnapshot } from \"@nextclaw/kernel\";\n\nexport class NpmRuntimeUpdateCommandService {\n constructor(private readonly env: NodeJS.ProcessEnv = process.env) {}\n\n run = async (opts: UpdateCommandOptions): Promise<UpdateSnapshot> => {\n const snapshot = await this.runManaged(opts);\n if (opts.json) {\n console.log(JSON.stringify(snapshot, null, 2));\n } else {\n this.printSnapshot(snapshot);\n }\n return snapshot;\n };\n\n runManaged = async (opts: UpdateCommandOptions): Promise<UpdateSnapshot> => {\n if (this.env.NEXTCLAW_DESKTOP_COMMAND_SURFACE === \"1\") {\n return this.createDesktopCommandSurfaceBlockedSnapshot(opts);\n }\n\n const downloadOnly = Boolean(opts.downloadOnly || opts.download);\n const distribution = NextclawDistributionService.get();\n const source = new NpmRuntimeUpdateSourceService({\n packagedPublicKeyPath: distribution.runtimeUpdatePublicKeyPath,\n });\n const launcherVersion = distribution.version;\n const channel = source.resolveChannel(opts.channel, launcherVersion);\n const manifestUrl = source.resolveManifestUrl(channel, opts.manifestUrl);\n const layout = new NpmRuntimeBundleLayoutStore();\n const stateStore = new NpmRuntimeUpdateStateStore(layout.getStatePath(), {\n defaultChannel: channel\n });\n const bundleService = new NpmRuntimeBundleService({\n layout,\n stateStore,\n launcherVersion\n });\n const updateService = new NpmRuntimeUpdateService({\n layout,\n bundleService,\n launcherVersion,\n bundlePublicKey: source.resolveBundlePublicKey() ?? undefined\n });\n const manager = new RuntimeUpdateManager({\n layout,\n stateStore,\n bundleService,\n updateService,\n resolveManifestUrl: () => manifestUrl,\n launcherVersion,\n channel\n });\n\n return await manager.run({\n apply: Boolean(opts.apply),\n checkOnly: Boolean(opts.check),\n applyAfterDownload: !downloadOnly,\n onProgress: opts.json ? undefined : this.printProgress\n });\n };\n\n private printProgress = (progress: UpdateProgress): void => {\n const percent = progress.percent === null ? \"\" : ` ${progress.percent}%`;\n const total = progress.totalBytes === null ? \"\" : ` / ${progress.totalBytes} bytes`;\n process.stdout.write(`\\rDownloading${percent} (${progress.downloadedBytes} bytes${total})`);\n if (progress.percent === 100) {\n process.stdout.write(\"\\n\");\n }\n };\n\n private printSnapshot = (snapshot: UpdateSnapshot): void => {\n if (snapshot.status === \"blocked\") {\n console.error(`Update blocked: ${snapshot.errorMessage ?? snapshot.blockReason ?? \"unknown reason\"}`);\n if (snapshot.recoveryCommand) {\n console.error(`Recovery: ${snapshot.recoveryCommand}`);\n }\n return;\n }\n if (snapshot.status === \"failed\") {\n console.error(`Update failed: ${snapshot.errorMessage ?? \"unknown error\"}`);\n return;\n }\n if (snapshot.status === \"up-to-date\") {\n console.log(`NextClaw runtime is already up to date (${snapshot.currentVersion ?? snapshot.hostVersion ?? \"unknown\"}).`);\n return;\n }\n if (snapshot.status === \"downloaded\") {\n console.log(`Runtime update downloaded: ${snapshot.downloadedVersion ?? snapshot.availableVersion}`);\n console.log(\"Run `nextclaw update --apply` to switch to the downloaded runtime.\");\n return;\n }\n if (snapshot.status === \"restart-required\") {\n console.log(`Runtime update applied: ${snapshot.currentVersion}`);\n console.log(\"Restart the running NextClaw service or start a new CLI process to use it.\");\n return;\n }\n if (snapshot.status === \"update-available\") {\n console.log(`Runtime update available: ${snapshot.currentVersion ?? \"none\"} -> ${snapshot.availableVersion}`);\n return;\n }\n console.log(`Update status: ${snapshot.status}`);\n };\n\n private createDesktopCommandSurfaceBlockedSnapshot = (opts: UpdateCommandOptions): UpdateSnapshot => {\n const distribution = NextclawDistributionService.get();\n return {\n status: \"blocked\",\n installationKind: \"desktop-bundle\",\n channel: opts.channel === \"beta\" ? \"beta\" : \"stable\",\n hostVersion: distribution.version,\n currentVersion: distribution.version,\n availableVersion: null,\n downloadedVersion: null,\n minimumHostVersion: null,\n releaseNotesUrl: null,\n lastCheckedAt: new Date().toISOString(),\n progress: null,\n canAutoDownload: false,\n canApplyInApp: false,\n requiresRestart: false,\n blockReason: \"unsupported-installation\",\n recoveryCommand: \"Use the desktop update settings or restart NextClaw Desktop to check for desktop updates.\",\n errorMessage: \"The desktop-installed nextclaw command uses the desktop update channel instead of the npm runtime updater.\",\n preferences: {\n automaticChecks: false,\n autoDownload: false\n }\n };\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { RequestRestartParams } from "../../types/cli.types.js";
2
+ import { Config } from "@nextclaw/core";
3
+ import { UiRuntimeUpdateHost } from "@nextclaw/server";
4
+ import { EventBus, UpdatePreferences, UpdateSnapshot } from "@nextclaw/shared";
5
+
6
+ //#region src/services/runtime/npm-runtime-update-host.service.d.ts
7
+ type NpmRuntimeUpdateHostDeps = {
8
+ eventBus: EventBus;
9
+ requestRestart: (params: RequestRestartParams) => Promise<void>;
10
+ uiConfig: Pick<Config["ui"], "port">;
11
+ applyRestartMode: "managed-service-restart" | "manual-process-restart";
12
+ };
13
+ declare class NpmRuntimeUpdateHost implements UiRuntimeUpdateHost {
14
+ private readonly deps;
15
+ private readonly source;
16
+ private readonly layout;
17
+ private readonly launcherVersion;
18
+ private readonly stateStore;
19
+ private readonly bundleService;
20
+ private readonly updateService;
21
+ private snapshot;
22
+ private activeTask;
23
+ private automaticSyncStarted;
24
+ constructor(deps: NpmRuntimeUpdateHostDeps);
25
+ getState: () => Promise<UpdateSnapshot>;
26
+ checkForUpdates: () => Promise<UpdateSnapshot>;
27
+ downloadUpdate: () => Promise<UpdateSnapshot>;
28
+ applyDownloadedUpdate: () => Promise<UpdateSnapshot>;
29
+ updatePreferences: (preferences: Partial<UpdatePreferences>) => Promise<UpdateSnapshot>;
30
+ updateChannel: (channel: UpdateSnapshot["channel"]) => Promise<UpdateSnapshot>;
31
+ private startAutomaticSync;
32
+ private startCheck;
33
+ private startDownload;
34
+ private runDownloadTask;
35
+ private createManager;
36
+ private toFailedSnapshot;
37
+ private setSnapshot;
38
+ }
39
+ //#endregion
40
+ export { NpmRuntimeUpdateHost };
41
+ //# sourceMappingURL=npm-runtime-update-host.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-update-host.service.d.ts","names":[],"sources":["../../../src/services/runtime/npm-runtime-update-host.service.ts"],"mappings":";;;;;;KAyBK,wBAAA;EACH,QAAA,EAAU,QAAA;EACV,cAAA,GAAiB,MAAA,EAAQ,oBAAA,KAAyB,OAAA;EAClD,QAAA,EAAU,IAAA,CAAK,MAAA;EACf,gBAAA;AAAA;AAAA,cAGW,oBAAA,YAAgC,mBAAA;EAAA,iBAWd,IAAA;EAAA,iBAVZ,MAAA;EAAA,iBACA,MAAA;EAAA,iBACA,eAAA;EAAA,iBACA,UAAA;EAAA,iBACA,aAAA;EAAA,iBACA,aAAA;EAAA,QACT,QAAA;EAAA,QACA,UAAA;EAAA,QACA,oBAAA;cAEqB,IAAA,EAAM,wBAAA;EAyBnC,QAAA,QAAqB,OAAA,CAAQ,cAAA;EAK7B,eAAA,QAA4B,OAAA,CAAQ,cAAA;EAIpC,cAAA,QAA2B,OAAA,CAAQ,cAAA;EAInC,qBAAA,QAAkC,OAAA,CAAQ,cAAA;EAkC1C,iBAAA,GAA2B,WAAA,EAAa,OAAA,CAAQ,iBAAA,MAAqB,OAAA,CAAQ,cAAA;EAe7E,aAAA,GAAuB,OAAA,EAAS,cAAA,gBAA4B,OAAA,CAAQ,cAAA;EAAA,QAY5D,kBAAA;EAAA,QAeA,UAAA;EAAA,QA2BA,aAAA;EAAA,QAuBA,eAAA;EAAA,QAYA,aAAA;EAAA,QAYA,gBAAA;EAAA,QASA,WAAA;AAAA"}
@@ -0,0 +1,189 @@
1
+ import { NpmRuntimeBundleLayoutStore } from "../../stores/npm-runtime-bundle-layout.store.js";
2
+ import { NpmRuntimeBundleService } from "./npm-runtime-bundle.service.js";
3
+ import { RuntimeUpdateManager } from "../../managers/runtime-update.manager.js";
4
+ import { NpmRuntimeUpdateService } from "./npm-runtime-update.service.js";
5
+ import { NpmRuntimeUpdateSourceService } from "./npm-runtime-update-source.service.js";
6
+ import { NpmRuntimeUpdateStateStore } from "../../stores/npm-runtime-update-state.store.js";
7
+ import { NextclawDistributionService } from "./nextclaw-distribution.service.js";
8
+ import { requestManagedServiceRestart } from "../ui/service-remote-access.service.js";
9
+ import { eventKeys } from "@nextclaw/shared";
10
+ //#region src/services/runtime/npm-runtime-update-host.service.ts
11
+ const INITIAL_DOWNLOAD_PROGRESS = {
12
+ downloadedBytes: 0,
13
+ totalBytes: null,
14
+ percent: null
15
+ };
16
+ var NpmRuntimeUpdateHost = class {
17
+ source;
18
+ layout;
19
+ launcherVersion;
20
+ stateStore;
21
+ bundleService;
22
+ updateService;
23
+ snapshot;
24
+ activeTask = null;
25
+ automaticSyncStarted = false;
26
+ constructor(deps) {
27
+ this.deps = deps;
28
+ const distribution = NextclawDistributionService.get();
29
+ this.source = new NpmRuntimeUpdateSourceService({ packagedPublicKeyPath: distribution.runtimeUpdatePublicKeyPath });
30
+ this.layout = new NpmRuntimeBundleLayoutStore();
31
+ this.launcherVersion = distribution.version;
32
+ this.stateStore = new NpmRuntimeUpdateStateStore(this.layout.getStatePath(), { defaultChannel: this.source.resolveChannel(void 0, this.launcherVersion) });
33
+ this.bundleService = new NpmRuntimeBundleService({
34
+ layout: this.layout,
35
+ stateStore: this.stateStore,
36
+ launcherVersion: this.launcherVersion
37
+ });
38
+ this.updateService = new NpmRuntimeUpdateService({
39
+ layout: this.layout,
40
+ bundleService: this.bundleService,
41
+ launcherVersion: this.launcherVersion,
42
+ bundlePublicKey: this.source.resolveBundlePublicKey() ?? void 0
43
+ });
44
+ this.snapshot = this.createManager().getSnapshot();
45
+ this.startAutomaticSync();
46
+ }
47
+ getState = async () => {
48
+ this.startAutomaticSync();
49
+ return this.snapshot;
50
+ };
51
+ checkForUpdates = async () => {
52
+ return this.startCheck({ autoDownload: false });
53
+ };
54
+ downloadUpdate = async () => {
55
+ return this.startDownload();
56
+ };
57
+ applyDownloadedUpdate = async () => {
58
+ if (this.activeTask) return this.snapshot;
59
+ this.setSnapshot({
60
+ ...this.snapshot,
61
+ status: "applying",
62
+ progress: null,
63
+ errorMessage: null
64
+ });
65
+ try {
66
+ const snapshot = this.createManager().applyDownloadedUpdate();
67
+ this.setSnapshot(this.deps.applyRestartMode === "managed-service-restart" ? snapshot : {
68
+ ...snapshot,
69
+ recoveryCommand: "Restart this NextClaw process to launch the downloaded runtime."
70
+ });
71
+ if (this.deps.applyRestartMode === "managed-service-restart") await requestManagedServiceRestart(this.deps.requestRestart, {
72
+ reason: "runtime update apply",
73
+ uiPort: this.deps.uiConfig.port
74
+ });
75
+ return this.snapshot;
76
+ } catch (error) {
77
+ this.setSnapshot(this.toFailedSnapshot(error));
78
+ throw error;
79
+ }
80
+ };
81
+ updatePreferences = async (preferences) => {
82
+ const nextState = this.stateStore.update((current) => ({
83
+ ...current,
84
+ updatePreferences: {
85
+ ...current.updatePreferences,
86
+ ...preferences
87
+ }
88
+ }));
89
+ this.setSnapshot(this.createManager(nextState.channel).getSnapshot());
90
+ if (nextState.updatePreferences.automaticChecks) this.startAutomaticSync({ force: true });
91
+ return this.snapshot;
92
+ };
93
+ updateChannel = async (channel) => {
94
+ const nextState = this.stateStore.update((current) => ({
95
+ ...current,
96
+ channel
97
+ }));
98
+ this.setSnapshot(this.createManager(nextState.channel).getSnapshot());
99
+ if (nextState.updatePreferences.automaticChecks) return this.startCheck({ autoDownload: nextState.updatePreferences.autoDownload });
100
+ return this.snapshot;
101
+ };
102
+ startAutomaticSync = (options = {}) => {
103
+ if (this.activeTask) return;
104
+ if (this.automaticSyncStarted && !options.force) return;
105
+ this.automaticSyncStarted = true;
106
+ const state = this.stateStore.read();
107
+ if (!state.updatePreferences.automaticChecks || state.downloadedVersion) return;
108
+ this.startCheck({ autoDownload: state.updatePreferences.autoDownload });
109
+ };
110
+ startCheck = async (options) => {
111
+ if (this.activeTask) return this.snapshot;
112
+ this.setSnapshot({
113
+ ...this.createManager().getSnapshot(),
114
+ status: "checking",
115
+ progress: null,
116
+ errorMessage: null
117
+ });
118
+ this.activeTask = (async () => {
119
+ try {
120
+ const checkedSnapshot = await this.createManager().checkForUpdate();
121
+ this.setSnapshot(checkedSnapshot);
122
+ if (options.autoDownload && checkedSnapshot.status === "update-available") await this.runDownloadTask();
123
+ } catch (error) {
124
+ this.setSnapshot(this.toFailedSnapshot(error));
125
+ } finally {
126
+ this.activeTask = null;
127
+ }
128
+ })();
129
+ return this.snapshot;
130
+ };
131
+ startDownload = async () => {
132
+ if (this.activeTask) return this.snapshot;
133
+ this.setSnapshot({
134
+ ...this.createManager().getSnapshot(),
135
+ status: "downloading",
136
+ progress: INITIAL_DOWNLOAD_PROGRESS,
137
+ errorMessage: null
138
+ });
139
+ this.activeTask = (async () => {
140
+ try {
141
+ await this.runDownloadTask();
142
+ } catch (error) {
143
+ this.setSnapshot(this.toFailedSnapshot(error));
144
+ } finally {
145
+ this.activeTask = null;
146
+ }
147
+ })();
148
+ return this.snapshot;
149
+ };
150
+ runDownloadTask = async () => {
151
+ const downloadedSnapshot = await this.createManager().downloadUpdate((progress) => {
152
+ this.setSnapshot({
153
+ ...this.snapshot,
154
+ status: "downloading",
155
+ progress,
156
+ errorMessage: null
157
+ });
158
+ });
159
+ this.setSnapshot(downloadedSnapshot);
160
+ };
161
+ createManager = (channel = this.stateStore.read().channel) => {
162
+ return new RuntimeUpdateManager({
163
+ layout: this.layout,
164
+ stateStore: this.stateStore,
165
+ bundleService: this.bundleService,
166
+ updateService: this.updateService,
167
+ resolveManifestUrl: (resolvedChannel) => this.source.resolveManifestUrl(resolvedChannel),
168
+ launcherVersion: this.launcherVersion,
169
+ channel
170
+ });
171
+ };
172
+ toFailedSnapshot = (error) => {
173
+ return {
174
+ ...this.createManager().getSnapshot(),
175
+ status: "failed",
176
+ progress: null,
177
+ errorMessage: error instanceof Error ? error.message : String(error ?? "Unknown error")
178
+ };
179
+ };
180
+ setSnapshot = (snapshot) => {
181
+ this.snapshot = snapshot;
182
+ this.deps.eventBus.emit(eventKeys.runtimeUpdateSnapshot, snapshot, { source: "backend" });
183
+ return snapshot;
184
+ };
185
+ };
186
+ //#endregion
187
+ export { NpmRuntimeUpdateHost };
188
+
189
+ //# sourceMappingURL=npm-runtime-update-host.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-update-host.service.js","names":[],"sources":["../../../src/services/runtime/npm-runtime-update-host.service.ts"],"sourcesContent":["import type { Config } from \"@nextclaw/core\";\nimport {\n eventKeys,\n type EventBus,\n type UpdatePreferences,\n type UpdateProgress,\n type UpdateSnapshot,\n} from \"@nextclaw/shared\";\nimport type { UiRuntimeUpdateHost } from \"@nextclaw/server\";\nimport { NpmRuntimeBundleLayoutStore } from \"@nextclaw-service/stores/npm-runtime-bundle-layout.store.js\";\nimport { NpmRuntimeBundleService } from \"@nextclaw-service/services/runtime/npm-runtime-bundle.service.js\";\nimport { RuntimeUpdateManager } from \"@nextclaw-service/managers/runtime-update.manager.js\";\nimport { NpmRuntimeUpdateService } from \"@nextclaw-service/services/runtime/npm-runtime-update.service.js\";\nimport { NpmRuntimeUpdateSourceService } from \"@nextclaw-service/services/runtime/npm-runtime-update-source.service.js\";\nimport { NpmRuntimeUpdateStateStore } from \"@nextclaw-service/stores/npm-runtime-update-state.store.js\";\nimport { NextclawDistributionService } from \"@nextclaw-service/services/runtime/nextclaw-distribution.service.js\";\nimport { requestManagedServiceRestart } from \"@nextclaw-service/services/ui/service-remote-access.service.js\";\nimport type { RequestRestartParams } from \"@nextclaw-service/types/cli.types.js\";\n\nconst INITIAL_DOWNLOAD_PROGRESS: UpdateProgress = {\n downloadedBytes: 0,\n totalBytes: null,\n percent: null\n};\n\ntype NpmRuntimeUpdateHostDeps = {\n eventBus: EventBus;\n requestRestart: (params: RequestRestartParams) => Promise<void>;\n uiConfig: Pick<Config[\"ui\"], \"port\">;\n applyRestartMode: \"managed-service-restart\" | \"manual-process-restart\";\n};\n\nexport class NpmRuntimeUpdateHost implements UiRuntimeUpdateHost {\n private readonly source: NpmRuntimeUpdateSourceService;\n private readonly layout: NpmRuntimeBundleLayoutStore;\n private readonly launcherVersion: string;\n private readonly stateStore: NpmRuntimeUpdateStateStore;\n private readonly bundleService: NpmRuntimeBundleService;\n private readonly updateService: NpmRuntimeUpdateService;\n private snapshot: UpdateSnapshot;\n private activeTask: Promise<void> | null = null;\n private automaticSyncStarted = false;\n\n constructor(private readonly deps: NpmRuntimeUpdateHostDeps) {\n const distribution = NextclawDistributionService.get();\n this.source = new NpmRuntimeUpdateSourceService({\n packagedPublicKeyPath: distribution.runtimeUpdatePublicKeyPath\n });\n this.layout = new NpmRuntimeBundleLayoutStore();\n this.launcherVersion = distribution.version;\n this.stateStore = new NpmRuntimeUpdateStateStore(this.layout.getStatePath(), {\n defaultChannel: this.source.resolveChannel(undefined, this.launcherVersion)\n });\n this.bundleService = new NpmRuntimeBundleService({\n layout: this.layout,\n stateStore: this.stateStore,\n launcherVersion: this.launcherVersion\n });\n this.updateService = new NpmRuntimeUpdateService({\n layout: this.layout,\n bundleService: this.bundleService,\n launcherVersion: this.launcherVersion,\n bundlePublicKey: this.source.resolveBundlePublicKey() ?? undefined\n });\n this.snapshot = this.createManager().getSnapshot();\n this.startAutomaticSync();\n }\n\n getState = async (): Promise<UpdateSnapshot> => {\n this.startAutomaticSync();\n return this.snapshot;\n };\n\n checkForUpdates = async (): Promise<UpdateSnapshot> => {\n return this.startCheck({ autoDownload: false });\n };\n\n downloadUpdate = async (): Promise<UpdateSnapshot> => {\n return this.startDownload();\n };\n\n applyDownloadedUpdate = async (): Promise<UpdateSnapshot> => {\n if (this.activeTask) {\n return this.snapshot;\n }\n\n this.setSnapshot({\n ...this.snapshot,\n status: \"applying\",\n progress: null,\n errorMessage: null\n });\n try {\n const snapshot = this.createManager().applyDownloadedUpdate();\n this.setSnapshot(\n this.deps.applyRestartMode === \"managed-service-restart\"\n ? snapshot\n : {\n ...snapshot,\n recoveryCommand: \"Restart this NextClaw process to launch the downloaded runtime.\"\n },\n );\n if (this.deps.applyRestartMode === \"managed-service-restart\") {\n await requestManagedServiceRestart(this.deps.requestRestart, {\n reason: \"runtime update apply\",\n uiPort: this.deps.uiConfig.port\n });\n }\n return this.snapshot;\n } catch (error) {\n this.setSnapshot(this.toFailedSnapshot(error));\n throw error;\n }\n };\n\n updatePreferences = async (preferences: Partial<UpdatePreferences>): Promise<UpdateSnapshot> => {\n const nextState = this.stateStore.update((current) => ({\n ...current,\n updatePreferences: {\n ...current.updatePreferences,\n ...preferences\n }\n }));\n this.setSnapshot(this.createManager(nextState.channel).getSnapshot());\n if (nextState.updatePreferences.automaticChecks) {\n this.startAutomaticSync({ force: true });\n }\n return this.snapshot;\n };\n\n updateChannel = async (channel: UpdateSnapshot[\"channel\"]): Promise<UpdateSnapshot> => {\n const nextState = this.stateStore.update((current) => ({\n ...current,\n channel\n }));\n this.setSnapshot(this.createManager(nextState.channel).getSnapshot());\n if (nextState.updatePreferences.automaticChecks) {\n return this.startCheck({ autoDownload: nextState.updatePreferences.autoDownload });\n }\n return this.snapshot;\n };\n\n private startAutomaticSync = (options: { force?: boolean } = {}): void => {\n if (this.activeTask) {\n return;\n }\n if (this.automaticSyncStarted && !options.force) {\n return;\n }\n this.automaticSyncStarted = true;\n const state = this.stateStore.read();\n if (!state.updatePreferences.automaticChecks || state.downloadedVersion) {\n return;\n }\n void this.startCheck({ autoDownload: state.updatePreferences.autoDownload });\n };\n\n private startCheck = async (options: { autoDownload: boolean }): Promise<UpdateSnapshot> => {\n if (this.activeTask) {\n return this.snapshot;\n }\n\n this.setSnapshot({\n ...this.createManager().getSnapshot(),\n status: \"checking\",\n progress: null,\n errorMessage: null\n });\n this.activeTask = (async () => {\n try {\n const checkedSnapshot = await this.createManager().checkForUpdate();\n this.setSnapshot(checkedSnapshot);\n if (options.autoDownload && checkedSnapshot.status === \"update-available\") {\n await this.runDownloadTask();\n }\n } catch (error) {\n this.setSnapshot(this.toFailedSnapshot(error));\n } finally {\n this.activeTask = null;\n }\n })();\n return this.snapshot;\n };\n\n private startDownload = async (): Promise<UpdateSnapshot> => {\n if (this.activeTask) {\n return this.snapshot;\n }\n\n this.setSnapshot({\n ...this.createManager().getSnapshot(),\n status: \"downloading\",\n progress: INITIAL_DOWNLOAD_PROGRESS,\n errorMessage: null\n });\n this.activeTask = (async () => {\n try {\n await this.runDownloadTask();\n } catch (error) {\n this.setSnapshot(this.toFailedSnapshot(error));\n } finally {\n this.activeTask = null;\n }\n })();\n return this.snapshot;\n };\n\n private runDownloadTask = async (): Promise<void> => {\n const downloadedSnapshot = await this.createManager().downloadUpdate((progress) => {\n this.setSnapshot({\n ...this.snapshot,\n status: \"downloading\",\n progress,\n errorMessage: null\n });\n });\n this.setSnapshot(downloadedSnapshot);\n };\n\n private createManager = (channel = this.stateStore.read().channel): RuntimeUpdateManager => {\n return new RuntimeUpdateManager({\n layout: this.layout,\n stateStore: this.stateStore,\n bundleService: this.bundleService,\n updateService: this.updateService,\n resolveManifestUrl: (resolvedChannel) => this.source.resolveManifestUrl(resolvedChannel),\n launcherVersion: this.launcherVersion,\n channel\n });\n };\n\n private toFailedSnapshot = (error: unknown): UpdateSnapshot => {\n return {\n ...this.createManager().getSnapshot(),\n status: \"failed\",\n progress: null,\n errorMessage: error instanceof Error ? error.message : String(error ?? \"Unknown error\")\n };\n };\n\n private setSnapshot = (snapshot: UpdateSnapshot): UpdateSnapshot => {\n this.snapshot = snapshot;\n this.deps.eventBus.emit(eventKeys.runtimeUpdateSnapshot, snapshot, {\n source: \"backend\"\n });\n return snapshot;\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ //#region src/services/runtime/npm-runtime-update-source.service.d.ts
2
+ type NpmRuntimeReleaseChannel = "stable" | "beta";
3
+ type NpmRuntimeUpdateSourceServiceOptions = {
4
+ env?: NodeJS.ProcessEnv;
5
+ platform?: NodeJS.Platform;
6
+ arch?: string;
7
+ packagedPublicKeyPath?: string;
8
+ };
9
+ declare function inferDefaultNpmRuntimeReleaseChannel(launcherVersion?: string | null): NpmRuntimeReleaseChannel;
10
+ declare class NpmRuntimeUpdateSourceService {
11
+ private readonly env;
12
+ private readonly platform;
13
+ private readonly arch;
14
+ private readonly packagedPublicKeyPath?;
15
+ constructor(options?: NpmRuntimeUpdateSourceServiceOptions);
16
+ resolveChannel: (explicitChannel?: unknown, launcherVersion?: string | null) => NpmRuntimeReleaseChannel;
17
+ resolveManifestUrl: (channel: NpmRuntimeReleaseChannel, explicitManifestUrl?: unknown) => string | null;
18
+ resolveBundlePublicKey: () => string | null;
19
+ }
20
+ //#endregion
21
+ export { NpmRuntimeReleaseChannel, NpmRuntimeUpdateSourceService, inferDefaultNpmRuntimeReleaseChannel };
22
+ //# sourceMappingURL=npm-runtime-update-source.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-runtime-update-source.service.d.ts","names":[],"sources":["../../../src/services/runtime/npm-runtime-update-source.service.ts"],"mappings":";KAIY,wBAAA;AAAA,KAIP,oCAAA;EACH,GAAA,GAAM,MAAA,CAAO,UAAA;EACb,QAAA,GAAW,MAAA,CAAO,QAAA;EAClB,IAAA;EACA,qBAAA;AAAA;AAAA,iBAec,oCAAA,CAAqC,eAAA,mBAAkC,wBAAA;AAAA,cAc1E,6BAAA;EAAA,iBACM,GAAA;EAAA,iBACA,QAAA;EAAA,iBACA,IAAA;EAAA,iBACA,qBAAA;cAEL,OAAA,GAAS,oCAAA;EAOrB,cAAA,GAAkB,eAAA,YAA2B,eAAA,qBAAkC,wBAAA;EAO/E,kBAAA,GAAsB,OAAA,EAAS,wBAAA,EAA0B,mBAAA;EASzD,sBAAA;AAAA"}