command

package
v0.260131.1220-preview Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MPL-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const StopTimeout = time.Second

Variables

This section is empty.

Functions

func AddCommand added in v0.260124.900

func AddCommand(appManager *AppManager) *cobra.Command

AddCommand represents the add provider command

func DeleteCommand added in v0.260124.900

func DeleteCommand(appManager *AppManager) *cobra.Command

DeleteCommand represents the delete provider command

func ImportCommand

func ImportCommand(appManager *AppManager) *cobra.Command

ImportCommand represents the import rule command

func ListCommand added in v0.260124.900

func ListCommand(appManager *AppManager) *cobra.Command

ListCommand represents the list providers command

func RestartCommand

func RestartCommand(appManager *AppManager) *cobra.Command

RestartCommand represents the restart server command

func ShellCommand added in v0.260124.900

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

ShellCommand represents the interactive CLI 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) GetModelToken

func (am *AppManager) GetModelToken() string

GetModelToken returns the model API token.

func (*AppManager) GetProvider

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

GetProvider returns a provider by name, 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 ...ServerManagerOption) error

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

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 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 ...ServerManagerOption) *ServerManager

NewServerManager creates a new server manager with default options (UI enabled, adapter enabled)

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

type ServerManagerOption added in v0.260124.900

type ServerManagerOption func(*ServerManager)

ServerManagerOption defines a functional option for ServerManager

func WithAdaptor added in v0.260124.900

func WithAdaptor(enabled bool) ServerManagerOption

WithAdaptor enables or disables the adaptor for the server manager

func WithDebug added in v0.260124.900

func WithDebug(enabled bool) ServerManagerOption

WithDebug enables or disables the debug mode for the server manager

func WithExperimentalFeatures added in v0.260124.900

func WithExperimentalFeatures(features map[string]bool) ServerManagerOption

WithExperimentalFeatures sets the experimental features for the server manager

func WithHTTPSCertDir added in v0.260124.900

func WithHTTPSCertDir(certDir string) ServerManagerOption

WithHTTPSCertDir sets HTTPS certificate directory

func WithHTTPSEnabled added in v0.260124.900

func WithHTTPSEnabled(enabled bool) ServerManagerOption

WithHTTPSEnabled sets HTTPS enabled flag

func WithHTTPSRegenerate added in v0.260124.900

func WithHTTPSRegenerate(regenerate bool) ServerManagerOption

WithHTTPSRegenerate sets HTTPS certificate regenerate flag

func WithHost added in v0.260124.900

func WithHost(host string) ServerManagerOption

func WithOpenBrowser added in v0.260124.900

func WithOpenBrowser(enabled bool) ServerManagerOption

WithOpenBrowser enables or disables automatic browser opening

func WithRecordDir added in v0.260124.900

func WithRecordDir(dir string) ServerManagerOption

WithRecordDir sets the record directory for request/response recording

func WithRecordMode added in v0.260124.900

func WithRecordMode(mode obs.RecordMode) ServerManagerOption

WithRecordMode sets the record mode for request/response recording mode: empty string = disabled, "all" = record all, "response" = response only

func WithUI added in v0.260124.900

func WithUI(enabled bool) ServerManagerOption

WithUI enables or disables the UI for the server manager

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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