"""Agents: base abstraction plus the discovery/engineering/review agents.""" from __future__ import annotations from ..llm import LLMService from .api import APIAgent from .architecture import ArchitectureAgent from .base import ( AgentResult, BaseAgent, RevisionInstruction, project_context_payload, revision_instruction_text, ) from .database import DatabaseAgent from .devops import DevOpsAgent from .digest import ( condense_context, digest_api, digest_architecture, digest_database, digest_devops, digest_requirements, dumps, summary_or_digest, ) from .discovery import ( DiscoveryAgent, apply_known_information, discovery_agent_message, format_transcript, known_info_snapshot, ) from .requirements import RequirementsAgent from .reviewer import ReviewAgent from .summarizer import SUMMARIZER_SYSTEM_PROMPT, summarize_artifact __all__ = [ "APIAgent", "AgentResult", "ArchitectureAgent", "BaseAgent", "DatabaseAgent", "DevOpsAgent", "DiscoveryAgent", "RequirementsAgent", "ReviewAgent", "RevisionInstruction", "SUMMARIZER_SYSTEM_PROMPT", "apply_known_information", "condense_context", "digest_api", "digest_architecture", "digest_database", "digest_devops", "digest_requirements", "discovery_agent_message", "dumps", "format_transcript", "known_info_snapshot", "project_context_payload", "revision_instruction_text", "summarize_artifact", "summary_or_digest", ] def build_agents(llm_service: LLMService, tracker=None) -> dict[str, BaseAgent]: """Instantiate the full agent team wired to the shared LLM service.""" return { "discovery": DiscoveryAgent(llm_service, tracker), "requirements": RequirementsAgent(llm_service, tracker), "architecture": ArchitectureAgent(llm_service, tracker), "database": DatabaseAgent(llm_service, tracker), "api": APIAgent(llm_service, tracker), "devops": DevOpsAgent(llm_service, tracker), "reviewer": ReviewAgent(llm_service, tracker), }