Context
CodexProvider at lib/providers/llm.ts:48-52 is a mock. Per PROVIDERS.md, OpenAI/Codex is the standard fallback for every Claude-defaulted task. The .env.example has LLM_FALLBACK=codex.
Goal
Real OpenAI adapter wrapping the chat completions API.
Acceptance criteria
Files
lib/providers/llm.ts:48-52
package.json (new dep openai)
Context
CodexProvideratlib/providers/llm.ts:48-52is a mock. PerPROVIDERS.md, OpenAI/Codex is the standard fallback for every Claude-defaulted task. The.env.examplehasLLM_FALLBACK=codex.Goal
Real OpenAI adapter wrapping the chat completions API.
Acceptance criteria
openaiSDKOPENAI_API_KEYfrom envgpt-5.1-mini(cheap fallback) for caption/translation,gpt-5.1for script/compliancetokens+cost_usd+latency_msDRY_RUN=trueFiles
lib/providers/llm.ts:48-52package.json(new depopenai)