Skip to main content

switchyard_runner/
lib.rs

1// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2// SPDX-License-Identifier: Apache-2.0
3
4//! Shared configured routing for Switchyard serving surfaces.
5//!
6//! WASI builds omit HTTP-backed route execution.
7
8mod algorithm;
9#[cfg(not(target_os = "wasi"))]
10mod algorithm_factory;
11#[cfg(not(target_os = "wasi"))]
12mod config;
13#[cfg(not(target_os = "wasi"))]
14mod failure;
15mod provider_key_redactor;
16#[cfg(not(target_os = "wasi"))]
17mod route;
18#[cfg(not(target_os = "wasi"))]
19mod runner;
20
21#[cfg(not(target_os = "wasi"))]
22pub use config::{ConfiguredTarget, RouteTargets, TargetModel, api_key_variables, route_targets};
23
24pub use algorithm::{
25    AdvisorTriggerConfig, AlgorithmConfigError, AlgorithmSpec, CategoryModelConfig, ClassifierMode,
26    ClassifierPolicyConfig, DecisionJudgeRouteConfig, LlmClassifierRouteConfig, PlanExecuteTrigger,
27    StageClassifierConfig, StageProfileConfig, StageSettingsConfig, SubagentRouteConfig,
28    VgrModeConfig, VgrRouteConfig,
29};
30#[cfg(not(target_os = "wasi"))]
31pub use algorithm_factory::AlgorithmFactory;
32#[cfg(not(target_os = "wasi"))]
33pub use failure::{RouteErrorKind, RouteErrorPhase, RouteErrorSummary, stream_error_summary};
34// Re-exported because `Route::new` takes it, so a host wiring routes does not need a libsy dep.
35pub use libsy::{RoutingOutcome, RuntimeModels};
36pub use provider_key_redactor::ProviderKeyRedactor;
37#[cfg(not(target_os = "wasi"))]
38pub use route::{
39    AuxiliaryTarget, CallerAuthKind, ModelCapabilities, Route, RunOutput, RunnerError,
40};
41#[cfg(not(target_os = "wasi"))]
42pub use runner::{DecisionDescription, DecisionTarget, ModelInfo, Runner};