Native ACP and adapter ACP
A local agent has two run topologies. The topology is written in the agent profile. Install and preflight check different parts accordingly.
Native ACP
The installable itself speaks ACP. After install and a passing probe, a conversation can start. Most registry entries ship this way. There is one runtime component to install and verify.
Adapter-backed ACP
The ACP process only bridges. Actual capability comes from another local Runtime. Both parts must be installed and bound explicitly. The built-in profile names topology and detection candidates. The adapter must use the CLI the profile declared. If Runtime or the bridge is missing, preflight fails. An ACP process that is already up still needs a valid Runtime binding before a conversation can be created.
Launch constraints
This pipeline starts ACP on local stdio only. Registration must yield a reviewable local install. A remote ACP address, HTTP or WebSocket endpoint, user-defined launch command, and download-and-run on every start sit outside this pipeline.
If a registry entry depends on an undeclared external program, preflight fails and the entry is marked unsupported. Undeclared-dependency entries stay marked unsupported.
When the current OS or CPU has no distribution contract, the agent is marked platform-unsupported. Existing identity and membership stay.
User-environment install
Runtime and ACP live in the user environment: PATH, npm global prefix, uv tools, user bin. Platform-provided install writes there, then probe follows PATH. The Installation lock records that observation. CLIs live in the user environment. The Installation lock records that observation.

