Entropic 2.3.8
Local-first agentic inference engine
Loading...
Searching...
No Matches
bundled_models.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
13#pragma once
14
16#include <filesystem>
17#include <string>
18#include <unordered_map>
19
20namespace entropic::config {
21
31 std::string key;
32 std::string name;
33 std::string url;
34 double size_gb = 0.0;
35 std::string adapter;
36 std::string description;
37
45 std::string mmproj_key;
46
47 /* ── gh#62: structured selectors (v2.3.0) ──────────────────
48 *
49 * Optional metadata that lets consumers query for a bundled
50 * model by (family, size, quant) instead of remembering a flat
51 * key. All four fields are opt-in — existing YAML entries that
52 * don't declare them still work as before, just without query
53 * support. The eventual end-state (separate issue) is to make
54 * these the primary lookup mode and treat the flat key as a
55 * derived shortcut. */
56 std::string provider;
57 std::string family;
58 std::string size_label;
59 std::string quant;
60};
61
77class ENTROPIC_EXPORT BundledModels {
78public:
85 std::string load(const std::filesystem::path& path);
86
93 bool contains(const std::string& key) const;
94
101 const BundledModelEntry* get(const std::string& key) const;
102
113 std::filesystem::path resolve(const std::string& value) const;
114
120 const std::unordered_map<std::string, BundledModelEntry>& entries() const;
121
142 std::string find_by(
143 const std::string& family,
144 const std::string& size_label,
145 const std::string& quant) const;
146
157 std::string auto_discover_and_load();
158
159private:
160 std::unordered_map<std::string, BundledModelEntry> entries_;
161};
162
163} // namespace entropic::config
Bundled model registry loaded from bundled_models.yaml.
Symbol visibility macro for all exported symbols.
Entry in the bundled model registry.
std::string size_label
e.g. "0_8b", "2b", "4b", "9b", "e2b", "nano_4b"
std::string key
Registry key (e.g., "primary")
std::string description
Human-readable description.
double size_gb
Model size in GB.
std::string provider
e.g. "unsloth"
std::string mmproj_key
Paired mmproj registry key, or empty (gh#42, v2.1.8).
std::string family
e.g. "qwen3_5", "gemma4", "nemotron3"
std::string quant
e.g. "Q8_0", "Q4_K_M", "UD-IQ4_XS"
std::string name
Model filename stem (e.g., "Qwen3.5-35B-A3B-UD-IQ3_XXS")
std::string adapter
Adapter name (e.g., "qwen35")