Documentation
¶
Index ¶
- Constants
- type AdviceCreated
- type AdviceDeleted
- type AdviceUpdated
- type BeadClosed
- type BeadCreated
- type BeadDeleted
- type BeadUpdated
- type CommentAdded
- type DependencyAdded
- type DependencyRemoved
- type JackExpired
- type JackExtended
- type JackOff
- type JackOn
- type LabelAdded
- type LabelRemoved
- type NATSPublisher
- type NATSSubscriber
- type NoopPublisher
- type Publisher
- type Subscriber
Constants ¶
const ( TopicBeadCreated = "beads.bead.created" TopicBeadUpdated = "beads.bead.updated" TopicBeadClosed = "beads.bead.closed" TopicBeadDeleted = "beads.bead.deleted" TopicDependencyAdded = "beads.dependency.added" TopicDependencyRemoved = "beads.dependency.removed" TopicLabelAdded = "beads.label.added" TopicLabelRemoved = "beads.label.removed" TopicCommentAdded = "beads.comment.added" // Advice events TopicAdviceCreated = "beads.advice.created" TopicAdviceUpdated = "beads.advice.updated" TopicAdviceDeleted = "beads.advice.deleted" // Session lifecycle events (emitted by agents, consumed by hooks handler). TopicSessionEnd = "beads.session.end" TopicSessionPreCommit = "beads.session.pre_commit" TopicSessionPrePush = "beads.session.pre_push" TopicSessionHandoff = "beads.session.handoff" // Jack events TopicJackOn = "beads.jack.on" TopicJackOff = "beads.jack.off" TopicJackExtended = "beads.jack.extended" TopicJackExpired = "beads.jack.expired" )
Event topic constants
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdviceCreated ¶
type AdviceDeleted ¶
type AdviceDeleted struct {
BeadID string `json:"bead_id"`
}
type AdviceUpdated ¶
type BeadClosed ¶
type BeadCreated ¶
type BeadDeleted ¶
type BeadDeleted struct {
BeadID string `json:"bead_id"`
}
type BeadUpdated ¶
type CommentAdded ¶
type DependencyAdded ¶
type DependencyAdded struct {
Dependency *model.Dependency `json:"dependency"`
}
type DependencyRemoved ¶
type JackExpired ¶
type JackExtended ¶
type LabelAdded ¶
type LabelRemoved ¶
type NATSPublisher ¶
type NATSPublisher struct {
// contains filtered or unexported fields
}
NATSPublisher publishes events to NATS subjects. Connect to BEADS_NATS_URL, publish JSON-encoded events to the given topic.
func NewNATSPublisher ¶
func NewNATSPublisher(url string) (*NATSPublisher, error)
func (*NATSPublisher) Close ¶
func (p *NATSPublisher) Close() error
type NATSSubscriber ¶
type NATSSubscriber struct {
// contains filtered or unexported fields
}
NATSSubscriber subscribes to events from NATS subjects.
func NewNATSSubscriber ¶
func NewNATSSubscriber(url string, opts ...nats.Option) (*NATSSubscriber, error)
NewNATSSubscriber connects to NATS with automatic reconnection support. Extra nats.Option values (e.g. disconnect/reconnect handlers) can be appended.
func (*NATSSubscriber) Close ¶
func (s *NATSSubscriber) Close() error
func (*NATSSubscriber) Subscribe ¶
func (s *NATSSubscriber) Subscribe(topic string) (<-chan []byte, func(), error)
Subscribe returns a channel that receives raw event payloads for the given topic (supports NATS wildcards like "beads.>"). Call the returned cancel function to unsubscribe and close the channel.
type NoopPublisher ¶
type NoopPublisher struct{}
NoopPublisher is a Publisher that does nothing (used when NATS is not configured).
func (*NoopPublisher) Close ¶
func (n *NoopPublisher) Close() error
type Publisher ¶
type Publisher interface {
Publish(ctx context.Context, topic string, event any) error
Close() error
}
Publisher is the interface for emitting events.
type Subscriber ¶
type Subscriber interface {
// Subscribe delivers raw event payloads on the returned channel.
// Call the returned cancel function to unsubscribe and close the channel.
Subscribe(topic string) (<-chan []byte, func(), error)
Close() error
}
Subscriber receives events from the event bus.