Versions in this module Expand all Collapse all v0 v0.5.0 Mar 30, 2026 Changes in this version + func NormalizeTag(tag string) string + func SourceDataFromPluginSource(source PluginSource) (map[string]any, error) + func ValidateOwnerRepo(ownerRepo string) error + type Asset struct + DownloadURL string + Name string + Size int + func FindPlatformAsset(assets []Asset, goos, goarch string) (Asset, error) + type GitHubReleaseClient struct + func NewGitHubReleaseClient(doer httpDoer) *GitHubReleaseClient + func (c *GitHubReleaseClient) ListReleases(ctx context.Context, ownerRepo string) ([]Release, error) + func (c *GitHubReleaseClient) ResolveVersion(ctx context.Context, ownerRepo, constraintStr string, includePrerelease bool) (Version, error) type JSONPluginStateStore + func (s *JSONPluginStateStore) GetSourceData(name string) map[string]any + func (s *JSONPluginStateStore) RemoveState(ctx context.Context, name string) error + func (s *JSONPluginStateStore) SetSourceData(ctx context.Context, name string, data map[string]any) error + type PluginInstaller struct + func NewPluginInstaller(optionalClient ...httpx.HTTPDoer) *PluginInstaller + func (pi *PluginInstaller) AtomicInstall(tempDir, targetDir string) error + func (pi *PluginInstaller) Download(ctx context.Context, url, checksum string) ([]byte, error) + func (pi *PluginInstaller) ExtractTarGz(data []byte, targetDir string) error + func (pi *PluginInstaller) Install(ctx context.Context, url, checksum, targetDir string, force bool) error + func (pi *PluginInstaller) ValidateManifest(dir string) error + func (pi *PluginInstaller) VerifyChecksum(data []byte, checksum string) error + type PluginSource struct + InstalledAt time.Time + Repository string + UpdatedAt time.Time + Version string + func PluginSourceFromSourceData(sourceData map[string]any) (PluginSource, error) type RPCPluginManager + func (m *RPCPluginManager) SetPluginsDirs(dirs []string) + func (m *RPCPluginManager) StepTypeProvider(logger ports.Logger) ports.StepTypeProvider + func (m *RPCPluginManager) ValidatorProvider(timeout time.Duration) ports.WorkflowValidatorProvider + type Release struct + Assets []Asset + Prerelease bool + TagName string + URL string type Version + func (v Version) IsPrerelease() bool v0.4.1 Mar 28, 2026 Changes in this version + const DefaultPluginsDir + const ManifestFileName + const OpCaret + const OpEqual + const OpGreater + const OpGreaterOrEqual + const OpLess + const OpLessOrEqual + const OpNotEqual + const OpTilde + var ErrInvalidOperation = errors.New("invalid operation schema") + var ErrNoPluginsConfigured = errors.New("rpc_manager: no plugins configured") + var ErrOperationAlreadyRegistered = errors.New("operation already registered") + var ErrOperationNotFound = errors.New("operation not found") + func CheckVersionConstraint(constraintStr, versionStr string) (bool, error) + func IsCompatible(awfVersionConstraint, currentAWFVersion string) (bool, error) + type CompositeOperationProvider struct + func NewCompositeOperationProvider(providers ...ports.OperationProvider) *CompositeOperationProvider + func (c *CompositeOperationProvider) Execute(ctx context.Context, name string, inputs map[string]any) (*pluginmodel.OperationResult, error) + func (c *CompositeOperationProvider) GetOperation(name string) (*pluginmodel.OperationSchema, bool) + func (c *CompositeOperationProvider) ListOperations() []*pluginmodel.OperationSchema + type Constraint struct + Operator string + Version Version + func ParseConstraint(s string) (Constraint, error) + func (c Constraint) Check(v Version) bool + type Constraints []Constraint + func ParseConstraints(s string) (Constraints, error) + func (cs Constraints) Check(v Version) bool + func (cs Constraints) String() string + type FileSystemLoader struct + func NewFileSystemLoader(parser *ManifestParser) *FileSystemLoader + func (l *FileSystemLoader) DiscoverPlugins(ctx context.Context, pluginsDir string) ([]*pluginmodel.PluginInfo, error) + func (l *FileSystemLoader) LoadPlugin(ctx context.Context, pluginDir string) (*pluginmodel.PluginInfo, error) + func (l *FileSystemLoader) ValidatePlugin(info *pluginmodel.PluginInfo) error + type JSONPluginStateStore struct + func NewJSONPluginStateStore(basePath string) *JSONPluginStateStore + func (s *JSONPluginStateStore) BasePath() string + func (s *JSONPluginStateStore) GetConfig(name string) map[string]any + func (s *JSONPluginStateStore) GetState(name string) *pluginmodel.PluginState + func (s *JSONPluginStateStore) IsEnabled(name string) bool + func (s *JSONPluginStateStore) ListDisabled() []string + func (s *JSONPluginStateStore) Load(ctx context.Context) error + func (s *JSONPluginStateStore) Save(ctx context.Context) error + func (s *JSONPluginStateStore) SetConfig(ctx context.Context, name string, config map[string]any) error + func (s *JSONPluginStateStore) SetEnabled(ctx context.Context, name string, enabled bool) error + type LoaderError struct + Cause error + Message string + Op string + Path string + func NewLoaderError(op, path, message string) *LoaderError + func WrapLoaderError(op, path string, cause error) *LoaderError + func (e *LoaderError) Error() string + func (e *LoaderError) Unwrap() error + type ManifestParseError struct + Cause error + Field string + File string + Message string + func NewManifestParseError(file, field, message string) *ManifestParseError + func WrapManifestParseError(file string, cause error) *ManifestParseError + func (e *ManifestParseError) Error() string + func (e *ManifestParseError) Unwrap() error + type ManifestParser struct + func NewManifestParser() *ManifestParser + func (p *ManifestParser) Parse(r io.Reader) (*pluginmodel.Manifest, error) + func (p *ManifestParser) ParseFile(path string) (*pluginmodel.Manifest, error) + type OperationRegistry struct + func NewOperationRegistry() *OperationRegistry + func (r *OperationRegistry) Clear() + func (r *OperationRegistry) Count() int + func (r *OperationRegistry) GetOperation(name string) (*pluginmodel.OperationSchema, bool) + func (r *OperationRegistry) GetOperationSource(operationName string) (string, bool) + func (r *OperationRegistry) GetPluginOperations(pluginName string) []*pluginmodel.OperationSchema + func (r *OperationRegistry) Operations() []*pluginmodel.OperationSchema + func (r *OperationRegistry) RegisterOperation(op *pluginmodel.OperationSchema) error + func (r *OperationRegistry) UnregisterOperation(name string) error + func (r *OperationRegistry) UnregisterPluginOperations(pluginName string) error + type RPCManagerError struct + Cause error + Message string + Op string + Plugin string + func NewRPCManagerError(op, pluginName, message string) *RPCManagerError + func WrapRPCManagerError(op, pluginName string, cause error) *RPCManagerError + func (e *RPCManagerError) Error() string + func (e *RPCManagerError) Unwrap() error + type RPCPluginManager struct + func NewRPCPluginManager(loader *FileSystemLoader) *RPCPluginManager + func (m *RPCPluginManager) Discover(ctx context.Context) ([]*pluginmodel.PluginInfo, error) + func (m *RPCPluginManager) Execute(ctx context.Context, name string, inputs map[string]any) (*pluginmodel.OperationResult, error) + func (m *RPCPluginManager) Get(name string) (*pluginmodel.PluginInfo, bool) + func (m *RPCPluginManager) GetOperation(name string) (*pluginmodel.OperationSchema, bool) + func (m *RPCPluginManager) Init(ctx context.Context, name string, config map[string]any) error + func (m *RPCPluginManager) List() []*pluginmodel.PluginInfo + func (m *RPCPluginManager) ListOperations() []*pluginmodel.OperationSchema + func (m *RPCPluginManager) Load(ctx context.Context, name string) error + func (m *RPCPluginManager) SetPluginsDir(dir string) + func (m *RPCPluginManager) Shutdown(ctx context.Context, name string) error + func (m *RPCPluginManager) ShutdownAll(ctx context.Context) error + type Version struct + Major int + Minor int + Patch int + Prerelease string + func ParseVersion(s string) (Version, error) + func (v Version) Compare(other Version) int + func (v Version) String() string