extension

package
v0.260414.2000 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: MPL-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterVModelExtension

func RegisterVModelExtension(extRegistry *ExtensionRegistry, vmRegistry *virtualmodel.Registry) error

RegisterVModelExtension registers VModel as an extension in the extension registry

Types

type Extension

type Extension struct {
	ID          string            // Unique identifier (e.g., "vmodel", "mcp")
	Name        string            // Display name
	Description string            // Human-readable description
	Icon        string            // Icon identifier
	Metadata    map[string]string // Additional metadata
}

Extension represents a code-defined extension type

type ExtensionConfig

type ExtensionConfig struct {
	ID        string // "vmodel" (extension) or "compact-thinking" (item)
	Type      string // "extension" or "item"
	ParentID  string // For items: parent extension ID
	Enabled   bool   // User toggle
	Config    string // JSON config override (items only)
	Order     int    // Display order
	CreatedAt int64
	UpdatedAt int64
}

ExtensionConfig represents user configuration stored in database

type ExtensionConfigRecord

type ExtensionConfigRecord struct {
	ID        string `gorm:"primaryKey;column:id"`
	Type      string `gorm:"column:type;not null"`
	ParentID  string `gorm:"column:parent_id"`
	Enabled   bool   `gorm:"column:enabled"`
	Config    string `gorm:"column:config;type:text"`
	Order     int    `gorm:"column:order"`
	CreatedAt int64  `gorm:"column:created_at"`
	UpdatedAt int64  `gorm:"column:updated_at"`
}

ExtensionConfigRecord is the GORM model for ExtensionConfig

func (ExtensionConfigRecord) TableName

func (ExtensionConfigRecord) TableName() string

TableName specifies the table name for GORM

type ExtensionItem

type ExtensionItem struct {
	ID          string                 // Unique identifier (e.g., "compact-thinking")
	ExtensionID string                 // Parent extension ID
	Name        string                 // Display name
	Description string                 // Description
	Icon        string                 // Icon
	Type        string                 // Item type (domain-specific, e.g., "static", "proxy", "tool")
	Metadata    map[string]interface{} // Domain-specific metadata
	Config      map[string]interface{} // Default config schema
}

ExtensionItem represents a code-defined item within an extension

type ExtensionItemView

type ExtensionItemView struct {
	*ExtensionItem        // Code definition
	Enabled        bool   // From database (or default: true)
	Config         string // JSON from database (or default: "")
	Order          int    // From database (or default: 0)
}

ExtensionItemView represents an item with merged code definition and database state

type ExtensionRegistry

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

ExtensionRegistry manages code-defined extensions and items in memory

func NewExtensionRegistry

func NewExtensionRegistry() *ExtensionRegistry

NewExtensionRegistry creates a new extension registry

func (*ExtensionRegistry) GetExtension

func (r *ExtensionRegistry) GetExtension(id string) *Extension

GetExtension retrieves an extension by ID

func (*ExtensionRegistry) GetItem

func (r *ExtensionRegistry) GetItem(extensionID, itemID string) *ExtensionItem

GetItem retrieves an item by extension ID and item ID

func (*ExtensionRegistry) ListExtensions

func (r *ExtensionRegistry) ListExtensions() []*Extension

ListExtensions returns all registered extensions

func (*ExtensionRegistry) ListItems

func (r *ExtensionRegistry) ListItems(extensionID string) []*ExtensionItem

ListItems returns all items for a specific extension

func (*ExtensionRegistry) RegisterExtension

func (r *ExtensionRegistry) RegisterExtension(ext *Extension) error

RegisterExtension registers a new extension

func (*ExtensionRegistry) RegisterItem

func (r *ExtensionRegistry) RegisterItem(item *ExtensionItem) error

RegisterItem registers a new item for an extension

type ExtensionService

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

ExtensionService combines registry and store for unified extension management

func NewExtensionService

func NewExtensionService(registry *ExtensionRegistry, store *ExtensionStore) *ExtensionService

NewExtensionService creates a new extension service

func (*ExtensionService) Close

func (s *ExtensionService) Close() error

Close closes the store

func (*ExtensionService) GetExtension

func (s *ExtensionService) GetExtension(id string) (*ExtensionView, error)

GetExtension returns a specific extension with merged state

func (*ExtensionService) GetItem

func (s *ExtensionService) GetItem(extensionID, itemID string) (*ExtensionItemView, error)

GetItem returns a specific item with merged state

func (*ExtensionService) ListExtensions

func (s *ExtensionService) ListExtensions() ([]*ExtensionView, error)

ListExtensions returns all extensions with merged state from registry and store

func (*ExtensionService) ListItemsByExtension

func (s *ExtensionService) ListItemsByExtension(extensionID string) ([]*ExtensionItemView, error)

ListItemsByExtension returns all items for an extension with merged state

func (*ExtensionService) UpdateExtension

func (s *ExtensionService) UpdateExtension(id string, enabled *bool, order *int) error

UpdateExtension updates extension configuration (enabled, order)

func (*ExtensionService) UpdateItem

func (s *ExtensionService) UpdateItem(extensionID, itemID string, enabled *bool, configJSON *string) error

UpdateItem updates item configuration (enabled, config)

type ExtensionStore

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

ExtensionStore manages extension configuration persistence

func NewExtensionStore

func NewExtensionStore(dbPath string) (*ExtensionStore, error)

NewExtensionStore creates or loads an extension store

func (*ExtensionStore) Close

func (s *ExtensionStore) Close() error

Close closes the database connection

func (*ExtensionStore) DeleteConfig

func (s *ExtensionStore) DeleteConfig(id string) error

DeleteConfig deletes a config by ID

func (*ExtensionStore) GetConfig

func (s *ExtensionStore) GetConfig(id string) (*ExtensionConfig, error)

GetConfig retrieves a config by ID

func (*ExtensionStore) GetConfigsByParent

func (s *ExtensionStore) GetConfigsByParent(parentID string) ([]*ExtensionConfig, error)

GetConfigsByParent returns all configs for a given parent ID

func (*ExtensionStore) GetConfigsByType

func (s *ExtensionStore) GetConfigsByType(configType string) ([]*ExtensionConfig, error)

GetConfigsByType returns all configs of a given type

func (*ExtensionStore) ListConfigs

func (s *ExtensionStore) ListConfigs() ([]*ExtensionConfig, error)

ListConfigs returns all configs

func (*ExtensionStore) SetConfig

func (s *ExtensionStore) SetConfig(config *ExtensionConfig) error

SetConfig saves or updates a config

type ExtensionView

type ExtensionView struct {
	*Extension      // Code definition
	Enabled    bool // From database (or default: true)
	Order      int  // From database (or default: 0)
	Items      []ExtensionItemView
}

ExtensionView represents an extension with merged code definition and database state

Jump to

Keyboard shortcuts

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