forked from cardosofelipe/fast-next-template
Phase 5 of Context Management Engine - Model Adapters: - Add ModelAdapter abstract base class with model matching - Add DefaultAdapter for unknown models (plain text) - Add ClaudeAdapter with XML-based formatting: - <system_instructions> for system context - <reference_documents>/<document> for knowledge - <conversation_history>/<message> for chat - <tool_results>/<tool_result> for tool outputs - XML escaping for special characters - Add OpenAIAdapter with markdown formatting: - ## headers for sections - ### Source headers for documents - **ROLE** bold labels for conversation - Code blocks for tool outputs - Add get_adapter() factory function for model selection Tests: 33 new tests, 256 total context tests passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
696 B
Python
36 lines
696 B
Python
"""
|
|
Model Adapters Module.
|
|
|
|
Provides model-specific context formatting adapters.
|
|
"""
|
|
|
|
from .base import DefaultAdapter, ModelAdapter
|
|
from .claude import ClaudeAdapter
|
|
from .openai import OpenAIAdapter
|
|
|
|
|
|
def get_adapter(model: str) -> ModelAdapter:
|
|
"""
|
|
Get the appropriate adapter for a model.
|
|
|
|
Args:
|
|
model: Model name
|
|
|
|
Returns:
|
|
Adapter instance for the model
|
|
"""
|
|
if ClaudeAdapter.matches_model(model):
|
|
return ClaudeAdapter()
|
|
elif OpenAIAdapter.matches_model(model):
|
|
return OpenAIAdapter()
|
|
return DefaultAdapter()
|
|
|
|
|
|
__all__ = [
|
|
"ClaudeAdapter",
|
|
"DefaultAdapter",
|
|
"get_adapter",
|
|
"ModelAdapter",
|
|
"OpenAIAdapter",
|
|
]
|