vibey-engine-adapterslisted
Install: claude install-skill the-vibey-project/vibey
# vibey engine adapters
Vibey drives five autonomous session runners: `claudeloop`, `codexloop`,
`cursorloop`, `agyloop` (the paid pool, `DEFAULT_DESCRIPTORS`) and `qwenloop`
(a local model; opt-in via `[features] qwenloop = true` or
`VIBEY_FEATURE_QWENLOOP`, ADR-0015). qwenloop is also the sovereign DESIGN
provider (`infrastructure/engines/qwenloop_design.py`, selected with
`vibey worker --provider qwenloop`, ADR-0027; sub-doctrine 8.a makes the sovereign
path the preference, not the fallback). The runners' source lives in this
repository under `src/vibey_runners/{claude,codex,cursor,agy,qwen,common}`
(ADR-0021); vibey drives the installed binaries, not those packages' Python
APIs. Each has its own CLI surface, effort vocabulary,
state directory, and done marker. Vibey abstracts these differences via
`EngineAdapter`, a `Protocol` defined in `application/interfaces/engines.py`
and re-exported from `application/ports.py`.
## The adapter pattern
`EngineAdapter` (read the real definition before relying on this summary —
it's short):
- `descriptor: EngineDescriptor` — a property, the engine's static facts
- `async def preflight() -> PreflightResult` — runs `<engine> doctor`;
classifies auth + availability
- `async def start(spec: RunSpec) -> RunHandle` — builds argv from
`descriptor.effort_projection` + isolation flags, spawns the runner,
returns a handle over its run directory
- `def tail(handle: RunHandle) -> AsyncIterator[EngineEvent]` — streams the
runner's `events