1#pragma once
2
3#include "runtime.h"
4
5#include <string>
6#include <map>
7
8namespace jinja {
9
10struct caps {
11 bool supports_tools = true;
12 bool supports_tool_calls = true;
13 bool supports_system_role = true;
14 bool supports_parallel_tool_calls = true;
15 bool supports_preserve_reasoning = false; // support assistant message with reasoning_content
16
17 // one of the 2 content capabilities must be true
18 bool supports_string_content = true;
19 bool supports_typed_content = false;
20
21 // for reporting on server
22 std::map<std::string, bool> to_map() const;
23
24 // for debugging
25 std::string to_string() const;
26};
27
28caps caps_get(jinja::program & prog);
29
30} // namespace jinja