capability

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultRedactedValue = "[REDACTED]"
View Source
const RiskPlanSchemaVersion = "redevplugin.capability.risk_plan.v1"

Variables

View Source
var DefaultResponseRedactionPolicy = ResponseRedactionPolicy{
	Replacement: DefaultRedactedValue,
	MaxDepth:    64,
}
View Source
var ErrInvalidRiskPlan = errors.New("invalid capability risk plan")

Functions

func NormalizeRiskPlanData

func NormalizeRiskPlanData(data any) (any, error)

func RedactResponseData

func RedactResponseData(data any) any

Types

type Adapter

type Adapter interface {
	InvokeCapability(ctx context.Context, req Invocation) (Result, error)
}

type Effect

type Effect string
const (
	EffectRead    Effect = "read"
	EffectWrite   Effect = "write"
	EffectExecute Effect = "execute"
	EffectDelete  Effect = "delete"
	EffectAdmin   Effect = "admin"
)

type Invocation

type Invocation struct {
	CapabilityID         string         `json:"capability_id"`
	BindingID            string         `json:"binding_id,omitempty"`
	Method               string         `json:"method"`
	TargetMethod         string         `json:"target_method,omitempty"`
	Effect               Effect         `json:"effect"`
	PluginID             string         `json:"plugin_id"`
	PluginInstanceID     string         `json:"plugin_instance_id"`
	SurfaceInstanceID    string         `json:"surface_instance_id,omitempty"`
	SessionChannelIDHash string         `json:"session_channel_id_hash,omitempty"`
	BridgeChannelID      string         `json:"bridge_channel_id,omitempty"`
	Arguments            map[string]any `json:"arguments,omitempty"`
}

type Registry

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

func NewRegistry

func NewRegistry() *Registry

func (*Registry) Adapter

func (r *Registry) Adapter(capabilityID string) (Adapter, bool)

func (*Registry) Register

func (r *Registry) Register(capabilityID string, adapter Adapter)

type ResponseRedactionPolicy

type ResponseRedactionPolicy struct {
	Replacement string
	MaxDepth    int
}

func (ResponseRedactionPolicy) Redact

func (p ResponseRedactionPolicy) Redact(data any) any

type Result

type Result struct {
	Data        any    `json:"data,omitempty"`
	OperationID string `json:"operation_id,omitempty"`
	StreamID    string `json:"stream_id,omitempty"`
}

type RiskFlag

type RiskFlag struct {
	ID                   string       `json:"id"`
	Severity             RiskSeverity `json:"severity"`
	Summary              string       `json:"summary"`
	Description          string       `json:"description,omitempty"`
	RequiresConfirmation bool         `json:"requires_confirmation,omitempty"`
	RequiresAdmin        bool         `json:"requires_admin,omitempty"`
	DataLossRisk         bool         `json:"data_loss_risk,omitempty"`
	Destructive          bool         `json:"destructive,omitempty"`
}

type RiskPlan

type RiskPlan struct {
	SchemaVersion        string         `json:"schema_version"`
	CapabilityID         string         `json:"capability_id,omitempty"`
	BindingID            string         `json:"binding_id,omitempty"`
	Method               string         `json:"method,omitempty"`
	TargetMethod         string         `json:"target_method,omitempty"`
	Action               string         `json:"action,omitempty"`
	Effect               Effect         `json:"effect,omitempty"`
	ResourceRef          string         `json:"resource_ref,omitempty"`
	ResourceDisplayName  string         `json:"resource_display_name,omitempty"`
	Summary              string         `json:"summary"`
	RiskFlags            []RiskFlag     `json:"risk_flags"`
	RequiresConfirmation bool           `json:"requires_confirmation,omitempty"`
	RequiresAdmin        bool           `json:"requires_admin,omitempty"`
	DataLossRisk         bool           `json:"data_loss_risk,omitempty"`
	Destructive          bool           `json:"destructive,omitempty"`
	DenyReason           string         `json:"deny_reason,omitempty"`
	Details              map[string]any `json:"details,omitempty"`
}

func NewRiskPlan

func NewRiskPlan(inv Invocation, summary string) RiskPlan

func NormalizeRiskPlan

func NormalizeRiskPlan(plan RiskPlan) (RiskPlan, error)

type RiskSeverity

type RiskSeverity string
const (
	RiskSeverityInfo     RiskSeverity = "info"
	RiskSeverityLow      RiskSeverity = "low"
	RiskSeverityMedium   RiskSeverity = "medium"
	RiskSeverityHigh     RiskSeverity = "high"
	RiskSeverityCritical RiskSeverity = "critical"
)

Jump to

Keyboard shortcuts

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