38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
// route-provider: route-adapter'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-adapter] "+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)
|
|
}
|
|
}
|