Documentation
¶
Overview ¶
Package pattern provides pattern detection and recognition functionality.
Package pattern provides pattern detection and recognition functionality.
Package pattern provides pattern detection and recognition functionality.
Index ¶
- func HybridDecay(lastSeenAt time.Time) float64
- func QualityScore(frequency int, confidence float64, projectCount int, maxFrequency int) float64
- func RunDecay(ctx context.Context, patternStore *gorm.PatternStore) (int, error)
- type DetectionResult
- type Detector
- func (d *Detector) AnalyzeObservation(ctx context.Context, obs *models.Observation) (*DetectionResult, error)
- func (d *Detector) AnalyzeRecentObservations(ctx context.Context) error
- func (d *Detector) CandidateCount() int
- func (d *Detector) GetPatternInsight(ctx context.Context, patternID int64) (string, error)
- func (d *Detector) SetSyncFunc(fn PatternSyncFunc)
- func (d *Detector) Start()
- func (d *Detector) Stop()
- type DetectorConfig
- type PatternSyncFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HybridDecay ¶ added in v1.1.0
HybridDecay computes the temporal decay multiplier for a pattern. Three phases:
- Grace period (0-7 days): no decay, returns 1.0.
- Gaussian decay (7-60 days): smooth exponential decay reaching ~0.5 at 37 days.
- Linear terminal (60-90 days): linear ramp to zero.
func QualityScore ¶ added in v1.1.0
QualityScore computes a pattern's quality based on frequency, confidence, and diversity. Returns a value between 0.0 and 1.0.
Components:
- Frequency (30% weight): Log-scaled frequency normalized against the maximum.
- Confidence (50% weight): Sigmoid-transformed confidence centered at 0.5.
- Diversity (20% weight): Project count normalized to a maximum of 10.
Types ¶
type DetectionResult ¶
DetectionResult contains the result of pattern detection.
type Detector ¶
type Detector struct {
// contains filtered or unexported fields
}
Detector detects and tracks recurring patterns across observations.
func NewDetector ¶
func NewDetector(patternStore *gorm.PatternStore, observationStore *gorm.ObservationStore, config DetectorConfig) *Detector
NewDetector creates a new pattern detector.
func (*Detector) AnalyzeObservation ¶
func (d *Detector) AnalyzeObservation(ctx context.Context, obs *models.Observation) (*DetectionResult, error)
AnalyzeObservation processes a new observation for pattern detection. This is called synchronously when a new observation is stored.
func (*Detector) AnalyzeRecentObservations ¶
AnalyzeRecentObservations analyzes recent observations for pattern detection. This is used for background batch analysis.
func (*Detector) CandidateCount ¶
CandidateCount returns the current number of pattern candidates.
func (*Detector) GetPatternInsight ¶
GetPatternInsight returns a formatted insight string for a pattern. GetPatternInsight returns a formatted insight string for a pattern.
func (*Detector) SetSyncFunc ¶
func (d *Detector) SetSyncFunc(fn PatternSyncFunc)
SetSyncFunc sets the callback for syncing patterns to vector store.
type DetectorConfig ¶
type DetectorConfig struct {
// MinMatchScore is the minimum similarity score to consider a match (0.0-1.0).
MinMatchScore float64
// MinFrequencyForPattern is the minimum occurrences before creating a pattern.
MinFrequencyForPattern int
// AnalysisInterval is how often to run background pattern analysis.
AnalysisInterval time.Duration
// MaxPatternsToTrack is the maximum number of active patterns.
MaxPatternsToTrack int
// MaxCandidates is the maximum number of candidates to track (LRU eviction).
MaxCandidates int
}
DetectorConfig contains configuration for the pattern detector.
func DefaultConfig ¶
func DefaultConfig() DetectorConfig
DefaultConfig returns the default detector configuration.
type PatternSyncFunc ¶
PatternSyncFunc is a callback for syncing patterns to vector store.