feat(coder-labs): add Omnigent multi-agent server module#925
Draft
matifali wants to merge 16 commits into
Draft
Conversation
Blocking fixes:
- Add PATH export at top of start.sh so omnigent is found after install
- Separate server.log from start.log (nohup concurrent write conflict)
- Bump coder provider constraint from >= 2.12 to >= 2.13 (matches coder-utils)
- Base64-encode omnigent version in install.sh (injection hardening)
- Surface upgrade failures as warnings instead of silencing them
New inputs:
- server_config: inline YAML written to module dir and passed as -c
- server_config_path: path to existing config file, mutually exclusive with server_config
- agents: list of {name, content} pre-registered at startup via --agent flags
- pre_install_script / post_install_script: pass-through to coder-utils
New output: server_config_path (effective config path or empty string)
13/13 tests pass.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Adds the Omnigent registry surface:
registry/coder-labs/modules/omnigent/— installs Omnigent, starts the server, registers the workspace host, and exposes the Omnigent Coder app.registry/coder-labs/templates/omnigent-workspace/— Docker example workspace with Omnigent, Claude Code, Codex, Coder AI Gateway, and a shallow clone ofgithub.com/coder/coder..icons/omnigent.svg— temporary placeholder icon until the official Omnigent SVG is available.Changes
uvfrom the Omnigent module so fresh Ubuntu images work without pre-baked dependencies.omnigent host --server "http://localhost:${port}"in the background so Coder startup reachesreadyand the Coder app server has an online host for filesystem calls.OMNIGENT_WS_ALLOWED_ORIGINSso browser requests through Coder Apps pass Omnigent's CSRF origin checks.OPENAI_CODER_AIGATEWAY_SESSION_TOKENthroughOMNIGENT_RUNNER_ENV_PASSTHROUGHwhen present so host-launched Codex runners can authenticate through Coder AI Gateway.coder-labs/codex5.2.1so Codex writesenv_key = "OPENAI_CODER_AIGATEWAY_SESSION_TOKEN".curl,jq,tmux,bubblewrap, Node.js 22) before Claude Code, Codex, and Omnigent setup.Validation
92a428e:Validate README fileslintCheck for typos and unformatted codeValidate Terraform output/tmp/registry-pr-925:terraform fmt -check -recursive registry/coder-labs/modules/omnigent registry/coder-labs/templates/omnigent-workspaceterraform testinregistry/coder-labs/modules/omnigent:22 passed, 0 failedinstall.sh.tftplandstart.sh.tftpl;bash -npassed andshellcheck --severity=warningpassedMODULE_CHANGED_FILES='registry/coder-labs/modules/omnigent/main.tf registry/coder-labs/modules/omnigent/scripts/start.sh.tftpl registry/coder-labs/modules/omnigent/scripts/install.sh.tftpl' ./scripts/terraform_validate.shpassedtest-omnigent-pr-925-fullusing temp template versionpr-925-runner-token-passthrough(a81a9875-ab14-4ed6-81e3-89e8ed298811):readyGET /healthreturns{ "status": "ok" }GET /v1/hostsshows the workspace host online with Claude, Codex, native Claude, and native Codex configuredOMNIGENT_RUNNER_ENV_PASSTHROUGHandOPENAI_CODER_AIGATEWAY_SESSION_TOKEN~/.codex/config.tomlusesenv_key = "OPENAI_CODER_AIGATEWAY_SESSION_TOKEN"codex-native-uisessionconv_caaaf498b6d74189bb2da43738b9e79blaunched a Codex app-server withOPENAI_CODER_AIGATEWAY_SESSION_TOKENin its envReply with only: okcompleted successfully with assistant outputokandlast_task_error = null