Add agent version to mcp node list
Thread the linker-injected version string into the Agent struct and return it in the NodeStatus RPC. The CLI now dials each node and displays the agent version alongside name and address. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -38,7 +38,7 @@ func main() {
|
||||
if err != nil {
|
||||
return fmt.Errorf("load config: %w", err)
|
||||
}
|
||||
return agent.Run(cfg)
|
||||
return agent.Run(cfg, version)
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"text/tabwriter"
|
||||
"time"
|
||||
|
||||
toml "github.com/pelletier/go-toml/v2"
|
||||
|
||||
mcpv1 "git.wntrmute.dev/mc/mcp/gen/mcp/v1"
|
||||
"git.wntrmute.dev/mc/mcp/internal/config"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -48,13 +51,35 @@ func runNodeList(_ *cobra.Command, _ []string) error {
|
||||
}
|
||||
|
||||
w := tabwriter.NewWriter(os.Stdout, 0, 4, 2, ' ', 0)
|
||||
_, _ = fmt.Fprintln(w, "NAME\tADDRESS")
|
||||
_, _ = fmt.Fprintln(w, "NAME\tADDRESS\tVERSION")
|
||||
for _, n := range cfg.Nodes {
|
||||
_, _ = fmt.Fprintf(w, "%s\t%s\n", n.Name, n.Address)
|
||||
ver := queryAgentVersion(cfg, n.Address)
|
||||
_, _ = fmt.Fprintf(w, "%s\t%s\t%s\n", n.Name, n.Address, ver)
|
||||
}
|
||||
return w.Flush()
|
||||
}
|
||||
|
||||
// queryAgentVersion dials the agent and returns its version, or an error indicator.
|
||||
func queryAgentVersion(cfg *config.CLIConfig, address string) string {
|
||||
client, conn, err := dialAgent(address, cfg)
|
||||
if err != nil {
|
||||
return "error"
|
||||
}
|
||||
defer func() { _ = conn.Close() }()
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
resp, err := client.NodeStatus(ctx, &mcpv1.NodeStatusRequest{})
|
||||
if err != nil {
|
||||
return "error"
|
||||
}
|
||||
if resp.AgentVersion == "" {
|
||||
return "unknown"
|
||||
}
|
||||
return resp.AgentVersion
|
||||
}
|
||||
|
||||
func runNodeAdd(_ *cobra.Command, args []string) error {
|
||||
cfg, err := config.LoadCLIConfig(cfgPath)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user