Entropic 2.3.8
Local-first agentic inference engine
Loading...
Searching...
No Matches
grammar_registry.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
25#pragma once
26
28
29#include <filesystem>
30#include <mutex>
31#include <string>
32#include <unordered_map>
33#include <vector>
34
35namespace entropic {
36
46public:
59 size_t load_bundled(const std::filesystem::path& grammar_dir);
60
74 bool register_grammar(const std::string& key,
75 const std::string& gbnf_content,
76 const std::string& source = "runtime");
77
86 bool register_from_file(const std::string& key,
87 const std::filesystem::path& path);
88
98 bool deregister(const std::string& key);
99
109 std::string get(const std::string& key) const;
110
118 bool has(const std::string& key) const;
119
127 GrammarEntry entry(const std::string& key) const;
128
135 std::vector<GrammarEntry> list() const;
136
148 static std::string validate(const std::string& gbnf_content);
149
156 size_t size() const;
157
163 void clear();
164
165private:
167 std::unordered_map<std::string, GrammarEntry> grammars_;
168
170 mutable std::mutex registry_mutex_;
171};
172
173} // namespace entropic
Centralized grammar registry for named GBNF grammars.
size_t load_bundled(const std::filesystem::path &grammar_dir)
Load all bundled grammars from a directory.
size_t size() const
Number of registered grammars.
static std::string validate(const std::string &gbnf_content)
Validate a GBNF grammar string.
GrammarEntry entry(const std::string &key) const
Get full entry metadata for a grammar key.
bool deregister(const std::string &key)
Remove a grammar from the registry.
bool has(const std::string &key) const
Check if a grammar key exists in the registry.
std::vector< GrammarEntry > list() const
List all registered grammar keys.
void clear()
Remove all registered grammars.
bool register_from_file(const std::string &key, const std::filesystem::path &path)
Register a grammar from a file path.
std::string get(const std::string &key) const
Get GBNF content string for a grammar key.
bool register_grammar(const std::string &key, const std::string &gbnf_content, const std::string &source="runtime")
Register a grammar by key with GBNF content string.
Configuration structs with defaults.
Activate model on GPU (WARM → ACTIVE).
Metadata for a registered grammar.
Definition config.h:80