diff --git a/backend/app/services/context/__init__.py b/backend/app/services/context/__init__.py index 4d84ef8..d0bd1cb 100644 --- a/backend/app/services/context/__init__.py +++ b/backend/app/services/context/__init__.py @@ -35,12 +35,36 @@ Usage: """ # Budget Management +# Adapters +from .adapters import ( + ClaudeAdapter, + DefaultAdapter, + ModelAdapter, + OpenAIAdapter, + get_adapter, +) + +# Assembly +from .assembly import ( + ContextPipeline, + PipelineMetrics, +) from .budget import ( BudgetAllocator, TokenBudget, TokenCalculator, ) +# Cache +from .cache import ContextCache + +# Compression +from .compression import ( + ContextCompressor, + TruncationResult, + TruncationStrategy, +) + # Configuration from .config import ( ContextSettings, @@ -49,6 +73,9 @@ from .config import ( reset_context_settings, ) +# Engine +from .engine import ContextEngine, create_context_engine + # Exceptions from .exceptions import ( AssemblyTimeoutError, @@ -63,34 +90,6 @@ from .exceptions import ( TokenCountError, ) -# Assembly -from .assembly import ( - ContextPipeline, - PipelineMetrics, -) - -# Compression -from .compression import ( - ContextCompressor, - TruncationResult, - TruncationStrategy, -) - -# Adapters -from .adapters import ( - ClaudeAdapter, - DefaultAdapter, - get_adapter, - ModelAdapter, - OpenAIAdapter, -) - -# Cache -from .cache import ContextCache - -# Engine -from .engine import ContextEngine, create_context_engine - # Prioritization from .prioritization import ( ContextRanker, diff --git a/backend/app/services/context/adapters/__init__.py b/backend/app/services/context/adapters/__init__.py index 0194a04..f03be0a 100644 --- a/backend/app/services/context/adapters/__init__.py +++ b/backend/app/services/context/adapters/__init__.py @@ -29,7 +29,7 @@ def get_adapter(model: str) -> ModelAdapter: __all__ = [ "ClaudeAdapter", "DefaultAdapter", - "get_adapter", "ModelAdapter", "OpenAIAdapter", + "get_adapter", ] diff --git a/backend/app/services/context/engine.py b/backend/app/services/context/engine.py index a70566d..8e33c92 100644 --- a/backend/app/services/context/engine.py +++ b/backend/app/services/context/engine.py @@ -8,7 +8,6 @@ Provides a high-level API for assembling optimized context for LLM requests. import logging from typing import TYPE_CHECKING, Any -from .adapters import get_adapter from .assembly import ContextPipeline from .budget import BudgetAllocator, TokenBudget, TokenCalculator from .cache import ContextCache diff --git a/backend/app/services/context/prioritization/ranker.py b/backend/app/services/context/prioritization/ranker.py index d2de292..dbdb83f 100644 --- a/backend/app/services/context/prioritization/ranker.py +++ b/backend/app/services/context/prioritization/ranker.py @@ -10,10 +10,10 @@ from typing import TYPE_CHECKING, Any from ..budget import TokenBudget, TokenCalculator from ..scoring.composite import CompositeScorer, ScoredContext -from ..types import BaseContext, ContextType +from ..types import BaseContext if TYPE_CHECKING: - from app.services.mcp.client_manager import MCPClientManager + pass logger = logging.getLogger(__name__) diff --git a/backend/app/services/context/scoring/base.py b/backend/app/services/context/scoring/base.py index 469518c..bd53f5c 100644 --- a/backend/app/services/context/scoring/base.py +++ b/backend/app/services/context/scoring/base.py @@ -10,7 +10,7 @@ from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable from ..types import BaseContext if TYPE_CHECKING: - from app.services.mcp.client_manager import MCPClientManager + pass @runtime_checkable diff --git a/backend/app/services/context/scoring/composite.py b/backend/app/services/context/scoring/composite.py index d28ddd5..b6dac66 100644 --- a/backend/app/services/context/scoring/composite.py +++ b/backend/app/services/context/scoring/composite.py @@ -6,15 +6,14 @@ Combines multiple scoring strategies with configurable weights. import asyncio import logging -from dataclasses import dataclass, field +from dataclasses import dataclass from typing import TYPE_CHECKING, Any -from .base import BaseScorer +from ..config import ContextSettings, get_context_settings +from ..types import BaseContext from .priority import PriorityScorer from .recency import RecencyScorer from .relevance import RelevanceScorer -from ..config import ContextSettings, get_context_settings -from ..types import BaseContext if TYPE_CHECKING: from app.services.mcp.client_manager import MCPClientManager diff --git a/backend/app/services/context/scoring/priority.py b/backend/app/services/context/scoring/priority.py index 4523fed..1f8e2c6 100644 --- a/backend/app/services/context/scoring/priority.py +++ b/backend/app/services/context/scoring/priority.py @@ -6,8 +6,8 @@ Scores context based on assigned priority levels. from typing import Any +from ..types import BaseContext, ContextType from .base import BaseScorer -from ..types import BaseContext, ContextPriority, ContextType class PriorityScorer(BaseScorer): diff --git a/backend/app/services/context/scoring/recency.py b/backend/app/services/context/scoring/recency.py index 69721e3..6ab3271 100644 --- a/backend/app/services/context/scoring/recency.py +++ b/backend/app/services/context/scoring/recency.py @@ -6,11 +6,11 @@ More recent content gets higher scores. """ import math -from datetime import UTC, datetime, timedelta +from datetime import UTC, datetime from typing import Any -from .base import BaseScorer from ..types import BaseContext, ContextType +from .base import BaseScorer class RecencyScorer(BaseScorer): diff --git a/backend/app/services/context/scoring/relevance.py b/backend/app/services/context/scoring/relevance.py index 4352b4e..f2d2be9 100644 --- a/backend/app/services/context/scoring/relevance.py +++ b/backend/app/services/context/scoring/relevance.py @@ -9,8 +9,8 @@ import logging import re from typing import TYPE_CHECKING, Any +from ..types import BaseContext, KnowledgeContext from .base import BaseScorer -from ..types import BaseContext, ContextType, KnowledgeContext if TYPE_CHECKING: from app.services.mcp.client_manager import MCPClientManager