Documentation
¶
Index ¶
- Variables
- type InboundMessage
- type MediaPart
- type MessageBus
- func (mb *MessageBus) Close()
- func (mb *MessageBus) ConsumeInbound(ctx context.Context) (InboundMessage, bool)
- func (mb *MessageBus) PublishInbound(ctx context.Context, msg InboundMessage) error
- func (mb *MessageBus) PublishOutbound(ctx context.Context, msg OutboundMessage) error
- func (mb *MessageBus) PublishOutboundMedia(ctx context.Context, msg OutboundMediaMessage) error
- func (mb *MessageBus) SubscribeOutbound(ctx context.Context) (OutboundMessage, bool)
- func (mb *MessageBus) SubscribeOutboundMedia(ctx context.Context) (OutboundMediaMessage, bool)
- type OutboundMediaMessage
- type OutboundMessage
- type Peer
- type SenderInfo
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrBusClosed = errors.New("message bus closed")
ErrBusClosed is returned when publishing to a closed MessageBus.
Functions ¶
This section is empty.
Types ¶
type InboundMessage ¶
type InboundMessage struct {
Channel string `json:"channel"`
SenderID string `json:"sender_id"`
Sender SenderInfo `json:"sender"`
ChatID string `json:"chat_id"`
Content string `json:"content"`
Media []string `json:"media,omitempty"`
Peer Peer `json:"peer"` // routing peer
MessageID string `json:"message_id,omitempty"` // platform message ID
MediaScope string `json:"media_scope,omitempty"` // media lifecycle scope
SessionKey string `json:"session_key"`
Metadata map[string]string `json:"metadata,omitempty"`
}
type MediaPart ¶ added in v0.2.0
type MediaPart struct {
Type string `json:"type"` // "image" | "audio" | "video" | "file"
Ref string `json:"ref"` // media store ref, e.g. "media://abc123"
Caption string `json:"caption,omitempty"` // optional caption text
Filename string `json:"filename,omitempty"` // original filename hint
ContentType string `json:"content_type,omitempty"` // MIME type hint
}
MediaPart describes a single media attachment to send.
type MessageBus ¶
type MessageBus struct {
// contains filtered or unexported fields
}
func NewMessageBus ¶
func NewMessageBus() *MessageBus
func (*MessageBus) Close ¶
func (mb *MessageBus) Close()
func (*MessageBus) ConsumeInbound ¶
func (mb *MessageBus) ConsumeInbound(ctx context.Context) (InboundMessage, bool)
func (*MessageBus) PublishInbound ¶
func (mb *MessageBus) PublishInbound(ctx context.Context, msg InboundMessage) error
func (*MessageBus) PublishOutbound ¶
func (mb *MessageBus) PublishOutbound(ctx context.Context, msg OutboundMessage) error
func (*MessageBus) PublishOutboundMedia ¶ added in v0.2.0
func (mb *MessageBus) PublishOutboundMedia(ctx context.Context, msg OutboundMediaMessage) error
func (*MessageBus) SubscribeOutbound ¶
func (mb *MessageBus) SubscribeOutbound(ctx context.Context) (OutboundMessage, bool)
func (*MessageBus) SubscribeOutboundMedia ¶ added in v0.2.0
func (mb *MessageBus) SubscribeOutboundMedia(ctx context.Context) (OutboundMediaMessage, bool)
type OutboundMediaMessage ¶ added in v0.2.0
type OutboundMediaMessage struct {
Channel string `json:"channel"`
ChatID string `json:"chat_id"`
Parts []MediaPart `json:"parts"`
}
OutboundMediaMessage carries media attachments from Agent to channels via the bus.
type OutboundMessage ¶
type Peer ¶ added in v0.2.0
type Peer struct {
Kind string `json:"kind"` // "direct" | "group" | "channel" | ""
ID string `json:"id"`
}
Peer identifies the routing peer for a message (direct, group, channel, etc.)
type SenderInfo ¶ added in v0.2.0
type SenderInfo struct {
Platform string `json:"platform,omitempty"` // "telegram", "discord", "slack", ...
PlatformID string `json:"platform_id,omitempty"` // raw platform ID, e.g. "123456"
CanonicalID string `json:"canonical_id,omitempty"` // "platform:id" format
Username string `json:"username,omitempty"` // username (e.g. @alice)
DisplayName string `json:"display_name,omitempty"` // display name
}
SenderInfo provides structured sender identity information.
Click to show internal directories.
Click to hide internal directories.