MCPcopy Create free account
hub / github.com/compozy/agh / QueryEvents

Method QueryEvents

internal/observe/query.go:17–49  ·  view source on GitHub ↗

QueryEvents returns cross-session event summaries ordered for CLI/API consumption.

(ctx context.Context, query store.EventSummaryQuery)

Source from the content-addressed store, hash-verified

15
16// QueryEvents returns cross-session event summaries ordered for CLI/API consumption.
17func (o *Observer) QueryEvents(ctx context.Context, query store.EventSummaryQuery) ([]store.EventSummary, error) {
18 if ctx == nil {
19 return nil, errors.New("observe: query events context is required")
20 }
21 events, err := o.registry.ListEventSummaries(ctx, query)
22 if err != nil {
23 return nil, err
24 }
25
26 o.mu.RLock()
27 memorySource := o.memoryEventSource
28 o.mu.RUnlock()
29 if memorySource == nil || strings.TrimSpace(query.SessionID) != "" {
30 return events, nil
31 }
32
33 workspaces, err := o.memoryEventWorkspaces(ctx, query.WorkspaceID)
34 if err != nil {
35 return nil, err
36 }
37 memoryQuery, err := memoryEventQueryForWorkspaces(ctx, query, workspaces)
38 if err != nil {
39 return nil, err
40 }
41 memoryEvents, err := memorySource.ListMemoryEventSummaries(ctx, workspaces, memoryQuery)
42 if err != nil {
43 return nil, fmt.Errorf("observe: query memory events: %w", err)
44 }
45
46 events = append(filterRegistryMemoryEvents(events), memoryEvents...)
47 sortEventSummaries(events)
48 return clampEventSummaries(events, query.Limit), nil
49}
50
51// QueryTokenStats returns aggregated per-session token usage rows.
52func (o *Observer) QueryTokenStats(ctx context.Context, query store.TokenStatsQuery) ([]store.TokenStats, error) {

Callers

nothing calls this directly

Implementers 2

Observerinternal/observe/observer.go
fakeObserverinternal/daemon/daemon_test.go

Calls 8

memoryEventWorkspacesMethod · 0.95
appendFunction · 0.85
sortEventSummariesFunction · 0.70
clampEventSummariesFunction · 0.70
ListEventSummariesMethod · 0.65

Tested by

no test coverage detected