// route-provider: route-proxy's Go half, one binary the node's runtime launches and speaks MCP to over stdio // through the Go SDK. It serves no tools; it runs the SDK's provider helper that answers the consumers of `route` // (issue 792). The TypeScript adapter beside it keeps writing the proxy's files. // // stdout is the MCP channel; everything this module says, it says on stderr. package main import ( "context" "fmt" "os" stdio "git.novox.be/novox/mesh-sdk/go" "git.novox.be/novox/mesh-sdk/go/provider" ) func say(format string, args ...any) { fmt.Fprintf(os.Stderr, "[route-proxy] "+format+"\n", args...) } func main() { node := os.Getenv("MESH_NODE") if node == "" { say("MESH_NODE is not set; answering no consumers") } else { p := newProvider(node, provider.StateBus(ModuleName), say) go func() { if err := p.Run(context.Background()); err != nil { say("the provider helper stopped: %v", err) } }() } if err := stdio.Serve("", nil); err != nil { say("%v", err) os.Exit(1) } }