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

Function streamSessionEvents

internal/cli/session.go:688–751  ·  view source on GitHub ↗
(cmd *cobra.Command, client DaemonClient, id string, query SessionEventQuery)

Source from the content-addressed store, hash-verified

686}
687
688func streamSessionEvents(cmd *cobra.Command, client DaemonClient, id string, query SessionEventQuery) error {
689 mode, err := resolveOutputFormat(cmd)
690 if err != nil {
691 return err
692 }
693
694 encoder := json.NewEncoder(cmd.OutOrStdout())
695 encoder.SetEscapeHTML(false)
696
697 err = client.StreamSessionEvents(cmd.Context(), id, query, "", func(event SSEEvent) error {
698 var payload SessionEventRecord
699 if len(event.Data) > 0 {
700 if err := json.Unmarshal(event.Data, &payload); err != nil {
701 return fmt.Errorf("cli: decode session stream event: %w", err)
702 }
703 }
704 if payload.Type == "" {
705 payload.Type = event.Event
706 }
707
708 switch mode {
709 case OutputJSON, OutputJSONL:
710 if err := encoder.Encode(payload); err != nil {
711 return err
712 }
713 case OutputToon:
714 if err := writeRawCommandOutput(cmd, renderToonObject("event", []string{
715 sessionSequenceKey,
716 extensionTypeKey,
717 sessionAgentNameKey,
718 sessionTurnIDKey,
719 networkTimestampKey,
720 memoryContentKey,
721 }, []string{
722 strconv.FormatInt(payload.Sequence, 10),
723 payload.Type,
724 payload.AgentName,
725 payload.TurnID,
726 formatTime(payload.Timestamp),
727 compactJSON(payload.Content),
728 })); err != nil {
729 return err
730 }
731 default:
732 if err := writeRawCommandOutput(cmd, strings.Join([]string{
733 stringOrDash(formatTime(payload.Timestamp)),
734 stringOrDash(payload.Type),
735 stringOrDash(payload.AgentName),
736 stringOrDash(compactJSON(payload.Content)),
737 }, " ")); err != nil {
738 return err
739 }
740 }
741
742 if payload.Type == session.EventTypeSessionStopped {
743 return errStopSSE
744 }
745 return nil

Callers 1

newSessionEventsCommandFunction · 0.85

Calls 9

resolveOutputFormatFunction · 0.85
writeRawCommandOutputFunction · 0.85
renderToonObjectFunction · 0.85
formatTimeFunction · 0.85
stringOrDashFunction · 0.85
compactJSONFunction · 0.70
StreamSessionEventsMethod · 0.65
EncodeMethod · 0.65
IsMethod · 0.45

Tested by

no test coverage detected