OpenAiProvider gains a custom id and a chat-only mode; `OpenAiProvider::opencode` builds an OpenCode Zen provider (id `opencode`, defaults to Zen's gateway, always chat-completions so even gpt-*/o* model ids route correctly). Registered from a `providers.opencode` config block / OPENCODE_API_KEY env, so it coexists with a real `openai` provider. Models are referenced as `opencode/<model>`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>