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/// Bundled example discovery from README frontmatter.
22pub mod examples;
23mod examples_cmd;
24/// CLI extension registry, match, preexec, and expand (ADR-0022).
25pub mod extensions;
26mod input;
27mod observability;
28mod pipeline;
29mod viewer_spawn;
30mod wizard_cmd;
31/// Wizard workflow hooks and `next_wizard` chain (REQ-0124–0126).
32pub mod workflow;
33
34#[doc(inline)]
35pub use browsers_cmd::{browsers_usage_message, run_browsers_command, BrowsersError};
36#[doc(inline)]
37pub use cli_args::{apply_host_overrides, parse_cli_args, usage_message, CliArgs};
38#[doc(inline)]
39pub use error::{
40    emit_extension_error, emit_fatal_internal, emit_host_error, emit_io_error, emit_parse_error,
41    emit_stdout, emit_usage_error, emit_usage_message, emit_validation_error,
42    emit_wizard_lint_stage_error, emit_workflow_error, BuiltinDomain, EmitError, LoadError,
43    UsageErrorKind,
44};
45#[doc(inline)]
46pub use examples_cmd::{examples_usage_message, run_examples_command, ExamplesCmdError};
47#[doc(inline)]
48pub use extensions::{
49    emit_near_miss, ExtensionError, ExtensionMatch, ExtensionRegistry, NearMissKind,
50    PreexecFailureKind,
51};
52#[doc(inline)]
53pub use input::load_command_input;
54#[doc(inline)]
55pub use observability::set_pipeline_correlation_id;
56#[doc(inline)]
57pub use pipeline::{run_from_loaded, run_wizard_workflow_loop, PipelineError};
58#[doc(inline)]
59pub use viewer_spawn::{resolve_viewer_bin, spawn_embedded_viewer, ViewerSpawnError};
60#[doc(inline)]
61pub use wizard_cmd::{
62    run_wizard_command, wizard_usage_message, WizardCmdError, WizardCmdResult, WizardLintStageError,
63};
64#[doc(inline)]
65pub use workflow::{
66    check_chain_depth, merge_wizard_config, resolve_next_wizard, Allowlist, NextInvocation,
67    WorkflowError, WorkflowRunner, NEXT_WIZARD_MAX_DEPTH, WORKFLOW_SCRIPT_TIMEOUT,
68};