<?php

declare(strict_types=1);

namespace App\Knowledge\Retrieval;

/**
 * Retrieval ist vollständig konfigurationsgetrieben.
 *
 * - retrievalMaxChunks stammt ausschließlich aus der aktiven ModelGenerationConfig.
 * - retrievalVectorTopK stammt ausschließlich aus der aktiven ModelGenerationConfig.
 * - Es existiert kein Runtime-Override.
 *
 * Ziel:
 * Deterministisches, auditierbares Retrieval-Verhalten.
 */
interface RetrieverInterface
{
    /**
     * Retrieves relevant knowledge chunks for a given prompt.
     *
     * The number of returned chunks is strictly defined by
     * the active ModelGenerationConfig (retrievalMaxChunks).
     *
     * @return string[] Plain text knowledge chunks
     */
    public function retrieve(string $prompt): array;
}