opencode.ai returns the real OpenAI-compatible response as a JSON string inside choices[0].message.content instead of an object. Added an adaptResponse handler that detects and unwraps this double-nesting, merging inner usage/token counts and reasoning_content into the standard envelope. Also added build/ to .gitignore. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>