# This file is the entry point to configure your own services. # Files in the packages/ subdirectory configure your dependencies. # # https://symfony.com/doc/current/best_practices.html parameters: services: # ------------------------------------------------------------ # Default service configuration # ------------------------------------------------------------ _defaults: autowire: true autoconfigure: true # Bind the agent-specific Monolog channel explicitly bind: Psr\Log\LoggerInterface $agentLogger: '@monolog.logger.agent' string $projectDir: '%kernel.project_dir%' # ------------------------------------------------------------ # Automatically register all services in src/ # ------------------------------------------------------------ App\: resource: '../src/' exclude: - '../src/DependencyInjection/' - '../src/Entity/' - '../src/Kernel.php' # ------------------------------------------------------------ # AI Agent – Infrastructure # ------------------------------------------------------------ App\Infrastructure\OllamaClient: arguments: $apiUrl: '%env(AI_LLM_API_URL)%' $model: '%env(AI_LLM_MODEL)%' $timeoutSeconds: '%env(int:AI_LLM_TIMEOUT)%' # ------------------------------------------------------------ # AI Agent – Context & state # ------------------------------------------------------------ App\Context\ContextService: arguments: $historyDir: '%env(AI_HISTORY_DIR)%' $projectDir: '%kernel.project_dir%' # ------------------------------------------------------------ # AI Agent – Debug & logging flags # ------------------------------------------------------------ App\Agent\AgentRunner: arguments: $debug: '%env(bool:AI_DEBUG)%' $logPrompt: '%env(bool:AI_LOG_PROMPT)%' $logContext: '%env(bool:AI_LOG_CONTEXT)%' App\Controller\: resource: '../src/Controller/' tags: [ 'controller.service_arguments' ] # ------------------------------------------------------------ # AI Agent – Knowledge # ------------------------------------------------------------ App\Knowledge\Retrieval\ChunkKeywordRetriever: arguments: $chunksDir: '%kernel.project_dir%/var/knowledge/chunks' App\Knowledge\Retrieval\CachedRetriever: arguments: $inner: '@App\Knowledge\Retrieval\ChunkKeywordRetriever' $cache: '@cache.app' $ttlSeconds: 600 App\Knowledge\Retrieval\RetrieverInterface: alias: App\Knowledge\Retrieval\CachedRetriever App\Knowledge\Ingest\ChunkWriter: arguments: $chunksDir: '%kernel.project_dir%/var/knowledge/chunks' $manifestPath: '%kernel.project_dir%/var/knowledge/manifest.json' App\Knowledge\Ingest\ChunkIndexWriter: arguments: $indexPath: '%kernel.project_dir%/var/knowledge/index.json' App\Knowledge\Retrieval\ChunkIndexLoader: arguments: $indexPath: '%kernel.project_dir%/var/knowledge/index.json' App\Command\KnowledgeIngestCommand: arguments: $uploadsDir: '%kernel.project_dir%/var/knowledge/uploads' App\Vector\VectorSearchClient: arguments: $vectorDir: '%kernel.project_dir%/src/Vector' App\Command\VectorIngestCommand: arguments: $vectorDir: '%kernel.project_dir%/src/Vector' $projectDir: '%kernel.project_dir%' App\Command\VectorInstallCommand: arguments: $vectorDir: '%kernel.project_dir%/src/Vector'