Text keys use OpenAI routes; image keys use predictions with ingress Model ID,
OpenAPI input schemas, owner/name or short name resolution, protocol-aware admin
whitelist, and in-app API docs aligned to UI conventions.
Co-authored-by: Cursor <cursoragent@cursor.com>