markdown · 2540 bytes Raw Blame History

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 for
  • quant: the export family (Q4_K_M, Q8_0, hf, ...)
  • merged / dequantized: whether LoRA weights were merged into the base
  • created_at and created_by
  • llama_cpp_tag when the target depends on vendored llama.cpp
  • base_model_hf_id and base_model_revision
  • adapter_version
  • artifacts: 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:

  • ollama
  • llama-server
  • vllm
  • mlx-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 target it used
  • GGUF checksums when present
  • ollama_name when 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.