Skip to main content

prospero_core/
lib.rs

1//! Core orchestration logic and shared types for Prospero.
2//!
3//! This crate is the shared library behind the `prospero` CLI, the
4//! `prosperod` daemon, and the web/API surface. It models a fleet of Caliban
5//! agents across repos and speaks caliban's NDJSON IPC protocol through a thin,
6//! self-contained client — the wire format is the only coupling to caliban.
7
8pub mod actor;
9pub mod auth;
10pub mod automation;
11pub mod bus;
12pub mod caliband;
13pub mod config_store;
14pub mod deadline;
15pub mod discovery;
16pub mod distributed_bus;
17pub mod error;
18pub mod event;
19pub mod fleet;
20pub mod fleet_provider;
21#[cfg(feature = "k8s")]
22pub mod k8s;
23pub mod leased_ownership;
24pub mod metrics;
25pub mod model;
26pub mod ownership;
27mod pg;
28pub mod postgres_config_store;
29pub mod postgres_store;
30pub mod provider_env;
31pub mod registry;
32pub mod sqlite_store;
33pub mod store;
34
35#[cfg(any(test, feature = "testkit"))]
36pub mod testkit;
37
38pub use bus::{BusEvent, BusSubscription, EventBus, InProcessBus};
39pub use caliband::sources::{Source, discover_sources};
40pub use caliband::wire::AttachInbound;
41pub use config_store::{ConfigStore, SqliteConfigStore};
42pub use distributed_bus::DistributedBus;
43pub use error::{CoreError, Result};
44pub use event::{EventKind, FleetEvent, OutputStream};
45pub use fleet::{FleetConfig, FleetManager, SpawnRequest};
46pub use fleet_provider::{FleetAdmin, FleetProvider, LocalFleet};
47#[cfg(feature = "k8s")]
48pub use k8s::fleet::{CalibanTaskApi, K8sFleet, KubeTaskApi};
49#[cfg(feature = "k8s")]
50pub use k8s::workspace_api::{K8sWorkspaceAdmin, KubeWorkspaceApi, WorkspaceApi};
51pub use leased_ownership::LeasedOwnership;
52pub use metrics::{Metrics, MetricsSnapshot};
53pub use model::{Agent, AgentStatus, FleetSnapshot, Readiness, Workspace, WorkspaceHealth};
54pub use ownership::{Lease, Ownership, SelfOwnsAll};
55pub use postgres_config_store::PostgresConfigStore;
56pub use postgres_store::PostgresStore;
57pub use prospero_types::Scope;
58pub use registry::{RegisteredWorkspace, Registry, RepoProviderConfig};
59pub use sqlite_store::SqliteStore;
60pub use store::{JsonlStore, Store};
61
62/// Crate version, sourced from `Cargo.toml`.
63pub const VERSION: &str = env!("CARGO_PKG_VERSION");