# NovaPlan MVP Overview: a minimal, privacy-preserving, offline-first multi-agent mission planner for deep-space robotic constellations. Note: This repository documents a small, well-scoped MVP that demonstrates core NovaPlan ideas and provides a foundation for future expansion (CatOpt bridge, adapters, ledger, etc.). New scaffold: CatOpt Bridge (scaffold) - A lightweight scaffold to map NovaPlan primitives to a CatOpt-like representation. - Provides small building blocks: Object (local problem), Morphism (shared signals), and Functor (adapter interfaces). - The bridge is intentionally minimal to enable quick experimentation and cross-domain interoperability in MVP milestones. - Practical notes: the bridge includes helpers to convert a LocalProblem into a canonical Object and to package a delta into a Morphism, enabling plug-and-play adapters across rover/habitat/satellite domains. It also exposes a small bridge_example utility to bootstrap experiments and verify interop in CI. A minimal, open-source MVP for decentralized, privacy-preserving multi-agent mission planning in deep-space robotic constellations. - Includes a lightweight CatOpt bridge scaffold (nova_plan.catopt_bridge) to map NovaPlan primitives to a canonical interoperability representation. - Offline-first, privacy-aware coordination across heterogeneous fleets (rovers, drones, habitat bots). - Local problem solving with a tiny ADMM-like core and federation of agents. - A lightweight mission ledger that can anchor decisions when ground links are available. - Lightweight adapters for common hardware and simulation-ready interfaces. - A clear test and packaging path to verify end-to-end viability. This repository focuses on a small, well-scoped subset of the NovaPlan ecosystem to demonstrate core ideas and enable further expansion. How to run tests - Run: `./test.sh` - This will execute unit tests and verify packaging with `python -m build`. MVP extensions (planned, small scope) - Add a minimal DSL (nova_plan.dsl) and a delta-synchronization helper (delta_sync) to scaffold federated optimization flows. - Introduce a lightweight ContractRegistry to enable versioning and interoperability of data contracts. - Provide a tiny DSL-to-LocalProblem translator to bootstrap CatOpt-style integration with adapters. - Expand ledger anchoring with a deterministic reconciliation log for outages. Directory layout - nova_plan/ Core MVP implementation (planner, contracts, ledger, adapters) - tests/ Unit tests for core workflow and contracts - adapters/ Stubs for rover and habitat modules - README.md, AGENTS.md Documentation and governance for the project - pyproject.toml Build metadata for packaging - AGENTS.md Architecture and contribution guidelines - READY_TO_PUBLISH (created after the repo is ready for publishing) Note: This is a minimal MVP intended for demonstration and testing; it is not a production-ready system. # NovaPlan ## Interoperability and CatOpt Bridge - NovaPlan includes a lightweight CatOpt bridge scaffold to map planning primitives into a canonical representation for interoperability with other runtimes (Open-EnergyMesh, GridVerse, etc.). - The bridge provides small building blocks: Object (LocalProblem summary), Morphism (signals/deltas), and a minimal bridge_example helper to bootstrap experiments. - This MVP scaffold enables adapters to plug in rovers, habitat modules, or orbital domains without locking in specific vendor representations. - See nova_plan/catopt_bridge.py for core bridge logic and nova_plan/interop_catopt.py for a lightweight interoperability facade. - The bridge exposes minimal primitives: Object (LocalProblem summary) and Morphism (delta signals). - Convenience helpers are available to generate a pair in a single call, for use by adapters. - See nova_plan/catopt_bridge.py for the core bridge logic and nova_plan/interop_catopt.py for a small, import-friendly interoperability facade. MVP notes - LocalProblem -> Object_i - SharedVariables/DualVariables -> Morphisms carrying summarized signals - PlanDelta / PrivacyBudget / AuditLog -> per-message metadata - Graph-of-Contracts registry with versioned schemas (ContractRegistry) This repository already includes: LocalProblem DSL, adapters stubs, and a test-aware bridge. Interop Demo - A tiny demonstration script nova_plan/examples/demo_energi_bridge_demo.py showcases how core NovaPlan primitives map to a canonical representation via EnergiBridge, and how a simple CaC contract can be registered for provenance. - Run: python3 -m nova_plan.examples.demo_energi_bridge_demo - This script is non-destructive and safe to run in a test environment; it prints a couple of canonical representations to stdout for quick inspection. Toy interoperability seeds - A tiny toy contract seed (toy-lp) and associated signing helpers are provided in nova_plan/toy_contracts.py to bootstrap interoperability testing between adapters. - A small unit test (tests/test_toy_contracts.py) exercises contract registration and signing against a simple signer. - This is intended for MVP bootstrapping and CI experiments; it is not a production contract, but it demonstrates how to seed a contract registry and provenance flow.