Skip to main content

harn_vm/
stdlib.rs

1//! Standard library builtins for the Harn VM.
2//!
3//! Each category of builtins lives in its own sub-module.
4
5mod concurrency;
6mod crypto;
7mod datetime;
8mod fs;
9mod io;
10mod json;
11mod logging;
12mod math;
13mod process;
14mod regex;
15mod sets;
16mod shapes;
17mod strings;
18mod testing;
19mod tools;
20mod tracing;
21mod types;
22
23use crate::http::register_http_builtins;
24use crate::llm::register_llm_builtins;
25use crate::mcp::register_mcp_builtins;
26use crate::vm::Vm;
27
28// Re-export helpers used by other modules in harn-vm
29pub(crate) use json::json_to_vm_value;
30
31/// Register all standard builtins on a VM.
32pub fn register_vm_stdlib(vm: &mut Vm) {
33    io::register_io_builtins(vm);
34    types::register_type_builtins(vm);
35    math::register_math_builtins(vm);
36    strings::register_string_builtins(vm);
37    json::register_json_builtins(vm);
38    fs::register_fs_builtins(vm);
39    process::register_process_builtins(vm);
40    datetime::register_datetime_builtins(vm);
41    regex::register_regex_builtins(vm);
42    crypto::register_crypto_builtins(vm);
43    sets::register_set_builtins(vm);
44    testing::register_testing_builtins(vm);
45    concurrency::register_concurrency_builtins(vm);
46    tools::register_tool_builtins(vm);
47    tracing::register_tracing_builtins(vm);
48    shapes::register_shape_builtins(vm);
49
50    register_http_builtins(vm);
51    register_llm_builtins(vm);
52    register_mcp_builtins(vm);
53}
54
55/// Reset thread-local stdlib state (logging, tracing). Call between test runs.
56pub fn reset_stdlib_state() {
57    logging::reset_logging_state();
58}