Skip to main content

wyvern/
lib.rs

1//! Wyvern CLI library — load → validate → run → emit pipeline.
2//!
3//! `main.rs` is a thin binary wrapper around [`pipeline::run_from_loaded`].
4
5#![cfg_attr(
6    not(test),
7    deny(
8        clippy::unwrap_used,
9        clippy::expect_used,
10        clippy::panic,
11        clippy::unreachable,
12        clippy::todo,
13        clippy::unimplemented
14    )
15)]
16
17mod browsers_cmd;
18mod cli_args;
19mod embedded_ui;
20mod error;
21/// CLI extension registry, match, preexec, and expand (ADR-0022).
22pub mod extensions;
23mod input;
24mod observability;
25mod pipeline;
26mod viewer_spawn;
27
28#[doc(inline)]
29pub use browsers_cmd::{browsers_usage_message, run_browsers_command, BrowsersError};
30#[doc(inline)]
31pub use cli_args::{apply_host_overrides, parse_cli_args, usage_message, CliArgs};
32#[doc(inline)]
33pub use error::{
34    emit_extension_error, emit_fatal_internal, emit_host_error, emit_io_error, emit_parse_error,
35    emit_stdout, emit_usage_error, emit_usage_message, emit_validation_error, BuiltinDomain,
36    EmitError, LoadError, UsageErrorKind,
37};
38#[doc(inline)]
39pub use extensions::{
40    emit_near_miss, ExtensionError, ExtensionMatch, ExtensionRegistry, NearMissKind,
41    PreexecFailureKind,
42};
43#[doc(inline)]
44pub use input::load_command_input;
45#[doc(inline)]
46pub use observability::set_pipeline_correlation_id;
47#[doc(inline)]
48pub use pipeline::{run_from_loaded, PipelineError};
49#[doc(inline)]
50pub use viewer_spawn::{resolve_viewer_bin, spawn_embedded_viewer, ViewerSpawnError};