// The uplink holder's tools bundle: the node-uplink seat's verbs (novox/hq ADR 0241), served by the node's // runtime as the operator account. uplink.go is every holder's; manager.go is this holder's own. stdout is // the MCP channel; this says nothing else. package main import ( "context" "fmt" "os" stdio "git.novox.be/novox/mesh-sdk/go" ) func tools(m Machine) []stdio.Tool { return []stdio.Tool{ {Name: seat + ".resolvers", Description: "The machine's resolver file as it is now: the resolvers, search domains and options it lists, " + "whether it is the file the mesh declares, and when it is not, who wrote it as far as the machine shows " + "— its header, a backup a VPN client left beside it, a link in its place, a known writer running. (r)", Run: func(map[string]any) (any, error) { return m.ReadResolvers() }}, {Name: seat + ".links", Description: "Every network link on the machine: its state, its addresses, whether the default route " + "leaves through it, and the resolvers and search domains the network manager knows for it — a VPN's " + "tunnel included. (r)", Run: func(map[string]any) (any, error) { return m.Links(context.Background()) }}, } } func main() { m := Machine{ResolvPath: ResolvConf, Run: execRunner, Running: running, LinkDNS: managerDNS} if err := stdio.Serve("", tools(m)); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } }