Skip to main content

runx_runtime/
lib.rs

1//! Native Rust runtime skeleton for runx execution.
2//!
3//! The runtime owns impure boundaries: filesystem reads, subprocess execution,
4//! sandbox preparation, host reporting, and receipt emission. Pure
5//! parser/core/receipt crates stay upstream of this crate.
6//!
7//! The root exports are a facade for CLI, SDK, and test consumers. Helper
8//! surfaces stay under their owning modules: harness replay under `harness`,
9//! receipt stores under `receipts`, adapter protocol under `adapter`, and
10//! runtime orchestration under `runner` or `orchestrator`.
11
12pub mod adapter;
13#[cfg(any(
14    feature = "cli-tool",
15    feature = "catalog",
16    feature = "mcp",
17    feature = "a2a",
18    feature = "agent",
19    feature = "external-adapter"
20))]
21mod adapter_pipeline;
22mod agent_invocation;
23pub mod approval;
24pub mod config;
25pub mod credentials;
26pub mod dev;
27pub mod doctor;
28pub mod effects;
29pub mod error;
30pub mod execution;
31pub mod export;
32mod filesystem;
33pub mod host;
34mod http;
35pub mod journal;
36mod json_render;
37mod lifecycle;
38pub mod list;
39#[cfg(feature = "thread-outbox-provider")]
40pub mod outbox_provider;
41pub mod parser_eval;
42mod path_util;
43mod process;
44pub mod receipts;
45pub mod redaction;
46pub mod registry;
47pub mod sandbox;
48pub mod scaffold;
49mod services;
50mod time;
51pub mod tool_catalogs;
52
53pub use execution::harness;
54pub use execution::orchestrator;
55pub use execution::runner;
56pub use execution::skill_front;
57
58#[cfg(any(
59    feature = "cli-tool",
60    feature = "catalog",
61    feature = "mcp",
62    feature = "a2a",
63    feature = "agent",
64    feature = "external-adapter",
65    feature = "http",
66    feature = "thread-outbox-provider"
67))]
68pub mod adapters;
69
70pub use adapter::{
71    FanoutExecutionMode, InvocationStatus, SkillAdapter, SkillInvocation, SkillOutput,
72};
73pub use approval::{ApprovalError, LocalApprovalGateResolver, request_approval};
74pub use config::{
75    ConfigError, ConfigKey, LocalProfileSource, ManagedAgentConfig, RunxAgentConfig,
76    RunxConfigFile, RunxPublicConfig, load_local_agent_api_key, load_local_public_api_token,
77    load_managed_agent_config, load_runx_config_file, lookup_runx_config_value,
78    managed_agent_provider, mask_runx_config_file, parse_config_key, resolve_local_skill_profile,
79    resolve_path_from_user_input, resolve_runx_global_home_dir, resolve_runx_home_dir,
80    resolve_runx_workspace_base, update_runx_config_value, write_runx_config_file,
81};
82pub use credentials::{
83    CredentialDelivery, CredentialDeliveryError, CredentialDeliveryProfile, CredentialMaterialRole,
84    CredentialResolution, CredentialResolutionRequest, CredentialSupervisor,
85    InMemoryMaterialResolver, MaterialCredentialSupervisor, MaterialResolver,
86    ResolvedCredentialMaterial, SecretEnv, SecretString,
87};
88pub use dev::{
89    DevFixtureResult, DevFixtureStatus, DevLoopOptions, DevReport, DevReportStatus,
90    DevWatchOptions, DevWatchTrigger, PollingDevWatcher, dev_receipt_metadata,
91    discover_fixture_paths, render_dev_result, run_dev_once, should_ignore_dev_watch_path,
92};
93pub use doctor::{DoctorOptions, default_doctor_options, run_doctor};
94pub use effects::{
95    EffectAdmission, EffectMetadataRefreshRequest, EffectOutputRequest, EffectReceiptRequest,
96    EffectReplay, EffectReplayOutputRequest, EffectReplayReceiptRequest, EffectStepRequest,
97    PROVIDER_PERMISSION_EFFECT_FAMILY, PROVIDER_PERMISSION_GRANT_ID_ENV,
98    PROVIDER_PERMISSION_GRANTED_SCOPES_ENV, ProviderPermissionAdmission, ProviderPermissionEffect,
99    RuntimeEffect, RuntimeEffectError, RuntimeEffectRegistry, insert_effect_verification_ref,
100};
101pub use error::RuntimeError;
102pub use harness::{
103    HarnessExpectedStatus, HarnessFixtureError, HarnessFixtureKind, HarnessReplayError,
104    HarnessReplayOutput, load_harness_fixture, parse_harness_fixture, run_harness_fixture,
105    run_harness_fixture_with_adapter, run_harness_fixture_with_env,
106};
107pub use host::{Host, NoopHost};
108pub use journal::ExecutionJournal;
109pub use list::{
110    RunxListItem, RunxListItemKind, RunxListOptions, RunxListRequestedKind, RunxListStatus,
111    list_authoring_primitives,
112};
113pub use orchestrator::{
114    GraphRunRequest, HarnessRunRequest, InlineHarnessRequest, LocalOrchestrator, OrchestratorError,
115    RunContinuation, RunRequest, RunResult, RunStatus, SkillRunRequest,
116};
117#[cfg(feature = "thread-outbox-provider")]
118pub use outbox_provider::{
119    ThreadOutboxProviderProcessOutcome, ThreadOutboxProviderProcessSupervisor,
120    ThreadOutboxProviderSupervisorError, ThreadOutboxProviderSupervisorOptions,
121    thread_outbox_provider_forbidden_secret_fields,
122};
123pub use parser_eval::{ParserEvalError, ParserEvalOutput, evaluate_parser_document_str};
124pub use receipts::paths::{
125    INIT_CWD_ENV, RUNTIME_RECEIPTS_DIR_CONFIG_KEY, RUNX_CWD_ENV, RUNX_PROJECT_DIR_ENV,
126    RUNX_RECEIPT_DIR_ENV, ReceiptPathInputs, ReceiptPathSource, ReceiptStoreLabel,
127    ResolvedReceiptPath, RuntimeReceiptConfig, resolve_project_runx_dir, resolve_receipt_path,
128    resolve_workspace_base, safe_receipt_store_label,
129};
130pub use receipts::store::{
131    LocalReceiptStore, ReceiptStoreError, ReceiptStoreIndex, ReceiptStoreIndexEntry,
132};
133pub use receipts::tree::{
134    RuntimeReceiptResolver, validate_runtime_receipt_tree, verify_runtime_receipt_tree,
135    verify_runtime_receipt_tree_with_policy,
136};
137pub use receipts::{
138    Ed25519ReceiptSigner, Ed25519ReceiptVerifier, ProductionReceiptKey,
139    RUNX_RECEIPT_SIGN_ED25519_SEED_BASE64_ENV, RUNX_RECEIPT_SIGN_ISSUER_TYPE_ENV,
140    RUNX_RECEIPT_SIGN_KID_ENV, RuntimeReceiptSignatureConfig, RuntimeReceiptSignaturePolicy,
141    RuntimeReceiptSigner, RuntimeReceiptSigningError,
142};
143pub use redaction::redact_sensitive_text;
144pub use registry::{RegistryInstallMetadataInput, registry_install_receipt_metadata};
145#[cfg(feature = "cli-tool")]
146pub use runner::run_graph_file;
147pub use runner::{
148    GraphCheckpoint, GraphRun, RUNX_MAX_FANOUT_CONCURRENCY_ENV, RUNX_RUN_ID_ENV, Runtime,
149    RuntimeOptions, StepRun,
150};
151pub use runx_core::kernel_eval;
152pub use runx_parser::{SkillSource, parse_runner_manifest_yaml, validate_runner_manifest};
153pub use runx_receipts::ReceiptTreeConfig;
154pub use scaffold::{
155    InitAction, InitGeneratedValues, RunxInitOptions, RunxInitResult, RunxNewOptions,
156    RunxNewResult, ScaffoldError, runx_init, sanitize_runx_package_name, scaffold_runx_package,
157};
158pub use skill_front::InlineHarnessReport;
159pub use tool_catalogs::{
160    ToolBuildOptions, ToolCatalogError, ToolInspectOptions, ToolSearchOptions, build_tool_catalogs,
161    inspect_tool, search_tools,
162};
163
164pub const PACKAGE_NAME: &str = env!("CARGO_PKG_NAME");