From 55b81346d257fc650c15e0d21322bc84ddc9ad32 Mon Sep 17 00:00:00 2001 From: Phelipe Lorran <112786693+httpsphl@users.noreply.github.com> Date: Sat, 10 Oct 2026 16:08:00 -0300 Subject: [PATCH] feat(agents): Codex gets a model list, an effort and images (A3c of spec 30) agents.models answers for codex (model/list on a short-lived app-server, cached 10 minutes); the composer shows the effort slider and the model picker for Codex bots; the effort goes in each turn/start. An image goes as a data URL image input. Checked with the real codex: an image was read with effort low. --- README.md | 4 +- app/src/features/chat/ChatComposer.tsx | 7 +- app/src/features/chat/agentBot.test.tsx | 17 ++++ app/src/i18n/en/bots.ts | 2 +- app/src/i18n/es/bots.ts | 2 +- app/src/i18n/pt-BR/bots.ts | 2 +- crates/botloftd/src/agent/codex.rs | 115 +++++++++++++++++++++++- crates/botloftd/src/agent/codex_wire.rs | 63 +++++++++++-- crates/botloftd/src/agent/mod.rs | 19 ++-- crates/botloftd/src/service/models.rs | 39 ++++---- docs/spec.md | 4 +- 11 files changed, 235 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 3dd1b7af..250071c6 100644 --- a/README.md +++ b/README.md @@ -91,8 +91,8 @@ itself. Claude Code is the full experience. Antigravity and Codex are off until you list them in Botloft's `config.toml` (`experimental_agents = ["agy"]`, `["codex"]` or both); then a new bot can be made on them, and Settings has "Agent for new bots". A Codex bot asks you before it changes a file or runs a -command, like Claude Code, and shows the exact size of its conversation; it can still read any file, -and it has no model picker or images yet. See [spec section 30](docs/spec.md) for what was +command, like Claude Code, and shows the exact size of its conversation; it can still read any file. +It has its own model list and effort picker, and understands images. See [spec section 30](docs/spec.md) for what was checked. ## Get started diff --git a/app/src/features/chat/ChatComposer.tsx b/app/src/features/chat/ChatComposer.tsx index d4f1580b..9e411f11 100644 --- a/app/src/features/chat/ChatComposer.tsx +++ b/app/src/features/chat/ChatComposer.tsx @@ -253,8 +253,13 @@ export const ChatComposer = memo(function ChatComposer({ + ) : bot.agent === "codex" ? ( + <> + + + ) : ( - bot.agent === "agy" && + )}