a19b7e4190
Tighten BaseModel[M any] to BaseModel[M messageType] where messageType is a sealed union of *schema.Message | *schema.AgenticMessage. This prevents nonsensical instantiations like BaseModel[int] at compile time while remaining fully backward-compatible: external packages use the type aliases BaseChatModel and AgenticModel, and direct instantiation with the union members still compiles because Go checks structural satisfaction regardless of constraint export status. Change-Id: I836012f7a0b7c3964b7e7b7979d982a7e0f8d540