Skip to main content

Crate sema_core

Crate sema_core 

Source

Re-exports§

pub use async_signal::blocking_sleep_ms;
pub use async_signal::check_interrupt;
pub use async_signal::clear_blocking_sleep_callback;
pub use async_signal::clear_interrupt_callback;
pub use async_signal::current_conversation_scope_boxed;
pub use async_signal::current_llm_scope_boxed;
pub use async_signal::current_task_id;
pub use async_signal::current_usage_scope_boxed;
pub use async_signal::in_runtime_quantum;
pub use async_signal::install_task_llm_scope;
pub use async_signal::install_task_otel;
pub use async_signal::install_task_usage_scope;
pub use async_signal::llm_scope_ambient_is_empty;
pub use async_signal::llm_scope_captured_is_empty;
pub use async_signal::notify_task_reaped;
pub use async_signal::otel_ambient_is_empty;
pub use async_signal::otel_captured_is_empty;
pub use async_signal::set_blocking_sleep_callback;
pub use async_signal::set_current_task_id;
pub use async_signal::set_interrupt_callback;
pub use async_signal::set_llm_scope_empty_callbacks;
pub use async_signal::set_llm_scope_task_callbacks;
pub use async_signal::set_otel_empty_callbacks;
pub use async_signal::set_otel_task_callbacks;
pub use async_signal::set_runtime_quantum;
pub use async_signal::set_task_reaped_callback;
pub use async_signal::set_usage_scope_empty_callbacks;
pub use async_signal::set_usage_scope_task_callbacks;
pub use async_signal::take_task_llm_scope;
pub use async_signal::take_task_otel;
pub use async_signal::take_task_usage_scope;
pub use async_signal::usage_scope_ambient_is_empty;
pub use async_signal::usage_scope_captured_is_empty;
pub use async_signal::BlockingSleepFn;
pub use async_signal::InterruptCallbackFn;
pub use async_signal::LlmScopeAmbientEmptyFn;
pub use async_signal::LlmScopeCaptureFn;
pub use async_signal::LlmScopeInstallFn;
pub use async_signal::LlmScopeIsEmptyFn;
pub use async_signal::LlmScopeTakeFn;
pub use async_signal::OtelAmbientEmptyFn;
pub use async_signal::OtelInstallFn;
pub use async_signal::OtelIsEmptyFn;
pub use async_signal::OtelScopeFn;
pub use async_signal::OtelTakeFn;
pub use async_signal::TaskReapedFn;
pub use async_signal::UsageScopeAmbientEmptyFn;
pub use async_signal::UsageScopeCaptureFn;
pub use async_signal::UsageScopeInstallFn;
pub use async_signal::UsageScopeIsEmptyFn;
pub use async_signal::UsageScopeTakeFn;
pub use context::call_callback;
pub use context::call_callback_owned;
pub use context::eval_callback;
pub use context::set_call_callback;
pub use context::set_call_owned_callback;
pub use context::set_eval_callback;
pub use context::set_macro_expand_callback;
pub use context::try_macro_expand_callback;
pub use context::with_stdlib_ctx;
pub use context::CallCallbackFn;
pub use context::CallOwnedCallbackFn;
pub use context::EvalCallbackFn;
pub use context::EvalContext;
pub use context::MacroExpandCallbackFn;
pub use cycle::collect as gc_collect;
pub use cycle::env_chain_pins as gc_env_chain_pins;
pub use cycle::last_stats as gc_last_stats;
pub use cycle::maybe_collect as gc_maybe_collect;
pub use cycle::register_candidate;
pub use cycle::register_closure_birth;
pub use cycle::register_env_candidate;
pub use cycle::register_payload_tracer;
pub use cycle::registry_len as gc_registry_len;
pub use cycle::set_gc_observer;
pub use cycle::set_runtime_interior_hooks;
pub use cycle::should_collect as gc_should_collect;
pub use cycle::threshold_collect as gc_threshold_collect;
pub use cycle::trace_value;
pub use cycle::EnvBindings;
pub use cycle::GcEdge;
pub use cycle::GcNode;
pub use cycle::GcPassEvent;
pub use cycle::GcStats;
pub use cycle::GcTrigger;
pub use cycle::NodePtr;
pub use cycle::OpaqueSeverFn;
pub use cycle::OpaqueTraceFn;
pub use cycle::PayloadTracer;
pub use cycle::RuntimeInteriorHooks;
pub use error::suggest_similar;
pub use error::CallFrame;
pub use error::PolicyDenial;
pub use error::SemaError;
pub use error::Span;
pub use error::SpanMap;
pub use error::StackTrace;
pub use home::sema_home;
pub use io_backend::io_backend;
pub use io_backend::io_block_on;
pub use io_backend::io_spawn;
pub use io_backend::io_spawn_blocking;
pub use io_backend::set_io_backend;
pub use io_backend::AbortHook;
pub use io_backend::BoxIoFuture;
pub use io_backend::IoBackend;
pub use json::json_to_value;
pub use json::key_to_string;
pub use json::value_to_json;
pub use json::value_to_json_lossy;
pub use mcp_cassette::clear_mcp_cassette_hook;
pub use mcp_cassette::mcp_cassette_decide;
pub use mcp_cassette::set_mcp_cassette_hook;
pub use mcp_cassette::McpCassetteDecision;
pub use mcp_cassette::McpCassetteRecordTarget;
pub use mcp_cassette::McpCassetteRecorder;
pub use mutable_ops::mutable_array_get;
pub use mutable_ops::mutable_array_set;
pub use output_hook::current_root;
pub use output_hook::mark_root_capturing;
pub use output_hook::register_output_capture_sink;
pub use output_hook::set_current_root;
pub use output_hook::set_host_stderr_hook;
pub use output_hook::set_host_stdout_hook;
pub use output_hook::unmark_root_capturing;
pub use output_hook::unregister_output_capture_sink;
pub use output_hook::write_stderr;
pub use output_hook::write_stdout;
pub use output_hook::CapturedOutput;
pub use sandbox::Caps;
pub use sandbox::Sandbox;
pub use text_util::truncate_chars;
pub use value::bits_to_spur;
pub use value::compare_spurs;
pub use value::intern;
pub use value::interner_stats;
pub use value::next_gensym;
pub use value::pretty_print;
pub use value::resolve;
pub use value::resolve_multimethod_handler;
pub use value::select_multimethod_handler;
pub use value::spur_to_bits;
pub use value::with_resolved;
pub use value::Agent;
pub use value::AsyncPromise;
pub use value::Channel;
pub use value::Conversation;
pub use value::Env;
pub use value::FileAccess;
pub use value::ImageAttachment;
pub use value::Lambda;
pub use value::Macro;
pub use value::Message;
pub use value::MultiMethod;
pub use value::MutableArray;
pub use value::MutableCell;
pub use value::NativeFn;
pub use value::NativeSuspensionClass;
pub use value::PromiseState;
pub use value::Prompt;
pub use value::Record;
pub use value::Role;
pub use value::SemaStream;
pub use value::StreamBox;
pub use value::SyntaxRules;
pub use value::Thunk;
pub use value::ToolDefinition;
pub use value::ToolPolicySubject;
pub use value::Value;
pub use value::ValueView;
pub use value::ValueViewRef;
pub use value::NAN_INT_SIGN_BIT;
pub use value::NAN_INT_SMALL_PATTERN;
pub use value::NAN_PAYLOAD_BITS;
pub use value::NAN_PAYLOAD_MASK;
pub use value::NAN_TAG_MASK;
pub use value::TAG_NATIVE_FN;

Modules§

archive
VFS archive binary format for bundling files into a standalone executable.
async_signal
Async runtime context and per-task signaling infrastructure.
context
cycle
CORE-2 cycle collector (ADR #66, docs/plans/2026-07-02-core2-gc.md).
error
home
io_backend
Executor seam for offloaded I/O (ADR #69): one process-wide backend behind a tokio-free trait, so every crate that offloads work (http, shell, LLM wire calls) parks/wakes through ONE pool instead of growing its own runtime.
json
Canonical conversions between Value and serde_json::Value.
mcp_cassette
MCP-call cassette hook — a crate-neutral seam so sema-mcp can record/replay tool calls through the LLM cassette that lives in sema-llm, without a dependency edge between the two crates.
mutable_ops
Shared implementations of the mutable-array accessors.
net
Networking helpers shared across the servers Sema ships (http/serve, the notebook server, the web dev server).
num
Exact numeric comparison across the int/float boundary.
number
The Sema numeric tower: exact integers (arbitrary precision), exact rationals, inexact reals, and complex numbers. This module is the arithmetic currency — Value lifts operands into SemaNumber, computes here, and lowers the result back to the tightest Value representation. It has NO dependency on NaN-boxing and is unit-tested in isolation.
output_hook
resolve
runtime
sandbox
stack
Stack-growth guard for deeply recursive work.
text_util
Small UTF-8-safe string helpers shared across crates.
value
vfs

Macros§

check_arity
Check arity of a native function’s arguments, returning SemaError::Arity on mismatch.

Structs§

Spur
The default key for every Rodeo, uses only 32 bits of space