documentlanguagemodel Public
Export manifest
Every dlm export writes an export_manifest.json inside the export directory.
It is the target-local record of what DLM emitted, separate from the broader
per-store manifest.json.
Examples:
~/.dlm/store/<dlm_id>/exports/Q4_K_M/export_manifest.json~/.dlm/store/<dlm_id>/exports/vllm/export_manifest.json~/.dlm/store/<dlm_id>/exports/mlx-serve/export_manifest.json
What it records
The manifest captures:
target: which runtime this export was prepared forquant: the export family (Q4_K_M,Q8_0,hf, ...)merged/dequantized: whether LoRA weights were merged into the basecreated_atandcreated_byllama_cpp_tagwhen the target depends on vendoredllama.cppbase_model_hf_idandbase_model_revisionadapter_versionartifacts: every emitted file with relative path, sha256, and size
The schema is strict and round-trips through the Pydantic model in
src/dlm/export/manifest.py.
Example
{
"target": "llama-server",
"quant": "Q4_K_M",
"merged": false,
"dequantized": false,
"ollama_name": null,
"created_at": "2026-04-23T18:42:00",
"created_by": "dlm-0.1.0",
"llama_cpp_tag": "b4281",
"base_model_hf_id": "HuggingFaceTB/SmolLM2-135M-Instruct",
"base_model_revision": "4c0d2...",
"adapter_version": 3,
"artifacts": [
{
"path": "base.Q4_K_M.gguf",
"sha256": "…",
"size_bytes": 47211904
},
{
"path": "adapter.gguf",
"sha256": "…",
"size_bytes": 3145728
},
{
"path": "llama-server_launch.sh",
"sha256": "…",
"size_bytes": 312
}
]
}
target
target is now the load-bearing field for Sprint 41’s runtime split.
Current values:
ollamallama-servervllmmlx-serve
That lets downstream tooling distinguish:
- a GGUF + Modelfile export meant for Ollama
- a GGUF-backed OpenAI-compatible launch artifact set
- an HF-snapshot + LoRA-module export for
vllm - an MLX adapter export for Apple Silicon serving
Relationship to the store manifest
export_manifest.json is per-export and artifact-focused.
The store-level manifest.json keeps the running narrative in exports[]:
- when the export happened
- which
targetit used - GGUF checksums when present
ollama_namewhen relevant- the first smoke output line when a smoke test ran
Use export_manifest.json when you need exact artifact provenance for one
export directory. Use manifest.json when you want the store’s full history.
View source
| 1 | # Export manifest |
| 2 | |
| 3 | Every `dlm export` writes an `export_manifest.json` inside the export directory. |
| 4 | It is the target-local record of what DLM emitted, separate from the broader |
| 5 | per-store `manifest.json`. |
| 6 | |
| 7 | Examples: |
| 8 | |
| 9 | - `~/.dlm/store/<dlm_id>/exports/Q4_K_M/export_manifest.json` |
| 10 | - `~/.dlm/store/<dlm_id>/exports/vllm/export_manifest.json` |
| 11 | - `~/.dlm/store/<dlm_id>/exports/mlx-serve/export_manifest.json` |
| 12 | |
| 13 | ## What it records |
| 14 | |
| 15 | The manifest captures: |
| 16 | |
| 17 | - `target`: which runtime this export was prepared for |
| 18 | - `quant`: the export family (`Q4_K_M`, `Q8_0`, `hf`, ...) |
| 19 | - `merged` / `dequantized`: whether LoRA weights were merged into the base |
| 20 | - `created_at` and `created_by` |
| 21 | - `llama_cpp_tag` when the target depends on vendored `llama.cpp` |
| 22 | - `base_model_hf_id` and `base_model_revision` |
| 23 | - `adapter_version` |
| 24 | - `artifacts`: every emitted file with relative path, sha256, and size |
| 25 | |
| 26 | The schema is strict and round-trips through the Pydantic model in |
| 27 | `src/dlm/export/manifest.py`. |
| 28 | |
| 29 | ## Example |
| 30 | |
| 31 | ```json |
| 32 | { |
| 33 | "target": "llama-server", |
| 34 | "quant": "Q4_K_M", |
| 35 | "merged": false, |
| 36 | "dequantized": false, |
| 37 | "ollama_name": null, |
| 38 | "created_at": "2026-04-23T18:42:00", |
| 39 | "created_by": "dlm-0.1.0", |
| 40 | "llama_cpp_tag": "b4281", |
| 41 | "base_model_hf_id": "HuggingFaceTB/SmolLM2-135M-Instruct", |
| 42 | "base_model_revision": "4c0d2...", |
| 43 | "adapter_version": 3, |
| 44 | "artifacts": [ |
| 45 | { |
| 46 | "path": "base.Q4_K_M.gguf", |
| 47 | "sha256": "…", |
| 48 | "size_bytes": 47211904 |
| 49 | }, |
| 50 | { |
| 51 | "path": "adapter.gguf", |
| 52 | "sha256": "…", |
| 53 | "size_bytes": 3145728 |
| 54 | }, |
| 55 | { |
| 56 | "path": "llama-server_launch.sh", |
| 57 | "sha256": "…", |
| 58 | "size_bytes": 312 |
| 59 | } |
| 60 | ] |
| 61 | } |
| 62 | ``` |
| 63 | |
| 64 | ## `target` |
| 65 | |
| 66 | `target` is now the load-bearing field for Sprint 41’s runtime split. |
| 67 | |
| 68 | Current values: |
| 69 | |
| 70 | - `ollama` |
| 71 | - `llama-server` |
| 72 | - `vllm` |
| 73 | - `mlx-serve` |
| 74 | |
| 75 | That lets downstream tooling distinguish: |
| 76 | |
| 77 | - a GGUF + Modelfile export meant for Ollama |
| 78 | - a GGUF-backed OpenAI-compatible launch artifact set |
| 79 | - an HF-snapshot + LoRA-module export for `vllm` |
| 80 | - an MLX adapter export for Apple Silicon serving |
| 81 | |
| 82 | ## Relationship to the store manifest |
| 83 | |
| 84 | `export_manifest.json` is per-export and artifact-focused. |
| 85 | |
| 86 | The store-level `manifest.json` keeps the running narrative in `exports[]`: |
| 87 | |
| 88 | - when the export happened |
| 89 | - which `target` it used |
| 90 | - GGUF checksums when present |
| 91 | - `ollama_name` when relevant |
| 92 | - the first smoke output line when a smoke test ran |
| 93 | |
| 94 | Use `export_manifest.json` when you need exact artifact provenance for one |
| 95 | export directory. Use `manifest.json` when you want the store’s full history. |