Codex provider capabilities struct and where namespace serialization is gated
Parent: Mac local LLMs: Agent clients, context and compaction · Published reference · snapshot 2026-10-05
↓ Facts as markdownall context files
Which commit removed `namespace_tools`, and whether a replacement gate exists in the app-server or in the Chat-Completions bridge.
These notes link each claim to its source. A source may be a research report hosted on this site rather than the primary document. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
Facts
- Which commit removed `namespace_tools`, and whether a replacement gate exists in the app-server or in the Chat-Completions bridge. [source]
- `ProviderCapabilities` has four fields: `image_generation`, `web_search`, `external_web_access` and `remote_compaction`. [source]
- The struct's default sets `image_generation`, `web_search` and `external_web_access` to true and `remote_compaction` to `Unsupported`. [source]
- `from_config` sets `remote_compaction` to `V2` for OpenAI and Azure Responses providers and applies config overrides only to `external_web_access` and `remote_compaction`. [source]
- The doc comment calls these capabilities "a provider-owned upper bound" that model and turn settings can further restrict. [source]
- `ModelProviderCapabilities` has two `Option` fields, `external_web_access` and `remote_compaction`, and denies unknown fields in its JSON schema. [source]
- `RemoteCompactionSupport` has two values: `Unsupported` (local compaction) and `V2` (send `compaction_trigger` items over the Responses endpoint). [source]
- `ModelProviderInfo` has `capabilities: Option<ModelProviderCapabilities>`, `wire_api`, `supports_websockets` and `supports_standalone_web_search` as separate fields. [source]
- The `ModelProvider` trait's default `capabilities()` returns `ProviderCapabilities::default()` and the concrete provider returns `ProviderCapabilities::from_config(&self.info)`. [source]
- `ToolSpec::Namespace` is serialized under the tag `namespace` with no provider condition. [source]
- `create_tools_json_for_responses_lite` collects `Function`, `Freeform` and default-named namespace specs into one namespace named `DEFAULT_FUNCTION_NAMESPACE` and leaves other specs as they are. [source]
- In `client.rs`, `use_responses_lite` selects `create_tools_json_for_responses_lite` and an `AdditionalTools` developer item; other requests use `create_tools_raw_json_for_responses_api`; `parallel_tool_calls` is `prompt.parallel_tool_calls && !model_info.use_responses_lite`. [source]
- `spec_plan.rs` passes `model_info.supports_search_tool` to `append_mcp_tools` and merges same-named namespace specs in `merge_into_namespaces`. [source]
- The string `namespace_tools` does not appear in `capabilities.rs`, `provider.rs`, `lib.rs` of `codex-model-provider-info`, or `spec_plan.rs` on main. [source]
Children
- No children recorded.