GetAllMessages extracts all messages from the session, including from sub-sessions
()
| 623 | |
| 624 | // GetAllMessages extracts all messages from the session, including from sub-sessions |
| 625 | func (s *Session) GetAllMessages() []Message { |
| 626 | items := s.snapshotItems() |
| 627 | |
| 628 | var messages []Message |
| 629 | for _, item := range items { |
| 630 | if item.IsMessage() && item.Message.Message.Role != chat.MessageRoleSystem { |
| 631 | messages = append(messages, *item.Message) |
| 632 | } else if item.IsSubSession() { |
| 633 | // Recursively get messages from sub-sessions |
| 634 | subMessages := item.SubSession.GetAllMessages() |
| 635 | messages = append(messages, subMessages...) |
| 636 | } |
| 637 | } |
| 638 | return messages |
| 639 | } |
| 640 | |
| 641 | // OwnMessages extracts this session's direct messages, excluding system |
| 642 | // messages and WITHOUT recursing into sub-sessions. This is the set of |