From a73ceb2838cf69e49fc29ca1afe3c23131ff1b7f Mon Sep 17 00:00:00 2001 From: majdyz Date: Wed, 15 Apr 2026 20:15:04 +0700 Subject: [PATCH] refactor(backend/copilot): convert absolute copilot imports to relative in sdk/service.py Replace all `from backend.copilot.X import Y` (top-level and inline) with `from ..X import Y` to eliminate Pyright type collisions from mixed absolute/relative imports. Add `# isort: skip_file` to prevent isort from reverting the change. --- .../backend/backend/copilot/sdk/service.py | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/autogpt_platform/backend/backend/copilot/sdk/service.py b/autogpt_platform/backend/backend/copilot/sdk/service.py index 006360e970..d66c2889f0 100644 --- a/autogpt_platform/backend/backend/copilot/sdk/service.py +++ b/autogpt_platform/backend/backend/copilot/sdk/service.py @@ -1,5 +1,7 @@ """Claude Agent SDK service layer for CoPilot chat completions.""" +# isort: skip_file + import asyncio import base64 import json @@ -17,7 +19,7 @@ from dataclasses import field as dataclass_field from typing import TYPE_CHECKING, Any, NamedTuple, NotRequired, cast if TYPE_CHECKING: - from backend.copilot.permissions import CopilotPermissions + from ..permissions import CopilotPermissions from claude_agent_sdk import ( AssistantMessage, @@ -35,11 +37,11 @@ from langsmith.integrations.claude_agent_sdk import configure_claude_agent_sdk from opentelemetry import trace as otel_trace from pydantic import BaseModel -from backend.copilot.context import get_workspace_manager -from backend.copilot.permissions import apply_tool_permissions -from backend.copilot.rate_limit import get_user_tier -from backend.copilot.thinking_stripper import ThinkingStripper -from backend.copilot.transcript import ( +from ..context import get_workspace_manager +from ..permissions import apply_tool_permissions +from ..rate_limit import get_user_tier +from ..thinking_stripper import ThinkingStripper +from ..transcript import ( _run_compression, cleanup_stale_project_dirs, compact_transcript, @@ -50,7 +52,7 @@ from backend.copilot.transcript import ( upload_transcript, validate_transcript, ) -from backend.copilot.transcript_builder import TranscriptBuilder +from ..transcript_builder import TranscriptBuilder from backend.data.redis_client import get_redis_async from backend.executor.cluster_lock import AsyncClusterLock from backend.util.exceptions import NotFoundError @@ -2435,7 +2437,7 @@ async def stream_chat_completion_sdk( # Warm context: pre-load relevant facts from Graphiti on first turn if graphiti_enabled and user_id and len(session.messages) <= 1: - from backend.copilot.graphiti.context import fetch_warm_context + from ..graphiti.context import fetch_warm_context warm_ctx = await fetch_warm_context(user_id, message or "") if warm_ctx: @@ -3292,7 +3294,7 @@ async def stream_chat_completion_sdk( # --- Graphiti: ingest conversation turn for temporal memory --- if graphiti_enabled and user_id and message and is_user_message: - from backend.copilot.graphiti.ingest import enqueue_conversation_turn + from ..graphiti.ingest import enqueue_conversation_turn _ingest_task = asyncio.create_task( enqueue_conversation_turn(user_id, session_id, message)