forked from cleveragents/cleveragents-core
fix(provider): make LangChainChatProvider name and model_id mutable properties
The LangChainChatProvider class defined name and model_id as read-only
properties without setters, causing AttributeError when PlanService
attempted to set these properties after provider instantiation.
Root Cause:
- LangChainChatProvider.name and .model_id were @property without @setter
- PlanService._resolve_ai_provider_for_actor() attempts to mutate these
properties at lines 411 and 413
- This caused: AttributeError: property 'name' of 'LangChainChatProvider'
object has no setter
Solution:
Added property setters for both name and model_id:
@name.setter
def name(self, value: str) -> None:
self._name = value
@model_id.setter
def model_id(self, value: str) -> None:
self._model_id = value
This allows PlanService to correctly resolve provider names and model IDs
without raising AttributeError.
Impact:
- Fixes the agents build command crash when using agents tell
- No regression: existing functionality unchanged
- Properties remain type-safe (str -> str)
ISSUES CLOSED: #1553
This commit is contained in:
@@ -79,10 +79,18 @@ class LangChainChatProvider(AIProviderInterface):
|
||||
def name(self) -> str: # pragma: no cover - simple accessor
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, value: str) -> None:
|
||||
self._name = value
|
||||
|
||||
@property
|
||||
def model_id(self) -> str: # pragma: no cover - simple accessor
|
||||
return self._model_id
|
||||
|
||||
@model_id.setter
|
||||
def model_id(self, value: str) -> None:
|
||||
self._model_id = value
|
||||
|
||||
def generate_changes(
|
||||
self,
|
||||
project: Project,
|
||||
|
||||
Reference in New Issue
Block a user