367d3758d5
When the user's main provider is a named custom_providers entry exposing an Anthropic Messages surface (e.g. Palantir Foundry's /api/v2/llm/proxy/anthropic, custom LiteLLM/Bedrock proxies), auxiliary tasks (title generation, compression, web extract, session search, etc.) returned HTTP 404 NOT_FOUND for every call. Root cause: `_resolve_auto` collapsed any `custom:<name>` main provider to plain `"custom"` and passed runtime_base_url as explicit_base_url. This landed in `resolve_provider_client`'s anonymous-custom arm (`if provider == "custom":`), which unconditionally calls `_to_openai_base_url` — that helper strips a trailing `/anthropic` and substitutes `/v1` (designed for MiniMax/ZAI which expose both surfaces). The result for Palantir is `/api/v2/llm/proxy/v1`, which does not exist on the proxy — every auxiliary call 404s. The runtime `api_mode= anthropic_messages` flag was discarded by this arm. Fix: split the conditional so only the literal `"custom"` provider takes the anonymous-custom path; `custom:<name>` keeps its full `custom:<name>` string when handed to `resolve_provider_client`, where the named-custom-provider arm (added in earlier work) honours the entry's `api_mode` and routes through `AnthropicAuxiliaryClient` against the original `/anthropic` URL. Also: extend `_requires_bearer_auth` in `anthropic_adapter.py` to recognise palantirfoundry hosts so the SDK sends `Authorization: Bearer` instead of the default `x-api-key` (Palantir's proxy rejects x-api-key with 401). Verified end-to-end against a live Palantir Foundry deployment with both claude-4-6-opus and claude-4-7-opus models — `generate_title` returns real titles instead of 404ing. Regression-tested: - anonymous `custom` (with base_url) still routes to OpenAI wire - built-in NVIDIA provider unchanged - custom-without-base_url still falls through to Step-2 chain