ooai_skills.settings

Settings for ooai_skills (Pydantic v2).

Reads from environment variables with prefix OOAI_SKILLS_. When running inside the ooai docker stack the existing MINIO_* variables are accepted as aliases, so no extra configuration is required.

Resolution priority (first match wins):

  • OOAI_SKILLS_S3_ENDPOINT → explicit override

  • MINIO_PORT → builds http://localhost:{port}

  • default → http://localhost:9000

Examples

::
>>> from ooai_skills.settings import OoaiSkillsSettings
>>> s = OoaiSkillsSettings()
>>> s.local_skills_dir.as_posix().endswith("/.agents/skills")
True

Classes

OoaiSkillsSettings

Configuration for MinIO + local cache.

Module Contents

class ooai_skills.settings.OoaiSkillsSettings(_case_sensitive=None, _nested_model_default_partial_update=None, _env_prefix=None, _env_prefix_target=None, _env_file=ENV_FILE_SENTINEL, _env_file_encoding=None, _env_ignore_empty=None, _env_nested_delimiter=None, _env_nested_max_split=None, _env_parse_none_str=None, _env_parse_enums=None, _cli_prog_name=None, _cli_parse_args=None, _cli_settings_source=None, _cli_parse_none_str=None, _cli_hide_none_type=None, _cli_avoid_json=None, _cli_enforce_required=None, _cli_use_class_docs_for_groups=None, _cli_exit_on_error=None, _cli_prefix=None, _cli_flag_prefix_char=None, _cli_implicit_flags=None, _cli_ignore_unknown_args=None, _cli_kebab_case=None, _cli_shortcuts=None, _secrets_dir=None, _build_sources=None, **values)

Bases: pydantic_settings.BaseSettings

Configuration for MinIO + local cache.

Works out of the box with the ooai docker stack: reads the existing MINIO_ROOT_USER / MINIO_ROOT_PASSWORD / MINIO_PORT env vars that are already exported from the ooai .env file. Additional OOAI_SKILLS_* or legacy SKILL_MIRROR_* variables always take precedence.

Parameters:
  • _case_sensitive (bool | None)

  • _nested_model_default_partial_update (bool | None)

  • _env_prefix (str | None)

  • _env_prefix_target (pydantic_settings.sources.EnvPrefixTarget | None)

  • _env_file (pydantic_settings.sources.DotenvType | None)

  • _env_file_encoding (str | None)

  • _env_ignore_empty (bool | None)

  • _env_nested_delimiter (str | None)

  • _env_nested_max_split (int | None)

  • _env_parse_none_str (str | None)

  • _env_parse_enums (bool | None)

  • _cli_prog_name (str | None)

  • _cli_parse_args (bool | list[str] | tuple[str, Ellipsis] | None)

  • _cli_settings_source (pydantic_settings.sources.CliSettingsSource[Any] | None)

  • _cli_parse_none_str (str | None)

  • _cli_hide_none_type (bool | None)

  • _cli_avoid_json (bool | None)

  • _cli_enforce_required (bool | None)

  • _cli_use_class_docs_for_groups (bool | None)

  • _cli_exit_on_error (bool | None)

  • _cli_prefix (str | None)

  • _cli_flag_prefix_char (str | None)

  • _cli_implicit_flags (bool | Literal['dual', 'toggle'] | None)

  • _cli_ignore_unknown_args (bool | None)

  • _cli_kebab_case (bool | Literal['all', 'no_enums'] | None)

  • _cli_shortcuts (collections.abc.Mapping[str, str | list[str]] | None)

  • _secrets_dir (pydantic_settings.sources.PathType | None)

  • _build_sources (tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None)

  • values (Any)

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

s3_endpoint: Annotated[str, Field(min_length=1, validation_alias=AliasChoices('OOAI_SKILLS_S3_ENDPOINT', 'SKILL_MIRROR_S3_ENDPOINT'))] = None
s3_access_key: Annotated[str, Field(min_length=1, validation_alias=AliasChoices('OOAI_SKILLS_S3_ACCESS_KEY', 'SKILL_MIRROR_S3_ACCESS_KEY', 'MINIO_ROOT_USER'))] = 'minioadmin'
s3_secret_key: Annotated[str, Field(min_length=1, validation_alias=AliasChoices('OOAI_SKILLS_S3_SECRET_KEY', 'SKILL_MIRROR_S3_SECRET_KEY', 'MINIO_ROOT_PASSWORD'))] = 'minioadmin'
s3_secure: bool = None
s3_region: str = None
bucket: Annotated[str, Field(min_length=1, validation_alias=AliasChoices('OOAI_SKILLS_BUCKET', 'SKILL_MIRROR_BUCKET'))] = 'agent-skills'
local_packs_dir: pathlib.Path = None
local_skills_dir: pathlib.Path = None
work_dir: pathlib.Path = None
extra_targets: str = None
property extra_targets_list: list[str]

Parse the comma-separated extra_targets string into a list.

Return type:

list[str]

property resolved_extra_targets: list[pathlib.Path]

Return extra target paths with ~ expanded.

Return type:

list[pathlib.Path]