@nextclaw/service 0.1.14 → 0.1.16
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/cli/commands/agent/agent-runtime.utils.d.ts +2 -1
- package/dist/cli/commands/agent/agent-runtime.utils.d.ts.map +1 -0
- package/dist/cli/commands/agent/agent-runtime.utils.js +3 -1
- package/dist/cli/commands/agent/agent-runtime.utils.js.map +1 -0
- package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts +2 -1
- package/dist/cli/commands/agent/cli-agent-runner.utils.d.ts.map +1 -0
- package/dist/cli/commands/agent/cli-agent-runner.utils.js +3 -5
- package/dist/cli/commands/agent/cli-agent-runner.utils.js.map +1 -0
- package/dist/cli/commands/agent/services/agent-commands.service.d.ts +2 -1
- package/dist/cli/commands/agent/services/agent-commands.service.d.ts.map +1 -0
- package/dist/cli/commands/agent/services/agent-commands.service.js +2 -0
- package/dist/cli/commands/agent/services/agent-commands.service.js.map +1 -0
- package/dist/cli/commands/config/services/config-commands.service.d.ts +2 -1
- package/dist/cli/commands/config/services/config-commands.service.d.ts.map +1 -0
- package/dist/cli/commands/config/services/config-commands.service.js +2 -0
- package/dist/cli/commands/config/services/config-commands.service.js.map +1 -0
- package/dist/cli/commands/cron/services/cron-commands.service.d.ts +2 -1
- package/dist/cli/commands/cron/services/cron-commands.service.d.ts.map +1 -0
- package/dist/cli/commands/cron/services/cron-commands.service.js +2 -0
- package/dist/cli/commands/cron/services/cron-commands.service.js.map +1 -0
- package/dist/cli/commands/cron/services/cron-local.service.d.ts +2 -1
- package/dist/cli/commands/cron/services/cron-local.service.d.ts.map +1 -0
- package/dist/cli/commands/cron/services/cron-local.service.js +2 -0
- package/dist/cli/commands/cron/services/cron-local.service.js.map +1 -0
- package/dist/cli/commands/cron/utils/cron-job.utils.d.ts +2 -1
- package/dist/cli/commands/cron/utils/cron-job.utils.d.ts.map +1 -0
- package/dist/cli/commands/cron/utils/cron-job.utils.js +2 -0
- package/dist/cli/commands/cron/utils/cron-job.utils.js.map +1 -0
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts +4 -1
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js +40 -14
- package/dist/cli/commands/diagnostics/services/diagnostics-commands.service.js.map +1 -0
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts +2 -1
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js +8 -0
- package/dist/cli/commands/diagnostics/utils/diagnostics-render.utils.js.map +1 -0
- package/dist/cli/commands/gateway/index.d.ts +2 -1
- package/dist/cli/commands/gateway/index.d.ts.map +1 -0
- package/dist/cli/commands/gateway/index.js +2 -0
- package/dist/cli/commands/gateway/index.js.map +1 -0
- package/dist/cli/commands/logs/index.d.ts +2 -1
- package/dist/cli/commands/logs/index.d.ts.map +1 -0
- package/dist/cli/commands/logs/index.js +2 -0
- package/dist/cli/commands/logs/index.js.map +1 -0
- package/dist/cli/commands/mcp/index.d.ts +2 -1
- package/dist/cli/commands/mcp/index.d.ts.map +1 -0
- package/dist/cli/commands/mcp/index.js +2 -0
- package/dist/cli/commands/mcp/index.js.map +1 -0
- package/dist/cli/commands/restart/index.d.ts +2 -1
- package/dist/cli/commands/restart/index.d.ts.map +1 -0
- package/dist/cli/commands/restart/index.js +2 -0
- package/dist/cli/commands/restart/index.js.map +1 -0
- package/dist/cli/commands/secrets/index.d.ts +2 -1
- package/dist/cli/commands/secrets/index.d.ts.map +1 -0
- package/dist/cli/commands/secrets/index.js +2 -0
- package/dist/cli/commands/secrets/index.js.map +1 -0
- package/dist/cli/commands/serve/index.d.ts +2 -1
- package/dist/cli/commands/serve/index.d.ts.map +1 -0
- package/dist/cli/commands/serve/index.js +2 -0
- package/dist/cli/commands/serve/index.js.map +1 -0
- package/dist/cli/commands/skills/index.d.ts +2 -1
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +2 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/commands/skills/marketplace-client.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace-client.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace-client.js +2 -0
- package/dist/cli/commands/skills/marketplace-client.js.map +1 -0
- package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace-command-options.utils.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace-command-options.utils.js +2 -0
- package/dist/cli/commands/skills/marketplace-command-options.utils.js.map +1 -0
- package/dist/cli/commands/skills/marketplace-identity.utils.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace-identity.utils.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace-identity.utils.js +2 -0
- package/dist/cli/commands/skills/marketplace-identity.utils.js.map +1 -0
- package/dist/cli/commands/skills/marketplace-network-retry.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace-network-retry.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace-network-retry.js +2 -0
- package/dist/cli/commands/skills/marketplace-network-retry.js.map +1 -0
- package/dist/cli/commands/skills/marketplace.metadata.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace.metadata.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace.metadata.js +2 -0
- package/dist/cli/commands/skills/marketplace.metadata.js.map +1 -0
- package/dist/cli/commands/skills/marketplace.utils.d.ts +2 -1
- package/dist/cli/commands/skills/marketplace.utils.d.ts.map +1 -0
- package/dist/cli/commands/skills/marketplace.utils.js +2 -0
- package/dist/cli/commands/skills/marketplace.utils.js.map +1 -0
- package/dist/cli/commands/skills/skills-query.service.d.ts +2 -1
- package/dist/cli/commands/skills/skills-query.service.d.ts.map +1 -0
- package/dist/cli/commands/skills/skills-query.service.js +2 -0
- package/dist/cli/commands/skills/skills-query.service.js.map +1 -0
- package/dist/cli/commands/start/index.d.ts +2 -1
- package/dist/cli/commands/start/index.d.ts.map +1 -0
- package/dist/cli/commands/start/index.js +2 -0
- package/dist/cli/commands/start/index.js.map +1 -0
- package/dist/cli/commands/stop/index.d.ts +2 -1
- package/dist/cli/commands/stop/index.d.ts.map +1 -0
- package/dist/cli/commands/stop/index.js +2 -0
- package/dist/cli/commands/stop/index.js.map +1 -0
- package/dist/cli/commands/ui/index.d.ts +2 -1
- package/dist/cli/commands/ui/index.d.ts.map +1 -0
- package/dist/cli/commands/ui/index.js +2 -0
- package/dist/cli/commands/ui/index.js.map +1 -0
- package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts +2 -1
- package/dist/cli/commands/usage/services/llm-usage-command.service.d.ts.map +1 -0
- package/dist/cli/commands/usage/services/llm-usage-command.service.js +2 -0
- package/dist/cli/commands/usage/services/llm-usage-command.service.js.map +1 -0
- package/dist/commands/channel/channel-config-view.d.ts +2 -1
- package/dist/commands/channel/channel-config-view.d.ts.map +1 -0
- package/dist/commands/channel/channel-config-view.js +2 -0
- package/dist/commands/channel/channel-config-view.js.map +1 -0
- package/dist/commands/channel/channel-list-view.service.d.ts +2 -1
- package/dist/commands/channel/channel-list-view.service.d.ts.map +1 -0
- package/dist/commands/channel/channel-list-view.service.js +2 -0
- package/dist/commands/channel/channel-list-view.service.js.map +1 -0
- package/dist/commands/channel/index.d.ts +2 -1
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +2 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/platform-auth/services/account-status.service.d.ts +2 -1
- package/dist/commands/platform-auth/services/account-status.service.d.ts.map +1 -0
- package/dist/commands/platform-auth/services/account-status.service.js +2 -0
- package/dist/commands/platform-auth/services/account-status.service.js.map +1 -0
- package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts +2 -1
- package/dist/commands/platform-auth/services/platform-auth-commands.service.d.ts.map +1 -0
- package/dist/commands/platform-auth/services/platform-auth-commands.service.js +2 -0
- package/dist/commands/platform-auth/services/platform-auth-commands.service.js.map +1 -0
- package/dist/commands/platform-auth/utils/payload.utils.d.ts +2 -1
- package/dist/commands/platform-auth/utils/payload.utils.d.ts.map +1 -0
- package/dist/commands/platform-auth/utils/payload.utils.js +2 -0
- package/dist/commands/platform-auth/utils/payload.utils.js.map +1 -0
- package/dist/commands/plugin/index.d.ts +2 -1
- package/dist/commands/plugin/index.d.ts.map +1 -0
- package/dist/commands/plugin/index.js +2 -0
- package/dist/commands/plugin/index.js.map +1 -0
- package/dist/commands/plugin/plugin-command.utils.d.ts +2 -1
- package/dist/commands/plugin/plugin-command.utils.d.ts.map +1 -0
- package/dist/commands/plugin/plugin-command.utils.js +2 -0
- package/dist/commands/plugin/plugin-command.utils.js.map +1 -0
- package/dist/commands/plugin/plugin-mutation-actions.utils.d.ts +2 -1
- package/dist/commands/plugin/plugin-mutation-actions.utils.d.ts.map +1 -0
- package/dist/commands/plugin/plugin-mutation-actions.utils.js +2 -0
- package/dist/commands/plugin/plugin-mutation-actions.utils.js.map +1 -0
- package/dist/commands/remote/index.d.ts +2 -1
- package/dist/commands/remote/index.d.ts.map +1 -0
- package/dist/commands/remote/index.js +2 -0
- package/dist/commands/remote/index.js.map +1 -0
- package/dist/commands/remote/services/remote-access-host.service.d.ts +2 -1
- package/dist/commands/remote/services/remote-access-host.service.d.ts.map +1 -0
- package/dist/commands/remote/services/remote-access-host.service.js +2 -0
- package/dist/commands/remote/services/remote-access-host.service.js.map +1 -0
- package/dist/commands/remote/services/remote-service-control.service.d.ts +2 -1
- package/dist/commands/remote/services/remote-service-control.service.d.ts.map +1 -0
- package/dist/commands/remote/services/remote-service-control.service.js +134 -75
- package/dist/commands/remote/services/remote-service-control.service.js.map +1 -0
- package/dist/commands/remote/utils/platform-api-base.utils.d.ts +2 -1
- package/dist/commands/remote/utils/platform-api-base.utils.d.ts.map +1 -0
- package/dist/commands/remote/utils/platform-api-base.utils.js +2 -0
- package/dist/commands/remote/utils/platform-api-base.utils.js.map +1 -0
- package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts +2 -1
- package/dist/commands/remote/utils/remote-runtime-support.utils.d.ts.map +1 -0
- package/dist/commands/remote/utils/remote-runtime-support.utils.js +2 -0
- package/dist/commands/remote/utils/remote-runtime-support.utils.js.map +1 -0
- package/dist/commands/service/index.d.ts +2 -1
- package/dist/commands/service/index.d.ts.map +1 -0
- package/dist/commands/service/index.js +2 -0
- package/dist/commands/service/index.js.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/host-autostart-command.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart-command.service.js +2 -0
- package/dist/commands/service/services/autostart/host-autostart-command.service.js.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.js +2 -0
- package/dist/commands/service/services/autostart/host-autostart-runtime.service.js.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/host-autostart.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/host-autostart.service.js +2 -0
- package/dist/commands/service/services/autostart/host-autostart.service.js.map +1 -0
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js +2 -0
- package/dist/commands/service/services/autostart/linux-systemd-autostart.service.js.map +1 -0
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js +2 -0
- package/dist/commands/service/services/autostart/macos-launch-agent-autostart.service.js.map +1 -0
- package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts +2 -1
- package/dist/commands/service/services/autostart/windows-task-autostart.service.d.ts.map +1 -0
- package/dist/commands/service/services/autostart/windows-task-autostart.service.js +2 -0
- package/dist/commands/service/services/autostart/windows-task-autostart.service.js.map +1 -0
- package/dist/commands/service/types/autostart/host-autostart.types.d.ts +2 -1
- package/dist/commands/service/types/autostart/host-autostart.types.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-bundle-layout.store.d.ts +2 -1
- package/dist/launcher/npm-runtime-bundle-layout.store.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-bundle-layout.store.js +2 -0
- package/dist/launcher/npm-runtime-bundle-layout.store.js.map +1 -0
- package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts +2 -1
- package/dist/launcher/npm-runtime-bundle-manifest.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-bundle-manifest.service.js +2 -0
- package/dist/launcher/npm-runtime-bundle-manifest.service.js.map +1 -0
- package/dist/launcher/npm-runtime-bundle.service.d.ts +2 -1
- package/dist/launcher/npm-runtime-bundle.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-bundle.service.js +2 -0
- package/dist/launcher/npm-runtime-bundle.service.js.map +1 -0
- package/dist/launcher/npm-runtime-bundle.types.d.ts +2 -1
- package/dist/launcher/npm-runtime-bundle.types.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-launcher.service.d.ts +2 -1
- package/dist/launcher/npm-runtime-launcher.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-launcher.service.js +2 -0
- package/dist/launcher/npm-runtime-launcher.service.js.map +1 -0
- package/dist/launcher/npm-runtime-update-command.service.d.ts +5 -1
- package/dist/launcher/npm-runtime-update-command.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-update-command.service.js +32 -0
- package/dist/launcher/npm-runtime-update-command.service.js.map +1 -0
- package/dist/launcher/npm-runtime-update-source.service.d.ts +2 -1
- package/dist/launcher/npm-runtime-update-source.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-update-source.service.js +2 -0
- package/dist/launcher/npm-runtime-update-source.service.js.map +1 -0
- package/dist/launcher/npm-runtime-update-state.store.d.ts +2 -1
- package/dist/launcher/npm-runtime-update-state.store.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-update-state.store.js +2 -0
- package/dist/launcher/npm-runtime-update-state.store.js.map +1 -0
- package/dist/launcher/npm-runtime-update.manager.d.ts +2 -1
- package/dist/launcher/npm-runtime-update.manager.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-update.manager.js +2 -0
- package/dist/launcher/npm-runtime-update.manager.js.map +1 -0
- package/dist/launcher/npm-runtime-update.service.d.ts +2 -1
- package/dist/launcher/npm-runtime-update.service.d.ts.map +1 -0
- package/dist/launcher/npm-runtime-update.service.js +2 -0
- package/dist/launcher/npm-runtime-update.service.js.map +1 -0
- package/dist/service-runtime.service.d.ts +2 -1
- package/dist/service-runtime.service.d.ts.map +1 -0
- package/dist/service-runtime.service.js +6 -1
- package/dist/service-runtime.service.js.map +1 -0
- package/dist/shared/controllers/gateway.controller.d.ts +2 -1
- package/dist/shared/controllers/gateway.controller.d.ts.map +1 -0
- package/dist/shared/controllers/gateway.controller.js +2 -0
- package/dist/shared/controllers/gateway.controller.js.map +1 -0
- package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts +2 -1
- package/dist/shared/services/gateway/gateway-restart-wake.service.d.ts.map +1 -0
- package/dist/shared/services/gateway/gateway-restart-wake.service.js +2 -0
- package/dist/shared/services/gateway/gateway-restart-wake.service.js.map +1 -0
- package/dist/shared/services/gateway/managers/gateway-plugin.manager.d.ts +2 -1
- package/dist/shared/services/gateway/managers/gateway-plugin.manager.d.ts.map +1 -0
- package/dist/shared/services/gateway/managers/gateway-plugin.manager.js +2 -0
- package/dist/shared/services/gateway/managers/gateway-plugin.manager.js.map +1 -0
- package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts +2 -1
- package/dist/shared/services/gateway/managers/gateway-remote.manager.d.ts.map +1 -0
- package/dist/shared/services/gateway/managers/gateway-remote.manager.js +2 -0
- package/dist/shared/services/gateway/managers/gateway-remote.manager.js.map +1 -0
- package/dist/shared/services/gateway/nextclaw-app.service.d.ts +2 -1
- package/dist/shared/services/gateway/nextclaw-app.service.d.ts.map +1 -0
- package/dist/shared/services/gateway/nextclaw-app.service.js +2 -0
- package/dist/shared/services/gateway/nextclaw-app.service.js.map +1 -0
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts +2 -1
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.d.ts.map +1 -0
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js +2 -0
- package/dist/shared/services/gateway/nextclaw-gateway-runtime.service.js.map +1 -0
- package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts +2 -1
- package/dist/shared/services/gateway/service-bootstrap-status.service.d.ts.map +1 -0
- package/dist/shared/services/gateway/service-bootstrap-status.service.js +2 -0
- package/dist/shared/services/gateway/service-bootstrap-status.service.js.map +1 -0
- package/dist/shared/services/gateway/service-startup-support.service.d.ts +2 -1
- package/dist/shared/services/gateway/service-startup-support.service.d.ts.map +1 -0
- package/dist/shared/services/gateway/service-startup-support.service.js +2 -0
- package/dist/shared/services/gateway/service-startup-support.service.js.map +1 -0
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts +2 -1
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.d.ts.map +1 -0
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.js +2 -0
- package/dist/shared/services/gateway/utils/cron-job-handler.utils.js.map +1 -0
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts +2 -1
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.d.ts.map +1 -0
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js +2 -0
- package/dist/shared/services/gateway/utils/gateway-runtime-lifecycle.utils.js.map +1 -0
- package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts +2 -1
- package/dist/shared/services/marketplace/service-marketplace-installer.service.d.ts.map +1 -0
- package/dist/shared/services/marketplace/service-marketplace-installer.service.js +2 -0
- package/dist/shared/services/marketplace/service-marketplace-installer.service.js.map +1 -0
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts +2 -1
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.d.ts.map +1 -0
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js +2 -0
- package/dist/shared/services/marketplace/service-mcp-marketplace-ops.js.map +1 -0
- package/dist/shared/services/plugin/utils/plugin-dev-hot-reload.utils.d.ts +2 -1
- package/dist/shared/services/plugin/utils/plugin-dev-hot-reload.utils.d.ts.map +1 -0
- package/dist/shared/services/plugin/utils/plugin-dev-hot-reload.utils.js +2 -0
- package/dist/shared/services/plugin/utils/plugin-dev-hot-reload.utils.js.map +1 -0
- package/dist/shared/services/plugin/utils/plugin-runtime-bridge.utils.d.ts +2 -1
- package/dist/shared/services/plugin/utils/plugin-runtime-bridge.utils.d.ts.map +1 -0
- package/dist/shared/services/plugin/utils/plugin-runtime-bridge.utils.js +2 -1
- package/dist/shared/services/plugin/utils/plugin-runtime-bridge.utils.js.map +1 -0
- package/dist/shared/services/restart/restart-coordinator.service.d.ts +2 -1
- package/dist/shared/services/restart/restart-coordinator.service.d.ts.map +1 -0
- package/dist/shared/services/restart/restart-coordinator.service.js +2 -0
- package/dist/shared/services/restart/restart-coordinator.service.js.map +1 -0
- package/dist/shared/services/restart/restart-sentinel.service.d.ts +2 -1
- package/dist/shared/services/restart/restart-sentinel.service.d.ts.map +1 -0
- package/dist/shared/services/restart/restart-sentinel.service.js +2 -0
- package/dist/shared/services/restart/restart-sentinel.service.js.map +1 -0
- package/dist/shared/services/restart/runtime-restart-request.service.d.ts +2 -1
- package/dist/shared/services/restart/runtime-restart-request.service.d.ts.map +1 -0
- package/dist/shared/services/restart/runtime-restart-request.service.js +2 -0
- package/dist/shared/services/restart/runtime-restart-request.service.js.map +1 -0
- package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts +85 -0
- package/dist/shared/services/runtime/managed-service-supervisor.service.d.ts.map +1 -0
- package/dist/shared/services/runtime/managed-service-supervisor.service.js +271 -0
- package/dist/shared/services/runtime/managed-service-supervisor.service.js.map +1 -0
- package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts +2 -1
- package/dist/shared/services/runtime/nextclaw-distribution.service.d.ts.map +1 -0
- package/dist/shared/services/runtime/nextclaw-distribution.service.js +2 -0
- package/dist/shared/services/runtime/nextclaw-distribution.service.js.map +1 -0
- package/dist/shared/services/runtime/runtime-command.service.d.ts +3 -1
- package/dist/shared/services/runtime/runtime-command.service.d.ts.map +1 -0
- package/dist/shared/services/runtime/runtime-command.service.js +5 -0
- package/dist/shared/services/runtime/runtime-command.service.js.map +1 -0
- package/dist/shared/services/runtime/runtime-config-init.service.d.ts +2 -1
- package/dist/shared/services/runtime/runtime-config-init.service.d.ts.map +1 -0
- package/dist/shared/services/runtime/runtime-config-init.service.js +2 -0
- package/dist/shared/services/runtime/runtime-config-init.service.js.map +1 -0
- package/dist/shared/services/runtime/service-managed-startup.service.d.ts +4 -32
- package/dist/shared/services/runtime/service-managed-startup.service.d.ts.map +1 -0
- package/dist/shared/services/runtime/service-managed-startup.service.js +10 -92
- package/dist/shared/services/runtime/service-managed-startup.service.js.map +1 -0
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts +2 -1
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.d.ts.map +1 -0
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.js +2 -0
- package/dist/shared/services/runtime/utils/managed-service-routing.utils.js.map +1 -0
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts +5 -2
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.d.ts.map +1 -0
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js +23 -17
- package/dist/shared/services/runtime/utils/service-remote-runtime.utils.js.map +1 -0
- package/dist/shared/services/ui/companion-runtime.service.d.ts +2 -1
- package/dist/shared/services/ui/companion-runtime.service.d.ts.map +1 -0
- package/dist/shared/services/ui/companion-runtime.service.js +2 -0
- package/dist/shared/services/ui/companion-runtime.service.js.map +1 -0
- package/dist/shared/services/ui/local-ui-discovery.service.d.ts +2 -1
- package/dist/shared/services/ui/local-ui-discovery.service.d.ts.map +1 -0
- package/dist/shared/services/ui/local-ui-discovery.service.js +2 -0
- package/dist/shared/services/ui/local-ui-discovery.service.js.map +1 -0
- package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts +2 -1
- package/dist/shared/services/ui/npm-runtime-update-host.service.d.ts.map +1 -0
- package/dist/shared/services/ui/npm-runtime-update-host.service.js +2 -0
- package/dist/shared/services/ui/npm-runtime-update-host.service.js.map +1 -0
- package/dist/shared/services/ui/runtime-control-host.service.d.ts +2 -1
- package/dist/shared/services/ui/runtime-control-host.service.d.ts.map +1 -0
- package/dist/shared/services/ui/runtime-control-host.service.js +2 -0
- package/dist/shared/services/ui/runtime-control-host.service.js.map +1 -0
- package/dist/shared/services/ui/service-remote-access.service.d.ts +2 -1
- package/dist/shared/services/ui/service-remote-access.service.d.ts.map +1 -0
- package/dist/shared/services/ui/service-remote-access.service.js +2 -0
- package/dist/shared/services/ui/service-remote-access.service.js.map +1 -0
- package/dist/shared/services/ui/ui-bridge-api.service.d.ts +2 -1
- package/dist/shared/services/ui/ui-bridge-api.service.d.ts.map +1 -0
- package/dist/shared/services/ui/ui-bridge-api.service.js +2 -0
- package/dist/shared/services/ui/ui-bridge-api.service.js.map +1 -0
- package/dist/shared/services/workspace/workspace-manager.service.d.ts +2 -1
- package/dist/shared/services/workspace/workspace-manager.service.d.ts.map +1 -0
- package/dist/shared/services/workspace/workspace-manager.service.js +2 -0
- package/dist/shared/services/workspace/workspace-manager.service.js.map +1 -0
- package/dist/shared/stores/companion-runtime.store.d.ts +2 -1
- package/dist/shared/stores/companion-runtime.store.d.ts.map +1 -0
- package/dist/shared/stores/companion-runtime.store.js +2 -0
- package/dist/shared/stores/companion-runtime.store.js.map +1 -0
- package/dist/shared/stores/local-ui-runtime.store.d.ts +2 -1
- package/dist/shared/stores/local-ui-runtime.store.d.ts.map +1 -0
- package/dist/shared/stores/local-ui-runtime.store.js +2 -0
- package/dist/shared/stores/local-ui-runtime.store.js.map +1 -0
- package/dist/shared/stores/managed-service-state.store.d.ts +19 -1
- package/dist/shared/stores/managed-service-state.store.d.ts.map +1 -0
- package/dist/shared/stores/managed-service-state.store.js +2 -0
- package/dist/shared/stores/managed-service-state.store.js.map +1 -0
- package/dist/shared/stores/pending-restart.store.d.ts +2 -1
- package/dist/shared/stores/pending-restart.store.d.ts.map +1 -0
- package/dist/shared/stores/pending-restart.store.js +2 -0
- package/dist/shared/stores/pending-restart.store.js.map +1 -0
- package/dist/shared/types/cli.types.d.ts +16 -1
- package/dist/shared/types/cli.types.d.ts.map +1 -0
- package/dist/shared/types/distribution.types.d.ts +2 -1
- package/dist/shared/types/distribution.types.d.ts.map +1 -0
- package/dist/shared/utils/cli.utils.d.ts +2 -1
- package/dist/shared/utils/cli.utils.d.ts.map +1 -0
- package/dist/shared/utils/cli.utils.js +2 -0
- package/dist/shared/utils/cli.utils.js.map +1 -0
- package/dist/shared/utils/config-path.d.ts +2 -1
- package/dist/shared/utils/config-path.d.ts.map +1 -0
- package/dist/shared/utils/config-path.js +2 -0
- package/dist/shared/utils/config-path.js.map +1 -0
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts +2 -1
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.d.ts.map +1 -0
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js +2 -0
- package/dist/shared/utils/marketplace/cli-subcommand-launch.utils.js.map +1 -0
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts +2 -1
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.d.ts.map +1 -0
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js +2 -0
- package/dist/shared/utils/marketplace/service-marketplace-helpers.utils.js.map +1 -0
- package/dist/shared/utils/package/package-manifest.utils.d.ts +2 -1
- package/dist/shared/utils/package/package-manifest.utils.d.ts.map +1 -0
- package/dist/shared/utils/package/package-manifest.utils.js +2 -0
- package/dist/shared/utils/package/package-manifest.utils.js.map +1 -0
- package/dist/shared/utils/runtime-helpers.d.ts +2 -1
- package/dist/shared/utils/runtime-helpers.d.ts.map +1 -0
- package/dist/shared/utils/runtime-helpers.js +2 -0
- package/dist/shared/utils/runtime-helpers.js.map +1 -0
- package/dist/shared/utils/service-port-probe.utils.d.ts +2 -1
- package/dist/shared/utils/service-port-probe.utils.d.ts.map +1 -0
- package/dist/shared/utils/service-port-probe.utils.js +2 -0
- package/dist/shared/utils/service-port-probe.utils.js.map +1 -0
- package/dist/shared/utils/startup-trace.d.ts +2 -1
- package/dist/shared/utils/startup-trace.d.ts.map +1 -0
- package/dist/shared/utils/startup-trace.js +2 -0
- package/dist/shared/utils/startup-trace.js.map +1 -0
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts +2 -1
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.d.ts.map +1 -0
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.js +2 -0
- package/dist/shared/utils/top-level-nextclaw-command-env.utils.js.map +1 -0
- package/package.json +20 -20
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { RemoteRuntimeState } from "@nextclaw/remote";
|
|
2
2
|
|
|
3
3
|
//#region src/shared/stores/managed-service-state.store.d.ts
|
|
4
|
+
type ManagedServiceLease = {
|
|
5
|
+
ownerPid: number;
|
|
6
|
+
heartbeatAt: string;
|
|
7
|
+
heartbeatIntervalMs: number;
|
|
8
|
+
ttlMs: number;
|
|
9
|
+
};
|
|
10
|
+
type ManagedServiceExitReason = "exit" | "signal" | "uncaughtException";
|
|
11
|
+
type ManagedServiceLastExit = {
|
|
12
|
+
pid: number;
|
|
13
|
+
reason: ManagedServiceExitReason;
|
|
14
|
+
exitedAt: string;
|
|
15
|
+
code?: number | null;
|
|
16
|
+
signal?: string | null;
|
|
17
|
+
message?: string | null;
|
|
18
|
+
};
|
|
4
19
|
type ManagedServiceState = {
|
|
5
20
|
pid: number;
|
|
6
21
|
startedAt: string;
|
|
@@ -13,6 +28,8 @@ type ManagedServiceState = {
|
|
|
13
28
|
startupLastProbeError?: string | null;
|
|
14
29
|
startupTimeoutMs?: number;
|
|
15
30
|
startupCheckedAt?: string;
|
|
31
|
+
lease?: ManagedServiceLease;
|
|
32
|
+
lastExit?: ManagedServiceLastExit;
|
|
16
33
|
remote?: RemoteRuntimeState;
|
|
17
34
|
};
|
|
18
35
|
declare class ManagedServiceStateStore {
|
|
@@ -25,4 +42,5 @@ declare class ManagedServiceStateStore {
|
|
|
25
42
|
}
|
|
26
43
|
declare const managedServiceStateStore: ManagedServiceStateStore;
|
|
27
44
|
//#endregion
|
|
28
|
-
export { ManagedServiceState, ManagedServiceStateStore, managedServiceStateStore };
|
|
45
|
+
export { ManagedServiceLastExit, ManagedServiceLease, ManagedServiceState, ManagedServiceStateStore, managedServiceStateStore };
|
|
46
|
+
//# sourceMappingURL=managed-service-state.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-service-state.store.d.ts","names":[],"sources":["../../../src/shared/stores/managed-service-state.store.ts"],"mappings":";;;KAKY,mBAAA;EACV,QAAA;EACA,WAAA;EACA,mBAAA;EACA,KAAA;AAAA;AAAA,KAGG,wBAAA;AAAA,KAKO,sBAAA;EACV,GAAA;EACA,MAAA,EAAQ,wBAAA;EACR,QAAA;EACA,IAAA;EACA,MAAA;EACA,OAAA;AAAA;AAAA,KAGU,mBAAA;EACV,GAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,MAAA;EACA,MAAA;EACA,OAAA;EACA,YAAA;EACA,qBAAA;EACA,gBAAA;EACA,gBAAA;EACA,KAAA,GAAQ,mBAAA;EACR,QAAA,GAAW,sBAAA;EACX,MAAA,GAAS,kBAAA;AAAA;AAAA,cAGE,wBAAA;EAAA,IACP,IAAA,CAAA;EAAA,SAIK,IAAA,QAAW,mBAAA;EAAA,SAYX,KAAA,GAAS,KAAA,EAAO,mBAAA;EAAA,SAKhB,MAAA,GAAU,OAAA,GAAU,KAAA,EAAO,mBAAA,KAAwB,mBAAA,KAAsB,mBAAA;EAAA,SAUzE,KAAA;EAAA,SAMA,qBAAA,GAAyB,GAAA;AAAA;AAAA,cAOvB,wBAAA,EAAwB,wBAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-service-state.store.js","names":[],"sources":["../../../src/shared/stores/managed-service-state.store.ts"],"sourcesContent":["import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { getDataDir } from \"@nextclaw/core\";\nimport type { RemoteRuntimeState } from \"@nextclaw/remote\";\n\nexport type ManagedServiceLease = {\n ownerPid: number;\n heartbeatAt: string;\n heartbeatIntervalMs: number;\n ttlMs: number;\n};\n\ntype ManagedServiceExitReason =\n | \"exit\"\n | \"signal\"\n | \"uncaughtException\";\n\nexport type ManagedServiceLastExit = {\n pid: number;\n reason: ManagedServiceExitReason;\n exitedAt: string;\n code?: number | null;\n signal?: string | null;\n message?: string | null;\n};\n\nexport type ManagedServiceState = {\n pid: number;\n startedAt: string;\n uiUrl: string;\n apiUrl: string;\n uiHost?: string;\n uiPort?: number;\n logPath: string;\n startupState?: \"ready\" | \"degraded\";\n startupLastProbeError?: string | null;\n startupTimeoutMs?: number;\n startupCheckedAt?: string;\n lease?: ManagedServiceLease;\n lastExit?: ManagedServiceLastExit;\n remote?: RemoteRuntimeState;\n};\n\nexport class ManagedServiceStateStore {\n get path(): string {\n return resolve(getDataDir(), \"run\", \"service.json\");\n }\n\n readonly read = (): ManagedServiceState | null => {\n if (!existsSync(this.path)) {\n return null;\n }\n try {\n const raw = readFileSync(this.path, \"utf-8\");\n return JSON.parse(raw) as ManagedServiceState;\n } catch {\n return null;\n }\n };\n\n readonly write = (state: ManagedServiceState): void => {\n mkdirSync(resolve(this.path, \"..\"), { recursive: true });\n writeFileSync(this.path, JSON.stringify(state, null, 2));\n };\n\n readonly update = (updater: (state: ManagedServiceState) => ManagedServiceState): ManagedServiceState | null => {\n const current = this.read();\n if (!current) {\n return null;\n }\n const next = updater(current);\n this.write(next);\n return next;\n };\n\n readonly clear = (): void => {\n if (existsSync(this.path)) {\n rmSync(this.path, { force: true });\n }\n };\n\n readonly clearIfOwnedByProcess = (pid = process.pid): void => {\n if (this.read()?.pid === pid) {\n this.clear();\n }\n };\n}\n\nexport const managedServiceStateStore = new ManagedServiceStateStore();\n"],"mappings":";;;;AA2CA,IAAa,2BAAb,MAAsC;CACpC,IAAI,OAAe;AACjB,SAAO,QAAQ,YAAY,EAAE,OAAO,eAAe;;CAGrD,aAAkD;AAChD,MAAI,CAAC,WAAW,KAAK,KAAK,CACxB,QAAO;AAET,MAAI;GACF,MAAM,MAAM,aAAa,KAAK,MAAM,QAAQ;AAC5C,UAAO,KAAK,MAAM,IAAI;UAChB;AACN,UAAO;;;CAIX,SAAkB,UAAqC;AACrD,YAAU,QAAQ,KAAK,MAAM,KAAK,EAAE,EAAE,WAAW,MAAM,CAAC;AACxD,gBAAc,KAAK,MAAM,KAAK,UAAU,OAAO,MAAM,EAAE,CAAC;;CAG1D,UAAmB,YAA6F;EAC9G,MAAM,UAAU,KAAK,MAAM;AAC3B,MAAI,CAAC,QACH,QAAO;EAET,MAAM,OAAO,QAAQ,QAAQ;AAC7B,OAAK,MAAM,KAAK;AAChB,SAAO;;CAGT,cAA6B;AAC3B,MAAI,WAAW,KAAK,KAAK,CACvB,QAAO,KAAK,MAAM,EAAE,OAAO,MAAM,CAAC;;CAItC,yBAAkC,MAAM,QAAQ,QAAc;AAC5D,MAAI,KAAK,MAAM,EAAE,QAAQ,IACvB,MAAK,OAAO;;;AAKlB,MAAa,2BAA2B,IAAI,0BAA0B"}
|
|
@@ -18,4 +18,5 @@ declare class PendingRestartStore {
|
|
|
18
18
|
}
|
|
19
19
|
declare const pendingRestartStore: PendingRestartStore;
|
|
20
20
|
//#endregion
|
|
21
|
-
export { PendingRestartState, PendingRestartStore, pendingRestartStore };
|
|
21
|
+
export { PendingRestartState, PendingRestartStore, pendingRestartStore };
|
|
22
|
+
//# sourceMappingURL=pending-restart.store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-restart.store.d.ts","names":[],"sources":["../../../src/shared/stores/pending-restart.store.ts"],"mappings":";KAAY,mBAAA;EACV,YAAA;EACA,OAAA;EACA,OAAA;EACA,WAAA;AAAA;AAAA,KAGG,wBAAA;EACH,YAAA;EACA,aAAA;EACA,MAAA;AAAA;AAAA,cAyBW,mBAAA;EAAA,QACH,KAAA;EAAA,SAEC,IAAA,QAAW,mBAAA;EAAA,SAIX,IAAA,GAAQ,MAAA,EAAQ,wBAAA,KAA2B,mBAAA;EAAA,SAW3C,KAAA;AAAA;AAAA,cAKE,mBAAA,EAAmB,mBAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-restart.store.js","names":[],"sources":["../../../src/shared/stores/pending-restart.store.ts"],"sourcesContent":["export type PendingRestartState = {\n changedPaths: string[];\n message: string;\n reasons: string[];\n requestedAt: string;\n};\n\ntype MarkPendingRestartParams = {\n changedPaths?: string[];\n manualMessage: string;\n reason: string;\n};\n\nconst clonePendingRestartState = (state: PendingRestartState | null): PendingRestartState | null => {\n if (!state) {\n return null;\n }\n return {\n changedPaths: [...state.changedPaths],\n message: state.message,\n reasons: [...state.reasons],\n requestedAt: state.requestedAt\n };\n};\n\nconst dedupeStrings = (values: string[]): string[] => {\n return Array.from(\n new Set(\n values\n .map((value) => value.trim())\n .filter((value) => value.length > 0)\n )\n );\n};\n\nexport class PendingRestartStore {\n private state: PendingRestartState | null = null;\n\n readonly read = (): PendingRestartState | null => {\n return clonePendingRestartState(this.state);\n };\n\n readonly mark = (params: MarkPendingRestartParams): PendingRestartState => {\n const nextState: PendingRestartState = {\n changedPaths: dedupeStrings([...(this.state?.changedPaths ?? []), ...(params.changedPaths ?? [])]),\n message: params.manualMessage.trim() || this.state?.message || \"Restart required to apply saved changes.\",\n reasons: dedupeStrings([...(this.state?.reasons ?? []), params.reason]),\n requestedAt: new Date().toISOString()\n };\n this.state = nextState;\n return clonePendingRestartState(nextState)!;\n };\n\n readonly clear = (): void => {\n this.state = null;\n };\n}\n\nexport const pendingRestartStore = new PendingRestartStore();\n"],"mappings":";AAaA,MAAM,4BAA4B,UAAkE;AAClG,KAAI,CAAC,MACH,QAAO;AAET,QAAO;EACL,cAAc,CAAC,GAAG,MAAM,aAAa;EACrC,SAAS,MAAM;EACf,SAAS,CAAC,GAAG,MAAM,QAAQ;EAC3B,aAAa,MAAM;EACpB;;AAGH,MAAM,iBAAiB,WAA+B;AACpD,QAAO,MAAM,KACX,IAAI,IACF,OACG,KAAK,UAAU,MAAM,MAAM,CAAC,CAC5B,QAAQ,UAAU,MAAM,SAAS,EAAE,CACvC,CACF;;AAGH,IAAa,sBAAb,MAAiC;CAC/B,QAA4C;CAE5C,aAAkD;AAChD,SAAO,yBAAyB,KAAK,MAAM;;CAG7C,QAAiB,WAA0D;EACzE,MAAM,YAAiC;GACrC,cAAc,cAAc,CAAC,GAAI,KAAK,OAAO,gBAAgB,EAAE,EAAG,GAAI,OAAO,gBAAgB,EAAE,CAAE,CAAC;GAClG,SAAS,OAAO,cAAc,MAAM,IAAI,KAAK,OAAO,WAAW;GAC/D,SAAS,cAAc,CAAC,GAAI,KAAK,OAAO,WAAW,EAAE,EAAG,OAAO,OAAO,CAAC;GACvE,8BAAa,IAAI,MAAM,EAAC,aAAa;GACtC;AACD,OAAK,QAAQ;AACb,SAAO,yBAAyB,UAAU;;CAG5C,cAA6B;AAC3B,OAAK,QAAQ;;;AAIjB,MAAa,sBAAsB,IAAI,qBAAqB"}
|
|
@@ -250,8 +250,22 @@ type RuntimeStatusReport = {
|
|
|
250
250
|
pid: number | null;
|
|
251
251
|
running: boolean;
|
|
252
252
|
staleState: boolean;
|
|
253
|
+
staleReason: "process-not-running" | "lease-expired" | null;
|
|
253
254
|
orphanSuspected: boolean;
|
|
254
255
|
startedAt: string | null;
|
|
256
|
+
lease: {
|
|
257
|
+
heartbeatAt: string | null;
|
|
258
|
+
expired: boolean;
|
|
259
|
+
missing: boolean;
|
|
260
|
+
} | null;
|
|
261
|
+
lastExit: {
|
|
262
|
+
pid: number;
|
|
263
|
+
reason: string;
|
|
264
|
+
exitedAt: string;
|
|
265
|
+
code?: number | null;
|
|
266
|
+
signal?: string | null;
|
|
267
|
+
message?: string | null;
|
|
268
|
+
} | null;
|
|
255
269
|
};
|
|
256
270
|
endpoints: {
|
|
257
271
|
uiUrl: string | null;
|
|
@@ -283,4 +297,5 @@ type RequestRestartParams = {
|
|
|
283
297
|
mode?: "execute" | "notify";
|
|
284
298
|
};
|
|
285
299
|
//#endregion
|
|
286
|
-
export { AccountCommandOptions, AccountSetUsernameCommandOptions, AgentCommandOptions, AgentsListCommandOptions, AgentsNewCommandOptions, AgentsRemoveCommandOptions, AgentsRuntimesCommandOptions, AgentsUpdateCommandOptions, ChannelsAddOptions, ChannelsListOptions, ChannelsLoginOptions, ConfigGetOptions, ConfigSetOptions, CronAddOptions, DoctorCommandOptions, GatewayCommandOptions, HealthProbe, LoginCommandOptions, LogsTailCommandOptions, MarketplaceSkillsRecommendCommandOptions, MarketplaceSkillsSearchCommandOptions, McpAddCommandOptions, McpDoctorOptions, McpListOptions, PluginsInfoOptions, PluginsInstallOptions, PluginsListOptions, PluginsUninstallOptions, type RemoteConnectCommandOptions, type RemoteDoctorCommandOptions, type RemoteEnableCommandOptions, type RemoteStatusCommandOptions, RequestRestartParams, RuntimeStatusReport, SecretsApplyOptions, SecretsAuditOptions, SecretsConfigureOptions, SecretsReloadOptions, ServiceAutostartCommandOptions, SkillsInfoCommandOptions, SkillsInstalledCommandOptions, StartCommandOptions, StatusCommandOptions, UiCommandOptions, UpdateCommandOptions, UsageCommandOptions };
|
|
300
|
+
export { AccountCommandOptions, AccountSetUsernameCommandOptions, AgentCommandOptions, AgentsListCommandOptions, AgentsNewCommandOptions, AgentsRemoveCommandOptions, AgentsRuntimesCommandOptions, AgentsUpdateCommandOptions, ChannelsAddOptions, ChannelsListOptions, ChannelsLoginOptions, ConfigGetOptions, ConfigSetOptions, CronAddOptions, DoctorCommandOptions, GatewayCommandOptions, HealthProbe, LoginCommandOptions, LogsTailCommandOptions, MarketplaceSkillsRecommendCommandOptions, MarketplaceSkillsSearchCommandOptions, McpAddCommandOptions, McpDoctorOptions, McpListOptions, PluginsInfoOptions, PluginsInstallOptions, PluginsListOptions, PluginsUninstallOptions, type RemoteConnectCommandOptions, type RemoteDoctorCommandOptions, type RemoteEnableCommandOptions, type RemoteStatusCommandOptions, RequestRestartParams, RuntimeStatusReport, SecretsApplyOptions, SecretsAuditOptions, SecretsConfigureOptions, SecretsReloadOptions, ServiceAutostartCommandOptions, SkillsInfoCommandOptions, SkillsInstalledCommandOptions, StartCommandOptions, StatusCommandOptions, UiCommandOptions, UpdateCommandOptions, UsageCommandOptions };
|
|
301
|
+
//# sourceMappingURL=cli.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.types.d.ts","names":[],"sources":["../../../src/shared/types/cli.types.ts"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distribution.types.d.ts","names":[],"sources":["../../../src/shared/types/distribution.types.ts"],"mappings":";KAAY,oBAAA;EACV,OAAA;EACA,WAAA;EACA,aAAA;EACA,SAAA;EACA,0BAAA;AAAA"}
|
|
@@ -28,4 +28,5 @@ declare function findExecutableOnPath(binary: string, env?: ExecutableLookupEnv,
|
|
|
28
28
|
declare function printAgentResponse(response: string): void;
|
|
29
29
|
declare function prompt(rl: Interface, question: string): Promise<string>;
|
|
30
30
|
//#endregion
|
|
31
|
-
export { ExecutableLookupEnv, ListeningProcessInfo, findExecutableOnPath, findListeningProcessByPort, getPackageVersion, isLoopbackHost, isProcessRunning, openBrowser, printAgentResponse, prompt, resolvePublicIp, resolveServiceLogPath, resolveUiApiBase, resolveUiConfig, resolveUiStaticDir, waitForExit };
|
|
31
|
+
export { ExecutableLookupEnv, ListeningProcessInfo, findExecutableOnPath, findListeningProcessByPort, getPackageVersion, isLoopbackHost, isProcessRunning, openBrowser, printAgentResponse, prompt, resolvePublicIp, resolveServiceLogPath, resolveUiApiBase, resolveUiConfig, resolveUiStaticDir, waitForExit };
|
|
32
|
+
//# sourceMappingURL=cli.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.utils.d.ts","names":[],"sources":["../../../src/shared/utils/cli.utils.ts"],"mappings":";;;;;iBAcgB,eAAA,CAAgB,MAAA,EAAQ,MAAA,EAAQ,SAAA,GAAY,OAAA,CAAQ,MAAA,UAAgB,MAAA;AAAA,iBAKpE,gBAAA,CAAiB,IAAA,UAAc,IAAA;AAAA,iBAI/B,cAAA,CAAe,IAAA;AAAA,iBA6BT,eAAA,CAAgB,SAAA,YAAmB,OAAA;AAAA,iBAUzC,qBAAA,CAAA;AAAA,iBAIA,gBAAA,CAAiB,GAAA;AAAA,iBASX,WAAA,CAAY,GAAA,UAAa,SAAA,WAAoB,OAAA;AAAA,KAWvD,oBAAA;EACV,GAAA;EACA,OAAA;AAAA;AAAA,iBA2Fc,0BAAA,CAA2B,IAAA,WAAe,oBAAA;AAAA,iBA8B1C,kBAAA,CAAmB,iBAAA;AAAA,iBAgBnB,WAAA,CAAY,GAAA;AAAA,KA+BhB,mBAAA;EAAA,CACT,GAAA;EACD,IAAA;EACA,IAAA;EACA,IAAA;EACA,OAAA;AAAA;AAAA,iBA0Bc,oBAAA,CACd,MAAA,UACA,GAAA,GAAK,mBAAA,EACL,QAAA,GAAU,MAAA,CAAO,QAAA;AAAA,iBA0CH,kBAAA,CAAmB,QAAA;AAAA,iBAIb,MAAA,CAAO,EAAA,EAAI,SAAA,EAAW,QAAA,WAAmB,OAAA"}
|
|
@@ -250,3 +250,5 @@ async function prompt(rl, question) {
|
|
|
250
250
|
}
|
|
251
251
|
//#endregion
|
|
252
252
|
export { findExecutableOnPath, findListeningProcessByPort, getPackageVersion, isLoopbackHost, isProcessRunning, openBrowser, printAgentResponse, prompt, resolvePublicIp, resolveServiceLogPath, resolveUiApiBase, resolveUiConfig, resolveUiStaticDir, waitForExit };
|
|
253
|
+
|
|
254
|
+
//# sourceMappingURL=cli.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.utils.js","names":[],"sources":["../../../src/shared/utils/cli.utils.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { spawn, spawnSync } from \"node:child_process\";\nimport { isIP } from \"node:net\";\nimport type { Interface } from \"node:readline\";\nimport {\n createExternalCommandEnv,\n getLogsPath,\n resolveLocalUiBaseUrl,\n type Config\n} from \"@nextclaw/core\";\n\nexport { getPackageVersion } from \"./package/package-manifest.utils.js\";\n\nexport function resolveUiConfig(config: Config, overrides?: Partial<Config[\"ui\"]>): Config[\"ui\"] {\n const base = config.ui ?? { enabled: false, host: \"127.0.0.1\", port: 55667, open: false };\n return { ...base, ...(overrides ?? {}) };\n}\n\nexport function resolveUiApiBase(host: string, port: number): string {\n return resolveLocalUiBaseUrl({ host, port });\n}\n\nexport function isLoopbackHost(host: string): boolean {\n const normalized = host.trim().toLowerCase();\n return normalized === \"127.0.0.1\" || normalized === \"localhost\" || normalized === \"::1\";\n}\n\nconst PUBLIC_IP_CHECK_URLS = [\"https://api.ipify.org\", \"https://ifconfig.me/ip\"];\n\nasync function fetchPublicIpFrom(url: string, timeoutMs: number): Promise<string | null> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n const response = await fetch(url, {\n signal: controller.signal,\n headers: {\n Accept: \"text/plain\"\n }\n });\n if (!response.ok) {\n return null;\n }\n const text = (await response.text()).trim();\n return isIP(text) ? text : null;\n } catch {\n return null;\n } finally {\n clearTimeout(timer);\n }\n}\n\nexport async function resolvePublicIp(timeoutMs = 1500): Promise<string | null> {\n for (const endpoint of PUBLIC_IP_CHECK_URLS) {\n const candidate = await fetchPublicIpFrom(endpoint, timeoutMs);\n if (candidate) {\n return candidate;\n }\n }\n return null;\n}\n\nexport function resolveServiceLogPath(): string {\n return resolve(getLogsPath(), \"service.log\");\n}\n\nexport function isProcessRunning(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function waitForExit(pid: number, timeoutMs: number): Promise<boolean> {\n const start = Date.now();\n while (Date.now() - start < timeoutMs) {\n if (!isProcessRunning(pid)) {\n return true;\n }\n await new Promise((resolve) => setTimeout(resolve, 200));\n }\n return !isProcessRunning(pid);\n}\n\nexport type ListeningProcessInfo = {\n pid: number;\n command: string | null;\n};\n\ntype CommandResult = {\n ok: boolean;\n stdout: string;\n};\n\nfunction runLookupCommand(command: string, args: string[]): CommandResult {\n try {\n const result = spawnSync(command, args, {\n encoding: \"utf8\",\n env: createExternalCommandEnv(process.env)\n });\n if (result.error || result.status !== 0) {\n return {\n ok: false,\n stdout: \"\"\n };\n }\n return {\n ok: true,\n stdout: result.stdout ?? \"\"\n };\n } catch {\n return {\n ok: false,\n stdout: \"\"\n };\n }\n}\n\nfunction parseListeningPidFromLsof(raw: string): number | null {\n for (const line of raw.split(\"\\n\")) {\n if (!line.startsWith(\"p\")) {\n continue;\n }\n const pid = Number(line.slice(1));\n if (Number.isFinite(pid) && pid > 0) {\n return pid;\n }\n }\n return null;\n}\n\nfunction parseListeningPidFromNetstat(raw: string, port: number): number | null {\n const portSuffix = `:${port}`;\n for (const line of raw.split(\"\\n\")) {\n const trimmed = line.trim();\n if (!trimmed || !trimmed.includes(\"LISTEN\")) {\n continue;\n }\n const columns = trimmed.split(/\\s+/);\n if (columns.length < 5) {\n continue;\n }\n const localAddress = columns[1] ?? \"\";\n if (!localAddress.endsWith(portSuffix)) {\n continue;\n }\n const pid = Number(columns[4]);\n if (Number.isFinite(pid) && pid > 0) {\n return pid;\n }\n }\n return null;\n}\n\nfunction lookupProcessCommandByPid(pid: number): string | null {\n if (!Number.isFinite(pid) || pid <= 0) {\n return null;\n }\n\n if (process.platform === \"win32\") {\n const script = `(Get-CimInstance Win32_Process -Filter \"ProcessId = ${pid}\").CommandLine`;\n const result = runLookupCommand(\"powershell\", [\"-NoProfile\", \"-Command\", script]);\n if (!result.ok) {\n return null;\n }\n const command = result.stdout.trim();\n return command.length > 0 ? command : null;\n }\n\n const result = runLookupCommand(\"ps\", [\"-p\", String(pid), \"-o\", \"command=\"]);\n if (!result.ok) {\n return null;\n }\n const command = result.stdout.trim();\n return command.length > 0 ? command : null;\n}\n\nexport function findListeningProcessByPort(port: number): ListeningProcessInfo | null {\n if (!Number.isFinite(port) || port <= 0) {\n return null;\n }\n\n let pid: number | null = null;\n if (process.platform === \"win32\") {\n const result = runLookupCommand(\"netstat\", [\"-ano\", \"-p\", \"tcp\"]);\n if (!result.ok) {\n return null;\n }\n pid = parseListeningPidFromNetstat(result.stdout, port);\n } else {\n const result = runLookupCommand(\"lsof\", [\"-nP\", `-iTCP:${port}`, \"-sTCP:LISTEN\", \"-F\", \"p\"]);\n if (!result.ok) {\n return null;\n }\n pid = parseListeningPidFromLsof(result.stdout);\n }\n\n if (!pid) {\n return null;\n }\n\n return {\n pid,\n command: lookupProcessCommandByPid(pid)\n };\n}\n\nexport function resolveUiStaticDir(packagedUiDistDir?: string | null): string | null {\n if (process.env.NEXTCLAW_DISABLE_STATIC_UI === \"1\") {\n return null;\n }\n\n const envDir = process.env.NEXTCLAW_UI_STATIC_DIR;\n if (envDir) {\n return existsSync(join(envDir, \"index.html\")) ? envDir : null;\n }\n\n if (!packagedUiDistDir) {\n return null;\n }\n return existsSync(join(packagedUiDistDir, \"index.html\")) ? packagedUiDistDir : null;\n}\n\nexport function openBrowser(url: string): boolean {\n const platform = process.platform;\n let command: string;\n let args: string[];\n if (platform === \"darwin\") {\n command = \"open\";\n args = [url];\n } else if (platform === \"win32\") {\n command = \"cmd\";\n args = [\"/c\", \"start\", \"\", url];\n } else {\n command = \"xdg-open\";\n args = [url];\n }\n if (!findExecutableOnPath(command)) {\n return false;\n }\n try {\n const child = spawn(command, args, {\n stdio: \"ignore\",\n detached: true,\n env: createExternalCommandEnv(process.env),\n windowsHide: true\n });\n child.unref();\n return true;\n } catch {\n return false;\n }\n}\n\nexport type ExecutableLookupEnv = {\n [key: string]: string | undefined;\n PATH?: string;\n Path?: string;\n path?: string;\n PATHEXT?: string;\n};\n\nfunction normalizePathEntries(rawPath: string, platform: NodeJS.Platform): string[] {\n const delimiter = platform === \"win32\" ? \";\" : \":\";\n return rawPath.split(delimiter).map((entry) => entry.trim().replace(/^\"+|\"+$/g, \"\")).filter(Boolean);\n}\n\nfunction normalizeWindowsPathExt(rawPathExt: string | undefined): string[] {\n const source = (rawPathExt && rawPathExt.trim().length > 0) ? rawPathExt : \".COM;.EXE;.BAT;.CMD\";\n const unique = new Set<string>();\n for (const ext of source.split(\";\")) {\n const trimmed = ext.trim();\n if (!trimmed) {\n continue;\n }\n const normalized = trimmed.startsWith(\".\") ? trimmed : `.${trimmed}`;\n unique.add(normalized.toUpperCase());\n }\n return [...unique];\n}\n\nfunction hasFileExtension(binary: string): boolean {\n return binary.lastIndexOf(\".\") > Math.max(binary.lastIndexOf(\"/\"), binary.lastIndexOf(\"\\\\\"));\n}\n\nexport function findExecutableOnPath(\n binary: string,\n env: ExecutableLookupEnv = process.env,\n platform: NodeJS.Platform = process.platform\n): string | null {\n const target = binary.trim();\n if (!target) {\n return null;\n }\n\n if (target.includes(\"/\") || target.includes(\"\\\\\")) {\n return existsSync(target) ? target : null;\n }\n\n const rawPath = env.PATH ?? env.Path ?? env.path ?? \"\";\n if (!rawPath.trim()) {\n return null;\n }\n\n const entries = normalizePathEntries(rawPath, platform);\n if (entries.length === 0) {\n return null;\n }\n\n for (const dir of entries) {\n const direct = join(dir, target);\n if (existsSync(direct)) {\n return direct;\n }\n\n if (platform !== \"win32\" || hasFileExtension(target)) {\n continue;\n }\n\n for (const ext of normalizeWindowsPathExt(env.PATHEXT)) {\n const withExt = join(dir, `${target}${ext}`);\n if (existsSync(withExt)) {\n return withExt;\n }\n }\n }\n\n return null;\n}\n\nexport function printAgentResponse(response: string): void {\n console.log(\"\\n\" + response + \"\\n\");\n}\n\nexport async function prompt(rl: Interface, question: string): Promise<string> {\n rl.setPrompt(question);\n rl.prompt();\n return new Promise((resolve) => {\n rl.once(\"line\", (line) => resolve(line));\n });\n}\n"],"mappings":"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"}
|
|
@@ -12,4 +12,5 @@ declare function getAtConfigPath(root: unknown, pathSegments: string[]): {
|
|
|
12
12
|
declare function setAtConfigPath(root: Record<string, unknown>, pathSegments: string[], value: unknown): void;
|
|
13
13
|
declare function unsetAtConfigPath(root: Record<string, unknown>, pathSegments: string[]): boolean;
|
|
14
14
|
//#endregion
|
|
15
|
-
export { getAtConfigPath, isIndexSegment, parseConfigPath, parseConfigSetValue, parseRequiredConfigPath, setAtConfigPath, unsetAtConfigPath };
|
|
15
|
+
export { getAtConfigPath, isIndexSegment, parseConfigPath, parseConfigSetValue, parseRequiredConfigPath, setAtConfigPath, unsetAtConfigPath };
|
|
16
|
+
//# sourceMappingURL=config-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-path.d.ts","names":[],"sources":["../../../src/shared/utils/config-path.ts"],"mappings":";;;iBAEgB,cAAA,CAAe,GAAA;AAAA,iBAIf,eAAA,CAAgB,GAAA;AAAA,iBAwDhB,uBAAA,CAAwB,GAAA;AAAA,iBAQxB,mBAAA,CAAoB,GAAA,UAAa,IAAA,EAAM,gBAAA;AAAA,iBAYvC,eAAA,CAAgB,IAAA,WAAe,YAAA;EAA2B,KAAA;EAAgB,KAAA;AAAA;AAAA,iBA6B1E,eAAA,CAAgB,IAAA,EAAM,MAAA,mBAAyB,YAAA,YAAwB,KAAA;AAAA,iBA6FvE,iBAAA,CAAkB,IAAA,EAAM,MAAA,mBAAyB,YAAA"}
|
|
@@ -165,3 +165,5 @@ function unsetAtConfigPath(root, pathSegments) {
|
|
|
165
165
|
}
|
|
166
166
|
//#endregion
|
|
167
167
|
export { getAtConfigPath, isIndexSegment, parseConfigPath, parseConfigSetValue, parseRequiredConfigPath, setAtConfigPath, unsetAtConfigPath };
|
|
168
|
+
|
|
169
|
+
//# sourceMappingURL=config-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-path.js","names":[],"sources":["../../../src/shared/utils/config-path.ts"],"sourcesContent":["import type { ConfigSetOptions } from \"../types/cli.types.js\";\n\nexport function isIndexSegment(raw: string): boolean {\n return /^[0-9]+$/.test(raw);\n}\n\nexport function parseConfigPath(raw: string): string[] {\n const trimmed = raw.trim();\n if (!trimmed) {\n return [];\n }\n\n const parts: string[] = [];\n let current = \"\";\n let i = 0;\n\n while (i < trimmed.length) {\n const ch = trimmed[i];\n if (ch === \"\\\\\") {\n const next = trimmed[i + 1];\n if (next) {\n current += next;\n }\n i += 2;\n continue;\n }\n if (ch === \".\") {\n if (current) {\n parts.push(current);\n }\n current = \"\";\n i += 1;\n continue;\n }\n if (ch === \"[\") {\n if (current) {\n parts.push(current);\n }\n current = \"\";\n const close = trimmed.indexOf(\"]\", i);\n if (close === -1) {\n throw new Error(`Invalid path (missing \"]\"): ${raw}`);\n }\n const inside = trimmed.slice(i + 1, close).trim();\n if (!inside) {\n throw new Error(`Invalid path (empty \"[]\"): ${raw}`);\n }\n parts.push(inside);\n i = close + 1;\n continue;\n }\n current += ch;\n i += 1;\n }\n\n if (current) {\n parts.push(current);\n }\n\n return parts.map((part) => part.trim()).filter(Boolean);\n}\n\nexport function parseRequiredConfigPath(raw: string): string[] {\n const parsedPath = parseConfigPath(raw);\n if (parsedPath.length === 0) {\n throw new Error(\"Path is empty.\");\n }\n return parsedPath;\n}\n\nexport function parseConfigSetValue(raw: string, opts: ConfigSetOptions): unknown {\n const trimmed = raw.trim();\n if (opts.json) {\n return JSON.parse(trimmed);\n }\n try {\n return JSON.parse(trimmed);\n } catch {\n return raw;\n }\n}\n\nexport function getAtConfigPath(root: unknown, pathSegments: string[]): { found: boolean; value?: unknown } {\n let current: unknown = root;\n for (const segment of pathSegments) {\n if (!current || typeof current !== \"object\") {\n return { found: false };\n }\n\n if (Array.isArray(current)) {\n if (!isIndexSegment(segment)) {\n return { found: false };\n }\n const index = Number.parseInt(segment, 10);\n if (!Number.isFinite(index) || index < 0 || index >= current.length) {\n return { found: false };\n }\n current = current[index];\n continue;\n }\n\n const record = current as Record<string, unknown>;\n if (!Object.prototype.hasOwnProperty.call(record, segment)) {\n return { found: false };\n }\n current = record[segment];\n }\n\n return { found: true, value: current };\n}\n\nexport function setAtConfigPath(root: Record<string, unknown>, pathSegments: string[], value: unknown): void {\n let current: unknown = root;\n\n for (let i = 0; i < pathSegments.length - 1; i += 1) {\n const segment = pathSegments[i];\n const next = pathSegments[i + 1];\n const nextIsIndex = Boolean(next && isIndexSegment(next));\n\n if (Array.isArray(current)) {\n current = getOrCreateArraySegment(current, segment, nextIsIndex, pathSegments.slice(0, i));\n continue;\n }\n\n current = getOrCreateObjectSegment(current, segment, nextIsIndex);\n }\n\n setConfigPathValue(current, pathSegments[pathSegments.length - 1], value, pathSegments.slice(0, -1));\n}\n\nfunction ensureWritableArrayIndex(current: unknown[], index: number, parentPath: string[]): void {\n if (!Number.isFinite(index) || index < 0) {\n throw new Error(`Invalid array index \"${index}\"`);\n }\n if (index <= current.length) {\n return;\n }\n const parentPathExpr = formatConfigPath(parentPath);\n const parentLabel = parentPathExpr ? `\"${parentPathExpr}\"` : \"the root array\";\n throw new Error(`Cannot set sparse array index ${index} under ${parentLabel}. Set indices in order.`);\n}\n\nfunction getOrCreateArraySegment(\n current: unknown[],\n segment: string,\n nextIsIndex: boolean,\n parentPath: string[]\n): unknown {\n const index = parseArrayIndexSegment(segment);\n ensureWritableArrayIndex(current, index, parentPath);\n const existing = current[index];\n if (!existing || typeof existing !== \"object\") {\n current[index] = nextIsIndex ? [] : {};\n }\n return current[index];\n}\n\nfunction getOrCreateObjectSegment(current: unknown, segment: string, nextIsIndex: boolean): unknown {\n if (!current || typeof current !== \"object\") {\n throw new Error(`Cannot traverse into \"${segment}\" (not an object)`);\n }\n\n const record = current as Record<string, unknown>;\n const existing = record[segment];\n if (!existing || typeof existing !== \"object\") {\n record[segment] = nextIsIndex ? [] : {};\n }\n return record[segment];\n}\n\nfunction setConfigPathValue(current: unknown, last: string, value: unknown, parentPath: string[]): void {\n if (Array.isArray(current)) {\n const index = parseArrayIndexSegment(last);\n ensureWritableArrayIndex(current, index, parentPath);\n current[index] = value;\n return;\n }\n\n if (!current || typeof current !== \"object\") {\n throw new Error(`Cannot set \"${last}\" (parent is not an object)`);\n }\n\n (current as Record<string, unknown>)[last] = value;\n}\n\nfunction parseArrayIndexSegment(segment: string): number {\n if (!isIndexSegment(segment)) {\n throw new Error(`Expected numeric index for array segment \"${segment}\"`);\n }\n return Number.parseInt(segment, 10);\n}\n\nfunction formatConfigPath(pathSegments: string[]): string {\n let expr = \"\";\n for (const segment of pathSegments) {\n if (isIndexSegment(segment)) {\n expr += `[${segment}]`;\n continue;\n }\n expr += expr ? `.${segment}` : segment;\n }\n return expr;\n}\n\nexport function unsetAtConfigPath(root: Record<string, unknown>, pathSegments: string[]): boolean {\n let current: unknown = root;\n\n for (let i = 0; i < pathSegments.length - 1; i += 1) {\n const segment = pathSegments[i];\n if (!current || typeof current !== \"object\") {\n return false;\n }\n\n if (Array.isArray(current)) {\n if (!isIndexSegment(segment)) {\n return false;\n }\n const index = Number.parseInt(segment, 10);\n if (!Number.isFinite(index) || index < 0 || index >= current.length) {\n return false;\n }\n current = current[index];\n continue;\n }\n\n const record = current as Record<string, unknown>;\n if (!Object.prototype.hasOwnProperty.call(record, segment)) {\n return false;\n }\n current = record[segment];\n }\n\n const last = pathSegments[pathSegments.length - 1];\n if (Array.isArray(current)) {\n if (!isIndexSegment(last)) {\n return false;\n }\n const index = Number.parseInt(last, 10);\n if (!Number.isFinite(index) || index < 0 || index >= current.length) {\n return false;\n }\n current.splice(index, 1);\n return true;\n }\n\n if (!current || typeof current !== \"object\") {\n return false;\n }\n\n const record = current as Record<string, unknown>;\n if (!Object.prototype.hasOwnProperty.call(record, last)) {\n return false;\n }\n delete record[last];\n return true;\n}\n"],"mappings":"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"}
|
|
@@ -13,4 +13,5 @@ declare const resolveCliSubcommandLaunch: (params: {
|
|
|
13
13
|
args: string[];
|
|
14
14
|
};
|
|
15
15
|
//#endregion
|
|
16
|
-
export { resolveCliSubcommandEntry, resolveCliSubcommandLaunch };
|
|
16
|
+
export { resolveCliSubcommandEntry, resolveCliSubcommandLaunch };
|
|
17
|
+
//# sourceMappingURL=cli-subcommand-launch.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-subcommand-launch.utils.d.ts","names":[],"sources":["../../../../src/shared/utils/marketplace/cli-subcommand-launch.utils.ts"],"mappings":";cAwBa,yBAAA,GAA6B,MAAA;EACxC,SAAA;EACA,aAAA;AAAA;AAAA,cASW,0BAAA,GAA8B,MAAA;EACzC,SAAA;EACA,aAAA;EACA,OAAA;EACA,QAAA;AAAA;EACI,OAAA;EAAiB,IAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-subcommand-launch.utils.js","names":[],"sources":["../../../../src/shared/utils/marketplace/cli-subcommand-launch.utils.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport { extname, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst require = createRequire(import.meta.url);\n\nconst TYPESCRIPT_EXTENSIONS = new Set([\".ts\", \".tsx\", \".mts\", \".cts\"]);\n\nconst isTypeScriptEntry = (entry: string): boolean => TYPESCRIPT_EXTENSIONS.has(extname(entry).toLowerCase());\n\nconst resolveTsxCliEntry = (): string => require.resolve(\"tsx/cli\");\n\nconst resolveCliAppEntryFromImportMeta = (importMetaUrl: string): string => {\n const modulePath = fileURLToPath(importMetaUrl);\n const normalizedPath = modulePath.replace(/\\\\/g, \"/\");\n const cliRootIndex = normalizedPath.lastIndexOf(\"/cli/\");\n if (cliRootIndex === -1) {\n return fileURLToPath(new URL(\"../../../app/index.js\", importMetaUrl));\n }\n const extension = extname(modulePath) || \".js\";\n const cliRootPath = modulePath.slice(0, cliRootIndex + \"/cli/\".length);\n return resolve(cliRootPath, \"app\", `index${extension}`);\n};\n\nexport const resolveCliSubcommandEntry = (params: {\n argvEntry?: string;\n importMetaUrl: string;\n}): string => {\n const argvEntry = params.argvEntry?.trim();\n if (argvEntry) {\n return resolve(argvEntry);\n }\n return resolveCliAppEntryFromImportMeta(params.importMetaUrl);\n};\n\nexport const resolveCliSubcommandLaunch = (params: {\n argvEntry?: string;\n importMetaUrl: string;\n cliArgs: string[];\n nodePath?: string;\n}): { command: string; args: string[] } => {\n const cliEntry = resolveCliSubcommandEntry({\n argvEntry: params.argvEntry,\n importMetaUrl: params.importMetaUrl,\n });\n const command = params.nodePath?.trim() || process.execPath;\n\n if (isTypeScriptEntry(cliEntry)) {\n return {\n command,\n args: [resolveTsxCliEntry(), cliEntry, ...params.cliArgs],\n };\n }\n\n return {\n command,\n args: [cliEntry, ...params.cliArgs],\n };\n};\n"],"mappings":";;;;AAIA,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,MAAM,wBAAwB,IAAI,IAAI;CAAC;CAAO;CAAQ;CAAQ;CAAO,CAAC;AAEtE,MAAM,qBAAqB,UAA2B,sBAAsB,IAAI,QAAQ,MAAM,CAAC,aAAa,CAAC;AAE7G,MAAM,2BAAmC,QAAQ,QAAQ,UAAU;AAEnE,MAAM,oCAAoC,kBAAkC;CAC1E,MAAM,aAAa,cAAc,cAAc;CAE/C,MAAM,eADiB,WAAW,QAAQ,OAAO,IAAI,CACjB,YAAY,QAAQ;AACxD,KAAI,iBAAiB,GACnB,QAAO,cAAc,IAAI,IAAI,yBAAyB,cAAc,CAAC;CAEvE,MAAM,YAAY,QAAQ,WAAW,IAAI;AAEzC,QAAO,QADa,WAAW,MAAM,GAAG,eAAe,EAAe,EAC1C,OAAO,QAAQ,YAAY;;AAGzD,MAAa,6BAA6B,WAG5B;CACZ,MAAM,YAAY,OAAO,WAAW,MAAM;AAC1C,KAAI,UACF,QAAO,QAAQ,UAAU;AAE3B,QAAO,iCAAiC,OAAO,cAAc;;AAG/D,MAAa,8BAA8B,WAKA;CACzC,MAAM,WAAW,0BAA0B;EACzC,WAAW,OAAO;EAClB,eAAe,OAAO;EACvB,CAAC;CACF,MAAM,UAAU,OAAO,UAAU,MAAM,IAAI,QAAQ;AAEnD,KAAI,kBAAkB,SAAS,CAC7B,QAAO;EACL;EACA,MAAM;GAAC,oBAAoB;GAAE;GAAU,GAAG,OAAO;GAAQ;EAC1D;AAGH,QAAO;EACL;EACA,MAAM,CAAC,UAAU,GAAG,OAAO,QAAQ;EACpC"}
|
|
@@ -6,4 +6,5 @@ declare const buildMarketplaceSkillInstallArgs: (params: {
|
|
|
6
6
|
force?: boolean;
|
|
7
7
|
}) => string[];
|
|
8
8
|
//#endregion
|
|
9
|
-
export { buildMarketplaceSkillInstallArgs, pickUserFacingCommandSummary };
|
|
9
|
+
export { buildMarketplaceSkillInstallArgs, pickUserFacingCommandSummary };
|
|
10
|
+
//# sourceMappingURL=service-marketplace-helpers.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-marketplace-helpers.utils.d.ts","names":[],"sources":["../../../../src/shared/utils/marketplace/service-marketplace-helpers.utils.ts"],"mappings":";cAkBa,4BAAA,GAAgC,MAAA,UAAgB,QAAA;AAAA,cA+BhD,gCAAA,GAAoC,MAAA;EAC/C,IAAA;EACA,SAAA;EACA,KAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-marketplace-helpers.utils.js","names":[],"sources":["../../../../src/shared/utils/marketplace/service-marketplace-helpers.utils.ts"],"sourcesContent":["const containsAbsoluteFsPath = (line: string): boolean => {\n const normalized = line.trim();\n if (!normalized) {\n return false;\n }\n\n const lowered = normalized.toLowerCase();\n if (lowered.includes(\"http://\") || lowered.includes(\"https://\")) {\n return false;\n }\n\n if (/^[A-Za-z]:\\\\/.test(normalized)) {\n return true;\n }\n\n return /(?:^|\\s)(?:~\\/|\\/[^\\s]+)/.test(normalized);\n};\n\nexport const pickUserFacingCommandSummary = (output: string, fallback: string): string => {\n const lines = output\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(Boolean);\n\n if (lines.length === 0) {\n return fallback;\n }\n\n const visibleLines = lines.filter((line) => {\n if (/^(path|install path|source path|destination|location)\\s*:/i.test(line)) {\n return false;\n }\n if (containsAbsoluteFsPath(line)) {\n return false;\n }\n return true;\n });\n\n if (visibleLines.length === 0) {\n return fallback;\n }\n\n const preferred = [...visibleLines].reverse().find((line) =>\n /\\b(installed|enabled|disabled|uninstalled|published|updated|already installed|removed)\\b/i.test(line),\n );\n\n return preferred ?? visibleLines[visibleLines.length - 1] ?? fallback;\n};\n\nexport const buildMarketplaceSkillInstallArgs = (params: {\n slug: string;\n workspace: string;\n force?: boolean;\n}): string[] => {\n const args = [\"skills\", \"install\", params.slug, \"--workdir\", params.workspace];\n if (params.force) {\n args.push(\"--force\");\n }\n return args;\n};\n"],"mappings":";AAAA,MAAM,0BAA0B,SAA0B;CACxD,MAAM,aAAa,KAAK,MAAM;AAC9B,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,UAAU,WAAW,aAAa;AACxC,KAAI,QAAQ,SAAS,UAAU,IAAI,QAAQ,SAAS,WAAW,CAC7D,QAAO;AAGT,KAAI,eAAe,KAAK,WAAW,CACjC,QAAO;AAGT,QAAO,2BAA2B,KAAK,WAAW;;AAGpD,MAAa,gCAAgC,QAAgB,aAA6B;CACxF,MAAM,QAAQ,OACX,MAAM,KAAK,CACX,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ;AAElB,KAAI,MAAM,WAAW,EACnB,QAAO;CAGT,MAAM,eAAe,MAAM,QAAQ,SAAS;AAC1C,MAAI,6DAA6D,KAAK,KAAK,CACzE,QAAO;AAET,MAAI,uBAAuB,KAAK,CAC9B,QAAO;AAET,SAAO;GACP;AAEF,KAAI,aAAa,WAAW,EAC1B,QAAO;AAOT,QAJkB,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,SAClD,4FAA4F,KAAK,KAAK,CACvG,IAEmB,aAAa,aAAa,SAAS,MAAM;;AAG/D,MAAa,oCAAoC,WAIjC;CACd,MAAM,OAAO;EAAC;EAAU;EAAW,OAAO;EAAM;EAAa,OAAO;EAAU;AAC9E,KAAI,OAAO,MACT,MAAK,KAAK,UAAU;AAEtB,QAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manifest.utils.d.ts","names":[],"sources":["../../../../src/shared/utils/package/package-manifest.utils.ts"],"mappings":";iBAsDgB,iBAAA,CAAkB,aAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manifest.utils.js","names":["getCorePackageVersion"],"sources":["../../../../src/shared/utils/package/package-manifest.utils.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { getPackageVersion as getCorePackageVersion } from \"@nextclaw/core\";\n\ntype PackageManifestView = {\n name?: string;\n version?: string;\n};\n\nfunction readPackageManifest(pkgPath: string): PackageManifestView | null {\n try {\n return JSON.parse(readFileSync(pkgPath, \"utf-8\")) as PackageManifestView;\n } catch {\n return null;\n }\n}\n\nfunction findNearestPackageVersion(startDir: string, expectedName?: string): string | undefined {\n let current = resolve(startDir);\n while (current.length > 0) {\n const parsed = readPackageManifest(join(current, \"package.json\"));\n const matchesExpectedName = parsed && (!expectedName || parsed.name === expectedName);\n if (matchesExpectedName) {\n return typeof parsed.version === \"string\" ? parsed.version : undefined;\n }\n\n const parent = resolve(current, \"..\");\n if (parent === current) {\n break;\n }\n current = parent;\n }\n return undefined;\n}\n\nfunction findWorkspacePackageVersion(startDir: string, packageName: string): string | undefined {\n let current = resolve(startDir);\n while (current.length > 0) {\n const rootDir = join(current, \"packages\", packageName);\n const parsed = readPackageManifest(join(rootDir, \"package.json\"));\n if (parsed?.name === packageName) {\n return typeof parsed.version === \"string\" ? parsed.version : undefined;\n }\n\n const parent = resolve(current, \"..\");\n if (parent === current) {\n break;\n }\n current = parent;\n }\n return undefined;\n}\n\nexport function getPackageVersion(importMetaUrl = import.meta.url): string {\n const cliDir = resolve(fileURLToPath(new URL(\".\", importMetaUrl)));\n const packageVersion =\n findNearestPackageVersion(cliDir, \"nextclaw\") ??\n findWorkspacePackageVersion(cliDir, \"nextclaw\") ??\n findNearestPackageVersion(cliDir);\n return packageVersion ?? getCorePackageVersion();\n}\n"],"mappings":";;;;;AAUA,SAAS,oBAAoB,SAA6C;AACxE,KAAI;AACF,SAAO,KAAK,MAAM,aAAa,SAAS,QAAQ,CAAC;SAC3C;AACN,SAAO;;;AAIX,SAAS,0BAA0B,UAAkB,cAA2C;CAC9F,IAAI,UAAU,QAAQ,SAAS;AAC/B,QAAO,QAAQ,SAAS,GAAG;EACzB,MAAM,SAAS,oBAAoB,KAAK,SAAS,eAAe,CAAC;AAEjE,MAD4B,WAAW,CAAC,gBAAgB,OAAO,SAAS,cAEtE,QAAO,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,KAAA;EAG/D,MAAM,SAAS,QAAQ,SAAS,KAAK;AACrC,MAAI,WAAW,QACb;AAEF,YAAU;;;AAKd,SAAS,4BAA4B,UAAkB,aAAyC;CAC9F,IAAI,UAAU,QAAQ,SAAS;AAC/B,QAAO,QAAQ,SAAS,GAAG;EAEzB,MAAM,SAAS,oBAAoB,KADnB,KAAK,SAAS,YAAY,YAAY,EACL,eAAe,CAAC;AACjE,MAAI,QAAQ,SAAS,YACnB,QAAO,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,KAAA;EAG/D,MAAM,SAAS,QAAQ,SAAS,KAAK;AACrC,MAAI,WAAW,QACb;AAEF,YAAU;;;AAKd,SAAgB,kBAAkB,gBAAgB,OAAO,KAAK,KAAa;CACzE,MAAM,SAAS,QAAQ,cAAc,IAAI,IAAI,KAAK,cAAc,CAAC,CAAC;AAKlE,QAHE,0BAA0B,QAAQ,WAAW,IAC7C,4BAA4B,QAAQ,WAAW,IAC/C,0BAA0B,OAAO,IACVA,qBAAuB"}
|
|
@@ -11,4 +11,5 @@ declare function resolveManagedServiceUiOverrides(params: {
|
|
|
11
11
|
forcedPublicHost: string;
|
|
12
12
|
}): Partial<Config["ui"]>;
|
|
13
13
|
//#endregion
|
|
14
|
-
export { parseStartTimeoutMs, resolveManagedServiceUiOverrides, resolveSkillsInstallWorkdir };
|
|
14
|
+
export { parseStartTimeoutMs, resolveManagedServiceUiOverrides, resolveSkillsInstallWorkdir };
|
|
15
|
+
//# sourceMappingURL=runtime-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-helpers.d.ts","names":[],"sources":["../../../src/shared/utils/runtime-helpers.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 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-helpers.js","names":[],"sources":["../../../src/shared/utils/runtime-helpers.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"}
|
|
@@ -38,4 +38,5 @@ declare function describeUnmanagedHealthyTargetMessage(params: {
|
|
|
38
38
|
probeHealthEndpointFn?: typeof probeHealthEndpoint;
|
|
39
39
|
}): Promise<string | null>;
|
|
40
40
|
//#endregion
|
|
41
|
-
export { UiTargetProbeResult, checkPortAvailability, describeUnmanagedHealthyTargetMessage, inspectUiTarget, probeHealthEndpoint };
|
|
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/shared/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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-port-probe.utils.js","names":["createNetServer","httpsRequest","httpRequest"],"sources":["../../../src/shared/utils/service-port-probe.utils.ts"],"sourcesContent":["import { APP_NAME, loadConfig, type Config } from \"@nextclaw/core\";\nimport { request as httpRequest } from \"node:http\";\nimport { request as httpsRequest } from \"node:https\";\nimport { createServer as createNetServer } from \"node:net\";\nimport { resolveUiApiBase, resolveUiConfig } from \"@nextclaw-service/shared/utils/cli.utils.js\";\nimport { managedServiceStateStore } from \"@nextclaw-service/shared/stores/managed-service-state.store.js\";\n\nfunction getHeaderValue(headers: Record<string, string | string[] | undefined>, key: string): string | null {\n const value = headers[key];\n if (typeof value === \"string\") {\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n }\n if (Array.isArray(value)) {\n const joined = value.map((item) => item.trim()).filter(Boolean).join(\", \");\n return joined.length > 0 ? joined : null;\n }\n return null;\n}\n\nfunction formatProbeBodySnippet(raw: string, maxLength = 180): string | null {\n const normalized = raw.replace(/\\s+/g, \" \").trim();\n if (!normalized) {\n return null;\n }\n const clipped = normalized.length > maxLength ? `${normalized.slice(0, maxLength)}...` : normalized;\n return JSON.stringify(clipped);\n}\n\nexport async function checkPortAvailability(params: {\n host: string;\n port: number;\n}): Promise<{ available: boolean; detail: string }> {\n return await new Promise((resolve) => {\n const server = createNetServer();\n server.once(\"error\", (error) => {\n resolve({\n available: false,\n detail: `bind failed on ${params.host}:${params.port} (${String(error)})`\n });\n });\n server.listen(params.port, params.host, () => {\n server.close(() => {\n resolve({\n available: true,\n detail: `bind ok on ${params.host}:${params.port}`\n });\n });\n });\n });\n}\n\nexport async function probeHealthEndpoint(healthUrl: string): Promise<{ healthy: boolean; error: string | null }> {\n let parsed: URL;\n try {\n parsed = new URL(healthUrl);\n } catch {\n return { healthy: false, error: \"invalid health URL\" };\n }\n\n const requestImpl = parsed.protocol === \"https:\" ? httpsRequest : httpRequest;\n return await new Promise((resolve) => {\n const req = requestImpl(\n {\n protocol: parsed.protocol,\n hostname: parsed.hostname,\n port: parsed.port ? Number(parsed.port) : parsed.protocol === \"https:\" ? 443 : 80,\n method: \"GET\",\n path: `${parsed.pathname}${parsed.search}`,\n timeout: 1000,\n headers: { Accept: \"application/json\" }\n },\n (res) => {\n const chunks: Buffer[] = [];\n res.on(\"data\", (chunk) => {\n if (typeof chunk === \"string\") {\n chunks.push(Buffer.from(chunk));\n return;\n }\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n const responseText = Buffer.concat(chunks).toString(\"utf-8\");\n if ((res.statusCode ?? 0) < 200 || (res.statusCode ?? 0) >= 300) {\n const serverHeader = getHeaderValue(res.headers, \"server\");\n const contentType = getHeaderValue(res.headers, \"content-type\");\n const bodySnippet = formatProbeBodySnippet(responseText);\n const details = [`http ${res.statusCode ?? \"unknown\"}`];\n if (serverHeader) {\n details.push(`server=${serverHeader}`);\n }\n if (contentType) {\n details.push(`content-type=${contentType}`);\n }\n if (bodySnippet) {\n details.push(`body=${bodySnippet}`);\n }\n resolve({ healthy: false, error: details.join(\"; \") });\n return;\n }\n\n try {\n const payload = JSON.parse(responseText) as {\n ok?: boolean;\n data?: { status?: string };\n };\n const healthy = payload?.ok === true && payload?.data?.status === \"ok\";\n if (!healthy) {\n resolve({ healthy: false, error: \"health payload not ok\" });\n return;\n }\n resolve({ healthy: true, error: null });\n } catch {\n resolve({ healthy: false, error: \"invalid health JSON response\" });\n }\n });\n }\n );\n\n req.on(\"timeout\", () => {\n req.destroy(new Error(\"probe timeout\"));\n });\n req.on(\"error\", (error) => {\n resolve({ healthy: false, error: error.message || String(error) });\n });\n req.end();\n });\n}\n\nexport type UiTargetProbeResult =\n | {\n state: \"available\";\n availabilityDetail: string;\n probeError: null;\n }\n | {\n state: \"healthy-existing\";\n availabilityDetail: string;\n probeError: null;\n }\n | {\n state: \"occupied-unhealthy\";\n availabilityDetail: string;\n probeError: string | null;\n };\n\nexport async function inspectUiTarget(params: {\n host: string;\n port: number;\n healthUrl: string;\n checkPortAvailabilityFn?: typeof checkPortAvailability;\n probeHealthEndpointFn?: typeof probeHealthEndpoint;\n}): Promise<UiTargetProbeResult> {\n const { checkPortAvailabilityFn, healthUrl, host, port, probeHealthEndpointFn } = params;\n const availability = await (checkPortAvailabilityFn ?? checkPortAvailability)({\n host,\n port\n });\n if (availability.available) {\n return {\n state: \"available\",\n availabilityDetail: availability.detail,\n probeError: null\n };\n }\n\n const probe = await (probeHealthEndpointFn ?? probeHealthEndpoint)(healthUrl);\n if (probe.healthy) {\n return {\n state: \"healthy-existing\",\n availabilityDetail: availability.detail,\n probeError: null\n };\n }\n\n return {\n state: \"occupied-unhealthy\",\n availabilityDetail: availability.detail,\n probeError: probe.error\n };\n}\n\nexport async function describeUnmanagedHealthyTargetMessage(params: {\n uiOverrides: Partial<Config[\"ui\"]>;\n checkPortAvailabilityFn?: typeof checkPortAvailability;\n probeHealthEndpointFn?: typeof probeHealthEndpoint;\n}): Promise<string | null> {\n const config = loadConfig();\n const uiConfig = resolveUiConfig(config, params.uiOverrides);\n const uiUrl = resolveUiApiBase(uiConfig.host, uiConfig.port);\n const healthUrl = `${uiUrl}/api/health`;\n const target = await inspectUiTarget({\n host: uiConfig.host,\n port: uiConfig.port,\n healthUrl,\n checkPortAvailabilityFn: params.checkPortAvailabilityFn,\n probeHealthEndpointFn: params.probeHealthEndpointFn\n });\n if (target.state !== \"healthy-existing\") {\n return null;\n }\n\n return [\n `Target UI health: ${healthUrl}`,\n `A healthy ${APP_NAME} service is already responding on this port, but it is not tracked by ${managedServiceStateStore.path}.`,\n `${APP_NAME} restart only stops the background service recorded in managed state; it will not auto-kill Docker or other external listeners.`,\n `Fix: stop that external service first or rerun with --ui-port <port>.`\n ].join(\"\\n\");\n}\n"],"mappings":";;;;;;;AAOA,SAAS,eAAe,SAAwD,KAA4B;CAC1G,MAAM,QAAQ,QAAQ;AACtB,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,aAAa,MAAM,MAAM;AAC/B,SAAO,WAAW,SAAS,IAAI,aAAa;;AAE9C,KAAI,MAAM,QAAQ,MAAM,EAAE;EACxB,MAAM,SAAS,MAAM,KAAK,SAAS,KAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK;AAC1E,SAAO,OAAO,SAAS,IAAI,SAAS;;AAEtC,QAAO;;AAGT,SAAS,uBAAuB,KAAa,YAAY,KAAoB;CAC3E,MAAM,aAAa,IAAI,QAAQ,QAAQ,IAAI,CAAC,MAAM;AAClD,KAAI,CAAC,WACH,QAAO;CAET,MAAM,UAAU,WAAW,SAAS,YAAY,GAAG,WAAW,MAAM,GAAG,UAAU,CAAC,OAAO;AACzF,QAAO,KAAK,UAAU,QAAQ;;AAGhC,eAAsB,sBAAsB,QAGQ;AAClD,QAAO,MAAM,IAAI,SAAS,YAAY;EACpC,MAAM,SAASA,cAAiB;AAChC,SAAO,KAAK,UAAU,UAAU;AAC9B,WAAQ;IACN,WAAW;IACX,QAAQ,kBAAkB,OAAO,KAAK,GAAG,OAAO,KAAK,IAAI,OAAO,MAAM,CAAC;IACxE,CAAC;IACF;AACF,SAAO,OAAO,OAAO,MAAM,OAAO,YAAY;AAC5C,UAAO,YAAY;AACjB,YAAQ;KACN,WAAW;KACX,QAAQ,cAAc,OAAO,KAAK,GAAG,OAAO;KAC7C,CAAC;KACF;IACF;GACF;;AAGJ,eAAsB,oBAAoB,WAAwE;CAChH,IAAI;AACJ,KAAI;AACF,WAAS,IAAI,IAAI,UAAU;SACrB;AACN,SAAO;GAAE,SAAS;GAAO,OAAO;GAAsB;;CAGxD,MAAM,cAAc,OAAO,aAAa,WAAWC,YAAeC;AAClE,QAAO,MAAM,IAAI,SAAS,YAAY;EACpC,MAAM,MAAM,YACV;GACE,UAAU,OAAO;GACjB,UAAU,OAAO;GACjB,MAAM,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG,OAAO,aAAa,WAAW,MAAM;GAC/E,QAAQ;GACR,MAAM,GAAG,OAAO,WAAW,OAAO;GAClC,SAAS;GACT,SAAS,EAAE,QAAQ,oBAAoB;GACxC,GACA,QAAQ;GACP,MAAM,SAAmB,EAAE;AAC3B,OAAI,GAAG,SAAS,UAAU;AACxB,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAO,KAAK,OAAO,KAAK,MAAM,CAAC;AAC/B;;AAEF,WAAO,KAAK,MAAM;KAClB;AACF,OAAI,GAAG,aAAa;IAClB,MAAM,eAAe,OAAO,OAAO,OAAO,CAAC,SAAS,QAAQ;AAC5D,SAAK,IAAI,cAAc,KAAK,QAAQ,IAAI,cAAc,MAAM,KAAK;KAC/D,MAAM,eAAe,eAAe,IAAI,SAAS,SAAS;KAC1D,MAAM,cAAc,eAAe,IAAI,SAAS,eAAe;KAC/D,MAAM,cAAc,uBAAuB,aAAa;KACxD,MAAM,UAAU,CAAC,QAAQ,IAAI,cAAc,YAAY;AACvD,SAAI,aACF,SAAQ,KAAK,UAAU,eAAe;AAExC,SAAI,YACF,SAAQ,KAAK,gBAAgB,cAAc;AAE7C,SAAI,YACF,SAAQ,KAAK,QAAQ,cAAc;AAErC,aAAQ;MAAE,SAAS;MAAO,OAAO,QAAQ,KAAK,KAAK;MAAE,CAAC;AACtD;;AAGF,QAAI;KACF,MAAM,UAAU,KAAK,MAAM,aAAa;AAKxC,SAAI,EADY,SAAS,OAAO,QAAQ,SAAS,MAAM,WAAW,OACpD;AACZ,cAAQ;OAAE,SAAS;OAAO,OAAO;OAAyB,CAAC;AAC3D;;AAEF,aAAQ;MAAE,SAAS;MAAM,OAAO;MAAM,CAAC;YACjC;AACN,aAAQ;MAAE,SAAS;MAAO,OAAO;MAAgC,CAAC;;KAEpE;IAEL;AAED,MAAI,GAAG,iBAAiB;AACtB,OAAI,wBAAQ,IAAI,MAAM,gBAAgB,CAAC;IACvC;AACF,MAAI,GAAG,UAAU,UAAU;AACzB,WAAQ;IAAE,SAAS;IAAO,OAAO,MAAM,WAAW,OAAO,MAAM;IAAE,CAAC;IAClE;AACF,MAAI,KAAK;GACT;;AAoBJ,eAAsB,gBAAgB,QAML;CAC/B,MAAM,EAAE,yBAAyB,WAAW,MAAM,MAAM,0BAA0B;CAClF,MAAM,eAAe,OAAO,2BAA2B,uBAAuB;EAC5E;EACA;EACD,CAAC;AACF,KAAI,aAAa,UACf,QAAO;EACL,OAAO;EACP,oBAAoB,aAAa;EACjC,YAAY;EACb;CAGH,MAAM,QAAQ,OAAO,yBAAyB,qBAAqB,UAAU;AAC7E,KAAI,MAAM,QACR,QAAO;EACL,OAAO;EACP,oBAAoB,aAAa;EACjC,YAAY;EACb;AAGH,QAAO;EACL,OAAO;EACP,oBAAoB,aAAa;EACjC,YAAY,MAAM;EACnB;;AAGH,eAAsB,sCAAsC,QAIjC;CAEzB,MAAM,WAAW,gBADF,YAAY,EACc,OAAO,YAAY;CAE5D,MAAM,YAAY,GADJ,iBAAiB,SAAS,MAAM,SAAS,KAAK,CACjC;AAQ3B,MAPe,MAAM,gBAAgB;EACnC,MAAM,SAAS;EACf,MAAM,SAAS;EACf;EACA,yBAAyB,OAAO;EAChC,uBAAuB,OAAO;EAC/B,CAAC,EACS,UAAU,mBACnB,QAAO;AAGT,QAAO;EACL,qBAAqB;EACrB,aAAa,SAAS,wEAAwE,yBAAyB,KAAK;EAC5H,GAAG,SAAS;EACZ;EACD,CAAC,KAAK,KAAK"}
|
|
@@ -4,4 +4,5 @@ declare function logStartupTrace(step: string, fields?: TraceFields): void;
|
|
|
4
4
|
declare function measureStartupSync<T>(step: string, fn: () => T, fields?: TraceFields): T;
|
|
5
5
|
declare function measureStartupAsync<T>(step: string, fn: () => Promise<T>, fields?: TraceFields): Promise<T>;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { logStartupTrace, measureStartupAsync, measureStartupSync };
|
|
7
|
+
export { logStartupTrace, measureStartupAsync, measureStartupSync };
|
|
8
|
+
//# sourceMappingURL=startup-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-trace.d.ts","names":[],"sources":["../../../src/shared/utils/startup-trace.ts"],"mappings":";KAGK,WAAA,GAAc,MAAA;AAAA,iBAYH,eAAA,CAAgB,IAAA,UAAc,MAAA,GAAS,WAAA;AAAA,iBAQvC,kBAAA,GAAA,CAAsB,IAAA,UAAc,EAAA,QAAU,CAAA,EAAG,MAAA,GAAS,WAAA,GAAc,CAAA;AAAA,iBAYlE,mBAAA,GAAA,CAAuB,IAAA,UAAc,EAAA,QAAU,OAAA,CAAQ,CAAA,GAAI,MAAA,GAAS,WAAA,GAAc,OAAA,CAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-trace.js","names":[],"sources":["../../../src/shared/utils/startup-trace.ts"],"sourcesContent":["const STARTUP_TRACE_ENABLED = process.env.NEXTCLAW_STARTUP_TRACE === \"1\";\nconst STARTUP_TRACE_ORIGIN_MS = Date.now();\n\ntype TraceFields = Record<string, string | number | boolean | null | undefined>;\n\nfunction formatFields(fields: TraceFields | undefined): string {\n if (!fields) {\n return \"\";\n }\n const parts = Object.entries(fields)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => `${key}=${String(value)}`);\n return parts.length > 0 ? ` ${parts.join(\" \")}` : \"\";\n}\n\nexport function logStartupTrace(step: string, fields?: TraceFields): void {\n if (!STARTUP_TRACE_ENABLED) {\n return;\n }\n const elapsedMs = Date.now() - STARTUP_TRACE_ORIGIN_MS;\n console.log(`[startup-trace] +${elapsedMs}ms ${step}${formatFields(fields)}`);\n}\n\nexport function measureStartupSync<T>(step: string, fn: () => T, fields?: TraceFields): T {\n const startedAt = Date.now();\n try {\n return fn();\n } finally {\n logStartupTrace(step, {\n ...fields,\n duration_ms: Date.now() - startedAt,\n });\n }\n}\n\nexport async function measureStartupAsync<T>(step: string, fn: () => Promise<T>, fields?: TraceFields): Promise<T> {\n const startedAt = Date.now();\n try {\n return await fn();\n } finally {\n logStartupTrace(step, {\n ...fields,\n duration_ms: Date.now() - startedAt,\n });\n }\n}\n"],"mappings":";AAAA,MAAM,wBAAwB,QAAQ,IAAI,2BAA2B;AACrE,MAAM,0BAA0B,KAAK,KAAK;AAI1C,SAAS,aAAa,QAAyC;AAC7D,KAAI,CAAC,OACH,QAAO;CAET,MAAM,QAAQ,OAAO,QAAQ,OAAO,CACjC,QAAQ,GAAG,WAAW,UAAU,KAAA,EAAU,CAC1C,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,MAAM,GAAG;AACnD,QAAO,MAAM,SAAS,IAAI,IAAI,MAAM,KAAK,IAAI,KAAK;;AAGpD,SAAgB,gBAAgB,MAAc,QAA4B;AACxE,KAAI,CAAC,sBACH;CAEF,MAAM,YAAY,KAAK,KAAK,GAAG;AAC/B,SAAQ,IAAI,oBAAoB,UAAU,KAAK,OAAO,aAAa,OAAO,GAAG;;AAG/E,SAAgB,mBAAsB,MAAc,IAAa,QAAyB;CACxF,MAAM,YAAY,KAAK,KAAK;AAC5B,KAAI;AACF,SAAO,IAAI;WACH;AACR,kBAAgB,MAAM;GACpB,GAAG;GACH,aAAa,KAAK,KAAK,GAAG;GAC3B,CAAC;;;AAIN,eAAsB,oBAAuB,MAAc,IAAsB,QAAkC;CACjH,MAAM,YAAY,KAAK,KAAK;AAC5B,KAAI;AACF,SAAO,MAAM,IAAI;WACT;AACR,kBAAgB,MAAM;GACpB,GAAG;GACH,aAAa,KAAK,KAAK,GAAG;GAC3B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
//#region src/shared/utils/top-level-nextclaw-command-env.utils.d.ts
|
|
2
2
|
declare function createTopLevelNextclawCommandEnv(baseEnv?: NodeJS.ProcessEnv, extraEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
3
3
|
//#endregion
|
|
4
|
-
export { createTopLevelNextclawCommandEnv };
|
|
4
|
+
export { createTopLevelNextclawCommandEnv };
|
|
5
|
+
//# sourceMappingURL=top-level-nextclaw-command-env.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-level-nextclaw-command-env.utils.d.ts","names":[],"sources":["../../../src/shared/utils/top-level-nextclaw-command-env.utils.ts"],"mappings":";iBAOgB,gCAAA,CACd,OAAA,GAAS,MAAA,CAAO,UAAA,EAChB,QAAA,GAAU,MAAA,CAAO,UAAA,GAChB,MAAA,CAAO,UAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-level-nextclaw-command-env.utils.js","names":[],"sources":["../../../src/shared/utils/top-level-nextclaw-command-env.utils.ts"],"sourcesContent":["import { createExternalCommandEnv } from \"@nextclaw/core\";\n\nconst NEXTCLAW_RUNTIME_BUNDLE_ENV_KEYS = [\n \"NEXTCLAW_RUNTIME_BUNDLE_CHILD\",\n \"NEXTCLAW_DISABLE_RUNTIME_BUNDLE_LAUNCHER\",\n] as const;\n\nexport function createTopLevelNextclawCommandEnv(\n baseEnv: NodeJS.ProcessEnv = process.env,\n extraEnv: NodeJS.ProcessEnv = {},\n): NodeJS.ProcessEnv {\n const env = createExternalCommandEnv(baseEnv, extraEnv);\n for (const key of NEXTCLAW_RUNTIME_BUNDLE_ENV_KEYS) {\n delete env[key];\n }\n return env;\n}\n"],"mappings":";;AAEA,MAAM,mCAAmC,CACvC,iCACA,2CACD;AAED,SAAgB,iCACd,UAA6B,QAAQ,KACrC,WAA8B,EAAE,EACb;CACnB,MAAM,MAAM,yBAAyB,SAAS,SAAS;AACvD,MAAK,MAAM,OAAO,iCAChB,QAAO,IAAI;AAEb,QAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextclaw/service",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "NextClaw long-running service host and runtime lifecycle.",
|
|
6
6
|
"type": "module",
|
|
@@ -35,24 +35,24 @@
|
|
|
35
35
|
"chokidar": "^3.6.0",
|
|
36
36
|
"commander": "^12.1.0",
|
|
37
37
|
"jszip": "^3.10.1",
|
|
38
|
-
"@nextclaw/channel-extension-feishu": "0.1.
|
|
39
|
-
"@nextclaw/
|
|
40
|
-
"@nextclaw/
|
|
41
|
-
"@nextclaw/
|
|
42
|
-
"@nextclaw/
|
|
43
|
-
"@nextclaw/
|
|
44
|
-
"@nextclaw/ncp
|
|
45
|
-
"@nextclaw/ncp-toolkit": "0.5.
|
|
46
|
-
"@nextclaw/
|
|
47
|
-
"@nextclaw/
|
|
48
|
-
"@nextclaw/nextclaw-ncp-runtime-
|
|
49
|
-
"@nextclaw/nextclaw-hermes-acp-bridge": "0.1.
|
|
50
|
-
"@nextclaw/
|
|
51
|
-
"@nextclaw/
|
|
52
|
-
"@nextclaw/
|
|
53
|
-
"@nextclaw/
|
|
54
|
-
"@nextclaw/
|
|
55
|
-
"@nextclaw/
|
|
38
|
+
"@nextclaw/channel-extension-feishu": "0.1.7",
|
|
39
|
+
"@nextclaw/core": "0.12.23",
|
|
40
|
+
"@nextclaw/channel-extension-weixin": "0.1.10",
|
|
41
|
+
"@nextclaw/channel-extension-qq": "0.1.4",
|
|
42
|
+
"@nextclaw/kernel": "0.1.13",
|
|
43
|
+
"@nextclaw/mcp": "0.1.88",
|
|
44
|
+
"@nextclaw/ncp": "0.5.16",
|
|
45
|
+
"@nextclaw/ncp-toolkit": "0.5.21",
|
|
46
|
+
"@nextclaw/ncp-mcp": "0.1.90",
|
|
47
|
+
"@nextclaw/ncp-agent-runtime": "0.3.27",
|
|
48
|
+
"@nextclaw/nextclaw-ncp-runtime-http-client": "0.1.15",
|
|
49
|
+
"@nextclaw/nextclaw-hermes-acp-bridge": "0.1.15",
|
|
50
|
+
"@nextclaw/nextclaw-ncp-runtime-stdio-client": "0.1.16",
|
|
51
|
+
"@nextclaw/openclaw-compat": "1.0.23",
|
|
52
|
+
"@nextclaw/remote": "0.1.101",
|
|
53
|
+
"@nextclaw/shared": "0.1.10",
|
|
54
|
+
"@nextclaw/server": "0.12.24",
|
|
55
|
+
"@nextclaw/runtime": "0.2.55"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "^20.17.6",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"vitest": "^4.1.2"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
|
-
"build": "tsdown \"src/**/*.ts\" \"!src/**/*.test.ts\" \"!src/**/tests/**\" --dts --clean --target es2022 --no-fixedExtension --unbundle",
|
|
65
|
+
"build": "tsdown \"src/**/*.ts\" \"!src/**/*.test.ts\" \"!src/**/tests/**\" --dts.sourcemap --clean --target es2022 --no-fixedExtension --unbundle",
|
|
66
66
|
"lint": "eslint .",
|
|
67
67
|
"tsc": "tsc -p tsconfig.json",
|
|
68
68
|
"test": "vitest"
|