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.
- mdrack-1.3.0/.gitattributes +1 -0
- mdrack-1.3.0/.github/workflows/offline-release-matrix.yml +90 -0
- mdrack-1.3.0/.gitignore +52 -0
- mdrack-1.3.0/AGENTS.md +111 -0
- mdrack-1.3.0/LICENSE +21 -0
- mdrack-1.3.0/PKG-INFO +200 -0
- mdrack-1.3.0/README.md +176 -0
- mdrack-1.3.0/THIRD_PARTY_NOTICES.md +100 -0
- mdrack-1.3.0/configs/eval-v11.toml +62 -0
- mdrack-1.3.0/docs/architecture.md +188 -0
- mdrack-1.3.0/docs/chunking-refactor-plan.md +111 -0
- mdrack-1.3.0/docs/cli-contracts.md +296 -0
- mdrack-1.3.0/docs/compatibility/v0.3-compatibility-registry.md +209 -0
- mdrack-1.3.0/docs/compatibility/v0.4-future-host-consumer-ledger.md +21 -0
- mdrack-1.3.0/docs/compatibility/v0.4-public-surface-ledger.json +297 -0
- mdrack-1.3.0/docs/compatibility/v1.1-compatibility-ledger.md +59 -0
- mdrack-1.3.0/docs/contracts/prepared-resource-manifest-v1.md +113 -0
- mdrack-1.3.0/docs/contracts/prepared-resource-manifest-v1.schema.json +132 -0
- mdrack-1.3.0/docs/contracts/v0.4-w5-ci-contract.md +228 -0
- mdrack-1.3.0/docs/contracts/v1.1-application-contract.md +80 -0
- mdrack-1.3.0/docs/contracts/v1.1-artifact-cache.md +73 -0
- mdrack-1.3.0/docs/contracts/v1.1-frame-captions.md +38 -0
- mdrack-1.3.0/docs/contracts/v1.1-metadata.md +129 -0
- mdrack-1.3.0/docs/contracts/v1.1-search-presets.md +111 -0
- mdrack-1.3.0/docs/contracts/v1.1-transcript-readers.md +92 -0
- mdrack-1.3.0/docs/contracts/v1.2-unified-search.md +99 -0
- mdrack-1.3.0/docs/current-architecture/README.md +69 -0
- mdrack-1.3.0/docs/current-architecture/assets.md +68 -0
- mdrack-1.3.0/docs/current-architecture/indexing-and-chunking.md +154 -0
- mdrack-1.3.0/docs/current-architecture/limitations.md +131 -0
- mdrack-1.3.0/docs/current-architecture/one-store-s1-test-ledger.md +65 -0
- mdrack-1.3.0/docs/current-architecture/public-interfaces.md +237 -0
- mdrack-1.3.0/docs/current-architecture/retrieval.md +167 -0
- mdrack-1.3.0/docs/current-architecture/sqlite-persistence.md +272 -0
- mdrack-1.3.0/docs/current-architecture/system-overview.md +184 -0
- mdrack-1.3.0/docs/decisions/0001-reranking-deferred.md +118 -0
- mdrack-1.3.0/docs/decisions/0002-provider-storage-neutral-core.md +254 -0
- mdrack-1.3.0/docs/decisions/0003-core-1.0-rc-contract.md +129 -0
- mdrack-1.3.0/docs/decisions/0004-sqlite-operating-envelope.md +70 -0
- mdrack-1.3.0/docs/decisions/0005-timed-text-granularity.md +25 -0
- mdrack-1.3.0/docs/decisions/0006-temporal-locator-specification.md +27 -0
- mdrack-1.3.0/docs/decisions/0007-no-overlap-default.md +23 -0
- mdrack-1.3.0/docs/decisions/0008-whole-resource-text-aggregation.md +23 -0
- mdrack-1.3.0/docs/decisions/0009-text-only-media-capability.md +24 -0
- mdrack-1.3.0/docs/decisions/0010-clean-standalone-sqlite-catalog.md +26 -0
- mdrack-1.3.0/docs/decisions/0011-v1.1-application-contracts.md +79 -0
- mdrack-1.3.0/docs/decisions/0012-raw-source-provenance-contract.md +89 -0
- mdrack-1.3.0/docs/development.md +120 -0
- mdrack-1.3.0/docs/evaluation/privacy-evidence-oracle.md +30 -0
- mdrack-1.3.0/docs/evaluation/public-corpus-contract-v1.md +141 -0
- mdrack-1.3.0/docs/evaluation/v1.1-fixture-contract.md +40 -0
- mdrack-1.3.0/docs/evaluation/v1.1-quality-observations.md +36 -0
- mdrack-1.3.0/docs/evaluation/w4-quality-evidence.md +38 -0
- mdrack-1.3.0/docs/evaluation/w5-sqlite-envelope.json +242 -0
- mdrack-1.3.0/docs/evaluation/w5-sqlite-envelope.md +62 -0
- mdrack-1.3.0/docs/getting-started.md +301 -0
- mdrack-1.3.0/docs/guides/v1.1-cache.md +57 -0
- mdrack-1.3.0/docs/guides/v1.1-metadata.md +100 -0
- mdrack-1.3.0/docs/guides/v1.1-offline-workflows.md +129 -0
- mdrack-1.3.0/docs/guides/v1.1-timed-media.md +200 -0
- mdrack-1.3.0/docs/licensing.md +67 -0
- mdrack-1.3.0/docs/mdrack-v0.2-retrieval-modernization-plan.md +945 -0
- mdrack-1.3.0/docs/model-management-plan-3.md +379 -0
- mdrack-1.3.0/docs/offline-release-verification.md +261 -0
- mdrack-1.3.0/docs/one-store-acceptance.md +90 -0
- mdrack-1.3.0/docs/operations.md +145 -0
- mdrack-1.3.0/docs/optional-provider-contracts.md +26 -0
- mdrack-1.3.0/docs/plan.md +2904 -0
- mdrack-1.3.0/docs/plans/2026-07-16-v0.2-stabilization.md +343 -0
- mdrack-1.3.0/docs/plans/2026-07-17-architecture-documentation-hardening.md +72 -0
- mdrack-1.3.0/docs/plans/2026-07-17-v0.3-clean-core.md +2552 -0
- mdrack-1.3.0/docs/plans/2026-07-18-v0.3.1-audit-hardening.md +264 -0
- mdrack-1.3.0/docs/plans/2026-07-18-v0.4-text-media-development-plan.md +3385 -0
- mdrack-1.3.0/docs/plans/2026-07-20-v1.1-implementation-plan.md +5308 -0
- mdrack-1.3.0/docs/plans/2026-07-22-v1.2-unified-search.md +119 -0
- mdrack-1.3.0/docs/plans/2026-07-24-v1.3-compact-storage-sqlite-vec.md +3107 -0
- mdrack-1.3.0/docs/plans/2026-07-31-mdrack-single-clean-v2.md +149 -0
- mdrack-1.3.0/docs/recovery.md +64 -0
- mdrack-1.3.0/docs/release-1.1.md +68 -0
- mdrack-1.3.0/docs/release-1.3.md +161 -0
- mdrack-1.3.0/docs/remediation-plan.md +144 -0
- mdrack-1.3.0/docs/retrieval-design.md +314 -0
- mdrack-1.3.0/docs/retrospectives/2026-08-20.md +94 -0
- mdrack-1.3.0/docs/retrospectives/2026-08-24.md +75 -0
- mdrack-1.3.0/docs/retrospectives/README.md +8 -0
- mdrack-1.3.0/docs/storage-design.md +279 -0
- mdrack-1.3.0/docs/windows-exe-build.md +66 -0
- mdrack-1.3.0/instructions/ARCH.system.instructions.md +106 -0
- mdrack-1.3.0/instructions/DATA.sqlite.instructions.md +122 -0
- mdrack-1.3.0/instructions/DOCS.architecture.instructions.md +66 -0
- mdrack-1.3.0/instructions/DOCS.instruction-style-guide.instructions.md +63 -0
- mdrack-1.3.0/instructions/OBS.logging.instructions.md +73 -0
- mdrack-1.3.0/instructions/TEST.quality-gates.instructions.md +98 -0
- mdrack-1.3.0/instructions/TOOLING.mcp-instrument.instructions.md +38 -0
- mdrack-1.3.0/instructions/WORKFLOW.build-orchestration.instructions.md +52 -0
- mdrack-1.3.0/instructions/WORKFLOW.git-safety.instructions.md +67 -0
- mdrack-1.3.0/instructions/WORKFLOW.plan-orchestration.instructions.md +45 -0
- mdrack-1.3.0/instructions/WORKFLOW.requirements-to-spec.instructions.md +45 -0
- mdrack-1.3.0/mdrack.spec +52 -0
- mdrack-1.3.0/pyproject.toml +82 -0
- mdrack-1.3.0/scripts/__init__.py +0 -0
- mdrack-1.3.0/scripts/baseline_compare.py +502 -0
- mdrack-1.3.0/scripts/build_v11_test_assets.py +257 -0
- mdrack-1.3.0/scripts/build_windows_exe.ps1 +35 -0
- mdrack-1.3.0/scripts/check_core_boundaries.py +256 -0
- mdrack-1.3.0/scripts/check_core_distribution.py +277 -0
- mdrack-1.3.0/scripts/check_installed_package.py +628 -0
- mdrack-1.3.0/scripts/check_media_boundaries.py +70 -0
- mdrack-1.3.0/scripts/check_no_forbidden_deps.py +78 -0
- mdrack-1.3.0/scripts/check_release_docs.py +321 -0
- mdrack-1.3.0/scripts/check_sqlite_boundaries.py +49 -0
- mdrack-1.3.0/scripts/check_v13_release_packet.py +282 -0
- mdrack-1.3.0/scripts/check_v13_sqlite_vec_nonpromotion.py +173 -0
- mdrack-1.3.0/scripts/chunk_audit.py +110 -0
- mdrack-1.3.0/scripts/live_lmstudio_eval.py +292 -0
- mdrack-1.3.0/scripts/media_quality_eval.py +148 -0
- mdrack-1.3.0/scripts/offline_release_matrix.py +573 -0
- mdrack-1.3.0/scripts/retrieval_benchmark.py +144 -0
- mdrack-1.3.0/scripts/run_one_store_acceptance.py +666 -0
- mdrack-1.3.0/scripts/run_v11_evaluation.py +33 -0
- mdrack-1.3.0/scripts/run_v11_offline_e2e.py +102 -0
- mdrack-1.3.0/scripts/sqlite_envelope_benchmark.py +713 -0
- mdrack-1.3.0/scripts/verify.ps1 +28 -0
- mdrack-1.3.0/scripts/verify.sh +29 -0
- mdrack-1.3.0/skills/mdrack/SKILL.md +281 -0
- mdrack-1.3.0/src/mdrack/__init__.py +3 -0
- mdrack-1.3.0/src/mdrack/__main__.py +6 -0
- mdrack-1.3.0/src/mdrack/adapters/__init__.py +1 -0
- mdrack-1.3.0/src/mdrack/adapters/lmstudio/__init__.py +1 -0
- mdrack-1.3.0/src/mdrack/adapters/lmstudio/fakes.py +84 -0
- mdrack-1.3.0/src/mdrack/adapters/markdown_it/__init__.py +5 -0
- mdrack-1.3.0/src/mdrack/adapters/markdown_it/parser.py +695 -0
- mdrack-1.3.0/src/mdrack/adapters/sqlite/__init__.py +9 -0
- mdrack-1.3.0/src/mdrack/adapters/sqlite/canonical_catalog.py +145 -0
- mdrack-1.3.0/src/mdrack/adapters/sqlite/index_storage.py +558 -0
- mdrack-1.3.0/src/mdrack/adapters/sqlite/resource_store.py +5 -0
- mdrack-1.3.0/src/mdrack/application/__init__.py +40 -0
- mdrack-1.3.0/src/mdrack/application/artifact_cache.py +546 -0
- mdrack-1.3.0/src/mdrack/application/chunking.py +735 -0
- mdrack-1.3.0/src/mdrack/application/compatibility.py +1004 -0
- mdrack-1.3.0/src/mdrack/application/indexing.py +708 -0
- mdrack-1.3.0/src/mdrack/application/manifest.py +652 -0
- mdrack-1.3.0/src/mdrack/application/metadata_filters.py +117 -0
- mdrack-1.3.0/src/mdrack/application/metadata_normalization.py +238 -0
- mdrack-1.3.0/src/mdrack/application/metadata_projection.py +362 -0
- mdrack-1.3.0/src/mdrack/application/query.py +68 -0
- mdrack-1.3.0/src/mdrack/application/resource_catalog.py +1168 -0
- mdrack-1.3.0/src/mdrack/application/resources.py +1088 -0
- mdrack-1.3.0/src/mdrack/application/retrieval.py +882 -0
- mdrack-1.3.0/src/mdrack/application/textual_embedding_space.py +74 -0
- mdrack-1.3.0/src/mdrack/application/transcript_ingestion.py +774 -0
- mdrack-1.3.0/src/mdrack/application/vector_values.py +145 -0
- mdrack-1.3.0/src/mdrack/application/video_composition.py +448 -0
- mdrack-1.3.0/src/mdrack/cli/__init__.py +501 -0
- mdrack-1.3.0/src/mdrack/cli/commands/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/cli/commands/cache.py +147 -0
- mdrack-1.3.0/src/mdrack/cli/commands/eval.py +212 -0
- mdrack-1.3.0/src/mdrack/cli/commands/files.py +110 -0
- mdrack-1.3.0/src/mdrack/cli/commands/images.py +245 -0
- mdrack-1.3.0/src/mdrack/cli/commands/metadata.py +212 -0
- mdrack-1.3.0/src/mdrack/cli/commands/model.py +775 -0
- mdrack-1.3.0/src/mdrack/cli/commands/raw_audio.py +69 -0
- mdrack-1.3.0/src/mdrack/cli/commands/raw_text.py +55 -0
- mdrack-1.3.0/src/mdrack/cli/commands/raw_video.py +54 -0
- mdrack-1.3.0/src/mdrack/cli/commands/read.py +169 -0
- mdrack-1.3.0/src/mdrack/cli/commands/rebuild.py +150 -0
- mdrack-1.3.0/src/mdrack/cli/commands/resource.py +161 -0
- mdrack-1.3.0/src/mdrack/cli/commands/resources.py +340 -0
- mdrack-1.3.0/src/mdrack/cli/commands/scan.py +103 -0
- mdrack-1.3.0/src/mdrack/cli/commands/search.py +501 -0
- mdrack-1.3.0/src/mdrack/cli/commands/transcript.py +253 -0
- mdrack-1.3.0/src/mdrack/cli/commands/video.py +186 -0
- mdrack-1.3.0/src/mdrack/cli/help_topics.py +144 -0
- mdrack-1.3.0/src/mdrack/config/__init__.py +1 -0
- mdrack-1.3.0/src/mdrack/config/defaults.py +40 -0
- mdrack-1.3.0/src/mdrack/config/loader.py +263 -0
- mdrack-1.3.0/src/mdrack/config/models.py +209 -0
- mdrack-1.3.0/src/mdrack/diagnostics/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/diagnostics/doctor.py +112 -0
- mdrack-1.3.0/src/mdrack/diagnostics/integrity.py +48 -0
- mdrack-1.3.0/src/mdrack/diagnostics/storage.py +600 -0
- mdrack-1.3.0/src/mdrack/domain/__init__.py +5 -0
- mdrack-1.3.0/src/mdrack/domain/blocks.py +70 -0
- mdrack-1.3.0/src/mdrack/domain/chunks.py +44 -0
- mdrack-1.3.0/src/mdrack/domain/documents.py +75 -0
- mdrack-1.3.0/src/mdrack/domain/identifiers.py +33 -0
- mdrack-1.3.0/src/mdrack/domain/indexing.py +165 -0
- mdrack-1.3.0/src/mdrack/domain/profiles.py +137 -0
- mdrack-1.3.0/src/mdrack/domain/retrieval.py +99 -0
- mdrack-1.3.0/src/mdrack/embeddings/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/embeddings/fake.py +143 -0
- mdrack-1.3.0/src/mdrack/embeddings/hashing.py +24 -0
- mdrack-1.3.0/src/mdrack/embeddings/lmstudio.py +27 -0
- mdrack-1.3.0/src/mdrack/embeddings/protocol.py +5 -0
- mdrack-1.3.0/src/mdrack/embeddings/runtime.py +79 -0
- mdrack-1.3.0/src/mdrack/eval/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/eval/chunk_audit.py +273 -0
- mdrack-1.3.0/src/mdrack/eval/metrics.py +74 -0
- mdrack-1.3.0/src/mdrack/eval/privacy.py +212 -0
- mdrack-1.3.0/src/mdrack/eval/quality.py +255 -0
- mdrack-1.3.0/src/mdrack/eval/queries.py +146 -0
- mdrack-1.3.0/src/mdrack/eval/reporting.py +181 -0
- mdrack-1.3.0/src/mdrack/eval/retrieval.py +266 -0
- mdrack-1.3.0/src/mdrack/indexing/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/indexing/change_detector.py +116 -0
- mdrack-1.3.0/src/mdrack/indexing/indexer.py +59 -0
- mdrack-1.3.0/src/mdrack/indexing/scanner.py +148 -0
- mdrack-1.3.0/src/mdrack/indexing/transactions.py +266 -0
- mdrack-1.3.0/src/mdrack/ingestion/__init__.py +25 -0
- mdrack-1.3.0/src/mdrack/ingestion/frame_captions.py +171 -0
- mdrack-1.3.0/src/mdrack/ingestion/images.py +787 -0
- mdrack-1.3.0/src/mdrack/ingestion/media_manifests.py +105 -0
- mdrack-1.3.0/src/mdrack/ingestion/raw_audio.py +314 -0
- mdrack-1.3.0/src/mdrack/ingestion/raw_source_provenance.py +448 -0
- mdrack-1.3.0/src/mdrack/ingestion/raw_text.py +169 -0
- mdrack-1.3.0/src/mdrack/ingestion/raw_video.py +286 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/__init__.py +120 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/common.py +306 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/srt.py +72 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/timed_json.py +81 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/webvtt.py +86 -0
- mdrack-1.3.0/src/mdrack/ingestion/transcripts/whisper_json.py +77 -0
- mdrack-1.3.0/src/mdrack/integrations/__init__.py +1 -0
- mdrack-1.3.0/src/mdrack/integrations/lmstudio/__init__.py +26 -0
- mdrack-1.3.0/src/mdrack/integrations/lmstudio/client.py +852 -0
- mdrack-1.3.0/src/mdrack/integrations/providers/__init__.py +21 -0
- mdrack-1.3.0/src/mdrack/integrations/providers/contracts.py +352 -0
- mdrack-1.3.0/src/mdrack/markdown/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/markdown/chunk_builder.py +425 -0
- mdrack-1.3.0/src/mdrack/markdown/embedding_text.py +63 -0
- mdrack-1.3.0/src/mdrack/markdown/frontmatter.py +58 -0
- mdrack-1.3.0/src/mdrack/markdown/ir.py +124 -0
- mdrack-1.3.0/src/mdrack/markdown/parser.py +337 -0
- mdrack-1.3.0/src/mdrack/markdown/section_builder.py +174 -0
- mdrack-1.3.0/src/mdrack/output/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/output/envelope.py +41 -0
- mdrack-1.3.0/src/mdrack/output/errors.py +75 -0
- mdrack-1.3.0/src/mdrack/output/json_output.py +24 -0
- mdrack-1.3.0/src/mdrack/ports/__init__.py +27 -0
- mdrack-1.3.0/src/mdrack/ports/embeddings.py +35 -0
- mdrack-1.3.0/src/mdrack/ports/model_catalog.py +79 -0
- mdrack-1.3.0/src/mdrack/ports/model_lifecycle.py +22 -0
- mdrack-1.3.0/src/mdrack/ports/parser.py +22 -0
- mdrack-1.3.0/src/mdrack/ports/reranker.py +39 -0
- mdrack-1.3.0/src/mdrack/ports/storage.py +112 -0
- mdrack-1.3.0/src/mdrack/public_api/__init__.py +57 -0
- mdrack-1.3.0/src/mdrack/public_api/engine.py +745 -0
- mdrack-1.3.0/src/mdrack/public_api/models.py +82 -0
- mdrack-1.3.0/src/mdrack/search/__init__.py +3 -0
- mdrack-1.3.0/src/mdrack/search/hybrid.py +85 -0
- mdrack-1.3.0/src/mdrack/search/scoring.py +81 -0
- mdrack-1.3.0/src/mdrack/search/semantic.py +64 -0
- mdrack-1.3.0/src/mdrack/search/text.py +160 -0
- mdrack-1.3.0/src/mdrack/storage/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/__init__.py +0 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/connection.py +37 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/fts.py +143 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0000_schema_migrations.sql +4 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0001_initial.sql +77 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0002_fts.sql +6 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0003_provenance.sql +26 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0004_embedding_profiles.sql +36 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0005_assets.sql +44 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0006_complete_provenance.sql +25 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations/0007_resource_core.sql +123 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/migrations.py +200 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/repositories.py +212 -0
- mdrack-1.3.0/src/mdrack/storage/sqlite/vector.py +212 -0
- mdrack-1.3.0/tests/__init__.py +0 -0
- mdrack-1.3.0/tests/assets/v1_1/transcripts/sample.srt +8 -0
- mdrack-1.3.0/tests/assets/v1_1/transcripts/sample.vtt +10 -0
- mdrack-1.3.0/tests/assets/v1_1/transcripts/timed.json +10 -0
- mdrack-1.3.0/tests/assets/v1_1/transcripts/whisper.json +7 -0
- mdrack-1.3.0/tests/cli/__init__.py +0 -0
- mdrack-1.3.0/tests/cli/test_cli_cache.py +187 -0
- mdrack-1.3.0/tests/cli/test_cli_eval.py +98 -0
- mdrack-1.3.0/tests/cli/test_cli_files.py +101 -0
- mdrack-1.3.0/tests/cli/test_cli_guide.py +91 -0
- mdrack-1.3.0/tests/cli/test_cli_help.py +147 -0
- mdrack-1.3.0/tests/cli/test_cli_images.py +78 -0
- mdrack-1.3.0/tests/cli/test_cli_model.py +571 -0
- mdrack-1.3.0/tests/cli/test_cli_raw_audio.py +89 -0
- mdrack-1.3.0/tests/cli/test_cli_raw_text.py +34 -0
- mdrack-1.3.0/tests/cli/test_cli_raw_video.py +61 -0
- mdrack-1.3.0/tests/cli/test_cli_read.py +236 -0
- mdrack-1.3.0/tests/cli/test_cli_rebuild.py +77 -0
- mdrack-1.3.0/tests/cli/test_cli_resource_lifecycle.py +113 -0
- mdrack-1.3.0/tests/cli/test_cli_scan.py +349 -0
- mdrack-1.3.0/tests/cli/test_cli_search_semantic_fake.py +242 -0
- mdrack-1.3.0/tests/cli/test_cli_search_text.py +230 -0
- mdrack-1.3.0/tests/cli/test_cli_sections.py +15 -0
- mdrack-1.3.0/tests/cli/test_cli_transcript.py +164 -0
- mdrack-1.3.0/tests/cli/test_cli_video.py +184 -0
- mdrack-1.3.0/tests/core/fakes/memory_store.py +299 -0
- mdrack-1.3.0/tests/core/test_audio_retrieval_evidence.py +189 -0
- mdrack-1.3.0/tests/core/test_contract_freeze.py +178 -0
- mdrack-1.3.0/tests/core/test_domain_records.py +592 -0
- mdrack-1.3.0/tests/core/test_fusion.py +131 -0
- mdrack-1.3.0/tests/core/test_indexing.py +645 -0
- mdrack-1.3.0/tests/core/test_metadata_facet_contract.py +115 -0
- mdrack-1.3.0/tests/core/test_observability.py +195 -0
- mdrack-1.3.0/tests/core/test_resource_discovery.py +383 -0
- mdrack-1.3.0/tests/core/test_resource_store_contract.py +321 -0
- mdrack-1.3.0/tests/core/test_retrieval.py +589 -0
- mdrack-1.3.0/tests/core/test_shared_contracts.py +372 -0
- mdrack-1.3.0/tests/core/test_v11_contract_freeze.py +96 -0
- mdrack-1.3.0/tests/e2e/__init__.py +0 -0
- mdrack-1.3.0/tests/e2e/conftest.py +11 -0
- mdrack-1.3.0/tests/e2e/test_cli_embedded_retrieval_parity.py +53 -0
- mdrack-1.3.0/tests/e2e/test_embedded_api.py +121 -0
- mdrack-1.3.0/tests/e2e/test_hybrid_offline_api.py +31 -0
- mdrack-1.3.0/tests/e2e/test_model_switch_virtual_store.py +331 -0
- mdrack-1.3.0/tests/e2e/test_one_store_acceptance_runner.py +225 -0
- mdrack-1.3.0/tests/e2e/test_one_store_contract.py +1121 -0
- mdrack-1.3.0/tests/e2e/test_smoke_fake_embeddings.py +132 -0
- mdrack-1.3.0/tests/e2e/test_transcript_workflow.py +153 -0
- mdrack-1.3.0/tests/e2e/test_v11_public_api_cli_parity.py +186 -0
- mdrack-1.3.0/tests/e2e/test_v11_similarity_workflow.py +178 -0
- mdrack-1.3.0/tests/e2e/test_video_workflow.py +190 -0
- mdrack-1.3.0/tests/e2e/v1_1/conftest.py +7 -0
- mdrack-1.3.0/tests/evaluation/benchmark-v1/manifest.json +82 -0
- mdrack-1.3.0/tests/evaluation/contract_validator.py +853 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-31.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-32.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-33.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-34.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-35.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-36.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-37.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-38.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-39.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/audio-40.json +21 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-01.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-02.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-03.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-04.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-05.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-06.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-07.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-08.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-09.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-10.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-11.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-12.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-13.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-14.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-15.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-16.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-17.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-18.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-19.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/document-20.md +7 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-21.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-22.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-23.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-24.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-25.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-26.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-27.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-28.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-29.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/image-30.json +5 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-41.json +33 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-42.json +33 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-43.json +33 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-44.json +33 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-45.json +33 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-46.json +22 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-47.json +22 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-48.json +22 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-49.json +22 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/artifacts/video-50.json +22 -0
- mdrack-1.3.0/tests/evaluation/corpus-v1/manifest.json +1963 -0
- mdrack-1.3.0/tests/evaluation/generate_fixture.py +577 -0
- mdrack-1.3.0/tests/evaluation/queries-v1/queries.json +8417 -0
- mdrack-1.3.0/tests/evaluation/schemas/benchmark-v1.schema.json +46 -0
- mdrack-1.3.0/tests/evaluation/schemas/corpus-v1.schema.json +117 -0
- mdrack-1.3.0/tests/evaluation/schemas/queries-v1.schema.json +143 -0
- mdrack-1.3.0/tests/evaluation/test_public_contract.py +741 -0
- mdrack-1.3.0/tests/evaluation/test_timed_grouping_runner.py +79 -0
- mdrack-1.3.0/tests/evaluation/v1_1/capability-dod-map.json +36 -0
- mdrack-1.3.0/tests/evaluation/v1_1/freeze-manifest.json +130 -0
- mdrack-1.3.0/tests/evaluation/v1_1/runtime-contract.json +57 -0
- mdrack-1.3.0/tests/evaluation/v1_1/test_fixture_freeze.py +71 -0
- mdrack-1.3.0/tests/external_core_consumer/test_memory_catalog_consumer.py +168 -0
- mdrack-1.3.0/tests/fixtures/baseline_corpus/indexing-ru.md +22 -0
- mdrack-1.3.0/tests/fixtures/baseline_corpus/privacy-mixed.md +11 -0
- mdrack-1.3.0/tests/fixtures/baseline_corpus/retrieval-en.md +20 -0
- mdrack-1.3.0/tests/fixtures/core_multimodal/expected.json +188 -0
- mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/indexing-ru.md +22 -0
- mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/privacy-mixed.md +11 -0
- mdrack-1.3.0/tests/fixtures/core_multimodal/markdown/retrieval-en.md +20 -0
- mdrack-1.3.0/tests/fixtures/future_host/host_consumer.py +204 -0
- mdrack-1.3.0/tests/fixtures/future_host/pyproject.toml +16 -0
- mdrack-1.3.0/tests/fixtures/markdown/code_blocks.md +23 -0
- mdrack-1.3.0/tests/fixtures/markdown/frontmatter.md +10 -0
- mdrack-1.3.0/tests/fixtures/markdown/mixed_content.md +25 -0
- mdrack-1.3.0/tests/fixtures/markdown/simple_headings.md +7 -0
- mdrack-1.3.0/tests/fixtures/markdown_real/README.md +21 -0
- mdrack-1.3.0/tests/fixtures/markdown_real/sample.md +25 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/images/image-copy.png +0 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/images/image.png +0 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/manifest.json +93 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/markdown/note.md +7 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/markdown/post-init.md +3 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/prepared/image-caption-ocr.json +13 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/privacy-sentinels.json +12 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/queries.json +61 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/transcripts/audio-near.whisper.json +14 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/transcripts/audio.whisper.json +14 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/video/video-resource-near.json +87 -0
- mdrack-1.3.0/tests/fixtures/one_store_v1/video/video-resource.json +108 -0
- mdrack-1.3.0/tests/fixtures/raw_source_provenance/text.txt +1 -0
- mdrack-1.3.0/tests/fixtures/raw_source_provenance/tiny.png +0 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/adversarial_media.md +7 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/code_fallbacks.md +16 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/crlf.md +5 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/expected.json +26 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/long_prose.md +3 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/multilingual.md +13 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/oversized_lines.md +11 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/python_valid.md +24 -0
- mdrack-1.3.0/tests/fixtures/structural_chunking/structures.md +25 -0
- mdrack-1.3.0/tests/integration/__init__.py +0 -0
- mdrack-1.3.0/tests/integration/test_artifact_cache.py +167 -0
- mdrack-1.3.0/tests/integration/test_builtin_exact_benchmark_harness.py +123 -0
- mdrack-1.3.0/tests/integration/test_builtin_exact_vector_backend.py +220 -0
- mdrack-1.3.0/tests/integration/test_embedding_profile_storage.py +117 -0
- mdrack-1.3.0/tests/integration/test_embedding_truthfulness_paths.py +144 -0
- mdrack-1.3.0/tests/integration/test_fts_index.py +212 -0
- mdrack-1.3.0/tests/integration/test_hybrid_search.py +371 -0
- mdrack-1.3.0/tests/integration/test_image_ingestion.py +672 -0
- mdrack-1.3.0/tests/integration/test_indexer_fake_embeddings.py +163 -0
- mdrack-1.3.0/tests/integration/test_indexing_parser_selection.py +60 -0
- mdrack-1.3.0/tests/integration/test_indexing_reliability.py +303 -0
- mdrack-1.3.0/tests/integration/test_logical_id_lifecycle.py +139 -0
- mdrack-1.3.0/tests/integration/test_markdown_metadata_preservation.py +120 -0
- mdrack-1.3.0/tests/integration/test_markdown_projection_pipeline.py +160 -0
- mdrack-1.3.0/tests/integration/test_metadata_filter_parity.py +200 -0
- mdrack-1.3.0/tests/integration/test_metadata_lexical_search.py +256 -0
- mdrack-1.3.0/tests/integration/test_raw_text_ingestion.py +27 -0
- mdrack-1.3.0/tests/integration/test_repositories.py +251 -0
- mdrack-1.3.0/tests/integration/test_resource_core_sqlite.py +744 -0
- mdrack-1.3.0/tests/integration/test_semantic_search_fake.py +216 -0
- mdrack-1.3.0/tests/integration/test_source_locator_parity.py +59 -0
- mdrack-1.3.0/tests/integration/test_sqlite_catalog_api.py +352 -0
- mdrack-1.3.0/tests/integration/test_sqlite_clean_migrations.py +529 -0
- mdrack-1.3.0/tests/integration/test_sqlite_migrations.py +482 -0
- mdrack-1.3.0/tests/integration/test_sqlite_vector_backend_strategy.py +287 -0
- mdrack-1.3.0/tests/integration/test_text_search.py +212 -0
- mdrack-1.3.0/tests/integration/test_transcript_ingestion.py +742 -0
- mdrack-1.3.0/tests/integration/test_unified_retrieval.py +89 -0
- mdrack-1.3.0/tests/integration/test_v11_textual_similarity.py +222 -0
- mdrack-1.3.0/tests/integration/test_vector_codecs.py +71 -0
- mdrack-1.3.0/tests/integration/test_vector_index_fake.py +216 -0
- mdrack-1.3.0/tests/integration/test_video_composition.py +593 -0
- mdrack-1.3.0/tests/media/test_audio_builder.py +251 -0
- mdrack-1.3.0/tests/media/test_frame_builder.py +199 -0
- mdrack-1.3.0/tests/media/test_media_contracts.py +687 -0
- mdrack-1.3.0/tests/media/test_media_retrieval.py +203 -0
- mdrack-1.3.0/tests/media/test_timed_grouper.py +380 -0
- mdrack-1.3.0/tests/media/test_whole_resource_similarity.py +113 -0
- mdrack-1.3.0/tests/packaging/test_core_distribution.py +67 -0
- mdrack-1.3.0/tests/packaging/test_future_host_consumer.py +68 -0
- mdrack-1.3.0/tests/packaging/test_media_distribution.py +86 -0
- mdrack-1.3.0/tests/packaging/test_sqlite_distribution.py +94 -0
- mdrack-1.3.0/tests/privacy/v1_1/sentinels.json +36 -0
- mdrack-1.3.0/tests/privacy/v1_1/test_frozen_sentinels.py +46 -0
- mdrack-1.3.0/tests/privacy_oracle.py +107 -0
- mdrack-1.3.0/tests/render_chunk_debug.py +170 -0
- mdrack-1.3.0/tests/retrieval_eval/baseline_queries.yaml +27 -0
- mdrack-1.3.0/tests/retrieval_eval/queries.yaml +17 -0
- mdrack-1.3.0/tests/test_version.py +10 -0
- mdrack-1.3.0/tests/unit/__init__.py +1 -0
- mdrack-1.3.0/tests/unit/conftest.py +11 -0
- mdrack-1.3.0/tests/unit/test_artifact_cache.py +154 -0
- mdrack-1.3.0/tests/unit/test_baseline_harness.py +230 -0
- mdrack-1.3.0/tests/unit/test_change_detector.py +238 -0
- mdrack-1.3.0/tests/unit/test_chunk_audit.py +223 -0
- mdrack-1.3.0/tests/unit/test_chunk_builder.py +397 -0
- mdrack-1.3.0/tests/unit/test_config.py +299 -0
- mdrack-1.3.0/tests/unit/test_core_boundaries.py +267 -0
- mdrack-1.3.0/tests/unit/test_embedding_profiles.py +113 -0
- mdrack-1.3.0/tests/unit/test_embedding_text.py +129 -0
- mdrack-1.3.0/tests/unit/test_eval_metrics.py +38 -0
- mdrack-1.3.0/tests/unit/test_eval_privacy.py +68 -0
- mdrack-1.3.0/tests/unit/test_eval_quality.py +109 -0
- mdrack-1.3.0/tests/unit/test_eval_queries.py +172 -0
- mdrack-1.3.0/tests/unit/test_eval_report_contracts.py +97 -0
- mdrack-1.3.0/tests/unit/test_eval_retrieval.py +185 -0
- mdrack-1.3.0/tests/unit/test_fake_embeddings.py +252 -0
- mdrack-1.3.0/tests/unit/test_forbidden_deps.py +17 -0
- mdrack-1.3.0/tests/unit/test_hybrid_retrieval.py +74 -0
- mdrack-1.3.0/tests/unit/test_hybrid_scoring.py +341 -0
- mdrack-1.3.0/tests/unit/test_json_output.py +27 -0
- mdrack-1.3.0/tests/unit/test_live_lmstudio_eval.py +216 -0
- mdrack-1.3.0/tests/unit/test_lmstudio_provider.py +712 -0
- mdrack-1.3.0/tests/unit/test_markdown_image_projection.py +362 -0
- mdrack-1.3.0/tests/unit/test_markdown_ir.py +282 -0
- mdrack-1.3.0/tests/unit/test_markdown_it_parser.py +217 -0
- mdrack-1.3.0/tests/unit/test_markdown_parser.py +350 -0
- mdrack-1.3.0/tests/unit/test_mdrack_skill.py +107 -0
- mdrack-1.3.0/tests/unit/test_metadata_filters.py +71 -0
- mdrack-1.3.0/tests/unit/test_metadata_lexical.py +135 -0
- mdrack-1.3.0/tests/unit/test_metadata_normalization.py +148 -0
- mdrack-1.3.0/tests/unit/test_metadata_privacy.py +100 -0
- mdrack-1.3.0/tests/unit/test_metadata_projection.py +146 -0
- mdrack-1.3.0/tests/unit/test_metadata_transport.py +209 -0
- mdrack-1.3.0/tests/unit/test_model_ports.py +22 -0
- mdrack-1.3.0/tests/unit/test_offline_release_matrix.py +249 -0
- mdrack-1.3.0/tests/unit/test_offline_scripts.py +40 -0
- mdrack-1.3.0/tests/unit/test_optional_provider_contracts.py +129 -0
- mdrack-1.3.0/tests/unit/test_prepared_resource_manifest.py +520 -0
- mdrack-1.3.0/tests/unit/test_privacy_evidence_oracle.py +279 -0
- mdrack-1.3.0/tests/unit/test_raw_audio_ingestion.py +117 -0
- mdrack-1.3.0/tests/unit/test_raw_source_provenance.py +308 -0
- mdrack-1.3.0/tests/unit/test_raw_text_ingestion.py +50 -0
- mdrack-1.3.0/tests/unit/test_raw_video_ingestion.py +64 -0
- mdrack-1.3.0/tests/unit/test_release_publication.py +433 -0
- mdrack-1.3.0/tests/unit/test_s6_core_compatibility.py +268 -0
- mdrack-1.3.0/tests/unit/test_s8_failure_matrix.py +322 -0
- mdrack-1.3.0/tests/unit/test_s8_privacy_contracts.py +203 -0
- mdrack-1.3.0/tests/unit/test_scanner.py +172 -0
- mdrack-1.3.0/tests/unit/test_section_builder.py +97 -0
- mdrack-1.3.0/tests/unit/test_source_locator.py +66 -0
- mdrack-1.3.0/tests/unit/test_structural_chunking.py +272 -0
- mdrack-1.3.0/tests/unit/test_structural_chunking_golden.py +345 -0
- mdrack-1.3.0/tests/unit/test_unified_text_resources.py +426 -0
- mdrack-1.3.0/tests/unit/test_v11_application_contracts.py +85 -0
- mdrack-1.3.0/tests/unit/test_v11_search_presets.py +310 -0
- mdrack-1.3.0/tests/unit/test_v12_release_contract.py +49 -0
- mdrack-1.3.0/tests/unit/test_v13_release_contract.py +290 -0
- mdrack-1.3.0/tests/unit/test_v13_sqlite_vec_nonpromotion.py +104 -0
- mdrack-1.3.0/tests/unit/test_vector_value_policy.py +64 -0
- mdrack-1.3.0/tests/unit/transcripts/test_readers.py +249 -0
- 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/
|
mdrack-1.3.0/.gitignore
ADDED
|
@@ -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.
|