Skip to main content

thirdpass_core/
lib.rs

1//! Shared types and helpers for the Thirdpass package review system.
2//!
3//! `thirdpass-core` is the library boundary between the CLI, registry
4//! extensions, the coordinator, and the server-facing review API. Most users
5//! should start with the wire types in [`schema`] and the extension contracts in
6//! [`extension`].
7//!
8//! # Feature Flags
9//!
10//! - `package` enables archive download, extraction, workspace preparation,
11//!   manifest generation, file hashing, line-count analysis, and review target
12//!   selection helpers in [`package`].
13//! - `registry` enables registry lookup helpers in [`registry`].
14//! - The default feature set keeps the crate limited to schema and extension
15//!   contracts.
16//!
17//! # Public API Shape
18//!
19//! The crate intentionally exposes a flat package API such as
20//! [`package::ensure`] and [`package::SelectedTarget`] instead of exposing the
21//! internal module layout. Extension authors should use [`extension::Extension`]
22//! and [`extension::run_command`] when implementing process-backed extensions.
23
24/// Extension traits, process adapters, and extension command helpers.
25pub mod extension;
26/// Package archive and workspace helpers.
27#[cfg(feature = "package")]
28pub mod package;
29/// Registry metadata lookup helpers.
30#[cfg(feature = "registry")]
31pub mod registry;
32/// Wire-format schema shared by the CLI and server API.
33pub mod schema;