Part of #166; RFC-0033 §4.1 item 6.
There is no document that says how to add a provider. pi-ai's README has a seven-step "Adding a New Provider" checklist (packages/ai/README.md); aimux needs the equivalent, split by the three cases that actually occur.
docs/contributing/adding-a-provider.md
- OpenAI-compatible vendor: one row in
provider_registry.json → run scripts/gen_provider_names.py and scripts/gen_providers_doc.py → derive a cassette with scripts/generate_thin_wrapper_cassettes.py (until B2 makes conformance_test.rs iterate registry rows) → the five conformance cases (streaming, tool call, abort, empty message, context overflow).
- New protocol: a new directory under
aimux-providers/src/<protocol>/ implementing LanguageModel::do_generate / do_stream (the analogue of pi-ai src/api/<api-id>.ts), a registry row with protocol: <name> once B1 lands, cassettes recorded against the real API.
- Single-modality vendor: the RFC-0033 §8.2 executor pattern — implement only the request/response transform functions.
Also state the generator rule (do-not-edit header + CI --check) and the retirement conditions of the remaining scripts/ tools. Link from README.
Part of #166; RFC-0033 §4.1 item 6.
There is no document that says how to add a provider. pi-ai's README has a seven-step "Adding a New Provider" checklist (
packages/ai/README.md); aimux needs the equivalent, split by the three cases that actually occur.docs/contributing/adding-a-provider.mdprovider_registry.json→ runscripts/gen_provider_names.pyandscripts/gen_providers_doc.py→ derive a cassette withscripts/generate_thin_wrapper_cassettes.py(until B2 makesconformance_test.rsiterate registry rows) → the five conformance cases (streaming, tool call, abort, empty message, context overflow).aimux-providers/src/<protocol>/implementingLanguageModel::do_generate/do_stream(the analogue of pi-aisrc/api/<api-id>.ts), a registry row withprotocol: <name>once B1 lands, cassettes recorded against the real API.Also state the generator rule (do-not-edit header + CI
--check) and the retirement conditions of the remainingscripts/tools. Link from README.