feat(M3-003): OpenAI provider adapter for Codex gpt-5.4 #310

Merged
jason.woltje merged 1 commits from feat/m3-openai-adapter into main 2026-03-21 21:35:44 +00:00
Owner

Summary

  • Adds OpenAIAdapter implementing IProviderAdapter
  • Installs openai SDK (^6.32.0) in apps/gateway
  • register(): initialises OpenAI client with OPENAI_API_KEY, registers codex-gpt-5-4 with Pi ModelRegistry; gracefully skips when key is absent
  • listModels(): returns Codex gpt-5.4 (128k context, tools + vision)
  • healthCheck(): lightweight GET /v1/models to verify API key validity
  • createCompletion(): streaming via chat.completions.create with stream:true; maps chunks to CompletionEvent
  • Registers adapter in ProviderService; removes legacy registerOpenAIProvider() method

Test plan

  • Typecheck, lint, format:check all pass
  • When OPENAI_API_KEY unset: adapter skips, listModels returns empty, healthCheck returns down
  • When OPENAI_API_KEY set: codex-gpt-5-4 appears in provider listing

Generated with Claude Code

## Summary - Adds OpenAIAdapter implementing IProviderAdapter - Installs openai SDK (^6.32.0) in apps/gateway - register(): initialises OpenAI client with OPENAI_API_KEY, registers codex-gpt-5-4 with Pi ModelRegistry; gracefully skips when key is absent - listModels(): returns Codex gpt-5.4 (128k context, tools + vision) - healthCheck(): lightweight GET /v1/models to verify API key validity - createCompletion(): streaming via chat.completions.create with stream:true; maps chunks to CompletionEvent - Registers adapter in ProviderService; removes legacy registerOpenAIProvider() method ## Test plan - Typecheck, lint, format:check all pass - When OPENAI_API_KEY unset: adapter skips, listModels returns empty, healthCheck returns down - When OPENAI_API_KEY set: codex-gpt-5-4 appears in provider listing Generated with Claude Code
jason.woltje added 1 commit 2026-03-21 21:31:29 +00:00
feat(M3-003): implement OpenAI provider adapter for Codex gpt-5.4
Some checks failed
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
6f104d116b
Adds OpenAIAdapter implementing IProviderAdapter, replacing the legacy
registerOpenAIProvider() inline registration in ProviderService.

- Creates apps/gateway/src/agent/adapters/openai.adapter.ts with:
  - register(): initialises OpenAI client, registers codex-gpt-5-4 with
    Pi ModelRegistry using openai-completions API; skips gracefully when
    OPENAI_API_KEY is absent
  - listModels(): returns Codex gpt-5.4 ModelInfo (128k context, tools+vision)
  - healthCheck(): lightweight GET /v1/models to verify API key validity
  - createCompletion(): streaming completions via openai SDK
    chat.completions.create({ stream: true }); maps chunks to CompletionEvent
- Installs openai SDK (^6.32.0) as a dependency in apps/gateway
- Registers OpenAIAdapter in ProviderService alongside OllamaAdapter
- Removes legacy registerOpenAIProvider() private method from ProviderService

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jason.woltje force-pushed feat/m3-openai-adapter from 6f104d116b to 9b4d03cf30 2026-03-21 21:35:37 +00:00 Compare
jason.woltje merged commit 08da6b76d1 into main 2026-03-21 21:35:44 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#310