events

package
v0.2.26 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package events provides a simple hook-based event system for task lifecycle events.

Index

Constants

View Source
const (
	TaskCreated       = "task.created"
	TaskUpdated       = "task.updated"
	TaskDeleted       = "task.deleted"
	TaskStarted       = "task.started"
	TaskWorktreeReady = "task.worktree_ready"
	TaskBlocked       = "task.blocked" // Task needs input from user
	TaskCompleted     = "task.completed"
	TaskFailed        = "task.failed"
)

Event types for task lifecycle

Variables

This section is empty.

Functions

This section is empty.

Types

type Emitter

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

Emitter handles event emission via hooks.

func New

func New(hooksDir string) *Emitter

New creates a new event emitter.

func (*Emitter) Emit

func (e *Emitter) Emit(event Event)

Emit triggers a hook script if it exists for the event type.

func (*Emitter) EmitTaskBlocked

func (e *Emitter) EmitTaskBlocked(task *db.Task, reason string)

func (*Emitter) EmitTaskCompleted

func (e *Emitter) EmitTaskCompleted(task *db.Task)

func (*Emitter) EmitTaskCreated

func (e *Emitter) EmitTaskCreated(task *db.Task)

func (*Emitter) EmitTaskDeleted

func (e *Emitter) EmitTaskDeleted(taskID int64, title string)

func (*Emitter) EmitTaskFailed

func (e *Emitter) EmitTaskFailed(task *db.Task, reason string)

func (*Emitter) EmitTaskPinned

func (e *Emitter) EmitTaskPinned(task *db.Task)

func (*Emitter) EmitTaskStarted

func (e *Emitter) EmitTaskStarted(task *db.Task)

func (*Emitter) EmitTaskUnpinned

func (e *Emitter) EmitTaskUnpinned(task *db.Task)

func (*Emitter) EmitTaskUpdated

func (e *Emitter) EmitTaskUpdated(task *db.Task, changes map[string]interface{})

func (*Emitter) EmitTaskWorktreeReady

func (e *Emitter) EmitTaskWorktreeReady(task *db.Task)

type Event

type Event struct {
	Type      string                 `json:"type"`
	TaskID    int64                  `json:"task_id"`
	Task      *db.Task               `json:"task,omitempty"`
	Message   string                 `json:"message,omitempty"`
	Metadata  map[string]interface{} `json:"metadata,omitempty"`
	Timestamp time.Time              `json:"timestamp"`
}

Event represents a task lifecycle event.

Jump to

Keyboard shortcuts

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