1mod agent_sessions;
4pub mod agent_state;
5mod agents;
6mod agents_daemon;
7pub(crate) mod assemble;
8pub mod asset_paths;
9mod bytes;
10mod clock;
11mod collections;
12mod command_policy;
13mod compression;
14mod concurrency;
15mod connectors;
16mod cookies;
17mod crypto;
18mod csv;
19mod datetime;
20mod event_log;
21mod flow;
22mod fs;
23pub(crate) mod hitl;
24mod hitl_read;
25pub mod host;
26pub(crate) mod io;
27mod iter;
28pub(crate) mod json;
29mod json_query;
30mod junit;
31mod logging;
32pub mod long_running;
33mod math;
34mod memory;
35mod monitors;
36mod multipart;
37mod path;
38mod postgres;
39pub mod process;
40mod project;
41mod project_catalog;
42mod project_enrich;
43mod regex;
44mod review;
45pub(crate) mod sandbox;
46pub mod secret_scan;
47mod sets;
48mod shapes;
49mod skills;
50mod strings;
51pub(crate) mod supervisor;
52pub mod template;
53mod testing;
54pub(crate) mod tools;
55pub mod tracing;
56mod transcript_compact;
57mod triggers_stdlib;
58mod types;
59mod url_parse;
60mod vision;
61pub(crate) mod waitpoint;
62mod waitpoints;
63pub mod workflow_messages;
64
65use crate::http::register_http_builtins;
66use crate::llm::register_llm_builtins;
67use crate::mcp::register_mcp_builtins;
68use crate::mcp_server::register_mcp_server_builtins;
69use crate::vm::Vm;
70
71pub(crate) use crate::schema::{json_to_vm_value, schema_result_value};
72pub(crate) fn set_thread_source_dir(dir: &std::path::Path) {
73 process::set_thread_source_dir(dir);
74}
75
76pub fn register_core_stdlib(vm: &mut Vm) {
78 crate::runtime_context::register_runtime_context_builtins(vm);
79 types::register_type_builtins(vm);
80 math::register_math_builtins(vm);
81 strings::register_string_builtins(vm);
82 json::register_json_builtins(vm);
83 datetime::register_datetime_builtins(vm);
84 regex::register_regex_builtins(vm);
85 bytes::register_bytes_builtins(vm);
86 compression::register_compression_builtins(vm);
87 command_policy::register_command_policy_builtins(vm);
88 crypto::register_crypto_builtins(vm);
89 csv::register_csv_builtins(vm);
90 junit::register_junit_builtins(vm);
91 multipart::register_multipart_builtins(vm);
92 url_parse::register_url_builtins(vm);
93 cookies::register_cookie_builtins(vm);
94 path::register_path_helper_builtins(vm);
95 sets::register_set_builtins(vm);
96 collections::register_collection_builtins(vm);
97 iter::register_iter_builtins(vm);
98 event_log::register_event_log_builtins(vm);
99 shapes::register_shape_builtins(vm);
100 testing::register_testing_builtins(vm);
101 flow::register_flow_builtins(vm);
102}
103
104pub fn register_io_stdlib(vm: &mut Vm) {
106 io::register_io_builtins(vm);
107 host::register_host_builtins(vm);
108 fs::register_fs_builtins(vm);
109 vision::register_vision_builtins(vm);
110 agent_state::register_agent_state_builtins(vm);
111 memory::register_memory_builtins(vm);
112 process::register_process_builtins(vm);
113 process::register_path_builtins(vm);
114 clock::register_clock_builtins(vm);
117 project::register_project_builtins(vm);
118 tracing::register_tracing_builtins(vm);
119}
120
121pub fn register_agent_stdlib(vm: &mut Vm) {
123 concurrency::register_concurrency_builtins(vm);
124 connectors::register_connector_builtins(vm);
125 review::register_review_builtins(vm);
126 secret_scan::register_secret_scan_builtins(vm);
127 tools::register_tool_builtins(vm);
128 skills::register_skill_builtins(vm);
129 agents_daemon::register_daemon_builtins(vm);
130 triggers_stdlib::register_trigger_builtins(vm);
131 postgres::register_postgres_builtins(vm);
132 waitpoints::register_waitpoint_builtins(vm);
133 monitors::register_monitor_builtins(vm);
134 hitl::register_hitl_builtins(vm);
135 hitl_read::register_hitl_read_builtins(vm);
136 waitpoint::register_waitpoint_builtins(vm);
137 supervisor::register_supervisor_builtins(vm);
138 agents::register_agent_builtins(vm);
139 agent_sessions::register_agent_session_builtins(vm);
140 workflow_messages::register_workflow_message_builtins(vm);
141 transcript_compact::register_transcript_compaction_builtins(vm);
142 assemble::register_assemble_context_builtin(vm);
143 crate::egress::register_egress_builtins(vm);
144 register_http_builtins(vm);
145 register_llm_builtins(vm);
146 register_mcp_builtins(vm);
147 register_mcp_server_builtins(vm);
148}
149
150pub fn register_vm_stdlib(vm: &mut Vm) {
152 register_core_stdlib(vm);
153 register_io_stdlib(vm);
154 register_agent_stdlib(vm);
155}
156
157pub fn stdlib_builtin_names() -> Vec<String> {
160 let mut vm = Vm::new();
161 register_vm_stdlib(&mut vm);
162 let tmp = std::env::temp_dir();
166 crate::store::register_store_builtins(&mut vm, &tmp);
167 crate::checkpoint::register_checkpoint_builtins(&mut vm, &tmp, "default");
168 crate::metadata::register_metadata_builtins(&mut vm, &tmp);
169 crate::metadata::register_scan_builtins(&mut vm);
170 let mut names = vm.builtin_names();
171 for extra in [
174 "spawn",
175 "await",
176 "cancel",
177 "cancel_graceful",
178 "is_cancelled",
179 ] {
180 names.push(extra.to_string());
181 }
182 names
183}
184
185pub fn reset_stdlib_state() {
187 logging::reset_logging_state();
188 process::reset_process_state();
189 clock::reset_clock_state();
190 io::reset_io_state();
191 sandbox::reset_sandbox_state();
192 fs::reset_fs_state();
193 long_running::reset_state();
194 json::reset_json_state();
195 host::reset_host_state();
196 crate::egress::reset_egress_policy_for_host();
197 hitl::reset_hitl_state();
198 crate::http::reset_http_state();
199 monitors::reset_monitor_state();
200 waitpoints::reset_waitpoint_state();
201 waitpoint::reset_waitpoint_state();
202 postgres::reset_postgres_state();
203 supervisor::reset_supervisor_state();
204 agents::records::reset_eval_metrics();
205 agents::records::reset_friction_events();
206 tools::clear_current_tool_registry();
207 tools::clear_tool_synthesis_cache();
208 vision::reset_vision_state();
209 crate::skills::clear_current_skill_registry();
210 template::reset_prompt_registry();
211 crate::triggers::clear_webhook_intake_state();
212}