chore(merge_configs): remove bot-introduced duplicate from runtime.py and restore canonical import #21

Merged
hurui200320 merged 1 commits from chore/remove-duplicate-merge-configs into master 2026-06-05 06:17:14 +00:00
2 changed files with 2 additions and 46 deletions
+1 -2
View File
@@ -10,7 +10,7 @@ __version__ = "2.0.0"
__author__ = "CleverThis Engineering"
from cleveractors.agent import Agent
from cleveractors.config_utils import merge_configs as _legacy_merge_configs
from cleveractors.config_utils import merge_configs
from cleveractors.context_manager import ContextManager
from cleveractors.core.application import ReactiveCleverAgentsApp
from cleveractors.core.exceptions import CleverAgentsException
@@ -19,7 +19,6 @@ from cleveractors.runtime import (
Executor,
NodeUsage,
create_executor,
merge_configs,
validate_dict,
)
+1 -44
View File
@@ -2,7 +2,6 @@
This module provides the public API that the CleverThis router consumes:
- validate_dict(d, platform_limits)
- merge_configs(*dicts)
- create_executor(config_dict, credentials, limits, pricing)
- ActorResult / NodeUsage dataclasses
@@ -137,48 +136,6 @@ def validate_dict(config_dict: dict[str, Any], platform_limits: Optional[dict[st
return copy.deepcopy(config_dict)
# ---------------------------------------------------------------------------
# Config merging
# ---------------------------------------------------------------------------
def merge_configs(*dicts: dict[str, Any]) -> dict[str, Any]:
"""Deep-merge multiple config dicts per the spec's §3.1 merge algorithm.
Rules:
- absent keys are added
- both-mapping keys are deep-merged recursively
- both-sequence keys are appended
- all other cases: the later value replaces the earlier
"""
if not dicts:
return {}
result: dict[str, Any] = copy.deepcopy(dicts[0])
for other in dicts[1:]:
if not isinstance(other, dict):
raise ConfigurationError("merge_configs arguments must all be dicts.")
result = _deep_merge_two(result, other)
return result
def _deep_merge_two(base: dict[str, Any], override: dict[str, Any]) -> dict[str, Any]:
"""Merge override into base recursively."""
merged = copy.deepcopy(base)
for key, val in override.items():
if key in merged:
existing = merged[key]
if isinstance(existing, dict) and isinstance(val, dict):
merged[key] = _deep_merge_two(existing, val)
elif isinstance(existing, list) and isinstance(val, list):
merged[key] = existing + val
else:
merged[key] = copy.deepcopy(val)
else:
merged[key] = copy.deepcopy(val)
return merged
# ---------------------------------------------------------------------------
# Executor
# ---------------------------------------------------------------------------
@@ -463,7 +420,7 @@ class Executor:
# Inject credentials for each provider we have keys for
for provider, creds in self.credentials.items():
# Find agents using this provider and inject creds
for agent_name, agent_cfg in agents_block.items():
for _agent_name, agent_cfg in agents_block.items():
if isinstance(agent_cfg, dict):
agent_provider = agent_cfg.get("provider") or agent_cfg.get("config", {}).get("provider", "openai")
if agent_provider == provider or provider == "openai_compatible":