Versions in this module Expand all Collapse all v0 v0.0.50 Sep 1, 2026 Changes in this version + const GoalCommandHelp + const InboundAllowedAgentsMetadataKey + const InboundMediaMetadataKey + const InboundOriginMetadataKey + const InboundPrincipalMetadataKey + const InboundStartNewThreadDisabledMetadataKey + const MaxInboundTextAttachmentBytes + var ErrGoalAlreadyActive = errors.New("goal already active") + func AttachmentNamesSpeech(attachments []OutboundAttachment) string + func IsTextAttachment(name, mimeType string) bool + func OnDemandCronTarget(text string, prefixes ...string) (string, bool) + func SetInboundAllowedAgents(inbound *InboundMessage, agents []string) + func SlackThreadConversationID(channelID, threadTS string) string + func SlackThreadTarget(conversationID string) (channelID, threadTS string, ok bool) + func StartNewThreadRootText(title, prompt string) string + func StaticGoalCheckWord(word *syntax.Word) (string, error) + type ActivationHook func(context.Context, *InboundMessage) error + type AgentUpdate struct + Activity string + CallID string + Label string + PhaseID string + type AskUserQuestionAnswer struct + Custom string + Selected []string + Source Source + type AskUserQuestionOption struct + Description string + Label string + Value string + type AskUserQuestionRequest struct + Bridge BridgeID + ConversationID string + Details string + ID string + Multiple bool + Options []AskUserQuestionOption + Question string + SlackReply *SlackReplyTarget + Source Source + type BridgeID string + const BridgeExternalMCP + const BridgeSlack + type Broadcast struct + Acknowledgement chan BroadcastAcknowledgement + Delivery *OutboundMessage + Message *OutboundMessage + Relay *ExternalMCPRelay + RelayChannel string + RelayCleanup *InboundMessage + RelayReply *InboundMessage + RelayResponse chan BroadcastReply + Sender BridgeID + func (b *Broadcast) Clone() Broadcast + type BroadcastAcknowledgement struct + Err error + Status BroadcastStatus + type BroadcastPublisher chan<- Broadcast + func (p BroadcastPublisher) PublishOutbound(ctx context.Context, message *OutboundMessage) error + type BroadcastReply struct + Err error + Message *InboundMessage + type BroadcastStatus string + const BroadcastDropped + const BroadcastFailed + const BroadcastHandled + type Channels struct + Broadcasts chan Broadcast + func NewChannels() Channels + type CronProgress struct + Message func(context.Context, string) error + Thinking func(context.Context, string) error + type CronRunResult struct + Attachments []OutboundAttachment + Text string + VerbatimMessage string + type CronjobMessage struct + Agent string + RanAt string + RelativePath string + type ExternalMCPRelay struct + Agent string + Attachments []OutboundAttachment + ConversationID string + ExternalConversationID string + Text string + type GoalRequest struct + CheckScript string + MaxTurns int + Objective string + func ParseGoalRequest(text string) (goal GoalRequest, rejection string) + type InboundAttachment struct + Data []byte + MIMEType string + Name string + type InboundContent struct + AttachmentWarnings []string + Attachments []InboundAttachment + HadAttachments bool + HadNonImageAttachments bool + Text string + TextAttachments []string + type InboundKind string + const InboundKindInternalize + const InboundKindPrompt + type InboundMessage struct + AttachmentWarnings []string + Attachments []InboundAttachment + Bridge BridgeID + ConversationID string + GoalTurn bool + HadAttachments bool + HadNonImageAttachments bool + Human bool + Kind InboundKind + Label string + Metadata map[string]string + Response chan Response + SlackReply *SlackReplyTarget + Source Source + Text string + VerbatimAttachments []OutboundAttachment + VerbatimMessage string + Workflow *WorkflowInvocation + func NewInboundMessage(source Source, kind InboundKind, label, text string, human bool) *InboundMessage + func NewInboundMessageFromContent(source Source, kind InboundKind, label string, content *InboundContent, ...) *InboundMessage + func (m *InboundMessage) CompleteResponse(text string, err error) + func (m *InboundMessage) CompleteResponseWithAttachments(text string, attachments []OutboundAttachment, err error) + func (m *InboundMessage) EnableResponseWait() <-chan InboundResponse + type InboundResponse struct + Attachments []OutboundAttachment + Err error + Text string + type LaterWorkKind string + const LaterWorkQueued + const LaterWorkScheduled + type LaterWorkRow struct + Kind LaterWorkKind + Queue ThreadQueueItem + Scheduled ScheduledMessageState + ScheduledID string + func MixedLaterWork(queue []ThreadQueueItem, scheduled map[string]ScheduledMessageState) []LaterWorkRow + type LintFinding struct + Code string + Message string + Path string + Severity string + type LintRequest struct + Context OverlayContext + type LintResult struct + Findings []LintFinding + type OneOffCronjob struct + Agent string + Prompt string + RelativePath string + TextChannel string + type OutboundAttachment struct + Data []byte + MIMEType string + Name string + func CloneOutboundAttachments(attachments []OutboundAttachment) []OutboundAttachment + type OutboundMessage struct + Agent string + Attachments []OutboundAttachment + Bridge BridgeID + Complete bool + ConversationID string + Cronjob *CronjobMessage + ExternalConversationID string + GoalActive bool + GoalComplete bool + GoalMaxTurns int + GoalTurn bool + GoalTurnNumber int + PostProgressText bool + ProgressText string + Response chan Response + Sequence int + SessionEntryID int64 + SlackReply *SlackReplyTarget + Source Source + Targets []OutputTarget + Text string + TurnID string + WorkflowAgent *AgentUpdate + WorkflowPhase *PhaseUpdate + WorkflowTerminal Terminal + func CloneOutboundMessage(message *OutboundMessage) *OutboundMessage + func NewOutboundMessage(source Source, conversationID, text string, targets ...OutputTarget) *OutboundMessage + func (m *OutboundMessage) MarkDelivered(err error) + func (m *OutboundMessage) WaitDelivered(ctx context.Context) error + type OutboundPublisher interface + PublishOutbound func(context.Context, *OutboundMessage) error + type OutputTarget string + const OutputTargetSlack + type OverlayContext struct + BaseOverlay string + Files []OverlayFile + type OverlayFile struct + Content string + Path string + type OverlaySpec struct + Spec string + type PendingSteer struct + Principal string + SlackChannel string + SlackTS string + SlackThreadTS string + Text string + type PendingSteersSink struct + Set func(conversationID string, steers []PendingSteer) error + func (s PendingSteersSink) Persist(conversationID string, steers []PendingSteer) + type PhaseStatus string + const PhaseComplete + const PhaseError + const PhaseInProgress + const PhasePending + const PhaseSkipped + type PhaseUpdate struct + Complete int + Details string + Name string + PhaseID string + Running int + Scheduled int + Status PhaseStatus + type PrimaryTextRouter interface + DeleteThreadQueueItem func(ctx context.Context, target TextConversationTarget, id string) error + InterruptConversation func(conversationID string) *InboundMessage + InterruptThread func(target TextConversationTarget) (*InboundMessage, error) + PickQueuedWork func(ctx context.Context, target TextConversationTarget) error + RegisterCronThread func(ctx context.Context, target TextConversationTarget, agent string) error + RegisterThread func(target TextConversationTarget, agent string) (created bool, err error) + ReserveWorkflowTurn func(target TextConversationTarget) (release func(), reserved bool, err error) + ScheduledMessages func(ctx context.Context, target TextConversationTarget) (map[string]ScheduledMessageState, error) + StartGoalInThread func(ctx context.Context, agent, objective, checkScript string, maxTurns int, ...) error + StartThread func(ctx context.Context, agent string, target TextConversationTarget, ...) error + StartWorkflowInThread func(ctx context.Context, agent, name, args string, target TextConversationTarget, ...) error + StashThreadQueueItem func(ctx context.Context, target TextConversationTarget, item *ThreadQueueItem) error + SubmitThreadReply func(ctx context.Context, target TextConversationTarget, inbound *InboundMessage) (bool, error) + SubmitWhenActive func(ctx context.Context, target TextConversationTarget, inbound *InboundMessage, ...) (bool, error) + SwitchThreadAgent func(target TextConversationTarget, agent string) (bool, error) + ThreadAgent func(target TextConversationTarget) (agent string, handled bool, err error) + ThreadBusy func(target TextConversationTarget) bool + ThreadQueueItems func(ctx context.Context, target TextConversationTarget) ([]ThreadQueueItem, error) + WorkflowDescriptions func() ([]WorkflowDescription, error) + type ReloadRequest struct + Reason string + type Response struct + Err error + Payload ResponsePayload + type ResponseKind string + const ResponseInteraction + const ResponseProgress + const ResponseResult + type ResponsePayload interface + ResponseKind func() ResponseKind + type RestartRequest struct + Reason string + type ScheduledMessageState struct + Agent string + ConversationID string + DueAt time.Time + Interval time.Duration + Message string + Recurring bool + type SideAskRequest struct + Agent string + ConversationID string + Message func(context.Context, string) error + Question string + SessionEntryID int64 + Thinking func(context.Context, string) error + type SlackReplyTarget struct + ChannelID string + MessageTS string + RecipientTeamID string + RecipientUserID string + ThreadTS string + type Source string + const SourceExternalMCP + const SourceSlack + const SourceSystem + type StartNewThreadRequest struct + Agent string + AllowedAgents []string + Bridge BridgeID + CurrentAgent string + Prompt string + Response chan Response + SlackReply *SlackReplyTarget + Source Source + SourceConversationID string + Title string + type StartNewThreadResponse struct + Err chan error + Request *StartNewThreadRequest + Root chan StartNewThreadRootResult + func (StartNewThreadResponse) ResponseKind() ResponseKind + type StartNewThreadResult struct + ConversationID string + URL string + type StartNewThreadRootResult struct + Target TextConversationTarget + URL string + type Terminal string + const TerminalComplete + const TerminalFailed + const TerminalStopped + type TextConversationTarget struct + ChannelID string + MessageID string + ThreadID string + type TextResponse struct + Kind ResponseKind + Message *OutboundMessage + func (r *TextResponse) ResponseKind() ResponseKind + type ThreadQueueItem struct + ConversationID string + ID string + Message string + ParkAfter string + Position int + Principal string + SlackChannel string + SlackTS string + StashAt time.Time + type TryTurnRequest struct + Agent string + Context OverlayContext + ConversationID string + Prompt string + type TryTurnResult struct + Answer string + ConversationID string + Thinking string + type UserQuestionAsker struct + func InteractiveUserQuestionAsker(...) UserQuestionAsker + func NoUserQuestionAsker() UserQuestionAsker + func (a UserQuestionAsker) AskUserQuestion(ctx context.Context, req *AskUserQuestionRequest) (AskUserQuestionAnswer, error) + func (a UserQuestionAsker) ExposeTool() bool + type WorkflowDescription struct + Description string + Name string + type WorkflowInvocation struct + Args string + Name string + RunID string