server

package
v0.1.0-pre1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ServerCmd = &cobra.Command{
	Use:   "server [agent]",
	Short: "Run the server",
	Long:  `Run the server with the specified agent (claude, goose, aider, codex)`,
	Args:  cobra.MinimumNArgs(1),
	Run: func(cmd *cobra.Command, args []string) {
		logger := slog.New(slog.NewTextHandler(os.Stdout, nil))
		ctx := logctx.WithLogger(context.Background(), logger)
		argsToPass := cmd.Flags().Args()
		agent := argsToPass[0]
		agentType, err := parseAgentType(agent, agentTypeVar)
		if err != nil {
			logger.Error("Failed to parse agent type", "error", err)
			os.Exit(1)
		}
		var process *termexec.Process
		if printOpenAPI {
			process = nil
		} else {
			process, err = httpapi.SetupProcess(ctx, agent, argsToPass[1:]...)
			if err != nil {
				logger.Error("Failed to setup process", "error", err)
				os.Exit(1)
			}
		}
		srv := httpapi.NewServer(ctx, agentType, process, port)
		if printOpenAPI {
			fmt.Println(srv.GetOpenAPI())
			os.Exit(0)
		}
		logger.Info("Starting server on port", "port", port)
		go func() {
			if err := process.Wait(); err != nil {
				logger.Error("Process exited with error", "error", err)
			}
			if err := srv.Stop(ctx); err != nil {
				logger.Error("Failed to stop server", "error", err)
			}
		}()
		if err := srv.Start(); err != nil && err != context.Canceled && err != http.ErrServerClosed {
			logger.Error("Failed to start server", "error", err)
			os.Exit(1)
		}
	},
}

Functions

This section is empty.

Types

type AgentType

type AgentType = msgfmt.AgentType
const (
	AgentTypeClaude AgentType = msgfmt.AgentTypeClaude
	AgentTypeGoose  AgentType = msgfmt.AgentTypeGoose
	AgentTypeAider  AgentType = msgfmt.AgentTypeAider
	AgentTypeCodex  AgentType = msgfmt.AgentTypeCodex
	AgentTypeCustom AgentType = msgfmt.AgentTypeCustom
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL