MCPcopy Create free account
hub / github.com/astercloud/aster / GetEvents

Method GetEvents

pkg/session/inmemory.go:144–197  ·  view source on GitHub ↗

GetEvents 获取事件列表

(ctx context.Context, sessionID string, filter *EventFilter)

Source from the content-addressed store, hash-verified

142
143// GetEvents 获取事件列表
144func (s *InMemoryService) GetEvents(ctx context.Context, sessionID string, filter *EventFilter) ([]Event, error) {
145 s.mu.RLock()
146 defer s.mu.RUnlock()
147
148 session, ok := s.sessions[sessionID]
149 if !ok {
150 return nil, ErrSessionNotFound
151 }
152
153 events := session.events.filter(func(e *Event) bool {
154 if filter == nil {
155 return true
156 }
157
158 if filter.AgentID != "" && e.AgentID != filter.AgentID {
159 return false
160 }
161
162 if filter.Branch != "" && e.Branch != filter.Branch {
163 return false
164 }
165
166 if filter.Author != "" && e.Author != filter.Author {
167 return false
168 }
169
170 if filter.StartTime != nil && e.Timestamp.Before(*filter.StartTime) {
171 return false
172 }
173
174 if filter.EndTime != nil && e.Timestamp.After(*filter.EndTime) {
175 return false
176 }
177
178 return true
179 })
180
181 // 应用分页
182 if filter != nil {
183 start := filter.Offset
184 if start > len(events) {
185 return []Event{}, nil
186 }
187
188 end := len(events)
189 if filter.Limit > 0 && start+filter.Limit < end {
190 end = start + filter.Limit
191 }
192
193 events = events[start:end]
194 }
195
196 return events, nil
197}
198
199// UpdateState 更新状态
200func (s *InMemoryService) UpdateState(ctx context.Context, sessionID string, delta map[string]any) error {

Calls 1

filterMethod · 0.80