from abc import abstractmethod, ABC from pydantic import BaseModel, ConfigDict class _StrictModel(BaseModel): # Required for OpenAI strict JSON-schema mode: forbids extra keys, # no defaults, every field required. model_config = ConfigDict(extra="forbid") ''' A contract between agents ''' class BaseContract(BaseModel): def to_prompt_text(self) -> str: pass def render_dbg(self) -> str: pass def is_filled(self) -> bool: pass