command

package
v0.260313.1200-preview Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2026 License: MPL-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const StopTimeout = time.Second

Variables

This section is empty.

Functions

func ImportCommand

func ImportCommand(appManager *AppManager) *cobra.Command

ImportCommand represents the import rule command

func OAuthCommand

func OAuthCommand(appManager interface{}) interface{}

OAuthCommand returns the oauth command group

func ProviderCommand

func ProviderCommand(appManager *AppManager) *cobra.Command

ProviderCommand represents the unified provider management command It provides both interactive mode (no args) and subcommands for specific operations

func QuickstartCommand

func QuickstartCommand(appManager *AppManager) *cobra.Command

QuickstartCommand creates the quickstart subcommand for guided setup

func RemoteCoderCommand

func RemoteCoderCommand(appManager *AppManager) *cobra.Command

RemoteCoderCommand is deprecated. Use RemoteCommand instead.

func RemoteCommand

func RemoteCommand(appManager *AppManager) *cobra.Command

RemoteCommand creates the `remote` subcommand for bot management.

func RestartCommand

func RestartCommand(appManager *AppManager) *cobra.Command

RestartCommand represents the restart server command

func StartCommand

func StartCommand(appManager *AppManager) *cobra.Command

StartCommand represents the start server command

func StatusCommand

func StatusCommand(appManager *AppManager) *cobra.Command

StatusCommand represents the status command

func StopCommand

func StopCommand(appManager *AppManager) *cobra.Command

StopCommand represents the stop server command

func TokenCommand

func TokenCommand(appConfig *config.AppConfig) *cobra.Command

TokenCommand represents the generate token command

Types

type APIStyle

type APIStyle = protocol.APIStyle

type AppManager

type AppManager struct {
	// contains filtered or unexported fields
}

AppManager manages all application state and operations. It serves as the single source of truth for business logic that can be used by both CLI (cobra commands) and GUI (Wails services).

func NewAppManager

func NewAppManager(configDir string) (*AppManager, error)

NewAppManager creates a new AppManager with the given config directory.

func NewAppManagerWithConfig

func NewAppManagerWithConfig(appConfig *config.AppConfig) *AppManager

NewAppManagerWithConfig creates a new AppManager with an existing AppConfig.

func (*AppManager) AddProvider

func (am *AppManager) AddProvider(name, apiBase, token string, apiStyle protocol.APIStyle) error

AddProvider adds a new AI provider with the given configuration.

func (*AppManager) AddRule

func (am *AppManager) AddRule(rule typ.Rule) error

AddRule adds a new routing rule.

func (*AppManager) AppConfig

func (am *AppManager) AppConfig() *config.AppConfig

AppConfig returns the underlying AppConfig.

func (*AppManager) DeleteProvider

func (am *AppManager) DeleteProvider(name string) error

DeleteProvider removes an AI provider by name.

func (*AppManager) DeleteProviderByUUID

func (am *AppManager) DeleteProviderByUUID(uuid string) error

DeleteProviderByUUID removes an AI provider by UUID.

func (*AppManager) FetchAndSaveProviderModels

func (am *AppManager) FetchAndSaveProviderModels(providerUUID string) error

FetchAndSaveProviderModels fetches models from a provider and saves them.

func (*AppManager) GetGlobalConfig

func (am *AppManager) GetGlobalConfig() *serverconfig.Config

GetGlobalConfig returns the global configuration manager.

func (*AppManager) GetModelToken

func (am *AppManager) GetModelToken() string

GetModelToken returns the model API token.

func (*AppManager) GetProvider

func (am *AppManager) GetProvider(uuid string) (*typ.Provider, error)

GetProvider returns a provider by UUID, or nil if not found.

func (*AppManager) GetRuleByRequestModelAndScenario

func (am *AppManager) GetRuleByRequestModelAndScenario(requestModel string, scenario typ.RuleScenario) *typ.Rule

GetRuleByRequestModelAndScenario returns a rule by request model and scenario.

func (*AppManager) GetServerManager

func (am *AppManager) GetServerManager() *ServerManager

GetServerManager returns the server manager instance.

func (*AppManager) GetServerPort

func (am *AppManager) GetServerPort() int

GetServerPort returns the configured server port.

func (*AppManager) GetUserToken

func (am *AppManager) GetUserToken() string

GetUserToken returns the user authentication token.

func (*AppManager) HasModelToken

func (am *AppManager) HasModelToken() bool

HasModelToken returns true if a model token is configured.

func (*AppManager) ImportRuleFromJSONL

func (am *AppManager) ImportRuleFromJSONL(data string, opts ImportOptions) (*ImportResult, error)

ImportRuleFromJSONL imports a rule from JSONL format (either file content or stdin format). The data should be line-delimited JSON with: - Line 1: metadata (type="metadata") - Line 2: rule data (type="rule") - Subsequent lines: provider data (type="provider")

func (*AppManager) ListProviders

func (am *AppManager) ListProviders() []*typ.Provider

ListProviders returns all configured providers.

func (*AppManager) ListRules

func (am *AppManager) ListRules() []typ.Rule

ListRules returns all configured rules.

func (*AppManager) SaveConfig

func (am *AppManager) SaveConfig() error

SaveConfig saves the current configuration to disk.

func (*AppManager) SetServerPort

func (am *AppManager) SetServerPort(port int) error

SetServerPort sets the server port.

func (*AppManager) SetupServer

func (am *AppManager) SetupServer(port int, opts ...server.ServerOption) error

SetupServer initializes the server manager with the given port and options.

func (*AppManager) SetupServerWithPort

func (am *AppManager) SetupServerWithPort(port int) error

SetupServerWithPort initializes the server manager with just a port (no options). This is a convenience method for the TUI wizard.

func (*AppManager) StartServer

func (am *AppManager) StartServer() error

StartServer starts the server if it has been set up.

func (*AppManager) UpdateProviderByUUID

func (am *AppManager) UpdateProviderByUUID(uuid string, provider *typ.Provider) error

UpdateProviderByUUID updates an existing provider by UUID.

func (*AppManager) UpdateRule

func (am *AppManager) UpdateRule(uuid string, rule typ.Rule) error

UpdateRule updates an existing rule by UUID.

type BannerConfig

type BannerConfig struct {
	Port         int
	Host         string
	EnableUI     bool
	GlobalConfig *serverconfig.Config
	IsDaemon     bool
	HTTPEnabled  bool
}

BannerConfig holds configuration for banner display

type ExportLine

type ExportLine struct {
	Type string `json:"type"`
}

ExportLine represents a generic line in the export file

type ExportMetadata

type ExportMetadata struct {
	Type       string `json:"type"`
	Version    string `json:"version"`
	ExportedAt string `json:"exported_at"`
}

ExportMetadata represents the metadata line

type ExportProviderData

type ExportProviderData struct {
	Type        string           `json:"type"`
	UUID        string           `json:"uuid"`
	Name        string           `json:"name"`
	APIBase     string           `json:"api_base"`
	APIStyle    string           `json:"api_style"`
	AuthType    string           `json:"auth_type"`
	Token       string           `json:"token"`
	OAuthDetail *typ.OAuthDetail `json:"oauth_detail"`
	Enabled     bool             `json:"enabled"`
	ProxyURL    string           `json:"proxy_url"`
	Timeout     int64            `json:"timeout"`
	Tags        []string         `json:"tags"`
	Models      []string         `json:"models"`
}

ExportProviderData represents the provider export data

type ExportRuleData

type ExportRuleData struct {
	Type          string                 `json:"type"`
	UUID          string                 `json:"uuid"`
	Scenario      string                 `json:"scenario"`
	RequestModel  string                 `json:"request_model"`
	ResponseModel string                 `json:"response_model"`
	Description   string                 `json:"description"`
	Services      []*loadbalance.Service `json:"services"`
	LBTactic      typ.Tactic             `json:"lb_tactic"`
	Active        bool                   `json:"active"`
	SmartEnabled  bool                   `json:"smart_enabled"`
	SmartRouting  []interface{}          `json:"smart_routing"`
}

ExportRuleData represents the rule export data

type ImportOptions

type ImportOptions struct {
	// OnProviderConflict specifies what to do when a provider already exists.
	// "use" - use existing provider, "skip" - skip this provider, "suffix" - create with suffixed name
	OnProviderConflict string
	// OnRuleConflict specifies what to do when a rule already exists.
	// "skip" - skip import, "update" - update existing rule, "new" - create with new name
	OnRuleConflict string
	// Quiet suppresses progress output
	Quiet bool
}

ImportOptions controls how imports are handled when conflicts occur.

type ImportResult

type ImportResult struct {
	RuleCreated      bool
	RuleUpdated      bool
	ProvidersCreated int
	ProvidersUsed    int
	ProviderMap      map[string]string // old UUID -> new UUID
}

ImportResult contains the results of an import operation.

type ProviderInfo

type ProviderInfo struct {
	Type        string
	DisplayName string
	Description string
}

ProviderInfo holds information about an OAuth provider

type ProviderOAuthConfig

type ProviderOAuthConfig struct {
	Type          string
	DisplayName   string
	APIBase       string
	APIStyle      string
	OAuthMethod   string // "pkce" or "device_code"
	NeedsPort1455 bool
}

ProviderOAuthConfig holds OAuth configuration for a provider

type ServerManager

type ServerManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

ServerManager manages the HTTP server lifecycle

func NewServerManager

func NewServerManager(appConfig *config.AppConfig, opts ...server.ServerOption) *ServerManager

NewServerManager creates a new server manager. opts are server options passed directly to the underlying server.

func (*ServerManager) Cleanup

func (sm *ServerManager) Cleanup()

func (*ServerManager) GetGinEngine

func (sm *ServerManager) GetGinEngine() *gin.Engine

func (*ServerManager) IsRunning

func (sm *ServerManager) IsRunning() bool

IsRunning checks if the server is currently running

func (*ServerManager) ServeHTTP

func (sm *ServerManager) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*ServerManager) Setup

func (sm *ServerManager) Setup(port int) error

Setup creates and configures the server without starting it

func (*ServerManager) Start

func (sm *ServerManager) Start() error

Start starts the server (requires Setup to be called first)

func (*ServerManager) Stop

func (sm *ServerManager) Stop() error

Stop stops the server gracefully

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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