@vibesdotdev/pm 0.0.0-stage → 1.0.0-rc.2
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/LICENSE +18 -0
- package/README.md +227 -2
- package/dist/admission-store.d.ts +43 -0
- package/dist/admission-store.d.ts.map +1 -0
- package/dist/admission-store.js +108 -0
- package/dist/admission-store.js.map +1 -0
- package/dist/admission.d.ts +46 -0
- package/dist/admission.d.ts.map +1 -0
- package/dist/admission.js +81 -0
- package/dist/admission.js.map +1 -0
- package/dist/admitted-workspace.context.descriptor.d.ts +39 -0
- package/dist/admitted-workspace.context.descriptor.d.ts.map +1 -0
- package/dist/admitted-workspace.context.descriptor.js +18 -0
- package/dist/admitted-workspace.context.descriptor.js.map +1 -0
- package/dist/admitted-workspace.context.impl.consumer.d.ts +16 -0
- package/dist/admitted-workspace.context.impl.consumer.d.ts.map +1 -0
- package/dist/admitted-workspace.context.impl.consumer.js +7 -0
- package/dist/admitted-workspace.context.impl.consumer.js.map +1 -0
- package/dist/cli/admission-read.d.ts +12 -0
- package/dist/cli/admission-read.d.ts.map +1 -0
- package/dist/cli/admission-read.js +42 -0
- package/dist/cli/admission-read.js.map +1 -0
- package/dist/cli/command-input.d.ts +37 -0
- package/dist/cli/command-input.d.ts.map +1 -0
- package/dist/cli/command-input.js +34 -0
- package/dist/cli/command-input.js.map +1 -0
- package/dist/cli/consumer-components/startup-progress.d.ts +107 -0
- package/dist/cli/consumer-components/startup-progress.d.ts.map +1 -0
- package/dist/cli/consumer-components/startup-progress.js +392 -0
- package/dist/cli/consumer-components/startup-progress.js.map +1 -0
- package/dist/cli/consumer-services/control.d.ts +147 -0
- package/dist/cli/consumer-services/control.d.ts.map +1 -0
- package/dist/cli/consumer-services/control.js +209 -0
- package/dist/cli/consumer-services/control.js.map +1 -0
- package/dist/cli/daemon-launch-child.d.ts +35 -0
- package/dist/cli/daemon-launch-child.d.ts.map +1 -0
- package/dist/cli/daemon-launch-child.js +25 -0
- package/dist/cli/daemon-launch-child.js.map +1 -0
- package/dist/cli/docs/pm.cli.docs.descriptor.d.ts +4 -0
- package/dist/cli/docs/pm.cli.docs.descriptor.d.ts.map +1 -0
- package/dist/cli/docs/pm.cli.docs.descriptor.js +93 -0
- package/dist/cli/docs/pm.cli.docs.descriptor.js.map +1 -0
- package/dist/cli/filter-process-states.d.ts +12 -0
- package/dist/cli/filter-process-states.d.ts.map +1 -0
- package/dist/cli/filter-process-states.js +12 -0
- package/dist/cli/filter-process-states.js.map +1 -0
- package/dist/cli/output.d.ts +21 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +19 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/plugin.d.ts +3 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +12 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/pm.cli-group.descriptor.d.ts +10 -0
- package/dist/cli/pm.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.cli-group.descriptor.js +18 -0
- package/dist/cli/pm.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.completion.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/pm.completion.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.completion.cli-group.descriptor.js +17 -0
- package/dist/cli/pm.completion.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.completion.install.descriptor.d.ts +9 -0
- package/dist/cli/pm.completion.install.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.completion.install.descriptor.js +24 -0
- package/dist/cli/pm.completion.install.descriptor.js.map +1 -0
- package/dist/cli/pm.completion.install.impl.d.ts +11 -0
- package/dist/cli/pm.completion.install.impl.d.ts.map +1 -0
- package/dist/cli/pm.completion.install.impl.js +207 -0
- package/dist/cli/pm.completion.install.impl.js.map +1 -0
- package/dist/cli/pm.config.cli.descriptor.d.ts +10 -0
- package/dist/cli/pm.config.cli.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.config.cli.descriptor.js +25 -0
- package/dist/cli/pm.config.cli.descriptor.js.map +1 -0
- package/dist/cli/pm.config.impl.d.ts +12 -0
- package/dist/cli/pm.config.impl.d.ts.map +1 -0
- package/dist/cli/pm.config.impl.js +117 -0
- package/dist/cli/pm.config.impl.js.map +1 -0
- package/dist/cli/pm.daemon.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.cli-group.descriptor.js +17 -0
- package/dist/cli/pm.daemon.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.logs.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.logs.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.logs.descriptor.js +29 -0
- package/dist/cli/pm.daemon.logs.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.logs.impl.d.ts +11 -0
- package/dist/cli/pm.daemon.logs.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.logs.impl.js +53 -0
- package/dist/cli/pm.daemon.logs.impl.js.map +1 -0
- package/dist/cli/pm.daemon.reconcile.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.reconcile.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.reconcile.descriptor.js +24 -0
- package/dist/cli/pm.daemon.reconcile.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.reconcile.impl.d.ts +16 -0
- package/dist/cli/pm.daemon.reconcile.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.reconcile.impl.js +51 -0
- package/dist/cli/pm.daemon.reconcile.impl.js.map +1 -0
- package/dist/cli/pm.daemon.recover.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.recover.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.recover.descriptor.js +24 -0
- package/dist/cli/pm.daemon.recover.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.recover.impl.d.ts +16 -0
- package/dist/cli/pm.daemon.recover.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.recover.impl.js +66 -0
- package/dist/cli/pm.daemon.recover.impl.js.map +1 -0
- package/dist/cli/pm.daemon.restart.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.restart.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.restart.descriptor.js +25 -0
- package/dist/cli/pm.daemon.restart.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.restart.impl.d.ts +28 -0
- package/dist/cli/pm.daemon.restart.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.restart.impl.js +174 -0
- package/dist/cli/pm.daemon.restart.impl.js.map +1 -0
- package/dist/cli/pm.daemon.serve.descriptor.d.ts +10 -0
- package/dist/cli/pm.daemon.serve.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.serve.descriptor.js +28 -0
- package/dist/cli/pm.daemon.serve.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.serve.impl.d.ts +37 -0
- package/dist/cli/pm.daemon.serve.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.serve.impl.js +257 -0
- package/dist/cli/pm.daemon.serve.impl.js.map +1 -0
- package/dist/cli/pm.daemon.start.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.start.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.start.descriptor.js +28 -0
- package/dist/cli/pm.daemon.start.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.start.impl.d.ts +40 -0
- package/dist/cli/pm.daemon.start.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.start.impl.js +341 -0
- package/dist/cli/pm.daemon.start.impl.js.map +1 -0
- package/dist/cli/pm.daemon.status.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.status.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.status.descriptor.js +24 -0
- package/dist/cli/pm.daemon.status.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.status.impl.d.ts +11 -0
- package/dist/cli/pm.daemon.status.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.status.impl.js +123 -0
- package/dist/cli/pm.daemon.status.impl.js.map +1 -0
- package/dist/cli/pm.daemon.stop.descriptor.d.ts +9 -0
- package/dist/cli/pm.daemon.stop.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.daemon.stop.descriptor.js +24 -0
- package/dist/cli/pm.daemon.stop.descriptor.js.map +1 -0
- package/dist/cli/pm.daemon.stop.impl.d.ts +21 -0
- package/dist/cli/pm.daemon.stop.impl.d.ts.map +1 -0
- package/dist/cli/pm.daemon.stop.impl.js +108 -0
- package/dist/cli/pm.daemon.stop.impl.js.map +1 -0
- package/dist/cli/pm.dashboard.descriptor.d.ts +10 -0
- package/dist/cli/pm.dashboard.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.dashboard.descriptor.js +30 -0
- package/dist/cli/pm.dashboard.descriptor.js.map +1 -0
- package/dist/cli/pm.dashboard.impl.d.ts +16 -0
- package/dist/cli/pm.dashboard.impl.d.ts.map +1 -0
- package/dist/cli/pm.dashboard.impl.js +134 -0
- package/dist/cli/pm.dashboard.impl.js.map +1 -0
- package/dist/cli/pm.init.descriptor.d.ts +9 -0
- package/dist/cli/pm.init.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.init.descriptor.js +28 -0
- package/dist/cli/pm.init.descriptor.js.map +1 -0
- package/dist/cli/pm.init.impl.d.ts +11 -0
- package/dist/cli/pm.init.impl.d.ts.map +1 -0
- package/dist/cli/pm.init.impl.js +112 -0
- package/dist/cli/pm.init.impl.js.map +1 -0
- package/dist/cli/pm.list.descriptor.d.ts +9 -0
- package/dist/cli/pm.list.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.list.descriptor.js +44 -0
- package/dist/cli/pm.list.descriptor.js.map +1 -0
- package/dist/cli/pm.list.impl.d.ts +24 -0
- package/dist/cli/pm.list.impl.d.ts.map +1 -0
- package/dist/cli/pm.list.impl.js +204 -0
- package/dist/cli/pm.list.impl.js.map +1 -0
- package/dist/cli/pm.liveness.cli-group.descriptor.d.ts +25 -0
- package/dist/cli/pm.liveness.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.liveness.cli-group.descriptor.js +33 -0
- package/dist/cli/pm.liveness.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.liveness.set.descriptor.d.ts +18 -0
- package/dist/cli/pm.liveness.set.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.liveness.set.descriptor.js +65 -0
- package/dist/cli/pm.liveness.set.descriptor.js.map +1 -0
- package/dist/cli/pm.liveness.set.impl.d.ts +6 -0
- package/dist/cli/pm.liveness.set.impl.d.ts.map +1 -0
- package/dist/cli/pm.liveness.set.impl.js +61 -0
- package/dist/cli/pm.liveness.set.impl.js.map +1 -0
- package/dist/cli/pm.logs.descriptor.d.ts +9 -0
- package/dist/cli/pm.logs.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.logs.descriptor.js +39 -0
- package/dist/cli/pm.logs.descriptor.js.map +1 -0
- package/dist/cli/pm.logs.impl.d.ts +11 -0
- package/dist/cli/pm.logs.impl.d.ts.map +1 -0
- package/dist/cli/pm.logs.impl.js +208 -0
- package/dist/cli/pm.logs.impl.js.map +1 -0
- package/dist/cli/pm.preset.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.cli-group.descriptor.js +17 -0
- package/dist/cli/pm.preset.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.list.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.list.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.list.descriptor.js +24 -0
- package/dist/cli/pm.preset.list.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.list.impl.d.ts +6 -0
- package/dist/cli/pm.preset.list.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.list.impl.js +67 -0
- package/dist/cli/pm.preset.list.impl.js.map +1 -0
- package/dist/cli/pm.preset.restart.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.restart.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.restart.descriptor.js +39 -0
- package/dist/cli/pm.preset.restart.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.restart.impl.d.ts +11 -0
- package/dist/cli/pm.preset.restart.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.restart.impl.js +85 -0
- package/dist/cli/pm.preset.restart.impl.js.map +1 -0
- package/dist/cli/pm.preset.show.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.show.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.show.descriptor.js +30 -0
- package/dist/cli/pm.preset.show.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.show.impl.d.ts +6 -0
- package/dist/cli/pm.preset.show.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.show.impl.js +92 -0
- package/dist/cli/pm.preset.show.impl.js.map +1 -0
- package/dist/cli/pm.preset.start.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.start.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.start.descriptor.js +39 -0
- package/dist/cli/pm.preset.start.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.start.impl.d.ts +11 -0
- package/dist/cli/pm.preset.start.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.start.impl.js +88 -0
- package/dist/cli/pm.preset.start.impl.js.map +1 -0
- package/dist/cli/pm.preset.status.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.status.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.status.descriptor.js +30 -0
- package/dist/cli/pm.preset.status.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.status.impl.d.ts +11 -0
- package/dist/cli/pm.preset.status.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.status.impl.js +166 -0
- package/dist/cli/pm.preset.status.impl.js.map +1 -0
- package/dist/cli/pm.preset.stop.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.stop.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.stop.descriptor.js +39 -0
- package/dist/cli/pm.preset.stop.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.stop.impl.d.ts +11 -0
- package/dist/cli/pm.preset.stop.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.stop.impl.js +68 -0
- package/dist/cli/pm.preset.stop.impl.js.map +1 -0
- package/dist/cli/pm.preset.teardown.descriptor.d.ts +9 -0
- package/dist/cli/pm.preset.teardown.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.preset.teardown.descriptor.js +43 -0
- package/dist/cli/pm.preset.teardown.descriptor.js.map +1 -0
- package/dist/cli/pm.preset.teardown.impl.d.ts +12 -0
- package/dist/cli/pm.preset.teardown.impl.d.ts.map +1 -0
- package/dist/cli/pm.preset.teardown.impl.js +91 -0
- package/dist/cli/pm.preset.teardown.impl.js.map +1 -0
- package/dist/cli/pm.presets.descriptor.d.ts +9 -0
- package/dist/cli/pm.presets.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.presets.descriptor.js +24 -0
- package/dist/cli/pm.presets.descriptor.js.map +1 -0
- package/dist/cli/pm.presets.impl.d.ts +11 -0
- package/dist/cli/pm.presets.impl.d.ts.map +1 -0
- package/dist/cli/pm.presets.impl.js +13 -0
- package/dist/cli/pm.presets.impl.js.map +1 -0
- package/dist/cli/pm.register.descriptor.d.ts +11 -0
- package/dist/cli/pm.register.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.register.descriptor.js +32 -0
- package/dist/cli/pm.register.descriptor.js.map +1 -0
- package/dist/cli/pm.register.impl.d.ts +15 -0
- package/dist/cli/pm.register.impl.d.ts.map +1 -0
- package/dist/cli/pm.register.impl.js +81 -0
- package/dist/cli/pm.register.impl.js.map +1 -0
- package/dist/cli/pm.resource.apply.descriptor.d.ts +15 -0
- package/dist/cli/pm.resource.apply.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.resource.apply.descriptor.js +41 -0
- package/dist/cli/pm.resource.apply.descriptor.js.map +1 -0
- package/dist/cli/pm.resource.apply.impl.d.ts +14 -0
- package/dist/cli/pm.resource.apply.impl.d.ts.map +1 -0
- package/dist/cli/pm.resource.apply.impl.js +91 -0
- package/dist/cli/pm.resource.apply.impl.js.map +1 -0
- package/dist/cli/pm.resource.cli-group.descriptor.d.ts +9 -0
- package/dist/cli/pm.resource.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.resource.cli-group.descriptor.js +17 -0
- package/dist/cli/pm.resource.cli-group.descriptor.js.map +1 -0
- package/dist/cli/pm.resource.list.descriptor.d.ts +9 -0
- package/dist/cli/pm.resource.list.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.resource.list.descriptor.js +25 -0
- package/dist/cli/pm.resource.list.descriptor.js.map +1 -0
- package/dist/cli/pm.resource.list.impl.d.ts +11 -0
- package/dist/cli/pm.resource.list.impl.d.ts.map +1 -0
- package/dist/cli/pm.resource.list.impl.js +141 -0
- package/dist/cli/pm.resource.list.impl.js.map +1 -0
- package/dist/cli/pm.resource.recreate.descriptor.d.ts +4 -0
- package/dist/cli/pm.resource.recreate.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.resource.recreate.descriptor.js +29 -0
- package/dist/cli/pm.resource.recreate.descriptor.js.map +1 -0
- package/dist/cli/pm.resource.recreate.impl.d.ts +6 -0
- package/dist/cli/pm.resource.recreate.impl.d.ts.map +1 -0
- package/dist/cli/pm.resource.recreate.impl.js +123 -0
- package/dist/cli/pm.resource.recreate.impl.js.map +1 -0
- package/dist/cli/pm.resource.status.descriptor.d.ts +9 -0
- package/dist/cli/pm.resource.status.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.resource.status.descriptor.js +31 -0
- package/dist/cli/pm.resource.status.descriptor.js.map +1 -0
- package/dist/cli/pm.resource.status.impl.d.ts +11 -0
- package/dist/cli/pm.resource.status.impl.d.ts.map +1 -0
- package/dist/cli/pm.resource.status.impl.js +230 -0
- package/dist/cli/pm.resource.status.impl.js.map +1 -0
- package/dist/cli/pm.restart.descriptor.d.ts +9 -0
- package/dist/cli/pm.restart.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.restart.descriptor.js +40 -0
- package/dist/cli/pm.restart.descriptor.js.map +1 -0
- package/dist/cli/pm.restart.impl.d.ts +12 -0
- package/dist/cli/pm.restart.impl.d.ts.map +1 -0
- package/dist/cli/pm.restart.impl.js +109 -0
- package/dist/cli/pm.restart.impl.js.map +1 -0
- package/dist/cli/pm.show.descriptor.d.ts +9 -0
- package/dist/cli/pm.show.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.show.descriptor.js +30 -0
- package/dist/cli/pm.show.descriptor.js.map +1 -0
- package/dist/cli/pm.show.impl.d.ts +25 -0
- package/dist/cli/pm.show.impl.d.ts.map +1 -0
- package/dist/cli/pm.show.impl.js +175 -0
- package/dist/cli/pm.show.impl.js.map +1 -0
- package/dist/cli/pm.start-all.descriptor.d.ts +9 -0
- package/dist/cli/pm.start-all.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.start-all.descriptor.js +34 -0
- package/dist/cli/pm.start-all.descriptor.js.map +1 -0
- package/dist/cli/pm.start-all.impl.d.ts +12 -0
- package/dist/cli/pm.start-all.impl.d.ts.map +1 -0
- package/dist/cli/pm.start-all.impl.js +91 -0
- package/dist/cli/pm.start-all.impl.js.map +1 -0
- package/dist/cli/pm.start.descriptor.d.ts +9 -0
- package/dist/cli/pm.start.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.start.descriptor.js +40 -0
- package/dist/cli/pm.start.descriptor.js.map +1 -0
- package/dist/cli/pm.start.impl.d.ts +19 -0
- package/dist/cli/pm.start.impl.d.ts.map +1 -0
- package/dist/cli/pm.start.impl.js +170 -0
- package/dist/cli/pm.start.impl.js.map +1 -0
- package/dist/cli/pm.status.descriptor.d.ts +10 -0
- package/dist/cli/pm.status.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.status.descriptor.js +31 -0
- package/dist/cli/pm.status.descriptor.js.map +1 -0
- package/dist/cli/pm.status.impl.d.ts +96 -0
- package/dist/cli/pm.status.impl.d.ts.map +1 -0
- package/dist/cli/pm.status.impl.js +425 -0
- package/dist/cli/pm.status.impl.js.map +1 -0
- package/dist/cli/pm.stop-all.descriptor.d.ts +9 -0
- package/dist/cli/pm.stop-all.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.stop-all.descriptor.js +41 -0
- package/dist/cli/pm.stop-all.descriptor.js.map +1 -0
- package/dist/cli/pm.stop-all.impl.d.ts +14 -0
- package/dist/cli/pm.stop-all.impl.d.ts.map +1 -0
- package/dist/cli/pm.stop-all.impl.js +138 -0
- package/dist/cli/pm.stop-all.impl.js.map +1 -0
- package/dist/cli/pm.stop.descriptor.d.ts +9 -0
- package/dist/cli/pm.stop.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.stop.descriptor.js +40 -0
- package/dist/cli/pm.stop.descriptor.js.map +1 -0
- package/dist/cli/pm.stop.impl.d.ts +13 -0
- package/dist/cli/pm.stop.impl.d.ts.map +1 -0
- package/dist/cli/pm.stop.impl.js +120 -0
- package/dist/cli/pm.stop.impl.js.map +1 -0
- package/dist/cli/pm.unregister-all.descriptor.d.ts +9 -0
- package/dist/cli/pm.unregister-all.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.unregister-all.descriptor.js +28 -0
- package/dist/cli/pm.unregister-all.descriptor.js.map +1 -0
- package/dist/cli/pm.unregister-all.impl.d.ts +11 -0
- package/dist/cli/pm.unregister-all.impl.d.ts.map +1 -0
- package/dist/cli/pm.unregister-all.impl.js +106 -0
- package/dist/cli/pm.unregister-all.impl.js.map +1 -0
- package/dist/cli/pm.unregister.descriptor.d.ts +9 -0
- package/dist/cli/pm.unregister.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.unregister.descriptor.js +34 -0
- package/dist/cli/pm.unregister.descriptor.js.map +1 -0
- package/dist/cli/pm.unregister.impl.d.ts +11 -0
- package/dist/cli/pm.unregister.impl.d.ts.map +1 -0
- package/dist/cli/pm.unregister.impl.js +77 -0
- package/dist/cli/pm.unregister.impl.js.map +1 -0
- package/dist/cli/pm.validate.descriptor.d.ts +9 -0
- package/dist/cli/pm.validate.descriptor.d.ts.map +1 -0
- package/dist/cli/pm.validate.descriptor.js +24 -0
- package/dist/cli/pm.validate.descriptor.js.map +1 -0
- package/dist/cli/pm.validate.impl.d.ts +6 -0
- package/dist/cli/pm.validate.impl.d.ts.map +1 -0
- package/dist/cli/pm.validate.impl.js +235 -0
- package/dist/cli/pm.validate.impl.js.map +1 -0
- package/dist/cli/preset-execution-options.d.ts +8 -0
- package/dist/cli/preset-execution-options.d.ts.map +1 -0
- package/dist/cli/preset-execution-options.js +22 -0
- package/dist/cli/preset-execution-options.js.map +1 -0
- package/dist/cli/register-manifest.d.ts +23 -0
- package/dist/cli/register-manifest.d.ts.map +1 -0
- package/dist/cli/register-manifest.js +80 -0
- package/dist/cli/register-manifest.js.map +1 -0
- package/dist/cli/runtime.d.ts +3 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +134 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/table-columns.d.ts +22 -0
- package/dist/cli/table-columns.d.ts.map +1 -0
- package/dist/cli/table-columns.js +61 -0
- package/dist/cli/table-columns.js.map +1 -0
- package/dist/client-replies.d.ts +1188 -0
- package/dist/client-replies.d.ts.map +1 -0
- package/dist/client-replies.js +145 -0
- package/dist/client-replies.js.map +1 -0
- package/dist/client.d.ts +345 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1005 -0
- package/dist/client.js.map +1 -0
- package/dist/config/pm.config.config.descriptor.d.ts +10 -0
- package/dist/config/pm.config.config.descriptor.d.ts.map +1 -0
- package/dist/config/pm.config.config.descriptor.js +37 -0
- package/dist/config/pm.config.config.descriptor.js.map +1 -0
- package/dist/context.d.ts +121 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -0
- package/dist/daemon/command-handler.d.ts +74 -0
- package/dist/daemon/command-handler.d.ts.map +1 -0
- package/dist/daemon/command-handler.js +220 -0
- package/dist/daemon/command-handler.js.map +1 -0
- package/dist/daemon/command-ids.d.ts +10 -0
- package/dist/daemon/command-ids.d.ts.map +1 -0
- package/dist/daemon/command-ids.js +51 -0
- package/dist/daemon/command-ids.js.map +1 -0
- package/dist/daemon/command-implementations.d.ts +30 -0
- package/dist/daemon/command-implementations.d.ts.map +1 -0
- package/dist/daemon/command-implementations.js +340 -0
- package/dist/daemon/command-implementations.js.map +1 -0
- package/dist/daemon/command-payload.d.ts +803 -0
- package/dist/daemon/command-payload.d.ts.map +1 -0
- package/dist/daemon/command-payload.js +128 -0
- package/dist/daemon/command-payload.js.map +1 -0
- package/dist/daemon/commands.plugin.d.ts +6 -0
- package/dist/daemon/commands.plugin.d.ts.map +1 -0
- package/dist/daemon/commands.plugin.js +22 -0
- package/dist/daemon/commands.plugin.js.map +1 -0
- package/dist/daemon/config-watcher.d.ts +125 -0
- package/dist/daemon/config-watcher.d.ts.map +1 -0
- package/dist/daemon/config-watcher.js +541 -0
- package/dist/daemon/config-watcher.js.map +1 -0
- package/dist/daemon/daemon-module-context.d.ts +16 -0
- package/dist/daemon/daemon-module-context.d.ts.map +1 -0
- package/dist/daemon/daemon-module-context.js +25 -0
- package/dist/daemon/daemon-module-context.js.map +1 -0
- package/dist/daemon/declared-commands.d.ts +39 -0
- package/dist/daemon/declared-commands.d.ts.map +1 -0
- package/dist/daemon/declared-commands.js +200 -0
- package/dist/daemon/declared-commands.js.map +1 -0
- package/dist/daemon/executable-freshness-reconciler.d.ts +99 -0
- package/dist/daemon/executable-freshness-reconciler.d.ts.map +1 -0
- package/dist/daemon/executable-freshness-reconciler.js +396 -0
- package/dist/daemon/executable-freshness-reconciler.js.map +1 -0
- package/dist/daemon/fleet-attach-state.d.ts +22 -0
- package/dist/daemon/fleet-attach-state.d.ts.map +1 -0
- package/dist/daemon/fleet-attach-state.js +39 -0
- package/dist/daemon/fleet-attach-state.js.map +1 -0
- package/dist/daemon/health-monitor.d.ts +105 -0
- package/dist/daemon/health-monitor.d.ts.map +1 -0
- package/dist/daemon/health-monitor.js +453 -0
- package/dist/daemon/health-monitor.js.map +1 -0
- package/dist/daemon/liveness-checker.d.ts +49 -0
- package/dist/daemon/liveness-checker.d.ts.map +1 -0
- package/dist/daemon/liveness-checker.js +330 -0
- package/dist/daemon/liveness-checker.js.map +1 -0
- package/dist/daemon/orphan-scanner.d.ts +114 -0
- package/dist/daemon/orphan-scanner.d.ts.map +1 -0
- package/dist/daemon/orphan-scanner.js +684 -0
- package/dist/daemon/orphan-scanner.js.map +1 -0
- package/dist/daemon/resource-health-monitor.d.ts +65 -0
- package/dist/daemon/resource-health-monitor.d.ts.map +1 -0
- package/dist/daemon/resource-health-monitor.js +247 -0
- package/dist/daemon/resource-health-monitor.js.map +1 -0
- package/dist/daemon/role.context.impl.d.ts +13 -0
- package/dist/daemon/role.context.impl.d.ts.map +1 -0
- package/dist/daemon/role.context.impl.js +7 -0
- package/dist/daemon/role.context.impl.js.map +1 -0
- package/dist/daemon/role.d.ts +56 -0
- package/dist/daemon/role.d.ts.map +1 -0
- package/dist/daemon/role.js +18 -0
- package/dist/daemon/role.js.map +1 -0
- package/dist/daemon/rpc-result.d.ts +9 -0
- package/dist/daemon/rpc-result.d.ts.map +1 -0
- package/dist/daemon/rpc-result.js +28 -0
- package/dist/daemon/rpc-result.js.map +1 -0
- package/dist/daemon/stray-daemons.d.ts +52 -0
- package/dist/daemon/stray-daemons.d.ts.map +1 -0
- package/dist/daemon/stray-daemons.js +101 -0
- package/dist/daemon/stray-daemons.js.map +1 -0
- package/dist/daemon/supervised-commands.d.ts +3 -0
- package/dist/daemon/supervised-commands.d.ts.map +1 -0
- package/dist/daemon/supervised-commands.js +51 -0
- package/dist/daemon/supervised-commands.js.map +1 -0
- package/dist/daemon.d.ts +329 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +1654 -0
- package/dist/daemon.js.map +1 -0
- package/dist/definitions.d.ts +2 -0
- package/dist/definitions.d.ts.map +1 -0
- package/dist/definitions.js +2 -0
- package/dist/definitions.js.map +1 -0
- package/dist/dev/command.d.ts +39 -0
- package/dist/dev/command.d.ts.map +1 -0
- package/dist/dev/command.js +79 -0
- package/dist/dev/command.js.map +1 -0
- package/dist/dev/defaults.d.ts +34 -0
- package/dist/dev/defaults.d.ts.map +1 -0
- package/dist/dev/defaults.js +58 -0
- package/dist/dev/defaults.js.map +1 -0
- package/dist/dev/env.d.ts +31 -0
- package/dist/dev/env.d.ts.map +1 -0
- package/dist/dev/env.js +56 -0
- package/dist/dev/env.js.map +1 -0
- package/dist/dev/index.d.ts +26 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +28 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/dev/sveltekit.d.ts +41 -0
- package/dist/dev/sveltekit.d.ts.map +1 -0
- package/dist/dev/sveltekit.js +93 -0
- package/dist/dev/sveltekit.js.map +1 -0
- package/dist/dev/workspace-shape.d.ts +64 -0
- package/dist/dev/workspace-shape.d.ts.map +1 -0
- package/dist/dev/workspace-shape.js +19 -0
- package/dist/dev/workspace-shape.js.map +1 -0
- package/dist/docs/pm.daemon.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.daemon.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.daemon.docs.descriptor.js +48 -0
- package/dist/docs/pm.daemon.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.docs.descriptor.js +45 -0
- package/dist/docs/pm.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.preset.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.preset.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.preset.docs.descriptor.js +37 -0
- package/dist/docs/pm.preset.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.queues.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.queues.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.queues.docs.descriptor.js +157 -0
- package/dist/docs/pm.queues.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.resource.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.resource.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.resource.docs.descriptor.js +38 -0
- package/dist/docs/pm.resource.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.tasks.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.tasks.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.tasks.docs.descriptor.js +242 -0
- package/dist/docs/pm.tasks.docs.descriptor.js.map +1 -0
- package/dist/docs/pm.workers.docs.descriptor.d.ts +4 -0
- package/dist/docs/pm.workers.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/pm.workers.docs.descriptor.js +427 -0
- package/dist/docs/pm.workers.docs.descriptor.js.map +1 -0
- package/dist/errors.d.ts +262 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +479 -0
- package/dist/errors.js.map +1 -0
- package/dist/graph.d.ts +82 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +247 -0
- package/dist/graph.js.map +1 -0
- package/dist/helpers/failure.d.ts +10 -0
- package/dist/helpers/failure.d.ts.map +1 -0
- package/dist/helpers/failure.js +10 -0
- package/dist/helpers/failure.js.map +1 -0
- package/dist/helpers/launch-custody.d.ts +16 -0
- package/dist/helpers/launch-custody.d.ts.map +1 -0
- package/dist/helpers/launch-custody.js +117 -0
- package/dist/helpers/launch-custody.js.map +1 -0
- package/dist/helpers/launch-identity.d.ts +20 -0
- package/dist/helpers/launch-identity.d.ts.map +1 -0
- package/dist/helpers/launch-identity.js +70 -0
- package/dist/helpers/launch-identity.js.map +1 -0
- package/dist/helpers/managed-http-origin.d.ts +4 -0
- package/dist/helpers/managed-http-origin.d.ts.map +1 -0
- package/dist/helpers/managed-http-origin.js +9 -0
- package/dist/helpers/managed-http-origin.js.map +1 -0
- package/dist/helpers/managed-process-admission.d.ts +55 -0
- package/dist/helpers/managed-process-admission.d.ts.map +1 -0
- package/dist/helpers/managed-process-admission.js +102 -0
- package/dist/helpers/managed-process-admission.js.map +1 -0
- package/dist/helpers/managed-process-id.d.ts +13 -0
- package/dist/helpers/managed-process-id.d.ts.map +1 -0
- package/dist/helpers/managed-process-id.js +16 -0
- package/dist/helpers/managed-process-id.js.map +1 -0
- package/dist/helpers/node-path.d.ts +16 -0
- package/dist/helpers/node-path.d.ts.map +1 -0
- package/dist/helpers/node-path.js +67 -0
- package/dist/helpers/node-path.js.map +1 -0
- package/dist/helpers/output-redaction.d.ts +36 -0
- package/dist/helpers/output-redaction.d.ts.map +1 -0
- package/dist/helpers/output-redaction.js +120 -0
- package/dist/helpers/output-redaction.js.map +1 -0
- package/dist/helpers/process-credentials.d.ts +62 -0
- package/dist/helpers/process-credentials.d.ts.map +1 -0
- package/dist/helpers/process-credentials.js +107 -0
- package/dist/helpers/process-credentials.js.map +1 -0
- package/dist/helpers/process-env.d.ts +72 -0
- package/dist/helpers/process-env.d.ts.map +1 -0
- package/dist/helpers/process-env.js +265 -0
- package/dist/helpers/process-env.js.map +1 -0
- package/dist/helpers/process-watch.d.ts +7 -0
- package/dist/helpers/process-watch.d.ts.map +1 -0
- package/dist/helpers/process-watch.js +27 -0
- package/dist/helpers/process-watch.js.map +1 -0
- package/dist/helpers/rlimits.d.ts +10 -0
- package/dist/helpers/rlimits.d.ts.map +1 -0
- package/dist/helpers/rlimits.js +14 -0
- package/dist/helpers/rlimits.js.map +1 -0
- package/dist/helpers/runtime-files.d.ts +42 -0
- package/dist/helpers/runtime-files.d.ts.map +1 -0
- package/dist/helpers/runtime-files.js +155 -0
- package/dist/helpers/runtime-files.js.map +1 -0
- package/dist/helpers/worker-routing.d.ts +35 -0
- package/dist/helpers/worker-routing.d.ts.map +1 -0
- package/dist/helpers/worker-routing.js +70 -0
- package/dist/helpers/worker-routing.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/interface.d.ts +150 -0
- package/dist/interface.d.ts.map +1 -0
- package/dist/interface.js +6 -0
- package/dist/interface.js.map +1 -0
- package/dist/kinds/daemon-module.kind.d.ts +103 -0
- package/dist/kinds/daemon-module.kind.d.ts.map +1 -0
- package/dist/kinds/daemon-module.kind.js +38 -0
- package/dist/kinds/daemon-module.kind.js.map +1 -0
- package/dist/kinds/launch-preparation.kind.d.ts +24 -0
- package/dist/kinds/launch-preparation.kind.d.ts.map +1 -0
- package/dist/kinds/launch-preparation.kind.js +7 -0
- package/dist/kinds/launch-preparation.kind.js.map +1 -0
- package/dist/kinds/liveness-profile.kind.d.ts +33 -0
- package/dist/kinds/liveness-profile.kind.d.ts.map +1 -0
- package/dist/kinds/liveness-profile.kind.js +27 -0
- package/dist/kinds/liveness-profile.kind.js.map +1 -0
- package/dist/kinds/preset.kind.d.ts +59 -0
- package/dist/kinds/preset.kind.d.ts.map +1 -0
- package/dist/kinds/preset.kind.js +35 -0
- package/dist/kinds/preset.kind.js.map +1 -0
- package/dist/kinds/process-source.kind.d.ts +6 -0
- package/dist/kinds/process-source.kind.d.ts.map +1 -0
- package/dist/kinds/process-source.kind.js +24 -0
- package/dist/kinds/process-source.kind.js.map +1 -0
- package/dist/kinds/process.kind.d.ts +237 -0
- package/dist/kinds/process.kind.d.ts.map +1 -0
- package/dist/kinds/process.kind.js +36 -0
- package/dist/kinds/process.kind.js.map +1 -0
- package/dist/kinds/resource-provider.kind.d.ts +41 -0
- package/dist/kinds/resource-provider.kind.d.ts.map +1 -0
- package/dist/kinds/resource-provider.kind.js +56 -0
- package/dist/kinds/resource-provider.kind.js.map +1 -0
- package/dist/kinds/resource.kind.d.ts +73 -0
- package/dist/kinds/resource.kind.d.ts.map +1 -0
- package/dist/kinds/resource.kind.js +35 -0
- package/dist/kinds/resource.kind.js.map +1 -0
- package/dist/kinds/runtime-daemon-endpoint.d.ts +34 -0
- package/dist/kinds/runtime-daemon-endpoint.d.ts.map +1 -0
- package/dist/kinds/runtime-daemon-endpoint.js +83 -0
- package/dist/kinds/runtime-daemon-endpoint.js.map +1 -0
- package/dist/kinds/runtime-daemon-endpoint.kind.d.ts +144 -0
- package/dist/kinds/runtime-daemon-endpoint.kind.d.ts.map +1 -0
- package/dist/kinds/runtime-daemon-endpoint.kind.js +104 -0
- package/dist/kinds/runtime-daemon-endpoint.kind.js.map +1 -0
- package/dist/launch-preparation.d.ts +12 -0
- package/dist/launch-preparation.d.ts.map +1 -0
- package/dist/launch-preparation.js +42 -0
- package/dist/launch-preparation.js.map +1 -0
- package/dist/logging/pm-daemon.logger.descriptor.d.ts +7 -0
- package/dist/logging/pm-daemon.logger.descriptor.d.ts.map +1 -0
- package/dist/logging/pm-daemon.logger.descriptor.js +16 -0
- package/dist/logging/pm-daemon.logger.descriptor.js.map +1 -0
- package/dist/logging/pm-daemon.output.descriptor.d.ts +9 -0
- package/dist/logging/pm-daemon.output.descriptor.d.ts.map +1 -0
- package/dist/logging/pm-daemon.output.descriptor.js +22 -0
- package/dist/logging/pm-daemon.output.descriptor.js.map +1 -0
- package/dist/manager.d.ts +206 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +682 -0
- package/dist/manager.js.map +1 -0
- package/dist/managers/dependency-resolver.d.ts +85 -0
- package/dist/managers/dependency-resolver.d.ts.map +1 -0
- package/dist/managers/dependency-resolver.js +237 -0
- package/dist/managers/dependency-resolver.js.map +1 -0
- package/dist/managers/preset-executor.d.ts +138 -0
- package/dist/managers/preset-executor.d.ts.map +1 -0
- package/dist/managers/preset-executor.js +763 -0
- package/dist/managers/preset-executor.js.map +1 -0
- package/dist/managers/resource-manager.d.ts +142 -0
- package/dist/managers/resource-manager.d.ts.map +1 -0
- package/dist/managers/resource-manager.js +767 -0
- package/dist/managers/resource-manager.js.map +1 -0
- package/dist/migrations.generated.d.ts +14 -0
- package/dist/migrations.generated.d.ts.map +1 -0
- package/dist/migrations.generated.js +27 -0
- package/dist/migrations.generated.js.map +1 -0
- package/dist/pm.assets.runtime.d.ts +151 -0
- package/dist/pm.assets.runtime.d.ts.map +1 -0
- package/dist/pm.assets.runtime.js +30 -0
- package/dist/pm.assets.runtime.js.map +1 -0
- package/dist/pm.client.descriptor.d.ts +4 -0
- package/dist/pm.client.descriptor.d.ts.map +1 -0
- package/dist/pm.client.descriptor.js +8 -0
- package/dist/pm.client.descriptor.js.map +1 -0
- package/dist/pm.client.impl.consumer.d.ts +9 -0
- package/dist/pm.client.impl.consumer.d.ts.map +1 -0
- package/dist/pm.client.impl.consumer.js +13 -0
- package/dist/pm.client.impl.consumer.js.map +1 -0
- package/dist/pm.cloud.plugin.d.ts +29 -0
- package/dist/pm.cloud.plugin.d.ts.map +1 -0
- package/dist/pm.cloud.plugin.js +57 -0
- package/dist/pm.cloud.plugin.js.map +1 -0
- package/dist/pm.consumer.plugin.d.ts +3 -0
- package/dist/pm.consumer.plugin.d.ts.map +1 -0
- package/dist/pm.consumer.plugin.js +70 -0
- package/dist/pm.consumer.plugin.js.map +1 -0
- package/dist/pm.context.descriptor.d.ts +35 -0
- package/dist/pm.context.descriptor.d.ts.map +1 -0
- package/dist/pm.context.descriptor.js +12 -0
- package/dist/pm.context.descriptor.js.map +1 -0
- package/dist/pm.context.impl.consumer.d.ts +8 -0
- package/dist/pm.context.impl.consumer.d.ts.map +1 -0
- package/dist/pm.context.impl.consumer.js +6 -0
- package/dist/pm.context.impl.consumer.js.map +1 -0
- package/dist/pm.plugin.d.ts +6 -0
- package/dist/pm.plugin.d.ts.map +1 -0
- package/dist/pm.plugin.js +6 -0
- package/dist/pm.plugin.js.map +1 -0
- package/dist/presets/index.d.ts +5 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +5 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/preset/index.d.ts +2 -0
- package/dist/presets/preset/index.d.ts.map +1 -0
- package/dist/presets/preset/index.js +2 -0
- package/dist/presets/preset/index.js.map +1 -0
- package/dist/presets/preset/web-dev.d.ts +39 -0
- package/dist/presets/preset/web-dev.d.ts.map +1 -0
- package/dist/presets/preset/web-dev.js +69 -0
- package/dist/presets/preset/web-dev.js.map +1 -0
- package/dist/presets/process/index.d.ts +3 -0
- package/dist/presets/process/index.d.ts.map +1 -0
- package/dist/presets/process/index.js +3 -0
- package/dist/presets/process/index.js.map +1 -0
- package/dist/presets/process/sveltekit.d.ts +125 -0
- package/dist/presets/process/sveltekit.d.ts.map +1 -0
- package/dist/presets/process/sveltekit.js +52 -0
- package/dist/presets/process/sveltekit.js.map +1 -0
- package/dist/presets/process/web.d.ts +34 -0
- package/dist/presets/process/web.d.ts.map +1 -0
- package/dist/presets/process/web.js +52 -0
- package/dist/presets/process/web.js.map +1 -0
- package/dist/presets/resource/database.d.ts +39 -0
- package/dist/presets/resource/database.d.ts.map +1 -0
- package/dist/presets/resource/database.js +60 -0
- package/dist/presets/resource/database.js.map +1 -0
- package/dist/presets/resource/index.d.ts +2 -0
- package/dist/presets/resource/index.d.ts.map +1 -0
- package/dist/presets/resource/index.js +2 -0
- package/dist/presets/resource/index.js.map +1 -0
- package/dist/presets/types.d.ts +101 -0
- package/dist/presets/types.d.ts.map +1 -0
- package/dist/presets/types.js +53 -0
- package/dist/presets/types.js.map +1 -0
- package/dist/register-migrations.impl.consumer.d.ts +8 -0
- package/dist/register-migrations.impl.consumer.d.ts.map +1 -0
- package/dist/register-migrations.impl.consumer.js +145 -0
- package/dist/register-migrations.impl.consumer.js.map +1 -0
- package/dist/resources/index.d.ts +7 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +7 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/provider.d.ts +216 -0
- package/dist/resources/provider.d.ts.map +1 -0
- package/dist/resources/provider.js +54 -0
- package/dist/resources/provider.js.map +1 -0
- package/dist/resources/providers/builtin.assets.d.ts +8 -0
- package/dist/resources/providers/builtin.assets.d.ts.map +1 -0
- package/dist/resources/providers/builtin.assets.js +26 -0
- package/dist/resources/providers/builtin.assets.js.map +1 -0
- package/dist/resources/providers/index.d.ts +14 -0
- package/dist/resources/providers/index.d.ts.map +1 -0
- package/dist/resources/providers/index.js +14 -0
- package/dist/resources/providers/index.js.map +1 -0
- package/dist/resources/providers/local-mkcert.d.ts +31 -0
- package/dist/resources/providers/local-mkcert.d.ts.map +1 -0
- package/dist/resources/providers/local-mkcert.js +169 -0
- package/dist/resources/providers/local-mkcert.js.map +1 -0
- package/dist/resources/providers/shell-setup.d.ts +17 -0
- package/dist/resources/providers/shell-setup.d.ts.map +1 -0
- package/dist/resources/providers/shell-setup.js +41 -0
- package/dist/resources/providers/shell-setup.js.map +1 -0
- package/dist/resources/providers/tool-env.d.ts +63 -0
- package/dist/resources/providers/tool-env.d.ts.map +1 -0
- package/dist/resources/providers/tool-env.js +99 -0
- package/dist/resources/providers/tool-env.js.map +1 -0
- package/dist/resources/resource-state-summary.d.ts +3 -0
- package/dist/resources/resource-state-summary.d.ts.map +1 -0
- package/dist/resources/resource-state-summary.js +82 -0
- package/dist/resources/resource-state-summary.js.map +1 -0
- package/dist/resources/status-options.d.ts +4 -0
- package/dist/resources/status-options.d.ts.map +1 -0
- package/dist/resources/status-options.js +6 -0
- package/dist/resources/status-options.js.map +1 -0
- package/dist/runnable/executor.d.ts +11 -0
- package/dist/runnable/executor.d.ts.map +1 -0
- package/dist/runnable/executor.js +41 -0
- package/dist/runnable/executor.js.map +1 -0
- package/dist/runnable/plugin.d.ts +3 -0
- package/dist/runnable/plugin.d.ts.map +1 -0
- package/dist/runnable/plugin.js +12 -0
- package/dist/runnable/plugin.js.map +1 -0
- package/dist/runnable/schemas.d.ts +28 -0
- package/dist/runnable/schemas.d.ts.map +1 -0
- package/dist/runnable/schemas.js +10 -0
- package/dist/runnable/schemas.js.map +1 -0
- package/dist/runtime-daemon-supervisor.descriptor.d.ts +16 -0
- package/dist/runtime-daemon-supervisor.descriptor.d.ts.map +1 -0
- package/dist/runtime-daemon-supervisor.descriptor.js +17 -0
- package/dist/runtime-daemon-supervisor.descriptor.js.map +1 -0
- package/dist/runtime-daemon-supervisor.impl.consumer.d.ts +22 -0
- package/dist/runtime-daemon-supervisor.impl.consumer.d.ts.map +1 -0
- package/dist/runtime-daemon-supervisor.impl.consumer.js +66 -0
- package/dist/runtime-daemon-supervisor.impl.consumer.js.map +1 -0
- package/dist/schemas/action-error.d.ts +8 -0
- package/dist/schemas/action-error.d.ts.map +1 -0
- package/dist/schemas/action-error.js +8 -0
- package/dist/schemas/action-error.js.map +1 -0
- package/dist/schemas/admission.d.ts +36 -0
- package/dist/schemas/admission.d.ts.map +1 -0
- package/dist/schemas/admission.js +22 -0
- package/dist/schemas/admission.js.map +1 -0
- package/dist/schemas/builder.d.ts +402 -0
- package/dist/schemas/builder.d.ts.map +1 -0
- package/dist/schemas/builder.js +410 -0
- package/dist/schemas/builder.js.map +1 -0
- package/dist/schemas/client.d.ts +18 -0
- package/dist/schemas/client.d.ts.map +1 -0
- package/dist/schemas/client.js +2 -0
- package/dist/schemas/client.js.map +1 -0
- package/dist/schemas/commands.d.ts +315 -0
- package/dist/schemas/commands.d.ts.map +1 -0
- package/dist/schemas/commands.js +268 -0
- package/dist/schemas/commands.js.map +1 -0
- package/dist/schemas/common.d.ts +35 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +43 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/daemon-command.d.ts +61 -0
- package/dist/schemas/daemon-command.d.ts.map +1 -0
- package/dist/schemas/daemon-command.js +2 -0
- package/dist/schemas/daemon-command.js.map +1 -0
- package/dist/schemas/daemon-host.d.ts +70 -0
- package/dist/schemas/daemon-host.d.ts.map +1 -0
- package/dist/schemas/daemon-host.js +2 -0
- package/dist/schemas/daemon-host.js.map +1 -0
- package/dist/schemas/daemon-launch.d.ts +43 -0
- package/dist/schemas/daemon-launch.d.ts.map +1 -0
- package/dist/schemas/daemon-launch.js +3 -0
- package/dist/schemas/daemon-launch.js.map +1 -0
- package/dist/schemas/daemon.d.ts +98 -0
- package/dist/schemas/daemon.d.ts.map +1 -0
- package/dist/schemas/daemon.js +88 -0
- package/dist/schemas/daemon.js.map +1 -0
- package/dist/schemas/dev.d.ts +169 -0
- package/dist/schemas/dev.d.ts.map +1 -0
- package/dist/schemas/dev.js +8 -0
- package/dist/schemas/dev.js.map +1 -0
- package/dist/schemas/executable-freshness.d.ts +88 -0
- package/dist/schemas/executable-freshness.d.ts.map +1 -0
- package/dist/schemas/executable-freshness.js +2 -0
- package/dist/schemas/executable-freshness.js.map +1 -0
- package/dist/schemas/forward-config.d.ts +11 -0
- package/dist/schemas/forward-config.d.ts.map +1 -0
- package/dist/schemas/forward-config.js +15 -0
- package/dist/schemas/forward-config.js.map +1 -0
- package/dist/schemas/graph.d.ts +444 -0
- package/dist/schemas/graph.d.ts.map +1 -0
- package/dist/schemas/graph.js +59 -0
- package/dist/schemas/graph.js.map +1 -0
- package/dist/schemas/health.d.ts +43 -0
- package/dist/schemas/health.d.ts.map +1 -0
- package/dist/schemas/health.js +6 -0
- package/dist/schemas/health.js.map +1 -0
- package/dist/schemas/launch-preparation.d.ts +106 -0
- package/dist/schemas/launch-preparation.d.ts.map +1 -0
- package/dist/schemas/launch-preparation.js +50 -0
- package/dist/schemas/launch-preparation.js.map +1 -0
- package/dist/schemas/liveness-profile.d.ts +108 -0
- package/dist/schemas/liveness-profile.d.ts.map +1 -0
- package/dist/schemas/liveness-profile.js +33 -0
- package/dist/schemas/liveness-profile.js.map +1 -0
- package/dist/schemas/liveness.d.ts +37 -0
- package/dist/schemas/liveness.d.ts.map +1 -0
- package/dist/schemas/liveness.js +41 -0
- package/dist/schemas/liveness.js.map +1 -0
- package/dist/schemas/manager.d.ts +46 -0
- package/dist/schemas/manager.d.ts.map +1 -0
- package/dist/schemas/manager.js +5 -0
- package/dist/schemas/manager.js.map +1 -0
- package/dist/schemas/port-forward.d.ts +47 -0
- package/dist/schemas/port-forward.d.ts.map +1 -0
- package/dist/schemas/port-forward.js +27 -0
- package/dist/schemas/port-forward.js.map +1 -0
- package/dist/schemas/process-source.d.ts +354 -0
- package/dist/schemas/process-source.d.ts.map +1 -0
- package/dist/schemas/process-source.js +19 -0
- package/dist/schemas/process-source.js.map +1 -0
- package/dist/schemas/process-tree.d.ts +12 -0
- package/dist/schemas/process-tree.d.ts.map +1 -0
- package/dist/schemas/process-tree.js +2 -0
- package/dist/schemas/process-tree.js.map +1 -0
- package/dist/schemas/process.d.ts +944 -0
- package/dist/schemas/process.d.ts.map +1 -0
- package/dist/schemas/process.js +429 -0
- package/dist/schemas/process.js.map +1 -0
- package/dist/schemas/resource.d.ts +223 -0
- package/dist/schemas/resource.d.ts.map +1 -0
- package/dist/schemas/resource.js +92 -0
- package/dist/schemas/resource.js.map +1 -0
- package/dist/schemas/store.d.ts +97 -0
- package/dist/schemas/store.d.ts.map +1 -0
- package/dist/schemas/store.js +2 -0
- package/dist/schemas/store.js.map +1 -0
- package/dist/schemas/task-supervision.d.ts +16 -0
- package/dist/schemas/task-supervision.d.ts.map +1 -0
- package/dist/schemas/task-supervision.js +10 -0
- package/dist/schemas/task-supervision.js.map +1 -0
- package/dist/schemas/tui-state.d.ts +777 -0
- package/dist/schemas/tui-state.d.ts.map +1 -0
- package/dist/schemas/tui-state.js +119 -0
- package/dist/schemas/tui-state.js.map +1 -0
- package/dist/schemas/worker-manager.d.ts +19 -0
- package/dist/schemas/worker-manager.d.ts.map +1 -0
- package/dist/schemas/worker-manager.js +2 -0
- package/dist/schemas/worker-manager.js.map +1 -0
- package/dist/services/cleanup.d.ts +78 -0
- package/dist/services/cleanup.d.ts.map +1 -0
- package/dist/services/cleanup.js +329 -0
- package/dist/services/cleanup.js.map +1 -0
- package/dist/services/health.d.ts +81 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +435 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/index.d.ts +11 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/lifecycle.d.ts +238 -0
- package/dist/services/lifecycle.d.ts.map +1 -0
- package/dist/services/lifecycle.js +1391 -0
- package/dist/services/lifecycle.js.map +1 -0
- package/dist/services/liveness-state.d.ts +95 -0
- package/dist/services/liveness-state.d.ts.map +1 -0
- package/dist/services/liveness-state.js +239 -0
- package/dist/services/liveness-state.js.map +1 -0
- package/dist/services/orphans.d.ts +72 -0
- package/dist/services/orphans.d.ts.map +1 -0
- package/dist/services/orphans.js +185 -0
- package/dist/services/orphans.js.map +1 -0
- package/dist/services/process-command.d.ts +25 -0
- package/dist/services/process-command.d.ts.map +1 -0
- package/dist/services/process-command.js +36 -0
- package/dist/services/process-command.js.map +1 -0
- package/dist/services/process-log-archive.d.ts +62 -0
- package/dist/services/process-log-archive.d.ts.map +1 -0
- package/dist/services/process-log-archive.js +150 -0
- package/dist/services/process-log-archive.js.map +1 -0
- package/dist/services/run-log-frames.d.ts +26 -0
- package/dist/services/run-log-frames.d.ts.map +1 -0
- package/dist/services/run-log-frames.js +45 -0
- package/dist/services/run-log-frames.js.map +1 -0
- package/dist/services/startup-warmup.d.ts +23 -0
- package/dist/services/startup-warmup.d.ts.map +1 -0
- package/dist/services/startup-warmup.js +21 -0
- package/dist/services/startup-warmup.js.map +1 -0
- package/dist/services/state-wait.d.ts +28 -0
- package/dist/services/state-wait.d.ts.map +1 -0
- package/dist/services/state-wait.js +57 -0
- package/dist/services/state-wait.js.map +1 -0
- package/dist/services/supervision-policy.d.ts +40 -0
- package/dist/services/supervision-policy.d.ts.map +1 -0
- package/dist/services/supervision-policy.js +48 -0
- package/dist/services/supervision-policy.js.map +1 -0
- package/dist/services/task-supervision.d.ts +14 -0
- package/dist/services/task-supervision.d.ts.map +1 -0
- package/dist/services/task-supervision.js +112 -0
- package/dist/services/task-supervision.js.map +1 -0
- package/dist/services/types/index.d.ts +74 -0
- package/dist/services/types/index.d.ts.map +1 -0
- package/dist/services/types/index.js +11 -0
- package/dist/services/types/index.js.map +1 -0
- package/dist/services/workers.d.ts +75 -0
- package/dist/services/workers.d.ts.map +1 -0
- package/dist/services/workers.js +212 -0
- package/dist/services/workers.js.map +1 -0
- package/dist/storage/workspaces.descriptor.d.ts +12 -0
- package/dist/storage/workspaces.descriptor.d.ts.map +1 -0
- package/dist/storage/workspaces.descriptor.js +33 -0
- package/dist/storage/workspaces.descriptor.js.map +1 -0
- package/dist/store/process-admission.d.ts +11 -0
- package/dist/store/process-admission.d.ts.map +1 -0
- package/dist/store/process-admission.js +46 -0
- package/dist/store/process-admission.js.map +1 -0
- package/dist/store/process-config.impl.consumer.d.ts +22 -0
- package/dist/store/process-config.impl.consumer.d.ts.map +1 -0
- package/dist/store/process-config.impl.consumer.js +84 -0
- package/dist/store/process-config.impl.consumer.js.map +1 -0
- package/dist/store/process-state.impl.consumer.d.ts +25 -0
- package/dist/store/process-state.impl.consumer.d.ts.map +1 -0
- package/dist/store/process-state.impl.consumer.js +140 -0
- package/dist/store/process-state.impl.consumer.js.map +1 -0
- package/dist/store/resource-state.impl.consumer.d.ts +9 -0
- package/dist/store/resource-state.impl.consumer.d.ts.map +1 -0
- package/dist/store/resource-state.impl.consumer.js +48 -0
- package/dist/store/resource-state.impl.consumer.js.map +1 -0
- package/dist/store.impl.consumer.d.ts +121 -0
- package/dist/store.impl.consumer.d.ts.map +1 -0
- package/dist/store.impl.consumer.js +436 -0
- package/dist/store.impl.consumer.js.map +1 -0
- package/dist/surface.d.ts +93 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +153 -0
- package/dist/surface.js.map +1 -0
- package/dist/svelte/components/PMOverview.svelte +527 -0
- package/dist/svelte/components/PMOverview.svelte.d.ts +12 -0
- package/dist/svelte/components/PMOverview.svelte.d.ts.map +1 -0
- package/dist/svelte/index.d.ts +4 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +2 -0
- package/dist/svelte/runtime.d.ts +33 -0
- package/dist/svelte/runtime.d.ts.map +1 -0
- package/dist/svelte/runtime.js +148 -0
- package/dist/svelte/styles.css +2 -0
- package/dist/tasks/completion.d.ts +6 -0
- package/dist/tasks/completion.d.ts.map +1 -0
- package/dist/tasks/completion.js +105 -0
- package/dist/tasks/completion.js.map +1 -0
- package/dist/tasks/index.d.ts +11 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +11 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/launch.d.ts +196 -0
- package/dist/tasks/launch.d.ts.map +1 -0
- package/dist/tasks/launch.js +10 -0
- package/dist/tasks/launch.js.map +1 -0
- package/dist/tasks/run-task.d.ts +11 -0
- package/dist/tasks/run-task.d.ts.map +1 -0
- package/dist/tasks/run-task.js +144 -0
- package/dist/tasks/run-task.js.map +1 -0
- package/dist/tasks/schemas.d.ts +83 -0
- package/dist/tasks/schemas.d.ts.map +1 -0
- package/dist/tasks/schemas.js +67 -0
- package/dist/tasks/schemas.js.map +1 -0
- package/dist/testing/daemon.d.ts +64 -0
- package/dist/testing/daemon.d.ts.map +1 -0
- package/dist/testing/daemon.js +125 -0
- package/dist/testing/daemon.js.map +1 -0
- package/dist/tui/components/DaemonHealthCard.d.ts +22 -0
- package/dist/tui/components/DaemonHealthCard.d.ts.map +1 -0
- package/dist/tui/components/DaemonHealthCard.js +30 -0
- package/dist/tui/components/DaemonHealthCard.js.map +1 -0
- package/dist/tui/components/ErrorDetailsPanel.d.ts +16 -0
- package/dist/tui/components/ErrorDetailsPanel.d.ts.map +1 -0
- package/dist/tui/components/ErrorDetailsPanel.js +22 -0
- package/dist/tui/components/ErrorDetailsPanel.js.map +1 -0
- package/dist/tui/components/FilterBar.d.ts +21 -0
- package/dist/tui/components/FilterBar.d.ts.map +1 -0
- package/dist/tui/components/FilterBar.js +31 -0
- package/dist/tui/components/FilterBar.js.map +1 -0
- package/dist/tui/components/StatsBar.d.ts +17 -0
- package/dist/tui/components/StatsBar.d.ts.map +1 -0
- package/dist/tui/components/StatsBar.js +28 -0
- package/dist/tui/components/StatsBar.js.map +1 -0
- package/dist/tui/components/index.d.ts +5 -0
- package/dist/tui/components/index.d.ts.map +1 -0
- package/dist/tui/components/index.js +5 -0
- package/dist/tui/components/index.js.map +1 -0
- package/dist/tui/index.d.ts +7 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +7 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/pm-dashboard.descriptor.d.ts +11 -0
- package/dist/tui/pm-dashboard.descriptor.d.ts.map +1 -0
- package/dist/tui/pm-dashboard.descriptor.js +26 -0
- package/dist/tui/pm-dashboard.descriptor.js.map +1 -0
- package/dist/tui/pm-dashboard.impl.consumer.d.ts +19 -0
- package/dist/tui/pm-dashboard.impl.consumer.d.ts.map +1 -0
- package/dist/tui/pm-dashboard.impl.consumer.js +839 -0
- package/dist/tui/pm-dashboard.impl.consumer.js.map +1 -0
- package/dist/tui/pm-open.descriptor.d.ts +10 -0
- package/dist/tui/pm-open.descriptor.d.ts.map +1 -0
- package/dist/tui/pm-open.descriptor.js +21 -0
- package/dist/tui/pm-open.descriptor.js.map +1 -0
- package/dist/tui/pm-open.impl.consumer.d.ts +9 -0
- package/dist/tui/pm-open.impl.consumer.d.ts.map +1 -0
- package/dist/tui/pm-open.impl.consumer.js +13 -0
- package/dist/tui/pm-open.impl.consumer.js.map +1 -0
- package/dist/tui/pm-processes.descriptor.d.ts +12 -0
- package/dist/tui/pm-processes.descriptor.d.ts.map +1 -0
- package/dist/tui/pm-processes.descriptor.js +30 -0
- package/dist/tui/pm-processes.descriptor.js.map +1 -0
- package/dist/tui/pm-processes.impl.consumer.d.ts +14 -0
- package/dist/tui/pm-processes.impl.consumer.d.ts.map +1 -0
- package/dist/tui/pm-processes.impl.consumer.js +214 -0
- package/dist/tui/pm-processes.impl.consumer.js.map +1 -0
- package/dist/tui/pm-state-keys.d.ts +316 -0
- package/dist/tui/pm-state-keys.d.ts.map +1 -0
- package/dist/tui/pm-state-keys.js +10 -0
- package/dist/tui/pm-state-keys.js.map +1 -0
- package/dist/tui/pm-status.descriptor.d.ts +11 -0
- package/dist/tui/pm-status.descriptor.d.ts.map +1 -0
- package/dist/tui/pm-status.descriptor.js +29 -0
- package/dist/tui/pm-status.descriptor.js.map +1 -0
- package/dist/tui/pm-status.impl.consumer.d.ts +11 -0
- package/dist/tui/pm-status.impl.consumer.d.ts.map +1 -0
- package/dist/tui/pm-status.impl.consumer.js +75 -0
- package/dist/tui/pm-status.impl.consumer.js.map +1 -0
- package/dist/tui/pm-tui.plugin.d.ts +13 -0
- package/dist/tui/pm-tui.plugin.d.ts.map +1 -0
- package/dist/tui/pm-tui.plugin.js +34 -0
- package/dist/tui/pm-tui.plugin.js.map +1 -0
- package/dist/utils/attempt.d.ts +31 -0
- package/dist/utils/attempt.d.ts.map +1 -0
- package/dist/utils/attempt.js +43 -0
- package/dist/utils/attempt.js.map +1 -0
- package/dist/utils/bounded-wait.d.ts +31 -0
- package/dist/utils/bounded-wait.d.ts.map +1 -0
- package/dist/utils/bounded-wait.js +35 -0
- package/dist/utils/bounded-wait.js.map +1 -0
- package/dist/utils/command-exists.d.ts +5 -0
- package/dist/utils/command-exists.d.ts.map +1 -0
- package/dist/utils/command-exists.js +8 -0
- package/dist/utils/command-exists.js.map +1 -0
- package/dist/utils/daemon-launch-lock.d.ts +143 -0
- package/dist/utils/daemon-launch-lock.d.ts.map +1 -0
- package/dist/utils/daemon-launch-lock.js +420 -0
- package/dist/utils/daemon-launch-lock.js.map +1 -0
- package/dist/utils/daemon-launch-recovery.d.ts +82 -0
- package/dist/utils/daemon-launch-recovery.d.ts.map +1 -0
- package/dist/utils/daemon-launch-recovery.js +173 -0
- package/dist/utils/daemon-launch-recovery.js.map +1 -0
- package/dist/utils/daemon-log-follower.d.ts +41 -0
- package/dist/utils/daemon-log-follower.d.ts.map +1 -0
- package/dist/utils/daemon-log-follower.js +124 -0
- package/dist/utils/daemon-log-follower.js.map +1 -0
- package/dist/utils/daemon-pid.d.ts +42 -0
- package/dist/utils/daemon-pid.d.ts.map +1 -0
- package/dist/utils/daemon-pid.js +80 -0
- package/dist/utils/daemon-pid.js.map +1 -0
- package/dist/utils/daemon-reachability.d.ts +87 -0
- package/dist/utils/daemon-reachability.d.ts.map +1 -0
- package/dist/utils/daemon-reachability.js +131 -0
- package/dist/utils/daemon-reachability.js.map +1 -0
- package/dist/utils/daemon-stdio-timestamps.d.ts +24 -0
- package/dist/utils/daemon-stdio-timestamps.d.ts.map +1 -0
- package/dist/utils/daemon-stdio-timestamps.js +59 -0
- package/dist/utils/daemon-stdio-timestamps.js.map +1 -0
- package/dist/utils/daemon-stop.d.ts +66 -0
- package/dist/utils/daemon-stop.d.ts.map +1 -0
- package/dist/utils/daemon-stop.js +100 -0
- package/dist/utils/daemon-stop.js.map +1 -0
- package/dist/utils/errno-failure.d.ts +16 -0
- package/dist/utils/errno-failure.d.ts.map +1 -0
- package/dist/utils/errno-failure.js +15 -0
- package/dist/utils/errno-failure.js.map +1 -0
- package/dist/utils/exec.d.ts +27 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +36 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/liveness.d.ts +100 -0
- package/dist/utils/liveness.d.ts.map +1 -0
- package/dist/utils/liveness.js +225 -0
- package/dist/utils/liveness.js.map +1 -0
- package/dist/utils/logging.d.ts +60 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +169 -0
- package/dist/utils/logging.js.map +1 -0
- package/dist/utils/path-under.d.ts +15 -0
- package/dist/utils/path-under.d.ts.map +1 -0
- package/dist/utils/path-under.js +16 -0
- package/dist/utils/path-under.js.map +1 -0
- package/dist/utils/port-ownership.d.ts +160 -0
- package/dist/utils/port-ownership.d.ts.map +1 -0
- package/dist/utils/port-ownership.js +176 -0
- package/dist/utils/port-ownership.js.map +1 -0
- package/dist/utils/ports.d.ts +43 -0
- package/dist/utils/ports.d.ts.map +1 -0
- package/dist/utils/ports.js +200 -0
- package/dist/utils/ports.js.map +1 -0
- package/dist/utils/process-tree.d.ts +33 -0
- package/dist/utils/process-tree.d.ts.map +1 -0
- package/dist/utils/process-tree.js +197 -0
- package/dist/utils/process-tree.js.map +1 -0
- package/dist/utils/semaphore.d.ts +16 -0
- package/dist/utils/semaphore.d.ts.map +1 -0
- package/dist/utils/semaphore.js +30 -0
- package/dist/utils/semaphore.js.map +1 -0
- package/dist/utils/socket-inode.impl.consumer.d.ts +26 -0
- package/dist/utils/socket-inode.impl.consumer.d.ts.map +1 -0
- package/dist/utils/socket-inode.impl.consumer.js +30 -0
- package/dist/utils/socket-inode.impl.consumer.js.map +1 -0
- package/dist/utils/socket-paths.d.ts +121 -0
- package/dist/utils/socket-paths.d.ts.map +1 -0
- package/dist/utils/socket-paths.js +167 -0
- package/dist/utils/socket-paths.js.map +1 -0
- package/dist/utils/socket.d.ts +65 -0
- package/dist/utils/socket.d.ts.map +1 -0
- package/dist/utils/socket.js +87 -0
- package/dist/utils/socket.js.map +1 -0
- package/dist/utils/version.d.ts +40 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +65 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/utils/vibes-home.d.ts +34 -0
- package/dist/utils/vibes-home.d.ts.map +1 -0
- package/dist/utils/vibes-home.js +27 -0
- package/dist/utils/vibes-home.js.map +1 -0
- package/dist/workspace-runtime.d.ts +38 -0
- package/dist/workspace-runtime.d.ts.map +1 -0
- package/dist/workspace-runtime.js +176 -0
- package/dist/workspace-runtime.js.map +1 -0
- package/package.json +465 -4
|
@@ -0,0 +1,684 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orphan Scanner
|
|
3
|
+
* Detects and cleans up orphaned processes and sockets from previous daemon sessions
|
|
4
|
+
*/
|
|
5
|
+
import { attempt } from "../utils/attempt.js";
|
|
6
|
+
import { processExitOf } from "../schemas/process.js";
|
|
7
|
+
import { checkProcessLiveness } from "../utils/liveness.js";
|
|
8
|
+
import { killProcessTree, verifyProcessOwnership, getProcessCommand, isProcessRunning } from "../utils/process-tree.js";
|
|
9
|
+
import { findProcessOnPort, extractMonitoredPorts, matchesCommandSignature } from "../utils/ports.js";
|
|
10
|
+
import { canonicalizePathOn, formatForeignHolderRefusal, provePortOwnership } from "../utils/port-ownership.js";
|
|
11
|
+
import { valueFreeFailure } from '@vibesdotdev/kernel';
|
|
12
|
+
import { getPMDaemonLogger } from "../utils/logging.js";
|
|
13
|
+
import { pmFileSystem } from "../helpers/runtime-files.js";
|
|
14
|
+
/**
|
|
15
|
+
* Scans for and cleans up orphaned processes and sockets
|
|
16
|
+
* Coordinates with the startup-time orphan killer in services/orphans.ts
|
|
17
|
+
*/
|
|
18
|
+
export class OrphanScanner {
|
|
19
|
+
deps;
|
|
20
|
+
config;
|
|
21
|
+
daemonStartTime;
|
|
22
|
+
observedProcesses = new Map();
|
|
23
|
+
// CRITICAL FIX (Issue 3.4): Port scan result cache with TTL
|
|
24
|
+
// Avoids redundant lsof calls for the same port within short time windows
|
|
25
|
+
portScanCache = new Map();
|
|
26
|
+
PORT_SCAN_CACHE_TTL_MS = 5000; // 5 second TTL
|
|
27
|
+
/** The daemon runtime's Logging, read per entry so it follows hot-reload generations (C083a). */
|
|
28
|
+
get logger() {
|
|
29
|
+
return getPMDaemonLogger(this.deps.getRuntime(), 'global').child('orphans');
|
|
30
|
+
}
|
|
31
|
+
constructor(deps, config) {
|
|
32
|
+
this.deps = deps;
|
|
33
|
+
this.config = {
|
|
34
|
+
gracePeriodMs: config?.gracePeriodMs ?? 30000,
|
|
35
|
+
warmupPeriodMs: config?.warmupPeriodMs ?? 60000,
|
|
36
|
+
enableAdoption: config?.enableAdoption ?? true
|
|
37
|
+
};
|
|
38
|
+
this.daemonStartTime = new Date();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Update the daemon start time (call when daemon restarts)
|
|
42
|
+
*/
|
|
43
|
+
setDaemonStartTime(time) {
|
|
44
|
+
this.daemonStartTime = time;
|
|
45
|
+
this.observedProcesses.clear();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Update available configs (for command signature matching)
|
|
49
|
+
*/
|
|
50
|
+
setConfigs(configs) {
|
|
51
|
+
this.deps.configs = configs;
|
|
52
|
+
}
|
|
53
|
+
sameObservation(current, observed) {
|
|
54
|
+
return current.status === observed.status && current.pid === observed.pid &&
|
|
55
|
+
current.startedAt?.getTime() === observed.startedAt?.getTime();
|
|
56
|
+
}
|
|
57
|
+
async ownsObservation(state) {
|
|
58
|
+
const current = await this.deps.store.get(state.id);
|
|
59
|
+
if (!current || !this.sameObservation(current, state))
|
|
60
|
+
return false;
|
|
61
|
+
const generation = state.startedAt?.getTime();
|
|
62
|
+
return !(generation !== undefined && processExitOf(state) && (await this.deps.store.taskObligations(state.id)).some(entry => entry.startedAt === generation));
|
|
63
|
+
}
|
|
64
|
+
/** Recheck owed evidence under the existing admission, after external probes settle. */
|
|
65
|
+
updateObservation(state, updates) {
|
|
66
|
+
return this.deps.store.withProcessAdmission(state.id, async () => {
|
|
67
|
+
if (!(await this.ownsObservation(state)))
|
|
68
|
+
return false;
|
|
69
|
+
return this.deps.store.updateWhen(state.id, updates, current => this.sameObservation(current, state));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Scan for and cleanup orphaned sockets from previous daemon sessions
|
|
74
|
+
* Uses unified liveness checking for consistent state detection
|
|
75
|
+
* This runs once at daemon startup to recover from crashes
|
|
76
|
+
*/
|
|
77
|
+
async scanForOrphanedSockets() {
|
|
78
|
+
this.logger.info('scanning for orphaned sockets');
|
|
79
|
+
const states = await this.deps.store.getAll();
|
|
80
|
+
let orphanCount = 0;
|
|
81
|
+
for (const state of states) {
|
|
82
|
+
// Only check processes that claim to be running
|
|
83
|
+
if (state.status !== 'running')
|
|
84
|
+
continue;
|
|
85
|
+
const reconciled = await attempt(() => this.reconcileRunningState(state));
|
|
86
|
+
if (!reconciled.ok) {
|
|
87
|
+
this.logger.error('failed to check liveness for orphan scan', {
|
|
88
|
+
processId: state.id,
|
|
89
|
+
failure: valueFreeFailure(reconciled.failure)
|
|
90
|
+
});
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
orphanCount += reconciled.value;
|
|
94
|
+
}
|
|
95
|
+
if (orphanCount > 0) {
|
|
96
|
+
this.logger.info('cleaned orphaned sockets', { count: orphanCount });
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.logger.debug('no orphaned sockets found');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Reconcile one state the store calls running with its liveness. Returns 1
|
|
104
|
+
* when it cleaned that process's orphaned socket, else 0.
|
|
105
|
+
*/
|
|
106
|
+
async reconcileRunningState(state) {
|
|
107
|
+
let cleaned = 0;
|
|
108
|
+
// Use unified liveness checker to determine actual state
|
|
109
|
+
const livenessResult = await checkProcessLiveness(this.deps.getRuntime(), state);
|
|
110
|
+
if (!(await this.ownsObservation(state)))
|
|
111
|
+
return 0;
|
|
112
|
+
if (!livenessResult.alive) {
|
|
113
|
+
this.logger.warn('process marked running but liveness failed', {
|
|
114
|
+
processId: state.id,
|
|
115
|
+
reason: livenessResult.details.reason
|
|
116
|
+
});
|
|
117
|
+
// A connect() failure alone can be a false negative: the
|
|
118
|
+
// BOTH_REQUIRED strategy fails as soon as the socket half is
|
|
119
|
+
// unreachable, even when the pid (e.g. an orphaned runtime
|
|
120
|
+
// daemon from a previous PM generation) is still running.
|
|
121
|
+
// `checkProcessLiveness` already probed the pid directly
|
|
122
|
+
// (`isPIDAlive`, the same primitive `daemon.ts` reconcile
|
|
123
|
+
// uses) — reuse that verdict as the single ownership decision
|
|
124
|
+
// instead of lsof-ing the socket for a current holder. This
|
|
125
|
+
// keeps both call sites in agreement and drops a dependency
|
|
126
|
+
// on an external binary that is not guaranteed to be present
|
|
127
|
+
// (e.g. a minimal CI sandbox).
|
|
128
|
+
const pidAlive = livenessResult.details.pidAlive === true;
|
|
129
|
+
const isStaleSocket = livenessResult.details.socketExists === true &&
|
|
130
|
+
livenessResult.details.socketConnectable !== true;
|
|
131
|
+
if (pidAlive) {
|
|
132
|
+
// Live-but-socketless: repair, never delete. Leave the
|
|
133
|
+
// state (still 'running') and any socket file alone so a
|
|
134
|
+
// repair path (e.g. runtime daemon autostart) can recover
|
|
135
|
+
// it instead of us destroying the record for a process
|
|
136
|
+
// that is demonstrably still alive.
|
|
137
|
+
this.logger.warn('liveness failed but pid is still alive (socket unreachable or missing) — leaving state and socket alone for repair', { processId: state.id, pid: state.pid, socketPath: state.socketPath });
|
|
138
|
+
return 0;
|
|
139
|
+
}
|
|
140
|
+
if (isStaleSocket) {
|
|
141
|
+
// pid is confirmed dead — socket is genuinely orphaned.
|
|
142
|
+
this.logger.warn('found orphaned socket', {
|
|
143
|
+
processId: state.id,
|
|
144
|
+
socketPath: state.socketPath
|
|
145
|
+
});
|
|
146
|
+
// Cleanup the socket
|
|
147
|
+
await this.deps.pm.cleanupSocket(state.id);
|
|
148
|
+
cleaned++;
|
|
149
|
+
}
|
|
150
|
+
// Mark process as crashed with detailed error message
|
|
151
|
+
await this.updateObservation(state, {
|
|
152
|
+
status: 'crashed',
|
|
153
|
+
stoppedAt: new Date(),
|
|
154
|
+
staleSocket: isStaleSocket,
|
|
155
|
+
lastError: `Process crashed in previous session: ${livenessResult.details.reason}`
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return cleaned;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Scan for and kill orphaned processes
|
|
162
|
+
* Runs periodically to find:
|
|
163
|
+
* 1. Processes marked as stopped/crashed but still running (orphans in state)
|
|
164
|
+
* 2. Unknown processes on monitored ports (orphans not in state)
|
|
165
|
+
*
|
|
166
|
+
* PART 2: Smart orphan detection with observation tracking and adoption
|
|
167
|
+
*/
|
|
168
|
+
async scanAndKillOrphans() {
|
|
169
|
+
const states = await this.deps.store.getAll();
|
|
170
|
+
let orphanCount = 0;
|
|
171
|
+
let adoptedCount = 0;
|
|
172
|
+
let zombieCount = 0;
|
|
173
|
+
let refusedCount = 0;
|
|
174
|
+
// Per-scan-cycle tracking: pids already adopted in this tick
|
|
175
|
+
const adoptedThisCycle = new Set();
|
|
176
|
+
// PART 0: Check for zombie processes in 'running' state
|
|
177
|
+
// CRITICAL FIX (Issue 1.7): Detect and clean up zombie processes
|
|
178
|
+
const { isZombieProcess } = await import("../utils/process-tree.js");
|
|
179
|
+
for (const state of states) {
|
|
180
|
+
if (state.status === 'running' && state.pid) {
|
|
181
|
+
if (await isZombieProcess(this.deps.getRuntime(), state.pid)) {
|
|
182
|
+
if (!(await this.ownsObservation(state)))
|
|
183
|
+
continue;
|
|
184
|
+
this.logger.warn('found zombie process (defunct), cleaning up state', {
|
|
185
|
+
processId: state.id,
|
|
186
|
+
pid: state.pid
|
|
187
|
+
});
|
|
188
|
+
const changed = await this.updateObservation(state, {
|
|
189
|
+
status: 'crashed',
|
|
190
|
+
pid: undefined,
|
|
191
|
+
stoppedAt: new Date(),
|
|
192
|
+
lastError: `${state.lastError || 'Process crashed'} (zombie process detected by orphan scanner)`
|
|
193
|
+
});
|
|
194
|
+
if (changed)
|
|
195
|
+
zombieCount++;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// PART 1: Check processes in state that shouldn't be running
|
|
200
|
+
for (const state of states) {
|
|
201
|
+
// Look for processes marked as stopped/crashed but with a PID
|
|
202
|
+
if ((state.status === 'crashed' || state.status === 'stopped') && state.pid) {
|
|
203
|
+
if (!(await this.ownsObservation(state)))
|
|
204
|
+
continue;
|
|
205
|
+
// CRITICAL FIX: Use unified liveness checker instead of just PID check
|
|
206
|
+
// This handles kubectl processes, workers, and all other process types correctly
|
|
207
|
+
const livenessResult = await checkProcessLiveness(this.deps.getRuntime(), state);
|
|
208
|
+
if (!(await this.ownsObservation(state)))
|
|
209
|
+
continue;
|
|
210
|
+
if (livenessResult.alive) {
|
|
211
|
+
// CRITICAL FIX: Verify PID ownership before killing
|
|
212
|
+
// The PID might have been reused by an unrelated process
|
|
213
|
+
const config = await this.deps.pm.getConfig(state.id);
|
|
214
|
+
const verifyTokens = config
|
|
215
|
+
? [config.command, ...(config.args || [])].filter(Boolean)
|
|
216
|
+
: [state.id];
|
|
217
|
+
const ownership = await verifyProcessOwnership(this.deps.getRuntime(), state.pid, state.id, verifyTokens);
|
|
218
|
+
if (!(await this.ownsObservation(state)))
|
|
219
|
+
continue;
|
|
220
|
+
if (ownership.owned) {
|
|
221
|
+
// PID belongs to our process - it's actually an orphan, kill it
|
|
222
|
+
this.logger.warn('found orphaned process', {
|
|
223
|
+
processId: state.id,
|
|
224
|
+
pid: state.pid,
|
|
225
|
+
status: state.status,
|
|
226
|
+
reason: livenessResult.details.reason
|
|
227
|
+
});
|
|
228
|
+
// Use shared killProcessTree which verifies kill success
|
|
229
|
+
const orphanPid = state.pid;
|
|
230
|
+
const killed = await attempt(() => killProcessTree(this.deps.getRuntime(), orphanPid, state.id));
|
|
231
|
+
if (!killed.ok) {
|
|
232
|
+
this.logger.error('failed to kill orphaned process', {
|
|
233
|
+
processId: state.id,
|
|
234
|
+
pid: state.pid,
|
|
235
|
+
failure: valueFreeFailure(killed.failure)
|
|
236
|
+
});
|
|
237
|
+
// Keep the PID in state so we can try again next scan
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
this.logger.info('killed orphaned process', {
|
|
241
|
+
processId: state.id,
|
|
242
|
+
pid: state.pid
|
|
243
|
+
});
|
|
244
|
+
orphanCount++;
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
// PID was reused by different process - just clear our stale state
|
|
248
|
+
this.logger.warn('pid reused by different process; clearing state', {
|
|
249
|
+
processId: state.id,
|
|
250
|
+
pid: state.pid
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
// Clear the PID now that we've handled it
|
|
254
|
+
await this.updateObservation(state, {
|
|
255
|
+
pid: undefined,
|
|
256
|
+
lastActivity: new Date(),
|
|
257
|
+
lastError: ownership.owned
|
|
258
|
+
? `${state.lastError || 'Process orphaned'} (cleaned up by orphan scanner)`
|
|
259
|
+
: `${state.lastError || 'Process stopped'} (PID reused by different process)`
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
else if (state.pid) {
|
|
263
|
+
// Process is dead according to liveness check, clear the PID
|
|
264
|
+
await this.updateObservation(state, {
|
|
265
|
+
pid: undefined,
|
|
266
|
+
lastError: `${state.lastError || 'Process stopped'} (verified dead: ${livenessResult.details.reason})`
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// PART 2: Unknown processes on ports not in state
|
|
272
|
+
// Smart logic that tracks observations and distinguishes legitimate processes from orphans
|
|
273
|
+
const observed = await this.scanMonitoredPorts(states);
|
|
274
|
+
for (const proc of observed) {
|
|
275
|
+
// Skip if already adopted in this cycle (idempotency)
|
|
276
|
+
if (adoptedThisCycle.has(proc.pid)) {
|
|
277
|
+
this.logger.debug('pid already adopted this cycle, skipping', { pid: proc.pid, port: proc.port });
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
const decision = await this.evaluateProcess(proc, states);
|
|
281
|
+
switch (decision.action) {
|
|
282
|
+
case 'adopt':
|
|
283
|
+
if (decision.matchingConfigId) {
|
|
284
|
+
// Mark as adopted in this cycle before adoption
|
|
285
|
+
adoptedThisCycle.add(proc.pid);
|
|
286
|
+
await this.adoptProcess(proc, decision.matchingConfigId, states);
|
|
287
|
+
adoptedCount++;
|
|
288
|
+
}
|
|
289
|
+
break;
|
|
290
|
+
case 'refuse':
|
|
291
|
+
// Rule 13: loud, by pid, with a remedy — and untouched.
|
|
292
|
+
refusedCount++;
|
|
293
|
+
this.logger.warn('refusing to touch a port holder this daemon did not start', {
|
|
294
|
+
pid: proc.pid,
|
|
295
|
+
port: proc.port,
|
|
296
|
+
command: proc.command?.slice(0, 200) ?? null,
|
|
297
|
+
reason: decision.reason
|
|
298
|
+
});
|
|
299
|
+
break;
|
|
300
|
+
case 'ignore':
|
|
301
|
+
// Process doesn't match any expected signature, leave it alone
|
|
302
|
+
this.logger.debug('ignoring unknown process on port', {
|
|
303
|
+
pid: proc.pid,
|
|
304
|
+
port: proc.port,
|
|
305
|
+
reason: decision.reason
|
|
306
|
+
});
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (orphanCount > 0) {
|
|
311
|
+
this.logger.info('killed orphaned processes', { count: orphanCount });
|
|
312
|
+
}
|
|
313
|
+
if (adoptedCount > 0) {
|
|
314
|
+
this.logger.info('adopted pre-daemon processes', { count: adoptedCount });
|
|
315
|
+
}
|
|
316
|
+
if (zombieCount > 0) {
|
|
317
|
+
this.logger.info('cleaned up zombie processes', { count: zombieCount });
|
|
318
|
+
}
|
|
319
|
+
if (refusedCount > 0) {
|
|
320
|
+
this.logger.warn('left foreign port holders untouched', { count: refusedCount });
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Get process ID on port with caching
|
|
325
|
+
* CRITICAL FIX (Issue 3.4): Cache port scan results to avoid redundant lsof calls
|
|
326
|
+
*/
|
|
327
|
+
async getProcessOnPortCached(port) {
|
|
328
|
+
const now = Date.now();
|
|
329
|
+
const cached = this.portScanCache.get(port);
|
|
330
|
+
if (cached && now - cached.timestamp < this.PORT_SCAN_CACHE_TTL_MS) {
|
|
331
|
+
this.logger.debug('Using cached port scan result', { port, pid: cached.pid });
|
|
332
|
+
return cached.pid;
|
|
333
|
+
}
|
|
334
|
+
// Not in cache or expired, perform the scan
|
|
335
|
+
const pid = await findProcessOnPort(this.deps.getRuntime(), port);
|
|
336
|
+
// Update cache
|
|
337
|
+
this.portScanCache.set(port, { pid, timestamp: now });
|
|
338
|
+
// Clean up expired cache entries periodically (every 100 scans)
|
|
339
|
+
if (this.portScanCache.size > 100) {
|
|
340
|
+
const expiry = now - this.PORT_SCAN_CACHE_TTL_MS;
|
|
341
|
+
for (const [key, value] of this.portScanCache.entries()) {
|
|
342
|
+
if (value.timestamp < expiry) {
|
|
343
|
+
this.portScanCache.delete(key);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return pid;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Scan all monitored ports for running processes
|
|
351
|
+
*/
|
|
352
|
+
async scanMonitoredPorts(states) {
|
|
353
|
+
const observed = [];
|
|
354
|
+
const knownPids = new Set();
|
|
355
|
+
// Build set of known PIDs from state
|
|
356
|
+
for (const state of states) {
|
|
357
|
+
if (state.pid) {
|
|
358
|
+
knownPids.add(state.pid);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// CRITICAL FIX (Issue 5): Clean up observedProcesses map for dead PIDs
|
|
362
|
+
// The map was growing unboundedly - evict entries for processes that no longer exist
|
|
363
|
+
const pidsToEvict = [];
|
|
364
|
+
for (const [pid] of this.observedProcesses.entries()) {
|
|
365
|
+
if (!(await isProcessRunning(this.deps.getRuntime(), pid))) {
|
|
366
|
+
pidsToEvict.push(pid);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
for (const pid of pidsToEvict) {
|
|
370
|
+
this.observedProcesses.delete(pid);
|
|
371
|
+
this.logger.debug('evicted dead process from observedProcesses map', { pid });
|
|
372
|
+
}
|
|
373
|
+
// Get all ports we monitor from configs
|
|
374
|
+
const configs = this.deps.configs || new Map();
|
|
375
|
+
const monitoredPorts = new Set();
|
|
376
|
+
for (const config of configs.values()) {
|
|
377
|
+
const ports = await extractMonitoredPorts(this.deps.getRuntime(), config);
|
|
378
|
+
ports.forEach((p) => monitoredPorts.add(p));
|
|
379
|
+
}
|
|
380
|
+
// Also add ports from running states that have ports
|
|
381
|
+
for (const state of states) {
|
|
382
|
+
if (state.status === 'running') {
|
|
383
|
+
const config = configs.get(state.id);
|
|
384
|
+
if (config) {
|
|
385
|
+
const ports = await extractMonitoredPorts(this.deps.getRuntime(), config);
|
|
386
|
+
ports.forEach((p) => monitoredPorts.add(p));
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
// Scan each port with caching
|
|
391
|
+
// A probe that cannot read the port or process table fails the scan (the
|
|
392
|
+
// daemon's scan tick logs it); it is never an absent process.
|
|
393
|
+
for (const port of monitoredPorts) {
|
|
394
|
+
// CRITICAL FIX (Issue 3.4): Use cached port scan
|
|
395
|
+
const pid = await this.getProcessOnPortCached(port);
|
|
396
|
+
if (!pid)
|
|
397
|
+
continue;
|
|
398
|
+
// Check if we already have this in our state
|
|
399
|
+
const isKnown = knownPids.has(pid);
|
|
400
|
+
// If this is a known PID in running state, skip it
|
|
401
|
+
if (isKnown) {
|
|
402
|
+
const state = states.find((s) => s.pid === pid);
|
|
403
|
+
if (state?.status === 'running') {
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
// Get command line for signature matching. Null: the process exited
|
|
408
|
+
// after the port probe, so there is nothing to observe.
|
|
409
|
+
const command = await getProcessCommand(this.deps.getRuntime(), pid);
|
|
410
|
+
if (command === null)
|
|
411
|
+
continue;
|
|
412
|
+
// CRITICAL FIX (Issue 3): Verify command consistency to detect PID reuse race
|
|
413
|
+
// The PID could be reused between lsof and ps calls, giving us wrong command
|
|
414
|
+
// If we have a previous observation, verify command hasn't changed significantly
|
|
415
|
+
let observedProc = this.observedProcesses.get(pid);
|
|
416
|
+
if (observedProc) {
|
|
417
|
+
// Check if command changed (indicates possible PID reuse)
|
|
418
|
+
// CRITICAL FIX (Issue 3): Use full command comparison instead of weak substring(0, 20) check
|
|
419
|
+
const oldCmd = observedProc.command?.toLowerCase() ?? '';
|
|
420
|
+
const newCmd = command?.toLowerCase() ?? '';
|
|
421
|
+
// Commands should be identical for the same PID - if they differ significantly, it's likely PID reuse
|
|
422
|
+
if (oldCmd && newCmd && oldCmd !== newCmd) {
|
|
423
|
+
this.logger.warn('PID command changed significantly, possible PID reuse race', {
|
|
424
|
+
pid,
|
|
425
|
+
port,
|
|
426
|
+
oldCommand: observedProc.command?.substring(0, 100),
|
|
427
|
+
newCommand: command?.substring(0, 100)
|
|
428
|
+
});
|
|
429
|
+
// Reset observation with new command
|
|
430
|
+
observedProc = undefined;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
if (!observedProc) {
|
|
434
|
+
observedProc = {
|
|
435
|
+
pid,
|
|
436
|
+
port,
|
|
437
|
+
command,
|
|
438
|
+
firstObservedAt: new Date(),
|
|
439
|
+
isKnown
|
|
440
|
+
};
|
|
441
|
+
this.observedProcesses.set(pid, observedProc);
|
|
442
|
+
}
|
|
443
|
+
observed.push(observedProc);
|
|
444
|
+
}
|
|
445
|
+
return observed;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Evaluate whether to kill, adopt, wait, or ignore a process
|
|
449
|
+
*/
|
|
450
|
+
async evaluateProcess(proc, states) {
|
|
451
|
+
const now = Date.now();
|
|
452
|
+
const observedDuration = now - proc.firstObservedAt.getTime();
|
|
453
|
+
const daemonUptime = now - this.daemonStartTime.getTime();
|
|
454
|
+
// Check if process is actually still running
|
|
455
|
+
// CRITICAL FIX (Issue 2): isProcessRunning is sync, don't await it
|
|
456
|
+
if (!(await isProcessRunning(this.deps.getRuntime(), proc.pid))) {
|
|
457
|
+
return { action: 'ignore', reason: 'Process no longer running' };
|
|
458
|
+
}
|
|
459
|
+
// CRITICAL FIX (Issue 3 part 2): Re-verify command to detect PID reuse between scan and evaluation
|
|
460
|
+
// The PID could have been recycled between scanMonitoredPorts and now
|
|
461
|
+
const currentCommand = await getProcessCommand(this.deps.getRuntime(), proc.pid);
|
|
462
|
+
if (currentCommand === null)
|
|
463
|
+
return { action: 'ignore', reason: 'Process no longer running' };
|
|
464
|
+
const observedCmd = proc.command?.toLowerCase() ?? '';
|
|
465
|
+
const currentCmd = currentCommand?.toLowerCase() ?? '';
|
|
466
|
+
if (observedCmd && currentCmd && observedCmd !== currentCmd) {
|
|
467
|
+
this.logger.warn('PID command changed between scan and evaluation, PID was likely reused', {
|
|
468
|
+
pid: proc.pid,
|
|
469
|
+
port: proc.port,
|
|
470
|
+
observedCommand: proc.command?.substring(0, 100),
|
|
471
|
+
currentCommand: currentCommand?.substring(0, 100)
|
|
472
|
+
});
|
|
473
|
+
// Treat as if process is no longer running - don't take action on wrong process
|
|
474
|
+
return { action: 'ignore', reason: 'PID was reused by different process' };
|
|
475
|
+
}
|
|
476
|
+
// Find matching config by command signature
|
|
477
|
+
const matchingConfig = await this.findMatchingConfig(proc);
|
|
478
|
+
if (matchingConfig) {
|
|
479
|
+
// Check if we already have a state for this config
|
|
480
|
+
const existingState = states.find((s) => s.id === matchingConfig.id);
|
|
481
|
+
if (existingState) {
|
|
482
|
+
if (existingState.status === 'running' && existingState.pid === proc.pid) {
|
|
483
|
+
// Already properly tracked
|
|
484
|
+
return { action: 'ignore', reason: 'Process already tracked' };
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
// A signature match is NOT ownership. A peer lane on this machine runs
|
|
488
|
+
// byte-identical argv, and adopting its process means we go on to
|
|
489
|
+
// restart and eventually kill it. Demand scope before adopting.
|
|
490
|
+
const ownership = await provePortOwnership({
|
|
491
|
+
runtime: this.deps.getRuntime(),
|
|
492
|
+
pid: proc.pid,
|
|
493
|
+
isOurs: existingState?.pid === proc.pid,
|
|
494
|
+
signatureMatches: true,
|
|
495
|
+
configCwd: matchingConfig.cwd,
|
|
496
|
+
daemonScope: this.deps.daemonScope
|
|
497
|
+
});
|
|
498
|
+
if (!ownership.owned) {
|
|
499
|
+
return {
|
|
500
|
+
action: 'refuse',
|
|
501
|
+
reason: formatForeignHolderRefusal({
|
|
502
|
+
port: proc.port,
|
|
503
|
+
pid: proc.pid,
|
|
504
|
+
command: proc.command,
|
|
505
|
+
holderCwd: ownership.holderCwd,
|
|
506
|
+
ourCwd: matchingConfig.cwd,
|
|
507
|
+
mismatch: ownership.mismatch,
|
|
508
|
+
reason: ownership.reason,
|
|
509
|
+
alternatePortHint: `give '${matchingConfig.id}' a port this workspace owns`
|
|
510
|
+
})
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
if (existingState &&
|
|
514
|
+
(existingState.status === 'stopped' || existingState.status === 'crashed')) {
|
|
515
|
+
// State says stopped but process is running - adopt it
|
|
516
|
+
return {
|
|
517
|
+
action: 'adopt',
|
|
518
|
+
reason: `Process running but state shows ${existingState.status}`,
|
|
519
|
+
matchingConfigId: matchingConfig.id
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
// No existing state or in starting/waiting state - adopt
|
|
523
|
+
return {
|
|
524
|
+
action: 'adopt',
|
|
525
|
+
reason: `Command signature matches expected config and scope (${ownership.basis})`,
|
|
526
|
+
matchingConfigId: matchingConfig.id
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
// No matching config — a process this daemon demonstrably did not start.
|
|
530
|
+
//
|
|
531
|
+
// This branch used to return `kill` once warmup and a grace period had
|
|
532
|
+
// elapsed. That is how a scratch daemon in a throwaway VIBES_HOME killed a
|
|
533
|
+
// peer lane's MCP host on machine-global port 3000: nothing about "we
|
|
534
|
+
// monitor this port number" makes another user's listener ours. Waiting
|
|
535
|
+
// longer never turns a stranger into an orphan, so the grace/warmup timers
|
|
536
|
+
// are gone from this path and the verdict is a loud refusal.
|
|
537
|
+
void daemonUptime;
|
|
538
|
+
void observedDuration;
|
|
539
|
+
return {
|
|
540
|
+
action: 'refuse',
|
|
541
|
+
reason: formatForeignHolderRefusal({
|
|
542
|
+
port: proc.port,
|
|
543
|
+
pid: proc.pid,
|
|
544
|
+
command: proc.command,
|
|
545
|
+
holderCwd: await canonicalizePathOn(await pmFileSystem(this.deps.getRuntime()), await this.resolveHolderCwd(proc.pid)),
|
|
546
|
+
alternatePortHint: `move the conflicting managed process to a port this workspace owns`
|
|
547
|
+
})
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
/** Seam-friendly cwd read for refusal messages. */
|
|
551
|
+
async resolveHolderCwd(pid) {
|
|
552
|
+
const { resolveProcessCwd } = await import("../utils/process-tree.js");
|
|
553
|
+
return resolveProcessCwd(this.deps.getRuntime(), pid);
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Find a config that matches the observed process's command signature AND port.
|
|
557
|
+
* Returns the matching config if exactly one match; undefined if none; throws (refuse) if ambiguous.
|
|
558
|
+
*/
|
|
559
|
+
async findMatchingConfig(proc) {
|
|
560
|
+
if (!proc.command)
|
|
561
|
+
return undefined;
|
|
562
|
+
const configs = this.deps.configs;
|
|
563
|
+
if (!configs)
|
|
564
|
+
return undefined;
|
|
565
|
+
const exactMatches = [];
|
|
566
|
+
const commandMatches = [];
|
|
567
|
+
for (const config of configs.values()) {
|
|
568
|
+
// Check if command matches: the selected launch-preparation
|
|
569
|
+
// provider's identity hook when one applies, else the generic
|
|
570
|
+
// command-line match.
|
|
571
|
+
const commandMatchesFlag = await matchesCommandSignature(this.deps.getRuntime(), proc.command, config, proc.port);
|
|
572
|
+
if (!commandMatchesFlag)
|
|
573
|
+
continue;
|
|
574
|
+
commandMatches.push(config);
|
|
575
|
+
// Require port match for exactness: the config's declared port must equal the observed port
|
|
576
|
+
const configPorts = await extractMonitoredPorts(this.deps.getRuntime(), config);
|
|
577
|
+
if (configPorts.length > 0 && configPorts.includes(proc.port)) {
|
|
578
|
+
exactMatches.push(config);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
// If exactly one config matches by command AND port, adopt it
|
|
582
|
+
if (exactMatches.length === 1) {
|
|
583
|
+
return exactMatches[0];
|
|
584
|
+
}
|
|
585
|
+
// If no exact matches but command matches exist, refuse (ambiguous or wrong port)
|
|
586
|
+
if (exactMatches.length === 0 && commandMatches.length > 0) {
|
|
587
|
+
// Multiple configs match by command but on wrong ports, or port mismatch
|
|
588
|
+
this.logger.warn('process command matches multiple configs but port does not match declared ports', {
|
|
589
|
+
pid: proc.pid,
|
|
590
|
+
port: proc.port,
|
|
591
|
+
command: proc.command?.slice(0, 100),
|
|
592
|
+
matchingConfigIds: commandMatches.map(c => c.id)
|
|
593
|
+
});
|
|
594
|
+
return undefined;
|
|
595
|
+
}
|
|
596
|
+
// If multiple exact matches (impossible for real listeners, but possible if state is stale)
|
|
597
|
+
if (exactMatches.length > 1) {
|
|
598
|
+
this.logger.warn('process matches multiple configs exactly (command + port)', {
|
|
599
|
+
pid: proc.pid,
|
|
600
|
+
port: proc.port,
|
|
601
|
+
matchingConfigIds: exactMatches.map(c => c.id)
|
|
602
|
+
});
|
|
603
|
+
return undefined;
|
|
604
|
+
}
|
|
605
|
+
return undefined;
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Adopt a process into our state
|
|
609
|
+
* Only adopts if the PID is not already tracked (idempotency).
|
|
610
|
+
*/
|
|
611
|
+
async adoptProcess(observed, configId, states) {
|
|
612
|
+
// Check if pid is already tracked in ANY state (idempotency - per brief: if ANY tracked process state already has this pid (alive), skip)
|
|
613
|
+
const alreadyTracked = states.find((s) => s.pid === observed.pid && s.status === 'running');
|
|
614
|
+
if (alreadyTracked) {
|
|
615
|
+
this.logger.debug('pid already tracked in state, not re-adopting', {
|
|
616
|
+
processId: alreadyTracked.id,
|
|
617
|
+
pid: observed.pid
|
|
618
|
+
});
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
621
|
+
this.logger.info('adopting pre-daemon process', {
|
|
622
|
+
processId: configId,
|
|
623
|
+
pid: observed.pid,
|
|
624
|
+
port: observed.port,
|
|
625
|
+
command: observed.command?.substring(0, 100)
|
|
626
|
+
});
|
|
627
|
+
// CRITICAL FIX (Issue 5): Use simple PID check for adoption, not full health checks
|
|
628
|
+
// The full checkProcessLiveness checks sockets/HTTP endpoints which may not be set up
|
|
629
|
+
// correctly for pre-daemon processes. A simple PID check is sufficient for adoption.
|
|
630
|
+
if (!(await isProcessRunning(this.deps.getRuntime(), observed.pid))) {
|
|
631
|
+
this.logger.warn('process no longer running, not adopting', {
|
|
632
|
+
processId: configId,
|
|
633
|
+
pid: observed.pid
|
|
634
|
+
});
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
// Get existing state or create adoption state
|
|
638
|
+
let state = await this.deps.store.get(configId);
|
|
639
|
+
const now = new Date();
|
|
640
|
+
const isStateChange = !state || state.status !== 'running' || state.pid !== observed.pid;
|
|
641
|
+
if (state) {
|
|
642
|
+
// Update existing state
|
|
643
|
+
await this.deps.store.update(configId, {
|
|
644
|
+
pid: observed.pid,
|
|
645
|
+
status: 'running',
|
|
646
|
+
firstObservedAt: observed.firstObservedAt,
|
|
647
|
+
commandSignature: observed.command?.substring(0, 200) ?? undefined,
|
|
648
|
+
adopted: true,
|
|
649
|
+
lastActivity: now,
|
|
650
|
+
lastError: state.lastError
|
|
651
|
+
? `${state.lastError} (adopted by orphan scanner at ${now.toISOString()})`
|
|
652
|
+
: `Adopted by orphan scanner at ${now.toISOString()}`
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
// Create new state for adopted process
|
|
657
|
+
await this.deps.store.set({
|
|
658
|
+
id: configId,
|
|
659
|
+
pid: observed.pid,
|
|
660
|
+
status: 'running',
|
|
661
|
+
startedAt: now,
|
|
662
|
+
firstObservedAt: observed.firstObservedAt,
|
|
663
|
+
commandSignature: observed.command?.substring(0, 200) ?? undefined,
|
|
664
|
+
adopted: true,
|
|
665
|
+
lastActivity: now,
|
|
666
|
+
restartCount: 0,
|
|
667
|
+
consecutiveCrashRestarts: 0,
|
|
668
|
+
retryCount: 0
|
|
669
|
+
});
|
|
670
|
+
}
|
|
671
|
+
// Log state change at info level only
|
|
672
|
+
if (isStateChange) {
|
|
673
|
+
this.logger.info('adopted process into state', {
|
|
674
|
+
processId: configId,
|
|
675
|
+
pid: observed.pid,
|
|
676
|
+
wasRestart: !!state
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
// CRITICAL FIX (Issue 5): Clean up observedProcesses map after adopting
|
|
680
|
+
// The process is now tracked in state, remove from observation map to prevent memory leak
|
|
681
|
+
this.observedProcesses.delete(observed.pid);
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
//# sourceMappingURL=orphan-scanner.js.map
|