Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/row_bot/providers/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,15 @@
risk_label="third_party_router",
icon="🌐",
),
"litellm": ProviderDefinition(
id="litellm",
display_name="LiteLLM",
auth_methods=(AuthMethod.API_KEY,),
default_transport=TransportMode.OPENAI_CHAT,
base_url="http://localhost:4000/v1",
risk_label="third_party_router",
icon="🔀",
),
"opencode_zen": ProviderDefinition(
id="opencode_zen",
display_name="OpenCode Zen",
Expand Down
1 change: 1 addition & 0 deletions src/row_bot/providers/runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ def list_configured_provider_ids() -> list[str]:
"openai",
"ollama_cloud",
"openrouter",
"litellm",
"opencode_zen",
"opencode_go",
"atlascloud",
Expand Down
22 changes: 22 additions & 0 deletions tests/test_litellm_provider.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import unittest

from row_bot.providers.catalog import PROVIDER_DEFINITIONS, get_provider_definition
from row_bot.providers.models import AuthMethod, TransportMode


class TestLiteLLMProvider(unittest.TestCase):
def test_provider_registered(self):
self.assertIn("litellm", PROVIDER_DEFINITIONS)

def test_provider_definition(self):
defn = get_provider_definition("litellm")
self.assertIsNotNone(defn)
self.assertEqual(defn.id, "litellm")
self.assertEqual(defn.display_name, "LiteLLM")
self.assertEqual(defn.default_transport, TransportMode.OPENAI_CHAT)
self.assertEqual(defn.base_url, "http://localhost:4000/v1")
self.assertIn(AuthMethod.API_KEY, defn.auth_methods)

def test_provider_uses_openai_compatible_transport(self):
defn = get_provider_definition("litellm")
self.assertEqual(defn.default_transport, TransportMode.OPENAI_CHAT)