neurocore.skills.registry.SkillRegistry

class neurocore.skills.registry.SkillRegistry

Registry of discovered skill classes.

Skills are keyed by their skill_meta.name. The registry enforces uniqueness — registering a second skill with the same name raises SkillError unless replace=True is passed (used for entry point precedence over directory scan).

_skills

Mapping from skill name to skill class.

register(skill_class: type[neurocore.skills.base.Skill], *, replace: bool = False) None

Register a skill class.

Parameters:
  • skill_class – A Skill subclass with a valid skill_meta.

  • replace – If True, overwrites existing registration (used for entry point precedence).

Raises:

SkillError – If skill_class is not a valid Skill subclass, or if a skill with the same name is already registered and replace is False.

get(name: str) type[neurocore.skills.base.Skill] | None

Get a registered skill class by name.

Parameters:

name – The skill’s registered name (from skill_meta.name).

Returns:

The Skill subclass, or None if not found.

get_or_raise(name: str) type[neurocore.skills.base.Skill]

Get a registered skill class by name, or raise.

Parameters:

name – The skill’s registered name.

Returns:

The Skill subclass.

Raises:

SkillError – If no skill is registered with this name.

list_skills() list[str]

List all registered skill names, sorted alphabetically.

Returns:

Sorted list of skill names.

list_skill_metas() list[neurocore.skills.base.SkillMeta]

List metadata for all registered skills.

Returns:

List of SkillMeta instances, sorted by name.

component_catalog() list[dict[str, Any]]

Return a FlowEngine-style component catalog for all registered skills.

Each entry is the skill’s SkillMeta mapped to a FlowEngine ComponentMeta catalog entry (inputs/outputs/tags/risk/…), so NeuroCore skills surface alongside native FlowEngine components for agent-driven flow composition. Skills are included by their registered name (the type an agent uses in YAML). Returns an empty list if the installed FlowEngine predates the v0.5.0 agent API.

create(name: str, *, instance_name: str | None = None) neurocore.skills.base.Skill

Create an instance of a registered skill.

Parameters:
  • name – The skill’s registered name.

  • instance_name – Optional name for the instance (defaults to skill_meta.name).

Returns:

A new Skill instance.

Raises:

SkillError – If no skill is registered with this name.