@nextclaw/service 0.2.12 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/nextclaw-service-runtime.d.ts +41 -0
- package/dist/app/nextclaw-service-runtime.d.ts.map +1 -0
- package/dist/app/nextclaw-service-runtime.js +136 -0
- package/dist/app/nextclaw-service-runtime.js.map +1 -0
- package/dist/controllers/commands/agent-command.controller.d.ts +3 -0
- package/dist/controllers/commands/agent-command.controller.js +3 -0
- package/dist/controllers/commands/channel-command.controller.d.ts +21 -0
- package/dist/controllers/commands/channel-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/channel-command.controller.js +115 -0
- package/dist/controllers/commands/channel-command.controller.js.map +1 -0
- package/dist/controllers/commands/config-command.controller.d.ts +2 -0
- package/dist/controllers/commands/config-command.controller.js +2 -0
- package/dist/controllers/commands/cron-command.controller.d.ts +2 -0
- package/dist/controllers/commands/cron-command.controller.js +2 -0
- package/dist/controllers/commands/diagnostics-command.controller.d.ts +2 -0
- package/dist/controllers/commands/diagnostics-command.controller.js +2 -0
- package/dist/controllers/commands/gateway-command.controller.d.ts +15 -0
- package/dist/controllers/commands/gateway-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/gateway-command.controller.js +17 -0
- package/dist/controllers/commands/gateway-command.controller.js.map +1 -0
- package/dist/controllers/commands/logs-command.controller.d.ts +13 -0
- package/dist/controllers/commands/logs-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/logs-command.controller.js +31 -0
- package/dist/controllers/commands/logs-command.controller.js.map +1 -0
- package/dist/controllers/commands/marketplace-skill-command.controller.d.ts +28 -0
- package/dist/controllers/commands/marketplace-skill-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/marketplace-skill-command.controller.js +170 -0
- package/dist/controllers/commands/marketplace-skill-command.controller.js.map +1 -0
- package/dist/controllers/commands/mcp-command.controller.d.ts +15 -0
- package/dist/controllers/commands/mcp-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/mcp-command.controller.js +195 -0
- package/dist/controllers/commands/mcp-command.controller.js.map +1 -0
- package/dist/controllers/commands/platform-auth-command.controller.d.ts +2 -0
- package/dist/controllers/commands/platform-auth-command.controller.js +2 -0
- package/dist/controllers/commands/remote-command.controller.d.ts +48 -0
- package/dist/controllers/commands/remote-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/remote-command.controller.js +176 -0
- package/dist/controllers/commands/remote-command.controller.js.map +1 -0
- package/dist/controllers/commands/restart-command.controller.d.ts +21 -0
- package/dist/controllers/commands/restart-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/restart-command.controller.js +90 -0
- package/dist/controllers/commands/restart-command.controller.js.map +1 -0
- package/dist/controllers/commands/secrets-command.controller.d.ts +23 -0
- package/dist/controllers/commands/secrets-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/secrets-command.controller.js +282 -0
- package/dist/controllers/commands/secrets-command.controller.js.map +1 -0
- package/dist/controllers/commands/serve-command.controller.d.ts +15 -0
- package/dist/controllers/commands/serve-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/serve-command.controller.js +21 -0
- package/dist/controllers/commands/serve-command.controller.js.map +1 -0
- package/dist/controllers/commands/service-command.controller.d.ts +17 -0
- package/dist/controllers/commands/service-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/service-command.controller.js +33 -0
- package/dist/controllers/commands/service-command.controller.js.map +1 -0
- package/dist/controllers/commands/start-command.controller.d.ts +19 -0
- package/dist/controllers/commands/start-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/start-command.controller.js +27 -0
- package/dist/controllers/commands/start-command.controller.js.map +1 -0
- package/dist/controllers/commands/stop-command.controller.d.ts +13 -0
- package/dist/controllers/commands/stop-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/stop-command.controller.js +13 -0
- package/dist/controllers/commands/stop-command.controller.js.map +1 -0
- package/dist/controllers/commands/ui-command.controller.d.ts +15 -0
- package/dist/controllers/commands/ui-command.controller.d.ts.map +1 -0
- package/dist/controllers/commands/ui-command.controller.js +19 -0
- package/dist/controllers/commands/ui-command.controller.js.map +1 -0
- package/dist/controllers/commands/usage-command.controller.d.ts +2 -0
- package/dist/controllers/commands/usage-command.controller.js +2 -0
- package/dist/controllers/gateway.controller.d.ts +54 -0
- package/dist/controllers/gateway.controller.d.ts.map +1 -0
- package/dist/controllers/gateway.controller.js +162 -0
- package/dist/controllers/gateway.controller.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/launcher/npm-runtime-launcher.service.d.ts +1 -1
- package/dist/launcher/npm-runtime-launcher.service.js +6 -6
- package/dist/launcher/npm-runtime-launcher.service.js.map +1 -1
- package/dist/managers/gateway-extension.manager.d.ts +29 -0
- package/dist/managers/gateway-extension.manager.d.ts.map +1 -0
- package/dist/managers/gateway-extension.manager.js +78 -0
- package/dist/managers/gateway-extension.manager.js.map +1 -0
- package/dist/managers/gateway-remote.manager.d.ts +23 -0
- package/dist/managers/gateway-remote.manager.d.ts.map +1 -0
- package/dist/managers/gateway-remote.manager.js +28 -0
- package/dist/managers/gateway-remote.manager.js.map +1 -0
- package/dist/managers/managed-service.manager.d.ts +42 -0
- package/dist/managers/managed-service.manager.d.ts.map +1 -0
- package/dist/managers/managed-service.manager.js +195 -0
- package/dist/managers/managed-service.manager.js.map +1 -0
- package/dist/managers/runtime-update.manager.d.ts +43 -0
- package/dist/managers/runtime-update.manager.d.ts.map +1 -0
- package/dist/managers/runtime-update.manager.js +185 -0
- package/dist/managers/runtime-update.manager.js.map +1 -0
- package/dist/managers/service-command.manager.d.ts +67 -0
- package/dist/managers/service-command.manager.d.ts.map +1 -0
- package/dist/managers/service-command.manager.js +94 -0
- package/dist/managers/service-command.manager.js.map +1 -0
- package/dist/managers/service-gateway.manager.d.ts +85 -0
- package/dist/managers/service-gateway.manager.d.ts.map +1 -0
- package/dist/managers/service-gateway.manager.js +278 -0
- package/dist/managers/service-gateway.manager.js.map +1 -0
- package/dist/managers/service-restart.manager.d.ts +22 -0
- package/dist/managers/service-restart.manager.d.ts.map +1 -0
- package/dist/managers/service-restart.manager.js +183 -0
- package/dist/managers/service-restart.manager.js.map +1 -0
- package/dist/managers/service-workspace.manager.d.ts +14 -0
- package/dist/managers/service-workspace.manager.d.ts.map +1 -0
- package/dist/managers/service-workspace.manager.js +86 -0
- package/dist/managers/service-workspace.manager.js.map +1 -0
- package/dist/services/agent/agent-commands.service.d.ts +17 -0
- package/dist/services/agent/agent-commands.service.d.ts.map +1 -0
- package/dist/services/agent/agent-commands.service.js +111 -0
- package/dist/services/agent/agent-commands.service.js.map +1 -0
- package/dist/services/autostart/host-autostart-command.service.d.ts +30 -0
- package/dist/services/autostart/host-autostart-command.service.d.ts.map +1 -0
- package/dist/services/autostart/host-autostart-command.service.js +160 -0
- package/dist/services/autostart/host-autostart-command.service.js.map +1 -0
- package/dist/services/autostart/host-autostart-runtime.service.d.ts +24 -0
- package/dist/services/autostart/host-autostart-runtime.service.d.ts.map +1 -0
- package/dist/services/autostart/host-autostart-runtime.service.js +55 -0
- package/dist/services/autostart/host-autostart-runtime.service.js.map +1 -0
- package/dist/services/autostart/host-autostart.service.d.ts +42 -0
- package/dist/services/autostart/host-autostart.service.d.ts.map +1 -0
- package/dist/services/autostart/host-autostart.service.js +50 -0
- package/dist/services/autostart/host-autostart.service.js.map +1 -0
- package/dist/services/autostart/linux-systemd-autostart.service.d.ts +49 -0
- package/dist/services/autostart/linux-systemd-autostart.service.d.ts.map +1 -0
- package/dist/services/autostart/linux-systemd-autostart.service.js +435 -0
- package/dist/services/autostart/linux-systemd-autostart.service.js.map +1 -0
- package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts +55 -0
- package/dist/services/autostart/macos-launch-agent-autostart.service.d.ts.map +1 -0
- package/dist/services/autostart/macos-launch-agent-autostart.service.js +407 -0
- package/dist/services/autostart/macos-launch-agent-autostart.service.js.map +1 -0
- package/dist/services/autostart/windows-task-autostart.service.d.ts +55 -0
- package/dist/services/autostart/windows-task-autostart.service.d.ts.map +1 -0
- package/dist/services/autostart/windows-task-autostart.service.js +406 -0
- package/dist/services/autostart/windows-task-autostart.service.js.map +1 -0
- package/dist/services/channel/channel-list-view.service.d.ts +29 -0
- package/dist/services/channel/channel-list-view.service.d.ts.map +1 -0
- package/dist/services/channel/channel-list-view.service.js +53 -0
- package/dist/services/channel/channel-list-view.service.js.map +1 -0
- package/dist/services/config/config-commands.service.d.ts +17 -0
- package/dist/services/config/config-commands.service.d.ts.map +1 -0
- package/dist/services/config/config-commands.service.js +117 -0
- package/dist/services/config/config-commands.service.js.map +1 -0
- package/dist/services/cron/cron-commands.service.d.ts +23 -0
- package/dist/services/cron/cron-commands.service.d.ts.map +1 -0
- package/dist/services/cron/cron-commands.service.js +109 -0
- package/dist/services/cron/cron-commands.service.js.map +1 -0
- package/dist/services/cron/cron-local.service.d.ts +26 -0
- package/dist/services/cron/cron-local.service.d.ts.map +1 -0
- package/dist/services/cron/cron-local.service.js +89 -0
- package/dist/services/cron/cron-local.service.js.map +1 -0
- package/dist/services/diagnostics/diagnostics-commands.service.d.ts +25 -0
- package/dist/services/diagnostics/diagnostics-commands.service.d.ts.map +1 -0
- package/dist/services/diagnostics/diagnostics-commands.service.js +345 -0
- package/dist/services/diagnostics/diagnostics-commands.service.js.map +1 -0
- package/dist/services/gateway/gateway-restart-wake.service.d.ts +13 -0
- package/dist/services/gateway/gateway-restart-wake.service.d.ts.map +1 -0
- package/dist/services/gateway/gateway-restart-wake.service.js +99 -0
- package/dist/services/gateway/gateway-restart-wake.service.js.map +1 -0
- package/dist/services/gateway/nextclaw-app.service.d.ts +18 -0
- package/dist/services/gateway/nextclaw-app.service.d.ts.map +1 -0
- package/dist/services/gateway/nextclaw-app.service.js +44 -0
- package/dist/services/gateway/nextclaw-app.service.js.map +1 -0
- package/dist/services/gateway/service-bootstrap-status.service.d.ts +33 -0
- package/dist/services/gateway/service-bootstrap-status.service.d.ts.map +1 -0
- package/dist/services/gateway/service-bootstrap-status.service.js +144 -0
- package/dist/services/gateway/service-bootstrap-status.service.js.map +1 -0
- package/dist/services/gateway/service-startup-support.service.d.ts +35 -0
- package/dist/services/gateway/service-startup-support.service.d.ts.map +1 -0
- package/dist/services/gateway/service-startup-support.service.js +83 -0
- package/dist/services/gateway/service-startup-support.service.js.map +1 -0
- package/dist/services/marketplace/service-marketplace-installer.service.d.ts +29 -0
- package/dist/services/marketplace/service-marketplace-installer.service.d.ts.map +1 -0
- package/dist/services/marketplace/service-marketplace-installer.service.js +87 -0
- package/dist/services/marketplace/service-marketplace-installer.service.js.map +1 -0
- package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts +40 -0
- package/dist/services/marketplace/service-mcp-marketplace-ops.service.d.ts.map +1 -0
- package/dist/services/marketplace/service-mcp-marketplace-ops.service.js +69 -0
- package/dist/services/marketplace/service-mcp-marketplace-ops.service.js.map +1 -0
- package/dist/services/marketplace/skills-query.service.d.ts +110 -0
- package/dist/services/marketplace/skills-query.service.d.ts.map +1 -0
- package/dist/services/marketplace/skills-query.service.js +132 -0
- package/dist/services/marketplace/skills-query.service.js.map +1 -0
- package/dist/services/platform-auth/account-status.service.d.ts +20 -0
- package/dist/services/platform-auth/account-status.service.d.ts.map +1 -0
- package/dist/services/platform-auth/account-status.service.js +36 -0
- package/dist/services/platform-auth/account-status.service.js.map +1 -0
- package/dist/services/platform-auth/platform-auth-commands.service.d.ts +78 -0
- package/dist/services/platform-auth/platform-auth-commands.service.d.ts.map +1 -0
- package/dist/services/platform-auth/platform-auth-commands.service.js +297 -0
- package/dist/services/platform-auth/platform-auth-commands.service.js.map +1 -0
- package/dist/services/remote/remote-access-host.service.d.ts +42 -0
- package/dist/services/remote/remote-access-host.service.d.ts.map +1 -0
- package/dist/services/remote/remote-access-host.service.js +128 -0
- package/dist/services/remote/remote-access-host.service.js.map +1 -0
- package/dist/services/remote/remote-service-control.service.d.ts +34 -0
- package/dist/services/remote/remote-service-control.service.d.ts.map +1 -0
- package/dist/services/remote/remote-service-control.service.js +247 -0
- package/dist/services/remote/remote-service-control.service.js.map +1 -0
- package/dist/services/restart/restart-coordinator.service.d.ts +31 -0
- package/dist/services/restart/restart-coordinator.service.d.ts.map +1 -0
- package/dist/services/restart/restart-coordinator.service.js +53 -0
- package/dist/services/restart/restart-coordinator.service.js.map +1 -0
- package/dist/services/runtime/managed-service-supervisor.service.d.ts +85 -0
- package/dist/services/runtime/managed-service-supervisor.service.d.ts.map +1 -0
- package/dist/services/runtime/managed-service-supervisor.service.js +271 -0
- package/dist/services/runtime/managed-service-supervisor.service.js.map +1 -0
- package/dist/services/runtime/nextclaw-distribution.service.d.ts +11 -0
- package/dist/services/runtime/nextclaw-distribution.service.d.ts.map +1 -0
- package/dist/services/runtime/nextclaw-distribution.service.js +15 -0
- package/dist/services/runtime/nextclaw-distribution.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts +10 -0
- package/dist/services/runtime/npm-runtime-bundle-manifest.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-bundle-manifest.service.js +41 -0
- package/dist/services/runtime/npm-runtime-bundle-manifest.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-bundle.service.d.ts +48 -0
- package/dist/services/runtime/npm-runtime-bundle.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-bundle.service.js +152 -0
- package/dist/services/runtime/npm-runtime-bundle.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-update-command.service.d.ts +16 -0
- package/dist/services/runtime/npm-runtime-update-command.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-update-command.service.js +120 -0
- package/dist/services/runtime/npm-runtime-update-command.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-update-host.service.d.ts +41 -0
- package/dist/services/runtime/npm-runtime-update-host.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-update-host.service.js +189 -0
- package/dist/services/runtime/npm-runtime-update-host.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-update-source.service.d.ts +22 -0
- package/dist/services/runtime/npm-runtime-update-source.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-update-source.service.js +61 -0
- package/dist/services/runtime/npm-runtime-update-source.service.js.map +1 -0
- package/dist/services/runtime/npm-runtime-update.service.d.ts +55 -0
- package/dist/services/runtime/npm-runtime-update.service.d.ts.map +1 -0
- package/dist/services/runtime/npm-runtime-update.service.js +185 -0
- package/dist/services/runtime/npm-runtime-update.service.js.map +1 -0
- package/dist/services/runtime/runtime-config-init.service.d.ts +5 -0
- package/dist/services/runtime/runtime-config-init.service.d.ts.map +1 -0
- package/dist/services/runtime/runtime-config-init.service.js +12 -0
- package/dist/services/runtime/runtime-config-init.service.js.map +1 -0
- package/dist/services/runtime/service-managed-startup.service.d.ts +95 -0
- package/dist/services/runtime/service-managed-startup.service.d.ts.map +1 -0
- package/dist/services/runtime/service-managed-startup.service.js +341 -0
- package/dist/services/runtime/service-managed-startup.service.js.map +1 -0
- package/dist/services/ui/companion-runtime.service.d.ts +36 -0
- package/dist/services/ui/companion-runtime.service.d.ts.map +1 -0
- package/dist/services/ui/companion-runtime.service.js +180 -0
- package/dist/services/ui/companion-runtime.service.js.map +1 -0
- package/dist/services/ui/local-ui-discovery.service.d.ts +20 -0
- package/dist/services/ui/local-ui-discovery.service.d.ts.map +1 -0
- package/dist/services/ui/local-ui-discovery.service.js +43 -0
- package/dist/services/ui/local-ui-discovery.service.js.map +1 -0
- package/dist/services/ui/runtime-control-host.service.d.ts +29 -0
- package/dist/services/ui/runtime-control-host.service.d.ts.map +1 -0
- package/dist/services/ui/runtime-control-host.service.js +91 -0
- package/dist/services/ui/runtime-control-host.service.js.map +1 -0
- package/dist/services/ui/service-remote-access.service.d.ts +26 -0
- package/dist/services/ui/service-remote-access.service.d.ts.map +1 -0
- package/dist/services/ui/service-remote-access.service.js +40 -0
- package/dist/services/ui/service-remote-access.service.js.map +1 -0
- package/dist/services/ui/ui-bridge-api.service.d.ts +17 -0
- package/dist/services/ui/ui-bridge-api.service.d.ts.map +1 -0
- package/dist/services/ui/ui-bridge-api.service.js +45 -0
- package/dist/services/ui/ui-bridge-api.service.js.map +1 -0
- package/dist/services/usage/llm-usage-command.service.d.ts +21 -0
- package/dist/services/usage/llm-usage-command.service.d.ts.map +1 -0
- package/dist/services/usage/llm-usage-command.service.js +152 -0
- package/dist/services/usage/llm-usage-command.service.js.map +1 -0
- package/dist/stores/companion-runtime.store.d.ts +16 -0
- package/dist/stores/companion-runtime.store.d.ts.map +1 -0
- package/dist/stores/companion-runtime.store.js +29 -0
- package/dist/stores/companion-runtime.store.js.map +1 -0
- package/dist/stores/local-ui-runtime.store.d.ts +26 -0
- package/dist/stores/local-ui-runtime.store.d.ts.map +1 -0
- package/dist/stores/local-ui-runtime.store.js +56 -0
- package/dist/stores/local-ui-runtime.store.js.map +1 -0
- package/dist/stores/managed-service-state.store.d.ts +46 -0
- package/dist/stores/managed-service-state.store.d.ts.map +1 -0
- package/dist/stores/managed-service-state.store.js +40 -0
- package/dist/stores/managed-service-state.store.js.map +1 -0
- package/dist/stores/marketplace-install-state.store.d.ts +39 -0
- package/dist/stores/marketplace-install-state.store.d.ts.map +1 -0
- package/dist/stores/marketplace-install-state.store.js +58 -0
- package/dist/stores/marketplace-install-state.store.js.map +1 -0
- package/dist/stores/npm-runtime-bundle-layout.store.d.ts +24 -0
- package/dist/stores/npm-runtime-bundle-layout.store.d.ts.map +1 -0
- package/dist/stores/npm-runtime-bundle-layout.store.js +39 -0
- package/dist/stores/npm-runtime-bundle-layout.store.js.map +1 -0
- package/dist/stores/npm-runtime-update-state.store.d.ts +18 -0
- package/dist/stores/npm-runtime-update-state.store.d.ts.map +1 -0
- package/dist/stores/npm-runtime-update-state.store.js +94 -0
- package/dist/stores/npm-runtime-update-state.store.js.map +1 -0
- package/dist/stores/pending-restart.store.d.ts +22 -0
- package/dist/stores/pending-restart.store.d.ts.map +1 -0
- package/dist/stores/pending-restart.store.js +37 -0
- package/dist/stores/pending-restart.store.js.map +1 -0
- package/dist/types/cli.types.d.ts +304 -0
- package/dist/types/cli.types.d.ts.map +1 -0
- package/dist/types/distribution.types.d.ts +11 -0
- package/dist/types/distribution.types.d.ts.map +1 -0
- package/dist/types/host-autostart.types.d.ts +65 -0
- package/dist/types/host-autostart.types.d.ts.map +1 -0
- package/dist/types/npm-runtime-bundle.types.d.ts +50 -0
- package/dist/types/npm-runtime-bundle.types.d.ts.map +1 -0
- package/dist/utils/agent-runtime.utils.d.ts +15 -0
- package/dist/utils/agent-runtime.utils.d.ts.map +1 -0
- package/dist/utils/agent-runtime.utils.js +40 -0
- package/dist/utils/agent-runtime.utils.js.map +1 -0
- package/dist/utils/channel-config-view.utils.d.ts +7 -0
- package/dist/utils/channel-config-view.utils.d.ts.map +1 -0
- package/dist/utils/channel-config-view.utils.js +9 -0
- package/dist/utils/channel-config-view.utils.js.map +1 -0
- package/dist/utils/cli-agent-runner.utils.d.ts +14 -0
- package/dist/utils/cli-agent-runner.utils.d.ts.map +1 -0
- package/dist/utils/cli-agent-runner.utils.js +94 -0
- package/dist/utils/cli-agent-runner.utils.js.map +1 -0
- package/dist/utils/cli.utils.d.ts +32 -0
- package/dist/utils/cli.utils.d.ts.map +1 -0
- package/dist/utils/cli.utils.js +254 -0
- package/dist/utils/cli.utils.js.map +1 -0
- package/dist/utils/config-path.utils.d.ts +16 -0
- package/dist/utils/config-path.utils.d.ts.map +1 -0
- package/dist/utils/config-path.utils.js +169 -0
- package/dist/utils/config-path.utils.js.map +1 -0
- package/dist/utils/cron/cron-job.utils.d.ts +28 -0
- package/dist/utils/cron/cron-job.utils.d.ts.map +1 -0
- package/dist/utils/cron/cron-job.utils.js +17 -0
- package/dist/utils/cron/cron-job.utils.js.map +1 -0
- package/dist/utils/diagnostics/diagnostics-render.utils.d.ts +24 -0
- package/dist/utils/diagnostics/diagnostics-render.utils.d.ts.map +1 -0
- package/dist/utils/diagnostics/diagnostics-render.utils.js +74 -0
- package/dist/utils/diagnostics/diagnostics-render.utils.js.map +1 -0
- package/dist/utils/gateway-cron-job-handler.utils.d.ts +18 -0
- package/dist/utils/gateway-cron-job-handler.utils.d.ts.map +1 -0
- package/dist/utils/gateway-cron-job-handler.utils.js +56 -0
- package/dist/utils/gateway-cron-job-handler.utils.js.map +1 -0
- package/dist/utils/gateway-runtime-lifecycle.utils.d.ts +10 -0
- package/dist/utils/gateway-runtime-lifecycle.utils.d.ts.map +1 -0
- package/dist/utils/gateway-runtime-lifecycle.utils.js +12 -0
- package/dist/utils/gateway-runtime-lifecycle.utils.js.map +1 -0
- package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts +17 -0
- package/dist/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/cli-subcommand-launch.utils.js +48 -0
- package/dist/utils/marketplace/cli-subcommand-launch.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-client.utils.d.ts +46 -0
- package/dist/utils/marketplace/marketplace-client.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-client.utils.js +137 -0
- package/dist/utils/marketplace/marketplace-client.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-command-options.utils.d.ts +26 -0
- package/dist/utils/marketplace/marketplace-command-options.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-command-options.utils.js +33 -0
- package/dist/utils/marketplace/marketplace-command-options.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-identity.utils.d.ts +15 -0
- package/dist/utils/marketplace/marketplace-identity.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-identity.utils.js +79 -0
- package/dist/utils/marketplace/marketplace-identity.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-metadata.utils.d.ts +21 -0
- package/dist/utils/marketplace/marketplace-metadata.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-metadata.utils.js +74 -0
- package/dist/utils/marketplace/marketplace-metadata.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts +5 -0
- package/dist/utils/marketplace/marketplace-network-retry.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-network-retry.utils.js +34 -0
- package/dist/utils/marketplace/marketplace-network-retry.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts +27 -0
- package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js +206 -0
- package/dist/utils/marketplace/marketplace-skill-lifecycle.utils.js.map +1 -0
- package/dist/utils/marketplace/marketplace.utils.d.ts +34 -0
- package/dist/utils/marketplace/marketplace.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/marketplace.utils.js +77 -0
- package/dist/utils/marketplace/marketplace.utils.js.map +1 -0
- package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts +15 -0
- package/dist/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +1 -0
- package/dist/utils/marketplace/service-marketplace-helpers.utils.js +47 -0
- package/dist/utils/marketplace/service-marketplace-helpers.utils.js.map +1 -0
- package/dist/utils/package/package-manifest.utils.d.ts +5 -0
- package/dist/utils/package/package-manifest.utils.d.ts.map +1 -0
- package/dist/utils/package/package-manifest.utils.js +40 -0
- package/dist/utils/package/package-manifest.utils.js.map +1 -0
- package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +5 -0
- package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +1 -0
- package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +37 -0
- package/dist/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +1 -0
- package/dist/utils/platform-auth/payload.utils.d.ts +30 -0
- package/dist/utils/platform-auth/payload.utils.d.ts.map +1 -0
- package/dist/utils/platform-auth/payload.utils.js +89 -0
- package/dist/utils/platform-auth/payload.utils.js.map +1 -0
- package/dist/utils/remote/platform-api-base.utils.d.ts +15 -0
- package/dist/utils/remote/platform-api-base.utils.d.ts.map +1 -0
- package/dist/utils/remote/platform-api-base.utils.js +41 -0
- package/dist/utils/remote/platform-api-base.utils.js.map +1 -0
- package/dist/utils/remote/remote-runtime-support.utils.d.ts +16 -0
- package/dist/utils/remote/remote-runtime-support.utils.d.ts.map +1 -0
- package/dist/utils/remote/remote-runtime-support.utils.js +82 -0
- package/dist/utils/remote/remote-runtime-support.utils.js.map +1 -0
- package/dist/utils/restart-sentinel.utils.d.ts +37 -0
- package/dist/utils/restart-sentinel.utils.d.ts.map +1 -0
- package/dist/utils/restart-sentinel.utils.js +76 -0
- package/dist/utils/restart-sentinel.utils.js.map +1 -0
- package/dist/utils/runtime/managed-service-routing.utils.d.ts +31 -0
- package/dist/utils/runtime/managed-service-routing.utils.d.ts.map +1 -0
- package/dist/utils/runtime/managed-service-routing.utils.js +64 -0
- package/dist/utils/runtime/managed-service-routing.utils.js.map +1 -0
- package/dist/utils/runtime/service-remote-runtime.utils.d.ts +58 -0
- package/dist/utils/runtime/service-remote-runtime.utils.d.ts.map +1 -0
- package/dist/utils/runtime/service-remote-runtime.utils.js +184 -0
- package/dist/utils/runtime/service-remote-runtime.utils.js.map +1 -0
- package/dist/utils/runtime-helpers.utils.d.ts +15 -0
- package/dist/utils/runtime-helpers.utils.d.ts.map +1 -0
- package/dist/utils/runtime-helpers.utils.js +28 -0
- package/dist/utils/runtime-helpers.utils.js.map +1 -0
- package/dist/utils/service-port-probe.utils.d.ts +42 -0
- package/dist/utils/service-port-probe.utils.d.ts.map +1 -0
- package/dist/utils/service-port-probe.utils.js +166 -0
- package/dist/utils/service-port-probe.utils.js.map +1 -0
- package/dist/utils/startup-trace.utils.d.ts +8 -0
- package/dist/utils/startup-trace.utils.d.ts.map +1 -0
- package/dist/utils/startup-trace.utils.js +39 -0
- package/dist/utils/startup-trace.utils.js.map +1 -0
- package/dist/utils/top-level-nextclaw-command-env.utils.d.ts +5 -0
- package/dist/utils/top-level-nextclaw-command-env.utils.d.ts.map +1 -0
- package/dist/utils/top-level-nextclaw-command-env.utils.js +12 -0
- package/dist/utils/top-level-nextclaw-command-env.utils.js.map +1 -0
- package/package.json +26 -26
- package/dist/cli/commands/agent/agent-runtime.utils.d.ts +0 -15
- package/dist/cli/commands/agent/agent-runtime.utils.d.ts.map +0 -1
- package/dist/cli/commands/agent/agent-runtime.utils.js +0 -43
- package/dist/cli/commands/agent/agent-runtime.utils.js.map +0 -1
- package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts +0 -14
- package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts.map +0 -1
- package/dist/cli/commands/agent/cli-agent-runner.utils.js +0 -94
- package/dist/cli/commands/agent/cli-agent-runner.utils.js.map +0 -1
- package/dist/cli/commands/agent/index.d.ts +0 -3
- package/dist/cli/commands/agent/index.js +0 -3
- package/dist/cli/commands/agent/services/agent-commands.service.d.ts +0 -18
- package/dist/cli/commands/agent/services/agent-commands.service.d.ts.map +0 -1
- package/dist/cli/commands/agent/services/agent-commands.service.js +0 -113
- package/dist/cli/commands/agent/services/agent-commands.service.js.map +0 -1
- package/dist/cli/commands/config/index.d.ts +0 -2
- package/dist/cli/commands/config/index.js +0 -2
- package/dist/cli/commands/config/services/config-commands.service.d.ts +0 -17
- package/dist/cli/commands/config/services/config-commands.service.d.ts.map +0 -1
- package/dist/cli/commands/config/services/config-commands.service.js +0 -117
- package/dist/cli/commands/config/services/config-commands.service.js.map +0 -1
- package/dist/cli/commands/cron/index.d.ts +0 -2
- package/dist/cli/commands/cron/index.js +0 -2
- package/dist/cli/commands/cron/services/cron-commands.service.d.ts +0 -23
- package/dist/cli/commands/cron/services/cron-commands.service.d.ts.map +0 -1
- package/dist/cli/commands/cron/services/cron-commands.service.js +0 -109
- package/dist/cli/commands/cron/services/cron-commands.service.js.map +0 -1
- package/dist/cli/commands/cron/services/cron-local.service.d.ts +0 -26
- package/dist/cli/commands/cron/services/cron-local.service.d.ts.map +0 -1
- package/dist/cli/commands/cron/services/cron-local.service.js +0 -89
- package/dist/cli/commands/cron/services/cron-local.service.js.map +0 -1
- package/dist/cli/commands/cron/utils/cron-job.utils.d.ts +0 -28
- package/dist/cli/commands/cron/utils/cron-job.utils.d.ts.map +0 -1
- package/dist/cli/commands/cron/utils/cron-job.utils.js +0 -17
- package/dist/cli/commands/cron/utils/cron-job.utils.js.map +0 -1
- package/dist/cli/commands/diagnostics/index.d.ts +0 -2
- package/dist/cli/commands/diagnostics/index.js +0 -2
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts +0 -25
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts.map +0 -1
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js +0 -345
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js.map +0 -1
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts +0 -24
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts.map +0 -1
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js +0 -74
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js.map +0 -1
- package/dist/cli/commands/gateway/index.d.ts +0 -15
- package/dist/cli/commands/gateway/index.d.ts.map +0 -1
- package/dist/cli/commands/gateway/index.js +0 -17
- package/dist/cli/commands/gateway/index.js.map +0 -1
- package/dist/cli/commands/logs/index.d.ts +0 -13
- package/dist/cli/commands/logs/index.d.ts.map +0 -1
- package/dist/cli/commands/logs/index.js +0 -31
- package/dist/cli/commands/logs/index.js.map +0 -1
- package/dist/cli/commands/mcp/index.d.ts +0 -15
- package/dist/cli/commands/mcp/index.d.ts.map +0 -1
- package/dist/cli/commands/mcp/index.js +0 -195
- package/dist/cli/commands/mcp/index.js.map +0 -1
- package/dist/cli/commands/restart/index.d.ts +0 -21
- package/dist/cli/commands/restart/index.d.ts.map +0 -1
- package/dist/cli/commands/restart/index.js +0 -90
- package/dist/cli/commands/restart/index.js.map +0 -1
- package/dist/cli/commands/secrets/index.d.ts +0 -23
- package/dist/cli/commands/secrets/index.d.ts.map +0 -1
- package/dist/cli/commands/secrets/index.js +0 -282
- package/dist/cli/commands/secrets/index.js.map +0 -1
- package/dist/cli/commands/serve/index.d.ts +0 -15
- package/dist/cli/commands/serve/index.d.ts.map +0 -1
- package/dist/cli/commands/serve/index.js +0 -21
- package/dist/cli/commands/serve/index.js.map +0 -1
- package/dist/cli/commands/skills/index.d.ts +0 -28
- package/dist/cli/commands/skills/index.d.ts.map +0 -1
- package/dist/cli/commands/skills/index.js +0 -170
- package/dist/cli/commands/skills/index.js.map +0 -1
- package/dist/cli/commands/skills/marketplace-client.d.ts +0 -46
- package/dist/cli/commands/skills/marketplace-client.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace-client.js +0 -137
- package/dist/cli/commands/skills/marketplace-client.js.map +0 -1
- package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts +0 -26
- package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace-command-options.utils.js +0 -33
- package/dist/cli/commands/skills/marketplace-command-options.utils.js.map +0 -1
- package/dist/cli/commands/skills/marketplace-identity.utils.d.ts +0 -15
- package/dist/cli/commands/skills/marketplace-identity.utils.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace-identity.utils.js +0 -79
- package/dist/cli/commands/skills/marketplace-identity.utils.js.map +0 -1
- package/dist/cli/commands/skills/marketplace-network-retry.d.ts +0 -5
- package/dist/cli/commands/skills/marketplace-network-retry.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace-network-retry.js +0 -34
- package/dist/cli/commands/skills/marketplace-network-retry.js.map +0 -1
- package/dist/cli/commands/skills/marketplace.metadata.d.ts +0 -21
- package/dist/cli/commands/skills/marketplace.metadata.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace.metadata.js +0 -74
- package/dist/cli/commands/skills/marketplace.metadata.js.map +0 -1
- package/dist/cli/commands/skills/marketplace.utils.d.ts +0 -34
- package/dist/cli/commands/skills/marketplace.utils.d.ts.map +0 -1
- package/dist/cli/commands/skills/marketplace.utils.js +0 -77
- package/dist/cli/commands/skills/marketplace.utils.js.map +0 -1
- package/dist/cli/commands/skills/skills-query.service.d.ts +0 -110
- package/dist/cli/commands/skills/skills-query.service.d.ts.map +0 -1
- package/dist/cli/commands/skills/skills-query.service.js +0 -132
- package/dist/cli/commands/skills/skills-query.service.js.map +0 -1
- package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts +0 -39
- package/dist/cli/commands/skills/stores/marketplace-install-state.store.d.ts.map +0 -1
- package/dist/cli/commands/skills/stores/marketplace-install-state.store.js +0 -58
- package/dist/cli/commands/skills/stores/marketplace-install-state.store.js.map +0 -1
- package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts +0 -27
- package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.d.ts.map +0 -1
- package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js +0 -206
- package/dist/cli/commands/skills/utils/marketplace-skill-lifecycle.utils.js.map +0 -1
- package/dist/cli/commands/start/index.d.ts +0 -19
- package/dist/cli/commands/start/index.d.ts.map +0 -1
- package/dist/cli/commands/start/index.js +0 -27
- package/dist/cli/commands/start/index.js.map +0 -1
- package/dist/cli/commands/stop/index.d.ts +0 -13
- package/dist/cli/commands/stop/index.d.ts.map +0 -1
- package/dist/cli/commands/stop/index.js +0 -13
- package/dist/cli/commands/stop/index.js.map +0 -1
- package/dist/cli/commands/ui/index.d.ts +0 -15
- package/dist/cli/commands/ui/index.d.ts.map +0 -1
- package/dist/cli/commands/ui/index.js +0 -19
- package/dist/cli/commands/ui/index.js.map +0 -1
- package/dist/cli/commands/usage/index.d.ts +0 -2
- package/dist/cli/commands/usage/index.js +0 -2
- package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts +0 -21
- package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts.map +0 -1
- package/dist/cli/commands/usage/services/llm-usage-command.service.js +0 -152
- package/dist/cli/commands/usage/services/llm-usage-command.service.js.map +0 -1
- package/dist/commands/channel/channel-config-view.utils.d.ts +0 -7
- package/dist/commands/channel/channel-config-view.utils.d.ts.map +0 -1
- package/dist/commands/channel/channel-config-view.utils.js +0 -9
- package/dist/commands/channel/channel-config-view.utils.js.map +0 -1
- package/dist/commands/channel/channel-list-view.service.d.ts +0 -29
- package/dist/commands/channel/channel-list-view.service.d.ts.map +0 -1
- package/dist/commands/channel/channel-list-view.service.js +0 -53
- package/dist/commands/channel/channel-list-view.service.js.map +0 -1
- package/dist/commands/channel/index.d.ts +0 -21
- package/dist/commands/channel/index.d.ts.map +0 -1
- package/dist/commands/channel/index.js +0 -115
- package/dist/commands/channel/index.js.map +0 -1
- package/dist/commands/platform-auth/index.d.ts +0 -2
- package/dist/commands/platform-auth/index.js +0 -2
- package/dist/commands/platform-auth/services/account-status.service.d.ts +0 -19
- package/dist/commands/platform-auth/services/account-status.service.d.ts.map +0 -1
- package/dist/commands/platform-auth/services/account-status.service.js +0 -36
- package/dist/commands/platform-auth/services/account-status.service.js.map +0 -1
- package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts +0 -78
- package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts.map +0 -1
- package/dist/commands/platform-auth/services/platform-auth-commands.service.js +0 -297
- package/dist/commands/platform-auth/services/platform-auth-commands.service.js.map +0 -1
- package/dist/commands/platform-auth/utils/payload.utils.d.ts +0 -29
- package/dist/commands/platform-auth/utils/payload.utils.d.ts.map +0 -1
- package/dist/commands/platform-auth/utils/payload.utils.js +0 -89
- package/dist/commands/platform-auth/utils/payload.utils.js.map +0 -1
- package/dist/commands/remote/index.d.ts +0 -48
- package/dist/commands/remote/index.d.ts.map +0 -1
- package/dist/commands/remote/index.js +0 -176
- package/dist/commands/remote/index.js.map +0 -1
- package/dist/commands/remote/services/remote-access-host.service.d.ts +0 -42
- package/dist/commands/remote/services/remote-access-host.service.d.ts.map +0 -1
- package/dist/commands/remote/services/remote-access-host.service.js +0 -128
- package/dist/commands/remote/services/remote-access-host.service.js.map +0 -1
- package/dist/commands/remote/services/remote-service-control.service.d.ts +0 -34
- package/dist/commands/remote/services/remote-service-control.service.d.ts.map +0 -1
- package/dist/commands/remote/services/remote-service-control.service.js +0 -247
- package/dist/commands/remote/services/remote-service-control.service.js.map +0 -1
- package/dist/commands/remote/utils/platform-api-base.utils.d.ts +0 -15
- package/dist/commands/remote/utils/platform-api-base.utils.d.ts.map +0 -1
- package/dist/commands/remote/utils/platform-api-base.utils.js +0 -41
- package/dist/commands/remote/utils/platform-api-base.utils.js.map +0 -1
- package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts +0 -16
- package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts.map +0 -1
- package/dist/commands/remote/utils/remote-runtime-support.utils.js +0 -82
- package/dist/commands/remote/utils/remote-runtime-support.utils.js.map +0 -1
- package/dist/commands/service/index.d.ts +0 -17
- package/dist/commands/service/index.d.ts.map +0 -1
- package/dist/commands/service/index.js +0 -33
- package/dist/commands/service/index.js.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts +0 -30
- package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart-command.service.js +0 -160
- package/dist/commands/service/services/autostart/host-autostart-command.service.js.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts +0 -24
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.js +0 -55
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.js.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart.service.d.ts +0 -42
- package/dist/commands/service/services/autostart/host-autostart.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/host-autostart.service.js +0 -50
- package/dist/commands/service/services/autostart/host-autostart.service.js.map +0 -1
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts +0 -49
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js +0 -435
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js.map +0 -1
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts +0 -55
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js +0 -407
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js.map +0 -1
- package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts +0 -55
- package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts.map +0 -1
- package/dist/commands/service/services/autostart/windows-task-autostart.service.js +0 -406
- package/dist/commands/service/services/autostart/windows-task-autostart.service.js.map +0 -1
- package/dist/commands/service/types/autostart/host-autostart.types.d.ts +0 -65
- package/dist/commands/service/types/autostart/host-autostart.types.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-bundle-layout.store.d.ts +0 -24
- package/dist/launcher/npm-runtime-bundle-layout.store.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-bundle-layout.store.js +0 -39
- package/dist/launcher/npm-runtime-bundle-layout.store.js.map +0 -1
- package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts +0 -10
- package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-bundle-manifest.service.js +0 -41
- package/dist/launcher/npm-runtime-bundle-manifest.service.js.map +0 -1
- package/dist/launcher/npm-runtime-bundle.service.d.ts +0 -48
- package/dist/launcher/npm-runtime-bundle.service.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-bundle.service.js +0 -152
- package/dist/launcher/npm-runtime-bundle.service.js.map +0 -1
- package/dist/launcher/npm-runtime-bundle.types.d.ts +0 -50
- package/dist/launcher/npm-runtime-bundle.types.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update-command.service.d.ts +0 -16
- package/dist/launcher/npm-runtime-update-command.service.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update-command.service.js +0 -120
- package/dist/launcher/npm-runtime-update-command.service.js.map +0 -1
- package/dist/launcher/npm-runtime-update-source.service.d.ts +0 -22
- package/dist/launcher/npm-runtime-update-source.service.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update-source.service.js +0 -61
- package/dist/launcher/npm-runtime-update-source.service.js.map +0 -1
- package/dist/launcher/npm-runtime-update-state.store.d.ts +0 -18
- package/dist/launcher/npm-runtime-update-state.store.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update-state.store.js +0 -94
- package/dist/launcher/npm-runtime-update-state.store.js.map +0 -1
- package/dist/launcher/npm-runtime-update.manager.d.ts +0 -43
- package/dist/launcher/npm-runtime-update.manager.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update.manager.js +0 -185
- package/dist/launcher/npm-runtime-update.manager.js.map +0 -1
- package/dist/launcher/npm-runtime-update.service.d.ts +0 -55
- package/dist/launcher/npm-runtime-update.service.d.ts.map +0 -1
- package/dist/launcher/npm-runtime-update.service.js +0 -185
- package/dist/launcher/npm-runtime-update.service.js.map +0 -1
- package/dist/service-runtime.service.d.ts +0 -88
- package/dist/service-runtime.service.d.ts.map +0 -1
- package/dist/service-runtime.service.js +0 -366
- package/dist/service-runtime.service.js.map +0 -1
- package/dist/shared/controllers/gateway.controller.d.ts +0 -54
- package/dist/shared/controllers/gateway.controller.d.ts.map +0 -1
- package/dist/shared/controllers/gateway.controller.js +0 -162
- package/dist/shared/controllers/gateway.controller.js.map +0 -1
- package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts +0 -13
- package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts.map +0 -1
- package/dist/shared/services/gateway/gateway-restart-wake.service.js +0 -99
- package/dist/shared/services/gateway/gateway-restart-wake.service.js.map +0 -1
- package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts +0 -29
- package/dist/shared/services/gateway/managers/gateway-extension.manager.d.ts.map +0 -1
- package/dist/shared/services/gateway/managers/gateway-extension.manager.js +0 -78
- package/dist/shared/services/gateway/managers/gateway-extension.manager.js.map +0 -1
- package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts +0 -23
- package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts.map +0 -1
- package/dist/shared/services/gateway/managers/gateway-remote.manager.js +0 -28
- package/dist/shared/services/gateway/managers/gateway-remote.manager.js.map +0 -1
- package/dist/shared/services/gateway/nextclaw-app.service.d.ts +0 -18
- package/dist/shared/services/gateway/nextclaw-app.service.d.ts.map +0 -1
- package/dist/shared/services/gateway/nextclaw-app.service.js +0 -44
- package/dist/shared/services/gateway/nextclaw-app.service.js.map +0 -1
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts +0 -85
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts.map +0 -1
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js +0 -278
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js.map +0 -1
- package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts +0 -33
- package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts.map +0 -1
- package/dist/shared/services/gateway/service-bootstrap-status.service.js +0 -144
- package/dist/shared/services/gateway/service-bootstrap-status.service.js.map +0 -1
- package/dist/shared/services/gateway/service-startup-support.service.d.ts +0 -35
- package/dist/shared/services/gateway/service-startup-support.service.d.ts.map +0 -1
- package/dist/shared/services/gateway/service-startup-support.service.js +0 -85
- package/dist/shared/services/gateway/service-startup-support.service.js.map +0 -1
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts +0 -18
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts.map +0 -1
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.js +0 -56
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.js.map +0 -1
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts +0 -10
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts.map +0 -1
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js +0 -12
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js.map +0 -1
- package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts +0 -29
- package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts.map +0 -1
- package/dist/shared/services/marketplace/service-marketplace-installer.service.js +0 -87
- package/dist/shared/services/marketplace/service-marketplace-installer.service.js.map +0 -1
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts +0 -40
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts.map +0 -1
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js +0 -69
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js.map +0 -1
- package/dist/shared/services/restart/restart-coordinator.service.d.ts +0 -31
- package/dist/shared/services/restart/restart-coordinator.service.d.ts.map +0 -1
- package/dist/shared/services/restart/restart-coordinator.service.js +0 -53
- package/dist/shared/services/restart/restart-coordinator.service.js.map +0 -1
- package/dist/shared/services/restart/runtime-restart-request.service.d.ts +0 -25
- package/dist/shared/services/restart/runtime-restart-request.service.d.ts.map +0 -1
- package/dist/shared/services/restart/runtime-restart-request.service.js +0 -44
- package/dist/shared/services/restart/runtime-restart-request.service.js.map +0 -1
- package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts +0 -85
- package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts.map +0 -1
- package/dist/shared/services/runtime/managed-service-supervisor.service.js +0 -271
- package/dist/shared/services/runtime/managed-service-supervisor.service.js.map +0 -1
- package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts +0 -11
- package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts.map +0 -1
- package/dist/shared/services/runtime/nextclaw-distribution.service.js +0 -15
- package/dist/shared/services/runtime/nextclaw-distribution.service.js.map +0 -1
- package/dist/shared/services/runtime/runtime-command.service.d.ts +0 -42
- package/dist/shared/services/runtime/runtime-command.service.d.ts.map +0 -1
- package/dist/shared/services/runtime/runtime-command.service.js +0 -195
- package/dist/shared/services/runtime/runtime-command.service.js.map +0 -1
- package/dist/shared/services/runtime/runtime-config-init.service.d.ts +0 -5
- package/dist/shared/services/runtime/runtime-config-init.service.d.ts.map +0 -1
- package/dist/shared/services/runtime/runtime-config-init.service.js +0 -12
- package/dist/shared/services/runtime/runtime-config-init.service.js.map +0 -1
- package/dist/shared/services/runtime/service-managed-startup.service.d.ts +0 -95
- package/dist/shared/services/runtime/service-managed-startup.service.d.ts.map +0 -1
- package/dist/shared/services/runtime/service-managed-startup.service.js +0 -341
- package/dist/shared/services/runtime/service-managed-startup.service.js.map +0 -1
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts +0 -31
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts.map +0 -1
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.js +0 -64
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.js.map +0 -1
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts +0 -58
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts.map +0 -1
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js +0 -184
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js.map +0 -1
- package/dist/shared/services/ui/companion-runtime.service.d.ts +0 -36
- package/dist/shared/services/ui/companion-runtime.service.d.ts.map +0 -1
- package/dist/shared/services/ui/companion-runtime.service.js +0 -180
- package/dist/shared/services/ui/companion-runtime.service.js.map +0 -1
- package/dist/shared/services/ui/local-ui-discovery.service.d.ts +0 -20
- package/dist/shared/services/ui/local-ui-discovery.service.d.ts.map +0 -1
- package/dist/shared/services/ui/local-ui-discovery.service.js +0 -43
- package/dist/shared/services/ui/local-ui-discovery.service.js.map +0 -1
- package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts +0 -41
- package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts.map +0 -1
- package/dist/shared/services/ui/npm-runtime-update-host.service.js +0 -189
- package/dist/shared/services/ui/npm-runtime-update-host.service.js.map +0 -1
- package/dist/shared/services/ui/runtime-control-host.service.d.ts +0 -29
- package/dist/shared/services/ui/runtime-control-host.service.d.ts.map +0 -1
- package/dist/shared/services/ui/runtime-control-host.service.js +0 -91
- package/dist/shared/services/ui/runtime-control-host.service.js.map +0 -1
- package/dist/shared/services/ui/service-remote-access.service.d.ts +0 -26
- package/dist/shared/services/ui/service-remote-access.service.d.ts.map +0 -1
- package/dist/shared/services/ui/service-remote-access.service.js +0 -40
- package/dist/shared/services/ui/service-remote-access.service.js.map +0 -1
- package/dist/shared/services/ui/ui-bridge-api.service.d.ts +0 -17
- package/dist/shared/services/ui/ui-bridge-api.service.d.ts.map +0 -1
- package/dist/shared/services/ui/ui-bridge-api.service.js +0 -45
- package/dist/shared/services/ui/ui-bridge-api.service.js.map +0 -1
- package/dist/shared/services/workspace/workspace-manager.service.d.ts +0 -14
- package/dist/shared/services/workspace/workspace-manager.service.d.ts.map +0 -1
- package/dist/shared/services/workspace/workspace-manager.service.js +0 -86
- package/dist/shared/services/workspace/workspace-manager.service.js.map +0 -1
- package/dist/shared/stores/companion-runtime.store.d.ts +0 -16
- package/dist/shared/stores/companion-runtime.store.d.ts.map +0 -1
- package/dist/shared/stores/companion-runtime.store.js +0 -29
- package/dist/shared/stores/companion-runtime.store.js.map +0 -1
- package/dist/shared/stores/local-ui-runtime.store.d.ts +0 -26
- package/dist/shared/stores/local-ui-runtime.store.d.ts.map +0 -1
- package/dist/shared/stores/local-ui-runtime.store.js +0 -56
- package/dist/shared/stores/local-ui-runtime.store.js.map +0 -1
- package/dist/shared/stores/managed-service-state.store.d.ts +0 -46
- package/dist/shared/stores/managed-service-state.store.d.ts.map +0 -1
- package/dist/shared/stores/managed-service-state.store.js +0 -40
- package/dist/shared/stores/managed-service-state.store.js.map +0 -1
- package/dist/shared/stores/pending-restart.store.d.ts +0 -22
- package/dist/shared/stores/pending-restart.store.d.ts.map +0 -1
- package/dist/shared/stores/pending-restart.store.js +0 -37
- package/dist/shared/stores/pending-restart.store.js.map +0 -1
- package/dist/shared/types/cli.types.d.ts +0 -304
- package/dist/shared/types/cli.types.d.ts.map +0 -1
- package/dist/shared/types/distribution.types.d.ts +0 -11
- package/dist/shared/types/distribution.types.d.ts.map +0 -1
- package/dist/shared/utils/cli.utils.d.ts +0 -32
- package/dist/shared/utils/cli.utils.d.ts.map +0 -1
- package/dist/shared/utils/cli.utils.js +0 -254
- package/dist/shared/utils/cli.utils.js.map +0 -1
- package/dist/shared/utils/config-path.d.ts +0 -16
- package/dist/shared/utils/config-path.d.ts.map +0 -1
- package/dist/shared/utils/config-path.js +0 -169
- package/dist/shared/utils/config-path.js.map +0 -1
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts +0 -17
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +0 -1
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js +0 -48
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js.map +0 -1
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts +0 -15
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +0 -1
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js +0 -47
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js.map +0 -1
- package/dist/shared/utils/package/package-manifest.utils.d.ts +0 -5
- package/dist/shared/utils/package/package-manifest.utils.d.ts.map +0 -1
- package/dist/shared/utils/package/package-manifest.utils.js +0 -40
- package/dist/shared/utils/package/package-manifest.utils.js.map +0 -1
- package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts +0 -5
- package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.d.ts.map +0 -1
- package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js +0 -37
- package/dist/shared/utils/panel-app-client-sdk/panel-app-client-sdk-script.utils.js.map +0 -1
- package/dist/shared/utils/restart/restart-sentinel.utils.d.ts +0 -37
- package/dist/shared/utils/restart/restart-sentinel.utils.d.ts.map +0 -1
- package/dist/shared/utils/restart/restart-sentinel.utils.js +0 -76
- package/dist/shared/utils/restart/restart-sentinel.utils.js.map +0 -1
- package/dist/shared/utils/runtime-helpers.d.ts +0 -15
- package/dist/shared/utils/runtime-helpers.d.ts.map +0 -1
- package/dist/shared/utils/runtime-helpers.js +0 -28
- package/dist/shared/utils/runtime-helpers.js.map +0 -1
- package/dist/shared/utils/service-port-probe.utils.d.ts +0 -42
- package/dist/shared/utils/service-port-probe.utils.d.ts.map +0 -1
- package/dist/shared/utils/service-port-probe.utils.js +0 -166
- package/dist/shared/utils/service-port-probe.utils.js.map +0 -1
- package/dist/shared/utils/startup-trace.d.ts +0 -8
- package/dist/shared/utils/startup-trace.d.ts.map +0 -1
- package/dist/shared/utils/startup-trace.js +0 -39
- package/dist/shared/utils/startup-trace.js.map +0 -1
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts +0 -5
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts.map +0 -1
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.js +0 -12
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.js.map +0 -1
- /package/dist/{shared/types → types}/cli.types.js +0 -0
- /package/dist/{shared/types → types}/distribution.types.js +0 -0
- /package/dist/{commands/service/types/autostart → types}/host-autostart.types.js +0 -0
- /package/dist/{launcher → types}/npm-runtime-bundle.types.js +0 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { isProcessRunning, openBrowser, resolveServiceLogPath, resolveUiApiBase, resolveUiConfig, waitForExit } from "../../utils/cli.utils.js";
|
|
2
|
+
import { localUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
|
|
3
|
+
import { managedServiceStateStore } from "../../stores/managed-service-state.store.js";
|
|
4
|
+
import { resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate } from "../../utils/runtime/managed-service-routing.utils.js";
|
|
5
|
+
import { probeHealthEndpoint } from "../../utils/service-port-probe.utils.js";
|
|
6
|
+
import { ManagedServiceSupervisor } from "./managed-service-supervisor.service.js";
|
|
7
|
+
import * as NextclawCore from "@nextclaw/core";
|
|
8
|
+
//#region src/services/runtime/service-managed-startup.service.ts
|
|
9
|
+
const { APP_NAME: APP_NAME$1, loadConfig: loadConfig$1 } = NextclawCore;
|
|
10
|
+
async function waitForManagedServiceReadiness(params) {
|
|
11
|
+
params.appendStartupStage(params.logPath, `health probe started: ${params.healthUrl} (phase=quick, timeoutMs=${params.quickPhaseTimeoutMs})`);
|
|
12
|
+
let readiness = await params.waitForBackgroundServiceReady({
|
|
13
|
+
pid: params.childPid,
|
|
14
|
+
healthUrl: params.healthUrl,
|
|
15
|
+
timeoutMs: params.quickPhaseTimeoutMs
|
|
16
|
+
});
|
|
17
|
+
if (!readiness.ready && params.isProcessRunning(params.childPid) && params.extendedPhaseTimeoutMs > 0) {
|
|
18
|
+
console.warn(`Warning: Background service is still running but not ready after ${Math.ceil(params.quickPhaseTimeoutMs / 1e3)}s; waiting up to ${Math.ceil(params.extendedPhaseTimeoutMs / 1e3)}s more.`);
|
|
19
|
+
params.appendStartupStage(params.logPath, `health probe entering extended phase (timeoutMs=${params.extendedPhaseTimeoutMs}, lastError=${readiness.lastProbeError ?? "none"})`);
|
|
20
|
+
readiness = await params.waitForBackgroundServiceReady({
|
|
21
|
+
pid: params.childPid,
|
|
22
|
+
healthUrl: params.healthUrl,
|
|
23
|
+
timeoutMs: params.extendedPhaseTimeoutMs
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (!readiness.ready && params.isProcessRunning(params.childPid)) params.appendStartupStage(params.logPath, `startup degraded: process alive but health probe timed out after ${params.readinessTimeoutMs}ms (lastError=${readiness.lastProbeError ?? "none"})`);
|
|
27
|
+
return readiness;
|
|
28
|
+
}
|
|
29
|
+
async function reportManagedServiceStart(params) {
|
|
30
|
+
if (!params.readiness.ready) {
|
|
31
|
+
const hint = params.readiness.lastProbeError ? ` Last probe error: ${params.readiness.lastProbeError}` : "";
|
|
32
|
+
console.warn(`Warning: ${params.appName} is running (PID ${params.state.pid}) but not healthy yet after ${Math.ceil(params.readinessTimeoutMs / 1e3)}s. Marked as degraded.${hint}`);
|
|
33
|
+
console.warn(`Tip: Run "${params.appName} status --json" and check logs: ${params.state.logPath}`);
|
|
34
|
+
} else console.log(`✓ ${params.appName} started in background (PID ${params.state.pid})`);
|
|
35
|
+
console.log(`UI: ${params.uiUrl}`);
|
|
36
|
+
console.log(`API: ${params.apiUrl}`);
|
|
37
|
+
await params.printPublicUiUrls(params.uiConfig.host, params.uiConfig.port);
|
|
38
|
+
console.log(`Logs: ${params.state.logPath}`);
|
|
39
|
+
params.printServiceControlHints();
|
|
40
|
+
}
|
|
41
|
+
var ManagedServiceCommandService = class {
|
|
42
|
+
loggingRuntime = NextclawCore.getLoggingRuntime();
|
|
43
|
+
serviceLogger = this.loggingRuntime.getLogger("service");
|
|
44
|
+
startupLogger = this.serviceLogger.child("startup");
|
|
45
|
+
supervisor = new ManagedServiceSupervisor();
|
|
46
|
+
constructor(deps) {
|
|
47
|
+
this.deps = deps;
|
|
48
|
+
}
|
|
49
|
+
runForeground = async (options) => {
|
|
50
|
+
const uiConfig = resolveUiConfig(loadConfig$1(), options.uiOverrides);
|
|
51
|
+
const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);
|
|
52
|
+
if (options.open) openBrowser(uiUrl);
|
|
53
|
+
await this.deps.startGateway({
|
|
54
|
+
uiOverrides: options.uiOverrides,
|
|
55
|
+
uiStaticDir: this.deps.resolveUiStaticDir()
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
startService = async (options) => {
|
|
59
|
+
this.loggingRuntime.ensureReady();
|
|
60
|
+
const { open, startupTimeoutMs, uiOverrides } = options;
|
|
61
|
+
const config = loadConfig$1();
|
|
62
|
+
const uiConfig = resolveUiConfig(config, uiOverrides);
|
|
63
|
+
const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);
|
|
64
|
+
const apiUrl = `${uiUrl}/api`;
|
|
65
|
+
const staticDir = this.deps.resolveUiStaticDir();
|
|
66
|
+
const existing = managedServiceStateStore.read();
|
|
67
|
+
const existingLiveness = this.supervisor.resolveStateLiveness(existing);
|
|
68
|
+
if (existing && existingLiveness.running) {
|
|
69
|
+
await this.handleExistingManagedService({
|
|
70
|
+
existing,
|
|
71
|
+
uiConfig,
|
|
72
|
+
options
|
|
73
|
+
});
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (existing && !existingLiveness.processExists) managedServiceStateStore.clear();
|
|
77
|
+
if (!staticDir) {
|
|
78
|
+
process.exitCode = 1, console.error(`Error: ${APP_NAME$1} UI frontend bundle not found. Reinstall or rebuild ${APP_NAME$1}. For dev-only overrides, set NEXTCLAW_UI_STATIC_DIR to a built frontend directory.`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const healthUrl = `${apiUrl}/health`;
|
|
82
|
+
const portPreflight = await this.deps.checkUiPortPreflight({
|
|
83
|
+
host: uiConfig.host,
|
|
84
|
+
port: uiConfig.port,
|
|
85
|
+
healthUrl
|
|
86
|
+
});
|
|
87
|
+
if (!portPreflight.ok) {
|
|
88
|
+
process.exitCode = 1, console.error(`Error: Cannot start ${APP_NAME$1} because UI port ${uiConfig.port} is already occupied.`), console.error(portPreflight.message);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (portPreflight.reusedExistingHealthyTarget) {
|
|
92
|
+
await this.reuseExistingHealthyStartTarget({
|
|
93
|
+
uiConfig,
|
|
94
|
+
uiUrl,
|
|
95
|
+
apiUrl,
|
|
96
|
+
open
|
|
97
|
+
});
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
await this.startNewManagedServiceTarget({
|
|
101
|
+
config,
|
|
102
|
+
uiConfig,
|
|
103
|
+
uiUrl,
|
|
104
|
+
apiUrl,
|
|
105
|
+
healthUrl,
|
|
106
|
+
startupTimeoutMs
|
|
107
|
+
});
|
|
108
|
+
if (open) openBrowser(uiUrl);
|
|
109
|
+
};
|
|
110
|
+
stopService = async () => {
|
|
111
|
+
const state = managedServiceStateStore.read();
|
|
112
|
+
if (!state) {
|
|
113
|
+
console.log("No running background service found.");
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (!isProcessRunning(state.pid)) {
|
|
117
|
+
console.log("Service is not running. Cleaning up state.");
|
|
118
|
+
managedServiceStateStore.clear();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
console.log(`Stopping ${APP_NAME$1} (PID ${state.pid})...`);
|
|
122
|
+
this.serviceLogger.info("runtime.process.stop_requested", {
|
|
123
|
+
runtimeKind: "managed-service",
|
|
124
|
+
pid: state.pid,
|
|
125
|
+
reason: "nextclaw-stop-command",
|
|
126
|
+
uiUrl: state.uiUrl,
|
|
127
|
+
apiUrl: state.apiUrl
|
|
128
|
+
});
|
|
129
|
+
try {
|
|
130
|
+
process.kill(state.pid, "SIGTERM");
|
|
131
|
+
} catch (error) {
|
|
132
|
+
console.error(`Failed to stop service: ${String(error)}`);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (!await waitForExit(state.pid, 3e3)) {
|
|
136
|
+
this.serviceLogger.warn("runtime.process.stop_requested", {
|
|
137
|
+
runtimeKind: "managed-service",
|
|
138
|
+
pid: state.pid,
|
|
139
|
+
reason: "nextclaw-stop-command-force",
|
|
140
|
+
signal: "SIGKILL",
|
|
141
|
+
uiUrl: state.uiUrl,
|
|
142
|
+
apiUrl: state.apiUrl
|
|
143
|
+
});
|
|
144
|
+
try {
|
|
145
|
+
process.kill(state.pid, "SIGKILL");
|
|
146
|
+
} catch (error) {
|
|
147
|
+
console.error(`Failed to force stop service: ${String(error)}`);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
await waitForExit(state.pid, 2e3);
|
|
151
|
+
}
|
|
152
|
+
managedServiceStateStore.clear();
|
|
153
|
+
localUiRuntimeStore.clearIfOwnedByProcess(state.pid);
|
|
154
|
+
this.serviceLogger.info("service_state.cleared", {
|
|
155
|
+
runtimeKind: "managed-service",
|
|
156
|
+
pid: state.pid,
|
|
157
|
+
statePath: managedServiceStateStore.path,
|
|
158
|
+
uiUrl: state.uiUrl,
|
|
159
|
+
apiUrl: state.apiUrl
|
|
160
|
+
});
|
|
161
|
+
console.log(`✓ ${APP_NAME$1} stopped`);
|
|
162
|
+
};
|
|
163
|
+
handleExistingManagedService = async (params) => {
|
|
164
|
+
const { existing, options, uiConfig } = params;
|
|
165
|
+
console.log(`✓ ${APP_NAME$1} is already running (PID ${existing.pid})`);
|
|
166
|
+
console.log(`UI: ${existing.uiUrl}`);
|
|
167
|
+
console.log(`API: ${existing.apiUrl}`);
|
|
168
|
+
const binding = resolveManagedServiceUiBinding(existing);
|
|
169
|
+
if (binding.host !== uiConfig.host || binding.port !== uiConfig.port) {
|
|
170
|
+
console.log(`Detected running service UI bind (${binding.host}:${binding.port}); enforcing (${uiConfig.host}:${uiConfig.port})...`);
|
|
171
|
+
await this.stopService();
|
|
172
|
+
const stateAfterStop = managedServiceStateStore.read();
|
|
173
|
+
if (stateAfterStop && isProcessRunning(stateAfterStop.pid)) {
|
|
174
|
+
process.exitCode = 1;
|
|
175
|
+
console.error("Error: Failed to stop running service while enforcing public UI exposure.");
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
await this.startService(options);
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
await this.deps.printPublicUiUrls(binding.host, binding.port);
|
|
182
|
+
console.log(`Logs: ${existing.logPath}`);
|
|
183
|
+
this.deps.printServiceControlHints();
|
|
184
|
+
return true;
|
|
185
|
+
};
|
|
186
|
+
reuseExistingHealthyStartTarget = async (params) => {
|
|
187
|
+
const { apiUrl, open, uiConfig, uiUrl } = params;
|
|
188
|
+
console.log(`✓ ${APP_NAME$1} is already serving the target UI/API port`);
|
|
189
|
+
console.log(`UI: ${uiUrl}`);
|
|
190
|
+
console.log(`API: ${apiUrl}`);
|
|
191
|
+
console.warn([
|
|
192
|
+
`Warning: The healthy listener on ${uiConfig.port} is not tracked by ${managedServiceStateStore.path}.`,
|
|
193
|
+
"This start call reused the existing runtime instead of spawning another one.",
|
|
194
|
+
"Use the owning process or port-level tools to stop it; managed stop/restart will not control it automatically."
|
|
195
|
+
].join(" "));
|
|
196
|
+
await this.deps.printPublicUiUrls(uiConfig.host, uiConfig.port);
|
|
197
|
+
if (open) openBrowser(uiUrl);
|
|
198
|
+
};
|
|
199
|
+
startNewManagedServiceTarget = async (params) => {
|
|
200
|
+
const { apiUrl, config, healthUrl, startupTimeoutMs, uiConfig, uiUrl } = params;
|
|
201
|
+
const startup = this.supervisor.spawnManagedService({
|
|
202
|
+
appName: APP_NAME$1,
|
|
203
|
+
config,
|
|
204
|
+
uiConfig,
|
|
205
|
+
uiUrl,
|
|
206
|
+
apiUrl,
|
|
207
|
+
healthUrl,
|
|
208
|
+
startupTimeoutMs,
|
|
209
|
+
resolveStartupTimeoutMs: this.resolveStartupTimeoutMs,
|
|
210
|
+
appendStartupStage: this.appendStartupStage,
|
|
211
|
+
printStartupFailureDiagnostics: this.printStartupFailureDiagnostics,
|
|
212
|
+
resolveServiceLogPath
|
|
213
|
+
});
|
|
214
|
+
if (!startup) {
|
|
215
|
+
this.serviceLogger.fatal("managed service startup aborted", { reason: "child_process_not_created" });
|
|
216
|
+
process.exitCode = 1;
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const readiness = await waitForManagedServiceReadiness({
|
|
220
|
+
appName: APP_NAME$1,
|
|
221
|
+
childPid: startup.snapshot.pid,
|
|
222
|
+
healthUrl,
|
|
223
|
+
logPath: startup.logPath,
|
|
224
|
+
readinessTimeoutMs: startup.readinessTimeoutMs,
|
|
225
|
+
quickPhaseTimeoutMs: startup.quickPhaseTimeoutMs,
|
|
226
|
+
extendedPhaseTimeoutMs: startup.extendedPhaseTimeoutMs,
|
|
227
|
+
appendStartupStage: this.appendStartupStage,
|
|
228
|
+
waitForBackgroundServiceReady: this.waitForBackgroundServiceReady,
|
|
229
|
+
isProcessRunning
|
|
230
|
+
});
|
|
231
|
+
if (!readiness.ready && !isProcessRunning(startup.snapshot.pid)) {
|
|
232
|
+
process.exitCode = 1;
|
|
233
|
+
managedServiceStateStore.clear();
|
|
234
|
+
const hint = readiness.lastProbeError ? ` Last probe error: ${readiness.lastProbeError}` : "";
|
|
235
|
+
this.appendStartupStage(startup.logPath, `startup failed: process exited before ready.${hint}`);
|
|
236
|
+
this.serviceLogger.fatal("managed service exited before readiness completed", {
|
|
237
|
+
uiUrl,
|
|
238
|
+
apiUrl,
|
|
239
|
+
healthUrl,
|
|
240
|
+
logPath: startup.logPath,
|
|
241
|
+
...readiness.lastProbeError ? { lastProbeError: readiness.lastProbeError } : {}
|
|
242
|
+
});
|
|
243
|
+
console.error(`Error: Failed to start background service. Check logs: ${startup.logPath}.${hint}`);
|
|
244
|
+
this.printStartupFailureDiagnostics({
|
|
245
|
+
uiUrl,
|
|
246
|
+
apiUrl,
|
|
247
|
+
healthUrl,
|
|
248
|
+
logPath: startup.logPath,
|
|
249
|
+
lastProbeError: readiness.lastProbeError
|
|
250
|
+
});
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
startup.child.unref();
|
|
254
|
+
const readySnapshot = resolveManagedServiceReadySnapshot({ snapshot: startup.snapshot });
|
|
255
|
+
const state = this.supervisor.writeReadyState({
|
|
256
|
+
readinessTimeoutMs: startup.readinessTimeoutMs,
|
|
257
|
+
readiness,
|
|
258
|
+
snapshot: readySnapshot
|
|
259
|
+
});
|
|
260
|
+
this.startupLogger.info("runtime.process.ready", {
|
|
261
|
+
runtimeKind: "managed-service",
|
|
262
|
+
pid: state.pid,
|
|
263
|
+
uiUrl: state.uiUrl,
|
|
264
|
+
apiUrl: state.apiUrl,
|
|
265
|
+
startupState: state.startupState,
|
|
266
|
+
readinessTimeoutMs: startup.readinessTimeoutMs
|
|
267
|
+
});
|
|
268
|
+
await reportManagedServiceStart({
|
|
269
|
+
appName: APP_NAME$1,
|
|
270
|
+
state,
|
|
271
|
+
uiConfig,
|
|
272
|
+
uiUrl,
|
|
273
|
+
apiUrl,
|
|
274
|
+
readinessTimeoutMs: startup.readinessTimeoutMs,
|
|
275
|
+
readiness,
|
|
276
|
+
printPublicUiUrls: this.deps.printPublicUiUrls,
|
|
277
|
+
printServiceControlHints: this.deps.printServiceControlHints
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
waitForBackgroundServiceReady = async (params) => {
|
|
281
|
+
const { pid, healthUrl, timeoutMs } = params;
|
|
282
|
+
const startedAt = Date.now();
|
|
283
|
+
let lastProbeError = null;
|
|
284
|
+
while (Date.now() - startedAt < timeoutMs) {
|
|
285
|
+
if (!isProcessRunning(pid)) return {
|
|
286
|
+
ready: false,
|
|
287
|
+
lastProbeError
|
|
288
|
+
};
|
|
289
|
+
const probe = await probeHealthEndpoint(healthUrl);
|
|
290
|
+
if (!probe.healthy) {
|
|
291
|
+
lastProbeError = probe.error;
|
|
292
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 300));
|
|
296
|
+
if (isProcessRunning(pid)) return {
|
|
297
|
+
ready: true,
|
|
298
|
+
lastProbeError: null
|
|
299
|
+
};
|
|
300
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));
|
|
301
|
+
}
|
|
302
|
+
return {
|
|
303
|
+
ready: false,
|
|
304
|
+
lastProbeError
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
resolveStartupTimeoutMs = (overrideTimeoutMs) => {
|
|
308
|
+
const fallback = process.platform === "win32" ? 28e3 : 33e3;
|
|
309
|
+
const envRaw = process.env.NEXTCLAW_START_TIMEOUT_MS?.trim();
|
|
310
|
+
const envValue = envRaw ? Number(envRaw) : NaN;
|
|
311
|
+
const fromEnv = Number.isFinite(envValue) && envValue > 0 ? Math.floor(envValue) : null;
|
|
312
|
+
const resolved = (Number.isFinite(overrideTimeoutMs) && Number(overrideTimeoutMs) > 0 ? Math.floor(Number(overrideTimeoutMs)) : null) ?? fromEnv ?? fallback;
|
|
313
|
+
return Math.max(3e3, resolved);
|
|
314
|
+
};
|
|
315
|
+
appendStartupStage = (logPath, message) => {
|
|
316
|
+
try {
|
|
317
|
+
this.startupLogger.info(message, { logPath });
|
|
318
|
+
} catch (error) {
|
|
319
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
320
|
+
console.error(`Warning: failed to write startup diagnostics log (${logPath}): ${detail}`);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
printStartupFailureDiagnostics = (params) => {
|
|
324
|
+
const { apiUrl, healthUrl, lastProbeError, logPath, uiUrl } = params;
|
|
325
|
+
const statePath = managedServiceStateStore.path;
|
|
326
|
+
const lines = [
|
|
327
|
+
"Startup diagnostics:",
|
|
328
|
+
`- UI URL: ${uiUrl}`,
|
|
329
|
+
`- API URL: ${apiUrl}`,
|
|
330
|
+
`- Health probe: ${healthUrl}`,
|
|
331
|
+
`- Service state path: ${statePath}`,
|
|
332
|
+
`- Startup log path: ${logPath}`
|
|
333
|
+
];
|
|
334
|
+
if (lastProbeError) lines.push(`- Last probe detail: ${lastProbeError}`);
|
|
335
|
+
console.error(lines.join("\n"));
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
//#endregion
|
|
339
|
+
export { ManagedServiceCommandService, reportManagedServiceStart, resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate, waitForManagedServiceReadiness };
|
|
340
|
+
|
|
341
|
+
//# sourceMappingURL=service-managed-startup.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-managed-startup.service.js","names":["loadConfig","APP_NAME"],"sources":["../../../src/services/runtime/service-managed-startup.service.ts"],"sourcesContent":["import * as NextclawCore from \"@nextclaw/core\";\nimport { localUiRuntimeStore } from \"@nextclaw-service/stores/local-ui-runtime.store.js\";\nimport { managedServiceStateStore, type ManagedServiceState } from \"@nextclaw-service/stores/managed-service-state.store.js\";\nimport {\n resolveManagedServiceReadySnapshot,\n resolveManagedServiceUiBinding,\n resolveSessionRouteCandidate,\n} from \"@nextclaw-service/utils/runtime/managed-service-routing.utils.js\";\nimport {\n isProcessRunning,\n openBrowser,\n resolveServiceLogPath,\n resolveUiApiBase,\n resolveUiConfig,\n waitForExit\n} from \"@nextclaw-service/utils/cli.utils.js\";\nimport { probeHealthEndpoint } from \"@nextclaw-service/utils/service-port-probe.utils.js\";\nimport { ManagedServiceSupervisor } from \"@nextclaw-service/services/runtime/managed-service-supervisor.service.js\";\n\nconst { APP_NAME, loadConfig } = NextclawCore;\n\ntype Config = NextclawCore.Config;\n\nexport type StartServiceOptions = {\n uiOverrides: Partial<Config[\"ui\"]>;\n open: boolean;\n startupTimeoutMs?: number;\n};\n\nexport { resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate };\n\nexport async function waitForManagedServiceReadiness(params: {\n appName: string;\n childPid: number;\n healthUrl: string;\n logPath: string;\n readinessTimeoutMs: number;\n quickPhaseTimeoutMs: number;\n extendedPhaseTimeoutMs: number;\n appendStartupStage: (logPath: string, message: string) => void;\n waitForBackgroundServiceReady: (params: {\n pid: number;\n healthUrl: string;\n timeoutMs: number;\n }) => Promise<{ ready: boolean; lastProbeError: string | null }>;\n isProcessRunning: (pid: number) => boolean;\n}): Promise<{ ready: boolean; lastProbeError: string | null }> {\n params.appendStartupStage(params.logPath, `health probe started: ${params.healthUrl} (phase=quick, timeoutMs=${params.quickPhaseTimeoutMs})`);\n let readiness = await params.waitForBackgroundServiceReady({\n pid: params.childPid,\n healthUrl: params.healthUrl,\n timeoutMs: params.quickPhaseTimeoutMs\n });\n if (!readiness.ready && params.isProcessRunning(params.childPid) && params.extendedPhaseTimeoutMs > 0) {\n console.warn(\n `Warning: Background service is still running but not ready after ${Math.ceil(params.quickPhaseTimeoutMs / 1000)}s; waiting up to ${Math.ceil(params.extendedPhaseTimeoutMs / 1000)}s more.`\n );\n params.appendStartupStage(\n params.logPath,\n `health probe entering extended phase (timeoutMs=${params.extendedPhaseTimeoutMs}, lastError=${readiness.lastProbeError ?? \"none\"})`\n );\n readiness = await params.waitForBackgroundServiceReady({\n pid: params.childPid,\n healthUrl: params.healthUrl,\n timeoutMs: params.extendedPhaseTimeoutMs\n });\n }\n if (!readiness.ready && params.isProcessRunning(params.childPid)) {\n params.appendStartupStage(\n params.logPath,\n `startup degraded: process alive but health probe timed out after ${params.readinessTimeoutMs}ms (lastError=${readiness.lastProbeError ?? \"none\"})`\n );\n }\n return readiness;\n}\n\nexport async function reportManagedServiceStart(params: {\n appName: string;\n state: { pid: number; logPath: string };\n uiConfig: { host: string; port: number };\n uiUrl: string;\n apiUrl: string;\n readinessTimeoutMs: number;\n readiness: { ready: boolean; lastProbeError: string | null };\n printPublicUiUrls: (host: string, port: number) => Promise<void>;\n printServiceControlHints: () => void;\n}): Promise<void> {\n if (!params.readiness.ready) {\n const hint = params.readiness.lastProbeError ? ` Last probe error: ${params.readiness.lastProbeError}` : \"\";\n console.warn(\n `Warning: ${params.appName} is running (PID ${params.state.pid}) but not healthy yet after ${Math.ceil(params.readinessTimeoutMs / 1000)}s. Marked as degraded.${hint}`\n );\n console.warn(`Tip: Run \"${params.appName} status --json\" and check logs: ${params.state.logPath}`);\n } else {\n console.log(`✓ ${params.appName} started in background (PID ${params.state.pid})`);\n }\n console.log(`UI: ${params.uiUrl}`);\n console.log(`API: ${params.apiUrl}`);\n await params.printPublicUiUrls(params.uiConfig.host, params.uiConfig.port);\n console.log(`Logs: ${params.state.logPath}`);\n params.printServiceControlHints();\n}\n\nexport class ManagedServiceCommandService {\n private readonly loggingRuntime = NextclawCore.getLoggingRuntime();\n private readonly serviceLogger = this.loggingRuntime.getLogger(\"service\");\n private readonly startupLogger = this.serviceLogger.child(\"startup\");\n private readonly supervisor = new ManagedServiceSupervisor();\n\n constructor(private readonly deps: {\n startGateway: (options: { uiOverrides: Partial<Config[\"ui\"]>; uiStaticDir?: string | null }) => Promise<void>;\n printPublicUiUrls: (host: string, port: number) => Promise<void>;\n printServiceControlHints: () => void;\n checkUiPortPreflight: (params: { host: string; port: number; healthUrl: string }) => Promise<{ ok: true; reusedExistingHealthyTarget: boolean } | { ok: false; message: string }>;\n resolveUiStaticDir: () => string | null;\n }) {}\n\n runForeground = async (options: {\n uiOverrides: Partial<Config[\"ui\"]>;\n open: boolean;\n }): Promise<void> => {\n const config = loadConfig();\n const uiConfig = resolveUiConfig(config, options.uiOverrides);\n const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);\n\n if (options.open) {\n openBrowser(uiUrl);\n }\n\n await this.deps.startGateway({\n uiOverrides: options.uiOverrides,\n uiStaticDir: this.deps.resolveUiStaticDir()\n });\n };\n\n startService = async (options: StartServiceOptions): Promise<void> => {\n this.loggingRuntime.ensureReady();\n const { open, startupTimeoutMs, uiOverrides } = options;\n const config = loadConfig();\n const uiConfig = resolveUiConfig(config, uiOverrides);\n const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);\n const apiUrl = `${uiUrl}/api`;\n const staticDir = this.deps.resolveUiStaticDir();\n\n const existing = managedServiceStateStore.read();\n const existingLiveness = this.supervisor.resolveStateLiveness(existing);\n if (existing && existingLiveness.running) {\n await this.handleExistingManagedService({ existing, uiConfig, options });\n return;\n }\n if (existing && !existingLiveness.processExists) {\n managedServiceStateStore.clear();\n }\n\n if (!staticDir) {\n return void (\n process.exitCode = 1,\n console.error(`Error: ${APP_NAME} UI frontend bundle not found. Reinstall or rebuild ${APP_NAME}. For dev-only overrides, set NEXTCLAW_UI_STATIC_DIR to a built frontend directory.`)\n );\n }\n\n const healthUrl = `${apiUrl}/health`;\n const portPreflight = await this.deps.checkUiPortPreflight({ host: uiConfig.host, port: uiConfig.port, healthUrl });\n if (!portPreflight.ok) {\n return void (\n process.exitCode = 1,\n console.error(`Error: Cannot start ${APP_NAME} because UI port ${uiConfig.port} is already occupied.`),\n console.error(portPreflight.message)\n );\n }\n if (portPreflight.reusedExistingHealthyTarget) {\n await this.reuseExistingHealthyStartTarget({ uiConfig, uiUrl, apiUrl, open });\n return;\n }\n\n await this.startNewManagedServiceTarget({\n config,\n uiConfig,\n uiUrl,\n apiUrl,\n healthUrl,\n startupTimeoutMs,\n });\n\n if (open) {\n openBrowser(uiUrl);\n }\n };\n\n stopService = async (): Promise<void> => {\n const state = managedServiceStateStore.read();\n if (!state) {\n console.log(\"No running background service found.\");\n return;\n }\n if (!isProcessRunning(state.pid)) {\n console.log(\"Service is not running. Cleaning up state.\");\n managedServiceStateStore.clear();\n return;\n }\n\n console.log(`Stopping ${APP_NAME} (PID ${state.pid})...`);\n this.serviceLogger.info(\"runtime.process.stop_requested\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n reason: \"nextclaw-stop-command\",\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n try {\n process.kill(state.pid, \"SIGTERM\");\n } catch (error) {\n console.error(`Failed to stop service: ${String(error)}`);\n return;\n }\n\n const stopped = await waitForExit(state.pid, 3000);\n if (!stopped) {\n this.serviceLogger.warn(\"runtime.process.stop_requested\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n reason: \"nextclaw-stop-command-force\",\n signal: \"SIGKILL\",\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n try {\n process.kill(state.pid, \"SIGKILL\");\n } catch (error) {\n console.error(`Failed to force stop service: ${String(error)}`);\n return;\n }\n await waitForExit(state.pid, 2000);\n }\n\n managedServiceStateStore.clear();\n localUiRuntimeStore.clearIfOwnedByProcess(state.pid);\n this.serviceLogger.info(\"service_state.cleared\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n statePath: managedServiceStateStore.path,\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl\n });\n console.log(`✓ ${APP_NAME} stopped`);\n };\n\n private handleExistingManagedService = async (params: {\n existing: ManagedServiceState;\n uiConfig: Config[\"ui\"];\n options: StartServiceOptions;\n }): Promise<boolean> => {\n const { existing, options, uiConfig } = params;\n console.log(`✓ ${APP_NAME} is already running (PID ${existing.pid})`);\n console.log(`UI: ${existing.uiUrl}`);\n console.log(`API: ${existing.apiUrl}`);\n\n const binding = resolveManagedServiceUiBinding(existing);\n if (binding.host !== uiConfig.host || binding.port !== uiConfig.port) {\n console.log(\n `Detected running service UI bind (${binding.host}:${binding.port}); enforcing (${uiConfig.host}:${uiConfig.port})...`\n );\n await this.stopService();\n const stateAfterStop = managedServiceStateStore.read();\n if (stateAfterStop && isProcessRunning(stateAfterStop.pid)) {\n process.exitCode = 1;\n console.error(\"Error: Failed to stop running service while enforcing public UI exposure.\");\n return true;\n }\n await this.startService(options);\n return true;\n }\n\n await this.deps.printPublicUiUrls(binding.host, binding.port);\n console.log(`Logs: ${existing.logPath}`);\n this.deps.printServiceControlHints();\n return true;\n };\n\n private reuseExistingHealthyStartTarget = async (params: {\n uiConfig: Config[\"ui\"];\n uiUrl: string;\n apiUrl: string;\n open: boolean;\n }): Promise<void> => {\n const { apiUrl, open, uiConfig, uiUrl } = params;\n console.log(`✓ ${APP_NAME} is already serving the target UI/API port`);\n console.log(`UI: ${uiUrl}`);\n console.log(`API: ${apiUrl}`);\n console.warn(\n [\n `Warning: The healthy listener on ${uiConfig.port} is not tracked by ${managedServiceStateStore.path}.`,\n \"This start call reused the existing runtime instead of spawning another one.\",\n \"Use the owning process or port-level tools to stop it; managed stop/restart will not control it automatically.\"\n ].join(\" \")\n );\n await this.deps.printPublicUiUrls(uiConfig.host, uiConfig.port);\n if (open) {\n openBrowser(uiUrl);\n }\n };\n\n private startNewManagedServiceTarget = async (params: {\n config: Config;\n uiConfig: Config[\"ui\"];\n uiUrl: string;\n apiUrl: string;\n healthUrl: string;\n startupTimeoutMs?: number;\n }): Promise<void> => {\n const { apiUrl, config, healthUrl, startupTimeoutMs, uiConfig, uiUrl } = params;\n const startup = this.supervisor.spawnManagedService({\n appName: APP_NAME,\n config,\n uiConfig,\n uiUrl,\n apiUrl,\n healthUrl,\n startupTimeoutMs,\n resolveStartupTimeoutMs: this.resolveStartupTimeoutMs,\n appendStartupStage: this.appendStartupStage,\n printStartupFailureDiagnostics: this.printStartupFailureDiagnostics,\n resolveServiceLogPath\n });\n if (!startup) {\n this.serviceLogger.fatal(\"managed service startup aborted\", {\n reason: \"child_process_not_created\"\n });\n process.exitCode = 1;\n return;\n }\n\n const readiness = await waitForManagedServiceReadiness({\n appName: APP_NAME,\n childPid: startup.snapshot.pid,\n healthUrl,\n logPath: startup.logPath,\n readinessTimeoutMs: startup.readinessTimeoutMs,\n quickPhaseTimeoutMs: startup.quickPhaseTimeoutMs,\n extendedPhaseTimeoutMs: startup.extendedPhaseTimeoutMs,\n appendStartupStage: this.appendStartupStage,\n waitForBackgroundServiceReady: this.waitForBackgroundServiceReady,\n isProcessRunning\n });\n if (!readiness.ready && !isProcessRunning(startup.snapshot.pid)) {\n process.exitCode = 1;\n managedServiceStateStore.clear();\n const hint = readiness.lastProbeError ? ` Last probe error: ${readiness.lastProbeError}` : \"\";\n this.appendStartupStage(startup.logPath, `startup failed: process exited before ready.${hint}`);\n this.serviceLogger.fatal(\"managed service exited before readiness completed\", {\n uiUrl,\n apiUrl,\n healthUrl,\n logPath: startup.logPath,\n ...(readiness.lastProbeError ? { lastProbeError: readiness.lastProbeError } : {}),\n });\n console.error(`Error: Failed to start background service. Check logs: ${startup.logPath}.${hint}`);\n this.printStartupFailureDiagnostics({\n uiUrl,\n apiUrl,\n healthUrl,\n logPath: startup.logPath,\n lastProbeError: readiness.lastProbeError\n });\n return;\n }\n\n startup.child.unref();\n const readySnapshot = resolveManagedServiceReadySnapshot({\n snapshot: startup.snapshot\n });\n const state = this.supervisor.writeReadyState({\n readinessTimeoutMs: startup.readinessTimeoutMs,\n readiness,\n snapshot: readySnapshot\n });\n this.startupLogger.info(\"runtime.process.ready\", {\n runtimeKind: \"managed-service\",\n pid: state.pid,\n uiUrl: state.uiUrl,\n apiUrl: state.apiUrl,\n startupState: state.startupState,\n readinessTimeoutMs: startup.readinessTimeoutMs\n });\n await reportManagedServiceStart({\n appName: APP_NAME,\n state,\n uiConfig,\n uiUrl,\n apiUrl,\n readinessTimeoutMs: startup.readinessTimeoutMs,\n readiness,\n printPublicUiUrls: this.deps.printPublicUiUrls,\n printServiceControlHints: this.deps.printServiceControlHints\n });\n };\n\n private waitForBackgroundServiceReady = async (params: { pid: number; healthUrl: string; timeoutMs: number }): Promise<{ ready: boolean; lastProbeError: string | null }> => {\n const { pid, healthUrl, timeoutMs } = params;\n const startedAt = Date.now();\n let lastProbeError: string | null = null;\n while (Date.now() - startedAt < timeoutMs) {\n if (!isProcessRunning(pid)) {\n return { ready: false, lastProbeError };\n }\n const probe = await probeHealthEndpoint(healthUrl);\n if (!probe.healthy) {\n lastProbeError = probe.error;\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));\n continue;\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 300));\n if (isProcessRunning(pid)) {\n return { ready: true, lastProbeError: null };\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 200));\n }\n return { ready: false, lastProbeError };\n };\n\n private resolveStartupTimeoutMs = (overrideTimeoutMs: number | undefined): number => {\n const fallback = process.platform === \"win32\" ? 28000 : 33000;\n const envRaw = process.env.NEXTCLAW_START_TIMEOUT_MS?.trim();\n const envValue = envRaw ? Number(envRaw) : Number.NaN;\n const fromEnv = Number.isFinite(envValue) && envValue > 0 ? Math.floor(envValue) : null;\n const fromOverride = Number.isFinite(overrideTimeoutMs) && Number(overrideTimeoutMs) > 0\n ? Math.floor(Number(overrideTimeoutMs))\n : null;\n const resolved = fromOverride ?? fromEnv ?? fallback;\n return Math.max(3000, resolved);\n };\n\n private appendStartupStage = (logPath: string, message: string): void => {\n try {\n this.startupLogger.info(message, { logPath });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n console.error(`Warning: failed to write startup diagnostics log (${logPath}): ${detail}`);\n }\n };\n\n private printStartupFailureDiagnostics = (params: { uiUrl: string; apiUrl: string; healthUrl: string; logPath: string; lastProbeError: string | null }): void => {\n const { apiUrl, healthUrl, lastProbeError, logPath, uiUrl } = params;\n const statePath = managedServiceStateStore.path;\n const lines = [\n \"Startup diagnostics:\",\n `- UI URL: ${uiUrl}`,\n `- API URL: ${apiUrl}`,\n `- Health probe: ${healthUrl}`,\n `- Service state path: ${statePath}`,\n `- Startup log path: ${logPath}`\n ];\n if (lastProbeError) {\n lines.push(`- Last probe detail: ${lastProbeError}`);\n }\n console.error(lines.join(\"\\n\"));\n };\n\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LocalUiDiscoveryService } from "./local-ui-discovery.service.js";
|
|
2
|
+
import { CompanionRuntimeState, CompanionRuntimeStore } from "../../stores/companion-runtime.store.js";
|
|
3
|
+
import { Config } from "@nextclaw/core";
|
|
4
|
+
|
|
5
|
+
//#region src/services/ui/companion-runtime.service.d.ts
|
|
6
|
+
declare class CompanionRuntimeService {
|
|
7
|
+
private readonly runtimeStore;
|
|
8
|
+
private readonly uiDiscoveryService;
|
|
9
|
+
constructor(runtimeStore?: CompanionRuntimeStore, uiDiscoveryService?: LocalUiDiscoveryService);
|
|
10
|
+
readonly getRunningState: () => CompanionRuntimeState | null;
|
|
11
|
+
readonly resolveDiscoveredBaseUrl: () => string | null;
|
|
12
|
+
readonly isAvailable: () => boolean;
|
|
13
|
+
readonly applyConfig: (config: Config) => Promise<void>;
|
|
14
|
+
readonly updateEnabled: (enabled: boolean, options?: {
|
|
15
|
+
baseUrl?: string;
|
|
16
|
+
}) => Promise<Config>;
|
|
17
|
+
readonly ensureStarted: (options: {
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
}) => Promise<CompanionRuntimeState>;
|
|
20
|
+
readonly ensureStopped: (options?: {
|
|
21
|
+
force?: boolean;
|
|
22
|
+
}) => Promise<boolean>;
|
|
23
|
+
readonly printStatus: (options?: {
|
|
24
|
+
json?: boolean;
|
|
25
|
+
}) => void;
|
|
26
|
+
readonly printStarted: (state: CompanionRuntimeState) => void;
|
|
27
|
+
readonly printStopped: (stopped: boolean) => void;
|
|
28
|
+
private readonly killProcess;
|
|
29
|
+
private readonly ensureStartedIfAvailable;
|
|
30
|
+
private readonly resolveLaunchSpec;
|
|
31
|
+
private readonly waitForRunningState;
|
|
32
|
+
}
|
|
33
|
+
declare const companionRuntimeService: CompanionRuntimeService;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { CompanionRuntimeService, companionRuntimeService };
|
|
36
|
+
//# sourceMappingURL=companion-runtime.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companion-runtime.service.d.ts","names":[],"sources":["../../../src/services/ui/companion-runtime.service.ts"],"mappings":";;;;;cA2Ba,uBAAA;EAAA,iBAEQ,YAAA;EAAA,iBACA,kBAAA;cADA,YAAA,GAAc,qBAAA,EACd,kBAAA,GAAoB,uBAAA;EAAA,SAG9B,eAAA,QAAsB,qBAAA;EAAA,SAYtB,wBAAA;EAAA,SAIA,WAAA;EAAA,SAYA,WAAA,GAAqB,MAAA,EAAQ,MAAA,KAAS,OAAA;EAAA,SAUtC,aAAA,GAAuB,OAAA,WAAkB,OAAA;IAAW,OAAA;EAAA,MAA0B,OAAA,CAAQ,MAAA;EAAA,SA4BtF,aAAA,GAAuB,OAAA;IAAW,OAAA;EAAA,MAAoB,OAAA,CAAQ,qBAAA;EAAA,SA0B9D,aAAA,GAAuB,OAAA;IAAW,KAAA;EAAA,MAAyB,OAAA;EAAA,SAc3D,WAAA,GAAe,OAAA;IAAW,IAAA;EAAA;EAAA,SA0B1B,YAAA,GAAgB,KAAA,EAAO,qBAAA;EAAA,SAIvB,YAAA,GAAgB,OAAA;EAAA,iBAIR,WAAA;EAAA,iBAIA,wBAAA;EAAA,iBAcA,iBAAA;EAAA,iBAwBA,mBAAA;AAAA;AAAA,cAqBN,uBAAA,EAAuB,uBAAA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { isProcessRunning } from "../../utils/cli.utils.js";
|
|
2
|
+
import { localUiDiscoveryService } from "./local-ui-discovery.service.js";
|
|
3
|
+
import { companionRuntimeStore } from "../../stores/companion-runtime.store.js";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { APP_NAME, getConfigPath, loadConfig, saveConfig } from "@nextclaw/core";
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
7
|
+
import { spawn } from "node:child_process";
|
|
8
|
+
import { dirname, resolve } from "node:path";
|
|
9
|
+
//#region src/services/ui/companion-runtime.service.ts
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
var CompanionUnavailableError = class extends Error {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "CompanionUnavailableError";
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
function isCompanionUnavailableError(error) {
|
|
18
|
+
return error instanceof CompanionUnavailableError;
|
|
19
|
+
}
|
|
20
|
+
var CompanionRuntimeService = class {
|
|
21
|
+
constructor(runtimeStore = companionRuntimeStore, uiDiscoveryService = localUiDiscoveryService) {
|
|
22
|
+
this.runtimeStore = runtimeStore;
|
|
23
|
+
this.uiDiscoveryService = uiDiscoveryService;
|
|
24
|
+
}
|
|
25
|
+
getRunningState = () => {
|
|
26
|
+
const state = this.runtimeStore.read();
|
|
27
|
+
if (!state) return null;
|
|
28
|
+
if (!isProcessRunning(state.pid)) {
|
|
29
|
+
this.runtimeStore.clear();
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return state;
|
|
33
|
+
};
|
|
34
|
+
resolveDiscoveredBaseUrl = () => {
|
|
35
|
+
return this.uiDiscoveryService.resolveApiBase();
|
|
36
|
+
};
|
|
37
|
+
isAvailable = () => {
|
|
38
|
+
try {
|
|
39
|
+
this.resolveLaunchSpec();
|
|
40
|
+
return true;
|
|
41
|
+
} catch (error) {
|
|
42
|
+
if (isCompanionUnavailableError(error)) return false;
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
applyConfig = async (config) => {
|
|
47
|
+
if (!config.companion.enabled) {
|
|
48
|
+
await this.ensureStopped();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
await this.ensureStartedIfAvailable({ baseUrl: this.uiDiscoveryService.resolveLocalOrigin(config) });
|
|
52
|
+
};
|
|
53
|
+
updateEnabled = async (enabled, options = {}) => {
|
|
54
|
+
const config = loadConfig(getConfigPath());
|
|
55
|
+
const next = {
|
|
56
|
+
...config,
|
|
57
|
+
companion: {
|
|
58
|
+
...config.companion,
|
|
59
|
+
enabled
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
saveConfig(next, getConfigPath());
|
|
63
|
+
if (enabled) {
|
|
64
|
+
const explicitBaseUrl = options.baseUrl?.trim();
|
|
65
|
+
if (explicitBaseUrl) {
|
|
66
|
+
await this.ensureStartedIfAvailable({ baseUrl: explicitBaseUrl });
|
|
67
|
+
return next;
|
|
68
|
+
}
|
|
69
|
+
const discoveredBaseUrl = this.uiDiscoveryService.resolveApiBase();
|
|
70
|
+
if (discoveredBaseUrl) await this.ensureStartedIfAvailable({ baseUrl: discoveredBaseUrl });
|
|
71
|
+
return next;
|
|
72
|
+
}
|
|
73
|
+
await this.ensureStopped();
|
|
74
|
+
return next;
|
|
75
|
+
};
|
|
76
|
+
ensureStarted = async (options) => {
|
|
77
|
+
const baseUrl = options.baseUrl.trim().replace(/\/+$/, "");
|
|
78
|
+
const runningState = this.getRunningState();
|
|
79
|
+
if (runningState?.baseUrl === baseUrl) return runningState;
|
|
80
|
+
if (runningState) {
|
|
81
|
+
this.killProcess(runningState.pid, false);
|
|
82
|
+
this.runtimeStore.clear();
|
|
83
|
+
}
|
|
84
|
+
const launchSpec = this.resolveLaunchSpec();
|
|
85
|
+
const child = spawn(launchSpec.command, [
|
|
86
|
+
...launchSpec.args,
|
|
87
|
+
"--base-url",
|
|
88
|
+
baseUrl
|
|
89
|
+
], {
|
|
90
|
+
detached: true,
|
|
91
|
+
stdio: "ignore",
|
|
92
|
+
windowsHide: true,
|
|
93
|
+
env: {
|
|
94
|
+
...process.env,
|
|
95
|
+
NEXTCLAW_COMPANION_RUNTIME_STATE_PATH: this.runtimeStore.path
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
child.unref();
|
|
99
|
+
return await this.waitForRunningState(baseUrl, child.pid ?? -1);
|
|
100
|
+
};
|
|
101
|
+
ensureStopped = async (options = {}) => {
|
|
102
|
+
const state = this.runtimeStore.read();
|
|
103
|
+
if (!state) return false;
|
|
104
|
+
if (!isProcessRunning(state.pid)) {
|
|
105
|
+
this.runtimeStore.clear();
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
this.killProcess(state.pid, options.force === true);
|
|
109
|
+
this.runtimeStore.clear();
|
|
110
|
+
return true;
|
|
111
|
+
};
|
|
112
|
+
printStatus = (options = {}) => {
|
|
113
|
+
const runningState = this.getRunningState();
|
|
114
|
+
const config = loadConfig(getConfigPath());
|
|
115
|
+
const view = runningState ? {
|
|
116
|
+
configuredEnabled: config.companion.enabled,
|
|
117
|
+
running: true,
|
|
118
|
+
...runningState
|
|
119
|
+
} : {
|
|
120
|
+
configuredEnabled: config.companion.enabled,
|
|
121
|
+
running: false
|
|
122
|
+
};
|
|
123
|
+
if (options.json) {
|
|
124
|
+
console.log(JSON.stringify(view, null, 2));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (!runningState) {
|
|
128
|
+
console.log(config.companion.enabled ? "Companion is enabled in config but is not running." : "Companion is disabled and not running.");
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
console.log(`Companion is running (pid ${runningState.pid}) at ${runningState.baseUrl}. Configured enabled: ${config.companion.enabled ? "yes" : "no"}.`);
|
|
132
|
+
};
|
|
133
|
+
printStarted = (state) => {
|
|
134
|
+
console.log(`Started ${APP_NAME} companion (pid ${state.pid}) using ${state.baseUrl}.`);
|
|
135
|
+
};
|
|
136
|
+
printStopped = (stopped) => {
|
|
137
|
+
console.log(stopped ? "Stopped companion process." : "Companion is not running.");
|
|
138
|
+
};
|
|
139
|
+
killProcess = (pid, force) => {
|
|
140
|
+
process.kill(pid, force ? "SIGKILL" : "SIGTERM");
|
|
141
|
+
};
|
|
142
|
+
ensureStartedIfAvailable = async (options) => {
|
|
143
|
+
try {
|
|
144
|
+
return await this.ensureStarted(options);
|
|
145
|
+
} catch (error) {
|
|
146
|
+
if (!isCompanionUnavailableError(error)) throw error;
|
|
147
|
+
console.warn(error.message);
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
resolveLaunchSpec = () => {
|
|
152
|
+
let packageJsonPath;
|
|
153
|
+
try {
|
|
154
|
+
packageJsonPath = require.resolve("@nextclaw/companion/package.json");
|
|
155
|
+
} catch {
|
|
156
|
+
throw new CompanionUnavailableError("@nextclaw/companion is not installed. Install it separately to use the companion shell.");
|
|
157
|
+
}
|
|
158
|
+
const packageRoot = dirname(packageJsonPath);
|
|
159
|
+
const mainPath = resolve(packageRoot, "dist", "src", "main.js");
|
|
160
|
+
if (!existsSync(mainPath)) throw new CompanionUnavailableError(`Companion app build is missing at ${mainPath}. Install or build @nextclaw/companion separately to use the companion shell.`);
|
|
161
|
+
return {
|
|
162
|
+
command: createRequire(packageJsonPath)("electron"),
|
|
163
|
+
args: [packageRoot]
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
waitForRunningState = async (baseUrl, fallbackPid) => {
|
|
167
|
+
const timeoutAt = Date.now() + 5e3;
|
|
168
|
+
while (Date.now() < timeoutAt) {
|
|
169
|
+
const state = this.getRunningState();
|
|
170
|
+
if (state?.baseUrl === baseUrl) return state;
|
|
171
|
+
await new Promise((resolvePromise) => setTimeout(resolvePromise, 100));
|
|
172
|
+
}
|
|
173
|
+
throw new Error(fallbackPid > 0 ? `Companion started but did not report a live runtime state (launcher pid ${fallbackPid}).` : "Companion started but did not report a live runtime state.");
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
const companionRuntimeService = new CompanionRuntimeService();
|
|
177
|
+
//#endregion
|
|
178
|
+
export { CompanionRuntimeService, companionRuntimeService };
|
|
179
|
+
|
|
180
|
+
//# sourceMappingURL=companion-runtime.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companion-runtime.service.js","names":[],"sources":["../../../src/services/ui/companion-runtime.service.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { spawn } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport { dirname, resolve } from \"node:path\";\nimport { getConfigPath, loadConfig, saveConfig, type Config } from \"@nextclaw/core\";\nimport { APP_NAME } from \"@nextclaw/core\";\nimport { localUiDiscoveryService, type LocalUiDiscoveryService } from \"@nextclaw-service/services/ui/local-ui-discovery.service.js\";\nimport { isProcessRunning } from \"@nextclaw-service/utils/cli.utils.js\";\nimport {\n companionRuntimeStore,\n type CompanionRuntimeState,\n type CompanionRuntimeStore\n} from \"@nextclaw-service/stores/companion-runtime.store.js\";\n\nconst require = createRequire(import.meta.url);\n\nclass CompanionUnavailableError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CompanionUnavailableError\";\n }\n}\n\nfunction isCompanionUnavailableError(error: unknown): error is CompanionUnavailableError {\n return error instanceof CompanionUnavailableError;\n}\n\nexport class CompanionRuntimeService {\n constructor(\n private readonly runtimeStore: CompanionRuntimeStore = companionRuntimeStore,\n private readonly uiDiscoveryService: LocalUiDiscoveryService = localUiDiscoveryService\n ) {}\n\n readonly getRunningState = (): CompanionRuntimeState | null => {\n const state = this.runtimeStore.read();\n if (!state) {\n return null;\n }\n if (!isProcessRunning(state.pid)) {\n this.runtimeStore.clear();\n return null;\n }\n return state;\n };\n\n readonly resolveDiscoveredBaseUrl = (): string | null => {\n return this.uiDiscoveryService.resolveApiBase();\n };\n\n readonly isAvailable = (): boolean => {\n try {\n this.resolveLaunchSpec();\n return true;\n } catch (error) {\n if (isCompanionUnavailableError(error)) {\n return false;\n }\n throw error;\n }\n };\n\n readonly applyConfig = async (config: Config): Promise<void> => {\n if (!config.companion.enabled) {\n await this.ensureStopped();\n return;\n }\n await this.ensureStartedIfAvailable({\n baseUrl: this.uiDiscoveryService.resolveLocalOrigin(config)\n });\n };\n\n readonly updateEnabled = async (enabled: boolean, options: { baseUrl?: string } = {}): Promise<Config> => {\n const config = loadConfig(getConfigPath());\n const next: Config = {\n ...config,\n companion: {\n ...config.companion,\n enabled\n }\n };\n saveConfig(next, getConfigPath());\n\n if (enabled) {\n const explicitBaseUrl = options.baseUrl?.trim();\n if (explicitBaseUrl) {\n await this.ensureStartedIfAvailable({ baseUrl: explicitBaseUrl });\n return next;\n }\n const discoveredBaseUrl = this.uiDiscoveryService.resolveApiBase();\n if (discoveredBaseUrl) {\n await this.ensureStartedIfAvailable({ baseUrl: discoveredBaseUrl });\n }\n return next;\n }\n\n await this.ensureStopped();\n return next;\n };\n\n readonly ensureStarted = async (options: { baseUrl: string }): Promise<CompanionRuntimeState> => {\n const baseUrl = options.baseUrl.trim().replace(/\\/+$/, \"\");\n const runningState = this.getRunningState();\n if (runningState?.baseUrl === baseUrl) {\n return runningState;\n }\n if (runningState) {\n this.killProcess(runningState.pid, false);\n this.runtimeStore.clear();\n }\n\n const launchSpec = this.resolveLaunchSpec();\n const child = spawn(launchSpec.command, [...launchSpec.args, \"--base-url\", baseUrl], {\n detached: true,\n stdio: \"ignore\",\n windowsHide: true,\n env: {\n ...process.env,\n NEXTCLAW_COMPANION_RUNTIME_STATE_PATH: this.runtimeStore.path\n }\n });\n child.unref();\n\n return await this.waitForRunningState(baseUrl, child.pid ?? -1);\n };\n\n readonly ensureStopped = async (options: { force?: boolean } = {}): Promise<boolean> => {\n const state = this.runtimeStore.read();\n if (!state) {\n return false;\n }\n if (!isProcessRunning(state.pid)) {\n this.runtimeStore.clear();\n return false;\n }\n this.killProcess(state.pid, options.force === true);\n this.runtimeStore.clear();\n return true;\n };\n\n readonly printStatus = (options: { json?: boolean } = {}): void => {\n const runningState = this.getRunningState();\n const config = loadConfig(getConfigPath());\n const view = runningState\n ? { configuredEnabled: config.companion.enabled, running: true, ...runningState }\n : { configuredEnabled: config.companion.enabled, running: false };\n\n if (options.json) {\n console.log(JSON.stringify(view, null, 2));\n return;\n }\n\n if (!runningState) {\n console.log(\n config.companion.enabled\n ? \"Companion is enabled in config but is not running.\"\n : \"Companion is disabled and not running.\"\n );\n return;\n }\n\n console.log(\n `Companion is running (pid ${runningState.pid}) at ${runningState.baseUrl}. Configured enabled: ${config.companion.enabled ? \"yes\" : \"no\"}.`\n );\n };\n\n readonly printStarted = (state: CompanionRuntimeState): void => {\n console.log(`Started ${APP_NAME} companion (pid ${state.pid}) using ${state.baseUrl}.`);\n };\n\n readonly printStopped = (stopped: boolean): void => {\n console.log(stopped ? \"Stopped companion process.\" : \"Companion is not running.\");\n };\n\n private readonly killProcess = (pid: number, force: boolean): void => {\n process.kill(pid, force ? \"SIGKILL\" : \"SIGTERM\");\n };\n\n private readonly ensureStartedIfAvailable = async (\n options: { baseUrl: string }\n ): Promise<CompanionRuntimeState | null> => {\n try {\n return await this.ensureStarted(options);\n } catch (error) {\n if (!isCompanionUnavailableError(error)) {\n throw error;\n }\n console.warn(error.message);\n return null;\n }\n };\n\n private readonly resolveLaunchSpec = (): { command: string; args: string[] } => {\n let packageJsonPath: string;\n try {\n packageJsonPath = require.resolve(\"@nextclaw/companion/package.json\");\n } catch {\n throw new CompanionUnavailableError(\n \"@nextclaw/companion is not installed. Install it separately to use the companion shell.\"\n );\n }\n const packageRoot = dirname(packageJsonPath);\n const mainPath = resolve(packageRoot, \"dist\", \"src\", \"main.js\");\n if (!existsSync(mainPath)) {\n throw new CompanionUnavailableError(\n `Companion app build is missing at ${mainPath}. Install or build @nextclaw/companion separately to use the companion shell.`\n );\n }\n const companionRequire = createRequire(packageJsonPath);\n const electronBinary = companionRequire(\"electron\") as string;\n return {\n command: electronBinary,\n args: [packageRoot]\n };\n };\n\n private readonly waitForRunningState = async (\n baseUrl: string,\n fallbackPid: number\n ): Promise<CompanionRuntimeState> => {\n const timeoutAt = Date.now() + 5000;\n while (Date.now() < timeoutAt) {\n const state = this.getRunningState();\n if (state?.baseUrl === baseUrl) {\n return state;\n }\n await new Promise((resolvePromise) => setTimeout(resolvePromise, 100));\n }\n\n throw new Error(\n fallbackPid > 0\n ? `Companion started but did not report a live runtime state (launcher pid ${fallbackPid}).`\n : \"Companion started but did not report a live runtime state.\"\n );\n };\n}\n\nexport const companionRuntimeService = new CompanionRuntimeService();\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ManagedServiceState, ManagedServiceStateStore } from "../../stores/managed-service-state.store.js";
|
|
2
|
+
import { LocalUiRuntimeState, LocalUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
|
|
3
|
+
import { Config } from "@nextclaw/core";
|
|
4
|
+
|
|
5
|
+
//#region src/services/ui/local-ui-discovery.service.d.ts
|
|
6
|
+
type DiscoveredLocalUiState = LocalUiRuntimeState | ManagedServiceState;
|
|
7
|
+
declare class LocalUiDiscoveryService {
|
|
8
|
+
private readonly localUiStore;
|
|
9
|
+
private readonly managedServiceStore;
|
|
10
|
+
private readonly isProcessRunningFn;
|
|
11
|
+
constructor(localUiStore?: LocalUiRuntimeStore, managedServiceStore?: ManagedServiceStateStore, isProcessRunningFn?: (pid: number) => boolean);
|
|
12
|
+
private readonly readRunningState;
|
|
13
|
+
readonly readRunningRuntimeState: () => DiscoveredLocalUiState | null;
|
|
14
|
+
readonly resolveApiBase: () => string | null;
|
|
15
|
+
readonly resolveLocalOrigin: (config: Config) => string;
|
|
16
|
+
}
|
|
17
|
+
declare const localUiDiscoveryService: LocalUiDiscoveryService;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { LocalUiDiscoveryService, localUiDiscoveryService };
|
|
20
|
+
//# sourceMappingURL=local-ui-discovery.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-ui-discovery.service.d.ts","names":[],"sources":["../../../src/services/ui/local-ui-discovery.service.ts"],"mappings":";;;;;KAaK,sBAAA,GAAyB,mBAAA,GAAsB,mBAAA;AAAA,cAEvC,uBAAA;EAAA,iBAEQ,YAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,kBAAA;cAFA,YAAA,GAAc,mBAAA,EACd,mBAAA,GAAqB,wBAAA,EACrB,kBAAA,IAAqB,GAAA;EAAA,iBAGvB,gBAAA;EAAA,SAOR,uBAAA,QAA8B,sBAAA;EAAA,SAI9B,cAAA;EAAA,SAcA,kBAAA,GAAsB,MAAA,EAAQ,MAAA;AAAA;AAAA,cAc5B,uBAAA,EAAuB,uBAAA"}
|