Функция не мержит, а заворачивает документы в единый конверт публикации:
одиночный документ идёт тем же путём и даёт files[] из одного элемента.
Потребителю не нужно знать, сколько документов распознал процессор.
Старые имена вводили в заблуждение на самом частом случае.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvCSGmwgL8juhZdXr32qXM
Функция принимает уже прочитанные json-объекты и сама ничего не
открывает — транспорт (локальная ФС, SMB-шара, S3, поток) остаётся
за вызывающим. Локальное чтение переехало в CLI как одного из них.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvCSGmwgL8juhZdXr32qXM
PDF-процессор кладёт по одному json на каждый распознанный документ.
merge_documents() собирает их в {file_id, legal_entity_id, files: [...]},
где files — полное содержимое каждого файла без обработки.
Модуль не зависит от config/S3/NATS: используется и как CLI-скрипт,
и (в дальнейшем) из PollWorker.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvCSGmwgL8juhZdXr32qXM