Expand description
The model port: one-shot completion, prompt in, raw text out (ADR 0016; an engine module since ADR 0018).
This file is the trait and its error, and nothing that runs anything. The
one implementation — an agent CLI spawned with an argv per agent — is
llmio, the adapter, on the pattern of forge/forgeio. The split is what
lets the layering test check this file as domain: grouping and the pipeline
consume only LlmBackend from here, and the subprocess machinery stays
behind the adapter’s door.
The grouping stage needs exactly one capability from a model: one-shot text completion — prompt in, raw text out. The contract is deliberately that narrow: no streaming, no chat state, no conversation to manage.
It stays that narrow now that the model reads for itself (ADR 0022). Tools run inside the CLI the adapter spawns, so what crosses this seam is still a prompt and a string. What changed is a flag in the adapter’s argv, not the trait.
Enums§
Traits§
- LlmBackend
- One-shot completion: prompt in, raw text out.