fabro/docs/public/reference
Bryan Helmkamp 87950295bd
refactor(llm): split provider identity from adapters (#280)
## Summary

This PR separates provider identity from adapter behavior across the LLM
stack. Provider IDs now represent catalog rows and provider metadata,
while adapter/profile routing owns protocol behavior for Anthropic,
OpenAI, Gemini, and OpenAI-compatible providers.

## Changes

- Replace the shared `fabro_model::Provider` enum with open-ended
`ProviderId` catalog identity and typed `AdapterKind` metadata.
- Route auth, CLI, ACP, workflow, memory selection, profile
construction, and LLM client registration through catalog provider rows
instead of provider-ID fallbacks.
- Move API-key URL/header/env metadata into provider catalog/auth flows
and require configured provider rows for credential-backed clients.
- Simplify billing to `algorithm`-tagged OpenAI, Anthropic, and Gemini
shapes; OpenAI-compatible adapters bill through the OpenAI algorithm.
- Remove greenfield compatibility paths for old provider aliases, legacy
provider-tagged billing JSON, and the `openai_compatible`
pseudo-provider env fallback.
- Update fixtures and tests to exercise catalog-driven
Kimi/Zai/Minimax/Inception/custom OpenAI-compatible routing.

## Validation

- `cargo test --no-run -p fabro-model -p fabro-auth -p fabro-agent -p
fabro-workflow -p fabro-server -p fabro-llm -p fabro-api -p fabro-cli -p
fabro-store -p fabro-static`
- `cargo nextest run -p fabro-model -p fabro-auth -p fabro-agent -p
fabro-workflow -p fabro-server --no-fail-fast`
- `cargo nextest run -p fabro-llm -p fabro-api -p fabro-cli -p
fabro-store -p fabro-static --no-fail-fast`
- `cargo +nightly-2026-04-14 fmt --check --all`
- `git diff --check`
- `cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D
warnings`

---

[![Compound
Engineering](https://img.shields.io/badge/Compound_Engineering-6366f1)](https://github.com/EveryInc/compound-engineering-plugin)
🤖 Generated with GPT-5 via [Codex](https://openai.com/codex)
2026-05-16 13:13:41 -04:00
..
acknowledgements.mdx refactor(docs): split docs/ into public/ and internal/ 2026-04-27 07:21:13 -07:00
architecture.mdx docs(deployment): split into local vs self-hosted, drop Render/Fly/DO 2026-05-01 09:26:35 -04:00
cli.mdx feat(pr): support GitHub pull request associations (#270) 2026-05-16 12:47:27 -04:00
dot-language.mdx Add ACP backend support (#237) 2026-05-11 23:39:43 -04:00
run-directory.mdx refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00
sdk.mdx docs(llm): finish configurable provider cleanup (#260) 2026-05-13 17:17:54 -04:00
server-operations.mdx docs(deployment): split into local vs self-hosted, drop Render/Fly/DO 2026-05-01 09:26:35 -04:00
shell-completions.mdx refactor(docs): split docs/ into public/ and internal/ 2026-04-27 07:21:13 -07:00
user-configuration.mdx refactor(llm): split provider identity from adapters (#280) 2026-05-16 13:13:41 -04:00
verifying-releases.mdx refactor(docs): split docs/ into public/ and internal/ 2026-04-27 07:21:13 -07:00