Skip to main content

exo_catapult/
lib.rs

1// Copyright 2026 Exochain Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7//     https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// SPDX-License-Identifier: Apache-2.0
16
17//! # exo-catapult
18//!
19//! Franchise business incubator for the EXOCHAIN constitutional trust fabric.
20//!
21//! Catapult provisions governed "newco" entities from franchise blueprints,
22//! staffing each with an Operational Detachment Alpha (ODA) — a 12-agent team
23//! modeled on FM 3-05 Army Special Operations doctrine, elegantly adapted for
24//! autonomous business operations.
25//!
26//! Each newco starts with two founding agents — **HR** (assessment & selection)
27//! and **Deep Researcher** (intelligence) — who recruit the remaining team
28//! through a governed hiring pipeline.
29//!
30//! **Determinism contract**: this crate inherits exo-core's guarantees.
31//! - No floating-point arithmetic.
32//! - `DeterministicMap` only — no `HashMap`.
33//! - Integer cents for budget, basis points for thresholds.
34//! - HLC timestamps for all temporal ordering.
35
36#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]
37
38pub mod agent;
39pub mod budget;
40pub mod error;
41pub mod franchise;
42pub mod goal;
43pub mod heartbeat;
44pub mod integration;
45pub mod newco;
46pub mod oda;
47pub mod phase;
48pub mod receipt;
49
50// Re-export the most commonly used items at crate root.
51pub use agent::{AgentRoster, AgentStatus, CatapultAgent, CatapultAgentInput};
52pub use budget::{
53    BudgetLedger, BudgetPolicy, BudgetScope, BudgetVerdict, CostEvent, CostEventInput,
54};
55pub use error::{CatapultError, Result};
56pub use franchise::{
57    BusinessModel, FranchiseBlueprint, FranchiseBlueprintInput, FranchiseRegistry,
58};
59pub use goal::{Goal, GoalInput, GoalLevel, GoalStatus, GoalTree};
60pub use heartbeat::{HeartbeatMonitor, HeartbeatRecord, HeartbeatRecordInput, HeartbeatStatus};
61pub use newco::{Newco, NewcoInput, NewcoStatus};
62pub use oda::{MosCode, OdaSlot};
63pub use phase::OperationalPhase;
64pub use receipt::{FranchiseOperation, FranchiseReceipt, FranchiseReceiptInput, ReceiptChain};