@vibesdotdev/pm 0.0.0-stage → 1.0.0-rc.3
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,763 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preset Executor
|
|
3
|
+
* Orchestrates preset lifecycle with unified process + resource dependency resolution
|
|
4
|
+
*/
|
|
5
|
+
import * as z from 'zod/v4';
|
|
6
|
+
import { CapabilityError, CaughtFailureSchema, getRuntimeHostCommands, getRuntimeStdio, isCapabilityError, requireRuntimeCwd } from '@vibesdotdev/kernel';
|
|
7
|
+
import { isProcessExited } from "../schemas/process.js";
|
|
8
|
+
import { DependencyResolver } from "./dependency-resolver.js";
|
|
9
|
+
import { composeHookEnv } from "../helpers/process-credentials.js";
|
|
10
|
+
import { redactedExcerpt } from '@vibesdotdev/shared/utils';
|
|
11
|
+
import { isWaitTimeout } from "../utils/bounded-wait.js";
|
|
12
|
+
import { attempt, failureText } from "../utils/attempt.js";
|
|
13
|
+
import { waitForProcessState } from "../services/state-wait.js";
|
|
14
|
+
import { readPMBudget } from "../graph.js";
|
|
15
|
+
import { runTimedCapture } from '@vibesdotdev/kernel/execution';
|
|
16
|
+
import { Semaphore } from "../utils/semaphore.js";
|
|
17
|
+
import { resolveHookCommand } from "../services/process-command.js";
|
|
18
|
+
function emptyStartResult() {
|
|
19
|
+
return { success: true, resourcesSetup: [], processesStarted: [], errors: [] };
|
|
20
|
+
}
|
|
21
|
+
const DEFAULT_PROCESS_START_CONCURRENCY = 4;
|
|
22
|
+
const DEFAULT_LIFECYCLE_HOOK_TIMEOUT_MS = 120_000;
|
|
23
|
+
/** The most of a hook's output a failure message carries. */
|
|
24
|
+
const HOOK_OUTPUT_EXCERPT_CHARS = 4_000;
|
|
25
|
+
/**
|
|
26
|
+
* How many processes one batch starts at once: the declared budget
|
|
27
|
+
* (`config.plugins.pm.budget.processStartConcurrency`, H1), else the preset's
|
|
28
|
+
* `maxProcessConcurrency`, else the default. Declared config, never an env
|
|
29
|
+
* knob (the `PM_PROCESS_START_CONCURRENCY` read is deleted, pm.md S9).
|
|
30
|
+
*/
|
|
31
|
+
async function resolveProcessStartConcurrency(preset, runtime) {
|
|
32
|
+
const budget = await readPMBudget(runtime);
|
|
33
|
+
return budget.processStartConcurrency ?? preset.maxProcessConcurrency ?? DEFAULT_PROCESS_START_CONCURRENCY;
|
|
34
|
+
}
|
|
35
|
+
const PositiveTimeoutSchema = z.number().positive();
|
|
36
|
+
function positiveTimeout(value, fallback) {
|
|
37
|
+
const parsed = PositiveTimeoutSchema.safeParse(value);
|
|
38
|
+
return parsed.success ? parsed.data : fallback;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* `work` under a deadline on the runtime lifecycle (RC07). With no deadline it
|
|
42
|
+
* still ends on the runtime's disposal. On the deadline it rejects `message`.
|
|
43
|
+
*/
|
|
44
|
+
async function withTimeout(runtime, work, timeoutMs, message, reason) {
|
|
45
|
+
const waited = await attempt(() => runtime.lifecycle.wait(work, { timeoutMs: timeoutMs ?? MAX_UNBOUNDED_WAIT_MS, reason }));
|
|
46
|
+
if (waited.ok)
|
|
47
|
+
return waited.value;
|
|
48
|
+
if (timeoutMs && isWaitTimeout(waited.failure)) {
|
|
49
|
+
throw new CapabilityError(message, 'TIMEOUT', {
|
|
50
|
+
reason: `${reason}-timeout`,
|
|
51
|
+
details: { timeoutMs },
|
|
52
|
+
cause: waited.failure
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
throw waited.failure;
|
|
56
|
+
}
|
|
57
|
+
/** The preset's progress lines: results on stdout, diagnostics on stderr, through the runtime's host text output. */
|
|
58
|
+
async function openPresetOutput(runtime) {
|
|
59
|
+
const stdio = await getRuntimeStdio(runtime);
|
|
60
|
+
return {
|
|
61
|
+
out: (msg) => stdio.write('stdout', `${msg}\n`),
|
|
62
|
+
err: (msg) => stdio.write('stderr', `${msg}\n`)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** The failure of a node that is already running: success for the batch that wanted it running. */
|
|
66
|
+
function isAlreadyRunning(failure) {
|
|
67
|
+
return isCapabilityError(failure) && failure.code === 'CONFLICT' && failure.reason === 'process-already-running';
|
|
68
|
+
}
|
|
69
|
+
/** The longest wait the lifecycle admits: "no deadline" still ends on disposal. */
|
|
70
|
+
const MAX_UNBOUNDED_WAIT_MS = 2_147_483_647;
|
|
71
|
+
function emptyStopResult() {
|
|
72
|
+
return { success: true, processesStopped: [], resourcesTornDown: [], errors: [] };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Preset Executor
|
|
76
|
+
* Coordinates resource setup and process startup based on dependencies
|
|
77
|
+
*/
|
|
78
|
+
export class PresetExecutor {
|
|
79
|
+
processManager;
|
|
80
|
+
resourceManager;
|
|
81
|
+
getRuntime;
|
|
82
|
+
dependencyResolver;
|
|
83
|
+
constructor(processManager, resourceManager,
|
|
84
|
+
/** The daemon's runtime; a getter, so it follows hot-reload generations. */
|
|
85
|
+
getRuntime) {
|
|
86
|
+
this.processManager = processManager;
|
|
87
|
+
this.resourceManager = resourceManager;
|
|
88
|
+
this.getRuntime = getRuntime;
|
|
89
|
+
this.dependencyResolver = new DependencyResolver();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Expand a preset's explicitly-listed process/resource ids into the full set
|
|
93
|
+
* that must be operated on, transitively pulling in every declared dependency.
|
|
94
|
+
*
|
|
95
|
+
* A preset only lists the things you care about (e.g. an app process), but
|
|
96
|
+
* those declare `dependencies` on resources/processes the preset never names
|
|
97
|
+
* (e.g. a port-forward, a namespace, a TLS secret). Without this expansion the
|
|
98
|
+
* dependency graph is built from the filtered-down set only, so either
|
|
99
|
+
* `buildGraph` throws "Dependency not found" or the dependency silently never
|
|
100
|
+
* starts. Expanding here means a process's dependencies are registered and
|
|
101
|
+
* started automatically, regardless of whether the preset names them.
|
|
102
|
+
*
|
|
103
|
+
* @param presetProcessIds Process ids the preset explicitly lists
|
|
104
|
+
* @param presetResourceIds Resource ids the preset explicitly lists
|
|
105
|
+
* @param allProcesses Full pool of known process configs
|
|
106
|
+
* @param allResources Full pool of known resource configs
|
|
107
|
+
*/
|
|
108
|
+
expandWithDependencies(presetProcessIds, presetResourceIds, allProcesses, allResources) {
|
|
109
|
+
const processById = new Map(allProcesses.map((p) => [p.id, p]));
|
|
110
|
+
const resourceById = new Map(allResources.map((r) => [r.id, r]));
|
|
111
|
+
const includedProcesses = new Map();
|
|
112
|
+
const includedResources = new Map();
|
|
113
|
+
const queue = [];
|
|
114
|
+
// Seed the queue with whatever the preset explicitly names.
|
|
115
|
+
for (const id of presetProcessIds) {
|
|
116
|
+
const config = processById.get(id);
|
|
117
|
+
if (config && !includedProcesses.has(id)) {
|
|
118
|
+
includedProcesses.set(id, config);
|
|
119
|
+
queue.push(id);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const id of presetResourceIds) {
|
|
123
|
+
const config = resourceById.get(id);
|
|
124
|
+
if (config && !includedResources.has(id)) {
|
|
125
|
+
includedResources.set(id, config);
|
|
126
|
+
queue.push(id);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Walk declared dependencies breadth-first, pulling each into the set.
|
|
130
|
+
// Unknown ids are left out so buildGraph still surfaces a clear
|
|
131
|
+
// "Dependency not found" error for genuine typos / missing configs.
|
|
132
|
+
while (queue.length > 0) {
|
|
133
|
+
const id = queue.shift();
|
|
134
|
+
const processConfig = includedProcesses.get(id);
|
|
135
|
+
const config = processConfig ?? includedResources.get(id);
|
|
136
|
+
// `requiresPass` gates are pulled in alongside `dependencies`: a preset
|
|
137
|
+
// naming an app must also operate the task that gates it (a migration,
|
|
138
|
+
// a seed), or the app is scheduled against a gate nothing will satisfy.
|
|
139
|
+
const deps = [...(config?.dependencies ?? []), ...(processConfig?.requiresPass ?? [])];
|
|
140
|
+
for (const depId of deps) {
|
|
141
|
+
if (includedProcesses.has(depId) || includedResources.has(depId))
|
|
142
|
+
continue;
|
|
143
|
+
const depResource = resourceById.get(depId);
|
|
144
|
+
if (depResource) {
|
|
145
|
+
includedResources.set(depId, depResource);
|
|
146
|
+
queue.push(depId);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const depProcess = processById.get(depId);
|
|
150
|
+
if (depProcess) {
|
|
151
|
+
includedProcesses.set(depId, depProcess);
|
|
152
|
+
queue.push(depId);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
processes: Array.from(includedProcesses.values()),
|
|
158
|
+
resources: Array.from(includedResources.values())
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Start a preset - setup resources and start processes
|
|
163
|
+
*/
|
|
164
|
+
async start(preset, processConfigs, resourceConfigs, options = {}) {
|
|
165
|
+
const result = emptyStartResult();
|
|
166
|
+
const presetStartTime = Date.now();
|
|
167
|
+
const { out } = await openPresetOutput(this.getRuntime());
|
|
168
|
+
out(`\n🚀 Starting preset '${preset.name || preset.id}'...\n`);
|
|
169
|
+
try {
|
|
170
|
+
// 1. Stop mutually exclusive processes before bootstrap/start.
|
|
171
|
+
await this.stopConflictingProcesses(preset.conflicts ?? []);
|
|
172
|
+
// 2. Run bootstrap hook if present
|
|
173
|
+
if (preset.bootstrap) {
|
|
174
|
+
await this.runHook(preset.bootstrap, 'bootstrap');
|
|
175
|
+
}
|
|
176
|
+
// 3. Resolve the preset's processes/resources, transitively pulling in
|
|
177
|
+
// every declared dependency so they're registered + started automatically
|
|
178
|
+
// even when the preset itself doesn't name them.
|
|
179
|
+
const { processes: presetProcesses, resources: presetResources } = this.expandWithDependencies(preset.processes ?? [], preset.resources ?? [], processConfigs, resourceConfigs);
|
|
180
|
+
// 4. Build dependency graph
|
|
181
|
+
const graph = this.dependencyResolver.buildGraph(presetProcesses, presetResources);
|
|
182
|
+
// 5. Detect cycles
|
|
183
|
+
const cycles = this.dependencyResolver.detectCycles(graph);
|
|
184
|
+
if (cycles) {
|
|
185
|
+
throw new CapabilityError(`Dependency cycles detected:\n${cycles.map((c) => c.description).join('\n')}`, 'INVALID_INPUT', { reason: 'pm-dependency-cycle', details: { cycles: cycles.map((c) => c.path) } });
|
|
186
|
+
}
|
|
187
|
+
// 6. Get execution order (batches for parallel execution)
|
|
188
|
+
const batches = this.dependencyResolver.resolveStartupOrder(graph);
|
|
189
|
+
// Track failed nodes for fail-fast cascading
|
|
190
|
+
const failedNodes = new Set();
|
|
191
|
+
// Gate process starts to avoid vite/rolldown thundering-herd CPU thrash.
|
|
192
|
+
const processSemaphore = new Semaphore(await resolveProcessStartConcurrency(preset, this.getRuntime()));
|
|
193
|
+
// 7. Execute batches in order, waiting for each batch to be healthy before next
|
|
194
|
+
// This ensures dependencies are actually ready, not just started
|
|
195
|
+
for (let i = 0; i < batches.length; i++) {
|
|
196
|
+
const batch = batches[i];
|
|
197
|
+
await this.executeBatch(batch, result, failedNodes, graph, processSemaphore);
|
|
198
|
+
// Wait for this batch's processes to become healthy before starting next batch
|
|
199
|
+
// This is critical for dependency ordering (e.g., port-forwards must be healthy before apps start)
|
|
200
|
+
const batchProcesses = batch.flatMap((n) => (n.type === 'process' ? [n.config] : []));
|
|
201
|
+
const batchResources = batch.flatMap((n) => (n.type === 'resource' ? [n.config] : []));
|
|
202
|
+
// Only wait if there's a next batch that might depend on this one
|
|
203
|
+
if (i < batches.length - 1 && (batchProcesses.length > 0 || batchResources.length > 0)) {
|
|
204
|
+
await this.waitForBatchReady(batchResources, batchProcesses, result, failedNodes, options);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// 8. Final health check for last batch (only for items that succeeded)
|
|
208
|
+
const succeededResources = presetResources.filter((r) => result.resourcesSetup.includes(r.id));
|
|
209
|
+
const succeededProcesses = presetProcesses.filter((p) => result.processesStarted.includes(p.id));
|
|
210
|
+
await this.waitForAllReady(succeededResources, succeededProcesses, result, options);
|
|
211
|
+
// Final summary with total time
|
|
212
|
+
const totalElapsed = ((Date.now() - presetStartTime) / 1000).toFixed(1);
|
|
213
|
+
const successCount = result.resourcesSetup.length + result.processesStarted.length;
|
|
214
|
+
const errorCount = result.errors.length;
|
|
215
|
+
const totalItems = successCount + errorCount;
|
|
216
|
+
if (errorCount === 0) {
|
|
217
|
+
out(`\n✅ Preset '${preset.id}' ready: ${totalItems} item(s) in ${totalElapsed}s\n`);
|
|
218
|
+
}
|
|
219
|
+
else if (successCount === 0) {
|
|
220
|
+
// Complete failure - nothing could be started
|
|
221
|
+
result.success = false;
|
|
222
|
+
out(`\n❌ Preset '${preset.id}' failed: all ${errorCount} item(s) failed in ${totalElapsed}s\n`);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
// Partial success - some items started, others failed
|
|
226
|
+
out(`\n⚠️ Preset '${preset.id}': ${successCount}/${totalItems} ready, ${errorCount} error(s) in ${totalElapsed}s\n`);
|
|
227
|
+
}
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
const totalElapsed = ((Date.now() - presetStartTime) / 1000).toFixed(1);
|
|
232
|
+
out(`\n❌ Preset '${preset.id}' failed after ${totalElapsed}s\n`);
|
|
233
|
+
result.success = false;
|
|
234
|
+
result.errors.push({
|
|
235
|
+
id: preset.id,
|
|
236
|
+
error: failureText(CaughtFailureSchema.parse(error))
|
|
237
|
+
});
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Stop a preset - stop processes and teardown resources
|
|
243
|
+
*/
|
|
244
|
+
async stop(preset, processConfigs, resourceConfigs) {
|
|
245
|
+
const result = emptyStopResult();
|
|
246
|
+
try {
|
|
247
|
+
// 1. Resolve the preset's processes + their transitive dependencies, so
|
|
248
|
+
// dependency processes stop too and the graph includes the resources they
|
|
249
|
+
// reference (needed so buildGraph doesn't throw on a process→resource dep).
|
|
250
|
+
const { processes: presetProcesses, resources: presetResources } = this.expandWithDependencies(preset.processes ?? [], preset.resources ?? [], processConfigs, resourceConfigs);
|
|
251
|
+
// 2. Build dependency graph. Resources are included only to satisfy
|
|
252
|
+
// process dependency edges; the stop below is non-destructive (process
|
|
253
|
+
// stop only) so resources are never torn down here.
|
|
254
|
+
const graph = this.dependencyResolver.buildGraph(presetProcesses, presetResources);
|
|
255
|
+
// 3. Get teardown order (reverse of startup) for processes only
|
|
256
|
+
const batches = this.dependencyResolver.resolveTeardownOrder(graph);
|
|
257
|
+
// 4. Execute teardown batches (process stop only)
|
|
258
|
+
for (const batch of batches) {
|
|
259
|
+
const processOnly = batch.filter((node) => node.type === 'process');
|
|
260
|
+
await this.teardownProcessBatch(processOnly, result);
|
|
261
|
+
}
|
|
262
|
+
return result;
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
result.success = false;
|
|
266
|
+
result.errors.push({
|
|
267
|
+
id: preset.id,
|
|
268
|
+
error: failureText(CaughtFailureSchema.parse(error))
|
|
269
|
+
});
|
|
270
|
+
throw error;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Restart a preset
|
|
275
|
+
*/
|
|
276
|
+
async restart(preset, processConfigs, resourceConfigs, options = {}) {
|
|
277
|
+
// Stop first (non-destructive)
|
|
278
|
+
await this.stop(preset, processConfigs, resourceConfigs);
|
|
279
|
+
// No settle sleep: stop() returns once each process's exit is proven.
|
|
280
|
+
// Start again
|
|
281
|
+
return this.start(preset, processConfigs, resourceConfigs, options);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Teardown a preset - stop processes and teardown resources (destructive)
|
|
285
|
+
*/
|
|
286
|
+
async teardown(preset, processConfigs, resourceConfigs) {
|
|
287
|
+
const result = emptyStopResult();
|
|
288
|
+
try {
|
|
289
|
+
const { processes: presetProcesses, resources: presetResources } = this.expandWithDependencies(preset.processes ?? [], preset.resources ?? [], processConfigs, resourceConfigs);
|
|
290
|
+
const graph = this.dependencyResolver.buildGraph(presetProcesses, presetResources);
|
|
291
|
+
const batches = this.dependencyResolver.resolveTeardownOrder(graph);
|
|
292
|
+
for (const batch of batches) {
|
|
293
|
+
await this.teardownBatch(batch, result);
|
|
294
|
+
}
|
|
295
|
+
if (preset.teardown) {
|
|
296
|
+
await this.runHook(preset.teardown, 'teardown');
|
|
297
|
+
}
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
result.success = false;
|
|
302
|
+
result.errors.push({
|
|
303
|
+
id: preset.id,
|
|
304
|
+
error: failureText(CaughtFailureSchema.parse(error))
|
|
305
|
+
});
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Execute a batch of nodes in parallel
|
|
311
|
+
* Tracks failed nodes to enable fail-fast for dependent nodes
|
|
312
|
+
*/
|
|
313
|
+
/**
|
|
314
|
+
* True when a node is a finite `runOnce` task that has already passed, so a
|
|
315
|
+
* plan that merely depends on its outcome should not run it again.
|
|
316
|
+
*/
|
|
317
|
+
async isSatisfiedRunOnceTask(config) {
|
|
318
|
+
if (!config.task || !config.runOnce)
|
|
319
|
+
return false;
|
|
320
|
+
// A store read failure propagates: an unreadable outcome never reads as "not passed" (a rerun).
|
|
321
|
+
const status = await this.processManager.getStatus(config.id);
|
|
322
|
+
return status?.status === 'pass';
|
|
323
|
+
}
|
|
324
|
+
async executeBatch(batch, result, failedNodes, graph, processSemaphore) {
|
|
325
|
+
const { out, err } = await openPresetOutput(this.getRuntime());
|
|
326
|
+
// Log what we're starting in this batch
|
|
327
|
+
const resources = batch.filter((n) => n.type === 'resource').map((n) => n.id);
|
|
328
|
+
const processes = batch.filter((n) => n.type === 'process').map((n) => n.id);
|
|
329
|
+
if (resources.length > 0) {
|
|
330
|
+
out(`🔧 Setting up resource(s): ${resources.join(', ')}`);
|
|
331
|
+
}
|
|
332
|
+
if (processes.length > 0) {
|
|
333
|
+
const gate = processSemaphore ? ` (max ${processSemaphore.limit} concurrent)` : '';
|
|
334
|
+
out(`🚀 Starting process(es): ${processes.join(', ')}${gate}`);
|
|
335
|
+
}
|
|
336
|
+
const runNode = async (node) => {
|
|
337
|
+
// Check if any dependency has failed - if so, skip this node (fail-fast)
|
|
338
|
+
const deps = this.dependencyResolver.getDependencies(node.id, graph);
|
|
339
|
+
const failedDeps = deps.filter((depId) => failedNodes.has(depId));
|
|
340
|
+
if (failedDeps.length > 0) {
|
|
341
|
+
const errorMessage = `Skipped: dependency failed (${failedDeps.join(', ')})`;
|
|
342
|
+
err(` ⏭️ Skipping ${node.id}: ${errorMessage}`);
|
|
343
|
+
result.errors.push({
|
|
344
|
+
id: node.id,
|
|
345
|
+
error: errorMessage
|
|
346
|
+
});
|
|
347
|
+
failedNodes.add(node.id);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
// A resource already sitting in 'error' from a prior attempt is not
|
|
351
|
+
// re-attempted here: `resourceManager.setup()` can legitimately run
|
|
352
|
+
// for minutes (onCreate hook + waitForReady) before it gives up, and
|
|
353
|
+
// every `pm start <dependent>` re-running that same slow failure is
|
|
354
|
+
// exactly the "blocked 30 minutes on a known-broken dependency"
|
|
355
|
+
// incident this guard exists for (2026-09-02: `ai-router` waited the
|
|
356
|
+
// full 30min preset-start RPC timeout behind a failing
|
|
357
|
+
// `lmstudio-router-models` hook). The cached error is reported
|
|
358
|
+
// immediately instead, within this reconcile tick. `vibes pm start
|
|
359
|
+
// <resourceId>` bypasses the executor entirely (see
|
|
360
|
+
// pm.start.impl.ts's bare-resource branch) and is the explicit,
|
|
361
|
+
// unthrottled way to force a fresh attempt.
|
|
362
|
+
if (node.type === 'resource') {
|
|
363
|
+
const priorState = await this.resourceManager.getState(node.id);
|
|
364
|
+
if (priorState?.status === 'error') {
|
|
365
|
+
const lastErrorLine = (priorState.lastError ?? priorState.error ?? 'unknown error')
|
|
366
|
+
.split('\n')[0];
|
|
367
|
+
const errorMessage = `Resource ${node.id} already failed: ${lastErrorLine} (not retried automatically — run \`vibes pm start ${node.id}\` to force)`;
|
|
368
|
+
err(` ❌ ${node.id}: ${errorMessage}`);
|
|
369
|
+
result.errors.push({
|
|
370
|
+
id: node.id,
|
|
371
|
+
error: errorMessage
|
|
372
|
+
});
|
|
373
|
+
failedNodes.add(node.id);
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
const ran = await attempt(async () => {
|
|
378
|
+
if (node.type === 'resource') {
|
|
379
|
+
await this.resourceManager.setup(node.config);
|
|
380
|
+
out(` ✅ Resource setup complete: ${node.id}`);
|
|
381
|
+
result.resourcesSetup.push(node.id);
|
|
382
|
+
}
|
|
383
|
+
else if (await this.isSatisfiedRunOnceTask(node.config)) {
|
|
384
|
+
// `runOnce` means once. The gate it opens is already open, so the
|
|
385
|
+
// plan is satisfied without re-running it — a migration or seed
|
|
386
|
+
// pulled in as a `requiresPass` dependency must not re-execute on
|
|
387
|
+
// every app start. `pm start <task>` / `pm restart <task>` remain
|
|
388
|
+
// the explicit ways to run it again.
|
|
389
|
+
out(` ℹ️ Already passed: ${node.id}`);
|
|
390
|
+
result.processesStarted.push(node.id);
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
await this.processManager.start(node.config);
|
|
394
|
+
out(` ✅ Process started: ${node.id}`);
|
|
395
|
+
result.processesStarted.push(node.id);
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
if (ran.ok)
|
|
399
|
+
return;
|
|
400
|
+
// If process is already running, treat as success (it's running!)
|
|
401
|
+
if (isAlreadyRunning(ran.failure)) {
|
|
402
|
+
out(` ℹ️ Already running: ${node.id}`);
|
|
403
|
+
if (node.type === 'process') {
|
|
404
|
+
result.processesStarted.push(node.id);
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
result.resourcesSetup.push(node.id);
|
|
408
|
+
}
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
// Real error - add to errors list and track as failed
|
|
412
|
+
const errorMessage = failureText(ran.failure);
|
|
413
|
+
err(` ❌ Error with ${node.id}: ${errorMessage}`);
|
|
414
|
+
result.errors.push({
|
|
415
|
+
id: node.id,
|
|
416
|
+
error: errorMessage
|
|
417
|
+
});
|
|
418
|
+
failedNodes.add(node.id);
|
|
419
|
+
};
|
|
420
|
+
// Resources can go fully parallel — cheap setup. Processes gate through the
|
|
421
|
+
// shared semaphore so vite/rolldown cold starts don't thrash the machine.
|
|
422
|
+
// Critically, the semaphore holds until the process is *healthy*, not just
|
|
423
|
+
// spawned. processManager.start() returns immediately after spawn; vite's
|
|
424
|
+
// pre-bundle scan then transiently opens thousands of package.json fds for
|
|
425
|
+
// the next few minutes. Releasing the slot on spawn means every process
|
|
426
|
+
// ends up warming up concurrently and the system runs out of file handles
|
|
427
|
+
// (ENFILE) regardless of maxProcessConcurrency. Waiting for healthy
|
|
428
|
+
// serializes the warmup phase so only `limit` processes are FD-hot at once.
|
|
429
|
+
const promises = batch.map(async (node) => {
|
|
430
|
+
if (node.type !== 'process' || !processSemaphore) {
|
|
431
|
+
return runNode(node);
|
|
432
|
+
}
|
|
433
|
+
await processSemaphore.acquire();
|
|
434
|
+
try {
|
|
435
|
+
await runNode(node);
|
|
436
|
+
if (result.processesStarted.includes(node.id)) {
|
|
437
|
+
await this.waitForProcessWarmup(node.config);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
finally {
|
|
441
|
+
processSemaphore.release();
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
await Promise.all(promises);
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Stop every running process in `processIds`. Used internally as step 1 of
|
|
448
|
+
* `start()` for a preset's own `preset.conflicts`, and reused (not
|
|
449
|
+
* duplicated) by the daemon's `start` command handler so a direct `pm
|
|
450
|
+
* start <id>` honors `conflicts` declared on presets that list the
|
|
451
|
+
* process, not only `pm preset start` — see command-handler.ts.
|
|
452
|
+
*/
|
|
453
|
+
async stopConflictingProcesses(processIds) {
|
|
454
|
+
if (processIds.length === 0)
|
|
455
|
+
return;
|
|
456
|
+
const { out, err } = await openPresetOutput(this.getRuntime());
|
|
457
|
+
out(`🧹 Stopping conflicting process(es): ${processIds.join(', ')}`);
|
|
458
|
+
await Promise.all(processIds.map(async (processId) => {
|
|
459
|
+
const stopped = await attempt(async () => {
|
|
460
|
+
const status = await this.processManager.getStatus(processId);
|
|
461
|
+
if (status?.status !== 'running')
|
|
462
|
+
return false;
|
|
463
|
+
await this.processManager.stop(processId);
|
|
464
|
+
return true;
|
|
465
|
+
});
|
|
466
|
+
if (!stopped.ok) {
|
|
467
|
+
err(` ⚠️ Could not stop conflict ${processId}: ${failureText(stopped.failure)}`);
|
|
468
|
+
}
|
|
469
|
+
else if (stopped.value) {
|
|
470
|
+
out(` ✅ Stopped conflict: ${processId}`);
|
|
471
|
+
}
|
|
472
|
+
}));
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Wait for a process to finish its warmup phase so the start-semaphore can
|
|
476
|
+
* release its slot. Returns when the process is healthy, crashed, stopped,
|
|
477
|
+
* or its warmupMs budget has elapsed — whichever comes first. Processes
|
|
478
|
+
* without a healthCheck are treated as "instantly warm" (no wait).
|
|
479
|
+
*/
|
|
480
|
+
async waitForProcessWarmup(config) {
|
|
481
|
+
if (!config.healthCheck)
|
|
482
|
+
return;
|
|
483
|
+
// The owner's event: this process's next state write (healthy, crashed
|
|
484
|
+
// or stopped), bounded by its warmup budget. The deadline is not a failure.
|
|
485
|
+
await waitForProcessState(this.getRuntime(), this.processManager, config.id, (state) => state.status === 'crashed' ||
|
|
486
|
+
state.status === 'stopped' ||
|
|
487
|
+
(state.status === 'running' && state.healthStatus === 'healthy'), { timeoutMs: config.healthCheck.warmupMs || 30000, reason: 'pm-process-warmup' });
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Teardown a batch of nodes in parallel
|
|
491
|
+
*/
|
|
492
|
+
async teardownBatch(batch, result) {
|
|
493
|
+
const promises = batch.map(async (node) => {
|
|
494
|
+
const torn = await attempt(async () => {
|
|
495
|
+
if (node.type === 'process') {
|
|
496
|
+
await this.processManager.stop(node.id);
|
|
497
|
+
result.processesStopped.push(node.id);
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
await this.resourceManager.teardown(node.id);
|
|
501
|
+
result.resourcesTornDown.push(node.id);
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
// Don't rethrow - continue with other nodes
|
|
505
|
+
if (!torn.ok)
|
|
506
|
+
result.errors.push({ id: node.id, error: failureText(torn.failure) });
|
|
507
|
+
});
|
|
508
|
+
await Promise.all(promises);
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Teardown batch for processes only (non-destructive stop)
|
|
512
|
+
*/
|
|
513
|
+
async teardownProcessBatch(batch, result) {
|
|
514
|
+
const promises = batch.map(async (node) => {
|
|
515
|
+
if (node.type !== 'process')
|
|
516
|
+
return;
|
|
517
|
+
const stopped = await attempt(async () => {
|
|
518
|
+
// A finished task has nothing to stop, and its `pass`/`fail` record
|
|
519
|
+
// is the very thing `requiresPass` reads. Stopping it would overwrite
|
|
520
|
+
// that outcome with a liveness status and re-close the gate.
|
|
521
|
+
// A read failure lands in this node's error below, not in a blind stop.
|
|
522
|
+
const status = await this.processManager.getStatus(node.id);
|
|
523
|
+
if (status?.status === 'pass' || status?.status === 'fail')
|
|
524
|
+
return;
|
|
525
|
+
await this.processManager.stop(node.id);
|
|
526
|
+
result.processesStopped.push(node.id);
|
|
527
|
+
});
|
|
528
|
+
if (!stopped.ok)
|
|
529
|
+
result.errors.push({ id: node.id, error: failureText(stopped.failure) });
|
|
530
|
+
});
|
|
531
|
+
await Promise.all(promises);
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* Wait for all resources and processes to be ready
|
|
535
|
+
*/
|
|
536
|
+
async waitForAllReady(resources, processes, result, options = {}) {
|
|
537
|
+
const { out } = await openPresetOutput(this.getRuntime());
|
|
538
|
+
// Wait for resources with waitForReady=true
|
|
539
|
+
const resourcesToWait = resources.filter((r) => r.waitForReady);
|
|
540
|
+
if (resourcesToWait.length > 0) {
|
|
541
|
+
out(`⏳ Waiting for ${resourcesToWait.length} resource(s) to be ready: ${resourcesToWait.map((r) => r.id).join(', ')}`);
|
|
542
|
+
}
|
|
543
|
+
const resourceWaits = resourcesToWait.map(async (r) => {
|
|
544
|
+
const state = await this.resourceManager.getState(r.id);
|
|
545
|
+
if (state && state.status !== 'ready') {
|
|
546
|
+
out(` ⌛ Waiting for resource: ${r.id} (current status: ${state.status})`);
|
|
547
|
+
await withTimeout(this.getRuntime(), (signal) => this.resourceManager.waitForReady(r, state, { signal }), options.wait ? options.timeout : undefined, `Resource ${r.id} did not become ready within ${options.timeout}ms`, 'pm-resource-ready');
|
|
548
|
+
out(` ✅ Resource ready: ${r.id}`);
|
|
549
|
+
}
|
|
550
|
+
else if (state && state.status === 'ready') {
|
|
551
|
+
out(` ✅ Resource already ready: ${r.id}`);
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
// Wait for processes with health checks to become healthy
|
|
555
|
+
// This ensures processes are actually serving before we report success
|
|
556
|
+
// Only wait for processes that have health checks AND were successfully started
|
|
557
|
+
const startedProcessIds = new Set(result.processesStarted);
|
|
558
|
+
const processesWithHealthChecks = processes.filter((p) => p.healthCheck && startedProcessIds.has(p.id));
|
|
559
|
+
if (processesWithHealthChecks.length > 0) {
|
|
560
|
+
out(`⏳ Waiting for ${processesWithHealthChecks.length} process(es) to become healthy: ${processesWithHealthChecks.map((p) => p.id).join(', ')}`);
|
|
561
|
+
}
|
|
562
|
+
const processWaits = processesWithHealthChecks.map(async (p) => {
|
|
563
|
+
const timeout = options.wait
|
|
564
|
+
? positiveTimeout(options.timeout, p.healthCheck?.warmupMs || 30000)
|
|
565
|
+
: p.healthCheck?.warmupMs || 30000; // Use warmup as initial timeout
|
|
566
|
+
const startTime = performance.now();
|
|
567
|
+
const elapsedSec = () => ((performance.now() - startTime) / 1000).toFixed(1);
|
|
568
|
+
let lastLoggedStatus = '';
|
|
569
|
+
// Each committed state write of this process is the event (RC07).
|
|
570
|
+
const settled = await waitForProcessState(this.getRuntime(), this.processManager, p.id, (status) => {
|
|
571
|
+
if (status.status === 'crashed' || status.status === 'stopped') {
|
|
572
|
+
out(` ⚠️ Process ${p.id} is ${status.status} after ${elapsedSec()}s, skipping health wait`);
|
|
573
|
+
return true;
|
|
574
|
+
}
|
|
575
|
+
if (status.status === 'running' && status.healthStatus === 'healthy') {
|
|
576
|
+
out(` ✅ Process healthy: ${p.id} (${elapsedSec()}s)`);
|
|
577
|
+
return true;
|
|
578
|
+
}
|
|
579
|
+
const currentStatus = `${status.status}:${status.healthStatus || 'unknown'}`;
|
|
580
|
+
if (currentStatus !== lastLoggedStatus) {
|
|
581
|
+
out(` ⌛ Waiting for ${p.id}: ${status.status}, health=${status.healthStatus || 'unknown'} (${elapsedSec()}s/${(timeout / 1000).toFixed(0)}s)`);
|
|
582
|
+
lastLoggedStatus = currentStatus;
|
|
583
|
+
}
|
|
584
|
+
return false;
|
|
585
|
+
}, { timeoutMs: timeout, reason: 'pm-process-healthy' });
|
|
586
|
+
if (settled)
|
|
587
|
+
return;
|
|
588
|
+
// Timeout reached - check final status
|
|
589
|
+
const finalStatus = await this.processManager.getStatus(p.id);
|
|
590
|
+
if (finalStatus?.status === 'running') {
|
|
591
|
+
// Process is running, even if health is unknown - that's acceptable
|
|
592
|
+
out(` ℹ️ Process ${p.id} running (health: ${finalStatus.healthStatus || 'unknown'}, ${elapsedSec()}s)`);
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
out(` ⚠️ Process ${p.id} did not become healthy within ${timeout}ms`);
|
|
596
|
+
}
|
|
597
|
+
});
|
|
598
|
+
await Promise.all([...resourceWaits, ...processWaits]);
|
|
599
|
+
if (resourcesToWait.length > 0) {
|
|
600
|
+
out(`✅ All resources are ready`);
|
|
601
|
+
}
|
|
602
|
+
if (processesWithHealthChecks.length > 0) {
|
|
603
|
+
out(`✅ All processes checked`);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Wait for a batch of resources and processes to be ready
|
|
608
|
+
* Shorter timeout than waitForAllReady - just enough for dependencies
|
|
609
|
+
* Marks resources/processes as failed if they don't become ready (for fail-fast cascading)
|
|
610
|
+
*/
|
|
611
|
+
async waitForBatchReady(resources, processes, result, failedNodes, options = {}) {
|
|
612
|
+
const { out, err } = await openPresetOutput(this.getRuntime());
|
|
613
|
+
// Wait for resources with waitForReady=true that were successfully set up
|
|
614
|
+
const setupResourceIds = new Set(result.resourcesSetup);
|
|
615
|
+
const resourcesToWait = resources.filter((r) => r.waitForReady && setupResourceIds.has(r.id));
|
|
616
|
+
const resourceWaits = resourcesToWait.map(async (r) => {
|
|
617
|
+
const ready = await attempt(async () => {
|
|
618
|
+
const state = await this.resourceManager.getState(r.id);
|
|
619
|
+
if (state && state.status !== 'ready') {
|
|
620
|
+
await withTimeout(this.getRuntime(), (signal) => this.resourceManager.waitForReady(r, state, { signal }), options.wait ? options.timeout : undefined, `Resource ${r.id} did not become ready within ${options.timeout}ms`, 'pm-resource-ready');
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
if (ready.ok)
|
|
624
|
+
return;
|
|
625
|
+
// Resource failed to become ready - mark as failed for cascading
|
|
626
|
+
const errorMessage = failureText(ready.failure);
|
|
627
|
+
err(` ❌ Resource ${r.id} failed to become ready: ${errorMessage}`);
|
|
628
|
+
result.errors.push({ id: r.id, error: errorMessage });
|
|
629
|
+
// Remove from resourcesSetup since it's not actually ready
|
|
630
|
+
const idx = result.resourcesSetup.indexOf(r.id);
|
|
631
|
+
if (idx !== -1)
|
|
632
|
+
result.resourcesSetup.splice(idx, 1);
|
|
633
|
+
failedNodes.add(r.id);
|
|
634
|
+
});
|
|
635
|
+
// Wait for processes with health checks to become healthy
|
|
636
|
+
const startedProcessIds = new Set(result.processesStarted);
|
|
637
|
+
const processesWithHealthChecks = processes.filter((p) => p.healthCheck && startedProcessIds.has(p.id));
|
|
638
|
+
const processWaits = processesWithHealthChecks.map(async (p) => {
|
|
639
|
+
const timeout = options.wait
|
|
640
|
+
? positiveTimeout(options.timeout, p.healthCheck?.warmupMs || 30000)
|
|
641
|
+
: p.healthCheck?.warmupMs || 30000;
|
|
642
|
+
const startTime = performance.now();
|
|
643
|
+
// Each committed state write of this process is the event (RC07).
|
|
644
|
+
const settled = await waitForProcessState(this.getRuntime(), this.processManager, p.id, (status) => status.status === 'crashed' ||
|
|
645
|
+
status.status === 'stopped' ||
|
|
646
|
+
(status.status === 'running' && status.healthStatus === 'healthy'), { timeoutMs: timeout, reason: 'pm-process-healthy' });
|
|
647
|
+
if (settled?.status === 'crashed' || settled?.status === 'stopped') {
|
|
648
|
+
// Crashed or stopped: mark as failed for cascading.
|
|
649
|
+
const errorMessage = `Process ${settled.status}`;
|
|
650
|
+
err(` ❌ ${p.id}: ${errorMessage}`);
|
|
651
|
+
result.errors.push({ id: p.id, error: errorMessage });
|
|
652
|
+
const idx = result.processesStarted.indexOf(p.id);
|
|
653
|
+
if (idx !== -1)
|
|
654
|
+
result.processesStarted.splice(idx, 1);
|
|
655
|
+
failedNodes.add(p.id);
|
|
656
|
+
return;
|
|
657
|
+
}
|
|
658
|
+
if (settled) {
|
|
659
|
+
out(` ✅ ${p.id} ready (${((performance.now() - startTime) / 1000).toFixed(1)}s)`);
|
|
660
|
+
return;
|
|
661
|
+
}
|
|
662
|
+
// Timeout - log warning but continue (dependent processes will fail if truly broken)
|
|
663
|
+
out(` ⚠️ ${p.id} not healthy within ${(timeout / 1000).toFixed(0)}s, continuing...`);
|
|
664
|
+
});
|
|
665
|
+
await Promise.all([
|
|
666
|
+
...resourceWaits,
|
|
667
|
+
...processWaits,
|
|
668
|
+
...this.waitForTasks(processes, result, failedNodes, options)
|
|
669
|
+
]);
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Wait for finite tasks in a batch to reach their terminal outcome.
|
|
673
|
+
*
|
|
674
|
+
* A task has no health check — it runs and exits — so the health-check wait
|
|
675
|
+
* above skips it entirely and the next batch starts while the task is still
|
|
676
|
+
* running. Anything gated on it by `requiresPass` then fails on a gate that
|
|
677
|
+
* was moments from opening. Batch readiness for a task means `pass`.
|
|
678
|
+
*/
|
|
679
|
+
waitForTasks(processes, result, failedNodes, options = {}) {
|
|
680
|
+
const startedProcessIds = new Set(result.processesStarted);
|
|
681
|
+
return processes
|
|
682
|
+
.filter((p) => p.task && startedProcessIds.has(p.id))
|
|
683
|
+
.map(async (p) => {
|
|
684
|
+
const { out, err } = await openPresetOutput(this.getRuntime());
|
|
685
|
+
const timeout = positiveTimeout(options.wait ? options.timeout : undefined, 300_000);
|
|
686
|
+
const startTime = performance.now();
|
|
687
|
+
const fail = (message) => {
|
|
688
|
+
err(` ❌ ${p.id}: ${message}`);
|
|
689
|
+
result.errors.push({ id: p.id, error: message });
|
|
690
|
+
const idx = result.processesStarted.indexOf(p.id);
|
|
691
|
+
if (idx !== -1)
|
|
692
|
+
result.processesStarted.splice(idx, 1);
|
|
693
|
+
failedNodes.add(p.id);
|
|
694
|
+
};
|
|
695
|
+
// Each committed state write of this task is the event (RC07).
|
|
696
|
+
const outcome = await waitForProcessState(this.getRuntime(), this.processManager, p.id, isProcessExited, { timeoutMs: timeout, reason: 'pm-task-outcome' });
|
|
697
|
+
if (!outcome) {
|
|
698
|
+
fail(`Task did not finish within ${(timeout / 1000).toFixed(0)}s`);
|
|
699
|
+
}
|
|
700
|
+
else if (outcome.status === 'pass') {
|
|
701
|
+
out(` ✅ ${p.id} passed (${((performance.now() - startTime) / 1000).toFixed(1)}s)`);
|
|
702
|
+
}
|
|
703
|
+
else {
|
|
704
|
+
fail(outcome.lastError ?? `Task ${outcome.status}`);
|
|
705
|
+
}
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Run a lifecycle hook
|
|
710
|
+
*/
|
|
711
|
+
async runHook(hook, hookType) {
|
|
712
|
+
// A preset hook is a PM child (C15): the base set, the host's re-entry
|
|
713
|
+
// facts and roots, the names it inherits, its cwd's `.env`, its env, and
|
|
714
|
+
// its declared credentials resolved at spawn (D-RC05), never argv.
|
|
715
|
+
const runtime = this.getRuntime();
|
|
716
|
+
const cwd = hook.cwd ?? requireRuntimeCwd(runtime);
|
|
717
|
+
const hookEnv = await composeHookEnv(runtime, hook, cwd, `preset:${hookType}`);
|
|
718
|
+
const hostCommands = hook.selfSpawn ? await getRuntimeHostCommands(runtime) : undefined;
|
|
719
|
+
const resolved = resolveHookCommand(hook, hostCommands, `PM preset ${hookType} hook`);
|
|
720
|
+
const timeoutMs = positiveTimeout(hook.timeout, DEFAULT_LIFECYCLE_HOOK_TIMEOUT_MS);
|
|
721
|
+
// The hook's whole environment is the one composed above.
|
|
722
|
+
const ran = await attempt(() => runTimedCapture(runtime, resolved.command, resolved.args, {
|
|
723
|
+
env: hookEnv.env,
|
|
724
|
+
envMode: 'replace',
|
|
725
|
+
cwd,
|
|
726
|
+
timeoutMs
|
|
727
|
+
}));
|
|
728
|
+
if (!ran.ok) {
|
|
729
|
+
hookEnv.audit('failure');
|
|
730
|
+
throw ran.failure;
|
|
731
|
+
}
|
|
732
|
+
const { exitCode, timedOut } = ran.value;
|
|
733
|
+
hookEnv.audit(exitCode === 0 && !timedOut ? 'success' : 'failure');
|
|
734
|
+
// A credential the hook printed never reaches the failure message: its
|
|
735
|
+
// output is a bounded, credential-free excerpt.
|
|
736
|
+
const excerpt = (text) => redactedExcerpt(text, { secrets: hookEnv.redact, maxChars: HOOK_OUTPUT_EXCERPT_CHARS });
|
|
737
|
+
const stdout = excerpt(ran.value.stdout);
|
|
738
|
+
const stderr = excerpt(ran.value.stderr);
|
|
739
|
+
if (timedOut) {
|
|
740
|
+
const detail = (stderr || stdout).trim();
|
|
741
|
+
const message = `${hookType} hook timed out after ${timeoutMs}ms${detail ? `: ${detail}` : ''}`;
|
|
742
|
+
if (!hook.ignoreFailure) {
|
|
743
|
+
throw new CapabilityError(message, 'TIMEOUT', {
|
|
744
|
+
reason: 'pm-hook-timeout',
|
|
745
|
+
details: { hookType, timeoutMs }
|
|
746
|
+
});
|
|
747
|
+
}
|
|
748
|
+
(await openPresetOutput(runtime)).err(message);
|
|
749
|
+
return;
|
|
750
|
+
}
|
|
751
|
+
if (exitCode !== 0) {
|
|
752
|
+
const message = `${hookType} hook failed: ${stderr || stdout}`;
|
|
753
|
+
if (!hook.ignoreFailure) {
|
|
754
|
+
throw new CapabilityError(message, 'UNAVAILABLE', {
|
|
755
|
+
reason: 'pm-hook-failed',
|
|
756
|
+
details: { hookType, exitCode }
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
(await openPresetOutput(runtime)).err(message);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
//# sourceMappingURL=preset-executor.js.map
|