use super::{PlatoPlugin, PluginManifest, PluginRegistry, PluginTier};
struct CoreEventBusPlugin(PluginManifest);
impl CoreEventBusPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "core-event-bus".into(),
name: "Core Event Bus".into(),
version: "1.0.0".into(),
tier: PluginTier::Core,
requires: vec![],
provides: vec!["event-bus".into()],
})
}
}
impl PlatoPlugin for CoreEventBusPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
struct CoreConstraintPlugin(PluginManifest);
impl CoreConstraintPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "core-constraint".into(),
name: "Core Constraint Engine".into(),
version: "1.0.0".into(),
tier: PluginTier::Core,
requires: vec!["core-event-bus".into()],
provides: vec!["constraint-engine".into()],
})
}
}
impl PlatoPlugin for CoreConstraintPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
struct CoreGitRuntimePlugin(PluginManifest);
impl CoreGitRuntimePlugin {
fn new() -> Self {
Self(PluginManifest {
id: "core-git-runtime".into(),
name: "Core Git Runtime (repo-as-room, cocapn)".into(),
version: "1.0.0".into(),
tier: PluginTier::Core,
requires: vec!["core-event-bus".into()],
provides: vec!["git-runtime".into()],
})
}
}
impl PlatoPlugin for CoreGitRuntimePlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
struct CoreTilingPlugin(PluginManifest);
impl CoreTilingPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "core-tiling".into(),
name: "Core Tiling Knowledge Substrate".into(),
version: "1.0.0".into(),
tier: PluginTier::Core,
requires: vec!["core-event-bus".into()],
provides: vec!["tiling".into(), "tutor-anchors".into()],
})
}
}
impl PlatoPlugin for CoreTilingPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "fleet")]
struct FleetSwarmPlugin(PluginManifest);
#[cfg(feature = "fleet")]
impl FleetSwarmPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "fleet-swarm".into(),
name: "Fleet I2I Swarm Coordinator".into(),
version: "1.0.0".into(),
tier: PluginTier::Fleet,
requires: vec!["core-event-bus".into(), "core-git-runtime".into()],
provides: vec!["fleet-coordination".into(), "i2i-routing".into()],
})
}
}
#[cfg(feature = "fleet")]
impl PlatoPlugin for FleetSwarmPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "fleet")]
struct KimiSwarmRouterPlugin(PluginManifest);
#[cfg(feature = "fleet")]
impl KimiSwarmRouterPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "kimi-swarm-router".into(),
name: "Kimi Swarm Router (Oracle1 roadmap)".into(),
version: "1.0.0".into(),
tier: PluginTier::Fleet,
requires: vec!["fleet-swarm".into()],
provides: vec!["kimi-routing".into(), "swarm-topology".into()],
})
}
}
#[cfg(feature = "fleet")]
impl PlatoPlugin for KimiSwarmRouterPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "fleet")]
struct FleetEpisodeSyncPlugin(PluginManifest);
#[cfg(feature = "fleet")]
impl FleetEpisodeSyncPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "fleet-episode-sync".into(),
name: "Fleet Episode Sync (cross-ship muscle memory)".into(),
version: "1.0.0".into(),
tier: PluginTier::Fleet,
requires: vec!["fleet-swarm".into()],
provides: vec!["episode-sync".into()],
})
}
}
#[cfg(feature = "fleet")]
impl PlatoPlugin for FleetEpisodeSyncPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "edge")]
struct GpuSimulationPlugin(PluginManifest);
#[cfg(feature = "edge")]
impl GpuSimulationPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "gpu-simulation".into(),
name: "GPU Constraint Simulation (Monte Carlo, Ricci Flow)".into(),
version: "1.0.0".into(),
tier: PluginTier::Edge,
requires: vec!["fleet-swarm".into(), "core-constraint".into()],
provides: vec!["gpu-simulation".into(), "monte-carlo".into(), "ricci-flow".into()],
})
}
}
#[cfg(feature = "edge")]
impl PlatoPlugin for GpuSimulationPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "edge")]
struct LoraFinetuningPlugin(PluginManifest);
#[cfg(feature = "edge")]
impl LoraFinetuningPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "lora-finetuning".into(),
name: "LoRA Fine-tuning Engine (JC1 edge model export)".into(),
version: "1.0.0".into(),
tier: PluginTier::Edge,
requires: vec!["gpu-simulation".into()],
provides: vec!["lora-training".into(), "model-export".into()],
})
}
}
#[cfg(feature = "edge")]
impl PlatoPlugin for LoraFinetuningPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
#[cfg(feature = "edge")]
struct CudaMudArenaPlugin(PluginManifest);
#[cfg(feature = "edge")]
impl CudaMudArenaPlugin {
fn new() -> Self {
Self(PluginManifest {
id: "cuda-mud-arena".into(),
name: "CUDA MUD Arena (parallel agent backtest, Day 47 drill)".into(),
version: "1.0.0".into(),
tier: PluginTier::Edge,
requires: vec!["gpu-simulation".into(), "fleet-swarm".into()],
provides: vec!["cuda-arena".into(), "agent-backtest".into()],
})
}
}
#[cfg(feature = "edge")]
impl PlatoPlugin for CudaMudArenaPlugin {
fn manifest(&self) -> &PluginManifest { &self.0 }
}
pub fn load_builtins(registry: &mut PluginRegistry) {
registry.register(Box::new(CoreEventBusPlugin::new())).expect("core-event-bus");
registry.register(Box::new(CoreConstraintPlugin::new())).expect("core-constraint");
registry.register(Box::new(CoreGitRuntimePlugin::new())).expect("core-git-runtime");
registry.register(Box::new(CoreTilingPlugin::new())).expect("core-tiling");
#[cfg(feature = "fleet")]
{
registry.register(Box::new(FleetSwarmPlugin::new())).expect("fleet-swarm");
registry.register(Box::new(KimiSwarmRouterPlugin::new())).expect("kimi-swarm-router");
registry.register(Box::new(FleetEpisodeSyncPlugin::new())).expect("fleet-episode-sync");
}
#[cfg(feature = "edge")]
{
registry.register(Box::new(GpuSimulationPlugin::new())).expect("gpu-simulation");
registry.register(Box::new(LoraFinetuningPlugin::new())).expect("lora-finetuning");
registry.register(Box::new(CudaMudArenaPlugin::new())).expect("cuda-mud-arena");
}
tracing::info!(
"plugin::loader {} plugins registered [core{}{}]",
registry.registered_count(),
if cfg!(feature = "fleet") { "+fleet" } else { "" },
if cfg!(feature = "edge") { "+edge" } else { "" },
);
}