Fetch a URL and return clean article text (readability extraction: title, byline, text). Body: { url: string, maxChars?: number }.