lorme 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lorme-0.1.1/.cbmignore +8 -0
- lorme-0.1.1/.containerignore +10 -0
- lorme-0.1.1/.githooks/pre-commit +13 -0
- lorme-0.1.1/.github/pull_request_template.md +11 -0
- lorme-0.1.1/.github/workflows/test.yml +156 -0
- lorme-0.1.1/.gitignore +43 -0
- lorme-0.1.1/CLAUDE.md +1196 -0
- lorme-0.1.1/CONTRIBUTING.md +60 -0
- lorme-0.1.1/Containerfile +27 -0
- lorme-0.1.1/LICENSE +661 -0
- lorme-0.1.1/PKG-INFO +314 -0
- lorme-0.1.1/README.md +265 -0
- lorme-0.1.1/RELEASE-NOTES.md +141 -0
- lorme-0.1.1/docs/adr/001-license-gpl-v3.md +132 -0
- lorme-0.1.1/docs/adr/002-project-name.md +79 -0
- lorme-0.1.1/docs/adr/003-license-agpl-migration.md +109 -0
- lorme-0.1.1/docs/adr/004-multi-collection.md +76 -0
- lorme-0.1.1/docs/adr/005-default-model-nomic.md +90 -0
- lorme-0.1.1/docs/adr/006-rename-lorme.md +74 -0
- lorme-0.1.1/docs/ai-guidelines.md +146 -0
- lorme-0.1.1/docs/architecture.md +1229 -0
- lorme-0.1.1/docs/code-guide.md +1546 -0
- lorme-0.1.1/docs/configuration.md +542 -0
- lorme-0.1.1/docs/docker.md +93 -0
- lorme-0.1.1/docs/implementation-reference.md +1675 -0
- lorme-0.1.1/docs/multi-mcp-v1.0.epub +0 -0
- lorme-0.1.1/docs/multi-mcp.md +191 -0
- lorme-0.1.1/docs/preprocessing.md +464 -0
- lorme-0.1.1/docs/tutorial.md +426 -0
- lorme-0.1.1/docs/value-proposition.md +209 -0
- lorme-0.1.1/examples/mcp-config.example.json +20 -0
- lorme-0.1.1/pyproject.toml +96 -0
- lorme-0.1.1/scripts/docling-server.py +286 -0
- lorme-0.1.1/scripts/epub-style.css +57 -0
- lorme-0.1.1/scripts/generate-epubs.sh +119 -0
- lorme-0.1.1/scripts/granite-vision-server.py +316 -0
- lorme-0.1.1/scripts/molmo2-server.py +228 -0
- lorme-0.1.1/scripts/start-docling-server.sh +82 -0
- lorme-0.1.1/scripts/start-granite-vision-server.sh +84 -0
- lorme-0.1.1/scripts/start-molmo2-server.sh +51 -0
- lorme-0.1.1/scripts/start-stt-server.sh +90 -0
- lorme-0.1.1/scripts/start-tei.sh +44 -0
- lorme-0.1.1/scripts/stt-server.py +331 -0
- lorme-0.1.1/src/lorme/__init__.py +10 -0
- lorme-0.1.1/src/lorme/_version.py +24 -0
- lorme-0.1.1/src/lorme/bootstrap.yaml +89 -0
- lorme-0.1.1/src/lorme/build.py +334 -0
- lorme-0.1.1/src/lorme/build_config.py +58 -0
- lorme-0.1.1/src/lorme/checkpoint.py +228 -0
- lorme-0.1.1/src/lorme/collections.py +12 -0
- lorme-0.1.1/src/lorme/config.py +257 -0
- lorme-0.1.1/src/lorme/embedder.py +434 -0
- lorme-0.1.1/src/lorme/eval.py +1085 -0
- lorme-0.1.1/src/lorme/format_registry.py +206 -0
- lorme-0.1.1/src/lorme/ingest.py +307 -0
- lorme-0.1.1/src/lorme/lint.py +213 -0
- lorme-0.1.1/src/lorme/metadata.py +140 -0
- lorme-0.1.1/src/lorme/preprocess/__init__.py +1503 -0
- lorme-0.1.1/src/lorme/preprocess/clean.py +43 -0
- lorme-0.1.1/src/lorme/preprocess/dedup.py +120 -0
- lorme-0.1.1/src/lorme/preprocess/diarize.py +373 -0
- lorme-0.1.1/src/lorme/preprocess/enrich.py +338 -0
- lorme-0.1.1/src/lorme/preprocess/llm.py +122 -0
- lorme-0.1.1/src/lorme/preprocess/narrate.py +507 -0
- lorme-0.1.1/src/lorme/preprocess/parse.py +1367 -0
- lorme-0.1.1/src/lorme/preprocess/pii.py +47 -0
- lorme-0.1.1/src/lorme/preprocess/service.py +204 -0
- lorme-0.1.1/src/lorme/preprocess/validate.py +15 -0
- lorme-0.1.1/src/lorme/progress.py +281 -0
- lorme-0.1.1/src/lorme/prompts.yaml +15 -0
- lorme-0.1.1/src/lorme/recipe.py +246 -0
- lorme-0.1.1/src/lorme/server.py +1933 -0
- lorme-0.1.1/src/lorme/store.py +945 -0
- lorme-0.1.1/src/lorme/task_manager.py +237 -0
- lorme-0.1.1/sync/links.md +6 -0
- lorme-0.1.1/sync/openshift.md +198 -0
- lorme-0.1.1/tests/conftest.py +26 -0
- lorme-0.1.1/tests/fixtures/build-test-dbs.py +90 -0
- lorme-0.1.1/tests/fixtures/config-test.yaml +35 -0
- lorme-0.1.1/tests/fixtures/manifest-test-redist-prep.yaml +158 -0
- lorme-0.1.1/tests/fixtures/prep/2026-Declaration-Vacance-Marche-Noel-Createurs.md +113 -0
- lorme-0.1.1/tests/fixtures/prep/DUDH_2008.md +637 -0
- lorme-0.1.1/tests/fixtures/prep/Reunion-Parents-ppt-Parcoursup-2025-version-pour-le-7-01-25-1.md +489 -0
- lorme-0.1.1/tests/fixtures/prep/S-GEN-UNACT-2021-PDF-E.md +12274 -0
- lorme-0.1.1/tests/fixtures/prep/aout-2026.md +47 -0
- lorme-0.1.1/tests/fixtures/prep/free-sw.en.md +634 -0
- lorme-0.1.1/tests/fixtures/prep/fsf-ml-applications-2024.md +155 -0
- lorme-0.1.1/tests/fixtures/prep/governing_ai_for_humanity_final_report_en.md +4576 -0
- lorme-0.1.1/tests/fixtures/prep/hatta-reproducibility-copyleft-2026.md +688 -0
- lorme-0.1.1/tests/fixtures/prep/linuxfr-devnewton-osaid-2024.md +411 -0
- lorme-0.1.1/tests/fixtures/prep/ocde-definition-ia-legal-0449.md +679 -0
- lorme-0.1.1/tests/fixtures/prep/ocde-memorandum-definition-ia-2024.md +573 -0
- lorme-0.1.1/tests/fixtures/prep/osi-open-weights.md +284 -0
- lorme-0.1.1/tests/fixtures/prep/osi-osaid-v1.0-definition.md +173 -0
- lorme-0.1.1/tests/fixtures/prep/pexels-melike-bayram-2154228305-33121483.md +5 -0
- lorme-0.1.1/tests/fixtures/prep/preprocess-report.json +363 -0
- lorme-0.1.1/tests/fixtures/prep/test-data-sample.md +8 -0
- lorme-0.1.1/tests/fixtures/prep/test-markdown-sample.md +148 -0
- lorme-0.1.1/tests/fixtures/prep/worldcup-full.md +140 -0
- lorme-0.1.1/tests/fixtures/recipe-test-redist.yaml +169 -0
- lorme-0.1.1/tests/fixtures/test-minimal.db +0 -0
- lorme-0.1.1/tests/fixtures/test-mixed.db +0 -0
- lorme-0.1.1/tests/fixtures/urls-test.txt +11 -0
- lorme-0.1.1/tests/test_api_resilience.py +165 -0
- lorme-0.1.1/tests/test_autorag_multimodel.py +174 -0
- lorme-0.1.1/tests/test_batch_size.py +17 -0
- lorme-0.1.1/tests/test_build.py +337 -0
- lorme-0.1.1/tests/test_build_config.py +59 -0
- lorme-0.1.1/tests/test_build_preprocess.py +274 -0
- lorme-0.1.1/tests/test_checkpoint.py +418 -0
- lorme-0.1.1/tests/test_chunk_config.py +31 -0
- lorme-0.1.1/tests/test_collections.py +9 -0
- lorme-0.1.1/tests/test_config.py +92 -0
- lorme-0.1.1/tests/test_config_unification.py +43 -0
- lorme-0.1.1/tests/test_dedup.py +130 -0
- lorme-0.1.1/tests/test_diarize.py +509 -0
- lorme-0.1.1/tests/test_embedder.py +281 -0
- lorme-0.1.1/tests/test_enrich.py +177 -0
- lorme-0.1.1/tests/test_enrich_prompts.py +73 -0
- lorme-0.1.1/tests/test_eval.py +145 -0
- lorme-0.1.1/tests/test_eval_report.py +142 -0
- lorme-0.1.1/tests/test_format_registry.py +179 -0
- lorme-0.1.1/tests/test_get_config.py +113 -0
- lorme-0.1.1/tests/test_heading_eval.py +207 -0
- lorme-0.1.1/tests/test_ingest.py +208 -0
- lorme-0.1.1/tests/test_integration.py +200 -0
- lorme-0.1.1/tests/test_lint.py +201 -0
- lorme-0.1.1/tests/test_mcp_tools.py +768 -0
- lorme-0.1.1/tests/test_metadata.py +286 -0
- lorme-0.1.1/tests/test_model_exposure.py +22 -0
- lorme-0.1.1/tests/test_narrate.py +303 -0
- lorme-0.1.1/tests/test_optimize_manifest.py +207 -0
- lorme-0.1.1/tests/test_parent_child.py +114 -0
- lorme-0.1.1/tests/test_parse.py +957 -0
- lorme-0.1.1/tests/test_per_model_verify_ssl.py +70 -0
- lorme-0.1.1/tests/test_pii.py +43 -0
- lorme-0.1.1/tests/test_pipeline_wiring.py +220 -0
- lorme-0.1.1/tests/test_preprocess.py +1177 -0
- lorme-0.1.1/tests/test_progress.py +229 -0
- lorme-0.1.1/tests/test_ragas_explicit.py +48 -0
- lorme-0.1.1/tests/test_ragas_guard.py +89 -0
- lorme-0.1.1/tests/test_ragas_scoring.py +153 -0
- lorme-0.1.1/tests/test_ragas_stub.py +26 -0
- lorme-0.1.1/tests/test_recipe_cascade.py +173 -0
- lorme-0.1.1/tests/test_resource_cleanup.py +122 -0
- lorme-0.1.1/tests/test_sequential_phases.py +260 -0
- lorme-0.1.1/tests/test_server.py +251 -0
- lorme-0.1.1/tests/test_service.py +75 -0
- lorme-0.1.1/tests/test_smart_batch.py +123 -0
- lorme-0.1.1/tests/test_store.py +272 -0
- lorme-0.1.1/tests/test_task_manager.py +327 -0
- lorme-0.1.1/tests/test_unload_gc.py +36 -0
- lorme-0.1.1/tests/test_validate.py +62 -0
- lorme-0.1.1/tests/test_verify_ssl.py +118 -0
lorme-0.1.1/.cbmignore
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Prevent direct commits on main — only merges allowed.
|
|
3
|
+
# See CONTRIBUTING.md §Git workflow.
|
|
4
|
+
|
|
5
|
+
branch=$(git symbolic-ref --short HEAD 2>/dev/null)
|
|
6
|
+
|
|
7
|
+
if [ "$branch" = "main" ]; then
|
|
8
|
+
if [ ! -f "$(git rev-parse --git-dir)/MERGE_HEAD" ]; then
|
|
9
|
+
echo "ERROR: Direct commits on main are forbidden."
|
|
10
|
+
echo "Create a branch first: git checkout -b feat/<topic>"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
fi
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
- [ ] One topic, one branch.
|
|
2
|
+
- [ ] Tests written first (TDD). Tests pass.
|
|
3
|
+
- [ ] CI clean (no errors, no warnings).
|
|
4
|
+
- [ ] `Signed-off-by` on every commit.
|
|
5
|
+
- [ ] AI-assisted commits have `Assisted-by` and `Co-Authored-By` trailers.
|
|
6
|
+
- [ ] If AI-assisted: I understand every line of this PR.
|
|
7
|
+
- [ ] No secrets, credentials, or internal paths.
|
|
8
|
+
|
|
9
|
+
**What this PR does:**
|
|
10
|
+
|
|
11
|
+
<!-- Describe in simple terms. Keep it short. -->
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, "feat/**", "fix/**", "docs/**"]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
unit:
|
|
11
|
+
name: Unit tests
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.13"
|
|
18
|
+
- uses: actions/cache@v4
|
|
19
|
+
with:
|
|
20
|
+
path: ~/.cache/pip
|
|
21
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
22
|
+
restore-keys: ${{ runner.os }}-pip-
|
|
23
|
+
- run: pip install --upgrade pip && pip install -e ".[dev,parse,eval]"
|
|
24
|
+
- name: Run unit tests
|
|
25
|
+
run: >-
|
|
26
|
+
pytest --tb=short -q
|
|
27
|
+
tests/test_store.py
|
|
28
|
+
tests/test_embedder.py
|
|
29
|
+
tests/test_ingest.py
|
|
30
|
+
tests/test_config.py
|
|
31
|
+
tests/test_config_unification.py
|
|
32
|
+
tests/test_recipe_cascade.py
|
|
33
|
+
tests/test_narrate.py
|
|
34
|
+
tests/test_format_registry.py
|
|
35
|
+
tests/test_collections.py
|
|
36
|
+
tests/test_progress.py
|
|
37
|
+
tests/test_dedup.py
|
|
38
|
+
tests/test_pii.py
|
|
39
|
+
tests/test_lint.py
|
|
40
|
+
tests/test_validate.py
|
|
41
|
+
tests/test_chunk_config.py
|
|
42
|
+
tests/test_parent_child.py
|
|
43
|
+
tests/test_model_exposure.py
|
|
44
|
+
tests/test_build_config.py
|
|
45
|
+
tests/test_smart_batch.py
|
|
46
|
+
tests/test_batch_size.py
|
|
47
|
+
tests/test_unload_gc.py
|
|
48
|
+
tests/test_resource_cleanup.py
|
|
49
|
+
|
|
50
|
+
preprocess:
|
|
51
|
+
name: Preprocess tests
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/checkout@v4
|
|
55
|
+
- uses: actions/setup-python@v5
|
|
56
|
+
with:
|
|
57
|
+
python-version: "3.13"
|
|
58
|
+
- name: Install system dependencies
|
|
59
|
+
run: |
|
|
60
|
+
sudo apt-get update
|
|
61
|
+
sudo apt-get install -y tesseract-ocr tesseract-ocr-fra
|
|
62
|
+
- uses: actions/cache@v4
|
|
63
|
+
with:
|
|
64
|
+
path: ~/.cache/pip
|
|
65
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
66
|
+
restore-keys: ${{ runner.os }}-pip-
|
|
67
|
+
- run: pip install --upgrade pip && pip install -e ".[dev,parse,eval]"
|
|
68
|
+
- name: Run preprocess tests
|
|
69
|
+
run: >-
|
|
70
|
+
pytest --tb=short -q
|
|
71
|
+
tests/test_preprocess.py
|
|
72
|
+
tests/test_parse.py
|
|
73
|
+
tests/test_enrich.py
|
|
74
|
+
tests/test_enrich_prompts.py
|
|
75
|
+
tests/test_checkpoint.py
|
|
76
|
+
tests/test_sequential_phases.py
|
|
77
|
+
tests/test_service.py
|
|
78
|
+
|
|
79
|
+
build:
|
|
80
|
+
name: Build tests
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
steps:
|
|
83
|
+
- uses: actions/checkout@v4
|
|
84
|
+
- uses: actions/setup-python@v5
|
|
85
|
+
with:
|
|
86
|
+
python-version: "3.13"
|
|
87
|
+
- name: Install system dependencies
|
|
88
|
+
run: |
|
|
89
|
+
sudo apt-get update
|
|
90
|
+
sudo apt-get install -y tesseract-ocr tesseract-ocr-fra
|
|
91
|
+
- uses: actions/cache@v4
|
|
92
|
+
with:
|
|
93
|
+
path: ~/.cache/pip
|
|
94
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
95
|
+
restore-keys: ${{ runner.os }}-pip-
|
|
96
|
+
- run: pip install --upgrade pip && pip install -e ".[dev,parse,eval]"
|
|
97
|
+
- name: Run build tests
|
|
98
|
+
run: >-
|
|
99
|
+
pytest --tb=short -q
|
|
100
|
+
tests/test_build.py
|
|
101
|
+
tests/test_build_preprocess.py
|
|
102
|
+
tests/test_pipeline_wiring.py
|
|
103
|
+
tests/test_metadata.py
|
|
104
|
+
tests/test_optimize_manifest.py
|
|
105
|
+
tests/test_integration.py
|
|
106
|
+
|
|
107
|
+
server:
|
|
108
|
+
name: Server tests
|
|
109
|
+
runs-on: ubuntu-latest
|
|
110
|
+
steps:
|
|
111
|
+
- uses: actions/checkout@v4
|
|
112
|
+
- uses: actions/setup-python@v5
|
|
113
|
+
with:
|
|
114
|
+
python-version: "3.13"
|
|
115
|
+
- uses: actions/cache@v4
|
|
116
|
+
with:
|
|
117
|
+
path: ~/.cache/pip
|
|
118
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
119
|
+
restore-keys: ${{ runner.os }}-pip-
|
|
120
|
+
- run: pip install --upgrade pip && pip install -e ".[dev,parse,eval]"
|
|
121
|
+
- name: Run server tests
|
|
122
|
+
run: >-
|
|
123
|
+
pytest --tb=short -q
|
|
124
|
+
tests/test_server.py
|
|
125
|
+
tests/test_mcp_tools.py
|
|
126
|
+
tests/test_get_config.py
|
|
127
|
+
tests/test_task_manager.py
|
|
128
|
+
|
|
129
|
+
eval:
|
|
130
|
+
name: Eval tests
|
|
131
|
+
runs-on: ubuntu-latest
|
|
132
|
+
steps:
|
|
133
|
+
- uses: actions/checkout@v4
|
|
134
|
+
- uses: actions/setup-python@v5
|
|
135
|
+
with:
|
|
136
|
+
python-version: "3.13"
|
|
137
|
+
- uses: actions/cache@v4
|
|
138
|
+
with:
|
|
139
|
+
path: ~/.cache/pip
|
|
140
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
|
|
141
|
+
restore-keys: ${{ runner.os }}-pip-
|
|
142
|
+
- run: pip install --upgrade pip && pip install -e ".[dev,parse,eval]"
|
|
143
|
+
- name: Run eval tests
|
|
144
|
+
run: >-
|
|
145
|
+
pytest --tb=short -q
|
|
146
|
+
tests/test_eval.py
|
|
147
|
+
tests/test_eval_report.py
|
|
148
|
+
tests/test_heading_eval.py
|
|
149
|
+
tests/test_autorag_multimodel.py
|
|
150
|
+
tests/test_ragas_explicit.py
|
|
151
|
+
tests/test_ragas_guard.py
|
|
152
|
+
tests/test_ragas_scoring.py
|
|
153
|
+
tests/test_ragas_stub.py
|
|
154
|
+
tests/test_api_resilience.py
|
|
155
|
+
tests/test_per_model_verify_ssl.py
|
|
156
|
+
tests/test_verify_ssl.py
|
lorme-0.1.1/.gitignore
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
src/lore_mcp/_version.py
|
|
4
|
+
.coverage
|
|
5
|
+
*.pyc
|
|
6
|
+
*.pyo
|
|
7
|
+
*.egg-info/
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
*.egg
|
|
11
|
+
|
|
12
|
+
# Virtual environments
|
|
13
|
+
.venv/
|
|
14
|
+
venv/
|
|
15
|
+
env/
|
|
16
|
+
|
|
17
|
+
# IDE
|
|
18
|
+
.idea/
|
|
19
|
+
.vscode/
|
|
20
|
+
*.swp
|
|
21
|
+
*.swo
|
|
22
|
+
|
|
23
|
+
# Project-specific: index files contain corpus data
|
|
24
|
+
*.db
|
|
25
|
+
# Exception: test fixtures (libre content only)
|
|
26
|
+
!tests/fixtures/*.db
|
|
27
|
+
|
|
28
|
+
# Credentials and local config
|
|
29
|
+
.env
|
|
30
|
+
.env.*
|
|
31
|
+
config.yaml
|
|
32
|
+
|
|
33
|
+
# Model cache
|
|
34
|
+
.cache/
|
|
35
|
+
models/
|
|
36
|
+
|
|
37
|
+
# OS
|
|
38
|
+
.DS_Store
|
|
39
|
+
Thumbs.db
|
|
40
|
+
|
|
41
|
+
# Generated docs
|
|
42
|
+
docs/output/
|
|
43
|
+
.mcp.json
|