Skip to content

codex-tools: extract discoverable tool models#16254

Merged
bolinfest merged 1 commit intomainfrom
pr16254
Mar 30, 2026
Merged

codex-tools: extract discoverable tool models#16254
bolinfest merged 1 commit intomainfrom
pr16254

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented Mar 30, 2026

Why

#16193 moved the pure tool_search and tool_suggest spec builders into codex-tools, but codex-core still owned the shared discoverable-tool model that those builders and the tool_suggest runtime both depend on. This change continues the migration by moving that reusable model boundary out of codex-core as well, so the discovery/suggestion stack uses one shared set of types and core/src/tools no longer needs its own discoverable.rs module.

What changed

  • Moved DiscoverableTool, DiscoverablePluginInfo, and filter_tool_suggest_discoverable_tools_for_client() into codex-rs/tools/src/tool_discovery.rs alongside the extracted discovery/suggestion spec builders.
  • Added codex-app-server-protocol as a codex-tools dependency so the shared discoverable-tool model can own the connector-side AppInfo variant directly.
  • Updated core/src/tools/handlers/tool_suggest.rs, core/src/tools/spec.rs, core/src/tools/router.rs, core/src/connectors.rs, and core/src/codex.rs to consume the shared codex-tools model instead of the old core-local declarations.
  • Changed core/src/plugins/discoverable.rs to return DiscoverablePluginInfo directly, moved the pure client-filter coverage into tool_discovery_tests.rs, and deleted the old core/src/tools/discoverable.rs module.
  • Updated codex-rs/tools/README.md so the crate boundary documents that codex-tools now owns the discoverable-tool models in addition to the discovery/suggestion spec builders.

Test plan

  • cargo test -p codex-tools
  • CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib tools::handlers::tool_suggest::
  • CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib tools::spec::
  • CARGO_TARGET_DIR=/tmp/codex-core-discoverable-model cargo test -p codex-core --lib plugins::discoverable::
  • just bazel-lock-check
  • just argument-comment-lint

References

@bolinfest bolinfest merged commit 258ba43 into main Mar 30, 2026
22 checks passed
@bolinfest bolinfest deleted the pr16254 branch March 30, 2026 17:48
@github-actions github-actions bot locked and limited conversation to collaborators Mar 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

1 participant