neurocore.config.schema.NeuroCoreConfig

class neurocore.config.schema.NeuroCoreConfig(/, **data: Any)

Bases: pydantic.BaseModel

Top-level NeuroCore configuration model.

Represents the full contents of neurocore.yaml plus any overrides from .env and environment variables.

project

Project metadata (name, version).

paths

Directory paths for skills, blueprints, data, logs.

logging

Logging level, format, optional file output.

llm

Project-level LLM configuration.

skills

Per-skill configuration dicts, keyed by skill name.

project_root

Resolved absolute path to the project root (the directory containing neurocore.yaml). Set by the ConfigLoader, not from YAML.

project: ProjectConfig = None
paths: PathsConfig = None
logging: LoggingConfig = None
llm: LLMConfig = None
skills: dict[str, dict[str, Any]] = None
project_root: pathlib.Path = None
resolve_path(relative_path: str) pathlib.Path

Resolve a path relative to project_root.

Absolute paths are returned as-is. Relative paths are resolved against self.project_root.

Parameters:

relative_path – A path string from the config.

Returns:

Resolved absolute Path.

property skills_dir: pathlib.Path

Resolved absolute path to the skills directory.

property blueprints_dir: pathlib.Path

Resolved absolute path to the blueprints directory.

property data_dir: pathlib.Path

Resolved absolute path to the data directory.

property logs_dir: pathlib.Path

Resolved absolute path to the logs directory.

get_skill_config(skill_name: str) dict[str, Any]

Get configuration for a specific skill.

Returns skill config merged with project-level LLM config as defaults. Skill-level config wins over project-level LLM config.

Parameters:

skill_name – The skill’s registered name.

Returns:

Config dict for the skill, or empty dict if not configured.