80ad5141a6
Visibility mask refactoring: - Replace dead UI_REALTIME bit with CONTEXT_ASSEMBLY (bit 1) - Remove visibility_consumer_bit from SystemAgentLLMConfig and system_agents.yaml - Simplify _resolve_user_message_visibility_mask: chat->UI_HISTORY|CONTEXT_ASSEMBLY, automation->0 - Simplify _resolve_stage_visibility_mask: memory->UI_HISTORY, router/worker->UI_HISTORY|CONTEXT_ASSEMBLY - Remove stage_visibility_bit_map from store.py Task queue renaming: - Replace default_broker/bulk_broker/critical_broker with worker_agent_broker/worker_automation_broker - Queue names: 'default'/'bulk'/'critical' -> 'agent'/'automation' - Rename run_command_task -> run_command_task_agent/run_command_task_automation - AgentService derives queue from runtime_mode: chat->agent, automation->automation Architecture cleanup: - Move context_service.py from runtime/ to agentscope/services/ - Add MemoryService in v1/memory/ following repository/service pattern - Move consumer_registry.py and pipeline_spec.py from schemas/agent to agentscope/schemas/ - Delete dead code: registry_builder.py, VisibilityBitRef - Delete superseded plan docs
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING, Protocol
|
|
from uuid import UUID
|
|
|
|
from sqlalchemy import select
|
|
|
|
from core.db.base_repository import BaseRepository
|
|
from models.automation_jobs import AutomationJob
|
|
|
|
if TYPE_CHECKING:
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
|
|
class MemoryRepositoryLike(Protocol):
|
|
async def get_job_by_id_and_owner(
|
|
self, *, job_id: UUID, owner_id: UUID
|
|
) -> AutomationJob | None: ...
|
|
|
|
|
|
class MemoryRepository(BaseRepository[AutomationJob]):
|
|
def __init__(self, session: AsyncSession) -> None:
|
|
super().__init__(session=session, model=AutomationJob)
|
|
|
|
async def get_job_by_id_and_owner(
|
|
self, *, job_id: UUID, owner_id: UUID
|
|
) -> AutomationJob | None:
|
|
stmt = (
|
|
select(AutomationJob)
|
|
.where(AutomationJob.id == job_id)
|
|
.where(AutomationJob.owner_id == owner_id)
|
|
.where(AutomationJob.deleted_at.is_(None))
|
|
)
|
|
result = await self._session.execute(stmt)
|
|
return result.scalar_one_or_none()
|