Documentation
¶
Index ¶
- func RegisterVModelExtension(extRegistry *ExtensionRegistry, vmRegistry *virtualmodel.Registry) error
- type Extension
- type ExtensionConfig
- type ExtensionConfigRecord
- type ExtensionItem
- type ExtensionItemView
- type ExtensionRegistry
- func (r *ExtensionRegistry) GetExtension(id string) *Extension
- func (r *ExtensionRegistry) GetItem(extensionID, itemID string) *ExtensionItem
- func (r *ExtensionRegistry) ListExtensions() []*Extension
- func (r *ExtensionRegistry) ListItems(extensionID string) []*ExtensionItem
- func (r *ExtensionRegistry) RegisterExtension(ext *Extension) error
- func (r *ExtensionRegistry) RegisterItem(item *ExtensionItem) error
- type ExtensionService
- func (s *ExtensionService) Close() error
- func (s *ExtensionService) GetExtension(id string) (*ExtensionView, error)
- func (s *ExtensionService) GetItem(extensionID, itemID string) (*ExtensionItemView, error)
- func (s *ExtensionService) ListExtensions() ([]*ExtensionView, error)
- func (s *ExtensionService) ListItemsByExtension(extensionID string) ([]*ExtensionItemView, error)
- func (s *ExtensionService) UpdateExtension(id string, enabled *bool, order *int) error
- func (s *ExtensionService) UpdateItem(extensionID, itemID string, enabled *bool, configJSON *string) error
- type ExtensionStore
- func (s *ExtensionStore) Close() error
- func (s *ExtensionStore) DeleteConfig(id string) error
- func (s *ExtensionStore) GetConfig(id string) (*ExtensionConfig, error)
- func (s *ExtensionStore) GetConfigsByParent(parentID string) ([]*ExtensionConfig, error)
- func (s *ExtensionStore) GetConfigsByType(configType string) ([]*ExtensionConfig, error)
- func (s *ExtensionStore) ListConfigs() ([]*ExtensionConfig, error)
- func (s *ExtensionStore) SetConfig(config *ExtensionConfig) error
- type ExtensionView
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) 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