events

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package events provides event logging for the gt activity feed.

Events are written to ~/gt/.events.jsonl (raw audit log) and later curated by the feed daemon into ~/.feed.jsonl (user-facing).

Index

Constants

View Source
const (
	VisibilityAudit = "audit" // Only in raw events log
	VisibilityFeed  = "feed"  // Appears in curated feed
	VisibilityBoth  = "both"  // Both audit and feed
)

Visibility levels for events.

View Source
const (
	TypeSling   = "sling"
	TypeHook    = "hook"
	TypeUnhook  = "unhook"
	TypeHandoff = "handoff"
	TypeDone    = "done"
	TypeMail    = "mail"
	TypeSpawn   = "spawn"
	TypeKill    = "kill"
	TypeNudge   = "nudge"
	TypeBoot    = "boot"
	TypeHalt    = "halt"

	// Session events (for seance discovery)
	TypeSessionStart = "session_start"
	TypeSessionEnd   = "session_end"

	// Witness patrol events
	TypePatrolStarted  = "patrol_started"
	TypePolecatChecked = "polecat_checked"
	TypePolecatNudged  = "polecat_nudged"
	TypeEscalationSent = "escalation_sent"
	TypePatrolComplete = "patrol_complete"

	// Merge queue events (emitted by refinery)
	TypeMergeStarted = "merge_started"
	TypeMerged       = "merged"
	TypeMergeFailed  = "merge_failed"
	TypeMergeSkipped = "merge_skipped"
)

Common event types for gt commands.

View Source
const EventsFile = ".events.jsonl"

EventsFile is the name of the raw events log.

Variables

This section is empty.

Functions

func BootPayload

func BootPayload(rig string, agents []string) map[string]interface{}

BootPayload creates a payload for rig boot events.

func DonePayload

func DonePayload(beadID, branch string) map[string]interface{}

DonePayload creates a payload for done events.

func EscalationPayload

func EscalationPayload(rig, target, to, reason string) map[string]interface{}

EscalationPayload creates a payload for escalation events.

func HaltPayload

func HaltPayload(services []string) map[string]interface{}

HaltPayload creates a payload for halt events.

func HandoffPayload

func HandoffPayload(subject string, toSession bool) map[string]interface{}

HandoffPayload creates a payload for handoff events.

func HookPayload

func HookPayload(beadID string) map[string]interface{}

HookPayload creates a payload for hook events.

func KillPayload

func KillPayload(rig, target, reason string) map[string]interface{}

KillPayload creates a payload for kill events.

func Log

func Log(eventType, actor string, payload map[string]interface{}, visibility string) error

Log writes an event to the events log. The event is appended to ~/gt/.events.jsonl. Returns nil if logging fails (events are best-effort).

func LogAudit

func LogAudit(eventType, actor string, payload map[string]interface{}) error

LogAudit is a convenience wrapper for audit-only events.

func LogFeed

func LogFeed(eventType, actor string, payload map[string]interface{}) error

LogFeed is a convenience wrapper for feed-visible events.

func MailPayload

func MailPayload(to, subject string) map[string]interface{}

MailPayload creates a payload for mail events.

func MergePayload

func MergePayload(mrID, worker, branch, reason string) map[string]interface{}

MergePayload creates a payload for merge queue events. mrID: merge request ID worker: polecat name that submitted the work branch: source branch being merged reason: failure reason (for merge_failed/merge_skipped events)

func NudgePayload

func NudgePayload(rig, target, reason string) map[string]interface{}

NudgePayload creates a payload for nudge events.

func PatrolPayload

func PatrolPayload(rig string, polecatCount int, message string) map[string]interface{}

PatrolPayload creates a payload for patrol start/complete events.

func PolecatCheckPayload

func PolecatCheckPayload(rig, polecat, status, issue string) map[string]interface{}

PolecatCheckPayload creates a payload for polecat check events.

func SessionPayload

func SessionPayload(sessionID, role, topic, cwd string) map[string]interface{}

SessionPayload creates a payload for session start/end events. sessionID: Cursor session UUID role: Gas Town role (e.g., "gastown/crew/joe", "deacon") topic: What the session is working on cwd: Working directory

func SlingPayload

func SlingPayload(beadID, target string) map[string]interface{}

SlingPayload creates a payload for sling events.

func SpawnPayload

func SpawnPayload(rig, polecat string) map[string]interface{}

SpawnPayload creates a payload for spawn events.

func UnhookPayload

func UnhookPayload(beadID string) map[string]interface{}

UnhookPayload creates a payload for unhook events.

Types

type Event

type Event struct {
	Timestamp  string                 `json:"ts"`
	Source     string                 `json:"source"`
	Type       string                 `json:"type"`
	Actor      string                 `json:"actor"`
	Payload    map[string]interface{} `json:"payload,omitempty"`
	Visibility string                 `json:"visibility"`
}

Event represents an activity event in Gas Town.

Jump to

Keyboard shortcuts

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