#34730 [Bug]: Built-in tool cost tracking stops after the first detected tool
### Check for existing issues
- [x] I searched open and closed issues before filing - [x] I found no existing issue for the mutually exclusive control flow in `get_cost_for_built_in_tools`
### What happened?
`StandardBuiltInToolCostTracking.get_cost_for_built_in_tools` returns immediately after the first matching built-in tool category
If a response contains both a web-search call and a file-search call, the web-search fee is returned and file-search cost is never evaluated. If web search is absent but file search is present, the file-search branch returns before Azure assistant feature costs are evaluated
These are independent billable tool categories. The Responses API accepts a list of tools, and OpenAI publishes separate per-call prices for web search and file search
OpenAI tool configuration:
https://developers.openai.com/api/docs/guides/tools
OpenAI tool pricing:
https://developers.openai.com/api/docs/pricing#tools
The dispatcher therefore models independent fees as an exclusive choice and can understate response cost, spend logs, and budget consumption
The reproduction below uses synthetic handler return values to isolate dispatcher behavior and makes no provider …