Documentation
¶
Index ¶
- Constants
- func AddCommand(appManager *AppManager) *cobra.Command
- func DeleteCommand(appManager *AppManager) *cobra.Command
- func ImportCommand(appManager *AppManager) *cobra.Command
- func ListCommand(appManager *AppManager) *cobra.Command
- func RestartCommand(appManager *AppManager) *cobra.Command
- func ShellCommand(appConfig *config.AppConfig) *cobra.Command
- func StartCommand(appManager *AppManager) *cobra.Command
- func StatusCommand(appManager *AppManager) *cobra.Command
- func StopCommand(appManager *AppManager) *cobra.Command
- func TokenCommand(appConfig *config.AppConfig) *cobra.Command
- type APIStyle
- type AppManager
- func (am *AppManager) AddProvider(name, apiBase, token string, apiStyle protocol.APIStyle) error
- func (am *AppManager) AddRule(rule typ.Rule) error
- func (am *AppManager) AppConfig() *config.AppConfig
- func (am *AppManager) DeleteProvider(name string) error
- func (am *AppManager) GetModelToken() string
- func (am *AppManager) GetProvider(name string) (*typ.Provider, error)
- func (am *AppManager) GetRuleByRequestModelAndScenario(requestModel string, scenario typ.RuleScenario) *typ.Rule
- func (am *AppManager) GetServerManager() *ServerManager
- func (am *AppManager) GetServerPort() int
- func (am *AppManager) GetUserToken() string
- func (am *AppManager) HasModelToken() bool
- func (am *AppManager) ImportRuleFromJSONL(data string, opts ImportOptions) (*ImportResult, error)
- func (am *AppManager) ListProviders() []*typ.Provider
- func (am *AppManager) ListRules() []typ.Rule
- func (am *AppManager) SaveConfig() error
- func (am *AppManager) SetServerPort(port int) error
- func (am *AppManager) SetupServer(port int, opts ...ServerManagerOption) error
- func (am *AppManager) UpdateRule(uuid string, rule typ.Rule) error
- type BannerConfig
- type ExportLine
- type ExportMetadata
- type ExportProviderData
- type ExportRuleData
- type ImportOptions
- type ImportResult
- type ServerManager
- func (sm *ServerManager) Cleanup()
- func (sm *ServerManager) GetGinEngine() *gin.Engine
- func (sm *ServerManager) IsRunning() bool
- func (sm *ServerManager) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (sm *ServerManager) Setup(port int) error
- func (sm *ServerManager) Start() error
- func (sm *ServerManager) Stop() error
- type ServerManagerOption
- func WithAdaptor(enabled bool) ServerManagerOption
- func WithDebug(enabled bool) ServerManagerOption
- func WithExperimentalFeatures(features map[string]bool) ServerManagerOption
- func WithHTTPSCertDir(certDir string) ServerManagerOption
- func WithHTTPSEnabled(enabled bool) ServerManagerOption
- func WithHTTPSRegenerate(regenerate bool) ServerManagerOption
- func WithHost(host string) ServerManagerOption
- func WithOpenBrowser(enabled bool) ServerManagerOption
- func WithRecordDir(dir string) ServerManagerOption
- func WithRecordMode(mode obs.RecordMode) ServerManagerOption
- func WithUI(enabled bool) ServerManagerOption
Constants ¶
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
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
Types ¶
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 ¶
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)
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