-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Context
The feat/unified-tools-parameter PR (#191) introduced tool calling support across the codebase, including a new architectural layer: modalities/{modality}/protocols/{protocol}/ (Layer 5). Templates need to be updated to stay in sync.
Templates are enforced by unit tests (test_provider_api_templates.py), so keeping them current matters.
What needs updating
1. Modality parameters template — add ToolDefinition import
File: templates/modalities/{modality_slug}/parameters.py.template
The template shows commented # tools: list[ToolDefinition] but doesn't show the import. Add:
# from celeste.tools import ToolDefinition2. Protocol parameters template — add ToolsMapper pattern
File: templates/protocols/{protocol_slug}/parameters.py.template
Has 3 patterns (simple, nested, response format) but no ToolsMapper pattern. Both chatcompletions/parameters.py and openresponses/parameters.py have ToolsMapper with dispatch logic. Add a PATTERN 4 showing ToolsMapper with TOOL_MAPPERS dispatch.
3. Create Layer 5 templates (modality+protocol)
New directory: templates/modalities/{modality_slug}/protocols/{protocol_slug}/
3 new files based on existing implementations at src/celeste/modalities/text/protocols/chatcompletions/:
__init__.py.template— re-exports{Protocol}{Modality}Clientand{Protocol}{Modality}Streamclient.py.template— protocol text client base class combining protocol mixin + modality client, withgenerate(),analyze(),_init_request()(usingserialize_messages()),_parse_tool_calls(),_stream_class()parameters.py.template— wraps protocol-level mappers withname = {Modality}Parameter.X, exports{PROTOCOL}_PARAMETER_MAPPERSlist
Reference implementations
src/celeste/modalities/text/protocols/chatcompletions/(client.py, parameters.py)src/celeste/modalities/text/protocols/openresponses/(client.py, parameters.py)
Related issues
- Consolidate trivial parameter mapper wrappers across modalities #215 — Consolidate trivial parameter mapper wrappers across modalities
- feat: protocol= parameter for generic protocol-based server access #204 —
protocol=parameter for generic protocol-based server access