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