codex-rs/model-provider/src/provider.rs (39 lines):
	- line 17: use codex_model_provider_info::ModelProviderInfo;
	- line 146: /// `ModelProviderInfo` returned by `info` is the serialized/configured provider
	- line 150: fn info(&self) -> &ModelProviderInfo;
	- line 311: fn provider_uses_first_party_auth_path(provider: &ModelProviderInfo) -> bool {
	- line 321: provider_info: ModelProviderInfo,
	- line 331: /// Runtime model provider backed by configured `ModelProviderInfo`.
	- line 334: info: ModelProviderInfo,
	- line 339: fn new(provider_info: ModelProviderInfo, auth_manager: Option<Arc<AuthManager>>) -> Self {
	- line 349: fn info(&self) -> &ModelProviderInfo {
	- line 525: use codex_model_provider_info::WireApi;
	- line 548: fn provider_info_with_command_auth() -> ModelProviderInfo {
	- line 549: ModelProviderInfo {
	- line 561: ..ModelProviderInfo::create_openai_provider(/*base_url*/ None)
	- line 569: fn provider_for(base_url: String) -> ModelProviderInfo {
	- line 570: ModelProviderInfo {
	- line 578: wire_api: WireApi::Responses,
	- line 626: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses),
	- line 645: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 662: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 666: ModelProviderInfo {
	- line 669: ..ModelProviderInfo::default()
	- line 674: ModelProviderInfo {
	- line 677: ..ModelProviderInfo::default()
	- line 696: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 709: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 721: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 766: ModelProviderInfo::create_amazon_bedrock_provider(Some(ModelProviderAwsAuthInfo {
	- line 842: let provider_info = ModelProviderInfo::create_amazon_bedrock_provider(Some(aws.clone()));
	- line 877: ModelProviderInfo::create_amazon_bedrock_provider(Some(invalid_aws)),
	- line 927: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 937: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 953: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 971: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 992: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 1005: ModelProviderInfo {
	- line 1008: wire_api: WireApi::Responses,
	- line 1027: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 1045: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 1138: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),


codex-rs/model-provider-info/src/lib.rs (29 lines):
	- line 58: pub const LEGACY_OLLAMA_CHAT_PROVIDER_ID: &str = "ollama-chat";
	- line 59: pub const OLLAMA_CHAT_PROVIDER_REMOVED_ERROR: &str = "`ollama-chat` is no longer supported.\nHow to fix: replace `ollama-chat` with `ollama` in `model_provider`, `oss_provider`, or `--local-provider`.\nMore info: https://github.com/openai/codex/discussions/7782";
	- line 64: pub enum WireApi {
	- line 65: /// The Responses API exposed by OpenAI at `/v1/responses`.
	- line 70: impl fmt::Display for WireApi {
	- line 79: impl<'de> Deserialize<'de> for WireApi {
	- line 96: pub struct ModelProviderInfo {
	- line 118: pub wire_api: WireApi,
	- line 192: impl ModelProviderInfo {
	- line 385: pub fn create_openai_provider(base_url: Option<String>) -> ModelProviderInfo {
	- line 386: ModelProviderInfo {
	- line 394: wire_api: WireApi::Responses,
	- line 425: ) -> ModelProviderInfo {
	- line 426: ModelProviderInfo {
	- line 441: wire_api: WireApi::Responses,
	- line 460: ) -> ModelProviderInfo {
	- line 507: pub const LMSTUDIO_OSS_PROVIDER_ID: &str = "lmstudio";
	- line 508: pub const OLLAMA_OSS_PROVIDER_ID: &str = "ollama";
	- line 513: ) -> HashMap<String, ModelProviderInfo> {
	- line 514: use ModelProviderInfo as P;
	- line 533: create_oss_provider(DEFAULT_OLLAMA_PORT, WireApi::Responses),
	- line 537: create_oss_provider(DEFAULT_LMSTUDIO_PORT, WireApi::Responses),
	- line 551: mut model_providers: HashMap<String, ModelProviderInfo>,
	- line 552: configured_model_providers: HashMap<String, ModelProviderInfo>,
	- line 553: ) -> Result<HashMap<String, ModelProviderInfo>, String> {
	- line 563: if provider != ModelProviderInfo::default() {
	- line 592: pub fn create_oss_provider(default_provider_port: u16, wire_api: WireApi) -> ModelProviderInfo {
	- line 611: pub fn create_oss_provider_with_base_url(base_url: &str, wire_api: WireApi) -> ModelProviderInfo {
	- line 612: ModelProviderInfo {


codex-rs/core/src/tools/handlers/multi_agents_spec.rs (19 lines):
	- line 6: use codex_tools::ResponsesApiNamespace;
	- line 7: use codex_tools::ResponsesApiNamespaceTool;
	- line 8: use codex_tools::ResponsesApiTool;
	- line 81: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 84: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 123: ToolSpec::Function(ResponsesApiTool {
	- line 166: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 169: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 198: ToolSpec::Function(ResponsesApiTool {
	- line 231: ToolSpec::Function(ResponsesApiTool {
	- line 248: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 251: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 265: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 268: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 281: ToolSpec::Function(ResponsesApiTool {
	- line 301: ToolSpec::Function(ResponsesApiTool {
	- line 319: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 322: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 343: ToolSpec::Function(ResponsesApiTool {


codex-rs/config/src/thread_config/remote.rs (18 lines):
	- line 6: use codex_model_provider_info::ModelProviderInfo;
	- line 7: use codex_model_provider_info::WireApi;
	- line 154: ) -> Result<(String, ModelProviderInfo), ThreadConfigLoadError> {
	- line 161: let wire_api = match proto::WireApi::try_from(provider.wire_api) {
	- line 162: Ok(proto::WireApi::Responses) => WireApi::Responses,
	- line 163: Ok(proto::WireApi::Unspecified) => {
	- line 173: let info = ModelProviderInfo {
	- line 202: provider: ModelProviderInfo,
	- line 204: let ModelProviderInfo {
	- line 305: fn proto_wire_api(wire_api: WireApi) -> proto::WireApi {
	- line 307: WireApi::Responses => proto::WireApi::Responses,
	- line 325: use codex_model_provider_info::ModelProviderInfo;
	- line 326: use codex_model_provider_info::WireApi;
	- line 451: let expected = ModelProviderInfo {
	- line 484: wire_api: proto::WireApi::Responses.into(),
	- line 540: fn expected_provider() -> ModelProviderInfo {
	- line 541: ModelProviderInfo {
	- line 554: wire_api: WireApi::Responses,


codex-rs/model-provider/src/auth.rs (17 lines):
	- line 18: use codex_model_provider_info::ModelProviderInfo;
	- line 189: provider: &ModelProviderInfo,
	- line 199: provider: &ModelProviderInfo,
	- line 227: provider: &ModelProviderInfo,
	- line 293: provider: &ModelProviderInfo,
	- line 350: use codex_model_provider_info::WireApi;
	- line 474: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses);
	- line 483: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses);
	- line 504: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses);
	- line 519: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses);
	- line 540: create_oss_provider_with_base_url("http://localhost:11434/v1", WireApi::Responses);
	- line 565: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);
	- line 600: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);
	- line 684: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);
	- line 752: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);
	- line 792: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);
	- line 826: let provider = ModelProviderInfo::create_openai_provider(/*base_url*/ None);


codex-rs/core/src/client.rs (16 lines):
	- line 52: use codex_api::ResponsesApiRequest;
	- line 143: use codex_model_provider_info::ModelProviderInfo;
	- line 144: use codex_model_provider_info::WireApi;
	- line 224: request: &ResponsesApiRequest,
	- line 341: last_request: Option<ResponsesApiRequest>,
	- line 352: previous: &ResponsesApiRequest,
	- line 353: current: &ResponsesApiRequest,
	- line 355: let ResponsesApiRequest {
	- line 373: let ResponsesApiRequest {
	- line 478: provider_info: ModelProviderInfo,
	- line 651: let ResponsesApiRequest {
	- line 935: ) -> Result<ResponsesApiRequest> {
	- line 1014: let request = ResponsesApiRequest {
	- line 1338: request: &ResponsesApiRequest,
	- line 1388: request: &ResponsesApiRequest,
	- line 2029: WireApi::Responses => {


codex-rs/tui/src/oss_selection.rs (16 lines):
	- line 112: fn new(lmstudio_status: ProviderStatus, ollama_status: ProviderStatus) -> io::Result<Self> {
	- line 116: status: lmstudio_status,
	- line 120: status: ollama_status.clone(),
	- line 124: status: ollama_status,
	- line 324: lmstudio_status: ProviderStatus,
	- line 325: ollama_status: ProviderStatus,
	- line 338: let lmstudio_status = check_lmstudio_status(&client).await;
	- line 339: let ollama_status = check_ollama_status(&client).await;
	- line 342: match (&lmstudio_status, &ollama_status) {
	- line 358: lmstudio_status,
	- line 359: ollama_status,
	- line 366: lmstudio_status: ProviderStatus,
	- line 367: ollama_status: ProviderStatus,
	- line 369: let mut widget = OssSelectionWidget::new(lmstudio_status, ollama_status)?;
	- line 406: async fn check_lmstudio_status(client: &HttpClient) -> ProviderStatus {
	- line 414: async fn check_ollama_status(client: &HttpClient) -> ProviderStatus {


codex-rs/model-provider/src/amazon_bedrock/mod.rs (15 lines):
	- line 23: use codex_model_provider_info::ModelProviderInfo;
	- line 60: pub(crate) info: ModelProviderInfo,
	- line 69: provider_info: ModelProviderInfo,
	- line 194: fn info(&self) -> &ModelProviderInfo {
	- line 353: fn command_auth_provider(base_url: Option<&str>) -> ModelProviderInfo {
	- line 354: let mut provider = ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None);
	- line 373: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None);
	- line 458: ModelProviderInfo::create_amazon_bedrock_provider(Some(aws.clone())),
	- line 509: ModelProviderInfo::create_amazon_bedrock_provider(Some(ModelProviderAwsAuthInfo {
	- line 550: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 572: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 591: ModelProviderInfo::create_amazon_bedrock_runtime_provider(/*aws*/ None),
	- line 616: ModelProviderInfo::create_amazon_bedrock_runtime_provider(/*aws*/ None),
	- line 632: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
	- line 636: ModelProviderInfo::create_amazon_bedrock_runtime_provider(/*aws*/ None),


codex-rs/tools/src/tool_spec.rs (14 lines):
	- line 4: use crate::ResponsesApiNamespace;
	- line 5: use crate::ResponsesApiNamespaceTool;
	- line 6: use crate::ResponsesApiTool;
	- line 24: Function(ResponsesApiTool),
	- line 26: Namespace(ResponsesApiNamespace),
	- line 46: filters: Option<ResponsesApiWebSearchFilters>,
	- line 48: user_location: Option<ResponsesApiWebSearchUserLocation>,
	- line 98: let mut functions = ResponsesApiNamespace {
	- line 111: .push(ResponsesApiNamespaceTool::Function(tool.clone()));
	- line 116: .push(ResponsesApiNamespaceTool::Custom(tool.clone()));
	- line 152: pub struct ResponsesApiWebSearchFilters {
	- line 157: impl From<ConfigWebSearchFilters> for ResponsesApiWebSearchFilters {
	- line 166: pub struct ResponsesApiWebSearchUserLocation {
	- line 179: impl From<ConfigWebSearchUserLocation> for ResponsesApiWebSearchUserLocation {


codex-rs/tools/src/responses_api.rs (13 lines):
	- line 32: pub struct ResponsesApiTool {
	- line 52: Function(ResponsesApiTool),
	- line 54: Namespace(ResponsesApiNamespace),
	- line 58: pub struct ResponsesApiNamespace {
	- line 61: pub tools: Vec<ResponsesApiNamespaceTool>,
	- line 75: pub enum ResponsesApiNamespaceTool {
	- line 77: Function(ResponsesApiTool),
	- line 84: ) -> Result<ResponsesApiTool, serde_json::Error> {
	- line 123: ) -> Result<ResponsesApiTool, serde_json::Error> {
	- line 132: ) -> Result<ResponsesApiTool, serde_json::Error> {
	- line 149: ) -> Result<ResponsesApiTool, serde_json::Error> {
	- line 157: pub fn tool_definition_to_responses_api_tool(tool_definition: ToolDefinition) -> ResponsesApiTool {
	- line 158: ResponsesApiTool {


codex-rs/ollama/src/client.rs (12 lines):
	- line 22: use codex_model_provider_info::ModelProviderInfo;
	- line 25: use codex_model_provider_info::WireApi;
	- line 29: const OLLAMA_CONNECTION_ERROR: &str = "No running Ollama server detected. Start it with: `ollama serve` (after installing). Install instructions: https://github.com/ollama/ollama?tab=readme-ov-file#ollama";
	- line 62: let provider = create_oss_provider_with_base_url(base_url, WireApi::Responses);
	- line 72: provider: &ModelProviderInfo,
	- line 256: // Empirically, ollama returns a 200 OK response even when
	- line 436: let ollama_client =
	- line 440: ollama_client
	- line 481: let base_url = "http://ollama-proxy.invalid";
	- line 492: let provider = create_oss_provider_with_base_url(base_url, WireApi::Responses);
	- line 520: "codex-ollama-invalid-ca-{}.pem",
	- line 566: let provider = create_oss_provider_with_base_url(&server.uri(), WireApi::Responses);


codex-rs/tools/src/tool_search.rs (12 lines):
	- line 3: use crate::ResponsesApiNamespace;
	- line 4: use crate::ResponsesApiNamespaceTool;
	- line 5: use crate::ResponsesApiTool;
	- line 41: LoadableToolSpec::Namespace(ResponsesApiNamespace {
	- line 44: tools: vec![ResponsesApiNamespaceTool::Function(tool)],
	- line 49: LoadableToolSpec::Namespace(ResponsesApiNamespace {
	- line 52: tools: vec![ResponsesApiNamespaceTool::Custom(tool)],
	- line 61: ResponsesApiNamespaceTool::Function(tool) => {
	- line 65: ResponsesApiNamespaceTool::Custom(tool) => {
	- line 97: ResponsesApiNamespaceTool::Function(tool) => {
	- line 100: ResponsesApiNamespaceTool::Custom(tool) => {
	- line 124: fn append_function_search_text(tool: &ResponsesApiTool, parts: &mut Vec<String>) {


codex-rs/codex-api/src/common.rs (11 lines):
	- line 54: pub tools: Option<ResponsesApiTools>,
	- line 245: pub struct ResponsesApiTools(Arc<RawValue>);
	- line 247: impl ResponsesApiTools {
	- line 253: impl From<Arc<RawValue>> for ResponsesApiTools {
	- line 259: impl PartialEq for ResponsesApiTools {
	- line 265: impl Serialize for ResponsesApiTools {
	- line 275: pub struct ResponsesApiRequest {
	- line 281: pub tools: Option<ResponsesApiTools>,
	- line 302: impl<'a> From<&'a ResponsesApiRequest> for ResponseCreateWsRequest<'a> {
	- line 303: fn from(request: &'a ResponsesApiRequest) -> Self {
	- line 309: tools: request.tools.as_ref().map(ResponsesApiTools::as_raw_value),


codex-rs/utils/oss/src/lib.rs (10 lines):
	- line 10: LMSTUDIO_OSS_PROVIDER_ID => Some(codex_lmstudio::DEFAULT_OSS_MODEL),
	- line 11: OLLAMA_OSS_PROVIDER_ID => Some(codex_ollama::DEFAULT_OSS_MODEL),
	- line 23: codex_lmstudio::ensure_oss_ready(config)
	- line 28: let client = codex_ollama::OllamaClient::try_from_oss_provider(config).await?;
	- line 29: codex_ollama::ensure_responses_supported(&client).await?;
	- line 30: codex_ollama::ensure_oss_ready(config, &client)
	- line 46: fn test_get_default_model_for_provider_lmstudio() {
	- line 48: assert_eq!(result, Some(codex_lmstudio::DEFAULT_OSS_MODEL));
	- line 52: fn test_get_default_model_for_provider_ollama() {
	- line 54: assert_eq!(result, Some(codex_ollama::DEFAULT_OSS_MODEL));


codex-rs/model-provider/src/models_endpoint.rs (9 lines):
	- line 23: use codex_model_provider_info::ModelProviderInfo;
	- line 45: provider_info: ModelProviderInfo,
	- line 52: provider_info: ModelProviderInfo,
	- line 322: fn provider_info_with_command_auth() -> ModelProviderInfo {
	- line 323: ModelProviderInfo {
	- line 335: ..ModelProviderInfo::create_openai_provider(/*base_url*/ None)
	- line 352: ModelProviderInfo::create_openai_provider(/*base_url*/ None),
	- line 374: provider_info: ModelProviderInfo::create_openai_provider(Some(server.uri())),
	- line 413: let mut provider_info = ModelProviderInfo::create_openai_provider(Some(server.uri()));


codex-rs/core/src/tools/handlers/tool_search.rs (8 lines):
	- line 267: use codex_tools::ResponsesApiNamespace;
	- line 268: use codex_tools::ResponsesApiNamespaceTool;
	- line 269: use codex_tools::ResponsesApiTool;
	- line 410: LoadableToolSpec::Namespace(ResponsesApiNamespace {
	- line 414: ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 426: ResponsesApiNamespaceTool::Function(ResponsesApiTool {
	- line 440: LoadableToolSpec::Namespace(ResponsesApiNamespace {
	- line 443: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {


codex-rs/core/src/tools/spec_plan.rs (8 lines):
	- line 81: use codex_tools::ResponsesApiNamespace;
	- line 82: use codex_tools::ResponsesApiNamespaceTool;
	- line 944: ResponsesApiNamespaceTool::Function(tool) => &tool.name,
	- line 945: ResponsesApiNamespaceTool::Custom(tool) => &tool.name,
	- line 948: ResponsesApiNamespaceTool::Function(tool) => &tool.name,
	- line 949: ResponsesApiNamespaceTool::Custom(tool) => &tool.name,
	- line 1470: ToolSpec::Function(tool) => ToolSpec::Namespace(ResponsesApiNamespace {
	- line 1473: tools: vec![ResponsesApiNamespaceTool::Function(tool)],


codex-rs/config/src/thread_config.rs (7 lines):
	- line 7: use codex_model_provider_info::ModelProviderInfo;
	- line 29: pub model_providers: HashMap<String, ModelProviderInfo>,
	- line 213: use codex_model_provider_info::ModelProviderInfo;
	- line 214: use codex_model_provider_info::WireApi;
	- line 297: fn test_provider(name: &str) -> ModelProviderInfo {
	- line 298: ModelProviderInfo {
	- line 306: wire_api: WireApi::Responses,


codex-rs/config/src/config_toml.rs (7 lines):
	- line 38: use codex_model_provider_info::ModelProviderInfo;
	- line 299: pub model_providers: HashMap<String, ModelProviderInfo>,
	- line 524: /// Preferred OSS provider for local models, e.g. "lmstudio" or "ollama".
	- line 892: model_providers: &HashMap<String, ModelProviderInfo>,
	- line 917: model_providers: &HashMap<String, ModelProviderInfo>,
	- line 946: ) -> Result<HashMap<String, ModelProviderInfo>, D::Error>
	- line 950: let model_providers = HashMap::<String, ModelProviderInfo>::deserialize(deserializer)?;


codex-rs/ext/skills/src/tools/mod.rs (6 lines):
	- line 17: use codex_extension_api::ResponsesApiTool;
	- line 29: use codex_tools::ResponsesApiNamespace;
	- line 30: use codex_tools::ResponsesApiNamespaceTool;
	- line 300: let tool = ResponsesApiTool {
	- line 310: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 313: tools: vec![ResponsesApiNamespaceTool::Function(tool)],


codex-rs/ext/memories/src/tools/mod.rs (6 lines):
	- line 4: use codex_extension_api::ResponsesApiTool;
	- line 11: use codex_tools::ResponsesApiNamespace;
	- line 12: use codex_tools::ResponsesApiNamespaceTool;
	- line 63: let tool = ResponsesApiTool {
	- line 73: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 76: tools: vec![ResponsesApiNamespaceTool::Function(tool)],


codex-rs/core/src/tools/handlers/current_time.rs (5 lines):
	- line 13: use codex_tools::ResponsesApiNamespace;
	- line 14: use codex_tools::ResponsesApiNamespaceTool;
	- line 15: use codex_tools::ResponsesApiTool;
	- line 55: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 58: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {


codex-rs/tools/src/code_mode.rs (5 lines):
	- line 1: use crate::ResponsesApiNamespaceTool;
	- line 31: ResponsesApiNamespaceTool::Function(tool) => {
	- line 45: ResponsesApiNamespaceTool::Custom(tool) => {
	- line 152: ResponsesApiNamespaceTool::Function(tool) => {
	- line 163: ResponsesApiNamespaceTool::Custom(tool) => {


codex-rs/model-provider/src/amazon_bedrock/auth.rs (5 lines):
	- line 16: use codex_model_provider_info::ModelProviderInfo;
	- line 52: provider_info: &ModelProviderInfo,
	- line 320: let provider = ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None);
	- line 322: ModelProviderInfo::create_amazon_bedrock_provider(Some(ModelProviderAwsAuthInfo {
	- line 340: &ModelProviderInfo,


codex-rs/ext/web-search/src/tool.rs (5 lines):
	- line 11: use codex_extension_api::ResponsesApiTool;
	- line 28: use codex_tools::ResponsesApiNamespace;
	- line 29: use codex_tools::ResponsesApiNamespaceTool;
	- line 64: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 67: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {


codex-rs/core/src/tools/handlers/sleep.rs (5 lines):
	- line 13: use codex_tools::ResponsesApiNamespace;
	- line 14: use codex_tools::ResponsesApiNamespaceTool;
	- line 15: use codex_tools::ResponsesApiTool;
	- line 44: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 47: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {


codex-rs/login/src/auth_env_telemetry.rs (5 lines):
	- line 1: use codex_model_provider_info::ModelProviderInfo;
	- line 32: provider: &ModelProviderInfo,
	- line 56: use codex_model_provider_info::WireApi;
	- line 61: let provider = ModelProviderInfo {
	- line 69: wire_api: WireApi::Responses,


codex-rs/ext/image-generation/src/tool.rs (5 lines):
	- line 37: use codex_tools::ResponsesApiNamespace;
	- line 38: use codex_tools::ResponsesApiNamespaceTool;
	- line 39: use codex_tools::ResponsesApiTool;
	- line 594: ToolSpec::Namespace(ResponsesApiNamespace {
	- line 597: tools: vec![ResponsesApiNamespaceTool::Function(ResponsesApiTool {


codex-rs/tools/src/lib.rs (5 lines):
	- line 57: pub use responses_api::ResponsesApiNamespace;
	- line 58: pub use responses_api::ResponsesApiNamespaceTool;
	- line 59: pub use responses_api::ResponsesApiTool;
	- line 103: pub use tool_spec::ResponsesApiWebSearchFilters;
	- line 104: pub use tool_spec::ResponsesApiWebSearchUserLocation;


codex-rs/cli/src/doctor.rs (5 lines):
	- line 3301: "ollama",
	- line 3322: assert_eq!(overrides.model_provider.as_deref(), Some("ollama"));
	- line 3743: url: "https://example.openai.azure.com/openai/v1/responses".to_string(),
	- line 3774: url: "https://example.com/openai/v1/responses?api-version=2026-01-01"
	- line 3821: url: "https://api.openai.com/v1/responses".to_string(),


codex-rs/core/src/tools/handlers/shell_spec.rs (4 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 95: ToolSpec::Function(ResponsesApiTool {
	- line 145: ToolSpec::Function(ResponsesApiTool {
	- line 179: ToolSpec::Function(ResponsesApiTool {


codex-rs/lmstudio/src/lib.rs (4 lines):
	- line 20: let lmstudio_client = LMStudioClient::try_from_provider(config).await?;
	- line 22: match lmstudio_client.fetch_models().await {
	- line 25: lmstudio_client.download_model(model).await?;
	- line 36: let client = lmstudio_client.clone();


codex-rs/tui/src/status/tests.rs (4 lines):
	- line 38: use codex_model_provider_info::ModelProviderInfo;
	- line 738: ModelProviderInfo::create_amazon_bedrock_provider(Some(ModelProviderAwsAuthInfo {
	- line 788: config.model_provider = ModelProviderInfo {
	- line 792: ..ModelProviderInfo::default()


codex-rs/lmstudio/src/client.rs (4 lines):
	- line 15: const LMSTUDIO_CONNECTION_ERROR: &str = "LM Studio is not responding. Install from https://lmstudio.ai/download and run 'lms server start'.";
	- line 158: let fallback_path = format!("{home}/.lmstudio/bin/lms");
	- line 161: let fallback_path = format!("{home}/.lmstudio/bin/lms.exe");
	- line 168: "LM Studio not found. Please install LM Studio from https://lmstudio.ai/",


codex-rs/core/src/tools/handlers/extension_tools.rs (4 lines):
	- line 10: use codex_tools::ResponsesApiNamespaceTool;
	- line 105: ResponsesApiNamespaceTool::Custom(tool)
	- line 267: codex_tools::ToolSpec::Function(codex_tools::ResponsesApiTool {
	- line 314: codex_tools::ToolSpec::Function(codex_tools::ResponsesApiTool {


codex-rs/core/src/tools/handlers/mcp_resource_spec.rs (4 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 23: ToolSpec::Function(ResponsesApiTool {
	- line 51: ToolSpec::Function(ResponsesApiTool {
	- line 79: ToolSpec::Function(ResponsesApiTool {


codex-rs/ext/goal/src/spec.rs (4 lines):
	- line 4: use codex_tools::ResponsesApiTool;
	- line 14: ToolSpec::Function(ResponsesApiTool {
	- line 43: ToolSpec::Function(ResponsesApiTool {
	- line 72: ToolSpec::Function(ResponsesApiTool {


codex-rs/cli/src/main.rs (4 lines):
	- line 27: use codex_responses_api_proxy::Args as ResponsesApiProxyArgs;
	- line 218: ResponsesApiProxy(ResponsesApiProxyArgs),
	- line 1740: Some(Subcommand::ResponsesApiProxy(args)) => {
	- line 2445: Some(Subcommand::ResponsesApiProxy(_)) => Some("responses-api-proxy"),


codex-rs/core/src/tools/handlers/dynamic.rs (4 lines):
	- line 19: use codex_tools::ResponsesApiNamespace;
	- line 20: use codex_tools::ResponsesApiNamespaceTool;
	- line 62: Some(namespace) => ToolSpec::Namespace(ResponsesApiNamespace {
	- line 69: tools: vec![ResponsesApiNamespaceTool::Function(output_tool)],


codex-rs/ext/web-search/src/extension.rs (4 lines):
	- line 22: use codex_model_provider_info::ModelProviderInfo;
	- line 36: provider: ModelProviderInfo,
	- line 161: use codex_model_provider_info::ModelProviderInfo;
	- line 206: provider: ModelProviderInfo::create_openai_provider(/*base_url*/ None),


codex-rs/core/src/tools/handlers/request_plugin_install_spec.rs (4 lines):
	- line 4: use codex_tools::ResponsesApiTool;
	- line 73: ToolSpec::Function(ResponsesApiTool {
	- line 101: ToolSpec::Function(ResponsesApiTool {
	- line 160: ToolSpec::Function(ResponsesApiTool {


codex-rs/ollama/src/lib.rs (4 lines):
	- line 77: use codex_model_provider_info::WireApi;
	- line 82: async fn version_check_reuses_existing_ollama_client() {
	- line 85: "{} set; skipping version_check_reuses_existing_ollama_client",
	- line 111: let provider = create_oss_provider_with_base_url(&server.uri(), WireApi::Responses);


codex-rs/core/src/thread_manager.rs (4 lines):
	- line 45: use codex_model_provider_info::ModelProviderInfo;
	- line 555: provider: ModelProviderInfo,
	- line 578: provider: ModelProviderInfo,
	- line 593: provider: ModelProviderInfo,


codex-rs/core/src/tools/handlers/mcp.rs (4 lines):
	- line 30: use codex_tools::ResponsesApiNamespace;
	- line 31: use codex_tools::ResponsesApiNamespaceTool;
	- line 485: Ok(ToolSpec::Namespace(ResponsesApiNamespace {
	- line 489: tools: vec![ResponsesApiNamespaceTool::Function(tool)],


codex-rs/core/src/tools/code_mode/wait_spec.rs (3 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 32: ToolSpec::Function(ResponsesApiTool {
	- line 59: ToolSpec::Function(ResponsesApiTool {


codex-rs/config/src/thread_config/proto/codex.thread_config.v1.rs (3 lines):
	- line 58: #[prost(enumeration = "WireApi", tag = "8")]
	- line 102: pub enum WireApi {
	- line 106: impl WireApi {


codex-rs/core/src/guardian/tests.rs (3 lines):
	- line 36: use codex_model_provider_info::ModelProviderInfo;
	- line 3808: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None);
	- line 3820: ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None);


codex-rs/core/src/tools/router.rs (3 lines):
	- line 24: use codex_tools::ResponsesApiNamespaceTool;
	- line 191: ResponsesApiNamespaceTool::Function(tool) => tool.name == name.name,
	- line 192: ResponsesApiNamespaceTool::Custom(tool) => tool.name == name.name,


codex-rs/core/src/tools/handlers/list_available_plugins_to_install_spec.rs (3 lines):
	- line 4: use codex_tools::ResponsesApiTool;
	- line 12: ToolSpec::Function(ResponsesApiTool {
	- line 31: ToolSpec::Function(ResponsesApiTool {


codex-rs/core/src/config/mod.rs (3 lines):
	- line 93: use codex_model_provider_info::ModelProviderInfo;
	- line 638: pub model_provider: ModelProviderInfo,
	- line 857: pub model_providers: HashMap<String, ModelProviderInfo>,


codex-rs/core/src/tools/tool_namespaces_info.rs (3 lines):
	- line 11: use codex_tools::ResponsesApiNamespaceTool;
	- line 33: ResponsesApiNamespaceTool::Function(tool) => tool.name.as_str(),
	- line 34: ResponsesApiNamespaceTool::Custom(tool) => tool.name.as_str(),


codex-rs/responses-api-proxy/src/lib.rs (3 lines):
	- line 53: #[arg(long, default_value = "https://api.openai.com/v1/responses")]
	- line 170: // Only allow POST /v1/responses exactly, no query string.
	- line 173: let allow = method == Method::Post && url_path == "/v1/responses";


codex-rs/responses-api-proxy/src/dump.rs (3 lines):
	- line 245: "/v1/responses",
	- line 258: "url": "/v1/responses",
	- line 307: .dump_request(&Method::Post, "/v1/responses", &[], b"{}")


codex-rs/http-client/src/request.rs (3 lines):
	- line 250: let request = Request::new(Method::POST, "https://example.com/v1/responses".to_string())
	- line 278: Request::new(Method::POST, "https://example.com/v1/responses".to_string())
	- line 301: Request::new(Method::POST, "https://example.com/v1/responses".to_string())


codex-rs/tui/src/startup_orchestration.rs (3 lines):
	- line 283: lmstudio_status,
	- line 284: ollama_status,
	- line 290: oss_selection::select_oss_provider(lmstudio_status, ollama_status)


codex-rs/responses-api-proxy/src/main.rs (2 lines):
	- line 2: use codex_responses_api_proxy::Args as ResponsesApiProxyArgs;
	- line 10: let args = ResponsesApiProxyArgs::parse();


codex-rs/core/src/session/mod.rs (2 lines):
	- line 210: use codex_model_provider_info::ModelProviderInfo;
	- line 1828: pub(crate) async fn provider(&self) -> ModelProviderInfo {


codex-rs/http-client/src/chatgpt_cloudflare_cookies.rs (2 lines):
	- line 271: let url = reqwest::Url::parse("https://api.openai.com/v1/responses").unwrap();
	- line 315: let api_url = reqwest::Url::parse("https://api.openai.com/v1/responses").unwrap();


codex-rs/core/src/tools/handlers/new_context_window_spec.rs (2 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 9: ToolSpec::Function(ResponsesApiTool {


codex-rs/ext/image-generation/src/tests.rs (2 lines):
	- line 17: use codex_tools::ResponsesApiNamespaceTool;
	- line 52: let ResponsesApiNamespaceTool::Function(function) = &spec.tools[0] else {


codex-rs/core/src/tools/handlers/send_user_message_async.rs (2 lines):
	- line 15: use codex_tools::ResponsesApiTool;
	- line 46: ToolSpec::Function(ResponsesApiTool {


codex-rs/core/src/tools/handlers/get_context_remaining_spec.rs (2 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 11: ToolSpec::Function(ResponsesApiTool {


codex-rs/exec/src/event_processor_with_human_output.rs (2 lines):
	- line 12: use codex_model_provider_info::WireApi;
	- line 452: if config.model_provider.wire_api == WireApi::Responses {


codex-rs/core/src/tools/handlers/wait_for_environment.rs (2 lines):
	- line 3: use codex_tools::ResponsesApiTool;
	- line 89: ToolSpec::Function(ResponsesApiTool {


codex-rs/core/src/tools/handlers/view_image_spec.rs (2 lines):
	- line 3: use codex_tools::ResponsesApiTool;
	- line 42: ToolSpec::Function(ResponsesApiTool {


codex-rs/aws-auth/src/lib.rs (2 lines):
	- line 231: url: "https://bedrock-runtime.us-east-1.amazonaws.com/v1/responses".to_string(),
	- line 257: "https://bedrock-runtime.us-east-1.amazonaws.com/v1/responses"


codex-rs/core/src/tools/handlers/plan_spec.rs (2 lines):
	- line 2: use codex_tools::ResponsesApiTool;
	- line 42: ToolSpec::Function(ResponsesApiTool {


codex-rs/codex-api/src/lib.rs (2 lines):
	- line 43: pub use crate::common::ResponsesApiRequest;
	- line 44: pub use crate::common::ResponsesApiTools;


codex-rs/codex-api/src/endpoint/responses.rs (2 lines):
	- line 3: use crate::common::ResponsesApiRequest;
	- line 104: request: ResponsesApiRequest,


codex-rs/core/src/realtime_conversation.rs (2 lines):
	- line 38: use codex_model_provider_info::ModelProviderInfo;
	- line 1695: fn realtime_api_key(auth: Option<&CodexAuth>, provider: &ModelProviderInfo) -> CodexResult<String> {


codex-rs/tui/src/status/card.rs (2 lines):
	- line 15: use codex_model_provider_info::WireApi;
	- line 302: if config.model_provider.wire_api == WireApi::Responses {


codex-rs/ext/image-generation/src/extension.rs (2 lines):
	- line 16: use codex_model_provider_info::ModelProviderInfo;
	- line 33: provider: ModelProviderInfo,


codex-rs/codex-api/src/endpoint/responses_websocket.rs (2 lines):
	- line 929: use crate::common::ResponsesApiRequest;
	- line 942: let api_request = ResponsesApiRequest {


codex-rs/core/src/guardian/review_session.rs (2 lines):
	- line 68: use codex_model_provider_info::ModelProviderInfo;
	- line 198: model_provider: ModelProviderInfo,


codex-rs/ext/guardian-v2/src/async_scorer/sampler.rs (2 lines):
	- line 14: use codex_api::ResponsesApiRequest;
	- line 522: let mut request = ResponsesApiRequest {


codex-rs/core/src/tools/handlers/request_user_input_spec.rs (2 lines):
	- line 4: use codex_tools::ResponsesApiTool;
	- line 77: ToolSpec::Function(ResponsesApiTool {


codex-rs/config/src/thread_config/proto/codex.thread_config.v1.proto (2 lines):
	- line 41: WireApi wire_api = 8;
	- line 66: enum WireApi {


codex-rs/tui/src/app.rs (1 line):
	- line 149: use codex_model_provider_info::ModelProviderInfo;


scripts/mock_responses_websocket_server.py (1 line):
	- line 15: PATH = "/v1/responses"


codex-rs/ext/extension-api/src/lib.rs (1 line):
	- line 29: pub use codex_tools::ResponsesApiTool;


codex-rs/utils/cli/src/shared_options.rs (1 line):
	- line 29: /// Specify which local provider to use (lmstudio or ollama).


codex-rs/tui/src/app/startup.rs (1 line):
	- line 12: async fn resolve_runtime_model_provider_base_url(provider: &ModelProviderInfo) -> Option<String> {


codex-rs/config/src/profile_toml.rs (1 line):
	- line 30: /// [`ModelProviderInfo`] to use.


codex-rs/tui/src/history_cell/tests.rs (1 line):
	- line 1090: url: Some("https://bedrock-mantle.us-east-2.api.aws/openai/v1/responses".to_string()),


codex-rs/protocol/src/models.rs (1 line):
	- line 1907: #[schemars(rename = "ResponsesApiWebSearchAction")]


codex-rs/core/src/tools/parallel.rs (1 line):
	- line 539: codex_tools::ToolSpec::Function(codex_tools::ResponsesApiTool {
