Skip to main content

recon_cli/
lib.rs

1#![doc = include_str!("../README.md")]
2//
3// The doc-comment block below is intentionally a `//` comment, not `//!`,
4// so it doesn't clobber the README-derived crate-level rustdoc that
5// docs.rs renders. It documents the *internal* purpose of this lib.rs
6// shim for anyone reading the source:
7//
8// Library surface for integration tests and downstream crates.
9//
10// The `recon-cli` crate is primarily a binary; this `lib.rs` exposes the
11// minimal internal paths required by `tests/script_ai_it.rs`. Nothing
12// here is part of a public API guarantee.
13//
14// We deliberately do NOT re-export the full `script` module tree because
15// that tree depends on `cli::Args` and hundreds of other internal modules.
16// Instead we mirror only the `script::bindings::ai` path the tests need,
17// using `#[path]` so Rust finds the source files in their real location
18// under `src/script/bindings/ai/`.
19
20pub mod config;
21pub mod config_resolver;
22
23// The real `ai/` module tree, pointed at the actual source files via
24// `#[path]`. Compiled independently of the binary's module tree.
25#[path = "script/bindings/ai/mod.rs"]
26pub(crate) mod ai_impl;
27
28/// Mirrors the `script::bindings::ai` import path used by integration tests.
29pub mod script {
30    pub mod bindings {
31        pub mod ai {
32            pub mod backend {
33                pub use crate::ai_impl::backend::*;
34            }
35            pub mod request {
36                pub use crate::ai_impl::request::*;
37            }
38            pub use crate::ai_impl::register_with_registry;
39        }
40    }
41}