One inference seam, several providers behind it
Provider-agnostic inference seam: adapters, automatic failover, and an empty-success guard. One package so the estate stops carrying copies.
A provider-agnostic seam: adapters, automatic failover, and one namespace for models that live in different places. Written because inference belongs behind an interface — a system whose behaviour changes when a vendor has a bad afternoon is not a system.
Apache-2.0, read from the package’s own manifest. Embed it in anything, including closed software — that is what makes a spec adoptable and a verifier worth running. FlashyOS’s server side is AGPL-3.0-only instead, and a test in the monorepo asserts the direction between them: AGPL code may consume this, this may never consume AGPL code.