Versions in this module Expand all Collapse all v0 v0.1.3 Apr 30, 2026 Changes in this version type Host + GetAssetBytes func(ctx context.Context, objectKey string) (*HostAssetBytes, error) + type HostAssetBytes struct + ContentType string + Data []byte v0.1.2 Apr 28, 2026 Changes in this version type Capability + const CapabilityHostAssetStorage type Host + GetAssetURL func(ctx context.Context, objectKey string) (string, error) + StoreAsset func(ctx context.Context, req HostStoreAssetRequest) (*HostStoredAsset, error) + type HostStoreAssetRequest struct + ContentType string + Data []byte + FileExtension string + Scope string + UserID int64 + type HostStoredAsset struct + AssetID string + ContentType string + ObjectKey string + PublicURL string + SizeBytes int64 type Usage + ImageSize string v0.1.1 Apr 27, 2026 Changes in this version + const HeaderRequestID + const LogFieldAPIKeyID + const LogFieldAccountID + const LogFieldDurationMs + const LogFieldError + const LogFieldGroupID + const LogFieldMethod + const LogFieldModel + const LogFieldPath + const LogFieldPlatform + const LogFieldPluginID + const LogFieldReason + const LogFieldRequestID + const LogFieldStatus + const LogFieldUserID + func ExtractOrGenerateRequestID(headers http.Header) string + func LoggerFromContext(ctx context.Context) *slog.Logger + func LoggerWithRequestID(ctx context.Context) (context.Context, *slog.Logger) + func RequestIDFromContext(ctx context.Context) string + func WithLogger(ctx context.Context, logger *slog.Logger) context.Context + func WithRequestID(ctx context.Context, id string) context.Context type Capability + const CapabilityHostForward + const CapabilityHostGetUserInfo + const CapabilityHostListModels + const CapabilityHostListPlatforms type Host + Forward func(ctx context.Context, req HostForwardRequest) (*HostForwardResponse, error) + ForwardStream func(ctx context.Context, req HostForwardRequest, ...) error + GetUserInfo func(ctx context.Context, userID int64) (*HostUserInfo, error) + ListModels func(ctx context.Context, platform string) ([]ModelInfo, error) + ListPlatforms func(ctx context.Context) ([]HostPlatform, error) + type HostForwardChunk struct + Data []byte + Done bool + Headers http.Header + StatusCode int + Usage HostForwardUsage + type HostForwardRequest struct + Body []byte + GroupID int64 + Headers http.Header + Method string + Model string + Path string + Stream bool + UserID int64 + type HostForwardResponse struct + Body []byte + Headers http.Header + StatusCode int + Usage HostForwardUsage + type HostForwardUsage struct + Cost float64 + InputTokens int64 + Model string + OutputTokens int64 + type HostPlatform struct + DisplayName string + Name string + type HostUserInfo struct + Balance float64 + Email string + Role string + Status string + UserID int64 + Username string type ModelInfo + CachedInputPriceFast float64 + InputPriceFast float64 + OutputPriceFast float64 v0.1.0 Apr 22, 2026 Changes in this version + const ConfigKeyLogLevel + const DefaultMiddlewareChainBudget + const DefaultMiddlewareDeadline + const PluginDSNConfigKey + const SDKVersion + const SlotAccountDetail + const SlotAccountForm + const WSMessageBinary + const WSMessageText + var ErrInvalidCredentials = errors.New("invalid credentials") + var ErrNotSupported = errors.New("not supported") + func GetPluginDSN(ctx PluginContext) string + func InitLogger(module, level, format string) + func IsKnownCapability(c Capability) bool + func LogFormat() string + func RemainingSecondsUntil(resetAt *time.Time, now time.Time) int + func ResetAtFromBase(base time.Time, resetAfterSeconds int) *time.Time + type Account struct + Credentials map[string]string + ID int64 + Name string + Platform string + ProxyURL string + Type string + type AccountTodayStats struct + AccountCost float64 + Requests int64 + Tokens int64 + UserCost float64 + type AccountType struct + Description string + Fields []CredentialField + Key string + Label string + type AccountUsageAccountsResponse struct + Accounts map[string]AccountUsageInfo + Errors []AccountUsageError + type AccountUsageCredits struct + Balance float64 + Unlimited bool + type AccountUsageError struct + ID int64 + Message string + type AccountUsageInfo struct + Credits *AccountUsageCredits + TodayStats *AccountTodayStats + UpdatedAt string + Windows []AccountUsageWindow + type AccountUsageWindow struct + Key string + Label string + ResetAt string + ResetSeconds int + UsedPercent float64 + func NewAccountUsageWindow(key, label string, usedPercent float64, resetAt *time.Time, now time.Time) AccountUsageWindow + type BackgroundTask struct + Handler func(ctx context.Context) error + Interval time.Duration + Name string + type Capability string + const CapabilityHostListGroups + const CapabilityHostProbeForward + const CapabilityHostReportAccountResult + const CapabilityHostSelectAccount + const CapabilityMiddlewareReadBody + func KnownCapabilities() []Capability + func (c Capability) String() string + type CapabilityValidationReport struct + Denied []Capability + Effective []Capability + Unknown []Capability + func ValidateCapabilities(typ PluginType, declared []Capability) CapabilityValidationReport + func (r CapabilityValidationReport) HasIssues() bool + type ConfigField struct + Default string + Description string + Key string + Label string + Placeholder string + Required bool + Type string + type ConfigWatcher interface + OnConfigUpdate func(config PluginConfig) error + type CostInput struct + CacheCreation1hTokens int + CacheCreation5mTokens int + CacheCreationTokens int + CachedInputTokens int + InputTokens int + OutputTokens int + ServiceTier string + type CostResult struct + CacheCreationCost float64 + CachedInputCost float64 + InputCost float64 + OutputCost float64 + func CalculateCost(input CostInput, model ModelInfo) CostResult + func (r CostResult) TotalCost() float64 + type CredentialField struct + EditDisabled bool + Key string + Label string + Placeholder string + Required bool + Type string + type DecisionAction int32 + const DecisionAllow + const DecisionDeny + const DecisionMutate + type ExtensionPlugin interface + BackgroundTasks func() []BackgroundTask + Migrate func() error + RegisterRoutes func(r RouteRegistrar) + type ForwardOutcome struct + Duration time.Duration + Kind OutcomeKind + Reason string + RetryAfter time.Duration + UpdatedCredentials map[string]string + Upstream UpstreamResponse + Usage *Usage + type ForwardRequest struct + Account *Account + Body []byte + Headers http.Header + Model string + Stream bool + Writer http.ResponseWriter + type FrontendPage struct + Audience string + Description string + Icon string + Path string + Title string + type FrontendWidget struct + EntryFile string + Slot string + Title string + type GatewayPlugin interface + Forward func(ctx context.Context, req *ForwardRequest) (ForwardOutcome, error) + HandleWebSocket func(ctx context.Context, conn WebSocketConn) (ForwardOutcome, error) + Models func() []ModelInfo + Platform func() string + QueryQuota func(ctx context.Context, credentials map[string]string) (*QuotaInfo, error) + Routes func() []RouteDefinition + ValidateAccount func(ctx context.Context, credentials map[string]string) error + type HealthChecker interface + HealthCheck func(ctx context.Context) error + type Host interface + ListGroups func(ctx context.Context) ([]HostGroup, error) + ProbeForward func(ctx context.Context, req HostProbeForwardRequest) (*HostProbeForwardResult, error) + ReportAccountResult func(ctx context.Context, accountID int64, success bool, errMsg string) error + SelectAccount func(ctx context.Context, req HostSelectAccountRequest) (*HostSelectAccountResult, error) + type HostAware interface + Host func() Host + type HostGroup struct + ID int64 + IsExclusive bool + Name string + Platform string + RateMultiplier float64 + type HostProbeForwardRequest struct + GroupID int64 + Model string + type HostProbeForwardResult struct + AccountID int64 + ErrorKind string + ErrorMsg string + LatencyMs int64 + Model string + Platform string + StatusCode int64 + Success bool + type HostSelectAccountRequest struct + ExcludeAccountIDs []int64 + GroupID int64 + Model string + SessionID string + type HostSelectAccountResult struct + AccountID int64 + AccountName string + Platform string + type MiddlewareDecision struct + Action DecisionAction + DenyMessage string + DenyStatusCode int32 + Metadata map[string]string + SetHeaders http.Header + type MiddlewareEvent struct + AccountID int64 + CachedInputCost float64 + CachedInputTokens int64 + Duration time.Duration + ErrorKind string + ErrorMsg string + FirstTokenMs int64 + GroupID int64 + InputCost float64 + InputTokens int64 + InputTokensEst int64 + Metadata map[string]string + Model string + OutputCost float64 + OutputTokens int64 + Platform string + RequestID string + ResponseBody []byte + ResponseHeaders http.Header + StatusCode int32 + Stream bool + UserID int64 + type MiddlewarePlugin interface + OnForwardBegin func(ctx context.Context, req *MiddlewareRequest) (*MiddlewareDecision, error) + OnForwardEnd func(ctx context.Context, evt *MiddlewareEvent) error + type MiddlewareRequest struct + AccountID int64 + GroupID int64 + InputTokensEst int64 + Metadata map[string]string + Model string + Platform string + RequestBody []byte + RequestHeaders http.Header + RequestID string + Stream bool + UserID int64 + type ModelInfo struct + CacheCreation1hPrice float64 + CacheCreationPrice float64 + CachedInputPrice float64 + CachedInputPriceFlex float64 + CachedInputPricePriority float64 + ContextWindow int + ID string + InputPrice float64 + InputPriceFlex float64 + InputPricePriority float64 + LongContextCachedMultiplier float64 + LongContextInputMultiplier float64 + LongContextOutputMultiplier float64 + LongContextThreshold int + MaxOutputTokens int + Name string + OutputPrice float64 + OutputPriceFlex float64 + OutputPricePriority float64 + type OutcomeKind int + const OutcomeAccountDead + const OutcomeAccountRateLimited + const OutcomeClientError + const OutcomeStreamAborted + const OutcomeSuccess + const OutcomeUnknown + const OutcomeUpstreamTransient + func (k OutcomeKind) IsAccountFault() bool + func (k OutcomeKind) IsSuccess() bool + func (k OutcomeKind) ShouldFailover() bool + func (k OutcomeKind) String() string + type Plugin interface + Info func() PluginInfo + Init func(ctx PluginContext) error + Start func(ctx context.Context) error + Stop func(ctx context.Context) error + type PluginConfig interface + GetAll func() map[string]string + GetBool func(key string) bool + GetDuration func(key string) time.Duration + GetFloat64 func(key string) float64 + GetInt func(key string) int + GetString func(key string) string + type PluginContext interface + Config func() PluginConfig + Logger func() *slog.Logger + type PluginDSNAware interface + PluginDSN func() string + type PluginInfo struct + AccountTypes []AccountType + Author string + Capabilities []Capability + ConfigSchema []ConfigField + Dependencies []string + Description string + FrontendPages []FrontendPage + FrontendWidgets []FrontendWidget + ID string + InstructionPresets []string + Name string + Priority int32 + SDKVersion string + Type PluginType + Version string + type PluginType string + const PluginTypeExtension + const PluginTypeGateway + const PluginTypeMiddleware + type QuotaInfo struct + Currency string + ExpiresAt string + Extra map[string]string + Remaining float64 + Total float64 + Used float64 + type RequestHandler interface + HandleRequest func(ctx context.Context, method, path, query string, headers http.Header, ...) (statusCode int, respHeaders http.Header, respBody []byte, err error) + type RouteDefinition struct + Description string + Method string + Path string + type RouteRegistrar interface + Group func(prefix string) RouteRegistrar + Handle func(method, path string, handler http.HandlerFunc) + type UpstreamResponse struct + Body []byte + Headers http.Header + StatusCode int + type Usage struct + CacheCreation1hPrice float64 + CacheCreation1hTokens int + CacheCreation5mTokens int + CacheCreationCost float64 + CacheCreationPrice float64 + CacheCreationTokens int + CachedInputCost float64 + CachedInputPrice float64 + CachedInputTokens int + FirstTokenMs int64 + InputCost float64 + InputPrice float64 + InputTokens int + Model string + OutputCost float64 + OutputPrice float64 + OutputTokens int + ReasoningOutputTokens int + ServiceTier string + type WebAssetsProvider interface + GetWebAssets func() map[string][]byte + type WebSocketConn interface + Close func(code int, reason string) error + ConnectInfo func() *WebSocketConnectInfo + ReadMessage func() (messageType int, data []byte, err error) + WriteMessage func(messageType int, data []byte) error + type WebSocketConnectInfo struct + Account *Account + ConnectionID string + Headers http.Header + Path string + Query string + RemoteAddr string v0.0.1 Mar 11, 2026