-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Priority: High
Related: #199
Replaces: #223
All tool mappers silently drop WebSearch config fields the underlying API doesn't support. No warning, no error — the user thinks they're filtering domains but nothing happens.
Current behavior per provider:
| Provider | allowed_domains | blocked_domains | max_uses |
|---|---|---|---|
| Anthropic | mapped | mapped | mapped |
| dropped | mapped (as exclude_domains) | dropped | |
| OpenResponses/OpenAI | mapped (as filters.allowed_domains) | dropped | dropped |
| Groq | dropped | dropped | dropped |
| Moonshot | dropped | dropped | dropped |
Fix: Emit UnsupportedParameterWarning (not an error) when a non-None WebSearch field is dropped.
This follows celeste's existing pattern from PR #212 — warn and drop, don't error. Celeste is a primitive SDK (like Anthropic SDK, OpenAI SDK), not a framework. Primitives don't gatekeep — they normalize what they can and warn when something is lost. Users who want strict behavior can promote via warnings.filterwarnings("error", category=UnsupportedParameterWarning).
Example warning message:
WebSearch.blocked_domains is not supported by OpenResponses and will be ignored.
If this is now supported, please file an issue. Workaround: use a raw dict tool
(e.g. tools=[{"type": "web_search", "filters": {"blocked_domains": [...]}}]).
Files:
src/celeste/protocols/openresponses/tools.py(WebSearchMapper — warn on blocked_domains, max_uses)src/celeste/providers/google/generate_content/tools.py(WebSearchMapper — warn on allowed_domains, max_uses)src/celeste/providers/groq/chat/tools.py(WebSearchMapper — warn on all 3)src/celeste/providers/moonshot/chat/tools.py(WebSearchMapper — warn on all 3)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working