Documentation
¶
Index ¶
- Constants
- type EnhancedMessageTrigger
- func (mt *EnhancedMessageTrigger) AddCustomNudgeType(nudgeType NudgeType)
- func (mt *EnhancedMessageTrigger) BatchNudge(nudges []*Nudge)
- func (mt *EnhancedMessageTrigger) GetContext() string
- func (mt *EnhancedMessageTrigger) GetContextHistory(limit int) []string
- func (mt *EnhancedMessageTrigger) GetDynamicThreshold() int
- func (mt *EnhancedMessageTrigger) GetMetrics() *NudgeMetrics
- func (mt *EnhancedMessageTrigger) GetMinNudgeInterval() time.Duration
- func (mt *EnhancedMessageTrigger) GetPreferences() *UserNudgePreference
- func (mt *EnhancedMessageTrigger) GetRecentNudges(limit int) []*Nudge
- func (mt *EnhancedMessageTrigger) GetTurnCount() int
- func (mt *EnhancedMessageTrigger) OnErrorOccurred(errorType string, canRecover bool)
- func (mt *EnhancedMessageTrigger) OnNudgeResponse(nudgeID string, accepted bool)
- func (mt *EnhancedMessageTrigger) OnOpportunityDetected(opportunity string)
- func (mt *EnhancedMessageTrigger) OnPatternDetected(pattern string, frequency int)
- func (mt *EnhancedMessageTrigger) OnTaskComplete() time.Duration
- func (mt *EnhancedMessageTrigger) OnToolCall(toolName string, args map[string]interface{})
- func (mt *EnhancedMessageTrigger) OnUserMessage(input string)
- func (mt *EnhancedMessageTrigger) PredictiveNudge(predictor func() (string, bool))
- func (mt *EnhancedMessageTrigger) RegisterNudgeHandler(handler NudgeHandler)
- func (mt *EnhancedMessageTrigger) RegisterNudgeHandlerFunc(name string, handler func(*Nudge) bool)
- func (mt *EnhancedMessageTrigger) Reset()
- func (mt *EnhancedMessageTrigger) ScheduleNudge(nudge *Nudge, deliverAt time.Time)
- func (mt *EnhancedMessageTrigger) SetMinNudgeInterval(interval time.Duration)
- func (mt *EnhancedMessageTrigger) SetNudgeThreshold(threshold int)
- func (mt *EnhancedMessageTrigger) SetNudgeTypeEnabled(nudgeType NudgeType, enabled bool)
- func (mt *EnhancedMessageTrigger) SetPreferences(pref *UserNudgePreference)
- func (mt *EnhancedMessageTrigger) SetQuietHours(start, end time.Time)
- type MessageTrigger
- func (mt *MessageTrigger) GetCurrentTask() string
- func (mt *MessageTrigger) GetTurnCount() int
- func (mt *MessageTrigger) OnTaskComplete() time.Duration
- func (mt *MessageTrigger) OnToolCall(toolName string, args map[string]interface{})
- func (mt *MessageTrigger) OnUserMessage(input string)
- func (mt *MessageTrigger) RegisterNudgeHandler(handler func())
- func (mt *MessageTrigger) Reset()
- func (mt *MessageTrigger) SetNudgeThreshold(threshold int)
- type Nudge
- type NudgeAction
- type NudgeHandler
- type NudgeMetrics
- type NudgePriority
- type NudgeType
- type ScheduledNudge
- type SimpleNudgeHandler
- type UserNudgePreference
Constants ¶
const DefaultNudgeThreshold = 15
DefaultNudgeThreshold is the number of turns between nudges Hermes Agent uses 15 turns as the default
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EnhancedMessageTrigger ¶
type EnhancedMessageTrigger struct {
// contains filtered or unexported fields
}
EnhancedMessageTrigger provides intelligent nudge mechanism
func NewEnhancedMessageTrigger ¶
func NewEnhancedMessageTrigger() *EnhancedMessageTrigger
NewEnhancedMessageTrigger creates an enhanced message trigger with smart nudges
func (*EnhancedMessageTrigger) AddCustomNudgeType ¶
func (mt *EnhancedMessageTrigger) AddCustomNudgeType(nudgeType NudgeType)
AddCustomNudgeType registers a new nudge type
func (*EnhancedMessageTrigger) BatchNudge ¶
func (mt *EnhancedMessageTrigger) BatchNudge(nudges []*Nudge)
BatchNudge sends multiple nudges at once
func (*EnhancedMessageTrigger) GetContext ¶
func (mt *EnhancedMessageTrigger) GetContext() string
GetContext returns the current conversation context
func (*EnhancedMessageTrigger) GetContextHistory ¶
func (mt *EnhancedMessageTrigger) GetContextHistory(limit int) []string
GetContextHistory returns recent conversation contexts
func (*EnhancedMessageTrigger) GetDynamicThreshold ¶
func (mt *EnhancedMessageTrigger) GetDynamicThreshold() int
GetDynamicThreshold returns the current dynamic threshold
func (*EnhancedMessageTrigger) GetMetrics ¶
func (mt *EnhancedMessageTrigger) GetMetrics() *NudgeMetrics
GetMetrics returns current nudge metrics
func (*EnhancedMessageTrigger) GetMinNudgeInterval ¶
func (mt *EnhancedMessageTrigger) GetMinNudgeInterval() time.Duration
GetMinNudgeInterval returns the minimum interval between nudges
func (*EnhancedMessageTrigger) GetPreferences ¶
func (mt *EnhancedMessageTrigger) GetPreferences() *UserNudgePreference
GetPreferences returns current user preferences
func (*EnhancedMessageTrigger) GetRecentNudges ¶
func (mt *EnhancedMessageTrigger) GetRecentNudges(limit int) []*Nudge
GetRecentNudges returns recent nudges
func (*EnhancedMessageTrigger) GetTurnCount ¶
func (mt *EnhancedMessageTrigger) GetTurnCount() int
GetTurnCount returns the current turn count
func (*EnhancedMessageTrigger) OnErrorOccurred ¶
func (mt *EnhancedMessageTrigger) OnErrorOccurred(errorType string, canRecover bool)
OnErrorOccurred triggers a recovery nudge when an error occurs
func (*EnhancedMessageTrigger) OnNudgeResponse ¶
func (mt *EnhancedMessageTrigger) OnNudgeResponse(nudgeID string, accepted bool)
OnNudgeResponse handles user response to a nudge
func (*EnhancedMessageTrigger) OnOpportunityDetected ¶
func (mt *EnhancedMessageTrigger) OnOpportunityDetected(opportunity string)
OnOpportunityDetected triggers an opportunity nudge
func (*EnhancedMessageTrigger) OnPatternDetected ¶
func (mt *EnhancedMessageTrigger) OnPatternDetected(pattern string, frequency int)
OnPatternDetected triggers a nudge when a pattern is detected
func (*EnhancedMessageTrigger) OnTaskComplete ¶
func (mt *EnhancedMessageTrigger) OnTaskComplete() time.Duration
OnTaskComplete marks the end of a task
func (*EnhancedMessageTrigger) OnToolCall ¶
func (mt *EnhancedMessageTrigger) OnToolCall(toolName string, args map[string]interface{})
OnToolCall increments the tool call counter for skill creation
func (*EnhancedMessageTrigger) OnUserMessage ¶
func (mt *EnhancedMessageTrigger) OnUserMessage(input string)
OnUserMessage is called when a new user message arrives This marks the start of a task and increments turn counter
func (*EnhancedMessageTrigger) PredictiveNudge ¶
func (mt *EnhancedMessageTrigger) PredictiveNudge(predictor func() (string, bool))
PredictiveNudge triggers a nudge based on predictive analysis
func (*EnhancedMessageTrigger) RegisterNudgeHandler ¶
func (mt *EnhancedMessageTrigger) RegisterNudgeHandler(handler NudgeHandler)
RegisterNudgeHandler registers a nudge handler
func (*EnhancedMessageTrigger) RegisterNudgeHandlerFunc ¶
func (mt *EnhancedMessageTrigger) RegisterNudgeHandlerFunc(name string, handler func(*Nudge) bool)
RegisterNudgeHandlerFunc registers a function as a nudge handler
func (*EnhancedMessageTrigger) Reset ¶
func (mt *EnhancedMessageTrigger) Reset()
Reset resets the trigger state
func (*EnhancedMessageTrigger) ScheduleNudge ¶
func (mt *EnhancedMessageTrigger) ScheduleNudge(nudge *Nudge, deliverAt time.Time)
ScheduleNudge schedules a nudge for future delivery
func (*EnhancedMessageTrigger) SetMinNudgeInterval ¶
func (mt *EnhancedMessageTrigger) SetMinNudgeInterval(interval time.Duration)
SetMinNudgeInterval sets the minimum interval between nudges
func (*EnhancedMessageTrigger) SetNudgeThreshold ¶
func (mt *EnhancedMessageTrigger) SetNudgeThreshold(threshold int)
SetNudgeThreshold sets the nudge threshold
func (*EnhancedMessageTrigger) SetNudgeTypeEnabled ¶
func (mt *EnhancedMessageTrigger) SetNudgeTypeEnabled(nudgeType NudgeType, enabled bool)
SetNudgeTypeEnabled enables or disables a specific nudge type
func (*EnhancedMessageTrigger) SetPreferences ¶
func (mt *EnhancedMessageTrigger) SetPreferences(pref *UserNudgePreference)
SetPreferences sets user preferences
func (*EnhancedMessageTrigger) SetQuietHours ¶
func (mt *EnhancedMessageTrigger) SetQuietHours(start, end time.Time)
SetQuietHours sets quiet hours when nudges should be suppressed
type MessageTrigger ¶
type MessageTrigger struct {
// contains filtered or unexported fields
}
MessageTrigger handles the six-system's first two components: 1. User message trigger - starts skill creation flow 2. Periodic Nudge mechanism - triggers background review every N turns
func NewMessageTrigger ¶
func NewMessageTrigger() *MessageTrigger
NewMessageTrigger creates a new message trigger
func (*MessageTrigger) GetCurrentTask ¶
func (mt *MessageTrigger) GetCurrentTask() string
GetCurrentTask returns the current task description
func (*MessageTrigger) GetTurnCount ¶
func (mt *MessageTrigger) GetTurnCount() int
GetTurnCount returns the current turn count
func (*MessageTrigger) OnTaskComplete ¶
func (mt *MessageTrigger) OnTaskComplete() time.Duration
OnTaskComplete marks the end of a task, returns duration
func (*MessageTrigger) OnToolCall ¶
func (mt *MessageTrigger) OnToolCall(toolName string, args map[string]interface{})
OnToolCall increments the tool call counter for skill creation
func (*MessageTrigger) OnUserMessage ¶
func (mt *MessageTrigger) OnUserMessage(input string)
OnUserMessage is called when a new user message arrives This marks the start of a task and increments turn counter
func (*MessageTrigger) RegisterNudgeHandler ¶
func (mt *MessageTrigger) RegisterNudgeHandler(handler func())
RegisterNudgeHandler registers a function to call on nudge
func (*MessageTrigger) Reset ¶
func (mt *MessageTrigger) Reset()
Reset resets the turn counter (for new sessions)
func (*MessageTrigger) SetNudgeThreshold ¶
func (mt *MessageTrigger) SetNudgeThreshold(threshold int)
SetNudgeThreshold sets the nudge threshold
type Nudge ¶
type Nudge struct {
ID string `json:"id"`
Type NudgeType `json:"type"`
Priority NudgePriority `json:"priority"`
Message string `json:"message"`
Context string `json:"context,omitempty"`
Actions []NudgeAction `json:"actions,omitempty"`
CreatedAt time.Time `json:"created_at"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
Nudge represents a single nudge message/action
type NudgeAction ¶
type NudgeAction struct {
Label string `json:"label"`
Type string `json:"type"` // "skill", "tool", "link"
Value string `json:"value"`
}
NudgeAction represents a possible action for a nudge
type NudgeHandler ¶
type NudgeHandler interface {
HandleNudge(nudge *Nudge) bool // Returns true if nudge was handled
GetName() string
}
NudgeHandler is the interface for nudge handlers
type NudgeMetrics ¶
type NudgeMetrics struct {
TotalSent int `json:"total_sent"`
TotalShown int `json:"total_shown"`
TotalDismissed int `json:"total_dismissed"`
TotalAccepted int `json:"total_accepted"`
ByType map[NudgeType]int `json:"by_type"`
ByPriority map[NudgePriority]int `json:"by_priority"`
AvgResponseTime time.Duration `json:"avg_response_time"`
}
NudgeMetrics tracks nudge effectiveness
type NudgePriority ¶
type NudgePriority int
NudgePriority represents the importance level of a nudge
const ( NudgePriorityLow NudgePriority = iota NudgePriorityNormal NudgePriorityHigh NudgePriorityCritical )
type ScheduledNudge ¶
ScheduledNudge represents a nudge scheduled for future delivery
type SimpleNudgeHandler ¶
type SimpleNudgeHandler struct {
// contains filtered or unexported fields
}
SimpleNudgeHandler is a function-based nudge handler
func (*SimpleNudgeHandler) GetName ¶
func (h *SimpleNudgeHandler) GetName() string
func (*SimpleNudgeHandler) HandleNudge ¶
func (h *SimpleNudgeHandler) HandleNudge(nudge *Nudge) bool
type UserNudgePreference ¶
type UserNudgePreference struct {
EnabledTypes map[NudgeType]bool `json:"enabled_types"`
FrequencyLimit time.Duration `json:"frequency_limit"`
QuietHoursStart time.Time `json:"quiet_hours_start"`
QuietHoursEnd time.Time `json:"quiet_hours_end"`
LastNudgeTime time.Time `json:"last_nudge_time"`
ResponseRate float64 `json:"response_rate"` // How often user responds to nudges
}
UserNudgePreference tracks user preferences for nudges