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.
Files changed (154) hide show
  1. lorme-0.1.1/.cbmignore +8 -0
  2. lorme-0.1.1/.containerignore +10 -0
  3. lorme-0.1.1/.githooks/pre-commit +13 -0
  4. lorme-0.1.1/.github/pull_request_template.md +11 -0
  5. lorme-0.1.1/.github/workflows/test.yml +156 -0
  6. lorme-0.1.1/.gitignore +43 -0
  7. lorme-0.1.1/CLAUDE.md +1196 -0
  8. lorme-0.1.1/CONTRIBUTING.md +60 -0
  9. lorme-0.1.1/Containerfile +27 -0
  10. lorme-0.1.1/LICENSE +661 -0
  11. lorme-0.1.1/PKG-INFO +314 -0
  12. lorme-0.1.1/README.md +265 -0
  13. lorme-0.1.1/RELEASE-NOTES.md +141 -0
  14. lorme-0.1.1/docs/adr/001-license-gpl-v3.md +132 -0
  15. lorme-0.1.1/docs/adr/002-project-name.md +79 -0
  16. lorme-0.1.1/docs/adr/003-license-agpl-migration.md +109 -0
  17. lorme-0.1.1/docs/adr/004-multi-collection.md +76 -0
  18. lorme-0.1.1/docs/adr/005-default-model-nomic.md +90 -0
  19. lorme-0.1.1/docs/adr/006-rename-lorme.md +74 -0
  20. lorme-0.1.1/docs/ai-guidelines.md +146 -0
  21. lorme-0.1.1/docs/architecture.md +1229 -0
  22. lorme-0.1.1/docs/code-guide.md +1546 -0
  23. lorme-0.1.1/docs/configuration.md +542 -0
  24. lorme-0.1.1/docs/docker.md +93 -0
  25. lorme-0.1.1/docs/implementation-reference.md +1675 -0
  26. lorme-0.1.1/docs/multi-mcp-v1.0.epub +0 -0
  27. lorme-0.1.1/docs/multi-mcp.md +191 -0
  28. lorme-0.1.1/docs/preprocessing.md +464 -0
  29. lorme-0.1.1/docs/tutorial.md +426 -0
  30. lorme-0.1.1/docs/value-proposition.md +209 -0
  31. lorme-0.1.1/examples/mcp-config.example.json +20 -0
  32. lorme-0.1.1/pyproject.toml +96 -0
  33. lorme-0.1.1/scripts/docling-server.py +286 -0
  34. lorme-0.1.1/scripts/epub-style.css +57 -0
  35. lorme-0.1.1/scripts/generate-epubs.sh +119 -0
  36. lorme-0.1.1/scripts/granite-vision-server.py +316 -0
  37. lorme-0.1.1/scripts/molmo2-server.py +228 -0
  38. lorme-0.1.1/scripts/start-docling-server.sh +82 -0
  39. lorme-0.1.1/scripts/start-granite-vision-server.sh +84 -0
  40. lorme-0.1.1/scripts/start-molmo2-server.sh +51 -0
  41. lorme-0.1.1/scripts/start-stt-server.sh +90 -0
  42. lorme-0.1.1/scripts/start-tei.sh +44 -0
  43. lorme-0.1.1/scripts/stt-server.py +331 -0
  44. lorme-0.1.1/src/lorme/__init__.py +10 -0
  45. lorme-0.1.1/src/lorme/_version.py +24 -0
  46. lorme-0.1.1/src/lorme/bootstrap.yaml +89 -0
  47. lorme-0.1.1/src/lorme/build.py +334 -0
  48. lorme-0.1.1/src/lorme/build_config.py +58 -0
  49. lorme-0.1.1/src/lorme/checkpoint.py +228 -0
  50. lorme-0.1.1/src/lorme/collections.py +12 -0
  51. lorme-0.1.1/src/lorme/config.py +257 -0
  52. lorme-0.1.1/src/lorme/embedder.py +434 -0
  53. lorme-0.1.1/src/lorme/eval.py +1085 -0
  54. lorme-0.1.1/src/lorme/format_registry.py +206 -0
  55. lorme-0.1.1/src/lorme/ingest.py +307 -0
  56. lorme-0.1.1/src/lorme/lint.py +213 -0
  57. lorme-0.1.1/src/lorme/metadata.py +140 -0
  58. lorme-0.1.1/src/lorme/preprocess/__init__.py +1503 -0
  59. lorme-0.1.1/src/lorme/preprocess/clean.py +43 -0
  60. lorme-0.1.1/src/lorme/preprocess/dedup.py +120 -0
  61. lorme-0.1.1/src/lorme/preprocess/diarize.py +373 -0
  62. lorme-0.1.1/src/lorme/preprocess/enrich.py +338 -0
  63. lorme-0.1.1/src/lorme/preprocess/llm.py +122 -0
  64. lorme-0.1.1/src/lorme/preprocess/narrate.py +507 -0
  65. lorme-0.1.1/src/lorme/preprocess/parse.py +1367 -0
  66. lorme-0.1.1/src/lorme/preprocess/pii.py +47 -0
  67. lorme-0.1.1/src/lorme/preprocess/service.py +204 -0
  68. lorme-0.1.1/src/lorme/preprocess/validate.py +15 -0
  69. lorme-0.1.1/src/lorme/progress.py +281 -0
  70. lorme-0.1.1/src/lorme/prompts.yaml +15 -0
  71. lorme-0.1.1/src/lorme/recipe.py +246 -0
  72. lorme-0.1.1/src/lorme/server.py +1933 -0
  73. lorme-0.1.1/src/lorme/store.py +945 -0
  74. lorme-0.1.1/src/lorme/task_manager.py +237 -0
  75. lorme-0.1.1/sync/links.md +6 -0
  76. lorme-0.1.1/sync/openshift.md +198 -0
  77. lorme-0.1.1/tests/conftest.py +26 -0
  78. lorme-0.1.1/tests/fixtures/build-test-dbs.py +90 -0
  79. lorme-0.1.1/tests/fixtures/config-test.yaml +35 -0
  80. lorme-0.1.1/tests/fixtures/manifest-test-redist-prep.yaml +158 -0
  81. lorme-0.1.1/tests/fixtures/prep/2026-Declaration-Vacance-Marche-Noel-Createurs.md +113 -0
  82. lorme-0.1.1/tests/fixtures/prep/DUDH_2008.md +637 -0
  83. lorme-0.1.1/tests/fixtures/prep/Reunion-Parents-ppt-Parcoursup-2025-version-pour-le-7-01-25-1.md +489 -0
  84. lorme-0.1.1/tests/fixtures/prep/S-GEN-UNACT-2021-PDF-E.md +12274 -0
  85. lorme-0.1.1/tests/fixtures/prep/aout-2026.md +47 -0
  86. lorme-0.1.1/tests/fixtures/prep/free-sw.en.md +634 -0
  87. lorme-0.1.1/tests/fixtures/prep/fsf-ml-applications-2024.md +155 -0
  88. lorme-0.1.1/tests/fixtures/prep/governing_ai_for_humanity_final_report_en.md +4576 -0
  89. lorme-0.1.1/tests/fixtures/prep/hatta-reproducibility-copyleft-2026.md +688 -0
  90. lorme-0.1.1/tests/fixtures/prep/linuxfr-devnewton-osaid-2024.md +411 -0
  91. lorme-0.1.1/tests/fixtures/prep/ocde-definition-ia-legal-0449.md +679 -0
  92. lorme-0.1.1/tests/fixtures/prep/ocde-memorandum-definition-ia-2024.md +573 -0
  93. lorme-0.1.1/tests/fixtures/prep/osi-open-weights.md +284 -0
  94. lorme-0.1.1/tests/fixtures/prep/osi-osaid-v1.0-definition.md +173 -0
  95. lorme-0.1.1/tests/fixtures/prep/pexels-melike-bayram-2154228305-33121483.md +5 -0
  96. lorme-0.1.1/tests/fixtures/prep/preprocess-report.json +363 -0
  97. lorme-0.1.1/tests/fixtures/prep/test-data-sample.md +8 -0
  98. lorme-0.1.1/tests/fixtures/prep/test-markdown-sample.md +148 -0
  99. lorme-0.1.1/tests/fixtures/prep/worldcup-full.md +140 -0
  100. lorme-0.1.1/tests/fixtures/recipe-test-redist.yaml +169 -0
  101. lorme-0.1.1/tests/fixtures/test-minimal.db +0 -0
  102. lorme-0.1.1/tests/fixtures/test-mixed.db +0 -0
  103. lorme-0.1.1/tests/fixtures/urls-test.txt +11 -0
  104. lorme-0.1.1/tests/test_api_resilience.py +165 -0
  105. lorme-0.1.1/tests/test_autorag_multimodel.py +174 -0
  106. lorme-0.1.1/tests/test_batch_size.py +17 -0
  107. lorme-0.1.1/tests/test_build.py +337 -0
  108. lorme-0.1.1/tests/test_build_config.py +59 -0
  109. lorme-0.1.1/tests/test_build_preprocess.py +274 -0
  110. lorme-0.1.1/tests/test_checkpoint.py +418 -0
  111. lorme-0.1.1/tests/test_chunk_config.py +31 -0
  112. lorme-0.1.1/tests/test_collections.py +9 -0
  113. lorme-0.1.1/tests/test_config.py +92 -0
  114. lorme-0.1.1/tests/test_config_unification.py +43 -0
  115. lorme-0.1.1/tests/test_dedup.py +130 -0
  116. lorme-0.1.1/tests/test_diarize.py +509 -0
  117. lorme-0.1.1/tests/test_embedder.py +281 -0
  118. lorme-0.1.1/tests/test_enrich.py +177 -0
  119. lorme-0.1.1/tests/test_enrich_prompts.py +73 -0
  120. lorme-0.1.1/tests/test_eval.py +145 -0
  121. lorme-0.1.1/tests/test_eval_report.py +142 -0
  122. lorme-0.1.1/tests/test_format_registry.py +179 -0
  123. lorme-0.1.1/tests/test_get_config.py +113 -0
  124. lorme-0.1.1/tests/test_heading_eval.py +207 -0
  125. lorme-0.1.1/tests/test_ingest.py +208 -0
  126. lorme-0.1.1/tests/test_integration.py +200 -0
  127. lorme-0.1.1/tests/test_lint.py +201 -0
  128. lorme-0.1.1/tests/test_mcp_tools.py +768 -0
  129. lorme-0.1.1/tests/test_metadata.py +286 -0
  130. lorme-0.1.1/tests/test_model_exposure.py +22 -0
  131. lorme-0.1.1/tests/test_narrate.py +303 -0
  132. lorme-0.1.1/tests/test_optimize_manifest.py +207 -0
  133. lorme-0.1.1/tests/test_parent_child.py +114 -0
  134. lorme-0.1.1/tests/test_parse.py +957 -0
  135. lorme-0.1.1/tests/test_per_model_verify_ssl.py +70 -0
  136. lorme-0.1.1/tests/test_pii.py +43 -0
  137. lorme-0.1.1/tests/test_pipeline_wiring.py +220 -0
  138. lorme-0.1.1/tests/test_preprocess.py +1177 -0
  139. lorme-0.1.1/tests/test_progress.py +229 -0
  140. lorme-0.1.1/tests/test_ragas_explicit.py +48 -0
  141. lorme-0.1.1/tests/test_ragas_guard.py +89 -0
  142. lorme-0.1.1/tests/test_ragas_scoring.py +153 -0
  143. lorme-0.1.1/tests/test_ragas_stub.py +26 -0
  144. lorme-0.1.1/tests/test_recipe_cascade.py +173 -0
  145. lorme-0.1.1/tests/test_resource_cleanup.py +122 -0
  146. lorme-0.1.1/tests/test_sequential_phases.py +260 -0
  147. lorme-0.1.1/tests/test_server.py +251 -0
  148. lorme-0.1.1/tests/test_service.py +75 -0
  149. lorme-0.1.1/tests/test_smart_batch.py +123 -0
  150. lorme-0.1.1/tests/test_store.py +272 -0
  151. lorme-0.1.1/tests/test_task_manager.py +327 -0
  152. lorme-0.1.1/tests/test_unload_gc.py +36 -0
  153. lorme-0.1.1/tests/test_validate.py +62 -0
  154. lorme-0.1.1/tests/test_verify_ssl.py +118 -0
lorme-0.1.1/.cbmignore ADDED
@@ -0,0 +1,8 @@
1
+ # Codebase-Memory ignore — exclude non-code content
2
+ # Keep: src/, tests/, docs/*.md (technical docs), CLAUDE.md
3
+ # Exclude: fixtures, studies, sync, validation outputs
4
+
5
+ tests/fixtures/
6
+ docs/studies/
7
+ sync/
8
+ workspace-validation/
@@ -0,0 +1,10 @@
1
+ .git
2
+ .venv
3
+ *.db
4
+ dist/
5
+ build/
6
+ __pycache__
7
+ *.pyc
8
+ tests/fixtures/orig/
9
+ config.yaml
10
+ .claude/
@@ -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