UAT: Mistral is referenced in domain models and namespace reservations but has no provider registry implementation #6040

Open
opened 2026-04-09 14:00:56 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Summary

The domain model layer references Mistral as a first-class model publisher and reserves mistral as a provider namespace, but the ProviderRegistry has no ProviderType.MISTRAL entry, no Mistral API key configuration in Settings, and no LangChain adapter for Mistral models.

What Was Tested

  • Inspected src/cleveragents/domain/models/core/enums.pyModelPublisher enum
  • Inspected src/cleveragents/domain/models/core/project.pyPROVIDER_NAMESPACES set
  • Inspected src/cleveragents/providers/registry.pyProviderType enum
  • Inspected src/cleveragents/config/settings.py — API key fields
  • Inspected docs/reference/actors_schema.md — mentions mistral-large as example model

Expected Behavior

If Mistral is reserved as a provider namespace and listed as a ModelPublisher, it should be implementable as a provider. Users should be able to configure MISTRAL_API_KEY and use Mistral models via the actor system (e.g., mistral/mistral-large).

Actual Behavior

Domain model layer (references Mistral):

src/cleveragents/domain/models/core/enums.py:

class ModelPublisher(StrEnum):
    MISTRAL = "ModelPublisherMistral"  # Mistral is a known publisher

src/cleveragents/domain/models/core/project.py:

PROVIDER_NAMESPACES = frozenset({
    "openai", "anthropic", "google", "gemini",
    "deepseek", "mistral",  # mistral namespace is RESERVED
    "perplexity", "qwen", "amazon",
})

docs/reference/actors_schema.md:

- Open source: `mistral-large`, `llama-3-70b`

Provider layer (no Mistral support):

src/cleveragents/providers/registry.pyProviderType enum has NO MISTRAL entry:

class ProviderType(StrEnum):
    OPENAI = "openai"
    ANTHROPIC = "anthropic"
    GOOGLE = "google"
    AZURE = "azure"
    OPENROUTER = "openrouter"
    GEMINI = "gemini"
    COHERE = "cohere"
    GROQ = "groq"
    TOGETHER = "together"
    MOCK = "mock"
    # MISTRAL — MISSING

src/cleveragents/config/settings.py — no mistral_api_key field.

Impact

  • Users cannot configure Mistral as a direct provider despite the namespace being reserved for it
  • The mistral/ namespace is blocked for user projects (reserved), but the provider it's reserved for doesn't exist
  • Inconsistency between domain model layer (which knows about Mistral) and infrastructure layer (which doesn't)
  • The actor schema documentation mentions mistral-large as an example model, creating false expectations

Note on Scope

Mistral provider support may be intentionally deferred (it's not in the v3.2.0–v3.6.0 scope per the timeline). However, the PROVIDER_NAMESPACES reservation in project.py actively blocks users from creating projects in the mistral/ namespace — this is a functional impact even if the provider itself is deferred.

Fix Options

Option A (Preferred): Implement Mistral provider support:

  • Add MISTRAL = "mistral" to ProviderType
  • Add mistral_api_key field to Settings
  • Add langchain-mistralai to pyproject.toml dependencies
  • Implement MistralChatProvider adapter class
  • Add to ProviderRegistry capability map and fallback order

Option B (Minimal): If Mistral is intentionally deferred, remove "mistral" from PROVIDER_NAMESPACES until the provider is implemented, to avoid blocking user namespaces unnecessarily.

Code Locations

  • src/cleveragents/domain/models/core/enums.py — line 15 (ModelPublisher.MISTRAL)
  • src/cleveragents/domain/models/core/project.py — line 58 (PROVIDER_NAMESPACES)
  • src/cleveragents/providers/registry.pyProviderType enum (no MISTRAL)
  • src/cleveragents/config/settings.py — no mistral_api_key field
  • docs/reference/actors_schema.md — line 165 (mentions mistral-large)

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report ### Summary The domain model layer references Mistral as a first-class model publisher and reserves `mistral` as a provider namespace, but the `ProviderRegistry` has no `ProviderType.MISTRAL` entry, no Mistral API key configuration in `Settings`, and no LangChain adapter for Mistral models. ### What Was Tested - Inspected `src/cleveragents/domain/models/core/enums.py` — `ModelPublisher` enum - Inspected `src/cleveragents/domain/models/core/project.py` — `PROVIDER_NAMESPACES` set - Inspected `src/cleveragents/providers/registry.py` — `ProviderType` enum - Inspected `src/cleveragents/config/settings.py` — API key fields - Inspected `docs/reference/actors_schema.md` — mentions `mistral-large` as example model ### Expected Behavior If Mistral is reserved as a provider namespace and listed as a `ModelPublisher`, it should be implementable as a provider. Users should be able to configure `MISTRAL_API_KEY` and use Mistral models via the actor system (e.g., `mistral/mistral-large`). ### Actual Behavior **Domain model layer (references Mistral):** `src/cleveragents/domain/models/core/enums.py`: ```python class ModelPublisher(StrEnum): MISTRAL = "ModelPublisherMistral" # Mistral is a known publisher ``` `src/cleveragents/domain/models/core/project.py`: ```python PROVIDER_NAMESPACES = frozenset({ "openai", "anthropic", "google", "gemini", "deepseek", "mistral", # mistral namespace is RESERVED "perplexity", "qwen", "amazon", }) ``` `docs/reference/actors_schema.md`: ``` - Open source: `mistral-large`, `llama-3-70b` ``` **Provider layer (no Mistral support):** `src/cleveragents/providers/registry.py` — `ProviderType` enum has NO `MISTRAL` entry: ```python class ProviderType(StrEnum): OPENAI = "openai" ANTHROPIC = "anthropic" GOOGLE = "google" AZURE = "azure" OPENROUTER = "openrouter" GEMINI = "gemini" COHERE = "cohere" GROQ = "groq" TOGETHER = "together" MOCK = "mock" # MISTRAL — MISSING ``` `src/cleveragents/config/settings.py` — no `mistral_api_key` field. ### Impact - Users cannot configure Mistral as a direct provider despite the namespace being reserved for it - The `mistral/` namespace is blocked for user projects (reserved), but the provider it's reserved for doesn't exist - Inconsistency between domain model layer (which knows about Mistral) and infrastructure layer (which doesn't) - The actor schema documentation mentions `mistral-large` as an example model, creating false expectations ### Note on Scope Mistral provider support may be intentionally deferred (it's not in the v3.2.0–v3.6.0 scope per the timeline). However, the `PROVIDER_NAMESPACES` reservation in `project.py` actively blocks users from creating projects in the `mistral/` namespace — this is a functional impact even if the provider itself is deferred. ### Fix Options **Option A (Preferred)**: Implement Mistral provider support: - Add `MISTRAL = "mistral"` to `ProviderType` - Add `mistral_api_key` field to `Settings` - Add `langchain-mistralai` to `pyproject.toml` dependencies - Implement `MistralChatProvider` adapter class - Add to `ProviderRegistry` capability map and fallback order **Option B (Minimal)**: If Mistral is intentionally deferred, remove `"mistral"` from `PROVIDER_NAMESPACES` until the provider is implemented, to avoid blocking user namespaces unnecessarily. ### Code Locations - `src/cleveragents/domain/models/core/enums.py` — line 15 (`ModelPublisher.MISTRAL`) - `src/cleveragents/domain/models/core/project.py` — line 58 (`PROVIDER_NAMESPACES`) - `src/cleveragents/providers/registry.py` — `ProviderType` enum (no MISTRAL) - `src/cleveragents/config/settings.py` — no `mistral_api_key` field - `docs/reference/actors_schema.md` — line 165 (mentions `mistral-large`) --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.5.0 milestone 2026-04-09 14:36:07 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#6040
No description provided.