Skip to main content

switchyard_libsy/
lib.rs

1// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2// SPDX-License-Identifier: Apache-2.0
3
4#![warn(missing_docs)]
5#![doc = include_str!("../README.md")]
6
7mod core;
8pub use core::algorithm::{Algorithm, CallModel, Driver, RoutingOutcome, Step, StepStream, drive};
9pub use core::classifier::{Classification, Classifier, Score};
10pub use core::outcome_metadata::OutcomeMetadata;
11pub use core::processor::{Event, Processor};
12pub use core::state::{State, StateValue};
13
14mod error;
15pub use error::{DriverError, LibsyError, Result};
16
17mod algorithms;
18pub use algorithms::advisor_gate::{AdvisorGate, AdvisorGateConfig, GateTrigger};
19pub use algorithms::composite::{CompositeRouter, CompositeRouterConfig};
20pub use algorithms::llm_class::{
21    CustomClassifierConfig, CustomClassifierPolicy, LlmClassifierConfig, LlmTaskClassifier,
22    TaskClassifierConfig,
23};
24pub use algorithms::noop::Noop;
25pub use algorithms::passthrough::Passthrough;
26pub use algorithms::rand::{Random, RandomClassifier};
27pub use algorithms::stage::{LlmFallback, StageRouter, StageRouterConfig};
28pub use algorithms::subagent::{SubagentRouter, SubagentRouterConfig};
29pub use algorithms::util::affinity::{AffinityRouter, ClassifyTrigger};
30pub use algorithms::util::classifier_contract::{
31    ClassifierContractConfig, ClassifierResponseFormat,
32};
33pub use algorithms::util::escalation::EscalationJudgeConfig;
34pub use algorithms::util::prompts::{SystemPromptProcessor, TargetPrompts, append_note};
35pub use algorithms::util::subagent::{SubagentGate, SubagentOverride};
36pub use algorithms::util::tool_signals::{DEFAULT_RECENT_WINDOW, ToolSignals};
37
38// Stage-router scoring and tier selection — the shared signal-driven routing
39// core (scorer, picker, and the `StageClassifier`).
40pub use algorithms::util::stage::{
41    CodingAgentDimensions, DECISION_SOURCE_KEY, DecisionSource, HandoffNoteConfig, PickOutcome,
42    PickerMode, ScoreResult, StageClassifier, StageTargets, Tier, clear_fall_open,
43    dimensions_from_signal, pick_tier, score_signal, set_fall_open,
44};
45
46mod observability;