# Document upload (Phase 9). SEPARATE FROM requirements.txt ON PURPOSE.
#
# Installed in its own layer, AFTER the main one. A change here therefore does
# not invalidate the cached layer carrying fastapi, langgraph, langfuse and the
# rest - so adding or bumping a document dependency costs a few megabytes of
# pure-Python wheels instead of re-resolving the whole tree on a 2 vCPU host
# that also runs the demo plant's PLC.
#
# All four are PURE PYTHON: no compiler runs, no native extension is built.
#
# These extract text, not layout, and cannot read a scan. api/convert.py says
# what that costs and why review is what makes it acceptable. Anything heavier -
# in particular anything pulling torch - does not belong in this file; it
# belongs in an image built somewhere other than lin001.
python-multipart==0.0.20
pypdf==5.1.0
python-docx==1.1.2
openpyxl==3.1.5
