MCPcopy Index your code
hub / github.com/coder/coder / Receive

Method Receive

codersdk/agentsdk/agentsdk.go:932–965  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

930}
931
932func (s *SSEAgentReinitReceiver) Receive(ctx context.Context) (*ReinitializationEvent, error) {
933 nextEvent := codersdk.ServerSentEventReader(ctx, s.r)
934 for {
935 select {
936 case <-ctx.Done():
937 return nil, ctx.Err()
938 default:
939 }
940
941 sse, err := nextEvent()
942 switch {
943 case err != nil:
944 return nil, xerrors.Errorf("failed to read server-sent event: %w", err)
945 case sse.Type == codersdk.ServerSentEventTypeError:
946 return nil, xerrors.Errorf("unexpected server sent event type error")
947 case sse.Type == codersdk.ServerSentEventTypePing:
948 continue
949 case sse.Type != codersdk.ServerSentEventTypeData:
950 return nil, xerrors.Errorf("unexpected server sent event type: %s", sse.Type)
951 }
952
953 // At this point we know that the sent event is of type codersdk.ServerSentEventTypeData
954 var reinitEvent ReinitializationEvent
955 b, ok := sse.Data.([]byte)
956 if !ok {
957 return nil, xerrors.Errorf("expected data as []byte, got %T", sse.Data)
958 }
959 err = json.Unmarshal(b, &reinitEvent)
960 if err != nil {
961 return nil, xerrors.Errorf("unmarshal reinit response: %w", err)
962 }
963 return &reinitEvent, nil
964 }
965}
966
967// AddChatContextRequest is the request body for adding chat context.
968type AddChatContextRequest struct {

Callers 2

WaitForReinitMethod · 0.80

Calls 5

ServerSentEventReaderFunction · 0.92
ErrMethod · 0.80
DoneMethod · 0.45
ErrorfMethod · 0.45
UnmarshalMethod · 0.45

Tested by 1