mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
* feat: add LLM_CHEAP_MODEL for generic smart routing across all backends Add generic cheap model support that works with any LLM backend, not just NearAI. New env vars: LLM_CHEAP_MODEL (cheap model for any backend) and SMART_ROUTING_CASCADE (top-level cascade flag). Resolution order: LLM_CHEAP_MODEL > NEARAI_CHEAP_MODEL (backward compat). Registry-based providers (OpenAI, Anthropic, Groq, etc.) clone their RegistryProviderConfig with the cheap model swapped in. Bedrock returns an explicit error (not yet supported). All error paths use ok_or_else with proper LlmError variants -- no unwrap/expect in production code. * refactor: address Gemini review — remove unnecessary async, extract cheap_model_name() - Remove async from create_cheap_provider_for_backend() and create_cheap_llm_provider() — neither contains .await calls - Extract duplicated cheap model resolution logic into LlmConfig::cheap_model_name() helper method (DRY) - Revert tests from tokio::test async back to sync #[test] - Add test_cheap_model_name_resolution() unit test for the helper --------- Co-authored-by: SMKRV <[email protected]>