Versions in this module Expand all Collapse all v0 v0.1.12 Mar 9, 2026 v0.1.11 Mar 5, 2026 v0.1.11-dev-20260308T221638 Mar 8, 2026 v0.1.11-dev-20260305T074840-dev-20260305T075107 Mar 5, 2026 v0.1.11-dev-20260305T074840 Mar 5, 2026 v0.1.11-dev-2026-03-05T07-36-00-251d29c Mar 5, 2026 v0.1.10 Mar 4, 2026 v0.1.9 Mar 4, 2026 v0.1.7 Mar 2, 2026 v0.1.6 Mar 2, 2026 v0.1.5 Mar 2, 2026 v0.1.4 Mar 1, 2026 v0.1.3 Mar 1, 2026 v0.1.2 Mar 1, 2026 Changes in this version + const DefaultPluginsVersion + const DefaultRegistryURL + const IndexCacheDuration + var CommonRuntimes = map[string]ExternalRuntime + var ErrConfigInvalid = errors.New("invalid configuration") + var ErrConnectionFailed = errors.New("connection failed") + var ErrInvalidManifest = errors.New("invalid plugin manifest") + var ErrMissingDependency = errors.New("missing binary dependency") + var ErrPluginAlreadyLoaded = errors.New("plugin already loaded") + var ErrPluginDisabled = errors.New("plugin is disabled") + var ErrPluginLoadFailed = errors.New("plugin load failed") + var ErrPluginNotFound = errors.New("plugin not found") + var ErrPluginTypeMismatch = errors.New("plugin type mismatch") + var ErrProcessingFailed = errors.New("processing failed") + var ErrRuntimeNotFound = errors.New("runtime not found") + var ErrSelectorInvalid = errors.New("invalid selector") + func ApplyDefaults(schema []ConfigOption, settings map[string]any) map[string]any + func ConfigPath() string + func DefaultPluginDirs() []string + func EnsurePluginDirs() error + func ExtractDefaultPlugins(destDir string) error + func ForceExtractDefaultPlugins(destDir string) error + func FormatInstallInstructions(dep BinaryDependency) string + func GetDefaultPluginContent(name string) ([]byte, error) + func GetInstallCommand(dep BinaryDependency) (string, string) + func InitializePlugins(ctx context.Context, opts ...ManagerOption) error + func InstallDependency(dep BinaryDependency) error + func IsLuaError(err error) bool + func IsMissingDependency(err error) bool + func IsPluginError(err error, pluginID string) bool + func IsRPCError(err error) bool + func ListDefaultPlugins() ([]string, error) + func RegisterExternalPluginFactory(factory PluginFactory) + func RegisterLuaPluginFactory(factory PluginFactory) + func RegisterPlugin(p Plugin) error + func ResetDefaultPlugins(destDir string) error + func SaveConfig(cfg *Config) error + func SaveConfigTo(cfg *Config, path string) error + func ShutdownPlugins() error + func ValidatePluginConfig(plugin Plugin, settings map[string]any) error + type BinaryDependency struct + Binary string + Check string + Found bool + Install map[string]string + MinVersion string + Version string + VersionRegex string + type Config struct + Disabled []string + HotReload bool + PluginDirs []string + PluginSettings map[string]map[string]any + func DefaultConfig() *Config + func LoadConfig() (*Config, error) + func LoadConfigFrom(path string) (*Config, error) + func (c *Config) Disable(pluginID string) + func (c *Config) Enable(pluginID string) + func (c *Config) GetPluginSetting(pluginID, key string) (any, bool) + func (c *Config) GetPluginSettings(pluginID string) map[string]any + func (c *Config) IsDisabled(pluginID string) bool + func (c *Config) SetPluginSetting(pluginID, key string, value any) + func (c *Config) SetPluginSettings(pluginID string, settings map[string]any) + func (c *Config) Validate() error + type ConfigError struct + Field string + PluginID string + Reason string + func (e *ConfigError) Error() string + type ConfigOption struct + Default any + Description string + ID string + Name string + Options []string + Required bool + Sensitive bool + Type string + type ConnectorPlugin interface + AsConnector func() core.Connector + AsReader func() (core.ConnectorReader, bool) + AsTester func() (core.ConnectorTester, bool) + AsWriter func() (core.ConnectorWriter, bool) + func GetConnectorPlugin(id string) (ConnectorPlugin, bool) + type DependencyChecker struct + func NewDependencyChecker() *DependencyChecker + func (c *DependencyChecker) AllSatisfied(deps []BinaryDependency) bool + func (c *DependencyChecker) Check(dep BinaryDependency) *DependencyStatus + func (c *DependencyChecker) CheckAll(deps []BinaryDependency) []*DependencyStatus + func (c *DependencyChecker) ClearCache() + func (c *DependencyChecker) MissingDependencies(deps []BinaryDependency) []BinaryDependency + type DependencyError struct + Binary string + Install map[string]string + Message string + func (e *DependencyError) Error() string + type DependencyStatus struct + Binary string + Error string + Found bool + MeetsMin bool + MinNeeded string + Path string + Version string + func CheckRuntime(rt ExternalRuntime) *DependencyStatus + type DiscoveredPlugin struct + Error string + Info *PluginInfo + Manifest *ExternalManifest + Path string + Source PluginSource + Tier PluginTier + Type PluginType + type ExternalManifest struct + APIVersion string + Kind string + Metadata ExternalManifestMeta + Spec ExternalManifestSpec + type ExternalManifestMeta struct + Author string + Description string + ID string + Name string + Version string + type ExternalManifestSpec struct + AuthType string + Capabilities []string + ConfigSchema []ConfigOption + DataTypes []string + DefaultSelector *Selector + Dependencies []BinaryDependency + Entrypoint string + RequiresAuth bool + Runtime ExternalRuntime + Setup *ExternalSetup + Type PluginType + type ExternalRuntime struct + Command string + MinVersion string + VersionCheck string + type ExternalSetup struct + Command string + RunWhen string + type InstalledPlugin struct + Entry RegistryEntry + InstalledAt time.Time + LocalPath string + Source string + SourcePath string + UpdatedAt time.Time + type InstalledPluginsDB struct + Plugins map[string]InstalledPlugin + UpdatedAt time.Time + Version string + type Installer struct + func NewInstaller(opts ...InstallerOption) *Installer + func (i *Installer) CheckUpdates(ctx context.Context) ([]PluginUpdate, error) + func (i *Installer) FetchIndex(ctx context.Context) (*RegistryIndex, error) + func (i *Installer) GetEntry(ctx context.Context, id string) (*RegistryEntry, error) + func (i *Installer) GetInstalled(id string) (*InstalledPlugin, error) + func (i *Installer) Install(ctx context.Context, id string) error + func (i *Installer) InstallFromPath(ctx context.Context, path string) error + func (i *Installer) InstallFromURL(ctx context.Context, url string) error + func (i *Installer) ListInstalled() ([]InstalledPlugin, error) + func (i *Installer) Remove(ctx context.Context, id string) error + func (i *Installer) Search(ctx context.Context, query string) ([]RegistryEntry, error) + func (i *Installer) Update(ctx context.Context, id string) error + func (i *Installer) UpdateAll(ctx context.Context) ([]string, error) + type InstallerOption func(*Installer) + func WithCacheDir(dir string) InstallerOption + func WithPluginDir(dir string) InstallerOption + func WithRegistryURL(url string) InstallerOption + type Loader struct + func NewLoader(registry *Registry, dirs ...string) *Loader + func (l *Loader) Discover(dir string) ([]*DiscoveredPlugin, error) + func (l *Loader) DiscoverAll() ([]*DiscoveredPlugin, error) + func (l *Loader) LoadAll(ctx context.Context) error + func (l *Loader) Watch(ctx context.Context, onChange func(path string, op WatchOp)) error + type LuaError struct + Function string + Message string + PluginID string + func (e *LuaError) Error() string + type LuaPluginMeta struct + AuthType string + Capabilities []string + DataTypes []string + Description string + ID string + Name string + RequiresAuth bool + Type string + Version string + type Manager struct + func NewManager(opts ...ManagerOption) *Manager + func PluginManager() *Manager + func (m *Manager) CheckDependencies() []*DependencyStatus + func (m *Manager) GetApplicableProcessors(item *core.DataItem) []Processor + func (m *Manager) GetConnector(id string) (core.Connector, bool) + func (m *Manager) GetOutput(id string) (svccore.Output, bool) + func (m *Manager) GetProcessor(id string) (Processor, bool) + func (m *Manager) Initialize(ctx context.Context) error + func (m *Manager) ListPlugins() []PluginInfo + func (m *Manager) Registry() *Registry + func (m *Manager) ReloadPlugin(ctx context.Context, id string) error + func (m *Manager) Shutdown() error + type ManagerOption func(*Manager) + func WithHotReload(enabled bool) ManagerOption + func WithLogLevel(level string) ManagerOption + func WithPluginDirs(dirs ...string) ManagerOption + type ManifestError struct + Field string + Path string + Reason string + func (e *ManifestError) Error() string + type OutputPlugin interface + AsOutput func() svccore.Output + Selector func() *Selector + func GetOutputPlugin(id string) (OutputPlugin, bool) + type Plugin interface + Info func() PluginInfo + Load func(ctx context.Context) error + Reload func(ctx context.Context) error + Unload func() error + func GetPlugin(id string) (Plugin, bool) + type PluginConfig struct + Enabled bool + PluginID string + Selector *Selector + Settings map[string]any + type PluginError struct + Err error + Op string + PluginID string + func NewPluginError(pluginID, op string, err error) *PluginError + func (e *PluginError) Error() string + func (e *PluginError) Unwrap() error + type PluginFactory func(dp *DiscoveredPlugin) (Plugin, error) + type PluginInfo struct + AuthType string + Author string + Capabilities []core.ConnectorCapability + ConfigSchema []ConfigOption + DataTypes []core.DataType + DefaultSelector *Selector + Dependencies []BinaryDependency + Description string + ID string + Name string + Path string + RequiresAuth bool + Source PluginSource + State PluginState + StateError string + Tier PluginTier + Type PluginType + Version string + type PluginReader struct + Item *core.DataItem + Plugin Plugin + type PluginSource string + const PluginSourceBuiltIn + const PluginSourceCommunity + const PluginSourceUser + type PluginState string + const PluginStateDisabled + const PluginStateError + const PluginStateLoading + const PluginStateMissingDeps + const PluginStateReady + const PluginStateUnloaded + type PluginTier string + const PluginTierExternal + const PluginTierLua + type PluginType string + const PluginTypeConnector + const PluginTypeOutput + const PluginTypeProcessor + type PluginUpdate struct + CurrentVersion string + Entry RegistryEntry + ID string + LatestVersion string + type Processor interface + CanProcess func(item *core.DataItem) bool + ConfigSchema func() []ConfigOption + DefaultSelector func() *Selector + Description func() string + ID func() string + Name func() string + Process func(ctx context.Context, item *core.DataItem, config map[string]any) (*core.DataItem, error) + ProcessBatch func(ctx context.Context, items []*core.DataItem, config map[string]any, ...) ([]*core.DataItem, error) + type ProcessorPlugin interface + AsProcessor func() Processor + Selector func() *Selector + func GetProcessorPlugin(id string) (ProcessorPlugin, bool) + type ProgressFunc func(done, total int, message string) + type RPCCallError struct + Code int + Message string + Method string + PluginID string + func (e *RPCCallError) Error() string + type RPCError struct + Code int + Data any + Message string + type RPCRequest struct + ID int + JSONRPC string + Method string + Params map[string]any + type RPCResponse struct + Error *RPCError + ID int + JSONRPC string + Result any + type Registry struct + func Global() *Registry + func NewRegistry() *Registry + func (r *Registry) All() []Plugin + func (r *Registry) Connectors() []ConnectorPlugin + func (r *Registry) ConnectorsByCapability(cap string) []ConnectorPlugin + func (r *Registry) Get(id string) (Plugin, bool) + func (r *Registry) GetConnector(id string) (ConnectorPlugin, bool) + func (r *Registry) GetOutput(id string) (OutputPlugin, bool) + func (r *Registry) GetProcessor(id string) (ProcessorPlugin, bool) + func (r *Registry) LoadAll(ctx context.Context) error + func (r *Registry) OnLoad(cb func(Plugin)) + func (r *Registry) OnReload(cb func(Plugin)) + func (r *Registry) OnUnload(cb func(Plugin)) + func (r *Registry) Outputs() []OutputPlugin + func (r *Registry) PluginsByState(state PluginState) []Plugin + func (r *Registry) PluginsByTier(tier PluginTier) []Plugin + func (r *Registry) Processors() []ProcessorPlugin + func (r *Registry) ProcessorsByDataType(dt string) []ProcessorPlugin + func (r *Registry) Register(p Plugin) error + func (r *Registry) Reload(ctx context.Context, id string) error + func (r *Registry) Stats() RegistryStats + func (r *Registry) UnloadAll() error + func (r *Registry) Unregister(id string) error + type RegistryEntry struct + Author string + Checksum string + Deprecated bool + Description string + Downloads int + Homepage string + ID string + License string + Metadata map[string]string + MinVersion string + Name string + Path string + Platforms []string + Repository string + Tags []string + Tier PluginTier + Type PluginType + Version string + type RegistryIndex struct + LastUpdated time.Time + Plugins map[string]RegistryEntry + Version string + type RegistryStats struct + ByState map[PluginState]int + ByTier map[PluginTier]int + Connectors int + Outputs int + Processors int + Total int + type Selector struct + All bool + Condition string + DataTypes []core.DataType + Extensions []string + From string + MimeTypes []string + PathExclude string + PathMatch string + SourceConnectors []string + func MergeSelectors(selectors ...*Selector) *Selector + func (s *Selector) Clone() *Selector + func (s *Selector) IsEmpty() bool + type SelectorError struct + Err error + Field string + func (e *SelectorError) Error() string + func (e *SelectorError) Unwrap() error + type SelectorMatcher struct + func NewSelectorMatcher(s *Selector) (*SelectorMatcher, error) + func (m *SelectorMatcher) Match(item *core.DataItem) bool + func (m *SelectorMatcher) MatchWithCondition(item *core.DataItem, ...) (bool, error) + type WatchOp int + const WatchOpCreate + const WatchOpDelete + const WatchOpModify v0.1.1 Mar 1, 2026 v0.1.0 Mar 1, 2026