LICENSE
README.md
pyproject.toml
src/senfd/__init__.py
src/senfd/cli.py
src/senfd/errors.py
src/senfd/normalize.py
src/senfd/pipeline.py
src/senfd/published.py
src/senfd/published.toml
src/senfd/query.py
src/senfd/skiplist.py
src/senfd/tables.py
src/senfd/utils.py
src/senfd.egg-info/PKG-INFO
src/senfd.egg-info/SOURCES.txt
src/senfd.egg-info/dependency_links.txt
src/senfd.egg-info/entry_points.txt
src/senfd.egg-info/requires.txt
src/senfd.egg-info/top_level.txt
src/senfd/documents/__init__.py
src/senfd/documents/base.py
src/senfd/documents/normalized.py
src/senfd/documents/plain.py
src/senfd/documents/spec.py
src/senfd/pdf/__init__.py
src/senfd/pdf/pages.py
src/senfd/pdf/reader.py
src/senfd/pdf/tables.py
src/senfd/pdf/tree.py
src/senfd/sate/__init__.py
src/senfd/sate/answering.py
src/senfd/sate/cli.py
src/senfd/sate/completion.py
src/senfd/sate/grounding.py
src/senfd/sate/language_model.py
src/senfd/sate/lookup.py
src/senfd/sate/mcp.py
src/senfd/sate/phrasing.py
src/senfd/sate/reading.py
src/senfd/sate/session.py
src/senfd/sate/vocabulary.py
src/senfd/schemas/__init__.py
src/senfd/schemas/normalized.figure.document.schema.json
src/senfd/schemas/plain.figure.document.schema.json
src/senfd/schemas/spec.document.schema.json
src/senfd/templates/__init__.py
src/senfd/templates/normalized.figure.document.html.jinja2
src/senfd/templates/plain.figure.document.html.jinja2
src/senfd/templates/spec.document.html.jinja2
tests/test_case_conversion.py
tests/test_cast_svg.py
tests/test_cli.py
tests/test_docs_stages.py
tests/test_docx_lists.py
tests/test_mcp.py
tests/test_module.py
tests/test_normalize.py
tests/test_pdf.py
tests/test_project_version_update.py
tests/test_published.py
tests/test_query.py
tests/test_readme.py
tests/test_record_cast.py
tests/test_record_session.py
tests/test_release.py
tests/test_sate.py
tests/test_schema.py
tests/test_skiplist.py
tests/test_spec.py
tests/test_to_file.py