censor

package
v0.10.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAlreadyExists   = errors.New("plugin already exists")
	ErrInvalidConfig   = errors.New("invalid config")
	ErrInvalidStrategy = errors.New("invalid strategy")
	ErrPluginError     = errors.New("plugin error")
	ErrTimeout         = errors.New("timeout")
)

Functions

func Module

func Module() fx.Option

Types

type Config added in v0.4.0

type Config struct {
	Strategy    ExecutionStrategy
	Timeout     time.Duration
	Plugins     map[string]PluginConfig
	EnabledOnly bool

	ErrorAction plugin.Action
	SkipAction  plugin.Action
}

Config for the plugin manager.

func (Config) Validate added in v0.5.0

func (c Config) Validate() error

Validate checks if the configuration is valid.

type ExecutionStrategy added in v0.5.0

type ExecutionStrategy string

ExecutionStrategy determines how plugins are executed.

const (
	StrategySequential ExecutionStrategy = "sequential" // execute plugins in priority order, Allow takes precedence over Block
	StrategyParallel   ExecutionStrategy = "parallel"   // execute all plugins concurrently, aggregate results
)

func (ExecutionStrategy) IsValid added in v0.5.0

func (s ExecutionStrategy) IsValid() bool

type Metrics added in v0.4.0

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

func NewMetrics added in v0.4.0

func NewMetrics() *Metrics

func (*Metrics) RecordEvaluation added in v0.5.0

func (m *Metrics) RecordEvaluation(pluginName string, action plugin.Action, duration time.Duration, err error)

RecordEvaluation records metrics for a plugin evaluation.

func (*Metrics) RecordTotalEvaluation added in v0.5.0

func (m *Metrics) RecordTotalEvaluation(result plugin.Result)

RecordTotalEvaluation records the final result of message evaluation.

type PluginConfig added in v0.5.0

type PluginConfig struct {
	Enabled  bool
	Priority int
	Config   map[string]any
}

PluginConfig for individual plugin configuration.

type Service added in v0.5.0

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

Service orchestrates plugin execution.

func New

func New(plugins []plugin.Plugin, config Config, metrics *Metrics, logger *zap.Logger) *Service

New creates a new plugin manager.

func (*Service) Cleanup added in v0.7.0

func (s *Service) Cleanup(ctx context.Context)

func (*Service) Evaluate added in v0.5.0

func (s *Service) Evaluate(ctx context.Context, msg plugin.Message) plugin.Result

Evaluate runs plugins according to the configured strategy.

func (*Service) GetPlugins added in v0.5.0

func (s *Service) GetPlugins() []plugin.Plugin

GetPlugins returns a copy of the current plugins list (sorted by priority).

func (*Service) Register added in v0.5.0

func (s *Service) Register(p plugin.Plugin) error

Register adds a plugin to the manager.

Directories

Path Synopsis
llm

Jump to

Keyboard shortcuts

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