collaboration

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Activity

type Activity struct {
	ID          string                 `json:"id"`
	UserID      string                 `json:"user_id"`
	Type        ActivityType           `json:"type"`
	Description string                 `json:"description"`
	Target      string                 `json:"target"`
	Metadata    map[string]interface{} `json:"metadata"`
	Timestamp   time.Time              `json:"timestamp"`
}

Activity represents a user activity

type ActivityType

type ActivityType string

ActivityType defines activity types

const (
	ActivityCreate  ActivityType = "create"
	ActivityUpdate  ActivityType = "update"
	ActivityDelete  ActivityType = "delete"
	ActivityExecute ActivityType = "execute"
	ActivityComment ActivityType = "comment"
	ActivityShare   ActivityType = "share"
)

type AttackPlan

type AttackPlan struct {
	ID          string
	Name        string
	Description string
	Steps       []*AttackStep
	Status      string
}

AttackPlan represents an attack plan

type AttackStep

type AttackStep struct {
	Order       int
	Description string
	Completed   bool
}

type BoardElement

type BoardElement struct {
	ID       string
	Type     string
	Position Position
	Content  string
}

type CollaborationPlatform

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

CollaborationPlatform manages team collaboration for LLM red teaming

func NewCollaborationPlatform

func NewCollaborationPlatform(config PlatformConfig) *CollaborationPlatform

NewCollaborationPlatform creates a new collaboration platform

func (*CollaborationPlatform) AddFinding

func (cp *CollaborationPlatform) AddFinding(ctx context.Context, projectID string, finding *Finding) error

AddFinding adds a finding to a project

func (*CollaborationPlatform) CreateProject

func (cp *CollaborationPlatform) CreateProject(ctx context.Context, teamID string, projectDef *Project) (*Project, error)

CreateProject creates a new project

func (*CollaborationPlatform) CreateTeam

func (cp *CollaborationPlatform) CreateTeam(ctx context.Context, name string, admin *TeamMember) (*Team, error)

CreateTeam creates a new team

func (*CollaborationPlatform) JoinSession

func (cp *CollaborationPlatform) JoinSession(ctx context.Context, sessionID string, member *TeamMember) error

JoinSession allows a user to join a collaboration session

func (*CollaborationPlatform) ShareResource

func (cp *CollaborationPlatform) ShareResource(ctx context.Context, projectID string, resource *Resource) error

ShareResource shares a resource within a project

func (*CollaborationPlatform) StartCollaborationSession

func (cp *CollaborationPlatform) StartCollaborationSession(ctx context.Context, projectID string, initiator *TeamMember) (*CollaborationSession, error)

StartCollaborationSession starts a new collaboration session

type CollaborationSession

type CollaborationSession struct {
	ID           string                 `json:"id"`
	ProjectID    string                 `json:"project_id"`
	Participants []*SessionParticipant  `json:"participants"`
	SharedState  map[string]interface{} `json:"shared_state"`
	Activities   []*Activity            `json:"activities"`
	StartedAt    time.Time              `json:"started_at"`
	LastActivity time.Time              `json:"last_activity"`
}

CollaborationSession represents an active collaboration session

type Cursor

type Cursor struct {
	X        int    `json:"x"`
	Y        int    `json:"y"`
	View     string `json:"view"`
	Selected string `json:"selected"`
}

Cursor represents user cursor position in shared workspace

type Evidence

type Evidence struct {
	Type        string                 `json:"type"`
	Data        string                 `json:"data"`
	Screenshot  []byte                 `json:"screenshot,omitempty"`
	Timestamp   time.Time              `json:"timestamp"`
	CollectedBy string                 `json:"collected_by"`
	Metadata    map[string]interface{} `json:"metadata"`
}

Evidence represents evidence for a finding

type FileVersion

type FileVersion struct {
	Version   int
	Content   []byte
	Author    string
	Timestamp time.Time
}

type Finding

type Finding struct {
	ID           string        `json:"id"`
	Title        string        `json:"title"`
	Description  string        `json:"description"`
	Severity     SeverityLevel `json:"severity"`
	Category     string        `json:"category"`
	Evidence     []*Evidence   `json:"evidence"`
	Reproducible bool          `json:"reproducible"`
	DiscoveredBy string        `json:"discovered_by"`
	DiscoveredAt time.Time     `json:"discovered_at"`
	Status       FindingStatus `json:"status"`
}

Finding represents a discovered vulnerability or issue

type FindingStatus

type FindingStatus string

FindingStatus defines finding status

const (
	FindingNew           FindingStatus = "new"
	FindingConfirmed     FindingStatus = "confirmed"
	FindingInProgress    FindingStatus = "in_progress"
	FindingResolved      FindingStatus = "resolved"
	FindingFalsePositive FindingStatus = "false_positive"
)

type GlobalKnowledgeBase

type GlobalKnowledgeBase struct {
	CommonVulnerabilities map[string]*Vulnerability
	BestPractices         map[string]*Practice
	Tools                 map[string]*Tool
}

GlobalKnowledgeBase represents global knowledge

type KnowledgeBase

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

KnowledgeBase manages shared knowledge

func NewKnowledgeBase

func NewKnowledgeBase() *KnowledgeBase

NewKnowledgeBase creates a new knowledge base

func (*KnowledgeBase) CreateTeamKB

func (kb *KnowledgeBase) CreateTeamKB(teamID string)

CreateTeamKB creates a team knowledge base

func (*KnowledgeBase) ShareFinding

func (kb *KnowledgeBase) ShareFinding(teamID string, finding *Finding)

ShareFinding shares a finding with the team knowledge base

type Message

type Message struct {
	ID        string
	Type      string
	Content   string
	From      string
	To        []string
	Data      map[string]string
	Timestamp time.Time
}

Message represents a team message

type MessageChannel

type MessageChannel struct {
	ID       string
	Type     string
	Members  []string
	Messages []*Message
}

MessageChannel represents a message channel

type Milestone

type Milestone struct {
	Name        string    `json:"name"`
	Description string    `json:"description"`
	DueDate     time.Time `json:"due_date"`
	Completed   bool      `json:"completed"`
	CompletedAt time.Time `json:"completed_at"`
}

Milestone represents a project milestone

type Note

type Note struct {
	ID        string
	Title     string
	Content   string
	Author    string
	CreatedAt time.Time
	Tags      []string
}

Note represents a shared note

type PlatformConfig

type PlatformConfig struct {
	MaxTeams           int
	MaxProjectsPerTeam int
	SessionTimeout     time.Duration
	AutoSyncInterval   time.Duration
	EncryptionEnabled  bool
}

PlatformConfig holds configuration for collaboration platform

type Position

type Position struct {
	X int
	Y int
}

type Practice

type Practice struct {
	ID          string
	Title       string
	Description string
	Category    string
}

type Project

type Project struct {
	ID              string               `json:"id"`
	Name            string               `json:"name"`
	Description     string               `json:"description"`
	TeamID          string               `json:"team_id"`
	Target          *TargetSystem        `json:"target"`
	Scope           *ProjectScope        `json:"scope"`
	Timeline        *ProjectTimeline     `json:"timeline"`
	Findings        []*Finding           `json:"findings"`
	SharedResources map[string]*Resource `json:"shared_resources"`
	Status          ProjectStatus        `json:"status"`
	CreatedAt       time.Time            `json:"created_at"`
	UpdatedAt       time.Time            `json:"updated_at"`
}

Project represents a red team project

type ProjectScope

type ProjectScope struct {
	InScope           []string `json:"in_scope"`
	OutOfScope        []string `json:"out_of_scope"`
	Objectives        []string `json:"objectives"`
	Limitations       []string `json:"limitations"`
	RulesOfEngagement string   `json:"rules_of_engagement"`
}

ProjectScope defines the scope of testing

type ProjectSpace

type ProjectSpace struct {
	ProjectID   string
	AttackPlans map[string]*AttackPlan
	TestResults map[string]*TestResult
	SharedNotes map[string]*Note
}

ProjectSpace represents a project's workspace

type ProjectStatus

type ProjectStatus string

ProjectStatus defines project status

const (
	ProjectPlanning  ProjectStatus = "planning"
	ProjectActive    ProjectStatus = "active"
	ProjectPaused    ProjectStatus = "paused"
	ProjectCompleted ProjectStatus = "completed"
	ProjectArchived  ProjectStatus = "archived"
)

type ProjectTimeline

type ProjectTimeline struct {
	StartDate    time.Time    `json:"start_date"`
	EndDate      time.Time    `json:"end_date"`
	Milestones   []*Milestone `json:"milestones"`
	CurrentPhase string       `json:"current_phase"`
}

ProjectTimeline defines project timeline

type Report

type Report struct {
	ID      string
	Title   string
	Content string
	Author  string
	Date    time.Time
}

type Resource

type Resource struct {
	ID          string       `json:"id"`
	Name        string       `json:"name"`
	Type        ResourceType `json:"type"`
	Content     string       `json:"content"`
	Owner       string       `json:"owner"`
	Permissions []string     `json:"permissions"`
	Version     int          `json:"version"`
	UpdatedAt   time.Time    `json:"updated_at"`
}

Resource represents a shared resource

type ResourceType

type ResourceType string

ResourceType defines resource types

const (
	ResourcePayload  ResourceType = "payload"
	ResourceScript   ResourceType = "script"
	ResourceTemplate ResourceType = "template"
	ResourceReport   ResourceType = "report"
	ResourceNote     ResourceType = "note"
	ResourceTool     ResourceType = "tool"
)

type SavedPayload

type SavedPayload struct {
	ID          string
	Name        string
	Description string
	Payload     string
	SuccessRate float64
	Tags        []string
}

SavedPayload represents a saved payload

type SessionParticipant

type SessionParticipant struct {
	UserID   string    `json:"user_id"`
	Username string    `json:"username"`
	Role     string    `json:"role"`
	JoinedAt time.Time `json:"joined_at"`
	Active   bool      `json:"active"`
	Cursor   *Cursor   `json:"cursor,omitempty"`
}

SessionParticipant represents a session participant

type SeverityLevel

type SeverityLevel string

SeverityLevel defines finding severity

const (
	SeverityCritical SeverityLevel = "critical"
	SeverityHigh     SeverityLevel = "high"
	SeverityMedium   SeverityLevel = "medium"
	SeverityLow      SeverityLevel = "low"
	SeverityInfo     SeverityLevel = "info"
)

type SharedBoard

type SharedBoard struct {
	ID       string
	Name     string
	Elements map[string]*BoardElement
}

SharedBoard represents a shared planning board

type SharedFile

type SharedFile struct {
	ID       string
	Name     string
	Content  []byte
	Version  int
	LockedBy string
	History  []*FileVersion
}

SharedFile represents a shared file

type SharedWorkspace

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

SharedWorkspace manages shared workspace functionality

func NewSharedWorkspace

func NewSharedWorkspace() *SharedWorkspace

NewSharedWorkspace creates a new shared workspace

func (*SharedWorkspace) CreateProjectSpace

func (sw *SharedWorkspace) CreateProjectSpace(projectID string)

CreateProjectSpace creates a project workspace

func (*SharedWorkspace) CreateTeamSpace

func (sw *SharedWorkspace) CreateTeamSpace(teamID string)

CreateTeamSpace creates a team workspace

type TargetSystem

type TargetSystem struct {
	Name        string                 `json:"name"`
	Type        string                 `json:"type"`
	Version     string                 `json:"version"`
	Endpoints   []string               `json:"endpoints"`
	Credentials map[string]string      `json:"credentials"`
	Constraints []string               `json:"constraints"`
	Metadata    map[string]interface{} `json:"metadata"`
}

TargetSystem represents the LLM system being tested

type Task

type Task struct {
	ID           string
	Title        string
	Description  string
	AssignedTo   []string
	Status       TaskStatus
	Priority     TaskPriority
	DueDate      time.Time
	Dependencies []string
	Subtasks     []*Task
}

Task represents a collaborative task

type TaskManager

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

TaskManager manages collaborative tasks

func NewTaskManager

func NewTaskManager() *TaskManager

NewTaskManager creates a new task manager

type TaskPriority

type TaskPriority string

TaskPriority defines task priority

const (
	PriorityCritical TaskPriority = "critical"
	PriorityHigh     TaskPriority = "high"
	PriorityMedium   TaskPriority = "medium"
	PriorityLow      TaskPriority = "low"
)

type TaskStatus

type TaskStatus string

TaskStatus defines task status

const (
	TaskTodo       TaskStatus = "todo"
	TaskInProgress TaskStatus = "in_progress"
	TaskReview     TaskStatus = "review"
	TaskDone       TaskStatus = "done"
)

type Team

type Team struct {
	ID          string                 `json:"id"`
	Name        string                 `json:"name"`
	Members     []*TeamMember          `json:"members"`
	Projects    []string               `json:"projects"`
	Permissions map[string][]string    `json:"permissions"`
	CreatedAt   time.Time              `json:"created_at"`
	Metadata    map[string]interface{} `json:"metadata"`
}

Team represents a red team group

type TeamKnowledgeBase

type TeamKnowledgeBase struct {
	TeamID     string
	Techniques map[string]*Technique
	Payloads   map[string]*SavedPayload
	Reports    map[string]*Report
}

TeamKnowledgeBase represents team-specific knowledge

type TeamMember

type TeamMember struct {
	ID            string     `json:"id"`
	Username      string     `json:"username"`
	Email         string     `json:"email"`
	Role          TeamRole   `json:"role"`
	Specialties   []string   `json:"specialties"`
	Status        UserStatus `json:"status"`
	LastActive    time.Time  `json:"last_active"`
	Contributions int        `json:"contributions"`
}

TeamMember represents a team member

type TeamMessenger

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

TeamMessenger handles team communication

func NewTeamMessenger

func NewTeamMessenger() *TeamMessenger

NewTeamMessenger creates a new team messenger

func (*TeamMessenger) BroadcastToTeam

func (tm *TeamMessenger) BroadcastToTeam(teamID string, message *Message) error

BroadcastToTeam broadcasts a message to team

type TeamRole

type TeamRole string

TeamRole defines team member roles

const (
	RoleAdmin      TeamRole = "admin"
	RoleLeader     TeamRole = "leader"
	RoleResearcher TeamRole = "researcher"
	RoleAnalyst    TeamRole = "analyst"
	RoleEngineer   TeamRole = "engineer"
	RoleObserver   TeamRole = "observer"
)

type TeamSpace

type TeamSpace struct {
	TeamID       string
	SharedFiles  map[string]*SharedFile
	SharedBoards map[string]*SharedBoard
}

TeamSpace represents a team's shared workspace

type Technique

type Technique struct {
	ID          string
	Name        string
	Description string
	Category    string
	Steps       []string
	Examples    []string
	References  []string
}

Technique represents an attack technique

type TestResult

type TestResult struct {
	ID        string
	TestName  string
	Success   bool
	Output    string
	Artifacts []string
}

TestResult represents test results

type Tool

type Tool struct {
	ID          string
	Name        string
	Description string
	Usage       string
}

type UserStatus

type UserStatus string

UserStatus defines user status

const (
	StatusOnline  UserStatus = "online"
	StatusAway    UserStatus = "away"
	StatusBusy    UserStatus = "busy"
	StatusOffline UserStatus = "offline"
)

type Vulnerability

type Vulnerability struct {
	ID          string
	Name        string
	Description string
	Severity    string
	Mitigation  string
}

Helper types

Jump to

Keyboard shortcuts

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