mdrack 1.3.0__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 (536) hide show
  1. mdrack-1.3.0/.gitattributes +1 -0
  2. mdrack-1.3.0/.github/workflows/offline-release-matrix.yml +90 -0
  3. mdrack-1.3.0/.gitignore +52 -0
  4. mdrack-1.3.0/AGENTS.md +111 -0
  5. mdrack-1.3.0/LICENSE +21 -0
  6. mdrack-1.3.0/PKG-INFO +200 -0
  7. mdrack-1.3.0/README.md +176 -0
  8. mdrack-1.3.0/THIRD_PARTY_NOTICES.md +100 -0
  9. mdrack-1.3.0/configs/eval-v11.toml +62 -0
  10. mdrack-1.3.0/docs/architecture.md +188 -0
  11. mdrack-1.3.0/docs/chunking-refactor-plan.md +111 -0
  12. mdrack-1.3.0/docs/cli-contracts.md +296 -0
  13. mdrack-1.3.0/docs/compatibility/v0.3-compatibility-registry.md +209 -0
  14. mdrack-1.3.0/docs/compatibility/v0.4-future-host-consumer-ledger.md +21 -0
  15. mdrack-1.3.0/docs/compatibility/v0.4-public-surface-ledger.json +297 -0
  16. mdrack-1.3.0/docs/compatibility/v1.1-compatibility-ledger.md +59 -0
  17. mdrack-1.3.0/docs/contracts/prepared-resource-manifest-v1.md +113 -0
  18. mdrack-1.3.0/docs/contracts/prepared-resource-manifest-v1.schema.json +132 -0
  19. mdrack-1.3.0/docs/contracts/v0.4-w5-ci-contract.md +228 -0
  20. mdrack-1.3.0/docs/contracts/v1.1-application-contract.md +80 -0
  21. mdrack-1.3.0/docs/contracts/v1.1-artifact-cache.md +73 -0
  22. mdrack-1.3.0/docs/contracts/v1.1-frame-captions.md +38 -0
  23. mdrack-1.3.0/docs/contracts/v1.1-metadata.md +129 -0
  24. mdrack-1.3.0/docs/contracts/v1.1-search-presets.md +111 -0
  25. mdrack-1.3.0/docs/contracts/v1.1-transcript-readers.md +92 -0
  26. mdrack-1.3.0/docs/contracts/v1.2-unified-search.md +99 -0
  27. mdrack-1.3.0/docs/current-architecture/README.md +69 -0
  28. mdrack-1.3.0/docs/current-architecture/assets.md +68 -0
  29. mdrack-1.3.0/docs/current-architecture/indexing-and-chunking.md +154 -0
  30. mdrack-1.3.0/docs/current-architecture/limitations.md +131 -0
  31. mdrack-1.3.0/docs/current-architecture/one-store-s1-test-ledger.md +65 -0
  32. mdrack-1.3.0/docs/current-architecture/public-interfaces.md +237 -0
  33. mdrack-1.3.0/docs/current-architecture/retrieval.md +167 -0
  34. mdrack-1.3.0/docs/current-architecture/sqlite-persistence.md +272 -0
  35. mdrack-1.3.0/docs/current-architecture/system-overview.md +184 -0
  36. mdrack-1.3.0/docs/decisions/0001-reranking-deferred.md +118 -0
  37. mdrack-1.3.0/docs/decisions/0002-provider-storage-neutral-core.md +254 -0
  38. mdrack-1.3.0/docs/decisions/0003-core-1.0-rc-contract.md +129 -0
  39. mdrack-1.3.0/docs/decisions/0004-sqlite-operating-envelope.md +70 -0
  40. mdrack-1.3.0/docs/decisions/0005-timed-text-granularity.md +25 -0
  41. mdrack-1.3.0/docs/decisions/0006-temporal-locator-specification.md +27 -0
  42. mdrack-1.3.0/docs/decisions/0007-no-overlap-default.md +23 -0
  43. mdrack-1.3.0/docs/decisions/0008-whole-resource-text-aggregation.md +23 -0
  44. mdrack-1.3.0/docs/decisions/0009-text-only-media-capability.md +24 -0
  45. mdrack-1.3.0/docs/decisions/0010-clean-standalone-sqlite-catalog.md +26 -0
  46. mdrack-1.3.0/docs/decisions/0011-v1.1-application-contracts.md +79 -0
  47. mdrack-1.3.0/docs/decisions/0012-raw-source-provenance-contract.md +89 -0
  48. mdrack-1.3.0/docs/development.md +120 -0
  49. mdrack-1.3.0/docs/evaluation/privacy-evidence-oracle.md +30 -0
  50. mdrack-1.3.0/docs/evaluation/public-corpus-contract-v1.md +141 -0
  51. mdrack-1.3.0/docs/evaluation/v1.1-fixture-contract.md +40 -0
  52. mdrack-1.3.0/docs/evaluation/v1.1-quality-observations.md +36 -0
  53. mdrack-1.3.0/docs/evaluation/w4-quality-evidence.md +38 -0
  54. mdrack-1.3.0/docs/evaluation/w5-sqlite-envelope.json +242 -0
  55. mdrack-1.3.0/docs/evaluation/w5-sqlite-envelope.md +62 -0
  56. mdrack-1.3.0/docs/getting-started.md +301 -0
  57. mdrack-1.3.0/docs/guides/v1.1-cache.md +57 -0
  58. mdrack-1.3.0/docs/guides/v1.1-metadata.md +100 -0
  59. mdrack-1.3.0/docs/guides/v1.1-offline-workflows.md +129 -0
  60. mdrack-1.3.0/docs/guides/v1.1-timed-media.md +200 -0
  61. mdrack-1.3.0/docs/licensing.md +67 -0
  62. mdrack-1.3.0/docs/mdrack-v0.2-retrieval-modernization-plan.md +945 -0
  63. mdrack-1.3.0/docs/model-management-plan-3.md +379 -0
  64. mdrack-1.3.0/docs/offline-release-verification.md +261 -0
  65. mdrack-1.3.0/docs/one-store-acceptance.md +90 -0
  66. mdrack-1.3.0/docs/operations.md +145 -0
  67. mdrack-1.3.0/docs/optional-provider-contracts.md +26 -0
  68. mdrack-1.3.0/docs/plan.md +2904 -0
  69. mdrack-1.3.0/docs/plans/2026-07-16-v0.2-stabilization.md +343 -0
  70. mdrack-1.3.0/docs/plans/2026-07-17-architecture-documentation-hardening.md +72 -0
  71. mdrack-1.3.0/docs/plans/2026-07-17-v0.3-clean-core.md +2552 -0
  72. mdrack-1.3.0/docs/plans/2026-07-18-v0.3.1-audit-hardening.md +264 -0
  73. mdrack-1.3.0/docs/plans/2026-07-18-v0.4-text-media-development-plan.md +3385 -0
  74. mdrack-1.3.0/docs/plans/2026-07-20-v1.1-implementation-plan.md +5308 -0
  75. mdrack-1.3.0/docs/plans/2026-07-22-v1.2-unified-search.md +119 -0
  76. mdrack-1.3.0/docs/plans/2026-07-24-v1.3-compact-storage-sqlite-vec.md +3107 -0
  77. mdrack-1.3.0/docs/plans/2026-07-31-mdrack-single-clean-v2.md +149 -0
  78. mdrack-1.3.0/docs/recovery.md +64 -0
  79. mdrack-1.3.0/docs/release-1.1.md +68 -0
  80. mdrack-1.3.0/docs/release-1.3.md +161 -0
  81. mdrack-1.3.0/docs/remediation-plan.md +144 -0
  82. mdrack-1.3.0/docs/retrieval-design.md +314 -0
  83. mdrack-1.3.0/docs/retrospectives/2026-08-20.md +94 -0
  84. mdrack-1.3.0/docs/retrospectives/2026-08-24.md +75 -0
  85. mdrack-1.3.0/docs/retrospectives/README.md +8 -0
  86. mdrack-1.3.0/docs/storage-design.md +279 -0
  87. mdrack-1.3.0/docs/windows-exe-build.md +66 -0
  88. mdrack-1.3.0/instructions/ARCH.system.instructions.md +106 -0
  89. mdrack-1.3.0/instructions/DATA.sqlite.instructions.md +122 -0
  90. mdrack-1.3.0/instructions/DOCS.architecture.instructions.md +66 -0
  91. mdrack-1.3.0/instructions/DOCS.instruction-style-guide.instructions.md +63 -0
  92. mdrack-1.3.0/instructions/OBS.logging.instructions.md +73 -0
  93. mdrack-1.3.0/instructions/TEST.quality-gates.instructions.md +98 -0
  94. mdrack-1.3.0/instructions/TOOLING.mcp-instrument.instructions.md +38 -0
  95. mdrack-1.3.0/instructions/WORKFLOW.build-orchestration.instructions.md +52 -0
  96. mdrack-1.3.0/instructions/WORKFLOW.git-safety.instructions.md +67 -0
  97. mdrack-1.3.0/instructions/WORKFLOW.plan-orchestration.instructions.md +45 -0
  98. mdrack-1.3.0/instructions/WORKFLOW.requirements-to-spec.instructions.md +45 -0
  99. mdrack-1.3.0/mdrack.spec +52 -0
  100. mdrack-1.3.0/pyproject.toml +82 -0
  101. mdrack-1.3.0/scripts/__init__.py +0 -0
  102. mdrack-1.3.0/scripts/baseline_compare.py +502 -0
  103. mdrack-1.3.0/scripts/build_v11_test_assets.py +257 -0
  104. mdrack-1.3.0/scripts/build_windows_exe.ps1 +35 -0
  105. mdrack-1.3.0/scripts/check_core_boundaries.py +256 -0
  106. mdrack-1.3.0/scripts/check_core_distribution.py +277 -0
  107. mdrack-1.3.0/scripts/check_installed_package.py +628 -0
  108. mdrack-1.3.0/scripts/check_media_boundaries.py +70 -0
  109. mdrack-1.3.0/scripts/check_no_forbidden_deps.py +78 -0
  110. mdrack-1.3.0/scripts/check_release_docs.py +321 -0
  111. mdrack-1.3.0/scripts/check_sqlite_boundaries.py +49 -0
  112. mdrack-1.3.0/scripts/check_v13_release_packet.py +282 -0
  113. mdrack-1.3.0/scripts/check_v13_sqlite_vec_nonpromotion.py +173 -0
  114. mdrack-1.3.0/scripts/chunk_audit.py +110 -0
  115. mdrack-1.3.0/scripts/live_lmstudio_eval.py +292 -0
  116. mdrack-1.3.0/scripts/media_quality_eval.py +148 -0
  117. mdrack-1.3.0/scripts/offline_release_matrix.py +573 -0
  118. mdrack-1.3.0/scripts/retrieval_benchmark.py +144 -0
  119. mdrack-1.3.0/scripts/run_one_store_acceptance.py +666 -0
  120. mdrack-1.3.0/scripts/run_v11_evaluation.py +33 -0
  121. mdrack-1.3.0/scripts/run_v11_offline_e2e.py +102 -0
  122. mdrack-1.3.0/scripts/sqlite_envelope_benchmark.py +713 -0
  123. mdrack-1.3.0/scripts/verify.ps1 +28 -0
  124. mdrack-1.3.0/scripts/verify.sh +29 -0
  125. mdrack-1.3.0/skills/mdrack/SKILL.md +281 -0
  126. mdrack-1.3.0/src/mdrack/__init__.py +3 -0
  127. mdrack-1.3.0/src/mdrack/__main__.py +6 -0
  128. mdrack-1.3.0/src/mdrack/adapters/__init__.py +1 -0
  129. mdrack-1.3.0/src/mdrack/adapters/lmstudio/__init__.py +1 -0
  130. mdrack-1.3.0/src/mdrack/adapters/lmstudio/fakes.py +84 -0
  131. mdrack-1.3.0/src/mdrack/adapters/markdown_it/__init__.py +5 -0
  132. mdrack-1.3.0/src/mdrack/adapters/markdown_it/parser.py +695 -0
  133. mdrack-1.3.0/src/mdrack/adapters/sqlite/__init__.py +9 -0
  134. mdrack-1.3.0/src/mdrack/adapters/sqlite/canonical_catalog.py +145 -0
  135. mdrack-1.3.0/src/mdrack/adapters/sqlite/index_storage.py +558 -0
  136. mdrack-1.3.0/src/mdrack/adapters/sqlite/resource_store.py +5 -0
  137. mdrack-1.3.0/src/mdrack/application/__init__.py +40 -0
  138. mdrack-1.3.0/src/mdrack/application/artifact_cache.py +546 -0
  139. mdrack-1.3.0/src/mdrack/application/chunking.py +735 -0
  140. mdrack-1.3.0/src/mdrack/application/compatibility.py +1004 -0
  141. mdrack-1.3.0/src/mdrack/application/indexing.py +708 -0
  142. mdrack-1.3.0/src/mdrack/application/manifest.py +652 -0
  143. mdrack-1.3.0/src/mdrack/application/metadata_filters.py +117 -0
  144. mdrack-1.3.0/src/mdrack/application/metadata_normalization.py +238 -0
  145. mdrack-1.3.0/src/mdrack/application/metadata_projection.py +362 -0
  146. mdrack-1.3.0/src/mdrack/application/query.py +68 -0
  147. mdrack-1.3.0/src/mdrack/application/resource_catalog.py +1168 -0
  148. mdrack-1.3.0/src/mdrack/application/resources.py +1088 -0
  149. mdrack-1.3.0/src/mdrack/application/retrieval.py +882 -0
  150. mdrack-1.3.0/src/mdrack/application/textual_embedding_space.py +74 -0
  151. mdrack-1.3.0/src/mdrack/application/transcript_ingestion.py +774 -0
  152. mdrack-1.3.0/src/mdrack/application/vector_values.py +145 -0
  153. mdrack-1.3.0/src/mdrack/application/video_composition.py +448 -0
  154. mdrack-1.3.0/src/mdrack/cli/__init__.py +501 -0
  155. mdrack-1.3.0/src/mdrack/cli/commands/__init__.py +0 -0
  156. mdrack-1.3.0/src/mdrack/cli/commands/cache.py +147 -0
  157. mdrack-1.3.0/src/mdrack/cli/commands/eval.py +212 -0
  158. mdrack-1.3.0/src/mdrack/cli/commands/files.py +110 -0
  159. mdrack-1.3.0/src/mdrack/cli/commands/images.py +245 -0
  160. mdrack-1.3.0/src/mdrack/cli/commands/metadata.py +212 -0
  161. mdrack-1.3.0/src/mdrack/cli/commands/model.py +775 -0
  162. mdrack-1.3.0/src/mdrack/cli/commands/raw_audio.py +69 -0
  163. mdrack-1.3.0/src/mdrack/cli/commands/raw_text.py +55 -0
  164. mdrack-1.3.0/src/mdrack/cli/commands/raw_video.py +54 -0
  165. mdrack-1.3.0/src/mdrack/cli/commands/read.py +169 -0
  166. mdrack-1.3.0/src/mdrack/cli/commands/rebuild.py +150 -0
  167. mdrack-1.3.0/src/mdrack/cli/commands/resource.py +161 -0
  168. mdrack-1.3.0/src/mdrack/cli/commands/resources.py +340 -0
  169. mdrack-1.3.0/src/mdrack/cli/commands/scan.py +103 -0
  170. mdrack-1.3.0/src/mdrack/cli/commands/search.py +501 -0
  171. mdrack-1.3.0/src/mdrack/cli/commands/transcript.py +253 -0
  172. mdrack-1.3.0/src/mdrack/cli/commands/video.py +186 -0
  173. mdrack-1.3.0/src/mdrack/cli/help_topics.py +144 -0
  174. mdrack-1.3.0/src/mdrack/config/__init__.py +1 -0
  175. mdrack-1.3.0/src/mdrack/config/defaults.py +40 -0
  176. mdrack-1.3.0/src/mdrack/config/loader.py +263 -0
  177. mdrack-1.3.0/src/mdrack/config/models.py +209 -0
  178. mdrack-1.3.0/src/mdrack/diagnostics/__init__.py +0 -0
  179. mdrack-1.3.0/src/mdrack/diagnostics/doctor.py +112 -0
  180. mdrack-1.3.0/src/mdrack/diagnostics/integrity.py +48 -0
  181. mdrack-1.3.0/src/mdrack/diagnostics/storage.py +600 -0
  182. mdrack-1.3.0/src/mdrack/domain/__init__.py +5 -0
  183. mdrack-1.3.0/src/mdrack/domain/blocks.py +70 -0
  184. mdrack-1.3.0/src/mdrack/domain/chunks.py +44 -0
  185. mdrack-1.3.0/src/mdrack/domain/documents.py +75 -0
  186. mdrack-1.3.0/src/mdrack/domain/identifiers.py +33 -0
  187. mdrack-1.3.0/src/mdrack/domain/indexing.py +165 -0
  188. mdrack-1.3.0/src/mdrack/domain/profiles.py +137 -0
  189. mdrack-1.3.0/src/mdrack/domain/retrieval.py +99 -0
  190. mdrack-1.3.0/src/mdrack/embeddings/__init__.py +0 -0
  191. mdrack-1.3.0/src/mdrack/embeddings/fake.py +143 -0
  192. mdrack-1.3.0/src/mdrack/embeddings/hashing.py +24 -0
  193. mdrack-1.3.0/src/mdrack/embeddings/lmstudio.py +27 -0
  194. mdrack-1.3.0/src/mdrack/embeddings/protocol.py +5 -0
  195. mdrack-1.3.0/src/mdrack/embeddings/runtime.py +79 -0
  196. mdrack-1.3.0/src/mdrack/eval/__init__.py +0 -0
  197. mdrack-1.3.0/src/mdrack/eval/chunk_audit.py +273 -0
  198. mdrack-1.3.0/src/mdrack/eval/metrics.py +74 -0
  199. mdrack-1.3.0/src/mdrack/eval/privacy.py +212 -0
  200. mdrack-1.3.0/src/mdrack/eval/quality.py +255 -0
  201. mdrack-1.3.0/src/mdrack/eval/queries.py +146 -0
  202. mdrack-1.3.0/src/mdrack/eval/reporting.py +181 -0
  203. mdrack-1.3.0/src/mdrack/eval/retrieval.py +266 -0
  204. mdrack-1.3.0/src/mdrack/indexing/__init__.py +0 -0
  205. mdrack-1.3.0/src/mdrack/indexing/change_detector.py +116 -0
  206. mdrack-1.3.0/src/mdrack/indexing/indexer.py +59 -0
  207. mdrack-1.3.0/src/mdrack/indexing/scanner.py +148 -0
  208. mdrack-1.3.0/src/mdrack/indexing/transactions.py +266 -0
  209. mdrack-1.3.0/src/mdrack/ingestion/__init__.py +25 -0
  210. mdrack-1.3.0/src/mdrack/ingestion/frame_captions.py +171 -0
  211. mdrack-1.3.0/src/mdrack/ingestion/images.py +787 -0
  212. mdrack-1.3.0/src/mdrack/ingestion/media_manifests.py +105 -0
  213. mdrack-1.3.0/src/mdrack/ingestion/raw_audio.py +314 -0
  214. mdrack-1.3.0/src/mdrack/ingestion/raw_source_provenance.py +448 -0
  215. mdrack-1.3.0/src/mdrack/ingestion/raw_text.py +169 -0
  216. mdrack-1.3.0/src/mdrack/ingestion/raw_video.py +286 -0
  217. mdrack-1.3.0/src/mdrack/ingestion/transcripts/__init__.py +120 -0
  218. mdrack-1.3.0/src/mdrack/ingestion/transcripts/common.py +306 -0
  219. mdrack-1.3.0/src/mdrack/ingestion/transcripts/srt.py +72 -0
  220. mdrack-1.3.0/src/mdrack/ingestion/transcripts/timed_json.py +81 -0
  221. mdrack-1.3.0/src/mdrack/ingestion/transcripts/webvtt.py +86 -0
  222. mdrack-1.3.0/src/mdrack/ingestion/transcripts/whisper_json.py +77 -0
  223. mdrack-1.3.0/src/mdrack/integrations/__init__.py +1 -0
  224. mdrack-1.3.0/src/mdrack/integrations/lmstudio/__init__.py +26 -0
  225. mdrack-1.3.0/src/mdrack/integrations/lmstudio/client.py +852 -0
  226. mdrack-1.3.0/src/mdrack/integrations/providers/__init__.py +21 -0
  227. mdrack-1.3.0/src/mdrack/integrations/providers/contracts.py +352 -0
  228. mdrack-1.3.0/src/mdrack/markdown/__init__.py +0 -0
  229. mdrack-1.3.0/src/mdrack/markdown/chunk_builder.py +425 -0
  230. mdrack-1.3.0/src/mdrack/markdown/embedding_text.py +63 -0
  231. mdrack-1.3.0/src/mdrack/markdown/frontmatter.py +58 -0
  232. mdrack-1.3.0/src/mdrack/markdown/ir.py +124 -0
  233. mdrack-1.3.0/src/mdrack/markdown/parser.py +337 -0
  234. mdrack-1.3.0/src/mdrack/markdown/section_builder.py +174 -0
  235. mdrack-1.3.0/src/mdrack/output/__init__.py +0 -0
  236. mdrack-1.3.0/src/mdrack/output/envelope.py +41 -0
  237. mdrack-1.3.0/src/mdrack/output/errors.py +75 -0
  238. mdrack-1.3.0/src/mdrack/output/json_output.py +24 -0
  239. mdrack-1.3.0/src/mdrack/ports/__init__.py +27 -0
  240. mdrack-1.3.0/src/mdrack/ports/embeddings.py +35 -0
  241. mdrack-1.3.0/src/mdrack/ports/model_catalog.py +79 -0
  242. mdrack-1.3.0/src/mdrack/ports/model_lifecycle.py +22 -0
  243. mdrack-1.3.0/src/mdrack/ports/parser.py +22 -0
  244. mdrack-1.3.0/src/mdrack/ports/reranker.py +39 -0
  245. mdrack-1.3.0/src/mdrack/ports/storage.py +112 -0
  246. mdrack-1.3.0/src/mdrack/public_api/__init__.py +57 -0
  247. mdrack-1.3.0/src/mdrack/public_api/engine.py +745 -0
  248. mdrack-1.3.0/src/mdrack/public_api/models.py +82 -0
  249. mdrack-1.3.0/src/mdrack/search/__init__.py +3 -0
  250. mdrack-1.3.0/src/mdrack/search/hybrid.py +85 -0
  251. mdrack-1.3.0/src/mdrack/search/scoring.py +81 -0
  252. mdrack-1.3.0/src/mdrack/search/semantic.py +64 -0
  253. mdrack-1.3.0/src/mdrack/search/text.py +160 -0
  254. mdrack-1.3.0/src/mdrack/storage/__init__.py +0 -0
  255. mdrack-1.3.0/src/mdrack/storage/sqlite/__init__.py +0 -0
  256. mdrack-1.3.0/src/mdrack/storage/sqlite/connection.py +37 -0
  257. mdrack-1.3.0/src/mdrack/storage/sqlite/fts.py +143 -0
  258. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0000_schema_migrations.sql +4 -0
  259. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0001_initial.sql +77 -0
  260. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0002_fts.sql +6 -0
  261. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0003_provenance.sql +26 -0
  262. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0004_embedding_profiles.sql +36 -0
  263. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0005_assets.sql +44 -0
  264. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0006_complete_provenance.sql +25 -0
  265. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0007_resource_core.sql +123 -0
  266. mdrack-1.3.0/src/mdrack/storage/sqlite/migrations.py +200 -0
  267. mdrack-1.3.0/src/mdrack/storage/sqlite/repositories.py +212 -0
  268. mdrack-1.3.0/src/mdrack/storage/sqlite/vector.py +212 -0
  269. mdrack-1.3.0/tests/__init__.py +0 -0
  270. mdrack-1.3.0/tests/assets/v1_1/transcripts/sample.srt +8 -0
  271. mdrack-1.3.0/tests/assets/v1_1/transcripts/sample.vtt +10 -0
  272. mdrack-1.3.0/tests/assets/v1_1/transcripts/timed.json +10 -0
  273. mdrack-1.3.0/tests/assets/v1_1/transcripts/whisper.json +7 -0
  274. mdrack-1.3.0/tests/cli/__init__.py +0 -0
  275. mdrack-1.3.0/tests/cli/test_cli_cache.py +187 -0
  276. mdrack-1.3.0/tests/cli/test_cli_eval.py +98 -0
  277. mdrack-1.3.0/tests/cli/test_cli_files.py +101 -0
  278. mdrack-1.3.0/tests/cli/test_cli_guide.py +91 -0
  279. mdrack-1.3.0/tests/cli/test_cli_help.py +147 -0
  280. mdrack-1.3.0/tests/cli/test_cli_images.py +78 -0
  281. mdrack-1.3.0/tests/cli/test_cli_model.py +571 -0
  282. mdrack-1.3.0/tests/cli/test_cli_raw_audio.py +89 -0
  283. mdrack-1.3.0/tests/cli/test_cli_raw_text.py +34 -0
  284. mdrack-1.3.0/tests/cli/test_cli_raw_video.py +61 -0
  285. mdrack-1.3.0/tests/cli/test_cli_read.py +236 -0
  286. mdrack-1.3.0/tests/cli/test_cli_rebuild.py +77 -0
  287. mdrack-1.3.0/tests/cli/test_cli_resource_lifecycle.py +113 -0
  288. mdrack-1.3.0/tests/cli/test_cli_scan.py +349 -0
  289. mdrack-1.3.0/tests/cli/test_cli_search_semantic_fake.py +242 -0
  290. mdrack-1.3.0/tests/cli/test_cli_search_text.py +230 -0
  291. mdrack-1.3.0/tests/cli/test_cli_sections.py +15 -0
  292. mdrack-1.3.0/tests/cli/test_cli_transcript.py +164 -0
  293. mdrack-1.3.0/tests/cli/test_cli_video.py +184 -0
  294. mdrack-1.3.0/tests/core/fakes/memory_store.py +299 -0
  295. mdrack-1.3.0/tests/core/test_audio_retrieval_evidence.py +189 -0
  296. mdrack-1.3.0/tests/core/test_contract_freeze.py +178 -0
  297. mdrack-1.3.0/tests/core/test_domain_records.py +592 -0
  298. mdrack-1.3.0/tests/core/test_fusion.py +131 -0
  299. mdrack-1.3.0/tests/core/test_indexing.py +645 -0
  300. mdrack-1.3.0/tests/core/test_metadata_facet_contract.py +115 -0
  301. mdrack-1.3.0/tests/core/test_observability.py +195 -0
  302. mdrack-1.3.0/tests/core/test_resource_discovery.py +383 -0
  303. mdrack-1.3.0/tests/core/test_resource_store_contract.py +321 -0
  304. mdrack-1.3.0/tests/core/test_retrieval.py +589 -0
  305. mdrack-1.3.0/tests/core/test_shared_contracts.py +372 -0
  306. mdrack-1.3.0/tests/core/test_v11_contract_freeze.py +96 -0
  307. mdrack-1.3.0/tests/e2e/__init__.py +0 -0
  308. mdrack-1.3.0/tests/e2e/conftest.py +11 -0
  309. mdrack-1.3.0/tests/e2e/test_cli_embedded_retrieval_parity.py +53 -0
  310. mdrack-1.3.0/tests/e2e/test_embedded_api.py +121 -0
  311. mdrack-1.3.0/tests/e2e/test_hybrid_offline_api.py +31 -0
  312. mdrack-1.3.0/tests/e2e/test_model_switch_virtual_store.py +331 -0
  313. mdrack-1.3.0/tests/e2e/test_one_store_acceptance_runner.py +225 -0
  314. mdrack-1.3.0/tests/e2e/test_one_store_contract.py +1121 -0
  315. mdrack-1.3.0/tests/e2e/test_smoke_fake_embeddings.py +132 -0
  316. mdrack-1.3.0/tests/e2e/test_transcript_workflow.py +153 -0
  317. mdrack-1.3.0/tests/e2e/test_v11_public_api_cli_parity.py +186 -0
  318. mdrack-1.3.0/tests/e2e/test_v11_similarity_workflow.py +178 -0
  319. mdrack-1.3.0/tests/e2e/test_video_workflow.py +190 -0
  320. mdrack-1.3.0/tests/e2e/v1_1/conftest.py +7 -0
  321. mdrack-1.3.0/tests/evaluation/benchmark-v1/manifest.json +82 -0
  322. mdrack-1.3.0/tests/evaluation/contract_validator.py +853 -0
  323. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-31.json +21 -0
  324. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-32.json +21 -0
  325. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-33.json +21 -0
  326. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-34.json +21 -0
  327. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-35.json +21 -0
  328. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-36.json +21 -0
  329. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-37.json +21 -0
  330. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-38.json +21 -0
  331. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-39.json +21 -0
  332. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-40.json +21 -0
  333. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-01.md +7 -0
  334. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-02.md +7 -0
  335. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-03.md +7 -0
  336. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-04.md +7 -0
  337. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-05.md +7 -0
  338. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-06.md +7 -0
  339. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-07.md +7 -0
  340. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-08.md +7 -0
  341. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-09.md +7 -0
  342. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-10.md +7 -0
  343. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-11.md +7 -0
  344. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-12.md +7 -0
  345. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-13.md +7 -0
  346. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-14.md +7 -0
  347. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-15.md +7 -0
  348. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-16.md +7 -0
  349. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-17.md +7 -0
  350. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-18.md +7 -0
  351. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-19.md +7 -0
  352. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-20.md +7 -0
  353. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-21.json +5 -0
  354. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-22.json +5 -0
  355. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-23.json +5 -0
  356. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-24.json +5 -0
  357. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-25.json +5 -0
  358. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-26.json +5 -0
  359. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-27.json +5 -0
  360. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-28.json +5 -0
  361. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-29.json +5 -0
  362. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-30.json +5 -0
  363. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-41.json +33 -0
  364. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-42.json +33 -0
  365. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-43.json +33 -0
  366. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-44.json +33 -0
  367. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-45.json +33 -0
  368. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-46.json +22 -0
  369. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-47.json +22 -0
  370. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-48.json +22 -0
  371. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-49.json +22 -0
  372. mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-50.json +22 -0
  373. mdrack-1.3.0/tests/evaluation/corpus-v1/manifest.json +1963 -0
  374. mdrack-1.3.0/tests/evaluation/generate_fixture.py +577 -0
  375. mdrack-1.3.0/tests/evaluation/queries-v1/queries.json +8417 -0
  376. mdrack-1.3.0/tests/evaluation/schemas/benchmark-v1.schema.json +46 -0
  377. mdrack-1.3.0/tests/evaluation/schemas/corpus-v1.schema.json +117 -0
  378. mdrack-1.3.0/tests/evaluation/schemas/queries-v1.schema.json +143 -0
  379. mdrack-1.3.0/tests/evaluation/test_public_contract.py +741 -0
  380. mdrack-1.3.0/tests/evaluation/test_timed_grouping_runner.py +79 -0
  381. mdrack-1.3.0/tests/evaluation/v1_1/capability-dod-map.json +36 -0
  382. mdrack-1.3.0/tests/evaluation/v1_1/freeze-manifest.json +130 -0
  383. mdrack-1.3.0/tests/evaluation/v1_1/runtime-contract.json +57 -0
  384. mdrack-1.3.0/tests/evaluation/v1_1/test_fixture_freeze.py +71 -0
  385. mdrack-1.3.0/tests/external_core_consumer/test_memory_catalog_consumer.py +168 -0
  386. mdrack-1.3.0/tests/fixtures/baseline_corpus/indexing-ru.md +22 -0
  387. mdrack-1.3.0/tests/fixtures/baseline_corpus/privacy-mixed.md +11 -0
  388. mdrack-1.3.0/tests/fixtures/baseline_corpus/retrieval-en.md +20 -0
  389. mdrack-1.3.0/tests/fixtures/core_multimodal/expected.json +188 -0
  390. mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/indexing-ru.md +22 -0
  391. mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/privacy-mixed.md +11 -0
  392. mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/retrieval-en.md +20 -0
  393. mdrack-1.3.0/tests/fixtures/future_host/host_consumer.py +204 -0
  394. mdrack-1.3.0/tests/fixtures/future_host/pyproject.toml +16 -0
  395. mdrack-1.3.0/tests/fixtures/markdown/code_blocks.md +23 -0
  396. mdrack-1.3.0/tests/fixtures/markdown/frontmatter.md +10 -0
  397. mdrack-1.3.0/tests/fixtures/markdown/mixed_content.md +25 -0
  398. mdrack-1.3.0/tests/fixtures/markdown/simple_headings.md +7 -0
  399. mdrack-1.3.0/tests/fixtures/markdown_real/README.md +21 -0
  400. mdrack-1.3.0/tests/fixtures/markdown_real/sample.md +25 -0
  401. mdrack-1.3.0/tests/fixtures/one_store_v1/images/image-copy.png +0 -0
  402. mdrack-1.3.0/tests/fixtures/one_store_v1/images/image.png +0 -0
  403. mdrack-1.3.0/tests/fixtures/one_store_v1/manifest.json +93 -0
  404. mdrack-1.3.0/tests/fixtures/one_store_v1/markdown/note.md +7 -0
  405. mdrack-1.3.0/tests/fixtures/one_store_v1/markdown/post-init.md +3 -0
  406. mdrack-1.3.0/tests/fixtures/one_store_v1/prepared/image-caption-ocr.json +13 -0
  407. mdrack-1.3.0/tests/fixtures/one_store_v1/privacy-sentinels.json +12 -0
  408. mdrack-1.3.0/tests/fixtures/one_store_v1/queries.json +61 -0
  409. mdrack-1.3.0/tests/fixtures/one_store_v1/transcripts/audio-near.whisper.json +14 -0
  410. mdrack-1.3.0/tests/fixtures/one_store_v1/transcripts/audio.whisper.json +14 -0
  411. mdrack-1.3.0/tests/fixtures/one_store_v1/video/video-resource-near.json +87 -0
  412. mdrack-1.3.0/tests/fixtures/one_store_v1/video/video-resource.json +108 -0
  413. mdrack-1.3.0/tests/fixtures/raw_source_provenance/text.txt +1 -0
  414. mdrack-1.3.0/tests/fixtures/raw_source_provenance/tiny.png +0 -0
  415. mdrack-1.3.0/tests/fixtures/structural_chunking/adversarial_media.md +7 -0
  416. mdrack-1.3.0/tests/fixtures/structural_chunking/code_fallbacks.md +16 -0
  417. mdrack-1.3.0/tests/fixtures/structural_chunking/crlf.md +5 -0
  418. mdrack-1.3.0/tests/fixtures/structural_chunking/expected.json +26 -0
  419. mdrack-1.3.0/tests/fixtures/structural_chunking/long_prose.md +3 -0
  420. mdrack-1.3.0/tests/fixtures/structural_chunking/multilingual.md +13 -0
  421. mdrack-1.3.0/tests/fixtures/structural_chunking/oversized_lines.md +11 -0
  422. mdrack-1.3.0/tests/fixtures/structural_chunking/python_valid.md +24 -0
  423. mdrack-1.3.0/tests/fixtures/structural_chunking/structures.md +25 -0
  424. mdrack-1.3.0/tests/integration/__init__.py +0 -0
  425. mdrack-1.3.0/tests/integration/test_artifact_cache.py +167 -0
  426. mdrack-1.3.0/tests/integration/test_builtin_exact_benchmark_harness.py +123 -0
  427. mdrack-1.3.0/tests/integration/test_builtin_exact_vector_backend.py +220 -0
  428. mdrack-1.3.0/tests/integration/test_embedding_profile_storage.py +117 -0
  429. mdrack-1.3.0/tests/integration/test_embedding_truthfulness_paths.py +144 -0
  430. mdrack-1.3.0/tests/integration/test_fts_index.py +212 -0
  431. mdrack-1.3.0/tests/integration/test_hybrid_search.py +371 -0
  432. mdrack-1.3.0/tests/integration/test_image_ingestion.py +672 -0
  433. mdrack-1.3.0/tests/integration/test_indexer_fake_embeddings.py +163 -0
  434. mdrack-1.3.0/tests/integration/test_indexing_parser_selection.py +60 -0
  435. mdrack-1.3.0/tests/integration/test_indexing_reliability.py +303 -0
  436. mdrack-1.3.0/tests/integration/test_logical_id_lifecycle.py +139 -0
  437. mdrack-1.3.0/tests/integration/test_markdown_metadata_preservation.py +120 -0
  438. mdrack-1.3.0/tests/integration/test_markdown_projection_pipeline.py +160 -0
  439. mdrack-1.3.0/tests/integration/test_metadata_filter_parity.py +200 -0
  440. mdrack-1.3.0/tests/integration/test_metadata_lexical_search.py +256 -0
  441. mdrack-1.3.0/tests/integration/test_raw_text_ingestion.py +27 -0
  442. mdrack-1.3.0/tests/integration/test_repositories.py +251 -0
  443. mdrack-1.3.0/tests/integration/test_resource_core_sqlite.py +744 -0
  444. mdrack-1.3.0/tests/integration/test_semantic_search_fake.py +216 -0
  445. mdrack-1.3.0/tests/integration/test_source_locator_parity.py +59 -0
  446. mdrack-1.3.0/tests/integration/test_sqlite_catalog_api.py +352 -0
  447. mdrack-1.3.0/tests/integration/test_sqlite_clean_migrations.py +529 -0
  448. mdrack-1.3.0/tests/integration/test_sqlite_migrations.py +482 -0
  449. mdrack-1.3.0/tests/integration/test_sqlite_vector_backend_strategy.py +287 -0
  450. mdrack-1.3.0/tests/integration/test_text_search.py +212 -0
  451. mdrack-1.3.0/tests/integration/test_transcript_ingestion.py +742 -0
  452. mdrack-1.3.0/tests/integration/test_unified_retrieval.py +89 -0
  453. mdrack-1.3.0/tests/integration/test_v11_textual_similarity.py +222 -0
  454. mdrack-1.3.0/tests/integration/test_vector_codecs.py +71 -0
  455. mdrack-1.3.0/tests/integration/test_vector_index_fake.py +216 -0
  456. mdrack-1.3.0/tests/integration/test_video_composition.py +593 -0
  457. mdrack-1.3.0/tests/media/test_audio_builder.py +251 -0
  458. mdrack-1.3.0/tests/media/test_frame_builder.py +199 -0
  459. mdrack-1.3.0/tests/media/test_media_contracts.py +687 -0
  460. mdrack-1.3.0/tests/media/test_media_retrieval.py +203 -0
  461. mdrack-1.3.0/tests/media/test_timed_grouper.py +380 -0
  462. mdrack-1.3.0/tests/media/test_whole_resource_similarity.py +113 -0
  463. mdrack-1.3.0/tests/packaging/test_core_distribution.py +67 -0
  464. mdrack-1.3.0/tests/packaging/test_future_host_consumer.py +68 -0
  465. mdrack-1.3.0/tests/packaging/test_media_distribution.py +86 -0
  466. mdrack-1.3.0/tests/packaging/test_sqlite_distribution.py +94 -0
  467. mdrack-1.3.0/tests/privacy/v1_1/sentinels.json +36 -0
  468. mdrack-1.3.0/tests/privacy/v1_1/test_frozen_sentinels.py +46 -0
  469. mdrack-1.3.0/tests/privacy_oracle.py +107 -0
  470. mdrack-1.3.0/tests/render_chunk_debug.py +170 -0
  471. mdrack-1.3.0/tests/retrieval_eval/baseline_queries.yaml +27 -0
  472. mdrack-1.3.0/tests/retrieval_eval/queries.yaml +17 -0
  473. mdrack-1.3.0/tests/test_version.py +10 -0
  474. mdrack-1.3.0/tests/unit/__init__.py +1 -0
  475. mdrack-1.3.0/tests/unit/conftest.py +11 -0
  476. mdrack-1.3.0/tests/unit/test_artifact_cache.py +154 -0
  477. mdrack-1.3.0/tests/unit/test_baseline_harness.py +230 -0
  478. mdrack-1.3.0/tests/unit/test_change_detector.py +238 -0
  479. mdrack-1.3.0/tests/unit/test_chunk_audit.py +223 -0
  480. mdrack-1.3.0/tests/unit/test_chunk_builder.py +397 -0
  481. mdrack-1.3.0/tests/unit/test_config.py +299 -0
  482. mdrack-1.3.0/tests/unit/test_core_boundaries.py +267 -0
  483. mdrack-1.3.0/tests/unit/test_embedding_profiles.py +113 -0
  484. mdrack-1.3.0/tests/unit/test_embedding_text.py +129 -0
  485. mdrack-1.3.0/tests/unit/test_eval_metrics.py +38 -0
  486. mdrack-1.3.0/tests/unit/test_eval_privacy.py +68 -0
  487. mdrack-1.3.0/tests/unit/test_eval_quality.py +109 -0
  488. mdrack-1.3.0/tests/unit/test_eval_queries.py +172 -0
  489. mdrack-1.3.0/tests/unit/test_eval_report_contracts.py +97 -0
  490. mdrack-1.3.0/tests/unit/test_eval_retrieval.py +185 -0
  491. mdrack-1.3.0/tests/unit/test_fake_embeddings.py +252 -0
  492. mdrack-1.3.0/tests/unit/test_forbidden_deps.py +17 -0
  493. mdrack-1.3.0/tests/unit/test_hybrid_retrieval.py +74 -0
  494. mdrack-1.3.0/tests/unit/test_hybrid_scoring.py +341 -0
  495. mdrack-1.3.0/tests/unit/test_json_output.py +27 -0
  496. mdrack-1.3.0/tests/unit/test_live_lmstudio_eval.py +216 -0
  497. mdrack-1.3.0/tests/unit/test_lmstudio_provider.py +712 -0
  498. mdrack-1.3.0/tests/unit/test_markdown_image_projection.py +362 -0
  499. mdrack-1.3.0/tests/unit/test_markdown_ir.py +282 -0
  500. mdrack-1.3.0/tests/unit/test_markdown_it_parser.py +217 -0
  501. mdrack-1.3.0/tests/unit/test_markdown_parser.py +350 -0
  502. mdrack-1.3.0/tests/unit/test_mdrack_skill.py +107 -0
  503. mdrack-1.3.0/tests/unit/test_metadata_filters.py +71 -0
  504. mdrack-1.3.0/tests/unit/test_metadata_lexical.py +135 -0
  505. mdrack-1.3.0/tests/unit/test_metadata_normalization.py +148 -0
  506. mdrack-1.3.0/tests/unit/test_metadata_privacy.py +100 -0
  507. mdrack-1.3.0/tests/unit/test_metadata_projection.py +146 -0
  508. mdrack-1.3.0/tests/unit/test_metadata_transport.py +209 -0
  509. mdrack-1.3.0/tests/unit/test_model_ports.py +22 -0
  510. mdrack-1.3.0/tests/unit/test_offline_release_matrix.py +249 -0
  511. mdrack-1.3.0/tests/unit/test_offline_scripts.py +40 -0
  512. mdrack-1.3.0/tests/unit/test_optional_provider_contracts.py +129 -0
  513. mdrack-1.3.0/tests/unit/test_prepared_resource_manifest.py +520 -0
  514. mdrack-1.3.0/tests/unit/test_privacy_evidence_oracle.py +279 -0
  515. mdrack-1.3.0/tests/unit/test_raw_audio_ingestion.py +117 -0
  516. mdrack-1.3.0/tests/unit/test_raw_source_provenance.py +308 -0
  517. mdrack-1.3.0/tests/unit/test_raw_text_ingestion.py +50 -0
  518. mdrack-1.3.0/tests/unit/test_raw_video_ingestion.py +64 -0
  519. mdrack-1.3.0/tests/unit/test_release_publication.py +433 -0
  520. mdrack-1.3.0/tests/unit/test_s6_core_compatibility.py +268 -0
  521. mdrack-1.3.0/tests/unit/test_s8_failure_matrix.py +322 -0
  522. mdrack-1.3.0/tests/unit/test_s8_privacy_contracts.py +203 -0
  523. mdrack-1.3.0/tests/unit/test_scanner.py +172 -0
  524. mdrack-1.3.0/tests/unit/test_section_builder.py +97 -0
  525. mdrack-1.3.0/tests/unit/test_source_locator.py +66 -0
  526. mdrack-1.3.0/tests/unit/test_structural_chunking.py +272 -0
  527. mdrack-1.3.0/tests/unit/test_structural_chunking_golden.py +345 -0
  528. mdrack-1.3.0/tests/unit/test_unified_text_resources.py +426 -0
  529. mdrack-1.3.0/tests/unit/test_v11_application_contracts.py +85 -0
  530. mdrack-1.3.0/tests/unit/test_v11_search_presets.py +310 -0
  531. mdrack-1.3.0/tests/unit/test_v12_release_contract.py +49 -0
  532. mdrack-1.3.0/tests/unit/test_v13_release_contract.py +290 -0
  533. mdrack-1.3.0/tests/unit/test_v13_sqlite_vec_nonpromotion.py +104 -0
  534. mdrack-1.3.0/tests/unit/test_vector_value_policy.py +64 -0
  535. mdrack-1.3.0/tests/unit/transcripts/test_readers.py +249 -0
  536. mdrack-1.3.0/uv.lock +696 -0
@@ -0,0 +1 @@
1
+ * text=auto eol=lf
@@ -0,0 +1,90 @@
1
+ name: offline-release-matrix
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ release:
12
+ name: ${{ matrix.os }} / Python ${{ matrix.python-version }}
13
+ runs-on: ${{ matrix.os }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ os: [ubuntu-latest, windows-latest]
18
+ python-version: ['3.11', '3.12']
19
+ env:
20
+ UV_NO_PROGRESS: '1'
21
+ GIT_CONFIG_COUNT: '1'
22
+ GIT_CONFIG_KEY_0: core.autocrlf
23
+ GIT_CONFIG_VALUE_0: 'false'
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ with:
27
+ fetch-depth: 0
28
+ - uses: astral-sh/setup-uv@v5
29
+ with:
30
+ version: '0.11.15'
31
+ python-version: ${{ matrix.python-version }}
32
+ enable-cache: true
33
+ - name: Install development environment from lock
34
+ shell: bash
35
+ run: |
36
+ uv lock --check
37
+ uv sync --all-extras --frozen
38
+ - name: Enter offline verification boundary
39
+ shell: bash
40
+ run: echo "UV_OFFLINE=1" >> "$GITHUB_ENV"
41
+ - name: Ruff gate
42
+ shell: bash
43
+ run: uv run ruff check src/ tests/ packages/mdrack-core/src/ packages/mdrack-media/src/ packages/mdrack-sqlite/src/
44
+ - name: Mypy gate
45
+ shell: bash
46
+ run: uv run mypy packages/mdrack-core/src/mdrack_core packages/mdrack-sqlite/src/mdrack_sqlite
47
+ - name: Unit and integration gate
48
+ if: runner.os == 'Linux'
49
+ shell: bash
50
+ run: uv run pytest -m 'not e2e and not privacy'
51
+ - name: Windows package contract gate
52
+ if: runner.os == 'Windows'
53
+ shell: bash
54
+ run: uv run pytest tests/unit/test_offline_release_matrix.py tests/unit/test_v13_release_contract.py
55
+ - name: Offline E2E gate
56
+ if: runner.os == 'Linux'
57
+ shell: bash
58
+ run: uv run pytest -m e2e
59
+ - name: Privacy gate
60
+ if: runner.os == 'Linux'
61
+ shell: bash
62
+ run: uv run pytest -m privacy
63
+ - name: Dependency and architecture gates
64
+ shell: bash
65
+ run: |
66
+ uv run python scripts/check_no_forbidden_deps.py
67
+ uv run python scripts/check_core_boundaries.py
68
+ uv run python scripts/check_sqlite_boundaries.py
69
+ uv run python scripts/check_media_boundaries.py
70
+ uv run python -m compileall -q scripts src packages/mdrack-core/src packages/mdrack-media/src packages/mdrack-sqlite/src
71
+ - name: Build and audit all distributions offline
72
+ shell: bash
73
+ run: uv run python scripts/offline_release_matrix.py --output-dir "${{ runner.temp }}/mdrack-release-artifacts" --smoke --allow-index-for-smoke-provisioning
74
+ - name: Documentation and whitespace gates
75
+ if: runner.os == 'Linux'
76
+ shell: bash
77
+ run: |
78
+ uv run python scripts/check_v13_release_packet.py --artifacts-dir "${{ runner.temp }}/mdrack-release-artifacts"
79
+ git diff --check
80
+ - name: Windows artifact evidence gate
81
+ if: runner.os == 'Windows'
82
+ shell: bash
83
+ run: |
84
+ uv run python scripts/check_v13_release_packet.py --skip-quality-replay --artifacts-dir "${{ runner.temp }}/mdrack-release-artifacts"
85
+ git diff --check
86
+ - name: Upload release evidence
87
+ uses: actions/upload-artifact@v4
88
+ with:
89
+ name: release-${{ matrix.os }}-py${{ matrix.python-version }}
90
+ path: ${{ runner.temp }}/mdrack-release-artifacts/
@@ -0,0 +1,52 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.egg-info/
6
+ dist/
7
+ build/
8
+ *.egg
9
+
10
+ # Virtual environments
11
+ .venv/
12
+ venv/
13
+
14
+ # uv
15
+ .python-version
16
+
17
+ # IDE
18
+ .idea/
19
+ .vscode/
20
+ *.swp
21
+ *.swo
22
+
23
+ # OS
24
+ Thumbs.db
25
+ Desktop.ini
26
+ .DS_Store
27
+
28
+ # Logs and local agent/evaluation artifacts
29
+ *.log
30
+ logs/
31
+ .local-reports/
32
+ .serena/
33
+
34
+ # Debug
35
+ md_writer_debug.log
36
+
37
+ # SQLite (generated, not source)
38
+ *.sqlite
39
+ *.sqlite3
40
+ .mdrack/
41
+
42
+ # User reference materials (not part of MDRack source)
43
+ tests/Агенты Hermes/
44
+ tests/*.md
45
+
46
+ # Environment
47
+ .env
48
+ .env.*
49
+
50
+ # The root application lock is committed; nested experimental package locks stay local.
51
+ **/uv.lock
52
+ !/uv.lock
mdrack-1.3.0/AGENTS.md ADDED
@@ -0,0 +1,111 @@
1
+ # AGENTS.md — MDRack agent router
2
+
3
+ ## Project
4
+
5
+ MDRack is a local Python 3.11+ CLI and embedded library for indexing Markdown,
6
+ storing structural metadata and search indexes in SQLite, creating embeddings
7
+ through an LM Studio HTTP endpoint, and returning stable JSON retrieval results.
8
+
9
+ - Repository/workdir: repository root of the current checkout
10
+ - Kanban board: `mdrack`
11
+ - Package manager: `uv`
12
+ - Persistent database: SQLite only
13
+ - Public entry points: Click CLI and `MDRackEngine`
14
+
15
+ ## Start here
16
+
17
+ 1. Read this router.
18
+ 2. Inspect `git status --short`; preserve unrelated changes.
19
+ 3. Load only instructions matching the files and operation below.
20
+ 4. Treat current code and migrations as authoritative over prose and historical plans.
21
+ 5. Make the smallest scoped change and verify it with real commands.
22
+
23
+ ## Setup and verification
24
+
25
+ ```bash
26
+ uv sync --all-extras
27
+ uv run pytest
28
+ uv run ruff check src/ tests/
29
+ uv run ruff check packages/mdrack-core/src/ packages/mdrack-sqlite/src/
30
+ uv run mypy packages/mdrack-core/src/mdrack_core packages/mdrack-sqlite/src/mdrack_sqlite
31
+ uv run python scripts/check_no_forbidden_deps.py
32
+ uv run python scripts/check_core_boundaries.py
33
+ uv run python scripts/check_sqlite_boundaries.py
34
+ git diff --check
35
+ ```
36
+
37
+ Use `uv run` for Python commands. Do not use the system `pip` or create an
38
+ untracked package-manager workflow.
39
+
40
+ ## Instruction routing
41
+
42
+ | Trigger or scope | Load |
43
+ |---|---|
44
+ | Architecture, module boundaries, public surfaces, dependency direction | `instructions/ARCH.system.instructions.md` |
45
+ | SQLite schema, migrations, repositories, FTS, vectors, assets, identity | `instructions/DATA.sqlite.instructions.md` |
46
+ | Tests, fixtures, quality gates, evidence claims | `instructions/TEST.quality-gates.instructions.md` |
47
+ | Current architecture docs, diagrams, links, historical/current labeling | `instructions/DOCS.architecture.instructions.md` |
48
+ | Create or edit `AGENTS.md` or `instructions/` | `instructions/DOCS.instruction-style-guide.instructions.md` |
49
+ | Investigate, plan, estimate, or decompose without implementation | `instructions/WORKFLOW.plan-orchestration.instructions.md` |
50
+ | Implement, fix, refactor, or edit project files | `instructions/WORKFLOW.build-orchestration.instructions.md` |
51
+ | Commit, merge, switch branch, resolve conflicts, push, or alter history | `instructions/WORKFLOW.git-safety.instructions.md` |
52
+ | Turn requirements into an implementation-ready specification | `instructions/WORKFLOW.requirements-to-spec.instructions.md` |
53
+ | Add, change, or audit logging and diagnostics | `instructions/OBS.logging.instructions.md` |
54
+ | Explicit visual/image inspection or MCP-assisted visual evidence | `instructions/TOOLING.mcp-instrument.instructions.md` |
55
+
56
+ More-specific instructions override broader workflow guidance. If an instruction
57
+ contradicts verified code, stop, follow the code for the immediate task, and repair
58
+ the stale instruction in the same documentation slice when allowed.
59
+
60
+ ## Product invariants
61
+
62
+ - Application services normally depend on domain types and ports; adapters implement ports.
63
+ The current bounded exception is `IndexingService`, which imports and constructs
64
+ `MarkdownItParser` as its default when no parser is injected. Do not broaden this
65
+ concrete dependency; changing it requires a scoped architecture task.
66
+ - Click must not leak into `MDRackEngine` or application/domain code.
67
+ - SQLite is the only persistent database. Do not add a vector database.
68
+ - `packages/mdrack-sqlite/` is the single generic resource catalog/search adapter
69
+ owner; app compatibility paths delegate/re-export and package code never imports `mdrack`.
70
+ - Embeddings use LM Studio over HTTP. Do not add `torch`, `transformers`,
71
+ `sentence-transformers`, or direct model loading.
72
+ - Indexing must not modify source Markdown or fetch external assets.
73
+ - Public retrieval uses logical identities and portable source locators. Do not
74
+ expose new SQLite record IDs as public contracts.
75
+ - Production reranking remains unsupported unless an approved architecture change
76
+ updates code, tests, contracts, ADRs, and instructions together.
77
+ - Do not add a GUI, web server, or MCP server to MDRack.
78
+ - Keep PEP 8, type hints, and justified `# noqa` usage.
79
+ - Production code uses `logging`; stdout is reserved for documented CLI output.
80
+ - Never commit credentials, user content, absolute private paths, databases,
81
+ generated indexes, logs, caches, or vault material.
82
+
83
+ ## Source-of-truth hierarchy
84
+
85
+ 1. Runtime behavior and public tests.
86
+ 2. SQL migrations `src/mdrack/storage/sqlite/migrations/0000...` onward.
87
+ 3. Domain types, ports, application services, adapters, CLI, and public API.
88
+ 4. Current architecture and contract documentation.
89
+ 5. Historical plans, which explain intent but not current behavior.
90
+
91
+ Current contract references include `docs/cli-contracts.md` and
92
+ `docs/decisions/0001-reranking-deferred.md`. Files under `docs/plans/` and legacy
93
+ root plans are historical unless explicitly marked active for the current task.
94
+
95
+ ## Change discipline
96
+
97
+ - Respect the active task's editable/read-only boundaries.
98
+ - Do not add features outside the approved scope or dependencies without a recorded reason.
99
+ - Update schema documentation and migration notes with every schema change.
100
+ - Update routing whenever an instruction is added, renamed, or removed.
101
+ - Update current documentation when architecture, public contracts, limitations,
102
+ or verification commands change.
103
+ - Do not claim live, external, or full-suite evidence that was not actually run.
104
+
105
+ ## Git boundary
106
+
107
+ Read-only Git inspection is allowed. Commits, pushes, branch changes, merges,
108
+ rebases, resets, staging, and history edits require explicit task/user scope and
109
+ `WORKFLOW.git-safety.instructions.md`. Never initialize, commit, or push merely
110
+ because the repository exists; this repository has an `origin`, but remote state
111
+ must be checked live before any remote claim.
mdrack-1.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VladimirMonin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
mdrack-1.3.0/PKG-INFO ADDED
@@ -0,0 +1,200 @@
1
+ Metadata-Version: 2.5
2
+ Name: mdrack
3
+ Version: 1.3.0
4
+ Summary: Local command-line Markdown knowledge rack for AI agents
5
+ License-Expression: MIT
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.11
8
+ Requires-Dist: click>=8.1
9
+ Requires-Dist: httpx>=0.27
10
+ Requires-Dist: markdown-it-py>=4.0
11
+ Requires-Dist: mdrack-core==1.0.0rc1
12
+ Requires-Dist: mdrack-media==1.0.0rc1
13
+ Requires-Dist: mdrack-sqlite==1.0.0rc2
14
+ Requires-Dist: pydantic>=2.0
15
+ Requires-Dist: pyyaml>=6.0.3
16
+ Requires-Dist: rich>=13.0
17
+ Requires-Dist: toml>=0.10
18
+ Provides-Extra: dev
19
+ Requires-Dist: mypy>=1.10; extra == 'dev'
20
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
21
+ Requires-Dist: pytest>=8.0; extra == 'dev'
22
+ Requires-Dist: ruff>=0.4; extra == 'dev'
23
+ Description-Content-Type: text/markdown
24
+
25
+ # MDRack
26
+
27
+ MDRack 1.3.0 is a local Python 3.11+ command-line and embedded retrieval rack for
28
+ Markdown, typed metadata, timed transcripts, frame-caption text, and explicitly
29
+ supplied images. Its primary operational user is an agent working under a human
30
+ operator's explicit authority over locally held data.
31
+
32
+ The application depends on standalone `mdrack-core` and `mdrack-sqlite`
33
+ distributions. The first is the stdlib-only provider/persistence-neutral kernel;
34
+ the second is the stdlib-plus-core generic resource catalog/search adapter. The
35
+ `mdrack` distribution owns Markdown/image ingestion, app migration generations,
36
+ LM Studio integration, Click JSON commands, and `MDRackEngine`; it vendors neither
37
+ package.
38
+
39
+ ## Quick start
40
+
41
+ ```bash
42
+ uv sync --all-extras
43
+ uv run mdrack --help
44
+ uv run mdrack guide
45
+ mkdir -p ./notes
46
+ uv run mdrack --root ./notes init
47
+ uv run mdrack --root ./notes scan --provider fake
48
+ uv run mdrack --root ./notes search "architecture" --mode text
49
+ ```
50
+
51
+ This is an offline installation smoke: fake embeddings are deterministic test
52
+ data, not semantic-quality evidence. Configure LM Studio before ordinary
53
+ semantic or hybrid use; see [Getting started](docs/getting-started.md) and the
54
+ [CLI guide](docs/getting-started.md#static-cli-guide).
55
+
56
+ ## Agent-first work with human data
57
+
58
+ For a real task, an agent first identifies whether it is using the source-checkout
59
+ command (`uv run mdrack`) or an already installed `mdrack` command, then asks for
60
+ an explicit data root and the exact operation to perform. Keep private sources
61
+ outside this repository and out of shell history, reports, and commits. The static
62
+ guide and `--help` are read-only discovery steps; `init`, `scan`, explicit ingest,
63
+ rebuild, delete, and provider/model actions change derived local state and must be
64
+ named and authorized before the agent runs them.
65
+
66
+ An authorized workflow can scan Markdown in the chosen root or ingest one selected
67
+ raw text/Markdown file, image with caller-supplied text, WAVE file, or ISO-BMFF
68
+ video. The WAVE and ISO-BMFF paths require the caller to opt in to a selected local
69
+ adapter executable; MDRack does not provide built-in transcription, decoding, or
70
+ visual analysis. Search by text and optional scope, retain only returned logical
71
+ IDs and portable locators or time/line evidence, then use a new CLI process with
72
+ the same root to run `status` against the same derived store. Source files remain
73
+ unchanged. The complete safe sequence and its evidence boundary are in
74
+ [Getting started](docs/getting-started.md#agent-workflow-for-authorized-human-data),
75
+ [operations](docs/operations.md#agent-workflow-and-private-data), and the shipped
76
+ [MDRack agent skill](skills/mdrack/SKILL.md).
77
+
78
+ A real acceptance claim is stronger than this quick start: it requires an agent to
79
+ exercise the installed public surface with separately authorized human-like private
80
+ data while checking source immutability and privacy. Synthetic/offline checks are
81
+ supporting evidence only; they do not substitute for that run.
82
+
83
+ The CLI also provides read, files, status, doctor, rebuild, eval, and
84
+ LM Studio model-management commands. Host applications can use
85
+ `MDRackEngine` without importing Click.
86
+
87
+ ## How it works
88
+
89
+ 1. The default markdown-it adapter parses UTF-8 Markdown into source blocks
90
+ with H1–H6 heading paths and exact line/character provenance.
91
+ 2. Markdown image syntax contributes only safe textual alt/alias prose; paths and
92
+ referenced files are never inspected or indexed as assets.
93
+ 3. The app projects documents into typed core resources and writes a complete
94
+ graph atomically to the fixed SQLite catalog at `<store>/catalog.sqlite3`.
95
+ 4. Core retrieval accepts ready lexical/vector branches, applies scope filters
96
+ before limits, groups resource evidence, and performs deterministic weighted RRF.
97
+ 5. Explicit image ingestion stores derived caption/OCR text and ready vectors,
98
+ never source bytes; duplicate and whole-resource similarity use logical IDs.
99
+
100
+ ## Documentation
101
+
102
+ - [Getting started: installation, configuration, CLI, and engine](docs/getting-started.md)
103
+ - [MDRack agent skill](skills/mdrack/SKILL.md) — self-contained terminal workflow
104
+ - [Operations, diagnostics, privacy, and troubleshooting](docs/operations.md)
105
+ - [Development guide for humans and coding agents](docs/development.md)
106
+ - [Current architecture index](docs/current-architecture/README.md)
107
+ - [System overview](docs/current-architecture/system-overview.md)
108
+ - [Indexing and structural chunking](docs/current-architecture/indexing-and-chunking.md)
109
+ - [SQLite persistence and current schema](docs/current-architecture/sqlite-persistence.md)
110
+ - [Text, semantic, and hybrid retrieval](docs/current-architecture/retrieval.md)
111
+ - [Asset handling](docs/current-architecture/assets.md)
112
+ - [CLI and embedded interfaces](docs/current-architecture/public-interfaces.md)
113
+ - [Current limitations](docs/current-architecture/limitations.md)
114
+ - [Completed MDRack 1.3 compact-storage plan (historical)](docs/plans/2026-07-24-v1.3-compact-storage-sqlite-vec.md)
115
+ - [MDRack 1.3.0 release notes and source-publication status](docs/release-1.3.md)
116
+ - [MDRack 1.1 local release](docs/release-1.1.md)
117
+ - [CLI contracts](docs/cli-contracts.md)
118
+ - [v0.3 compatibility registry](docs/compatibility/v0.3-compatibility-registry.md)
119
+ - [Recovery procedures](docs/recovery.md)
120
+ - [ADR-0001: reranking deferred](docs/decisions/0001-reranking-deferred.md)
121
+ - [ADR-0002: provider/storage-neutral core](docs/decisions/0002-provider-storage-neutral-core.md)
122
+ - [ADR-0004: SQLite operating envelope](docs/decisions/0004-sqlite-operating-envelope.md)
123
+ - [Offline release verification](docs/offline-release-verification.md) — supported distribution cells, matrix evidence, and strict no-live gates
124
+ - [Licensing and commercial use](docs/licensing.md) — MIT policy, commercial-use boundary, and Windows bundle gate
125
+ - [Third-party runtime notices](THIRD_PARTY_NOTICES.md) — exact locked resolver graph and upstream-license obligations
126
+ - [v0.4 W5-CI contract](docs/contracts/v0.4-w5-ci-contract.md)
127
+ - [v0.4 offline release-candidate packet](docs/evidence/v0.4-release-packet.md) — exact stage/release/DoD evidence and non-claims
128
+ - [v0.4 public-surface compatibility ledger](docs/compatibility/v0.4-public-surface-ledger.json)
129
+ - [v0.3 release evidence](docs/evidence/v0.3-release-gate.md)
130
+
131
+ Files under `docs/plans/` and the legacy architecture/design documents are
132
+ historical unless explicitly marked as an active plan. They are not the current
133
+ product contract.
134
+
135
+ ## Images
136
+
137
+ Markdown image syntax never starts image ingestion. It preserves eligible alt or
138
+ textual alias once as ordinary prose and discards target/path/title/dimensions.
139
+ `mdrack image ingest` is a separate explicit local-file operation. Caption/OCR
140
+ text is caller-supplied or produced by an injected extractor; live LM Studio use
141
+ requires an explicit provider choice. Source bytes remain outside SQLite and are
142
+ never modified.
143
+
144
+ ## Known limitations
145
+
146
+ - SQLite is the only persistent database. Fresh compact generations use canonical
147
+ float32 vectors and the builtin exact Python scan; there is no ANN/vector
148
+ extension dependency in the base distribution.
149
+ - Structural `overlap_chars` is currently not consumed, so structural chunks do
150
+ not overlap.
151
+ - Production reranking is disabled. `rerank_rank` and `rerank_score` remain
152
+ `null`; non-null reranker injection fails closed.
153
+ - MDRack indexes supplied transcripts and frame-caption text; it does not
154
+ transcribe raw audio or perform pixel/visual or acoustic search.
155
+ - The CLI also accepts explicitly authorized local raw-media adapters:
156
+ `ingest audio SOURCE_PATH --source-ref REF --allow-external-stt
157
+ --stt-command COMMAND` for RIFF/WAVE input and `ingest raw-video SOURCE_PATH
158
+ --source-ref REF --allow-external-video-extractor
159
+ --video-extractor-command COMMAND` for ISO-BMFF input. These shell-free
160
+ stdin adapters are caller-selected; they are not built-in transcription,
161
+ decoding, pixel/acoustic search, or provider quality evidence.
162
+ - Provider-free and real-source checks prove retrieval behavior and source
163
+ integrity, not universal semantic quality from a live embedding model.
164
+ - Legacy `files` and `sections` inspection commands still expose internal record
165
+ IDs; new resource/image/search contracts expose logical IDs only.
166
+ - The resource-core schema lives in one fixed `catalog.sqlite3`. There is no
167
+ candidate-generation cutover or runtime rollback; destructive recreation is
168
+ separately authorized.
169
+
170
+ See the complete [limitations ledger](docs/current-architecture/limitations.md).
171
+
172
+ ## Verification and recovery
173
+
174
+ Run the complete offline verification suite with `scripts/verify.sh` on Linux or
175
+ `scripts/verify.ps1` on Windows. The release-specific cells and strict gates are
176
+ documented in [offline release verification](docs/offline-release-verification.md):
177
+ they cover `mdrack`, `mdrack-core`, `mdrack-media`, and `mdrack-sqlite` as wheel
178
+ and sdist, Linux/Windows × Python 3.11/3.12 evidence, offline E2E/privacy lanes,
179
+ and installed smoke. Provider calls, network fallback, and remote execution are
180
+ not part of the default path. Fixed-catalog recovery and destructive recreation
181
+ boundaries are documented in [recovery](docs/recovery.md).
182
+
183
+ For a reproducible Windows executable build, see
184
+ [Windows EXE build](docs/windows-exe-build.md).
185
+
186
+ ## License and commercial use
187
+
188
+ MDRack is standard MIT software. Commercial use, modification, redistribution,
189
+ sublicensing, and sale are allowed, provided that the exact copyright and
190
+ permission notice — `Copyright (c) 2026 VladimirMonin` — stays with copies or
191
+ substantial portions. MDRack is provided without warranty. This is a project
192
+ license summary, not legal advice or clearance for a particular distribution.
193
+
194
+ The policy for the four Python distributions and future Windows bundle is in
195
+ [licensing and commercial use](docs/licensing.md).
196
+ The exact locked resolver dependency graph, including the Windows-only
197
+ `colorama` branch and `certifi`/MPL-2.0, is recorded in
198
+ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Resolver-installed
199
+ dependencies are not relicensed by MDRack and are not bundled in the four base
200
+ Python wheel/sdist artifacts.
mdrack-1.3.0/README.md ADDED
@@ -0,0 +1,176 @@
1
+ # MDRack
2
+
3
+ MDRack 1.3.0 is a local Python 3.11+ command-line and embedded retrieval rack for
4
+ Markdown, typed metadata, timed transcripts, frame-caption text, and explicitly
5
+ supplied images. Its primary operational user is an agent working under a human
6
+ operator's explicit authority over locally held data.
7
+
8
+ The application depends on standalone `mdrack-core` and `mdrack-sqlite`
9
+ distributions. The first is the stdlib-only provider/persistence-neutral kernel;
10
+ the second is the stdlib-plus-core generic resource catalog/search adapter. The
11
+ `mdrack` distribution owns Markdown/image ingestion, app migration generations,
12
+ LM Studio integration, Click JSON commands, and `MDRackEngine`; it vendors neither
13
+ package.
14
+
15
+ ## Quick start
16
+
17
+ ```bash
18
+ uv sync --all-extras
19
+ uv run mdrack --help
20
+ uv run mdrack guide
21
+ mkdir -p ./notes
22
+ uv run mdrack --root ./notes init
23
+ uv run mdrack --root ./notes scan --provider fake
24
+ uv run mdrack --root ./notes search "architecture" --mode text
25
+ ```
26
+
27
+ This is an offline installation smoke: fake embeddings are deterministic test
28
+ data, not semantic-quality evidence. Configure LM Studio before ordinary
29
+ semantic or hybrid use; see [Getting started](docs/getting-started.md) and the
30
+ [CLI guide](docs/getting-started.md#static-cli-guide).
31
+
32
+ ## Agent-first work with human data
33
+
34
+ For a real task, an agent first identifies whether it is using the source-checkout
35
+ command (`uv run mdrack`) or an already installed `mdrack` command, then asks for
36
+ an explicit data root and the exact operation to perform. Keep private sources
37
+ outside this repository and out of shell history, reports, and commits. The static
38
+ guide and `--help` are read-only discovery steps; `init`, `scan`, explicit ingest,
39
+ rebuild, delete, and provider/model actions change derived local state and must be
40
+ named and authorized before the agent runs them.
41
+
42
+ An authorized workflow can scan Markdown in the chosen root or ingest one selected
43
+ raw text/Markdown file, image with caller-supplied text, WAVE file, or ISO-BMFF
44
+ video. The WAVE and ISO-BMFF paths require the caller to opt in to a selected local
45
+ adapter executable; MDRack does not provide built-in transcription, decoding, or
46
+ visual analysis. Search by text and optional scope, retain only returned logical
47
+ IDs and portable locators or time/line evidence, then use a new CLI process with
48
+ the same root to run `status` against the same derived store. Source files remain
49
+ unchanged. The complete safe sequence and its evidence boundary are in
50
+ [Getting started](docs/getting-started.md#agent-workflow-for-authorized-human-data),
51
+ [operations](docs/operations.md#agent-workflow-and-private-data), and the shipped
52
+ [MDRack agent skill](skills/mdrack/SKILL.md).
53
+
54
+ A real acceptance claim is stronger than this quick start: it requires an agent to
55
+ exercise the installed public surface with separately authorized human-like private
56
+ data while checking source immutability and privacy. Synthetic/offline checks are
57
+ supporting evidence only; they do not substitute for that run.
58
+
59
+ The CLI also provides read, files, status, doctor, rebuild, eval, and
60
+ LM Studio model-management commands. Host applications can use
61
+ `MDRackEngine` without importing Click.
62
+
63
+ ## How it works
64
+
65
+ 1. The default markdown-it adapter parses UTF-8 Markdown into source blocks
66
+ with H1–H6 heading paths and exact line/character provenance.
67
+ 2. Markdown image syntax contributes only safe textual alt/alias prose; paths and
68
+ referenced files are never inspected or indexed as assets.
69
+ 3. The app projects documents into typed core resources and writes a complete
70
+ graph atomically to the fixed SQLite catalog at `<store>/catalog.sqlite3`.
71
+ 4. Core retrieval accepts ready lexical/vector branches, applies scope filters
72
+ before limits, groups resource evidence, and performs deterministic weighted RRF.
73
+ 5. Explicit image ingestion stores derived caption/OCR text and ready vectors,
74
+ never source bytes; duplicate and whole-resource similarity use logical IDs.
75
+
76
+ ## Documentation
77
+
78
+ - [Getting started: installation, configuration, CLI, and engine](docs/getting-started.md)
79
+ - [MDRack agent skill](skills/mdrack/SKILL.md) — self-contained terminal workflow
80
+ - [Operations, diagnostics, privacy, and troubleshooting](docs/operations.md)
81
+ - [Development guide for humans and coding agents](docs/development.md)
82
+ - [Current architecture index](docs/current-architecture/README.md)
83
+ - [System overview](docs/current-architecture/system-overview.md)
84
+ - [Indexing and structural chunking](docs/current-architecture/indexing-and-chunking.md)
85
+ - [SQLite persistence and current schema](docs/current-architecture/sqlite-persistence.md)
86
+ - [Text, semantic, and hybrid retrieval](docs/current-architecture/retrieval.md)
87
+ - [Asset handling](docs/current-architecture/assets.md)
88
+ - [CLI and embedded interfaces](docs/current-architecture/public-interfaces.md)
89
+ - [Current limitations](docs/current-architecture/limitations.md)
90
+ - [Completed MDRack 1.3 compact-storage plan (historical)](docs/plans/2026-07-24-v1.3-compact-storage-sqlite-vec.md)
91
+ - [MDRack 1.3.0 release notes and source-publication status](docs/release-1.3.md)
92
+ - [MDRack 1.1 local release](docs/release-1.1.md)
93
+ - [CLI contracts](docs/cli-contracts.md)
94
+ - [v0.3 compatibility registry](docs/compatibility/v0.3-compatibility-registry.md)
95
+ - [Recovery procedures](docs/recovery.md)
96
+ - [ADR-0001: reranking deferred](docs/decisions/0001-reranking-deferred.md)
97
+ - [ADR-0002: provider/storage-neutral core](docs/decisions/0002-provider-storage-neutral-core.md)
98
+ - [ADR-0004: SQLite operating envelope](docs/decisions/0004-sqlite-operating-envelope.md)
99
+ - [Offline release verification](docs/offline-release-verification.md) — supported distribution cells, matrix evidence, and strict no-live gates
100
+ - [Licensing and commercial use](docs/licensing.md) — MIT policy, commercial-use boundary, and Windows bundle gate
101
+ - [Third-party runtime notices](THIRD_PARTY_NOTICES.md) — exact locked resolver graph and upstream-license obligations
102
+ - [v0.4 W5-CI contract](docs/contracts/v0.4-w5-ci-contract.md)
103
+ - [v0.4 offline release-candidate packet](docs/evidence/v0.4-release-packet.md) — exact stage/release/DoD evidence and non-claims
104
+ - [v0.4 public-surface compatibility ledger](docs/compatibility/v0.4-public-surface-ledger.json)
105
+ - [v0.3 release evidence](docs/evidence/v0.3-release-gate.md)
106
+
107
+ Files under `docs/plans/` and the legacy architecture/design documents are
108
+ historical unless explicitly marked as an active plan. They are not the current
109
+ product contract.
110
+
111
+ ## Images
112
+
113
+ Markdown image syntax never starts image ingestion. It preserves eligible alt or
114
+ textual alias once as ordinary prose and discards target/path/title/dimensions.
115
+ `mdrack image ingest` is a separate explicit local-file operation. Caption/OCR
116
+ text is caller-supplied or produced by an injected extractor; live LM Studio use
117
+ requires an explicit provider choice. Source bytes remain outside SQLite and are
118
+ never modified.
119
+
120
+ ## Known limitations
121
+
122
+ - SQLite is the only persistent database. Fresh compact generations use canonical
123
+ float32 vectors and the builtin exact Python scan; there is no ANN/vector
124
+ extension dependency in the base distribution.
125
+ - Structural `overlap_chars` is currently not consumed, so structural chunks do
126
+ not overlap.
127
+ - Production reranking is disabled. `rerank_rank` and `rerank_score` remain
128
+ `null`; non-null reranker injection fails closed.
129
+ - MDRack indexes supplied transcripts and frame-caption text; it does not
130
+ transcribe raw audio or perform pixel/visual or acoustic search.
131
+ - The CLI also accepts explicitly authorized local raw-media adapters:
132
+ `ingest audio SOURCE_PATH --source-ref REF --allow-external-stt
133
+ --stt-command COMMAND` for RIFF/WAVE input and `ingest raw-video SOURCE_PATH
134
+ --source-ref REF --allow-external-video-extractor
135
+ --video-extractor-command COMMAND` for ISO-BMFF input. These shell-free
136
+ stdin adapters are caller-selected; they are not built-in transcription,
137
+ decoding, pixel/acoustic search, or provider quality evidence.
138
+ - Provider-free and real-source checks prove retrieval behavior and source
139
+ integrity, not universal semantic quality from a live embedding model.
140
+ - Legacy `files` and `sections` inspection commands still expose internal record
141
+ IDs; new resource/image/search contracts expose logical IDs only.
142
+ - The resource-core schema lives in one fixed `catalog.sqlite3`. There is no
143
+ candidate-generation cutover or runtime rollback; destructive recreation is
144
+ separately authorized.
145
+
146
+ See the complete [limitations ledger](docs/current-architecture/limitations.md).
147
+
148
+ ## Verification and recovery
149
+
150
+ Run the complete offline verification suite with `scripts/verify.sh` on Linux or
151
+ `scripts/verify.ps1` on Windows. The release-specific cells and strict gates are
152
+ documented in [offline release verification](docs/offline-release-verification.md):
153
+ they cover `mdrack`, `mdrack-core`, `mdrack-media`, and `mdrack-sqlite` as wheel
154
+ and sdist, Linux/Windows × Python 3.11/3.12 evidence, offline E2E/privacy lanes,
155
+ and installed smoke. Provider calls, network fallback, and remote execution are
156
+ not part of the default path. Fixed-catalog recovery and destructive recreation
157
+ boundaries are documented in [recovery](docs/recovery.md).
158
+
159
+ For a reproducible Windows executable build, see
160
+ [Windows EXE build](docs/windows-exe-build.md).
161
+
162
+ ## License and commercial use
163
+
164
+ MDRack is standard MIT software. Commercial use, modification, redistribution,
165
+ sublicensing, and sale are allowed, provided that the exact copyright and
166
+ permission notice — `Copyright (c) 2026 VladimirMonin` — stays with copies or
167
+ substantial portions. MDRack is provided without warranty. This is a project
168
+ license summary, not legal advice or clearance for a particular distribution.
169
+
170
+ The policy for the four Python distributions and future Windows bundle is in
171
+ [licensing and commercial use](docs/licensing.md).
172
+ The exact locked resolver dependency graph, including the Windows-only
173
+ `colorama` branch and `certifi`/MPL-2.0, is recorded in
174
+ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Resolver-installed
175
+ dependencies are not relicensed by MDRack and are not bundled in the four base
176
+ Python wheel/sdist artifacts.