trigger

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: May 25, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultNudgeThreshold = 15

DefaultNudgeThreshold is the number of turns between nudges 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 NudgeType

type NudgeType string

NudgeType represents the type of nudge

const (
	NudgeTypePeriodic      NudgeType = "periodic"
	NudgeTypePattern       NudgeType = "pattern"
	NudgeTypeReminder      NudgeType = "reminder"
	NudgeTypeSuggestion    NudgeType = "suggestion"
	NudgeTypeErrorRecovery NudgeType = "error_recovery"
	NudgeTypeOpportunity   NudgeType = "opportunity"
)

type ScheduledNudge

type ScheduledNudge struct {
	Nudge     *Nudge
	DeliverAt time.Time
}

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

Jump to

Keyboard shortcuts

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