@nextclaw/service 0.2.13 → 0.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,37 @@
|
|
|
1
|
+
//#region src/utils/restart-sentinel.utils.d.ts
|
|
2
|
+
type RestartSentinelDeliveryContext = {
|
|
3
|
+
channel?: string;
|
|
4
|
+
chatId?: string;
|
|
5
|
+
replyTo?: string | null;
|
|
6
|
+
accountId?: string | null;
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
type RestartSentinelPayload = {
|
|
10
|
+
kind: "config.apply" | "config.patch" | "update.run" | "restart";
|
|
11
|
+
status: "ok" | "error" | "skipped";
|
|
12
|
+
ts: number;
|
|
13
|
+
sessionKey?: string;
|
|
14
|
+
deliveryContext?: RestartSentinelDeliveryContext;
|
|
15
|
+
message?: string | null;
|
|
16
|
+
stats?: {
|
|
17
|
+
reason?: string | null;
|
|
18
|
+
strategy?: string | null;
|
|
19
|
+
durationMs?: number | null;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type RestartSentinelFile = {
|
|
23
|
+
version: 1;
|
|
24
|
+
payload: RestartSentinelPayload;
|
|
25
|
+
};
|
|
26
|
+
declare function resolveRestartSentinelPath(): string;
|
|
27
|
+
declare function writeRestartSentinel(payload: RestartSentinelPayload): Promise<string>;
|
|
28
|
+
declare function consumeRestartSentinel(): Promise<RestartSentinelFile | null>;
|
|
29
|
+
declare function summarizeRestartSentinel(payload: RestartSentinelPayload): string;
|
|
30
|
+
declare function formatRestartSentinelMessage(payload: RestartSentinelPayload): string;
|
|
31
|
+
declare function parseSessionKey(sessionKey?: string): {
|
|
32
|
+
channel: string;
|
|
33
|
+
chatId: string;
|
|
34
|
+
} | null;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { RestartSentinelDeliveryContext, RestartSentinelPayload, consumeRestartSentinel, formatRestartSentinelMessage, parseSessionKey, resolveRestartSentinelPath, summarizeRestartSentinel, writeRestartSentinel };
|
|
37
|
+
//# sourceMappingURL=restart-sentinel.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restart-sentinel.utils.d.ts","names":[],"sources":["../../src/utils/restart-sentinel.utils.ts"],"mappings":";KAIY,8BAAA;EACV,OAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA,GAAW,MAAA;AAAA;AAAA,KAGD,sBAAA;EACV,IAAA;EACA,MAAA;EACA,EAAA;EACA,UAAA;EACA,eAAA,GAAkB,8BAAA;EAClB,OAAA;EACA,KAAA;IACE,MAAA;IACA,QAAA;IACA,UAAA;EAAA;AAAA;AAAA,KAIC,mBAAA;EACH,OAAA;EACA,OAAA,EAAS,sBAAA;AAAA;AAAA,iBAwBK,0BAAA,CAAA;AAAA,iBAIM,oBAAA,CAAqB,OAAA,EAAS,sBAAA,GAAyB,OAAA;AAAA,iBAWvD,sBAAA,CAAA,GAA0B,OAAA,CAAQ,mBAAA;AAAA,iBAoBxC,wBAAA,CAAyB,OAAA,EAAS,sBAAA;AAAA,iBAkBlC,4BAAA,CAA6B,OAAA,EAAS,sBAAA;AAAA,iBAetC,eAAA,CACd,UAAA;EACG,OAAA;EAAiB,MAAA;AAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { getRunPath } from "@nextclaw/core";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
//#region src/utils/restart-sentinel.utils.ts
|
|
5
|
+
const RESTART_SENTINEL_FILENAME = "restart-sentinel.json";
|
|
6
|
+
const RESTART_REASON_MAX_CHARS = 240;
|
|
7
|
+
const RESTART_NOTE_MAX_CHARS = 600;
|
|
8
|
+
const RESTART_OUTBOUND_MAX_CHARS = 1200;
|
|
9
|
+
function trimTo(value, maxChars) {
|
|
10
|
+
const text = value.trim();
|
|
11
|
+
if (!text) return "";
|
|
12
|
+
if (text.length <= maxChars) return text;
|
|
13
|
+
return `${text.slice(0, Math.max(0, maxChars - 1)).trimEnd()}…`;
|
|
14
|
+
}
|
|
15
|
+
function normalizeLine(value, maxChars) {
|
|
16
|
+
const trimmed = trimTo(value, maxChars);
|
|
17
|
+
return trimmed ? trimmed : null;
|
|
18
|
+
}
|
|
19
|
+
function resolveRestartSentinelPath() {
|
|
20
|
+
return resolve(getRunPath(), RESTART_SENTINEL_FILENAME);
|
|
21
|
+
}
|
|
22
|
+
async function writeRestartSentinel(payload) {
|
|
23
|
+
const path = resolveRestartSentinelPath();
|
|
24
|
+
mkdirSync(resolve(path, ".."), { recursive: true });
|
|
25
|
+
writeFileSync(path, `${JSON.stringify({
|
|
26
|
+
version: 1,
|
|
27
|
+
payload
|
|
28
|
+
}, null, 2)}\n`, "utf-8");
|
|
29
|
+
return path;
|
|
30
|
+
}
|
|
31
|
+
async function consumeRestartSentinel() {
|
|
32
|
+
const path = resolveRestartSentinelPath();
|
|
33
|
+
if (!existsSync(path)) return null;
|
|
34
|
+
try {
|
|
35
|
+
const raw = readFileSync(path, "utf-8");
|
|
36
|
+
const parsed = JSON.parse(raw);
|
|
37
|
+
if (!parsed || parsed.version !== 1 || !parsed.payload) {
|
|
38
|
+
rmSync(path, { force: true });
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
rmSync(path, { force: true });
|
|
42
|
+
return parsed;
|
|
43
|
+
} catch {
|
|
44
|
+
rmSync(path, { force: true });
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function summarizeRestartSentinel(payload) {
|
|
49
|
+
const reason = normalizeLine(payload.stats?.reason ?? "", RESTART_REASON_MAX_CHARS);
|
|
50
|
+
if (payload.kind === "update.run") return payload.status === "ok" ? "✅ NextClaw update completed and service restarted." : "⚠️ NextClaw update finished with issues.";
|
|
51
|
+
if (payload.kind === "config.apply" || payload.kind === "config.patch") return payload.status === "ok" ? "✅ Config applied and service restarted." : "⚠️ Config change restart finished with issues.";
|
|
52
|
+
if (reason) return `Gateway restart complete (${reason}).`;
|
|
53
|
+
return "Gateway restart complete.";
|
|
54
|
+
}
|
|
55
|
+
function formatRestartSentinelMessage(payload) {
|
|
56
|
+
const lines = [summarizeRestartSentinel(payload)];
|
|
57
|
+
const note = normalizeLine(payload.message ?? "", RESTART_NOTE_MAX_CHARS);
|
|
58
|
+
if (note) lines.push(note);
|
|
59
|
+
const reason = normalizeLine(payload.stats?.reason ?? "", RESTART_REASON_MAX_CHARS);
|
|
60
|
+
if (reason && !lines.some((line) => line.includes(reason))) lines.push(`Reason: ${reason}`);
|
|
61
|
+
return trimTo(lines.join("\n").trim(), RESTART_OUTBOUND_MAX_CHARS);
|
|
62
|
+
}
|
|
63
|
+
function parseSessionKey(sessionKey) {
|
|
64
|
+
const value = sessionKey?.trim();
|
|
65
|
+
if (!value) return null;
|
|
66
|
+
const separator = value.indexOf(":");
|
|
67
|
+
if (separator <= 0 || separator >= value.length - 1) return null;
|
|
68
|
+
return {
|
|
69
|
+
channel: value.slice(0, separator),
|
|
70
|
+
chatId: value.slice(separator + 1)
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export { consumeRestartSentinel, formatRestartSentinelMessage, parseSessionKey, resolveRestartSentinelPath, summarizeRestartSentinel, writeRestartSentinel };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=restart-sentinel.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restart-sentinel.utils.js","names":[],"sources":["../../src/utils/restart-sentinel.utils.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { getRunPath } from \"@nextclaw/core\";\n\nexport type RestartSentinelDeliveryContext = {\n channel?: string;\n chatId?: string;\n replyTo?: string | null;\n accountId?: string | null;\n metadata?: Record<string, unknown>;\n};\n\nexport type RestartSentinelPayload = {\n kind: \"config.apply\" | \"config.patch\" | \"update.run\" | \"restart\";\n status: \"ok\" | \"error\" | \"skipped\";\n ts: number;\n sessionKey?: string;\n deliveryContext?: RestartSentinelDeliveryContext;\n message?: string | null;\n stats?: {\n reason?: string | null;\n strategy?: string | null;\n durationMs?: number | null;\n };\n};\n\ntype RestartSentinelFile = {\n version: 1;\n payload: RestartSentinelPayload;\n};\n\nconst RESTART_SENTINEL_FILENAME = \"restart-sentinel.json\";\nconst RESTART_REASON_MAX_CHARS = 240;\nconst RESTART_NOTE_MAX_CHARS = 600;\nconst RESTART_OUTBOUND_MAX_CHARS = 1200;\n\nfunction trimTo(value: string, maxChars: number): string {\n const text = value.trim();\n if (!text) {\n return \"\";\n }\n if (text.length <= maxChars) {\n return text;\n }\n return `${text.slice(0, Math.max(0, maxChars - 1)).trimEnd()}…`;\n}\n\nfunction normalizeLine(value: string, maxChars: number): string | null {\n const trimmed = trimTo(value, maxChars);\n return trimmed ? trimmed : null;\n}\n\nexport function resolveRestartSentinelPath(): string {\n return resolve(getRunPath(), RESTART_SENTINEL_FILENAME);\n}\n\nexport async function writeRestartSentinel(payload: RestartSentinelPayload): Promise<string> {\n const path = resolveRestartSentinelPath();\n mkdirSync(resolve(path, \"..\"), { recursive: true });\n const file: RestartSentinelFile = {\n version: 1,\n payload\n };\n writeFileSync(path, `${JSON.stringify(file, null, 2)}\\n`, \"utf-8\");\n return path;\n}\n\nexport async function consumeRestartSentinel(): Promise<RestartSentinelFile | null> {\n const path = resolveRestartSentinelPath();\n if (!existsSync(path)) {\n return null;\n }\n try {\n const raw = readFileSync(path, \"utf-8\");\n const parsed = JSON.parse(raw) as RestartSentinelFile;\n if (!parsed || parsed.version !== 1 || !parsed.payload) {\n rmSync(path, { force: true });\n return null;\n }\n rmSync(path, { force: true });\n return parsed;\n } catch {\n rmSync(path, { force: true });\n return null;\n }\n}\n\nexport function summarizeRestartSentinel(payload: RestartSentinelPayload): string {\n const reason = normalizeLine(payload.stats?.reason ?? \"\", RESTART_REASON_MAX_CHARS);\n if (payload.kind === \"update.run\") {\n return payload.status === \"ok\"\n ? \"✅ NextClaw update completed and service restarted.\"\n : \"⚠️ NextClaw update finished with issues.\";\n }\n if (payload.kind === \"config.apply\" || payload.kind === \"config.patch\") {\n return payload.status === \"ok\"\n ? \"✅ Config applied and service restarted.\"\n : \"⚠️ Config change restart finished with issues.\";\n }\n if (reason) {\n return `Gateway restart complete (${reason}).`;\n }\n return \"Gateway restart complete.\";\n}\n\nexport function formatRestartSentinelMessage(payload: RestartSentinelPayload): string {\n const lines = [summarizeRestartSentinel(payload)];\n const note = normalizeLine(payload.message ?? \"\", RESTART_NOTE_MAX_CHARS);\n if (note) {\n lines.push(note);\n }\n const reason = normalizeLine(payload.stats?.reason ?? \"\", RESTART_REASON_MAX_CHARS);\n if (reason && !lines.some((line) => line.includes(reason))) {\n lines.push(`Reason: ${reason}`);\n }\n\n const message = lines.join(\"\\n\").trim();\n return trimTo(message, RESTART_OUTBOUND_MAX_CHARS);\n}\n\nexport function parseSessionKey(\n sessionKey?: string\n): { channel: string; chatId: string } | null {\n const value = sessionKey?.trim();\n if (!value) {\n return null;\n }\n const separator = value.indexOf(\":\");\n if (separator <= 0 || separator >= value.length - 1) {\n return null;\n }\n return {\n channel: value.slice(0, separator),\n chatId: value.slice(separator + 1)\n };\n}\n"],"mappings":";;;;AA+BA,MAAM,4BAA4B;AAClC,MAAM,2BAA2B;AACjC,MAAM,yBAAyB;AAC/B,MAAM,6BAA6B;AAEnC,SAAS,OAAO,OAAe,UAA0B;CACvD,MAAM,OAAO,MAAM,MAAM;AACzB,KAAI,CAAC,KACH,QAAO;AAET,KAAI,KAAK,UAAU,SACjB,QAAO;AAET,QAAO,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;;AAG/D,SAAS,cAAc,OAAe,UAAiC;CACrE,MAAM,UAAU,OAAO,OAAO,SAAS;AACvC,QAAO,UAAU,UAAU;;AAG7B,SAAgB,6BAAqC;AACnD,QAAO,QAAQ,YAAY,EAAE,0BAA0B;;AAGzD,eAAsB,qBAAqB,SAAkD;CAC3F,MAAM,OAAO,4BAA4B;AACzC,WAAU,QAAQ,MAAM,KAAK,EAAE,EAAE,WAAW,MAAM,CAAC;AAKnD,eAAc,MAAM,GAAG,KAAK,UAJM;EAChC,SAAS;EACT;EACD,EAC2C,MAAM,EAAE,CAAC,KAAK,QAAQ;AAClE,QAAO;;AAGT,eAAsB,yBAA8D;CAClF,MAAM,OAAO,4BAA4B;AACzC,KAAI,CAAC,WAAW,KAAK,CACnB,QAAO;AAET,KAAI;EACF,MAAM,MAAM,aAAa,MAAM,QAAQ;EACvC,MAAM,SAAS,KAAK,MAAM,IAAI;AAC9B,MAAI,CAAC,UAAU,OAAO,YAAY,KAAK,CAAC,OAAO,SAAS;AACtD,UAAO,MAAM,EAAE,OAAO,MAAM,CAAC;AAC7B,UAAO;;AAET,SAAO,MAAM,EAAE,OAAO,MAAM,CAAC;AAC7B,SAAO;SACD;AACN,SAAO,MAAM,EAAE,OAAO,MAAM,CAAC;AAC7B,SAAO;;;AAIX,SAAgB,yBAAyB,SAAyC;CAChF,MAAM,SAAS,cAAc,QAAQ,OAAO,UAAU,IAAI,yBAAyB;AACnF,KAAI,QAAQ,SAAS,aACnB,QAAO,QAAQ,WAAW,OACtB,uDACA;AAEN,KAAI,QAAQ,SAAS,kBAAkB,QAAQ,SAAS,eACtD,QAAO,QAAQ,WAAW,OACtB,4CACA;AAEN,KAAI,OACF,QAAO,6BAA6B,OAAO;AAE7C,QAAO;;AAGT,SAAgB,6BAA6B,SAAyC;CACpF,MAAM,QAAQ,CAAC,yBAAyB,QAAQ,CAAC;CACjD,MAAM,OAAO,cAAc,QAAQ,WAAW,IAAI,uBAAuB;AACzE,KAAI,KACF,OAAM,KAAK,KAAK;CAElB,MAAM,SAAS,cAAc,QAAQ,OAAO,UAAU,IAAI,yBAAyB;AACnF,KAAI,UAAU,CAAC,MAAM,MAAM,SAAS,KAAK,SAAS,OAAO,CAAC,CACxD,OAAM,KAAK,WAAW,SAAS;AAIjC,QAAO,OADS,MAAM,KAAK,KAAK,CAAC,MAAM,EAChB,2BAA2B;;AAGpD,SAAgB,gBACd,YAC4C;CAC5C,MAAM,QAAQ,YAAY,MAAM;AAChC,KAAI,CAAC,MACH,QAAO;CAET,MAAM,YAAY,MAAM,QAAQ,IAAI;AACpC,KAAI,aAAa,KAAK,aAAa,MAAM,SAAS,EAChD,QAAO;AAET,QAAO;EACL,SAAS,MAAM,MAAM,GAAG,UAAU;EAClC,QAAQ,MAAM,MAAM,YAAY,EAAE;EACnC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ManagedServiceState } from "../../stores/managed-service-state.store.js";
|
|
2
|
+
import { localUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/runtime/managed-service-routing.utils.d.ts
|
|
5
|
+
type ManagedServiceSnapshot = {
|
|
6
|
+
pid: number;
|
|
7
|
+
uiUrl: string;
|
|
8
|
+
apiUrl: string;
|
|
9
|
+
uiHost: string;
|
|
10
|
+
uiPort: number;
|
|
11
|
+
logPath: string;
|
|
12
|
+
};
|
|
13
|
+
declare function resolveManagedServiceReadySnapshot(params: {
|
|
14
|
+
snapshot: ManagedServiceSnapshot;
|
|
15
|
+
readLocalUiRuntimeState?: typeof localUiRuntimeStore.read;
|
|
16
|
+
isProcessRunningFn?: (pid: number) => boolean;
|
|
17
|
+
}): ManagedServiceSnapshot;
|
|
18
|
+
declare function resolveManagedServiceUiBinding(state: ManagedServiceState): {
|
|
19
|
+
host: string;
|
|
20
|
+
port: number;
|
|
21
|
+
};
|
|
22
|
+
declare function resolveSessionRouteCandidate(params: {
|
|
23
|
+
session: unknown;
|
|
24
|
+
normalizeOptionalString: (value: unknown) => string | undefined;
|
|
25
|
+
}): {
|
|
26
|
+
key: string;
|
|
27
|
+
updatedAt: number;
|
|
28
|
+
} | null;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { ManagedServiceSnapshot, resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate };
|
|
31
|
+
//# sourceMappingURL=managed-service-routing.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-service-routing.utils.d.ts","names":[],"sources":["../../../src/utils/runtime/managed-service-routing.utils.ts"],"mappings":";;;;KAIY,sBAAA;EACV,GAAA;EACA,KAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AAAA,iBAGc,kCAAA,CAAmC,MAAA;EACjD,QAAA,EAAU,sBAAA;EACV,uBAAA,UAAiC,mBAAA,CAAoB,IAAA;EACrD,kBAAA,IAAsB,GAAA;AAAA,IACpB,sBAAA;AAAA,iBA6CY,8BAAA,CAA+B,KAAA,EAAO,mBAAA;EACpD,IAAA;EACA,IAAA;AAAA;AAAA,iBAiBc,4BAAA,CAA6B,MAAA;EAC3C,OAAA;EACA,uBAAA,GAA0B,KAAA;AAAA;EACtB,GAAA;EAAa,SAAA;AAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { isProcessRunning } from "../cli.utils.js";
|
|
2
|
+
import { localUiRuntimeStore } from "../../stores/local-ui-runtime.store.js";
|
|
3
|
+
import "../../stores/managed-service-state.store.js";
|
|
4
|
+
//#region src/utils/runtime/managed-service-routing.utils.ts
|
|
5
|
+
function resolveManagedServiceReadySnapshot(params) {
|
|
6
|
+
const { snapshot, readLocalUiRuntimeState, isProcessRunningFn: providedIsProcessRunningFn } = params;
|
|
7
|
+
const localUiRuntimeState = (readLocalUiRuntimeState ?? localUiRuntimeStore.read)();
|
|
8
|
+
const isProcessRunningFn = providedIsProcessRunningFn ?? isProcessRunning;
|
|
9
|
+
if (!localUiRuntimeState || typeof localUiRuntimeState.pid !== "number" || !Number.isFinite(localUiRuntimeState.pid) || localUiRuntimeState.uiPort !== snapshot.uiPort || !isProcessRunningFn(localUiRuntimeState.pid)) return snapshot;
|
|
10
|
+
return {
|
|
11
|
+
...snapshot,
|
|
12
|
+
pid: localUiRuntimeState.pid,
|
|
13
|
+
uiUrl: localUiRuntimeState.uiUrl,
|
|
14
|
+
apiUrl: localUiRuntimeState.apiUrl,
|
|
15
|
+
uiHost: localUiRuntimeState.uiHost ?? snapshot.uiHost,
|
|
16
|
+
uiPort: localUiRuntimeState.uiPort ?? snapshot.uiPort
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function toObjectRecord(value) {
|
|
20
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function hasSessionRoutingMetadata(params) {
|
|
24
|
+
const { metadata, normalizeOptionalString } = params;
|
|
25
|
+
const context = toObjectRecord(metadata.last_delivery_context) ?? {};
|
|
26
|
+
const hasPrimaryRoute = Boolean(normalizeOptionalString(context.channel)) && Boolean(normalizeOptionalString(context.chatId));
|
|
27
|
+
const hasFallbackRoute = Boolean(normalizeOptionalString(metadata.last_channel)) && Boolean(normalizeOptionalString(metadata.last_to));
|
|
28
|
+
return hasPrimaryRoute || hasFallbackRoute;
|
|
29
|
+
}
|
|
30
|
+
function resolveManagedServiceUiBinding(state) {
|
|
31
|
+
try {
|
|
32
|
+
const parsed = new URL(state.uiUrl);
|
|
33
|
+
const parsedPort = Number(parsed.port || 80);
|
|
34
|
+
return {
|
|
35
|
+
host: state.uiHost ?? parsed.hostname,
|
|
36
|
+
port: Number.isFinite(parsedPort) ? parsedPort : state.uiPort ?? 55667
|
|
37
|
+
};
|
|
38
|
+
} catch {
|
|
39
|
+
return {
|
|
40
|
+
host: state.uiHost ?? "127.0.0.1",
|
|
41
|
+
port: state.uiPort ?? 55667
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function resolveSessionRouteCandidate(params) {
|
|
46
|
+
const { session, normalizeOptionalString } = params;
|
|
47
|
+
const sessionRecord = toObjectRecord(session);
|
|
48
|
+
const key = normalizeOptionalString(sessionRecord?.key);
|
|
49
|
+
if (!key || key.startsWith("cli:")) return null;
|
|
50
|
+
if (!hasSessionRoutingMetadata({
|
|
51
|
+
metadata: toObjectRecord(sessionRecord?.metadata) ?? {},
|
|
52
|
+
normalizeOptionalString
|
|
53
|
+
})) return null;
|
|
54
|
+
const updatedAtRaw = normalizeOptionalString(sessionRecord?.updated_at);
|
|
55
|
+
const updatedAt = updatedAtRaw ? Date.parse(updatedAtRaw) : NaN;
|
|
56
|
+
return {
|
|
57
|
+
key,
|
|
58
|
+
updatedAt: Number.isFinite(updatedAt) ? updatedAt : 0
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { resolveManagedServiceReadySnapshot, resolveManagedServiceUiBinding, resolveSessionRouteCandidate };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=managed-service-routing.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-service-routing.utils.js","names":[],"sources":["../../../src/utils/runtime/managed-service-routing.utils.ts"],"sourcesContent":["import { type ManagedServiceState } from \"@nextclaw-service/stores/managed-service-state.store.js\";\nimport { localUiRuntimeStore } from \"@nextclaw-service/stores/local-ui-runtime.store.js\";\nimport { isProcessRunning } from \"@nextclaw-service/utils/cli.utils.js\";\n\nexport type ManagedServiceSnapshot = {\n pid: number;\n uiUrl: string;\n apiUrl: string;\n uiHost: string;\n uiPort: number;\n logPath: string;\n};\n\nexport function resolveManagedServiceReadySnapshot(params: {\n snapshot: ManagedServiceSnapshot;\n readLocalUiRuntimeState?: typeof localUiRuntimeStore.read;\n isProcessRunningFn?: (pid: number) => boolean;\n}): ManagedServiceSnapshot {\n const { snapshot, readLocalUiRuntimeState, isProcessRunningFn: providedIsProcessRunningFn } = params;\n const localUiRuntimeState = (readLocalUiRuntimeState ?? localUiRuntimeStore.read)();\n const isProcessRunningFn = providedIsProcessRunningFn ?? isProcessRunning;\n if (\n !localUiRuntimeState\n || typeof localUiRuntimeState.pid !== \"number\"\n || !Number.isFinite(localUiRuntimeState.pid)\n || localUiRuntimeState.uiPort !== snapshot.uiPort\n || !isProcessRunningFn(localUiRuntimeState.pid)\n ) {\n return snapshot;\n }\n return {\n ...snapshot,\n pid: localUiRuntimeState.pid,\n uiUrl: localUiRuntimeState.uiUrl,\n apiUrl: localUiRuntimeState.apiUrl,\n uiHost: localUiRuntimeState.uiHost ?? snapshot.uiHost,\n uiPort: localUiRuntimeState.uiPort ?? snapshot.uiPort\n };\n}\n\nfunction toObjectRecord(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return null;\n }\n return value as Record<string, unknown>;\n}\n\nfunction hasSessionRoutingMetadata(params: {\n metadata: Record<string, unknown>;\n normalizeOptionalString: (value: unknown) => string | undefined;\n}): boolean {\n const { metadata, normalizeOptionalString } = params;\n const context = toObjectRecord(metadata.last_delivery_context) ?? {};\n const hasPrimaryRoute =\n Boolean(normalizeOptionalString(context.channel)) &&\n Boolean(normalizeOptionalString(context.chatId));\n const hasFallbackRoute =\n Boolean(normalizeOptionalString(metadata.last_channel)) &&\n Boolean(normalizeOptionalString(metadata.last_to));\n return hasPrimaryRoute || hasFallbackRoute;\n}\n\nexport function resolveManagedServiceUiBinding(state: ManagedServiceState): {\n host: string;\n port: number;\n} {\n try {\n const parsed = new URL(state.uiUrl);\n const parsedPort = Number(parsed.port || 80);\n return {\n host: state.uiHost ?? parsed.hostname,\n port: Number.isFinite(parsedPort) ? parsedPort : state.uiPort ?? 55667\n };\n } catch {\n return {\n host: state.uiHost ?? \"127.0.0.1\",\n port: state.uiPort ?? 55667\n };\n }\n}\n\nexport function resolveSessionRouteCandidate(params: {\n session: unknown;\n normalizeOptionalString: (value: unknown) => string | undefined;\n}): { key: string; updatedAt: number } | null {\n const { session, normalizeOptionalString } = params;\n const sessionRecord = toObjectRecord(session);\n const key = normalizeOptionalString(sessionRecord?.key);\n if (!key || key.startsWith(\"cli:\")) {\n return null;\n }\n const metadata = toObjectRecord(sessionRecord?.metadata) ?? {};\n if (!hasSessionRoutingMetadata({ metadata, normalizeOptionalString })) {\n return null;\n }\n const updatedAtRaw = normalizeOptionalString(sessionRecord?.updated_at);\n const updatedAt = updatedAtRaw ? Date.parse(updatedAtRaw) : Number.NaN;\n return {\n key,\n updatedAt: Number.isFinite(updatedAt) ? updatedAt : 0\n };\n}\n"],"mappings":";;;;AAaA,SAAgB,mCAAmC,QAIxB;CACzB,MAAM,EAAE,UAAU,yBAAyB,oBAAoB,+BAA+B;CAC9F,MAAM,uBAAuB,2BAA2B,oBAAoB,OAAO;CACnF,MAAM,qBAAqB,8BAA8B;AACzD,KACE,CAAC,uBACE,OAAO,oBAAoB,QAAQ,YACnC,CAAC,OAAO,SAAS,oBAAoB,IAAI,IACzC,oBAAoB,WAAW,SAAS,UACxC,CAAC,mBAAmB,oBAAoB,IAAI,CAE/C,QAAO;AAET,QAAO;EACL,GAAG;EACH,KAAK,oBAAoB;EACzB,OAAO,oBAAoB;EAC3B,QAAQ,oBAAoB;EAC5B,QAAQ,oBAAoB,UAAU,SAAS;EAC/C,QAAQ,oBAAoB,UAAU,SAAS;EAChD;;AAGH,SAAS,eAAe,OAAgD;AACtE,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D,QAAO;AAET,QAAO;;AAGT,SAAS,0BAA0B,QAGvB;CACV,MAAM,EAAE,UAAU,4BAA4B;CAC9C,MAAM,UAAU,eAAe,SAAS,sBAAsB,IAAI,EAAE;CACpE,MAAM,kBACJ,QAAQ,wBAAwB,QAAQ,QAAQ,CAAC,IACjD,QAAQ,wBAAwB,QAAQ,OAAO,CAAC;CAClD,MAAM,mBACJ,QAAQ,wBAAwB,SAAS,aAAa,CAAC,IACvD,QAAQ,wBAAwB,SAAS,QAAQ,CAAC;AACpD,QAAO,mBAAmB;;AAG5B,SAAgB,+BAA+B,OAG7C;AACA,KAAI;EACF,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM;EACnC,MAAM,aAAa,OAAO,OAAO,QAAQ,GAAG;AAC5C,SAAO;GACL,MAAM,MAAM,UAAU,OAAO;GAC7B,MAAM,OAAO,SAAS,WAAW,GAAG,aAAa,MAAM,UAAU;GAClE;SACK;AACN,SAAO;GACL,MAAM,MAAM,UAAU;GACtB,MAAM,MAAM,UAAU;GACvB;;;AAIL,SAAgB,6BAA6B,QAGC;CAC5C,MAAM,EAAE,SAAS,4BAA4B;CAC7C,MAAM,gBAAgB,eAAe,QAAQ;CAC7C,MAAM,MAAM,wBAAwB,eAAe,IAAI;AACvD,KAAI,CAAC,OAAO,IAAI,WAAW,OAAO,CAChC,QAAO;AAGT,KAAI,CAAC,0BAA0B;EAAE,UADhB,eAAe,eAAe,SAAS,IAAI,EAAE;EACnB;EAAyB,CAAC,CACnE,QAAO;CAET,MAAM,eAAe,wBAAwB,eAAe,WAAW;CACvE,MAAM,YAAY,eAAe,KAAK,MAAM,aAAa,GAAG;AAC5D,QAAO;EACL;EACA,WAAW,OAAO,SAAS,UAAU,GAAG,YAAY;EACrD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ManagedServiceLease, ManagedServiceState } from "../../stores/managed-service-state.store.js";
|
|
2
|
+
import { Config } from "@nextclaw/core";
|
|
3
|
+
import { RemoteRuntimeState, RemoteServiceModule } from "@nextclaw/remote";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/runtime/service-remote-runtime.utils.d.ts
|
|
6
|
+
type ManagedServiceSnapshot = {
|
|
7
|
+
pid: number;
|
|
8
|
+
uiUrl: string;
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
uiHost: string;
|
|
11
|
+
uiPort: number;
|
|
12
|
+
logPath: string;
|
|
13
|
+
};
|
|
14
|
+
type RemoteRuntimeOwnershipClaim = {
|
|
15
|
+
ok: true;
|
|
16
|
+
release: () => void;
|
|
17
|
+
} | {
|
|
18
|
+
ok: false;
|
|
19
|
+
error: string;
|
|
20
|
+
};
|
|
21
|
+
declare function claimManagedRemoteRuntimeOwnership(params: {
|
|
22
|
+
localOrigin: string;
|
|
23
|
+
lockPath?: string;
|
|
24
|
+
currentPid?: number;
|
|
25
|
+
now?: () => string;
|
|
26
|
+
isProcessRunningFn?: (pid: number) => boolean;
|
|
27
|
+
readServiceStateFn?: () => ManagedServiceState | null;
|
|
28
|
+
}): RemoteRuntimeOwnershipClaim;
|
|
29
|
+
declare function createManagedRemoteModule(params: {
|
|
30
|
+
loadConfig: () => Config;
|
|
31
|
+
uiEnabled: boolean;
|
|
32
|
+
localOrigin: string;
|
|
33
|
+
onRemoteStateChange?: (state: RemoteRuntimeState) => void;
|
|
34
|
+
}): RemoteServiceModule | null;
|
|
35
|
+
declare function createManagedRemoteModuleForUi(params: {
|
|
36
|
+
loadConfig: () => Config;
|
|
37
|
+
uiConfig: Pick<Config["ui"], "enabled" | "host" | "port">;
|
|
38
|
+
localOriginOverride?: string;
|
|
39
|
+
onRemoteStateChange?: (state: RemoteRuntimeState) => void;
|
|
40
|
+
}): RemoteServiceModule | null;
|
|
41
|
+
declare function writeInitialManagedServiceState(params: {
|
|
42
|
+
config: Config;
|
|
43
|
+
lease?: ManagedServiceLease;
|
|
44
|
+
readinessTimeoutMs: number;
|
|
45
|
+
snapshot: ManagedServiceSnapshot;
|
|
46
|
+
}): void;
|
|
47
|
+
declare function writeReadyManagedServiceState(params: {
|
|
48
|
+
lease?: ManagedServiceLease;
|
|
49
|
+
readinessTimeoutMs: number;
|
|
50
|
+
readiness: {
|
|
51
|
+
ready: boolean;
|
|
52
|
+
lastProbeError: string | null;
|
|
53
|
+
};
|
|
54
|
+
snapshot: ManagedServiceSnapshot;
|
|
55
|
+
}): ManagedServiceState;
|
|
56
|
+
//#endregion
|
|
57
|
+
export { claimManagedRemoteRuntimeOwnership, createManagedRemoteModule, createManagedRemoteModuleForUi, writeInitialManagedServiceState, writeReadyManagedServiceState };
|
|
58
|
+
//# sourceMappingURL=service-remote-runtime.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-remote-runtime.utils.d.ts","names":[],"sources":["../../../src/utils/runtime/service-remote-runtime.utils.ts"],"mappings":";;;;;KA0BK,sBAAA;EACH,GAAA;EACA,KAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;AAAA;AAAA,KASG,2BAAA;EAAgC,EAAA;EAAU,OAAA;AAAA;EAA0B,EAAA;EAAW,KAAA;AAAA;AAAA,iBA4IpE,kCAAA,CAAmC,MAAA;EACjD,WAAA;EACA,QAAA;EACA,UAAA;EACA,GAAA;EACA,kBAAA,IAAsB,GAAA;EACtB,kBAAA,SAA2B,mBAAA;AAAA,IACzB,2BAAA;AAAA,iBAuCY,yBAAA,CAA0B,MAAA;EACxC,UAAA,QAAkB,MAAA;EAClB,SAAA;EACA,WAAA;EACA,mBAAA,IAAuB,KAAA,EAAO,kBAAA;AAAA,IAC5B,mBAAA;AAAA,iBAoBY,8BAAA,CAA+B,MAAA;EAC7C,UAAA,QAAkB,MAAA;EAClB,QAAA,EAAU,IAAA,CAAK,MAAA;EACf,mBAAA;EAA8B,mBAAA,IAAuB,KAAA,EAAO,kBAAA;AAAA,IAC1D,mBAAA;AAAA,iBAcY,+BAAA,CAAgC,MAAA;EAC9C,MAAA,EAAQ,MAAA;EACR,KAAA,GAAQ,mBAAA;EACR,kBAAA;EACA,QAAA,EAAU,sBAAA;AAAA;AAAA,iBAmBI,6BAAA,CAA8B,MAAA;EAC5C,KAAA,GAAQ,mBAAA;EACR,kBAAA;EACA,SAAA;IAAa,KAAA;IAAgB,cAAA;EAAA;EAC7B,QAAA,EAAU,sBAAA;AAAA,IACR,mBAAA"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { isProcessRunning, resolveUiApiBase } from "../cli.utils.js";
|
|
2
|
+
import { managedServiceStateStore } from "../../stores/managed-service-state.store.js";
|
|
3
|
+
import { buildNextclawConfiguredRemoteState, createNextclawRemoteConnector, createNextclawRemoteStatusStore } from "../remote/remote-runtime-support.utils.js";
|
|
4
|
+
import { getRunPath } from "@nextclaw/core";
|
|
5
|
+
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
6
|
+
import { dirname, resolve } from "node:path";
|
|
7
|
+
import { RemoteServiceModule } from "@nextclaw/remote";
|
|
8
|
+
//#region src/utils/runtime/service-remote-runtime.utils.ts
|
|
9
|
+
function resolveRemoteOwnershipLockPath() {
|
|
10
|
+
return resolve(getRunPath(), "remote-owner.lock.json");
|
|
11
|
+
}
|
|
12
|
+
function readRemoteOwnershipRecord(lockPath) {
|
|
13
|
+
try {
|
|
14
|
+
const raw = JSON.parse(readFileSync(lockPath, "utf-8"));
|
|
15
|
+
if (typeof raw.pid !== "number" || !Number.isFinite(raw.pid)) return null;
|
|
16
|
+
return {
|
|
17
|
+
pid: raw.pid,
|
|
18
|
+
localOrigin: typeof raw.localOrigin === "string" ? raw.localOrigin : "",
|
|
19
|
+
claimedAt: typeof raw.claimedAt === "string" ? raw.claimedAt : ""
|
|
20
|
+
};
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function removeRemoteOwnershipLock(lockPath) {
|
|
26
|
+
if (!existsSync(lockPath)) return;
|
|
27
|
+
try {
|
|
28
|
+
unlinkSync(lockPath);
|
|
29
|
+
} catch {
|
|
30
|
+
try {
|
|
31
|
+
rmSync(lockPath, { force: true });
|
|
32
|
+
} catch {}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function buildManagedServiceOwnershipError(params) {
|
|
36
|
+
return `Remote access is already owned by running NextClaw service PID ${params.pid}${params.ownerOrigin ? ` (${params.ownerOrigin})` : ""}. Stop that service or disable remote there before starting another process with the same NEXTCLAW_HOME.`;
|
|
37
|
+
}
|
|
38
|
+
function buildLocalProcessOwnershipError(record) {
|
|
39
|
+
const originText = record.localOrigin ? ` (${record.localOrigin})` : "";
|
|
40
|
+
return `Remote access is already owned by local NextClaw process PID ${record.pid}${originText}. Stop that process or use a different NEXTCLAW_HOME before starting another remote-enabled process.`;
|
|
41
|
+
}
|
|
42
|
+
function createRemoteOwnershipRelease(params) {
|
|
43
|
+
let released = false;
|
|
44
|
+
return () => {
|
|
45
|
+
if (released) return;
|
|
46
|
+
released = true;
|
|
47
|
+
const current = readRemoteOwnershipRecord(params.lockPath);
|
|
48
|
+
if (!current || current.pid === params.claim.pid && current.claimedAt === params.claim.claimedAt) removeRemoteOwnershipLock(params.lockPath);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function detectManagedRemoteOwnershipConflict(params) {
|
|
52
|
+
const runningService = params.readServiceStateFn();
|
|
53
|
+
if (!runningService || runningService.pid === params.currentPid || !params.isProcessRunningFn(runningService.pid) || !runningService.remote?.enabled) return null;
|
|
54
|
+
return buildManagedServiceOwnershipError({
|
|
55
|
+
pid: runningService.pid,
|
|
56
|
+
ownerOrigin: runningService.remote.localOrigin ?? runningService.uiUrl
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function tryClaimRemoteOwnershipLock(params) {
|
|
60
|
+
const { claim, currentPid, isProcessRunningFn, lockPath } = params;
|
|
61
|
+
for (let attempt = 0; attempt < 2; attempt += 1) try {
|
|
62
|
+
const fd = openSync(lockPath, "wx");
|
|
63
|
+
writeFileSync(fd, `${JSON.stringify(claim, null, 2)}\n`, "utf-8");
|
|
64
|
+
closeSync(fd);
|
|
65
|
+
return {
|
|
66
|
+
ok: true,
|
|
67
|
+
release: createRemoteOwnershipRelease({
|
|
68
|
+
lockPath,
|
|
69
|
+
claim
|
|
70
|
+
})
|
|
71
|
+
};
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if ((typeof error === "object" && error && "code" in error ? String(error.code) : "") !== "EEXIST") return {
|
|
74
|
+
ok: false,
|
|
75
|
+
error: `Failed to claim local remote runtime ownership: ${error instanceof Error ? error.message : String(error)}`
|
|
76
|
+
};
|
|
77
|
+
const existing = readRemoteOwnershipRecord(lockPath);
|
|
78
|
+
if (existing && existing.pid !== currentPid && isProcessRunningFn(existing.pid)) return {
|
|
79
|
+
ok: false,
|
|
80
|
+
error: buildLocalProcessOwnershipError(existing)
|
|
81
|
+
};
|
|
82
|
+
removeRemoteOwnershipLock(lockPath);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
error: "Failed to claim local remote runtime ownership after clearing a stale lock."
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function claimManagedRemoteRuntimeOwnership(params) {
|
|
90
|
+
const { localOrigin, lockPath: lockPathOverride, currentPid: currentPidOverride, now: nowOverride, isProcessRunningFn: isProcessRunningOverride, readServiceStateFn: readServiceStateOverride } = params;
|
|
91
|
+
const lockPath = lockPathOverride ?? resolveRemoteOwnershipLockPath();
|
|
92
|
+
const currentPid = currentPidOverride ?? process.pid;
|
|
93
|
+
const now = nowOverride ?? (() => (/* @__PURE__ */ new Date()).toISOString());
|
|
94
|
+
const isProcessRunningFn = isProcessRunningOverride ?? isProcessRunning;
|
|
95
|
+
const managedConflict = detectManagedRemoteOwnershipConflict({
|
|
96
|
+
currentPid,
|
|
97
|
+
isProcessRunningFn,
|
|
98
|
+
readServiceStateFn: readServiceStateOverride ?? managedServiceStateStore.read
|
|
99
|
+
});
|
|
100
|
+
if (managedConflict) return {
|
|
101
|
+
ok: false,
|
|
102
|
+
error: managedConflict
|
|
103
|
+
};
|
|
104
|
+
mkdirSync(dirname(lockPath), { recursive: true });
|
|
105
|
+
return tryClaimRemoteOwnershipLock({
|
|
106
|
+
lockPath,
|
|
107
|
+
claim: {
|
|
108
|
+
pid: currentPid,
|
|
109
|
+
localOrigin,
|
|
110
|
+
claimedAt: now()
|
|
111
|
+
},
|
|
112
|
+
currentPid,
|
|
113
|
+
isProcessRunningFn
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function createManagedRemoteModule(params) {
|
|
117
|
+
const { loadConfig, localOrigin, onRemoteStateChange, uiEnabled } = params;
|
|
118
|
+
if (!uiEnabled) return null;
|
|
119
|
+
return new RemoteServiceModule({
|
|
120
|
+
loadConfig,
|
|
121
|
+
uiEnabled,
|
|
122
|
+
localOrigin,
|
|
123
|
+
statusStore: createNextclawRemoteStatusStore("service", onRemoteStateChange),
|
|
124
|
+
createConnector: (logger) => createNextclawRemoteConnector({ logger }),
|
|
125
|
+
claimOwnership: () => claimManagedRemoteRuntimeOwnership({ localOrigin }),
|
|
126
|
+
logger: {
|
|
127
|
+
info: (message) => console.log(`[remote] ${message}`),
|
|
128
|
+
warn: (message) => console.warn(`[remote] ${message}`),
|
|
129
|
+
error: (message) => console.error(`[remote] ${message}`)
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function createManagedRemoteModuleForUi(params) {
|
|
134
|
+
const { loadConfig, localOriginOverride, onRemoteStateChange, uiConfig } = params;
|
|
135
|
+
const explicitLocalOrigin = localOriginOverride?.trim() ?? process.env.NEXTCLAW_REMOTE_LOCAL_ORIGIN?.trim();
|
|
136
|
+
return createManagedRemoteModule({
|
|
137
|
+
loadConfig,
|
|
138
|
+
uiEnabled: uiConfig.enabled,
|
|
139
|
+
onRemoteStateChange,
|
|
140
|
+
localOrigin: explicitLocalOrigin && explicitLocalOrigin.length > 0 ? explicitLocalOrigin.replace(/\/+$/, "") : resolveUiApiBase(uiConfig.host, uiConfig.port)
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function writeInitialManagedServiceState(params) {
|
|
144
|
+
const { config, lease, readinessTimeoutMs, snapshot } = params;
|
|
145
|
+
managedServiceStateStore.write({
|
|
146
|
+
pid: snapshot.pid,
|
|
147
|
+
startedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
148
|
+
uiUrl: snapshot.uiUrl,
|
|
149
|
+
apiUrl: snapshot.apiUrl,
|
|
150
|
+
uiHost: snapshot.uiHost,
|
|
151
|
+
uiPort: snapshot.uiPort,
|
|
152
|
+
logPath: snapshot.logPath,
|
|
153
|
+
...lease ? { lease } : {},
|
|
154
|
+
startupLastProbeError: null,
|
|
155
|
+
startupTimeoutMs: readinessTimeoutMs,
|
|
156
|
+
startupCheckedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
157
|
+
...config.remote.enabled ? { remote: buildNextclawConfiguredRemoteState(config) } : {}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function writeReadyManagedServiceState(params) {
|
|
161
|
+
const { lease, readiness, readinessTimeoutMs, snapshot } = params;
|
|
162
|
+
const currentState = managedServiceStateStore.read();
|
|
163
|
+
const state = {
|
|
164
|
+
pid: snapshot.pid,
|
|
165
|
+
startedAt: currentState?.startedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
166
|
+
uiUrl: snapshot.uiUrl,
|
|
167
|
+
apiUrl: snapshot.apiUrl,
|
|
168
|
+
uiHost: snapshot.uiHost,
|
|
169
|
+
uiPort: snapshot.uiPort,
|
|
170
|
+
logPath: snapshot.logPath,
|
|
171
|
+
...lease ? { lease } : currentState?.lease ? { lease: currentState.lease } : {},
|
|
172
|
+
startupState: readiness.ready ? "ready" : "degraded",
|
|
173
|
+
startupLastProbeError: readiness.lastProbeError,
|
|
174
|
+
startupTimeoutMs: readinessTimeoutMs,
|
|
175
|
+
startupCheckedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
176
|
+
...currentState?.remote ? { remote: currentState.remote } : {}
|
|
177
|
+
};
|
|
178
|
+
managedServiceStateStore.write(state);
|
|
179
|
+
return state;
|
|
180
|
+
}
|
|
181
|
+
//#endregion
|
|
182
|
+
export { claimManagedRemoteRuntimeOwnership, createManagedRemoteModule, createManagedRemoteModuleForUi, writeInitialManagedServiceState, writeReadyManagedServiceState };
|
|
183
|
+
|
|
184
|
+
//# sourceMappingURL=service-remote-runtime.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-remote-runtime.utils.js","names":[],"sources":["../../../src/utils/runtime/service-remote-runtime.utils.ts"],"sourcesContent":["import type { Config } from \"@nextclaw/core\";\nimport { RemoteServiceModule, type RemoteRuntimeState } from \"@nextclaw/remote\";\nimport {\n closeSync,\n existsSync,\n mkdirSync,\n openSync,\n readFileSync,\n rmSync,\n unlinkSync,\n writeFileSync\n} from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport { getRunPath } from \"@nextclaw/core\";\nimport { resolveUiApiBase, isProcessRunning } from \"@nextclaw-service/utils/cli.utils.js\";\nimport {\n managedServiceStateStore,\n type ManagedServiceLease,\n type ManagedServiceState\n} from \"@nextclaw-service/stores/managed-service-state.store.js\";\nimport {\n buildNextclawConfiguredRemoteState,\n createNextclawRemoteConnector,\n createNextclawRemoteStatusStore\n} from \"@nextclaw-service/utils/remote/remote-runtime-support.utils.js\";\n\ntype ManagedServiceSnapshot = {\n pid: number;\n uiUrl: string;\n apiUrl: string;\n uiHost: string;\n uiPort: number;\n logPath: string;\n};\n\ntype RemoteRuntimeOwnerRecord = {\n pid: number;\n localOrigin: string;\n claimedAt: string;\n};\n\ntype RemoteRuntimeOwnershipClaim = { ok: true; release: () => void } | { ok: false; error: string };\n\nfunction resolveRemoteOwnershipLockPath(): string {\n return resolve(getRunPath(), \"remote-owner.lock.json\");\n}\n\nfunction readRemoteOwnershipRecord(lockPath: string): RemoteRuntimeOwnerRecord | null {\n try {\n const raw = JSON.parse(readFileSync(lockPath, \"utf-8\")) as Partial<RemoteRuntimeOwnerRecord>;\n if (typeof raw.pid !== \"number\" || !Number.isFinite(raw.pid)) {\n return null;\n }\n return {\n pid: raw.pid,\n localOrigin: typeof raw.localOrigin === \"string\" ? raw.localOrigin : \"\",\n claimedAt: typeof raw.claimedAt === \"string\" ? raw.claimedAt : \"\"\n };\n } catch {\n return null;\n }\n}\n\nfunction removeRemoteOwnershipLock(lockPath: string): void {\n if (!existsSync(lockPath)) {\n return;\n }\n try {\n unlinkSync(lockPath);\n } catch {\n try {\n rmSync(lockPath, { force: true });\n } catch {\n // Ignore cleanup failures.\n }\n }\n}\n\nfunction buildManagedServiceOwnershipError(params: {\n pid: number;\n ownerOrigin?: string;\n}): string {\n return (\n `Remote access is already owned by running NextClaw service PID ${params.pid}`\n + `${params.ownerOrigin ? ` (${params.ownerOrigin})` : \"\"}. `\n + \"Stop that service or disable remote there before starting another process with the same NEXTCLAW_HOME.\"\n );\n}\n\nfunction buildLocalProcessOwnershipError(record: RemoteRuntimeOwnerRecord): string {\n const originText = record.localOrigin ? ` (${record.localOrigin})` : \"\";\n return (\n `Remote access is already owned by local NextClaw process PID ${record.pid}${originText}. `\n + \"Stop that process or use a different NEXTCLAW_HOME before starting another remote-enabled process.\"\n );\n}\n\nfunction createRemoteOwnershipRelease(params: {\n lockPath: string;\n claim: RemoteRuntimeOwnerRecord;\n}): () => void {\n let released = false;\n return () => {\n if (released) {\n return;\n }\n released = true;\n const current = readRemoteOwnershipRecord(params.lockPath);\n if (!current || (current.pid === params.claim.pid && current.claimedAt === params.claim.claimedAt)) {\n removeRemoteOwnershipLock(params.lockPath);\n }\n };\n}\n\nfunction detectManagedRemoteOwnershipConflict(params: {\n currentPid: number;\n isProcessRunningFn: (pid: number) => boolean;\n readServiceStateFn: () => ManagedServiceState | null;\n}): string | null {\n const runningService = params.readServiceStateFn();\n if (\n !runningService\n || runningService.pid === params.currentPid\n || !params.isProcessRunningFn(runningService.pid)\n || !runningService.remote?.enabled\n ) {\n return null;\n }\n\n return buildManagedServiceOwnershipError({\n pid: runningService.pid,\n ownerOrigin: runningService.remote.localOrigin ?? runningService.uiUrl\n });\n}\n\nfunction tryClaimRemoteOwnershipLock(params: {\n lockPath: string;\n claim: RemoteRuntimeOwnerRecord;\n currentPid: number;\n isProcessRunningFn: (pid: number) => boolean;\n}): RemoteRuntimeOwnershipClaim {\n const { claim, currentPid, isProcessRunningFn, lockPath } = params;\n for (let attempt = 0; attempt < 2; attempt += 1) {\n try {\n const fd = openSync(lockPath, \"wx\");\n writeFileSync(fd, `${JSON.stringify(claim, null, 2)}\\n`, \"utf-8\");\n closeSync(fd);\n return {\n ok: true,\n release: createRemoteOwnershipRelease({\n lockPath,\n claim\n })\n };\n } catch (error) {\n const code = typeof error === \"object\" && error && \"code\" in error ? String(error.code) : \"\";\n if (code !== \"EEXIST\") {\n return {\n ok: false,\n error: `Failed to claim local remote runtime ownership: ${error instanceof Error ? error.message : String(error)}`\n };\n }\n\n const existing = readRemoteOwnershipRecord(lockPath);\n if (existing && existing.pid !== currentPid && isProcessRunningFn(existing.pid)) {\n return {\n ok: false,\n error: buildLocalProcessOwnershipError(existing)\n };\n }\n\n removeRemoteOwnershipLock(lockPath);\n }\n }\n\n return {\n ok: false,\n error: \"Failed to claim local remote runtime ownership after clearing a stale lock.\"\n };\n}\n\nexport function claimManagedRemoteRuntimeOwnership(params: {\n localOrigin: string;\n lockPath?: string;\n currentPid?: number;\n now?: () => string;\n isProcessRunningFn?: (pid: number) => boolean;\n readServiceStateFn?: () => ManagedServiceState | null;\n}): RemoteRuntimeOwnershipClaim {\n const {\n localOrigin,\n lockPath: lockPathOverride,\n currentPid: currentPidOverride,\n now: nowOverride,\n isProcessRunningFn: isProcessRunningOverride,\n readServiceStateFn: readServiceStateOverride\n } = params;\n const lockPath = lockPathOverride ?? resolveRemoteOwnershipLockPath();\n const currentPid = currentPidOverride ?? process.pid;\n const now = nowOverride ?? (() => new Date().toISOString());\n const isProcessRunningFn = isProcessRunningOverride ?? isProcessRunning;\n const readServiceStateFn = readServiceStateOverride ?? managedServiceStateStore.read;\n const managedConflict = detectManagedRemoteOwnershipConflict({\n currentPid,\n isProcessRunningFn,\n readServiceStateFn\n });\n if (managedConflict) {\n return {\n ok: false,\n error: managedConflict\n };\n }\n\n mkdirSync(dirname(lockPath), { recursive: true });\n return tryClaimRemoteOwnershipLock({\n lockPath,\n claim: {\n pid: currentPid,\n localOrigin,\n claimedAt: now()\n },\n currentPid,\n isProcessRunningFn\n });\n}\n\nexport function createManagedRemoteModule(params: {\n loadConfig: () => Config;\n uiEnabled: boolean;\n localOrigin: string;\n onRemoteStateChange?: (state: RemoteRuntimeState) => void;\n}): RemoteServiceModule | null {\n const { loadConfig, localOrigin, onRemoteStateChange, uiEnabled } = params;\n if (!uiEnabled) {\n return null;\n }\n return new RemoteServiceModule({\n loadConfig,\n uiEnabled,\n localOrigin,\n statusStore: createNextclawRemoteStatusStore(\"service\", onRemoteStateChange),\n createConnector: (logger) => createNextclawRemoteConnector({ logger }),\n claimOwnership: () => claimManagedRemoteRuntimeOwnership({ localOrigin }),\n logger: {\n info: (message) => console.log(`[remote] ${message}`),\n warn: (message) => console.warn(`[remote] ${message}`),\n error: (message) => console.error(`[remote] ${message}`)\n }\n });\n}\n\nexport function createManagedRemoteModuleForUi(params: {\n loadConfig: () => Config;\n uiConfig: Pick<Config[\"ui\"], \"enabled\" | \"host\" | \"port\">;\n localOriginOverride?: string; onRemoteStateChange?: (state: RemoteRuntimeState) => void;\n}): RemoteServiceModule | null {\n const { loadConfig, localOriginOverride, onRemoteStateChange, uiConfig } = params;\n const explicitLocalOrigin = localOriginOverride?.trim() ?? process.env.NEXTCLAW_REMOTE_LOCAL_ORIGIN?.trim();\n return createManagedRemoteModule({\n loadConfig,\n uiEnabled: uiConfig.enabled,\n onRemoteStateChange,\n localOrigin:\n explicitLocalOrigin && explicitLocalOrigin.length > 0\n ? explicitLocalOrigin.replace(/\\/+$/, \"\")\n : resolveUiApiBase(uiConfig.host, uiConfig.port)\n });\n}\n\nexport function writeInitialManagedServiceState(params: {\n config: Config;\n lease?: ManagedServiceLease;\n readinessTimeoutMs: number;\n snapshot: ManagedServiceSnapshot;\n}): void {\n const { config, lease, readinessTimeoutMs, snapshot } = params;\n managedServiceStateStore.write({\n pid: snapshot.pid,\n startedAt: new Date().toISOString(),\n uiUrl: snapshot.uiUrl,\n apiUrl: snapshot.apiUrl,\n uiHost: snapshot.uiHost,\n uiPort: snapshot.uiPort,\n logPath: snapshot.logPath,\n ...(lease ? { lease } : {}),\n startupLastProbeError: null,\n startupTimeoutMs: readinessTimeoutMs,\n startupCheckedAt: new Date().toISOString(),\n ...(config.remote.enabled ? { remote: buildNextclawConfiguredRemoteState(config) } : {})\n });\n}\n\nexport function writeReadyManagedServiceState(params: {\n lease?: ManagedServiceLease;\n readinessTimeoutMs: number;\n readiness: { ready: boolean; lastProbeError: string | null };\n snapshot: ManagedServiceSnapshot;\n}): ManagedServiceState {\n const { lease, readiness, readinessTimeoutMs, snapshot } = params;\n const currentState = managedServiceStateStore.read();\n const state: ManagedServiceState = {\n pid: snapshot.pid,\n startedAt: currentState?.startedAt ?? new Date().toISOString(),\n uiUrl: snapshot.uiUrl,\n apiUrl: snapshot.apiUrl,\n uiHost: snapshot.uiHost,\n uiPort: snapshot.uiPort,\n logPath: snapshot.logPath,\n ...(lease ? { lease } : currentState?.lease ? { lease: currentState.lease } : {}),\n startupState: readiness.ready ? \"ready\" : \"degraded\",\n startupLastProbeError: readiness.lastProbeError,\n startupTimeoutMs: readinessTimeoutMs,\n startupCheckedAt: new Date().toISOString(),\n ...(currentState?.remote ? { remote: currentState.remote } : {})\n };\n managedServiceStateStore.write(state);\n return state;\n}\n"],"mappings":";;;;;;;;AA2CA,SAAS,iCAAyC;AAChD,QAAO,QAAQ,YAAY,EAAE,yBAAyB;;AAGxD,SAAS,0BAA0B,UAAmD;AACpF,KAAI;EACF,MAAM,MAAM,KAAK,MAAM,aAAa,UAAU,QAAQ,CAAC;AACvD,MAAI,OAAO,IAAI,QAAQ,YAAY,CAAC,OAAO,SAAS,IAAI,IAAI,CAC1D,QAAO;AAET,SAAO;GACL,KAAK,IAAI;GACT,aAAa,OAAO,IAAI,gBAAgB,WAAW,IAAI,cAAc;GACrE,WAAW,OAAO,IAAI,cAAc,WAAW,IAAI,YAAY;GAChE;SACK;AACN,SAAO;;;AAIX,SAAS,0BAA0B,UAAwB;AACzD,KAAI,CAAC,WAAW,SAAS,CACvB;AAEF,KAAI;AACF,aAAW,SAAS;SACd;AACN,MAAI;AACF,UAAO,UAAU,EAAE,OAAO,MAAM,CAAC;UAC3B;;;AAMZ,SAAS,kCAAkC,QAGhC;AACT,QACE,kEAAkE,OAAO,MACpE,OAAO,cAAc,KAAK,OAAO,YAAY,KAAK,GAAG;;AAK9D,SAAS,gCAAgC,QAA0C;CACjF,MAAM,aAAa,OAAO,cAAc,KAAK,OAAO,YAAY,KAAK;AACrE,QACE,gEAAgE,OAAO,MAAM,WAAW;;AAK5F,SAAS,6BAA6B,QAGvB;CACb,IAAI,WAAW;AACf,cAAa;AACX,MAAI,SACF;AAEF,aAAW;EACX,MAAM,UAAU,0BAA0B,OAAO,SAAS;AAC1D,MAAI,CAAC,WAAY,QAAQ,QAAQ,OAAO,MAAM,OAAO,QAAQ,cAAc,OAAO,MAAM,UACtF,2BAA0B,OAAO,SAAS;;;AAKhD,SAAS,qCAAqC,QAI5B;CAChB,MAAM,iBAAiB,OAAO,oBAAoB;AAClD,KACE,CAAC,kBACE,eAAe,QAAQ,OAAO,cAC9B,CAAC,OAAO,mBAAmB,eAAe,IAAI,IAC9C,CAAC,eAAe,QAAQ,QAE3B,QAAO;AAGT,QAAO,kCAAkC;EACvC,KAAK,eAAe;EACpB,aAAa,eAAe,OAAO,eAAe,eAAe;EAClE,CAAC;;AAGJ,SAAS,4BAA4B,QAKL;CAC9B,MAAM,EAAE,OAAO,YAAY,oBAAoB,aAAa;AAC5D,MAAK,IAAI,UAAU,GAAG,UAAU,GAAG,WAAW,EAC5C,KAAI;EACF,MAAM,KAAK,SAAS,UAAU,KAAK;AACnC,gBAAc,IAAI,GAAG,KAAK,UAAU,OAAO,MAAM,EAAE,CAAC,KAAK,QAAQ;AACjE,YAAU,GAAG;AACb,SAAO;GACL,IAAI;GACJ,SAAS,6BAA6B;IACpC;IACA;IACD,CAAC;GACH;UACM,OAAO;AAEd,OADa,OAAO,UAAU,YAAY,SAAS,UAAU,QAAQ,OAAO,MAAM,KAAK,GAAG,QAC7E,SACX,QAAO;GACL,IAAI;GACJ,OAAO,mDAAmD,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GACjH;EAGH,MAAM,WAAW,0BAA0B,SAAS;AACpD,MAAI,YAAY,SAAS,QAAQ,cAAc,mBAAmB,SAAS,IAAI,CAC7E,QAAO;GACL,IAAI;GACJ,OAAO,gCAAgC,SAAS;GACjD;AAGH,4BAA0B,SAAS;;AAIvC,QAAO;EACL,IAAI;EACJ,OAAO;EACR;;AAGH,SAAgB,mCAAmC,QAOnB;CAC9B,MAAM,EACJ,aACA,UAAU,kBACV,YAAY,oBACZ,KAAK,aACL,oBAAoB,0BACpB,oBAAoB,6BAClB;CACJ,MAAM,WAAW,oBAAoB,gCAAgC;CACrE,MAAM,aAAa,sBAAsB,QAAQ;CACjD,MAAM,MAAM,uCAAsB,IAAI,MAAM,EAAC,aAAa;CAC1D,MAAM,qBAAqB,4BAA4B;CAEvD,MAAM,kBAAkB,qCAAqC;EAC3D;EACA;EACA,oBAJyB,4BAA4B,yBAAyB;EAK/E,CAAC;AACF,KAAI,gBACF,QAAO;EACL,IAAI;EACJ,OAAO;EACR;AAGH,WAAU,QAAQ,SAAS,EAAE,EAAE,WAAW,MAAM,CAAC;AACjD,QAAO,4BAA4B;EACjC;EACA,OAAO;GACL,KAAK;GACL;GACA,WAAW,KAAK;GACjB;EACD;EACA;EACD,CAAC;;AAGJ,SAAgB,0BAA0B,QAKX;CAC7B,MAAM,EAAE,YAAY,aAAa,qBAAqB,cAAc;AACpE,KAAI,CAAC,UACH,QAAO;AAET,QAAO,IAAI,oBAAoB;EAC7B;EACA;EACA;EACA,aAAa,gCAAgC,WAAW,oBAAoB;EAC5E,kBAAkB,WAAW,8BAA8B,EAAE,QAAQ,CAAC;EACtE,sBAAsB,mCAAmC,EAAE,aAAa,CAAC;EACzE,QAAQ;GACN,OAAO,YAAY,QAAQ,IAAI,YAAY,UAAU;GACrD,OAAO,YAAY,QAAQ,KAAK,YAAY,UAAU;GACtD,QAAQ,YAAY,QAAQ,MAAM,YAAY,UAAU;GACzD;EACF,CAAC;;AAGJ,SAAgB,+BAA+B,QAIhB;CAC7B,MAAM,EAAE,YAAY,qBAAqB,qBAAqB,aAAa;CAC3E,MAAM,sBAAsB,qBAAqB,MAAM,IAAI,QAAQ,IAAI,8BAA8B,MAAM;AAC3G,QAAO,0BAA0B;EAC/B;EACA,WAAW,SAAS;EACpB;EACA,aACE,uBAAuB,oBAAoB,SAAS,IAChD,oBAAoB,QAAQ,QAAQ,GAAG,GACvC,iBAAiB,SAAS,MAAM,SAAS,KAAK;EACrD,CAAC;;AAGJ,SAAgB,gCAAgC,QAKvC;CACP,MAAM,EAAE,QAAQ,OAAO,oBAAoB,aAAa;AACxD,0BAAyB,MAAM;EAC7B,KAAK,SAAS;EACd,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC,OAAO,SAAS;EAChB,QAAQ,SAAS;EACjB,QAAQ,SAAS;EACjB,QAAQ,SAAS;EACjB,SAAS,SAAS;EAClB,GAAI,QAAQ,EAAE,OAAO,GAAG,EAAE;EAC1B,uBAAuB;EACvB,kBAAkB;EAClB,mCAAkB,IAAI,MAAM,EAAC,aAAa;EAC1C,GAAI,OAAO,OAAO,UAAU,EAAE,QAAQ,mCAAmC,OAAO,EAAE,GAAG,EAAE;EACxF,CAAC;;AAGJ,SAAgB,8BAA8B,QAKtB;CACtB,MAAM,EAAE,OAAO,WAAW,oBAAoB,aAAa;CAC3D,MAAM,eAAe,yBAAyB,MAAM;CACpD,MAAM,QAA6B;EACjC,KAAK,SAAS;EACd,WAAW,cAAc,8BAAa,IAAI,MAAM,EAAC,aAAa;EAC9D,OAAO,SAAS;EAChB,QAAQ,SAAS;EACjB,QAAQ,SAAS;EACjB,QAAQ,SAAS;EACjB,SAAS,SAAS;EAClB,GAAI,QAAQ,EAAE,OAAO,GAAG,cAAc,QAAQ,EAAE,OAAO,aAAa,OAAO,GAAG,EAAE;EAChF,cAAc,UAAU,QAAQ,UAAU;EAC1C,uBAAuB,UAAU;EACjC,kBAAkB;EAClB,mCAAkB,IAAI,MAAM,EAAC,aAAa;EAC1C,GAAI,cAAc,SAAS,EAAE,QAAQ,aAAa,QAAQ,GAAG,EAAE;EAChE;AACD,0BAAyB,MAAM,MAAM;AACrC,QAAO"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Config } from "@nextclaw/core";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/runtime-helpers.utils.d.ts
|
|
4
|
+
declare function resolveSkillsInstallWorkdir(params: {
|
|
5
|
+
explicitWorkdir?: string;
|
|
6
|
+
configuredWorkspace?: string;
|
|
7
|
+
}): string;
|
|
8
|
+
declare function parseStartTimeoutMs(value: string | number | undefined): number | undefined;
|
|
9
|
+
declare function resolveManagedServiceUiOverrides(params: {
|
|
10
|
+
uiPort: string | number | undefined;
|
|
11
|
+
forcedPublicHost: string;
|
|
12
|
+
}): Partial<Config["ui"]>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { parseStartTimeoutMs, resolveManagedServiceUiOverrides, resolveSkillsInstallWorkdir };
|
|
15
|
+
//# sourceMappingURL=runtime-helpers.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-helpers.utils.d.ts","names":[],"sources":["../../src/utils/runtime-helpers.utils.ts"],"mappings":";;;iBAEgB,2BAAA,CAA4B,MAAA;EAC1C,eAAA;EACA,mBAAA;AAAA;AAAA,iBAQc,mBAAA,CAAoB,KAAA;AAAA,iBAYpB,gCAAA,CAAiC,MAAA;EAC/C,MAAA;EACA,gBAAA;AAAA,IACE,OAAA,CAAQ,MAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { expandHome, getWorkspacePath } from "@nextclaw/core";
|
|
2
|
+
//#region src/utils/runtime-helpers.utils.ts
|
|
3
|
+
function resolveSkillsInstallWorkdir(params) {
|
|
4
|
+
if (params.explicitWorkdir) return expandHome(params.explicitWorkdir);
|
|
5
|
+
return getWorkspacePath(params.configuredWorkspace);
|
|
6
|
+
}
|
|
7
|
+
function parseStartTimeoutMs(value) {
|
|
8
|
+
if (value === void 0) return;
|
|
9
|
+
const parsed = Number(value);
|
|
10
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
11
|
+
console.error("Invalid --start-timeout value. Provide milliseconds (e.g. 45000).");
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
return Math.floor(parsed);
|
|
15
|
+
}
|
|
16
|
+
function resolveManagedServiceUiOverrides(params) {
|
|
17
|
+
const uiOverrides = {
|
|
18
|
+
enabled: true,
|
|
19
|
+
host: params.forcedPublicHost,
|
|
20
|
+
open: false
|
|
21
|
+
};
|
|
22
|
+
if (params.uiPort) uiOverrides.port = Number(params.uiPort);
|
|
23
|
+
return uiOverrides;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { parseStartTimeoutMs, resolveManagedServiceUiOverrides, resolveSkillsInstallWorkdir };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=runtime-helpers.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-helpers.utils.js","names":[],"sources":["../../src/utils/runtime-helpers.utils.ts"],"sourcesContent":["import { expandHome, getWorkspacePath, type Config } from \"@nextclaw/core\";\n\nexport function resolveSkillsInstallWorkdir(params: {\n explicitWorkdir?: string;\n configuredWorkspace?: string;\n}): string {\n if (params.explicitWorkdir) {\n return expandHome(params.explicitWorkdir);\n }\n return getWorkspacePath(params.configuredWorkspace);\n}\n\nexport function parseStartTimeoutMs(value: string | number | undefined): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n console.error(\"Invalid --start-timeout value. Provide milliseconds (e.g. 45000).\");\n process.exit(1);\n }\n return Math.floor(parsed);\n}\n\nexport function resolveManagedServiceUiOverrides(params: {\n uiPort: string | number | undefined;\n forcedPublicHost: string;\n}): Partial<Config[\"ui\"]> {\n const uiOverrides: Partial<Config[\"ui\"]> = {\n enabled: true,\n host: params.forcedPublicHost,\n open: false,\n };\n if (params.uiPort) {\n uiOverrides.port = Number(params.uiPort);\n }\n return uiOverrides;\n}\n"],"mappings":";;AAEA,SAAgB,4BAA4B,QAGjC;AACT,KAAI,OAAO,gBACT,QAAO,WAAW,OAAO,gBAAgB;AAE3C,QAAO,iBAAiB,OAAO,oBAAoB;;AAGrD,SAAgB,oBAAoB,OAAwD;AAC1F,KAAI,UAAU,KAAA,EACZ;CAEF,MAAM,SAAS,OAAO,MAAM;AAC5B,KAAI,CAAC,OAAO,SAAS,OAAO,IAAI,UAAU,GAAG;AAC3C,UAAQ,MAAM,oEAAoE;AAClF,UAAQ,KAAK,EAAE;;AAEjB,QAAO,KAAK,MAAM,OAAO;;AAG3B,SAAgB,iCAAiC,QAGvB;CACxB,MAAM,cAAqC;EACzC,SAAS;EACT,MAAM,OAAO;EACb,MAAM;EACP;AACD,KAAI,OAAO,OACT,aAAY,OAAO,OAAO,OAAO,OAAO;AAE1C,QAAO"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Config } from "@nextclaw/core";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/service-port-probe.utils.d.ts
|
|
4
|
+
declare function checkPortAvailability(params: {
|
|
5
|
+
host: string;
|
|
6
|
+
port: number;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
available: boolean;
|
|
9
|
+
detail: string;
|
|
10
|
+
}>;
|
|
11
|
+
declare function probeHealthEndpoint(healthUrl: string): Promise<{
|
|
12
|
+
healthy: boolean;
|
|
13
|
+
error: string | null;
|
|
14
|
+
}>;
|
|
15
|
+
type UiTargetProbeResult = {
|
|
16
|
+
state: "available";
|
|
17
|
+
availabilityDetail: string;
|
|
18
|
+
probeError: null;
|
|
19
|
+
} | {
|
|
20
|
+
state: "healthy-existing";
|
|
21
|
+
availabilityDetail: string;
|
|
22
|
+
probeError: null;
|
|
23
|
+
} | {
|
|
24
|
+
state: "occupied-unhealthy";
|
|
25
|
+
availabilityDetail: string;
|
|
26
|
+
probeError: string | null;
|
|
27
|
+
};
|
|
28
|
+
declare function inspectUiTarget(params: {
|
|
29
|
+
host: string;
|
|
30
|
+
port: number;
|
|
31
|
+
healthUrl: string;
|
|
32
|
+
checkPortAvailabilityFn?: typeof checkPortAvailability;
|
|
33
|
+
probeHealthEndpointFn?: typeof probeHealthEndpoint;
|
|
34
|
+
}): Promise<UiTargetProbeResult>;
|
|
35
|
+
declare function describeUnmanagedHealthyTargetMessage(params: {
|
|
36
|
+
uiOverrides: Partial<Config["ui"]>;
|
|
37
|
+
checkPortAvailabilityFn?: typeof checkPortAvailability;
|
|
38
|
+
probeHealthEndpointFn?: typeof probeHealthEndpoint;
|
|
39
|
+
}): Promise<string | null>;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { UiTargetProbeResult, checkPortAvailability, describeUnmanagedHealthyTargetMessage, inspectUiTarget, probeHealthEndpoint };
|
|
42
|
+
//# sourceMappingURL=service-port-probe.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-port-probe.utils.d.ts","names":[],"sources":["../../src/utils/service-port-probe.utils.ts"],"mappings":";;;iBA6BsB,qBAAA,CAAsB,MAAA;EAC1C,IAAA;EACA,IAAA;AAAA,IACE,OAAA;EAAU,SAAA;EAAoB,MAAA;AAAA;AAAA,iBAoBZ,mBAAA,CAAoB,SAAA,WAAoB,OAAA;EAAU,OAAA;EAAkB,KAAA;AAAA;AAAA,KA6E9E,mBAAA;EAEN,KAAA;EACA,kBAAA;EACA,UAAA;AAAA;EAGA,KAAA;EACA,kBAAA;EACA,UAAA;AAAA;EAGA,KAAA;EACA,kBAAA;EACA,UAAA;AAAA;AAAA,iBAGgB,eAAA,CAAgB,MAAA;EACpC,IAAA;EACA,IAAA;EACA,SAAA;EACA,uBAAA,UAAiC,qBAAA;EACjC,qBAAA,UAA+B,mBAAA;AAAA,IAC7B,OAAA,CAAQ,mBAAA;AAAA,iBA8BU,qCAAA,CAAsC,MAAA;EAC1D,WAAA,EAAa,OAAA,CAAQ,MAAA;EACrB,uBAAA,UAAiC,qBAAA;EACjC,qBAAA,UAA+B,mBAAA;AAAA,IAC7B,OAAA"}
|