capability

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2026 License: GPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CapabilityService

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

CapabilityService handles capability business operations.

func NewCapabilityService

func NewCapabilityService(
	repo capabilitydom.Repository,
	auditService *auditapp.AuditService,
	log *logger.Logger,
) *CapabilityService

NewCapabilityService creates a new CapabilityService.

func (*CapabilityService) CreateCapability

CreateCapability creates a new tenant custom capability.

func (*CapabilityService) DeleteCapability

func (s *CapabilityService) DeleteCapability(ctx context.Context, input DeleteCapabilityInput) error

DeleteCapability deletes a tenant custom capability. If capability is in use and Force is false, returns ErrConflict with usage info.

func (*CapabilityService) GetCapabilitiesUsageStatsBatch

func (s *CapabilityService) GetCapabilitiesUsageStatsBatch(ctx context.Context, tenantIDStr string, capabilityIDs []string) (map[string]*CapabilityUsageStatsOutput, error)

GetCapabilitiesUsageStatsBatch returns usage statistics for multiple capabilities. Security: Filters out capabilities the tenant doesn't have access to.

func (*CapabilityService) GetCapability

func (s *CapabilityService) GetCapability(ctx context.Context, id string) (*capabilitydom.Capability, error)

GetCapability returns a capability by ID.

func (*CapabilityService) GetCapabilityUsageStats

func (s *CapabilityService) GetCapabilityUsageStats(ctx context.Context, tenantIDStr string, capabilityID string) (*CapabilityUsageStatsOutput, error)

GetCapabilityUsageStats returns usage statistics for a capability. Security: Validates tenant has access to view the capability (platform or owned custom).

func (*CapabilityService) GetCategories

func (s *CapabilityService) GetCategories(ctx context.Context) ([]string, error)

GetCategories returns all unique capability categories.

func (*CapabilityService) ListAllCapabilities

func (s *CapabilityService) ListAllCapabilities(ctx context.Context, tenantID string) ([]*capabilitydom.Capability, error)

ListAllCapabilities returns all capabilities for a tenant context (for dropdowns).

func (*CapabilityService) ListCapabilities

ListCapabilities returns capabilities matching the filter. Always includes platform (builtin) capabilities. If TenantID is provided, also includes that tenant's custom capabilities.

func (*CapabilityService) ListCapabilitiesByCategory

func (s *CapabilityService) ListCapabilitiesByCategory(ctx context.Context, tenantID string, category string) ([]*capabilitydom.Capability, error)

ListCapabilitiesByCategory returns all capabilities in a category.

func (*CapabilityService) ListCapabilitiesByNames

func (s *CapabilityService) ListCapabilitiesByNames(ctx context.Context, tenantID string, names []string) ([]*capabilitydom.Capability, error)

ListCapabilitiesByNames returns capabilities by their names.

func (*CapabilityService) UpdateCapability

UpdateCapability updates an existing tenant custom capability.

type CapabilityUsageStatsOutput

type CapabilityUsageStatsOutput struct {
	ToolCount  int      `json:"tool_count"`
	AgentCount int      `json:"agent_count"`
	ToolNames  []string `json:"tool_names,omitempty"`
	AgentNames []string `json:"agent_names,omitempty"`
}

CapabilityUsageStatsOutput represents usage statistics for a capability.

type CreateCapabilityInput

type CreateCapabilityInput struct {
	TenantID    string `json:"-"`
	CreatedBy   string `json:"-"`
	Name        string `json:"name" validate:"required,min=2,max=50"`
	DisplayName string `json:"display_name" validate:"required,max=100"`
	Description string `json:"description" validate:"max=500"`
	Icon        string `json:"icon" validate:"max=50"`
	Color       string `json:"color" validate:"max=20"`
	Category    string `json:"category" validate:"max=50"`

	// Audit context (set by handler)
	AuditContext auditapp.AuditContext `json:"-"`
}

CreateCapabilityInput represents the input for creating a tenant custom capability.

type DeleteCapabilityInput

type DeleteCapabilityInput struct {
	TenantID     string
	CapabilityID string
	Force        bool // Force delete even if capability is in use

	// Audit context (set by handler)
	AuditContext auditapp.AuditContext
}

DeleteCapabilityInput represents the input for deleting a capability.

type ListCapabilitiesInput

type ListCapabilitiesInput struct {
	TenantID  string
	IsBuiltin *bool
	Category  *string
	Search    string
	Page      int
	PerPage   int
}

ListCapabilitiesInput represents the input for listing capabilities.

type UpdateCapabilityInput

type UpdateCapabilityInput struct {
	TenantID    string `json:"-"`
	ID          string `json:"-"`
	DisplayName string `json:"display_name" validate:"required,max=100"`
	Description string `json:"description" validate:"max=500"`
	Icon        string `json:"icon" validate:"max=50"`
	Color       string `json:"color" validate:"max=20"`
	Category    string `json:"category" validate:"max=50"`

	// Audit context (set by handler)
	AuditContext auditapp.AuditContext `json:"-"`
}

UpdateCapabilityInput represents the input for updating a capability.

Jump to

Keyboard shortcuts

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