返回 DeepSeek-Reasonix
history_display_notice.go
根目录 / internal / session / history_display_notice.go
1 package session
2
3 import (
4 "context"
5 "encoding/json"
6 "errors"
7 "reasonix/internal/provider"
8 "reasonix/internal/sessioncontent"
9 )
10
11 func indexDisplayNotice(ctx context.Context, content *sessioncontent.Store, state *historyBuildState, event Event) error {
12 payload := event.Payload
13 if event.PayloadRef != nil {
14 var err error
15 payload, err = resolveContentPayload(ctx, content, *event.PayloadRef)
16 if err != nil {
17 return err
18 }
19 }
20 var body struct {
21 Type string `json:"type"`
22 DisplayRecord json.RawMessage `json:"displayRecord"`
23 }
24 if len(payload) == 0 {
25 return nil
26 }
27 if err := json.Unmarshal(payload, &body); err != nil {
28 return err
29 }
30 if body.Type != "display-notice-v1" {
31 return nil
32 }
33 var message provider.Message
34 if err := json.Unmarshal(body.DisplayRecord, &message); err != nil {
35 return err
36 }
37 if message.Role != "notice" || message.ID == "" {
38 return errors.New("invalid persisted display notice")
39 }
40 return indexOneMessageBody(ctx, content, state, message, event.Sequence, false, body.DisplayRecord)
41 }
42
42 lines GO