Michael Bolin
a99d4845e3
Extract tool config into codex-tools ( #16379 )
...
## Why
`codex-core` already owns too much of the tool stack, and `AGENTS.md`
explicitly pushes us to move shared code out of `codex-core` instead of
letting it keep growing. This PR takes the next incremental step in
moving `core/src/tools` toward `codex-rs/tools` by extracting
low-coupling tool configuration and image-detail gating logic into
`codex-tools`.
That gives later extraction work a cleaner boundary to build on without
trying to move the entire tools subtree in one shot.
## What changed
- moved `ToolsConfig`, `ToolsConfigParams`, shell backend config, and
unified-exec session selection from `core/src/tools/spec.rs` into
`codex-tools`
- moved original image-detail gating and normalization into
`codex-tools`
- updated `codex-core` to consume the new `codex-tools` exports and pass
a rendered agent-type description instead of raw role config
- kept `codex-rs/tools/src/lib.rs` exports-only, with extracted unit
tests living in sibling `*_tests.rs` modules
## Testing
- `cargo test -p codex-tools`
- `cargo test -p codex-core --lib tools::spec::`
2026-04-01 13:21:50 -07:00
..
2026-03-31 13:06:08 +02:00
2026-03-25 12:26:02 -07:00
2026-01-13 10:22:51 -08:00
2026-03-27 19:00:44 -07:00
2026-03-31 16:45:58 -06:00
2026-03-27 19:00:44 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 19:00:44 -07:00
2026-03-25 12:57:42 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 19:00:44 -07:00
2026-03-31 14:44:54 -07:00
2026-03-30 10:48:49 -07:00
2026-04-01 11:03:48 -04:00
2026-03-24 18:34:44 -07:00
2026-03-27 15:45:19 +01:00
2026-04-01 11:03:48 -04:00
2026-04-01 13:21:50 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 18:10:53 -07:00
2026-03-14 15:38:51 -07:00
2026-03-26 13:34:02 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-20 21:13:20 +00:00
2026-03-20 21:13:20 +00:00
2026-03-31 01:37:27 -07:00
2026-03-27 19:00:44 -07:00
2026-03-28 13:37:00 -07:00
2026-03-27 19:00:44 -07:00
2026-03-31 01:37:27 -07:00
2026-03-26 15:32:03 -07:00
2026-03-26 15:32:03 -07:00
2026-03-27 19:00:44 -07:00
2026-03-30 11:47:20 +02:00
2026-03-31 11:22:38 +02:00
2026-04-01 13:21:50 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-12 08:16:36 -07:00
2026-03-19 10:53:08 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 15:45:40 -07:00
2026-03-27 19:00:44 -07:00
2026-03-30 10:48:49 -07:00
2026-03-12 00:35:21 -07:00
2026-03-27 19:00:44 -07:00
2026-03-25 10:43:49 -07:00
2026-03-19 18:58:17 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 06:17:59 +00:00
2026-03-27 14:25:13 -07:00
2026-03-27 14:25:13 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 12:43:53 -07:00
2026-03-27 19:00:44 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-21 01:28:25 +00:00
2026-03-27 19:00:44 -07:00
2026-04-01 11:03:48 -04:00
2026-03-27 19:00:44 -07:00
2026-03-16 16:48:15 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 11:04:47 -07:00
2025-09-24 14:29:51 -07:00
2026-01-08 15:07:30 +00:00
2026-03-27 19:00:44 -07:00
2026-03-25 19:18:03 -07:00
2026-03-25 23:51:39 -07:00
2026-03-31 12:16:44 -07:00
2026-03-28 19:58:00 -07:00
2026-03-28 19:58:00 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 15:22:04 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-25 11:05:35 -07:00
2026-03-27 19:00:44 -07:00
2026-03-18 11:54:11 -06:00
2026-03-31 01:37:27 -07:00
2026-03-31 01:37:27 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-27 06:17:59 +00:00
2026-04-01 13:21:50 -07:00
2026-03-19 20:12:07 -07:00
2026-03-20 18:23:48 +00:00
2026-03-16 16:48:15 -07:00
2026-03-27 19:00:44 -07:00
2026-03-25 16:02:22 +00:00
2026-03-31 01:37:27 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 15:45:40 -07:00
2026-03-16 21:38:07 -07:00
2026-03-31 01:37:27 -07:00
2026-03-14 15:38:51 -07:00
2026-03-16 16:48:15 -07:00
2026-03-27 14:50:01 +01:00
2026-03-24 18:10:53 -07:00
2026-03-26 16:06:53 -04:00
2026-03-24 08:20:57 -07:00
2026-03-27 19:00:44 -07:00
2026-03-24 08:20:57 -07:00
2026-03-26 17:12:45 -07:00
2026-03-20 18:23:48 +00:00
2026-03-24 18:10:53 -07:00
2026-03-17 10:07:46 -07:00
2026-02-10 17:03:46 -08:00
2026-03-30 11:59:50 -07:00
2026-03-17 17:59:27 +00:00
2026-03-27 19:00:44 -07:00
2026-03-16 16:48:15 -07:00
2026-03-27 19:00:44 -07:00
2026-03-25 12:57:42 -07:00
2026-03-07 02:30:21 +00:00
2026-03-24 18:10:53 -07:00
2026-03-27 19:00:44 -07:00
2026-03-19 22:57:16 -07:00
2026-03-25 16:14:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-25 16:14:36 -07:00
2026-03-31 14:10:43 +02:00
2026-03-31 14:10:43 +02:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-19 22:05:13 +00:00
2026-03-24 13:26:23 -07:00
2026-03-18 10:03:38 +00:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-19 18:58:17 -07:00
2026-01-30 16:37:56 -08:00
2026-03-12 08:16:36 -07:00
2026-03-12 08:16:36 -07:00
2026-03-27 19:00:44 -07:00
2026-03-26 17:27:38 -07:00