From ce50e52fc5e07576c0457cc646d8f4b3d1ee98ec Mon Sep 17 00:00:00 2001 From: 35C4n0r <70096901+35C4n0r@users.noreply.github.com> Date: Wed, 18 Mar 2026 11:39:59 +0530 Subject: [PATCH] feat(coder-labs/modules/codex): update default configuration to use model providers instead of profiles (#806) ## Description - update default configuration to use model providers instead of profiles ## Type of Change - [ ] New module - [ ] New template - [ ] Bug fix - [x] Feature/enhancement - [ ] Documentation - [ ] Other ## Module Information **Path:** `registry/coder-labs/modules/codex` **New version:** `v4.3.1` **Breaking change:** [ ] Yes [x] No ## Testing & Validation - [x] Tests pass (`bun test`) - [x] Code formatted (`bun fmt`) - [x] Changes tested locally ## Related Issues --- registry/coder-labs/modules/codex/README.md | 21 +++++++------------ .../coder-labs/modules/codex/main.test.ts | 5 +---- registry/coder-labs/modules/codex/main.tf | 15 ++++++------- .../modules/codex/scripts/install.sh | 14 ++++++++++--- .../coder-labs/modules/codex/scripts/start.sh | 2 +- 5 files changed, 27 insertions(+), 30 deletions(-) diff --git a/registry/coder-labs/modules/codex/README.md b/registry/coder-labs/modules/codex/README.md index 5e8ac272..16786d02 100644 --- a/registry/coder-labs/modules/codex/README.md +++ b/registry/coder-labs/modules/codex/README.md @@ -13,7 +13,7 @@ Run Codex CLI in your workspace to access OpenAI's models through the Codex inte ```tf module "codex" { source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.example.id openai_api_key = var.openai_api_key workdir = "/home/coder/project" @@ -32,7 +32,7 @@ module "codex" { module "codex" { count = data.coder_workspace.me.start_count source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.example.id openai_api_key = "..." workdir = "/home/coder/project" @@ -51,7 +51,7 @@ For tasks integration with AI Bridge, add `enable_aibridge = true` to the [Usage ```tf module "codex" { source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.example.id workdir = "/home/coder/project" enable_aibridge = true @@ -60,21 +60,16 @@ module "codex" { When `enable_aibridge = true`, the module: -- Configures Codex to use the AI Bridge profile with `base_url` pointing to `${data.coder_workspace.me.access_url}/api/v2/aibridge/openai/v1` and `env_key` pointing to the workspace owner's session token +- Configures Codex to use the aibridge model_provider with `base_url` pointing to `${data.coder_workspace.me.access_url}/api/v2/aibridge/openai/v1` and `env_key` pointing to the workspace owner's session token ```toml -profile = "aibridge" # sets the default profile to aibridge +model_provider = "aibridge" [model_providers.aibridge] name = "AI Bridge" base_url = "https://example.coder.com/api/v2/aibridge/openai/v1" env_key = "CODER_AIBRIDGE_SESSION_TOKEN" wire_api = "responses" - -[profiles.aibridge] -model_provider = "aibridge" -model = "" # as configured in the module input -model_reasoning_effort = "" # as configured in the module input ``` This allows Codex to route API requests through Coder's AI Bridge instead of directly to OpenAI's API. @@ -94,7 +89,7 @@ data "coder_task" "me" {} module "codex" { source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.example.id openai_api_key = "..." ai_prompt = data.coder_task.me.prompt @@ -114,7 +109,7 @@ By default, when `enable_boundary = true`, the module uses `coder boundary` subc ```tf module "codex" { source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.main.id openai_api_key = var.openai_api_key workdir = "/home/coder/project" @@ -132,7 +127,7 @@ This example shows additional configuration options for custom models, MCP serve ```tf module "codex" { source = "registry.coder.com/coder-labs/codex/coder" - version = "4.3.0" + version = "4.3.1" agent_id = coder_agent.example.id openai_api_key = "..." workdir = "/home/coder/project" diff --git a/registry/coder-labs/modules/codex/main.test.ts b/registry/coder-labs/modules/codex/main.test.ts index 3eff3eca..13055867 100644 --- a/registry/coder-labs/modules/codex/main.test.ts +++ b/registry/coder-labs/modules/codex/main.test.ts @@ -468,10 +468,7 @@ describe("codex", async () => { id, "/home/coder/.codex/config.toml", ); - expect(configToml).toContain( - "[profiles.aibridge]\n" + 'model_provider = "aibridge"', - ); - expect(configToml).toContain('profile = "aibridge"'); + expect(configToml).toContain('model_provider = "aibridge"'); }); test("boundary-enabled", async () => { diff --git a/registry/coder-labs/modules/codex/main.tf b/registry/coder-labs/modules/codex/main.tf index 4d9c5ae1..b5f71cb3 100644 --- a/registry/coder-labs/modules/codex/main.tf +++ b/registry/coder-labs/modules/codex/main.tf @@ -84,10 +84,10 @@ variable "enable_aibridge" { variable "model_reasoning_effort" { type = string - description = "The reasoning effort for the AI Bridge model. One of: none, low, medium, high. https://platform.openai.com/docs/guides/latest-model#lower-reasoning-effort" - default = "medium" + description = "The reasoning effort for the model. One of: none, low, medium, high. https://platform.openai.com/docs/guides/latest-model#lower-reasoning-effort" + default = "" validation { - condition = contains(["none", "low", "medium", "high"], var.model_reasoning_effort) + condition = contains(["", "none", "minimal", "low", "medium", "high", "xhigh"], var.model_reasoning_effort) error_message = "model_reasoning_effort must be one of: none, low, medium, high." } } @@ -137,7 +137,7 @@ variable "agentapi_version" { variable "codex_model" { type = string description = "The model for Codex to use. Defaults to gpt-5.3-codex." - default = "gpt-5.3-codex" + default = "gpt-5.4" } variable "pre_install_script" { @@ -225,7 +225,7 @@ locals { install_script = file("${path.module}/scripts/install.sh") start_script = file("${path.module}/scripts/start.sh") module_dir_name = ".codex-module" - latest_codex_model = "gpt-5.3-codex" + latest_codex_model = "gpt-5.4" aibridge_config = <<-EOF [model_providers.aibridge] name = "AI Bridge" @@ -233,10 +233,6 @@ locals { env_key = "CODER_AIBRIDGE_SESSION_TOKEN" wire_api = "responses" - [profiles.aibridge] - model_provider = "aibridge" - model = "${var.codex_model}" - model_reasoning_effort = "${var.model_reasoning_effort}" EOF } @@ -302,6 +298,7 @@ module "agentapi" { ARG_ADDITIONAL_MCP_SERVERS='${base64encode(var.additional_mcp_servers)}' \ ARG_CODER_MCP_APP_STATUS_SLUG='${local.app_slug}' \ ARG_CODEX_START_DIRECTORY='${local.workdir}' \ + ARG_MODEL_REASONING_EFFORT='${var.model_reasoning_effort}' \ ARG_CODEX_INSTRUCTION_PROMPT='${base64encode(var.codex_system_prompt)}' \ /tmp/install.sh EOT diff --git a/registry/coder-labs/modules/codex/scripts/install.sh b/registry/coder-labs/modules/codex/scripts/install.sh index 4742c413..9a191a02 100644 --- a/registry/coder-labs/modules/codex/scripts/install.sh +++ b/registry/coder-labs/modules/codex/scripts/install.sh @@ -93,10 +93,14 @@ function install_codex() { write_minimal_default_config() { local config_path="$1" - ARG_DEFAULT_PROFILE="" + ARG_OPTIONAL_TOP_LEVEL_CONFIG="" if [[ "${ARG_ENABLE_AIBRIDGE}" = "true" ]]; then - ARG_DEFAULT_PROFILE='profile = "aibridge"' + ARG_OPTIONAL_TOP_LEVEL_CONFIG='model_provider = "aibridge"' + fi + + if [[ "${ARG_MODEL_REASONING_EFFORT}" != "" ]]; then + ARG_OPTIONAL_TOP_LEVEL_CONFIG+=$'\n'"model_reasoning_effort = \"${ARG_MODEL_REASONING_EFFORT}\"" fi cat << EOF > "$config_path" @@ -104,13 +108,17 @@ write_minimal_default_config() { sandbox_mode = "workspace-write" approval_policy = "never" preferred_auth_method = "apikey" -${ARG_DEFAULT_PROFILE} +${ARG_OPTIONAL_TOP_LEVEL_CONFIG} [sandbox_workspace_write] network_access = true [notice.model_migrations] "${ARG_CODEX_MODEL}" = "${ARG_LATEST_CODEX_MODEL}" + +[projects."${ARG_CODEX_START_DIRECTORY}"] +trust_level = "trusted" + EOF } diff --git a/registry/coder-labs/modules/codex/scripts/start.sh b/registry/coder-labs/modules/codex/scripts/start.sh index 0dbf5a60..bac0cb45 100644 --- a/registry/coder-labs/modules/codex/scripts/start.sh +++ b/registry/coder-labs/modules/codex/scripts/start.sh @@ -155,7 +155,7 @@ setup_workdir() { build_codex_args() { CODEX_ARGS=() - if [[ -n "${ARG_CODEX_MODEL}" ]] && [[ "${ARG_ENABLE_AIBRIDGE}" != "true" ]]; then + if [[ -n "${ARG_CODEX_MODEL}" ]]; then CODEX_ARGS+=("--model" "${ARG_CODEX_MODEL}") fi