Fold Jerry dump into toolJSON: TrimSpace IsError text, concat JSON
via rawJSON, and unit tests mirroring IsError=true /
StructuredContent=null / Text=`end must be after start` / GetError=nil.
get_equity_historicals can return MCP StructuredContent with empty or
non-JSON TextContent. Prefer StructuredContent (marshal to RawMessage)
so paper tradey once/run can parse historicals.
#13