pluginmodel

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2026 License: EUPL-1.2 Imports: 4 Imported by: 0

Documentation

Overview

Package plugin provides domain entities for the plugin system.

Index

Constants

View Source
const (
	CapabilityOperations = "operations"
	CapabilityStepTypes  = "step_types"
	CapabilityValidators = "validators"
)
View Source
const (
	ConfigTypeString  = "string"
	ConfigTypeInteger = "integer"
	ConfigTypeBoolean = "boolean"
)
View Source
const (
	InputTypeString  = "string"
	InputTypeInteger = "integer"
	InputTypeBoolean = "boolean"
	InputTypeArray   = "array"
	InputTypeObject  = "object"
)

Variables

View Source
var ErrNotImplemented = errors.New("not implemented")
View Source
var ValidValidationRules = []string{
	"url",
	"email",
}

Functions

This section is empty.

Types

type ConfigField

type ConfigField struct {
	Type        string
	Required    bool
	Default     any
	Description string
	Enum        []string
}

type InputSchema

type InputSchema struct {
	Type        string
	Required    bool
	Default     any
	Description string
	Validation  string
}

func (*InputSchema) IsValidType

func (i *InputSchema) IsValidType() bool

func (*InputSchema) Validate

func (i *InputSchema) Validate() error

type Manifest

type Manifest struct {
	Name         string
	Version      string
	Description  string
	AWFVersion   string
	Author       string
	License      string
	Homepage     string
	Capabilities []string
	Config       map[string]ConfigField
}

func (*Manifest) HasCapability

func (m *Manifest) HasCapability(capability string) bool

HasCapability checks if the plugin declares a specific capability.

func (*Manifest) Validate

func (m *Manifest) Validate() error

type OperationResult

type OperationResult struct {
	Success bool
	Outputs map[string]any
	Error   string
}

func (*OperationResult) GetOutput

func (r *OperationResult) GetOutput(key string) (any, bool)

func (*OperationResult) HasError

func (r *OperationResult) HasError() bool

func (*OperationResult) IsSuccess

func (r *OperationResult) IsSuccess() bool

type OperationSchema

type OperationSchema struct {
	Name        string
	Description string
	Inputs      map[string]InputSchema
	Outputs     []string
	PluginName  string
}

func (*OperationSchema) GetRequiredInputs

func (o *OperationSchema) GetRequiredInputs() []string

func (*OperationSchema) Validate

func (o *OperationSchema) Validate() error

type PluginInfo

type PluginInfo struct {
	Manifest      *Manifest
	Status        PluginStatus
	Type          PluginType
	Path          string
	Error         error
	LoadedAt      int64
	InitializedAt int64
	Operations    []string
	StepTypes     []string
}

func (*PluginInfo) CanLoad

func (p *PluginInfo) CanLoad() bool

func (*PluginInfo) IsActive

func (p *PluginInfo) IsActive() bool

type PluginState

type PluginState struct {
	Enabled    bool           `json:"enabled"`
	Config     map[string]any `json:"config,omitempty"`
	DisabledAt int64          `json:"disabled_at,omitempty"`
	SourceData map[string]any `json:"source_data,omitempty"`
}

func NewPluginState

func NewPluginState() *PluginState

type PluginStatus

type PluginStatus string

PluginStatus represents the lifecycle state of a plugin.

const (
	StatusDiscovered  PluginStatus = "discovered"  // Found in plugins/ directory
	StatusLoaded      PluginStatus = "loaded"      // Manifest parsed successfully
	StatusInitialized PluginStatus = "initialized" // Init() completed
	StatusRunning     PluginStatus = "running"     // Active and serving requests
	StatusStopped     PluginStatus = "stopped"     // Shutdown() completed
	StatusFailed      PluginStatus = "failed"      // Error occurred
	StatusDisabled    PluginStatus = "disabled"    // Manually disabled by user
	StatusBuiltin     PluginStatus = "builtin"     // Built-in provider registered at startup
)

type PluginType

type PluginType string

PluginType distinguishes built-in providers from external plugins.

const (
	PluginTypeBuiltin  PluginType = "builtin"
	PluginTypeExternal PluginType = "external"
)

Jump to

Keyboard shortcuts

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