Versions in this module Expand all Collapse all v1 v1.0.0 Jan 30, 2026 Changes in this version + func TestFocusOptimizer_AdaptSchedule(t *testing.T) + func TestFocusOptimizer_AnalyzeFocusTimePatterns(t *testing.T) + func TestFocusOptimizer_CalculateBlockDuration(t *testing.T) + func TestFocusOptimizer_CalculateConfidence(t *testing.T) + func TestFocusOptimizer_CalculateDeepWorkStats(t *testing.T) + func TestFocusOptimizer_FindLeastProductiveDay(t *testing.T) + func TestFocusOptimizer_FindMostProductiveDay(t *testing.T) + func TestFocusOptimizer_FindPeakProductivityBlocks(t *testing.T) + func TestFocusOptimizer_GenerateInsights(t *testing.T) + func TestFocusOptimizer_GenerateRecommendedBlocks(t *testing.T) + func TestFocusOptimizer_OptimizeMeetingDuration(t *testing.T) + func TestFocusOptimizer_ShouldProtectBlock(t *testing.T) + func TestFocusOptimizer_TimesOverlap(t *testing.T) + type CalendarClient interface + GetCalendars func(ctx context.Context, grantID string) ([]domain.Calendar, error) + GetEvents func(ctx context.Context, grantID, calendarID string, ...) ([]domain.Event, error) + type ConflictResolver struct + func NewConflictResolver(client CalendarClient, patterns *domain.MeetingPattern) *ConflictResolver + func (cr *ConflictResolver) DetectConflicts(ctx context.Context, grantID string, proposed *domain.Event, ...) (*domain.ConflictAnalysis, error) + type FocusOptimizer struct + func NewFocusOptimizer(nylasClient ports.NylasClient) *FocusOptimizer + func (f *FocusOptimizer) AdaptSchedule(ctx context.Context, grantID string, trigger domain.AdaptiveTrigger) (*domain.AdaptiveScheduleChange, error) + func (f *FocusOptimizer) AnalyzeFocusTimePatterns(ctx context.Context, grantID string, settings *domain.FocusTimeSettings) (*domain.FocusTimeAnalysis, error) + func (f *FocusOptimizer) CreateProtectedBlocks(ctx context.Context, grantID string, blocks []domain.FocusTimeBlock, ...) ([]*domain.ProtectedBlock, error) + func (f *FocusOptimizer) OptimizeMeetingDuration(ctx context.Context, grantID string, calendarID string, eventID string) (*domain.DurationOptimization, error) + type MeetingScorer struct + func NewMeetingScorer(patterns *domain.MeetingPattern) *MeetingScorer + func (s *MeetingScorer) ScoreMeetingTime(proposedTime time.Time, participants []string, duration int) *domain.MeetingScore + type PatternLearner struct + func NewPatternLearner(client CalendarClient) *PatternLearner + func NewPatternLearnerWithWorkingHours(client CalendarClient, workingHours *domain.DaySchedule) *PatternLearner + func (p *PatternLearner) AnalyzeHistory(ctx context.Context, grantID string, days int) (*domain.MeetingAnalysis, error)