Source code for smarter.apps.llmtool.manifest.models.common.plugin.metadata

"""Smarter API Manifest - Plugin.metadata."""

from pydantic import Field, field_validator

from smarter.apps.llmtool.manifest.enum import SAMPluginCommonMetadataClass
from smarter.lib.manifest.models import AbstractSAMMetadataBase


[docs] class SAMPluginCommonMetadata(AbstractSAMMetadataBase): """Smarter API Plugin Manifest - common Metadata class.""" pluginClass: str = Field(..., description=f"The class of the plugin. one of: {SAMPluginCommonMetadataClass.all()}")
[docs] @field_validator("pluginClass") def validate_plugin_class(cls, v: str) -> str: """Validate the plugin class.""" if v not in SAMPluginCommonMetadataClass.all(): raise ValueError(f"Invalid pluginClass '{v}'. Must be one of: {SAMPluginCommonMetadataClass.all()}") return v