Source code for oas2mcp.generate.models
"""Export models for enhanced OpenAPI and FastMCP generation."""
from __future__ import annotations
from typing import Any, Literal
from pydantic import Field
from oas2mcp.agent.enhancer.models import OperationEnhancement
from oas2mcp.agent.summarizer.models import CatalogSummary
from oas2mcp.agent.surface.models import CatalogSurfacePlan
from oas2mcp.models.normalized import NormalizedBaseModel
[docs]
class CatalogPromptDefinition(NormalizedBaseModel):
"""Prompt metadata exported for FastMCP registration."""
[docs]
arguments: list[str] = Field(default_factory=list)
[docs]
version: str | None = None
[docs]
class CatalogResourceDefinition(NormalizedBaseModel):
"""Resource metadata exported for FastMCP registration."""
[docs]
kind: Literal["resource", "resource_template"]
[docs]
mime_type: str = "application/json"
[docs]
handler: Literal["static", "operation_metadata", "namespace_operations"] = "static"
[docs]
arguments: list[str] = Field(default_factory=list)
[docs]
payload: Any | None = None
[docs]
version: str | None = None
[docs]
annotations: dict[str, Any] = Field(default_factory=dict)
[docs]
class EnhancedCatalog(NormalizedBaseModel):
"""Collected enhanced catalog ready for export."""
[docs]
catalog_version: str | None = None
[docs]
summary: CatalogSummary
[docs]
operations: list[OperationEnhancement] = Field(default_factory=list)
[docs]
surface_plan: CatalogSurfacePlan | None = None
[docs]
notes: list[str] = Field(default_factory=list)