eventbus

package
v0.34.0 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Code generated by gobusgen; DO NOT EDIT.

Package eventbus provides a typed publish/subscribe event bus for cross-component communication within hive.

Index

Constants

This section is empty.

Variables

View Source
var Events = map[string]any{

	"agent.status-changed": AgentStatusChangedPayload{},
	"config.reloaded":      ConfigReloadedPayload{},
	"message.received":     MessageReceivedPayload{},
	"session.corrupted":    SessionCorruptedPayload{},
	"session.created":      SessionCreatedPayload{},
	"session.deleted":      SessionDeletedPayload{},
	"session.recycled":     SessionRecycledPayload{},
	"session.renamed":      SessionRenamedPayload{},
	"todo.created":         TodoCreatedPayload{},
	"tui.started":          TUIStartedPayload{},
	"tui.stopped":          TUIStoppedPayload{},
}

Events defines all event types and their payload structs for code generation.

Functions

func RegisterDebugLogger

func RegisterDebugLogger(bus *EventBus, logger zerolog.Logger)

RegisterDebugLogger registers bus hooks that log all event activity at debug level. Uses OnPublish for event firing, OnDrop for buffer-full warnings, and OnPanic for subscriber panic reporting.

Types

type AgentStatusChangedPayload

type AgentStatusChangedPayload struct {
	Session   *session.Session
	OldStatus terminal.Status
	NewStatus terminal.Status
}

AgentStatusChangedPayload is emitted when an agent's terminal status changes.

type ConfigReloadedPayload

type ConfigReloadedPayload struct {
	Config *config.Config
}

ConfigReloadedPayload is emitted when configuration is reloaded.

type Event

type Event string

Event represents a typed event name.

const (
	EventAgentStatusChanged Event = "agent.status-changed"
	EventConfigReloaded     Event = "config.reloaded"
	EventMessageReceived    Event = "message.received"
	EventSessionCorrupted   Event = "session.corrupted"
	EventSessionCreated     Event = "session.created"
	EventSessionDeleted     Event = "session.deleted"
	EventSessionRecycled    Event = "session.recycled"
	EventSessionRenamed     Event = "session.renamed"
	EventTodoCreated        Event = "todo.created"
	EventTuiStarted         Event = "tui.started"
	EventTuiStopped         Event = "tui.stopped"
)

type EventBus

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

EventBus provides type-safe publish/subscribe for in-process events.

func New

func New(size int) *EventBus

New creates an EventBus with the given channel buffer size.

func (*EventBus) OnDrop

func (bus *EventBus) OnDrop(fn func(Event, any))

OnDrop registers a hook that fires when an event is dropped due to a full buffer.

func (*EventBus) OnPanic

func (bus *EventBus) OnPanic(fn func(Event, any, any))

OnPanic registers a hook that fires when a subscriber panics.

func (*EventBus) OnPublish

func (bus *EventBus) OnPublish(fn func(Event, any))

OnPublish registers a hook that fires after an event is successfully enqueued.

func (*EventBus) OnSubscribe

func (bus *EventBus) OnSubscribe(fn func(Event))

OnSubscribe registers a hook that fires after a subscriber is registered.

func (*EventBus) PublishAgentStatusChanged

func (bus *EventBus) PublishAgentStatusChanged(payload AgentStatusChangedPayload)

PublishAgentStatusChanged publishes a agent.status-changed event.

func (*EventBus) PublishConfigReloaded

func (bus *EventBus) PublishConfigReloaded(payload ConfigReloadedPayload)

PublishConfigReloaded publishes a config.reloaded event.

func (*EventBus) PublishMessageReceived

func (bus *EventBus) PublishMessageReceived(payload MessageReceivedPayload)

PublishMessageReceived publishes a message.received event.

func (*EventBus) PublishSessionCorrupted

func (bus *EventBus) PublishSessionCorrupted(payload SessionCorruptedPayload)

PublishSessionCorrupted publishes a session.corrupted event.

func (*EventBus) PublishSessionCreated

func (bus *EventBus) PublishSessionCreated(payload SessionCreatedPayload)

PublishSessionCreated publishes a session.created event.

func (*EventBus) PublishSessionDeleted

func (bus *EventBus) PublishSessionDeleted(payload SessionDeletedPayload)

PublishSessionDeleted publishes a session.deleted event.

func (*EventBus) PublishSessionRecycled

func (bus *EventBus) PublishSessionRecycled(payload SessionRecycledPayload)

PublishSessionRecycled publishes a session.recycled event.

func (*EventBus) PublishSessionRenamed

func (bus *EventBus) PublishSessionRenamed(payload SessionRenamedPayload)

PublishSessionRenamed publishes a session.renamed event.

func (*EventBus) PublishTodoCreated added in v0.34.0

func (bus *EventBus) PublishTodoCreated(payload TodoCreatedPayload)

PublishTodoCreated publishes a todo.created event.

func (*EventBus) PublishTuiStarted

func (bus *EventBus) PublishTuiStarted(payload TUIStartedPayload)

PublishTuiStarted publishes a tui.started event.

func (*EventBus) PublishTuiStopped

func (bus *EventBus) PublishTuiStopped(payload TUIStoppedPayload)

PublishTuiStopped publishes a tui.stopped event.

func (*EventBus) Start

func (bus *EventBus) Start(ctx context.Context)

Start begins processing events. It blocks until ctx is cancelled.

func (*EventBus) SubscribeAgentStatusChanged

func (bus *EventBus) SubscribeAgentStatusChanged(fn func(AgentStatusChangedPayload))

SubscribeAgentStatusChanged registers a handler for agent.status-changed events.

func (*EventBus) SubscribeConfigReloaded

func (bus *EventBus) SubscribeConfigReloaded(fn func(ConfigReloadedPayload))

SubscribeConfigReloaded registers a handler for config.reloaded events.

func (*EventBus) SubscribeMessageReceived

func (bus *EventBus) SubscribeMessageReceived(fn func(MessageReceivedPayload))

SubscribeMessageReceived registers a handler for message.received events.

func (*EventBus) SubscribeSessionCorrupted

func (bus *EventBus) SubscribeSessionCorrupted(fn func(SessionCorruptedPayload))

SubscribeSessionCorrupted registers a handler for session.corrupted events.

func (*EventBus) SubscribeSessionCreated

func (bus *EventBus) SubscribeSessionCreated(fn func(SessionCreatedPayload))

SubscribeSessionCreated registers a handler for session.created events.

func (*EventBus) SubscribeSessionDeleted

func (bus *EventBus) SubscribeSessionDeleted(fn func(SessionDeletedPayload))

SubscribeSessionDeleted registers a handler for session.deleted events.

func (*EventBus) SubscribeSessionRecycled

func (bus *EventBus) SubscribeSessionRecycled(fn func(SessionRecycledPayload))

SubscribeSessionRecycled registers a handler for session.recycled events.

func (*EventBus) SubscribeSessionRenamed

func (bus *EventBus) SubscribeSessionRenamed(fn func(SessionRenamedPayload))

SubscribeSessionRenamed registers a handler for session.renamed events.

func (*EventBus) SubscribeTodoCreated added in v0.34.0

func (bus *EventBus) SubscribeTodoCreated(fn func(TodoCreatedPayload))

SubscribeTodoCreated registers a handler for todo.created events.

func (*EventBus) SubscribeTuiStarted

func (bus *EventBus) SubscribeTuiStarted(fn func(TUIStartedPayload))

SubscribeTuiStarted registers a handler for tui.started events.

func (*EventBus) SubscribeTuiStopped

func (bus *EventBus) SubscribeTuiStopped(fn func(TUIStoppedPayload))

SubscribeTuiStopped registers a handler for tui.stopped events.

type MessageReceivedPayload

type MessageReceivedPayload struct {
	Topic   string
	Message *messaging.Message
}

MessageReceivedPayload is emitted when a message is received on a topic.

type SessionCorruptedPayload

type SessionCorruptedPayload struct {
	Session *session.Session
}

SessionCorruptedPayload is emitted when a session is marked corrupted.

type SessionCreatedPayload

type SessionCreatedPayload struct {
	Session *session.Session
}

SessionCreatedPayload is emitted when a new session is created.

type SessionDeletedPayload

type SessionDeletedPayload struct {
	SessionID string
}

SessionDeletedPayload is emitted when a session is deleted.

type SessionRecycledPayload

type SessionRecycledPayload struct {
	Session *session.Session
}

SessionRecycledPayload is emitted when a session is recycled.

type SessionRenamedPayload

type SessionRenamedPayload struct {
	Session *session.Session
	OldName string
}

SessionRenamedPayload is emitted when a session is renamed.

type TUIStartedPayload

type TUIStartedPayload struct{}

TUIStartedPayload is emitted when the TUI starts.

type TUIStoppedPayload

type TUIStoppedPayload struct{}

TUIStoppedPayload is emitted when the TUI stops.

type TodoCreatedPayload added in v0.34.0

type TodoCreatedPayload struct {
	Todo todo.Todo
}

TodoCreatedPayload is emitted when a new todo item is created.

Directories

Path Synopsis
Package testbus provides test utilities for the event bus.
Package testbus provides test utilities for the event bus.

Jump to

Keyboard shortcuts

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