chore: dedup files

This commit is contained in:
Greyson Lalonde
2026-03-05 21:12:16 -05:00
parent 2baebb935a
commit d84a7f32bd
2 changed files with 12 additions and 4 deletions

View File

@@ -308,6 +308,7 @@ class Agent(BaseAgent):
if not self.skills and not crew_skills:
return
seen: set[str] = set()
resolved: list[Path | SkillModel] = []
items: list[Path | SkillModel] = list(self.skills) if self.skills else []
@@ -317,9 +318,14 @@ class Agent(BaseAgent):
for item in items:
if isinstance(item, Path):
discovered = discover_skills(item, source=self)
resolved.extend(activate_skill(s, source=self) for s in discovered)
for skill in discovered:
if skill.name not in seen:
seen.add(skill.name)
resolved.append(activate_skill(skill, source=self))
elif isinstance(item, SkillModel):
resolved.append(item)
if item.name not in seen:
seen.add(item.name)
resolved.append(item)
self.skills = resolved if resolved else None

View File

@@ -2,6 +2,8 @@
from pathlib import Path
import pytest
from crewai.skills.loader import (
activate_skill,
discover_skills,
@@ -54,8 +56,8 @@ class TestDiscoverSkills:
assert skills == []
def test_nonexistent_path(self, tmp_path: Path) -> None:
skills = discover_skills(tmp_path / "nonexistent")
assert skills == []
with pytest.raises(FileNotFoundError):
discover_skills(tmp_path / "nonexistent")
def test_sorted_by_name(self, tmp_path: Path) -> None:
_create_skill_dir(tmp_path, "zebra")