MCPcopy
hub / github.com/control-theory/gonzo / QueryClasses

Method QueryClasses

internal/engine/engine.go:659–694  ·  view source on GitHub ↗

QueryClasses returns log classification distribution.

(_ context.Context, filters InsightsFilters)

Source from the content-addressed store, hash-verified

657
658// QueryClasses returns log classification distribution.
659func (e *Engine) QueryClasses(_ context.Context, filters InsightsFilters) ([]ClassItem, error) {
660 e.mu.RLock()
661 defer e.mu.RUnlock()
662
663 filtered := e.filterEntries(filters)
664
665 // Classify logs by severity as a simple categorization
666 classCounts := make(map[string]int)
667 for _, entry := range filtered {
668 classCounts[entry.Severity]++
669 }
670
671 total := len(filtered)
672 result := make([]ClassItem, 0, len(classCounts))
673 for name, count := range classCounts {
674 pct := 0.0
675 if total > 0 {
676 pct = float64(count) * 100.0 / float64(total)
677 }
678 result = append(result, ClassItem{
679 Name: name,
680 Count: count,
681 Percentage: pct,
682 })
683 }
684
685 sort.Slice(result, func(i, j int) bool {
686 return result[i].Count > result[j].Count
687 })
688
689 if filters.Limit != nil && *filters.Limit > 0 && len(result) > *filters.Limit {
690 result = result[:*filters.Limit]
691 }
692
693 return result, nil
694}
695
696// QuerySummary returns an AI-generated summary of the logs.
697func (e *Engine) QuerySummary(_ context.Context, filters InsightsFilters) (string, error) {

Callers 1

handleClassesMethod · 0.80

Calls 1

filterEntriesMethod · 0.95

Tested by

no test coverage detected