Documentation
¶
Index ¶
- Variables
- type Registry
- func (r *Registry) AppendOutput(taskID string, output string) error
- func (r *Registry) AssignTeam(taskID string, teamID string) error
- func (r *Registry) Create(prompt string, description *string) Task
- func (r *Registry) CreateFromPacket(packet TaskPacket) (Task, error)
- func (r *Registry) Get(taskID string) (Task, bool)
- func (r *Registry) IsEmpty() bool
- func (r *Registry) Len() int
- func (r *Registry) List(statusFilter *TaskStatus) []Task
- func (r *Registry) Output(taskID string) (string, error)
- func (r *Registry) Remove(taskID string) *Task
- func (r *Registry) SetStatus(taskID string, status TaskStatus) error
- func (r *Registry) Stop(taskID string) (Task, error)
- func (r *Registry) Update(taskID string, message string) (Task, error)
- type Task
- type TaskMessage
- type TaskPacket
- type TaskPacketValidationError
- type TaskStatus
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("task not found")
ErrNotFound is returned when a task is not found.
var ErrTerminalState = errors.New("task is in terminal state")
ErrTerminalState is returned when a task is in a terminal state and cannot be modified.
Functions ¶
This section is empty.
Types ¶
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry is a thread-safe in-memory task registry.
func (*Registry) AppendOutput ¶
AppendOutput appends text to the task's output.
func (*Registry) AssignTeam ¶
AssignTeam associates a task with a team.
func (*Registry) CreateFromPacket ¶
func (r *Registry) CreateFromPacket(packet TaskPacket) (Task, error)
CreateFromPacket creates a new task from a validated TaskPacket.
func (*Registry) List ¶
func (r *Registry) List(statusFilter *TaskStatus) []Task
List returns all tasks, optionally filtered by status.
func (*Registry) SetStatus ¶
func (r *Registry) SetStatus(taskID string, status TaskStatus) error
SetStatus updates the task's status unconditionally. Matching Rust: set_status() does not guard against terminal states, allowing recovery-driven status changes on completed/failed tasks.
type Task ¶
type Task struct {
TaskID string `json:"task_id"`
Prompt string `json:"prompt"`
Description *string `json:"description,omitempty"`
TaskPacket *TaskPacket `json:"task_packet,omitempty"`
Status TaskStatus `json:"status"`
CreatedAt uint64 `json:"created_at"`
UpdatedAt uint64 `json:"updated_at"`
Messages []TaskMessage `json:"messages"`
Output string `json:"output"`
TeamID *string `json:"team_id,omitempty"`
}
Task represents a sub-agent task.
type TaskMessage ¶
type TaskMessage struct {
Role string `json:"role"`
Content string `json:"content"`
Timestamp uint64 `json:"timestamp"`
}
TaskMessage is a message associated with a task.
type TaskPacket ¶
type TaskPacket struct {
Objective string `json:"objective"`
Scope string `json:"scope"`
Repo string `json:"repo"`
BranchPolicy string `json:"branch_policy"`
AcceptanceTests []string `json:"acceptance_tests"`
CommitPolicy string `json:"commit_policy"`
ReportingContract string `json:"reporting_contract"`
EscalationPolicy string `json:"escalation_policy"`
}
TaskPacket is a structured task specification.
func ValidatePacket ¶
func ValidatePacket(p TaskPacket) (*TaskPacket, error)
ValidatePacket validates a TaskPacket and returns an error if any fields are empty.
type TaskPacketValidationError ¶
type TaskPacketValidationError struct {
Errors []string
}
TaskPacketValidationError accumulates validation errors.
func (*TaskPacketValidationError) Error ¶
func (e *TaskPacketValidationError) Error() string
type TaskStatus ¶
type TaskStatus int
TaskStatus represents the lifecycle state of a task.
const ( StatusCreated TaskStatus = iota StatusRunning StatusCompleted StatusFailed StatusStopped )
func (TaskStatus) IsTerminal ¶
func (s TaskStatus) IsTerminal() bool
IsTerminal returns true if the status is a terminal state.
func (TaskStatus) MarshalJSON ¶
func (s TaskStatus) MarshalJSON() ([]byte, error)
func (TaskStatus) String ¶
func (s TaskStatus) String() string
func (*TaskStatus) UnmarshalJSON ¶
func (s *TaskStatus) UnmarshalJSON(data []byte) error