You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add openrouter as a first-class harness selector that runs Codex through OpenRouter.
Wire OpenRouter credential injection through the firewall/proxy and configure sandbox env/provider selection.
Normalize OpenRouter events through the Codex event path across Python and TypeScript clients.
Document OpenRouter setup in quickstart, production, 1Password, index, and architecture docs.
Verification
uv run ruff check ... over touched Python files
bash -n services/sandbox/entrypoint.sh
uv run pytest tests/test_codex_app_wrapper.py -q
pnpm --filter @centaur/harness-events typecheck
pnpm --filter @centaur/api-client test -- harness-events.test.ts
just build-one api and just build-one agent
Local Helm deploy, then API-pod E2E with harness=openrouter: completed with result_text: "PONG"
Notes
The broader DB-backed file run currently reports 261 passed, 9 failed; the failures are existing/stale expectations and timing/order assertions outside the OpenRouter path.
Local Colima testing needed a temporary NetworkPolicy allowing the API pod to reach Colima's Kubernetes apiserver endpoint; no chart/network-policy change is included in this PR.
Great contribution! We love OpenRouter. QQ: This should also accept a --model flag, right? (it's unclear to me what model would be piped through Codex in this setup and that seems like a nice thing to be able to specify)
Great contribution! We love OpenRouter. QQ: This should also accept a --model flag, right? (it's unclear to me what model would be piped through Codex in this setup and that seems like a nice thing to be able to specify)
Yes good catch! Made an update to accept the --model flag. Also added recovery/reuse handling so a restarted runtime keeps the selected model, plus API/SDK support for structured model selection on spawn.
Let me know if you think any other changes are needed otherwise I will mark as ready for review 🙌🏻
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
openrouteras a first-class harness selector that runs Codex through OpenRouter.Verification
uv run ruff check ...over touched Python filesbash -n services/sandbox/entrypoint.shuv run pytest tests/test_codex_app_wrapper.py -qpnpm --filter @centaur/harness-events typecheckpnpm --filter @centaur/api-client test -- harness-events.test.tsjust build-one apiandjust build-one agentharness=openrouter: completed withresult_text: "PONG"Notes
261 passed, 9 failed; the failures are existing/stale expectations and timing/order assertions outside the OpenRouter path.