@@ -38,9 +38,7 @@ func main() {
3838 Use : "kagent" ,
3939 Short : "kagent is a CLI and TUI for kagent" ,
4040 Long : "kagent is a CLI and TUI for kagent" ,
41- Run : func (cmd * cobra.Command , args []string ) {
42- runInteractive ()
43- },
41+ Run : runInteractive ,
4442 }
4543
4644 rootCmd .PersistentFlags ().StringVar (& cfg .KAgentURL , "kagent-url" , "http://localhost:8083" , "KAgent URL" )
@@ -101,8 +99,8 @@ func main() {
10199 Short : "Generate a bug report" ,
102100 Long : `Generate a bug report` ,
103101 Run : func (cmd * cobra.Command , args []string ) {
104- if err := cli .CheckServerConnection (cfg .Client ()); err != nil {
105- pf , err := cli .NewPortForward (ctx , cfg )
102+ if err := cli .CheckServerConnection (cmd . Context (), cfg .Client ()); err != nil {
103+ pf , err := cli .NewPortForward (cmd . Context () , cfg )
106104 if err != nil {
107105 fmt .Fprintf (os .Stderr , "Error starting port-forward: %v\n " , err )
108106 return
@@ -118,15 +116,18 @@ func main() {
118116 Short : "Print the kagent version" ,
119117 Long : `Print the kagent version` ,
120118 Run : func (cmd * cobra.Command , args []string ) {
121- if err := cli .CheckServerConnection (cfg .Client ()); err != nil {
122- pf , err := cli .NewPortForward (ctx , cfg )
119+ // print out kagent CLI version regardless if a port-forward to kagent server succeeds
120+ // versions unable to obtain from the remote kagent will be reported as "unknown"
121+ defer cli .VersionCmd (cfg )
122+
123+ if err := cli .CheckServerConnection (cmd .Context (), cfg .Client ()); err != nil {
124+ pf , err := cli .NewPortForward (cmd .Context (), cfg )
123125 if err != nil {
124126 fmt .Fprintf (os .Stderr , "Error starting port-forward: %v\n " , err )
125127 return
126128 }
127129 defer pf .Stop ()
128130 }
129- cli .VersionCmd (cfg )
130131 },
131132 }
132133
@@ -135,7 +136,7 @@ func main() {
135136 Short : "Open the kagent dashboard" ,
136137 Long : `Open the kagent dashboard` ,
137138 Run : func (cmd * cobra.Command , args []string ) {
138- cli .DashboardCmd (ctx , cfg )
139+ cli .DashboardCmd (cmd . Context () , cfg )
139140 },
140141 }
141142
@@ -155,8 +156,8 @@ func main() {
155156 Short : "Get a session or list all sessions" ,
156157 Long : `Get a session by ID or list all sessions` ,
157158 Run : func (cmd * cobra.Command , args []string ) {
158- if err := cli .CheckServerConnection (cfg .Client ()); err != nil {
159- pf , err := cli .NewPortForward (ctx , cfg )
159+ if err := cli .CheckServerConnection (cmd . Context (), cfg .Client ()); err != nil {
160+ pf , err := cli .NewPortForward (cmd . Context () , cfg )
160161 if err != nil {
161162 fmt .Fprintf (os .Stderr , "Error starting port-forward: %v\n " , err )
162163 return
@@ -176,8 +177,8 @@ func main() {
176177 Short : "Get an agent or list all agents" ,
177178 Long : `Get an agent by name or list all agents` ,
178179 Run : func (cmd * cobra.Command , args []string ) {
179- if err := cli .CheckServerConnection (cfg .Client ()); err != nil {
180- pf , err := cli .NewPortForward (ctx , cfg )
180+ if err := cli .CheckServerConnection (cmd . Context (), cfg .Client ()); err != nil {
181+ pf , err := cli .NewPortForward (cmd . Context () , cfg )
181182 if err != nil {
182183 return
183184 }
@@ -196,8 +197,8 @@ func main() {
196197 Short : "Get tools" ,
197198 Long : `List all available tools` ,
198199 Run : func (cmd * cobra.Command , args []string ) {
199- if err := cli .CheckServerConnection (cfg .Client ()); err != nil {
200- pf , err := cli .NewPortForward (ctx , cfg )
200+ if err := cli .CheckServerConnection (cmd . Context (), cfg .Client ()); err != nil {
201+ pf , err := cli .NewPortForward (cmd . Context () , cfg )
201202 if err != nil {
202203 fmt .Fprintf (os .Stderr , "Error starting port-forward: %v\n " , err )
203204 return
@@ -313,7 +314,7 @@ Examples:
313314 Run : func (cmd * cobra.Command , args []string ) {
314315 deployCfg .ProjectDir = args [0 ]
315316
316- if err := cli .DeployCmd (ctx , deployCfg ); err != nil {
317+ if err := cli .DeployCmd (cmd . Context () , deployCfg ); err != nil {
317318 fmt .Fprintf (os .Stderr , "Error: %v\n " , err )
318319 os .Exit (1 )
319320 }
@@ -343,21 +344,19 @@ Examples:
343344
344345}
345346
346- func runInteractive () {
347+ func runInteractive (cmd * cobra. Command , args [] string ) {
347348 cfg , err := config .Get ()
348349 if err != nil {
349350 fmt .Fprintf (os .Stderr , "Error getting config: %v\n " , err )
350351 os .Exit (1 )
351352 }
352353
353354 client := cfg .Client ()
354- ctx , cancel := context .WithCancel (context .Background ())
355- defer cancel ()
356355
357356 // Start port forward and ensure it is healthy.
358357 var pf * cli.PortForward
359- if err := cli .CheckServerConnection (client ); err != nil {
360- pf , err = cli .NewPortForward (ctx , cfg )
358+ if err := cli .CheckServerConnection (cmd . Context (), client ); err != nil {
359+ pf , err = cli .NewPortForward (cmd . Context () , cfg )
361360 if err != nil {
362361 fmt .Fprintf (os .Stderr , "Error starting port-forward: %v\n " , err )
363362 return
0 commit comments