Skip to content

codex-tools: extract shared tool schema parsing#15923

Merged
bolinfest merged 1 commit intomainfrom
pr15923
Mar 27, 2026
Merged

codex-tools: extract shared tool schema parsing#15923
bolinfest merged 1 commit intomainfrom
pr15923

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented Mar 26, 2026

Why

parse_tool_input_schema and the supporting JsonSchema model were living in core/src/tools/spec.rs, but they already serve callers outside codex-core.

Keeping that shared schema parsing logic inside codex-core makes the crate boundary harder to reason about and works against the guidance in AGENTS.md to avoid growing codex-core when reusable code can live elsewhere.

This change takes the first extraction step by moving the schema parsing primitive into its own crate while keeping the rest of the tool-spec assembly in codex-core.

What changed

  • added a new codex-tools crate under codex-rs/tools
  • moved the shared tool input schema model and sanitizer/parser into tools/src/json_schema.rs
  • kept tools/src/lib.rs exports-only, with the module-level unit tests split into json_schema_tests.rs
  • updated codex-core to use codex-tools::JsonSchema and re-export parse_tool_input_schema
  • updated codex-app-server dynamic tool validation to depend on codex-tools directly instead of reaching through codex-core
  • wired the new crate into the Cargo workspace and Bazel build graph

@bolinfest bolinfest changed the title Extract tool schema parsing into codex-tools codex-tools: extract shared tool schema parsing Mar 26, 2026
@bolinfest bolinfest enabled auto-merge (squash) March 26, 2026 23:43
@bolinfest bolinfest merged commit 44d28f5 into main Mar 27, 2026
93 of 103 checks passed
@bolinfest bolinfest deleted the pr15923 branch March 27, 2026 00:03
@github-actions github-actions bot locked and limited conversation to collaborators Mar 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants