The packages have strict ownership boundaries:
runtime <- components
runtime <- testing
runtime <- vite (peer integration only)
@solid-tui/runtimeowns the custom renderer, Yoga host tree, primitive components, terminal I/O, and hooks tied to renderer capabilities such as input, focus, mouse, cursor, and window size.@solid-tui/componentsowns higher-level rendered features such asSpinnerandScrollBox. It composes only the public runtime API and never imports runtime internals.@solid-tui/testingis a development sidecar that mounts runtime apps against fake terminal streams. Runtime never depends on it.@solid-tui/viteis a development sidecar for compilation, in-process execution, and HMR. Runtime exposes only the small internal HMR bridge it consumes.
Dependencies point toward runtime, never back toward higher layers. A future package for independent headless hooks should be introduced only when a concrete hook does not belong to terminal I/O or a specific component.