Help us shape the future of Go! Take the 2026 Go Developer Survey

capability

package
v0.2.2 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