Skip to main content

sema_core/
lib.rs

1#![allow(clippy::mutable_key_type)]
2pub mod archive;
3pub mod async_signal;
4pub mod context;
5pub mod cycle;
6pub mod error;
7pub mod home;
8pub mod io_backend;
9pub mod json;
10pub mod mcp_cassette;
11pub mod mutable_ops;
12pub mod net;
13pub mod num;
14pub mod number;
15pub mod output_hook;
16pub mod resolve;
17pub mod sandbox;
18pub mod stack;
19pub mod text_util;
20pub mod value;
21pub mod vfs;
22
23pub use async_signal::{
24    blocking_sleep_ms, check_interrupt, clear_blocking_sleep_callback, clear_interrupt_callback,
25    current_conversation_scope_boxed, current_llm_scope_boxed, current_task_id,
26    current_usage_scope_boxed, in_runtime_quantum, install_task_llm_scope, install_task_otel,
27    install_task_usage_scope, llm_scope_ambient_is_empty, llm_scope_captured_is_empty,
28    notify_task_reaped, otel_ambient_is_empty, otel_captured_is_empty, set_blocking_sleep_callback,
29    set_current_task_id, set_interrupt_callback, set_llm_scope_empty_callbacks,
30    set_llm_scope_task_callbacks, set_otel_empty_callbacks, set_otel_task_callbacks,
31    set_runtime_quantum, set_task_reaped_callback, set_usage_scope_empty_callbacks,
32    set_usage_scope_task_callbacks, take_task_llm_scope, take_task_otel, take_task_usage_scope,
33    usage_scope_ambient_is_empty, usage_scope_captured_is_empty, BlockingSleepFn,
34    InterruptCallbackFn, LlmScopeAmbientEmptyFn, LlmScopeCaptureFn, LlmScopeInstallFn,
35    LlmScopeIsEmptyFn, LlmScopeTakeFn, OtelAmbientEmptyFn, OtelInstallFn, OtelIsEmptyFn,
36    OtelScopeFn, OtelTakeFn, TaskReapedFn, UsageScopeAmbientEmptyFn, UsageScopeCaptureFn,
37    UsageScopeInstallFn, UsageScopeIsEmptyFn, UsageScopeTakeFn,
38};
39pub use context::{
40    call_callback, call_callback_owned, eval_callback, set_call_callback, set_call_owned_callback,
41    set_eval_callback, set_macro_expand_callback, try_macro_expand_callback, with_stdlib_ctx,
42    CallCallbackFn, CallOwnedCallbackFn, EvalCallbackFn, EvalContext, MacroExpandCallbackFn,
43};
44pub use cycle::{
45    collect as gc_collect, env_chain_pins as gc_env_chain_pins, last_stats as gc_last_stats,
46    maybe_collect as gc_maybe_collect, register_candidate, register_closure_birth,
47    register_env_candidate, register_payload_tracer, registry_len as gc_registry_len,
48    set_gc_observer, set_runtime_interior_hooks, should_collect as gc_should_collect,
49    threshold_collect as gc_threshold_collect, trace_value, EnvBindings, GcEdge, GcNode,
50    GcPassEvent, GcStats, GcTrigger, NodePtr, OpaqueSeverFn, OpaqueTraceFn, PayloadTracer,
51    RuntimeInteriorHooks,
52};
53pub use error::{suggest_similar, CallFrame, PolicyDenial, SemaError, Span, SpanMap, StackTrace};
54pub use home::sema_home;
55pub use io_backend::{
56    io_backend, io_block_on, io_spawn, io_spawn_blocking, set_io_backend, AbortHook, BoxIoFuture,
57    IoBackend,
58};
59pub use json::{json_to_value, key_to_string, value_to_json, value_to_json_lossy};
60pub use lasso::Spur;
61pub use mcp_cassette::{
62    clear_mcp_cassette_hook, mcp_cassette_decide, set_mcp_cassette_hook, McpCassetteDecision,
63    McpCassetteRecordTarget, McpCassetteRecorder,
64};
65pub use mutable_ops::{mutable_array_get, mutable_array_set};
66pub use output_hook::{
67    capturing_root_count, current_root, mark_root_capturing, register_output_capture_sink,
68    set_current_root, set_host_stderr_hook, set_host_stdout_hook, unmark_root_capturing,
69    unregister_output_capture_sink, write_stderr, write_stdout, CapturedOutput,
70};
71pub use sandbox::{Caps, Sandbox};
72pub use text_util::truncate_chars;
73pub use value::{
74    bits_to_spur, compare_spurs, intern, interner_stats, next_gensym, pretty_print, resolve,
75    resolve_multimethod_handler, select_multimethod_handler, spur_to_bits, with_resolved, Agent,
76    AsyncPromise, Channel, Conversation, Env, FileAccess, ImageAttachment, Lambda, Macro, Message,
77    MultiMethod, MutableArray, MutableCell, NativeFn, NativeSuspensionClass, PromiseState, Prompt,
78    Record, Role, SemaStream, StreamBox, SyntaxRules, Thunk, ToolDefinition, ToolPolicySubject,
79    Value, ValueView, ValueViewRef, NAN_INT_SIGN_BIT, NAN_INT_SMALL_PATTERN, NAN_PAYLOAD_BITS,
80    NAN_PAYLOAD_MASK, NAN_TAG_MASK, TAG_NATIVE_FN,
81};
82
83pub mod runtime;