35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
|
|
// pkg/node/dispatcher.go
|
||
|
|
|
||
|
|
func (n *NodeManager) DispatchUEPS(pkt *ueps.ParsedPacket) error {
|
||
|
|
// 1. The "Threat" Circuit Breaker (L5 Guard)
|
||
|
|
if pkt.Header.ThreatScore > 50000 {
|
||
|
|
// High threat? Drop it. Don't even parse the payload.
|
||
|
|
// This protects the Agent from "semantic viruses"
|
||
|
|
return fmt.Errorf("packet rejected: threat score %d exceeds safety limit", pkt.Header.ThreatScore)
|
||
|
|
}
|
||
|
|
|
||
|
|
// 2. The "Intent" Router (L9 Semantic)
|
||
|
|
switch pkt.Header.IntentID {
|
||
|
|
|
||
|
|
case 0x01: // Handshake / Hello
|
||
|
|
return n.handleHandshake(pkt)
|
||
|
|
|
||
|
|
case 0x20: // Compute / Job Request
|
||
|
|
// "Hey, can you run this Docker container?"
|
||
|
|
// Check local resources first (Self-Validation)
|
||
|
|
return n.handleComputeRequest(pkt.Payload)
|
||
|
|
|
||
|
|
case 0x30: // Rehab / Intervention
|
||
|
|
// "Violet says you are hallucinating. Pause execution."
|
||
|
|
// This is the "Benevolent Intervention" Axiom.
|
||
|
|
return n.enterRehabMode(pkt.Payload)
|
||
|
|
|
||
|
|
case 0xFF: // Extended / Custom
|
||
|
|
// Check the payload for specific sub-protocols (e.g. your JSON blobs)
|
||
|
|
return n.handleApplicationData(pkt.Payload)
|
||
|
|
|
||
|
|
default:
|
||
|
|
return fmt.Errorf("unknown intent ID: 0x%X", pkt.Header.IntentID)
|
||
|
|
}
|
||
|
|
}
|