Packages

Execution Plane process launch, stdio, PTY, and process-session runtime.

Current section

Files

Jump to

README.md

# Execution Plane Process
<p align="center">
<img src="assets/execution_plane_process.svg" width="200" height="200" alt="Execution Plane Process logo">
</p>
<p align="center">
<a href="https://github.com/nshkrdotcom/execution_plane"><img alt="GitHub" src="https://img.shields.io/badge/github-nshkrdotcom%2Fexecution_plane-24292f?logo=github"></a>
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
</p>
`execution_plane_process` owns process launch, stdio, PTY, and long-lived
process-session mechanics below family kits.
## Governed Env Boundary
Standalone callers may pass explicit `env` and `clear_env` options as before.
Governed process intents, identified by authority, lease, credential, route
template, attach grant, or target descriptor refs, default `clear_env` to
`true` and never populate `env_projection` from ambient process env. Lease or
authority materializers must pass any required process env as explicit
`env_projection` input for that one effect.
## Runtime Supervision
The standalone `:execution_plane_process` application starts the named task
and process-transport supervisors. The core-only `:execution_plane`
application does not own or start process-lane supervisors.
Runtime library calls check those supervisors directly and return
`{:error, {:runtime_not_started, :execution_plane_process}}` when they are
absent; they never try to start a component application.
The subprocess launcher still calls `Application.ensure_all_started(:erlexec)`.
That is intentional: `:erlexec` is a real external OTP dependency whose worker
must be available before operating-system process launch.
## Installation
```elixir
def deps do
[
{:execution_plane_process, "~> 0.1.0"}
]
end
```
## Guides
The HexDocs menu includes the guide index, installation notes, usage notes,
and publishing checklist for this package.