Jido.Harness owns normalization, supervision, process management, event journaling, retention, and provider adapters. Runtime dependencies must support one of those boundaries without duplicating the package's core responsibility.
| Dependency | Purpose |
|---|---|
erlexec |
monitored subprocesses, stdin, PTY, process groups, and signals |
telemetry |
direct runtime observation boundary |
zoi |
validation and construction of normalized public structs |
jason |
provider JSON/JSONL decoding and journal encoding |
Every built-in provider uses its official CLI through the Jido.Harness process manager. Z.AI uses its officially supported Claude Code environment mapping. The public Zoi schemas are kept compatible across the 0.17 and 0.18 lines so a consumer can share the validation runtime already selected by Jido 2.x.
The runtime does not depend on:
- provider SDKs;
- generic subprocess wrappers;
jidoorjido_shell;- Sprites or Splode.
Provider SDKs and subprocess wrappers would duplicate responsibilities already owned here: option validation, supervision, process groups, timeouts, cancellation, JSONL mapping, normalized events, and retention. Adding one requires a demonstrated capability that the provider's official headless CLI cannot express.
Jido.Harness is not a provider router, durable job system, workspace provisioner, retry engine, TUI automation system, or general shell library. Those concerns belong outside the package and should integrate through stable harness IDs and normalized results.
An override or source revision is acceptable only for a verified lifecycle or protocol compatibility fix. Each provider-related dependency change must pass:
- fake-CLI long-runtime and cleanup contracts;
- deterministic mapper and fixture tests;
- opt-in live tests for affected providers;
- documentation, package build, static analysis, and the full unit suite.
Provider-specific records without a canonical mapping remain
:provider_event values. CLI arguments remain structured executable-plus-argv
data and are never interpolated into a shell command.