@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,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHO OWNS A PORT — the proof PM requires before it signals a port holder.
|
|
3
|
+
*
|
|
4
|
+
* MEASURED DEFECT (2026-08-30/31, this workstation). A scratch PM daemon booted
|
|
5
|
+
* under a throwaway `VIBES_HOME` by `bun run smoke:shipping` found machine-global
|
|
6
|
+
* port 3000 held by ANOTHER LANE's `vibes dev mcp serve --mode http --port 3000`
|
|
7
|
+
* and SIGKILLed it. Three foreign MCP hosts died that way in one day (pids 39452,
|
|
8
|
+
* 42306, 80610); PM's `autoRestart` put a body back within ~80 s, which is exactly
|
|
9
|
+
* why the damage read as harmless. Running the shipping harness on a shared
|
|
10
|
+
* machine took out other people's MCP hosts.
|
|
11
|
+
*
|
|
12
|
+
* THE BUG WAS NEVER "the port was busy". It was that a command line which LOOKS
|
|
13
|
+
* like ours was accepted as proof that it IS ours (`isCommandLineMatch`), and —
|
|
14
|
+
* worse — that a holder matching NO config at all was killed outright as a
|
|
15
|
+
* "foreign process on our port". Two lanes on one machine run byte-identical
|
|
16
|
+
* argv, so similarity can never be ownership.
|
|
17
|
+
*
|
|
18
|
+
* THE RULE. A holder may be signalled only when PM can point at the record that
|
|
19
|
+
* says PM started it:
|
|
20
|
+
* 1. `tracked-pid` — the pid this daemon's store recorded for this process
|
|
21
|
+
* id, or a descendant of it (`PortConflict.isOurs`);
|
|
22
|
+
* 2. `daemon-descendant`— a descendant of this daemon process;
|
|
23
|
+
* 3. `same-scope-signature` — a signature match AND the same SCOPE: the same
|
|
24
|
+
* working directory as the config being started AND
|
|
25
|
+
* the same `VIBES_HOME`. This is the leftover-from-a-
|
|
26
|
+
* previous-run case the old code was written for, and it
|
|
27
|
+
* stays supported: nothing is taken away.
|
|
28
|
+
* Anything else is FOREIGN. Foreign holders are refused LOUDLY by pid with a
|
|
29
|
+
* remedy — never signalled, never adopted.
|
|
30
|
+
*
|
|
31
|
+
* WHAT "SCOPE" MEANS, AND WHY IT IS TWO FACTS.
|
|
32
|
+
* - cwd (`utils/process-tree.ts#resolveProcessCwd`) — PM sets `config.cwd` to
|
|
33
|
+
* the workspace a managed process belongs to, so it discriminates two lanes
|
|
34
|
+
* working in different checkouts.
|
|
35
|
+
* - `VIBES_HOME` (`utils/process-tree.ts#resolveProcessScopeEnv`) — the home a
|
|
36
|
+
* vibes process's state, sessions and daemons actually belong to. This is
|
|
37
|
+
* the STRONGER fact and it is what the original incident turned on: a
|
|
38
|
+
* scratch daemon booted under a throwaway `VIBES_HOME` killed a host in the
|
|
39
|
+
* real home. cwd alone cannot see that difference — `vibes dev mcp start`
|
|
40
|
+
* run from the developer root under a scratch home has the SAME cwd as the
|
|
41
|
+
* real host, and (since the port is now derived from the shared root) the
|
|
42
|
+
* same derived port too, so contention there is guaranteed rather than
|
|
43
|
+
* accidental.
|
|
44
|
+
* An earlier version of this file asserted that a foreign process's environment
|
|
45
|
+
* is unreadable on macOS. That was measured FALSE on 2026-08-31: `ps -Eww -p
|
|
46
|
+
* <pid>` prints a same-uid process's environment (verified against live pids
|
|
47
|
+
* 4224 and 1194). The weaker discriminator was being used while the stronger
|
|
48
|
+
* one was available, so `same-scope-signature` could still authorize a SIGKILL
|
|
49
|
+
* of a stranger. Both facts are now required.
|
|
50
|
+
*
|
|
51
|
+
* UNREADABLE IS UNPROVEN. A cwd or an environment we cannot read is foreign:
|
|
52
|
+
* refusing costs a loud error, guessing costs someone else's running process.
|
|
53
|
+
* This only holds because `resolveProcessScopeEnv` distinguishes "read the
|
|
54
|
+
* environment, it names no VIBES_HOME" (an object) from "never got the
|
|
55
|
+
* environment" (`null`). Some processes DO withhold it while `ps` still exits 0
|
|
56
|
+
* — pid 1, and anything exec'd from a SIP-protected binary — and if that
|
|
57
|
+
* collapsed into `{vibesHome: null}` then `canonicalVibesHome` below would
|
|
58
|
+
* normalize the stranger into `<userHome>/.vibes` and this conjunct would
|
|
59
|
+
* silently degrade to the cwd-only rule it exists to replace. Measured, not
|
|
60
|
+
* reasoned: `ps -Eww -p 1 -o command=` → `/sbin/launchd`, exit 0, no env.
|
|
61
|
+
*/
|
|
62
|
+
import type { HostServicesRuntime } from './process-tree.ts';
|
|
63
|
+
import { type PMFileSystem } from '../helpers/runtime-files.ts';
|
|
64
|
+
import { type ProcessScopeEnv } from './process-tree.ts';
|
|
65
|
+
export type OwnershipBasis = 'tracked-pid' | 'daemon-descendant' | 'same-scope-signature';
|
|
66
|
+
export type PortOwnership = {
|
|
67
|
+
owned: true;
|
|
68
|
+
basis: OwnershipBasis;
|
|
69
|
+
holderCwd: string | null;
|
|
70
|
+
} | {
|
|
71
|
+
owned: false;
|
|
72
|
+
reason: 'foreign-scope' | 'unproven-scope' | 'no-signature';
|
|
73
|
+
holderCwd: string | null;
|
|
74
|
+
/** Which scope fact failed, for the refusal message. */
|
|
75
|
+
mismatch?: 'cwd' | 'vibes-home' | 'workspace-path';
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* The scope THIS daemon belongs to, as its runtime declares it (framework-M8):
|
|
79
|
+
* the admitted workspace root it supervises (the launch cwd and the
|
|
80
|
+
* `VIBES_WORKSPACE_PATH` its children's custody carries), its vibes home
|
|
81
|
+
* (`getPathRoots(runtime).vibesHome`), and the user home an unset `VIBES_HOME`
|
|
82
|
+
* resolves against. Never read from this process's environment or cwd.
|
|
83
|
+
*/
|
|
84
|
+
export interface DaemonScope {
|
|
85
|
+
workspaceRoot: string;
|
|
86
|
+
vibesHome: string;
|
|
87
|
+
userHome: string;
|
|
88
|
+
}
|
|
89
|
+
export interface ProvePortOwnershipInput {
|
|
90
|
+
/** The runtime whose host process service observes the holder. */
|
|
91
|
+
runtime: HostServicesRuntime;
|
|
92
|
+
/** Pid holding the port. */
|
|
93
|
+
pid: number;
|
|
94
|
+
/** Already-established ownership from the caller's own state (store pid / descendants). */
|
|
95
|
+
isOurs: boolean;
|
|
96
|
+
/** Does the holder's command line look like the config we are about to start? */
|
|
97
|
+
signatureMatches: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* `config.cwd` — the workspace domain this daemon owns for that process.
|
|
100
|
+
* A config that declares no cwd is launched in the daemon's admitted
|
|
101
|
+
* workspace root (launch custody), which `daemonScope` supplies.
|
|
102
|
+
*/
|
|
103
|
+
configCwd?: string;
|
|
104
|
+
/**
|
|
105
|
+
* This daemon's declared scope. Absent, nothing about this daemon is known,
|
|
106
|
+
* so no holder can be proved ours by scope (`unproven-scope`).
|
|
107
|
+
*/
|
|
108
|
+
daemonScope?: DaemonScope;
|
|
109
|
+
/** Pid of this PM daemon. Defaults to the supplied runtime host identity. */
|
|
110
|
+
daemonPid?: number;
|
|
111
|
+
/**
|
|
112
|
+
* The scope env a child of THIS daemon carries. Defaults to the daemon's
|
|
113
|
+
* declared scope (`daemonScope.vibesHome`, `daemonScope.workspaceRoot`).
|
|
114
|
+
*/
|
|
115
|
+
ourScopeEnv?: ProcessScopeEnv;
|
|
116
|
+
/** Seams, for tests. */
|
|
117
|
+
resolveCwd?: (pid: number) => Promise<string | null>;
|
|
118
|
+
resolveScopeEnv?: (pid: number) => Promise<ProcessScopeEnv | null>;
|
|
119
|
+
isDescendant?: (childPid: number, parentPid: number) => Promise<boolean>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* An unset `VIBES_HOME` is not "unknown" — it resolves to `<userHome>/.vibes`.
|
|
123
|
+
* Normalizing both sides that way stops "we set it explicitly, they inherited
|
|
124
|
+
* the default" from reading as a foreign scope and silently withdrawing the
|
|
125
|
+
* leftover-reclaim capability. The user home is the daemon's declared one;
|
|
126
|
+
* without it an unset value cannot be resolved (null).
|
|
127
|
+
*/
|
|
128
|
+
export declare function canonicalVibesHome(files: PMFileSystem, value: string | null | undefined, userHome: string | undefined): Promise<string | null>;
|
|
129
|
+
/**
|
|
130
|
+
* Resolve symlinks so `/var/folders/...` and `/private/var/folders/...` compare
|
|
131
|
+
* equal, through the handed filesystem's `realpath`. A path that does not exist
|
|
132
|
+
* is compared as written; a link loop is `pm-symlink-loop`; any other
|
|
133
|
+
* resolution failure is real and propagates.
|
|
134
|
+
*/
|
|
135
|
+
export declare function canonicalizePathOn(files: PMFileSystem, path: string | null | undefined): Promise<string | null>;
|
|
136
|
+
export declare function provePortOwnership(input: ProvePortOwnershipInput): Promise<PortOwnership>;
|
|
137
|
+
export interface ForeignHolderRefusalInput {
|
|
138
|
+
port: number;
|
|
139
|
+
pid: number;
|
|
140
|
+
command: string | null;
|
|
141
|
+
holderCwd: string | null;
|
|
142
|
+
ourCwd?: string;
|
|
143
|
+
/** Which scope fact failed, when the caller knows. */
|
|
144
|
+
mismatch?: 'cwd' | 'vibes-home' | 'workspace-path';
|
|
145
|
+
/**
|
|
146
|
+
* Why the proof failed. `unproven-scope` and `foreign-scope` are DIFFERENT
|
|
147
|
+
* facts — "we read it and it is someone else's" vs "we could not read it at
|
|
148
|
+
* all" — and an operator reading the log needs to know which, because only
|
|
149
|
+
* the second one might be fixable by giving PM more visibility.
|
|
150
|
+
*/
|
|
151
|
+
reason?: 'foreign-scope' | 'unproven-scope' | 'no-signature';
|
|
152
|
+
/** How to make progress without touching the stranger. */
|
|
153
|
+
alternatePortHint?: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The refusal a caller prints or throws. It NAMES the pid, what it is, where it
|
|
157
|
+
* lives, and two remedies that do not involve PM signalling a stranger.
|
|
158
|
+
*/
|
|
159
|
+
export declare function formatForeignHolderRefusal(input: ForeignHolderRefusalInput): string;
|
|
160
|
+
//# sourceMappingURL=port-ownership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-ownership.d.ts","sourceRoot":"","sources":["../../src/utils/port-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WHO OWNS A PORT — the proof PM requires before it signals a port holder.
|
|
3
|
+
*
|
|
4
|
+
* MEASURED DEFECT (2026-08-30/31, this workstation). A scratch PM daemon booted
|
|
5
|
+
* under a throwaway `VIBES_HOME` by `bun run smoke:shipping` found machine-global
|
|
6
|
+
* port 3000 held by ANOTHER LANE's `vibes dev mcp serve --mode http --port 3000`
|
|
7
|
+
* and SIGKILLed it. Three foreign MCP hosts died that way in one day (pids 39452,
|
|
8
|
+
* 42306, 80610); PM's `autoRestart` put a body back within ~80 s, which is exactly
|
|
9
|
+
* why the damage read as harmless. Running the shipping harness on a shared
|
|
10
|
+
* machine took out other people's MCP hosts.
|
|
11
|
+
*
|
|
12
|
+
* THE BUG WAS NEVER "the port was busy". It was that a command line which LOOKS
|
|
13
|
+
* like ours was accepted as proof that it IS ours (`isCommandLineMatch`), and —
|
|
14
|
+
* worse — that a holder matching NO config at all was killed outright as a
|
|
15
|
+
* "foreign process on our port". Two lanes on one machine run byte-identical
|
|
16
|
+
* argv, so similarity can never be ownership.
|
|
17
|
+
*
|
|
18
|
+
* THE RULE. A holder may be signalled only when PM can point at the record that
|
|
19
|
+
* says PM started it:
|
|
20
|
+
* 1. `tracked-pid` — the pid this daemon's store recorded for this process
|
|
21
|
+
* id, or a descendant of it (`PortConflict.isOurs`);
|
|
22
|
+
* 2. `daemon-descendant`— a descendant of this daemon process;
|
|
23
|
+
* 3. `same-scope-signature` — a signature match AND the same SCOPE: the same
|
|
24
|
+
* working directory as the config being started AND
|
|
25
|
+
* the same `VIBES_HOME`. This is the leftover-from-a-
|
|
26
|
+
* previous-run case the old code was written for, and it
|
|
27
|
+
* stays supported: nothing is taken away.
|
|
28
|
+
* Anything else is FOREIGN. Foreign holders are refused LOUDLY by pid with a
|
|
29
|
+
* remedy — never signalled, never adopted.
|
|
30
|
+
*
|
|
31
|
+
* WHAT "SCOPE" MEANS, AND WHY IT IS TWO FACTS.
|
|
32
|
+
* - cwd (`utils/process-tree.ts#resolveProcessCwd`) — PM sets `config.cwd` to
|
|
33
|
+
* the workspace a managed process belongs to, so it discriminates two lanes
|
|
34
|
+
* working in different checkouts.
|
|
35
|
+
* - `VIBES_HOME` (`utils/process-tree.ts#resolveProcessScopeEnv`) — the home a
|
|
36
|
+
* vibes process's state, sessions and daemons actually belong to. This is
|
|
37
|
+
* the STRONGER fact and it is what the original incident turned on: a
|
|
38
|
+
* scratch daemon booted under a throwaway `VIBES_HOME` killed a host in the
|
|
39
|
+
* real home. cwd alone cannot see that difference — `vibes dev mcp start`
|
|
40
|
+
* run from the developer root under a scratch home has the SAME cwd as the
|
|
41
|
+
* real host, and (since the port is now derived from the shared root) the
|
|
42
|
+
* same derived port too, so contention there is guaranteed rather than
|
|
43
|
+
* accidental.
|
|
44
|
+
* An earlier version of this file asserted that a foreign process's environment
|
|
45
|
+
* is unreadable on macOS. That was measured FALSE on 2026-08-31: `ps -Eww -p
|
|
46
|
+
* <pid>` prints a same-uid process's environment (verified against live pids
|
|
47
|
+
* 4224 and 1194). The weaker discriminator was being used while the stronger
|
|
48
|
+
* one was available, so `same-scope-signature` could still authorize a SIGKILL
|
|
49
|
+
* of a stranger. Both facts are now required.
|
|
50
|
+
*
|
|
51
|
+
* UNREADABLE IS UNPROVEN. A cwd or an environment we cannot read is foreign:
|
|
52
|
+
* refusing costs a loud error, guessing costs someone else's running process.
|
|
53
|
+
* This only holds because `resolveProcessScopeEnv` distinguishes "read the
|
|
54
|
+
* environment, it names no VIBES_HOME" (an object) from "never got the
|
|
55
|
+
* environment" (`null`). Some processes DO withhold it while `ps` still exits 0
|
|
56
|
+
* — pid 1, and anything exec'd from a SIP-protected binary — and if that
|
|
57
|
+
* collapsed into `{vibesHome: null}` then `canonicalVibesHome` below would
|
|
58
|
+
* normalize the stranger into `<userHome>/.vibes` and this conjunct would
|
|
59
|
+
* silently degrade to the cwd-only rule it exists to replace. Measured, not
|
|
60
|
+
* reasoned: `ps -Eww -p 1 -o command=` → `/sbin/launchd`, exit 0, no env.
|
|
61
|
+
*/
|
|
62
|
+
import { CapabilityError, getRuntimeHostIdentity } from '@vibesdotdev/kernel';
|
|
63
|
+
import { DEFAULT_VIBES_HOME_DIRNAME } from '@vibesdotdev/paths';
|
|
64
|
+
import { pmFileSystem, resolveExistingPrefix } from "../helpers/runtime-files.js";
|
|
65
|
+
import { isDescendantOf, resolveProcessCwd, resolveProcessScopeEnv } from "./process-tree.js";
|
|
66
|
+
/**
|
|
67
|
+
* An unset `VIBES_HOME` is not "unknown" — it resolves to `<userHome>/.vibes`.
|
|
68
|
+
* Normalizing both sides that way stops "we set it explicitly, they inherited
|
|
69
|
+
* the default" from reading as a foreign scope and silently withdrawing the
|
|
70
|
+
* leftover-reclaim capability. The user home is the daemon's declared one;
|
|
71
|
+
* without it an unset value cannot be resolved (null).
|
|
72
|
+
*/
|
|
73
|
+
export async function canonicalVibesHome(files, value, userHome) {
|
|
74
|
+
const explicit = value?.trim();
|
|
75
|
+
if (explicit && explicit.length > 0)
|
|
76
|
+
return canonicalizePathOn(files, explicit);
|
|
77
|
+
return userHome ? canonicalizePathOn(files, files.join(userHome, DEFAULT_VIBES_HOME_DIRNAME)) : null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Resolve symlinks so `/var/folders/...` and `/private/var/folders/...` compare
|
|
81
|
+
* equal, through the handed filesystem's `realpath`. A path that does not exist
|
|
82
|
+
* is compared as written; a link loop is `pm-symlink-loop`; any other
|
|
83
|
+
* resolution failure is real and propagates.
|
|
84
|
+
*/
|
|
85
|
+
export async function canonicalizePathOn(files, path) {
|
|
86
|
+
if (!path)
|
|
87
|
+
return null;
|
|
88
|
+
const { resolved, absent } = await resolveExistingPrefix(files, path);
|
|
89
|
+
return absent.length > 0 ? path : resolved;
|
|
90
|
+
}
|
|
91
|
+
export async function provePortOwnership(input) {
|
|
92
|
+
const resolveCwd = input.resolveCwd ?? ((pid) => resolveProcessCwd(input.runtime, pid));
|
|
93
|
+
const isDescendant = input.isDescendant ?? ((child, parent) => isDescendantOf(input.runtime, child, parent));
|
|
94
|
+
if (input.isOurs)
|
|
95
|
+
return { owned: true, basis: 'tracked-pid', holderCwd: null };
|
|
96
|
+
const daemonPid = input.daemonPid ?? (await getRuntimeHostIdentity(input.runtime)).currentPid();
|
|
97
|
+
if (input.daemonPid === undefined && (!Number.isSafeInteger(daemonPid) || daemonPid <= 0)) {
|
|
98
|
+
throw new CapabilityError('The selected host supplied an invalid process identity.', 'INVALID_INPUT', {
|
|
99
|
+
reason: 'pm-host-pid-invalid', retryable: false
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// A process in our own tree is ours by construction: we spawned it.
|
|
103
|
+
if (input.pid !== daemonPid && (await isDescendant(input.pid, daemonPid))) {
|
|
104
|
+
return { owned: true, basis: 'daemon-descendant', holderCwd: null };
|
|
105
|
+
}
|
|
106
|
+
const holderCwd = await resolveCwd(input.pid);
|
|
107
|
+
if (!input.signatureMatches) {
|
|
108
|
+
return { owned: false, reason: 'no-signature', holderCwd };
|
|
109
|
+
}
|
|
110
|
+
const files = await pmFileSystem(input.runtime);
|
|
111
|
+
const ourScope = await canonicalizePathOn(files, input.configCwd ?? input.daemonScope?.workspaceRoot);
|
|
112
|
+
const theirScope = await canonicalizePathOn(files, holderCwd);
|
|
113
|
+
if (!ourScope || !theirScope) {
|
|
114
|
+
return { owned: false, reason: 'unproven-scope', holderCwd, mismatch: 'cwd' };
|
|
115
|
+
}
|
|
116
|
+
if (ourScope !== theirScope) {
|
|
117
|
+
return { owned: false, reason: 'foreign-scope', holderCwd, mismatch: 'cwd' };
|
|
118
|
+
}
|
|
119
|
+
// Same cwd is NOT enough: a scratch-home process invoked from this very
|
|
120
|
+
// directory has the same cwd and (now) the same derived port. VIBES_HOME is
|
|
121
|
+
// the scope a vibes process's state actually belongs to, and it is readable.
|
|
122
|
+
const resolveScopeEnv = input.resolveScopeEnv ?? ((pid) => resolveProcessScopeEnv(input.runtime, pid));
|
|
123
|
+
const theirEnv = await resolveScopeEnv(input.pid);
|
|
124
|
+
if (!theirEnv) {
|
|
125
|
+
return { owned: false, reason: 'unproven-scope', holderCwd, mismatch: 'vibes-home' };
|
|
126
|
+
}
|
|
127
|
+
const ourEnv = input.ourScopeEnv ??
|
|
128
|
+
(input.daemonScope
|
|
129
|
+
? { vibesHome: input.daemonScope.vibesHome, workspacePath: input.daemonScope.workspaceRoot }
|
|
130
|
+
: null);
|
|
131
|
+
const userHome = input.daemonScope?.userHome;
|
|
132
|
+
const ourHome = ourEnv ? await canonicalVibesHome(files, ourEnv.vibesHome, userHome) : null;
|
|
133
|
+
const theirHome = await canonicalVibesHome(files, theirEnv.vibesHome, userHome);
|
|
134
|
+
if (!ourEnv || ourHome === null || theirHome === null) {
|
|
135
|
+
return { owned: false, reason: 'unproven-scope', holderCwd, mismatch: 'vibes-home' };
|
|
136
|
+
}
|
|
137
|
+
if (ourHome !== theirHome) {
|
|
138
|
+
return { owned: false, reason: 'foreign-scope', holderCwd, mismatch: 'vibes-home' };
|
|
139
|
+
}
|
|
140
|
+
// Only compared when BOTH sides declare one: an undeclared workspace path is
|
|
141
|
+
// absence of evidence, and cwd + home already carried the decision.
|
|
142
|
+
if (ourEnv.workspacePath && theirEnv.workspacePath) {
|
|
143
|
+
if ((await canonicalizePathOn(files, ourEnv.workspacePath)) !== (await canonicalizePathOn(files, theirEnv.workspacePath))) {
|
|
144
|
+
return { owned: false, reason: 'foreign-scope', holderCwd, mismatch: 'workspace-path' };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { owned: true, basis: 'same-scope-signature', holderCwd };
|
|
148
|
+
}
|
|
149
|
+
const MISMATCH_TEXT = {
|
|
150
|
+
cwd: 'its working directory is not the one this daemon owns',
|
|
151
|
+
'vibes-home': 'it belongs to a different VIBES_HOME',
|
|
152
|
+
'workspace-path': 'it belongs to a different VIBES_WORKSPACE_PATH'
|
|
153
|
+
};
|
|
154
|
+
const UNPROVEN_TEXT = {
|
|
155
|
+
cwd: 'its working directory could not be read, so it cannot be proved ours',
|
|
156
|
+
'vibes-home': 'its environment could not be read, so its VIBES_HOME cannot be proved ours',
|
|
157
|
+
'workspace-path': 'its environment could not be read, so its workspace cannot be proved ours'
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* The refusal a caller prints or throws. It NAMES the pid, what it is, where it
|
|
161
|
+
* lives, and two remedies that do not involve PM signalling a stranger.
|
|
162
|
+
*/
|
|
163
|
+
export function formatForeignHolderRefusal(input) {
|
|
164
|
+
const what = input.command ? ` (${input.command})` : '';
|
|
165
|
+
const where = input.holderCwd ? ` running in ${input.holderCwd}` : ' (working directory unreadable)';
|
|
166
|
+
const ours = input.ourCwd ? ` This daemon owns ${input.ourCwd}.` : '';
|
|
167
|
+
const why = input.mismatch
|
|
168
|
+
? ` (${(input.reason === 'unproven-scope' ? UNPROVEN_TEXT : MISMATCH_TEXT)[input.mismatch]})`
|
|
169
|
+
: '';
|
|
170
|
+
const alternate = input.alternatePortHint ??
|
|
171
|
+
`start this process on a different port (its port is workspace-scoped; pass an explicit --port to override)`;
|
|
172
|
+
return (`Port ${input.port} is held by PID ${input.pid}${what}${where}, which this PM daemon did not start${why}.${ours} ` +
|
|
173
|
+
`Refusing to signal a process we do not own. ` +
|
|
174
|
+
`Remedy: ${alternate}, or stop the holder yourself: kill ${input.pid}.`);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=port-ownership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-ownership.js","sourceRoot":"","sources":["../../src/utils/port-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HostServicesRuntime } from './process-tree.ts';
|
|
2
|
+
import type { ProcessConfig } from '../schemas/process.ts';
|
|
3
|
+
import { type LaunchPreparationImplementation } from '../launch-preparation.ts';
|
|
4
|
+
export declare function extractPortFromEndpoint(endpoint: string): number | null;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the launch-preparation implementation selected for a config, the
|
|
7
|
+
* same way `prepareProcessLaunch` selects one. Returns undefined when the
|
|
8
|
+
* config declares no preparation or the host composed no provider; the
|
|
9
|
+
* generic command-line match then applies. A provider that fails validation
|
|
10
|
+
* is treated as absent here: launch itself refuses `pm-launch-preparation-invalid`
|
|
11
|
+
* before spawn, and identity matching must not branch on it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveLaunchIdentity(runtime: HostServicesRuntime, config: ProcessConfig): Promise<{
|
|
14
|
+
matchedBy: string;
|
|
15
|
+
implementation: LaunchPreparationImplementation;
|
|
16
|
+
} | undefined>;
|
|
17
|
+
export declare function extractMonitoredPorts(runtime: HostServicesRuntime, config: ProcessConfig): Promise<number[]>;
|
|
18
|
+
export declare function findProcessOnPort(runtime: HostServicesRuntime, port: number): Promise<number | null>;
|
|
19
|
+
export declare function isCommandLineMatch(cmd: string | null, config: ProcessConfig): boolean;
|
|
20
|
+
export interface ProcessLineageEntry {
|
|
21
|
+
pid: number;
|
|
22
|
+
command: string | null;
|
|
23
|
+
}
|
|
24
|
+
export declare function selectCommandLineageKillPid(lineage: ProcessLineageEntry[], config: ProcessConfig, fallbackPid: number): number;
|
|
25
|
+
export interface PortConflict {
|
|
26
|
+
port: number;
|
|
27
|
+
pid: number;
|
|
28
|
+
killPid: number;
|
|
29
|
+
command: string | null;
|
|
30
|
+
type: 'http' | 'tcp' | 'forward' | 'orphan';
|
|
31
|
+
isOurs: boolean;
|
|
32
|
+
/** The id of the launch-preparation descriptor whose identity hook matched; absent for generic command-line matches. */
|
|
33
|
+
matchedBy?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Positive signature evidence only; ownership is proved separately. The
|
|
37
|
+
* selected launch-preparation provider owns process identity when it supplies
|
|
38
|
+
* `matchesProcessCommand`; without that hook the generic command-line match
|
|
39
|
+
* decides.
|
|
40
|
+
*/
|
|
41
|
+
export declare function matchesCommandSignature(runtime: HostServicesRuntime, command: string | null, config: ProcessConfig, port?: number): Promise<boolean>;
|
|
42
|
+
export declare function findPortConflicts(runtime: HostServicesRuntime, config: ProcessConfig, existingPid: number | null): Promise<PortConflict[]>;
|
|
43
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/utils/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAmE,KAAK,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAGjJ,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQvE;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,+BAA+B,CAAA;CAAE,GAAG,SAAS,CAAC,CAc7F;AAgBD,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BlH;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE1G;AAcD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CA0BrF;AAED,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAsBD,wBAAgB,2BAA2B,CAC1C,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GACjB,MAAM,CAQR;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,wHAAwH;IACxH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC,CAkDzB"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { getRuntimeProcessService } from '@vibesdotdev/kernel/process';
|
|
2
|
+
import { LaunchPreparationImplementationSchema, launchPreparationRequest } from "../launch-preparation.js";
|
|
3
|
+
import { getDescendantPids, getProcessCommand } from "./process-tree.js";
|
|
4
|
+
export function extractPortFromEndpoint(endpoint) {
|
|
5
|
+
// An endpoint that is not a URL names no port (a typed answer, no catch).
|
|
6
|
+
if (!URL.canParse(endpoint))
|
|
7
|
+
return null;
|
|
8
|
+
const url = new URL(endpoint);
|
|
9
|
+
if (url.port) {
|
|
10
|
+
return parseInt(url.port, 10);
|
|
11
|
+
}
|
|
12
|
+
return url.protocol === 'https:' ? 443 : 80;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the launch-preparation implementation selected for a config, the
|
|
16
|
+
* same way `prepareProcessLaunch` selects one. Returns undefined when the
|
|
17
|
+
* config declares no preparation or the host composed no provider; the
|
|
18
|
+
* generic command-line match then applies. A provider that fails validation
|
|
19
|
+
* is treated as absent here: launch itself refuses `pm-launch-preparation-invalid`
|
|
20
|
+
* before spawn, and identity matching must not branch on it.
|
|
21
|
+
*/
|
|
22
|
+
export async function resolveLaunchIdentity(runtime, config) {
|
|
23
|
+
const request = launchPreparationRequest(config);
|
|
24
|
+
if (!request)
|
|
25
|
+
return undefined;
|
|
26
|
+
const kind = 'pm/launch-preparation';
|
|
27
|
+
if (!runtime.hasKind(kind) ||
|
|
28
|
+
!runtime.query(kind).withId(request.adapter).enabled().descriptors().length) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const selected = await runtime.query(kind).withId(request.adapter).enabled().resolve();
|
|
32
|
+
const implementation = LaunchPreparationImplementationSchema.safeParse(selected);
|
|
33
|
+
if (!implementation.success)
|
|
34
|
+
return undefined;
|
|
35
|
+
const { monitoredPorts, matchesProcessCommand } = implementation.data;
|
|
36
|
+
if (!monitoredPorts && !matchesProcessCommand)
|
|
37
|
+
return undefined;
|
|
38
|
+
return { matchedBy: request.adapter, implementation: implementation.data };
|
|
39
|
+
}
|
|
40
|
+
/** Ports a resolved launch-preparation provider monitors, if it supplies the hook. */
|
|
41
|
+
async function providerMonitoredPortsFor(resolved, config) {
|
|
42
|
+
return resolved.implementation.monitoredPorts?.(config) ?? [];
|
|
43
|
+
}
|
|
44
|
+
/** Ports a config's selected launch-preparation provider monitors, if any. */
|
|
45
|
+
async function providerMonitoredPorts(runtime, config) {
|
|
46
|
+
const resolved = await resolveLaunchIdentity(runtime, config);
|
|
47
|
+
return resolved ? providerMonitoredPortsFor(resolved, config) : [];
|
|
48
|
+
}
|
|
49
|
+
export async function extractMonitoredPorts(runtime, config) {
|
|
50
|
+
const ports = [];
|
|
51
|
+
const healthPortIsManaged = config.healthCheck?.portOwnership !== 'external';
|
|
52
|
+
// HTTP health check port
|
|
53
|
+
if (healthPortIsManaged &&
|
|
54
|
+
config.healthCheck?.type === 'http' &&
|
|
55
|
+
config.healthCheck.endpoint) {
|
|
56
|
+
const port = extractPortFromEndpoint(config.healthCheck.endpoint);
|
|
57
|
+
if (port)
|
|
58
|
+
ports.push(port);
|
|
59
|
+
}
|
|
60
|
+
// TCP health check port
|
|
61
|
+
if (healthPortIsManaged && config.healthCheck?.type === 'tcp' && config.healthCheck.port) {
|
|
62
|
+
ports.push(config.healthCheck.port);
|
|
63
|
+
}
|
|
64
|
+
// Ports the selected launch-preparation provider owns (e.g. a forwarded
|
|
65
|
+
// tunnel's local listeners); a provider that supplies no hook adds none.
|
|
66
|
+
ports.push(...await providerMonitoredPorts(runtime, config));
|
|
67
|
+
// Explicit orphan ports
|
|
68
|
+
if (config.orphanPorts) {
|
|
69
|
+
ports.push(...config.orphanPorts);
|
|
70
|
+
}
|
|
71
|
+
return [...new Set(ports)];
|
|
72
|
+
}
|
|
73
|
+
export async function findProcessOnPort(runtime, port) {
|
|
74
|
+
return (await getRuntimeProcessService(runtime)).listeningPid(port);
|
|
75
|
+
}
|
|
76
|
+
const LAUNCHER_COMMANDS = new Set([
|
|
77
|
+
'bun',
|
|
78
|
+
'bunx',
|
|
79
|
+
'node',
|
|
80
|
+
'deno',
|
|
81
|
+
'python',
|
|
82
|
+
'python3',
|
|
83
|
+
'bash',
|
|
84
|
+
'sh',
|
|
85
|
+
'zsh'
|
|
86
|
+
]);
|
|
87
|
+
const WRAPPER_ARGS = new Set(['run', '--bun', '--hot', '--watch']);
|
|
88
|
+
export function isCommandLineMatch(cmd, config) {
|
|
89
|
+
if (!cmd)
|
|
90
|
+
return false;
|
|
91
|
+
if (!config.args || config.args.length === 0)
|
|
92
|
+
return false;
|
|
93
|
+
const candidates = config.args
|
|
94
|
+
.filter((t) => !t.startsWith('-') && t.length >= 3)
|
|
95
|
+
.filter((t) => !WRAPPER_ARGS.has(t));
|
|
96
|
+
if (candidates.length === 0)
|
|
97
|
+
return false;
|
|
98
|
+
// When the command matches directly (e.g. a tunnel binary), keep strict matching.
|
|
99
|
+
if (cmd.includes(config.command)) {
|
|
100
|
+
const minMatches = Math.min(4, candidates.length);
|
|
101
|
+
const matches = candidates.reduce((count, token) => (cmd.includes(token) ? count + 1 : count), 0);
|
|
102
|
+
return matches >= minMatches;
|
|
103
|
+
}
|
|
104
|
+
// For launcher commands (bun/node/etc), the listener is often a child (e.g. bun -> node -> vite).
|
|
105
|
+
// Allow matching against the meaningful args even if the launcher itself isn't in the command line.
|
|
106
|
+
if (!LAUNCHER_COMMANDS.has(config.command))
|
|
107
|
+
return false;
|
|
108
|
+
const minMatches = Math.min(2, candidates.length);
|
|
109
|
+
const matches = candidates.reduce((count, token) => (cmd.includes(token) ? count + 1 : count), 0);
|
|
110
|
+
return matches >= minMatches;
|
|
111
|
+
}
|
|
112
|
+
async function getProcessLineage(runtime, pid) {
|
|
113
|
+
const lineage = [];
|
|
114
|
+
const seen = new Set();
|
|
115
|
+
let currentPid = pid;
|
|
116
|
+
while (currentPid > 1 && !seen.has(currentPid)) {
|
|
117
|
+
seen.add(currentPid);
|
|
118
|
+
// A null command is a process that exited; the lineage ends there.
|
|
119
|
+
const command = await getProcessCommand(runtime, currentPid);
|
|
120
|
+
if (command === null)
|
|
121
|
+
break;
|
|
122
|
+
lineage.push({ pid: currentPid, command });
|
|
123
|
+
const parentPid = await (await getRuntimeProcessService(runtime)).parent(currentPid);
|
|
124
|
+
if (parentPid === null || parentPid <= 1)
|
|
125
|
+
break;
|
|
126
|
+
currentPid = parentPid;
|
|
127
|
+
}
|
|
128
|
+
return lineage;
|
|
129
|
+
}
|
|
130
|
+
export function selectCommandLineageKillPid(lineage, config, fallbackPid) {
|
|
131
|
+
for (let i = lineage.length - 1; i >= 0; i -= 1) {
|
|
132
|
+
const entry = lineage[i];
|
|
133
|
+
if (isCommandLineMatch(entry.command, config)) {
|
|
134
|
+
return entry.pid;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return fallbackPid;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Positive signature evidence only; ownership is proved separately. The
|
|
141
|
+
* selected launch-preparation provider owns process identity when it supplies
|
|
142
|
+
* `matchesProcessCommand`; without that hook the generic command-line match
|
|
143
|
+
* decides.
|
|
144
|
+
*/
|
|
145
|
+
export async function matchesCommandSignature(runtime, command, config, port) {
|
|
146
|
+
const resolved = await resolveLaunchIdentity(runtime, config);
|
|
147
|
+
if (resolved?.implementation.matchesProcessCommand) {
|
|
148
|
+
return resolved.implementation.matchesProcessCommand({ command, config, port });
|
|
149
|
+
}
|
|
150
|
+
return isCommandLineMatch(command, config);
|
|
151
|
+
}
|
|
152
|
+
export async function findPortConflicts(runtime, config, existingPid) {
|
|
153
|
+
const conflicts = [];
|
|
154
|
+
const resolved = await resolveLaunchIdentity(runtime, config);
|
|
155
|
+
const ports = await extractMonitoredPorts(runtime, config);
|
|
156
|
+
// Pre-compute descendant PIDs if we have an existing managed process
|
|
157
|
+
// This allows us to recognize child processes (like node spawned by bun)
|
|
158
|
+
// as belonging to our managed process tree
|
|
159
|
+
const descendants = existingPid
|
|
160
|
+
? new Set(await getDescendantPids(runtime, existingPid))
|
|
161
|
+
: new Set();
|
|
162
|
+
for (const port of ports) {
|
|
163
|
+
const pid = await findProcessOnPort(runtime, port);
|
|
164
|
+
if (!pid)
|
|
165
|
+
continue;
|
|
166
|
+
const lineage = await getProcessLineage(runtime, pid);
|
|
167
|
+
// The holder exited between the port probe and the process table read.
|
|
168
|
+
if (lineage.length === 0)
|
|
169
|
+
continue;
|
|
170
|
+
const cmd = lineage
|
|
171
|
+
.map((entry) => entry.command)
|
|
172
|
+
.filter((command) => Boolean(command))
|
|
173
|
+
.join(' <- ');
|
|
174
|
+
const killPid = selectCommandLineageKillPid(lineage, config, pid);
|
|
175
|
+
// Check if it's our process OR a child/descendant of our process
|
|
176
|
+
// This fixes the issue where bun spawns node for vite, and node holds the port
|
|
177
|
+
const isOurs = existingPid !== null && (pid === existingPid || descendants.has(pid));
|
|
178
|
+
// Determine conflict type
|
|
179
|
+
let type = 'orphan';
|
|
180
|
+
if (config.healthCheck?.type === 'http') {
|
|
181
|
+
const hcPort = extractPortFromEndpoint(config.healthCheck.endpoint);
|
|
182
|
+
if (hcPort === port)
|
|
183
|
+
type = 'http';
|
|
184
|
+
}
|
|
185
|
+
if (config.healthCheck?.type === 'tcp' && config.healthCheck.port === port) {
|
|
186
|
+
type = 'tcp';
|
|
187
|
+
}
|
|
188
|
+
let matchedBy;
|
|
189
|
+
if (resolved) {
|
|
190
|
+
const owned = (await providerMonitoredPortsFor(resolved, config)).includes(port);
|
|
191
|
+
if (owned) {
|
|
192
|
+
type = 'forward';
|
|
193
|
+
matchedBy = resolved.matchedBy;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
conflicts.push({ port, pid, killPid, command: cmd || null, type, isOurs, matchedBy });
|
|
197
|
+
}
|
|
198
|
+
return conflicts;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/utils/ports.ts"],"names":[],"mappings":"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"}
|