Add managed daemon install plans

This commit is contained in:
jwinterm
2026-07-06 05:42:41 -04:00
parent a3ad5c900b
commit 035ab4ac81
6 changed files with 523 additions and 0 deletions
+11
View File
@@ -117,6 +117,17 @@ The dry-run command is intentionally stricter than `doctor`: missing generated o
blocked during activation, because AMPG must not point a transport at an unbuilt output
root.
## Install plan
`ampg install-plan` translates managed daemon decisions into package, state, config,
supervisor, and health-check steps. It does not install packages, create directories, or
start services. The output is a reviewable bridge between daemon ownership decisions and
future live apply support.
Tor and I2P HTTP publishing include the transport daemon and the loopback web-serving
layer in the install plan, because the hidden service or tunnel must have a local HTTP
target.
## Interaction boundary
v1 is static-first, but the architecture reserves a path for interactive applications.
+10
View File
@@ -39,6 +39,7 @@ config artifacts.
```sh
python3 -m ampg --config gateway.toml status
python3 -m ampg --config gateway.toml doctor
python3 -m ampg --config gateway.toml install-plan --profile mobile-i2p
python3 -m ampg --config gateway.toml apply --dry-run
python3 -m ampg --config gateway.toml apply --dry-run --profile mobile-i2p
python3 -m ampg --config gateway.toml apply --dry-run --protocol i2p
@@ -53,6 +54,11 @@ adapter, installed/running daemon probe, action, and policy result.
daemon policy feasibility. It exits nonzero only for errors; missing build output is a
warning so operators can run it before the first build.
`install-plan` prints the package, state-directory, managed-config, supervisor, and
health-check steps needed for AMPG-owned daemons. It is dry-run only. Adopted daemons and
external-policy targets are shown as skipped, while unsupported platform/daemon pairs are
blocked.
`apply --dry-run` prints the activation sequence for each enabled protocol: generated
output readiness, config artifacts to review, daemon action, and post-apply health
checks. It exits nonzero when any step is blocked. `--write-artifacts` writes reviewable
@@ -75,6 +81,10 @@ Platform providers describe how AMPG may supervise managed daemons:
- `android-termux`: Termux-style user-space daemons for mobile/server experiments.
- `unknown`: render and plan only; daemon management is disabled.
Package commands in `install-plan` are review hints, not executed actions. Systemd hosts
currently emit `apt`-style package hints, Termux emits `pkg`, macOS emits `brew`, and
user-space Linux asks the operator to use the local user package manager.
## Adapter notes
### Clearnet