projectUserRecord function

TrajectoryUserRecord projectUserRecord({
  1. required MessageRecord record,
  2. required int index,
  3. required String recordId,
  4. required bool opensTurn,
})

Projects a user message record into a fully-populated user row.

Implementation

TrajectoryUserRecord projectUserRecord({
  required MessageRecord record,
  required int index,
  required String recordId,
  required bool opensTurn,
}) {
  final message = record.message as UserMessage;
  final text = textPayloadOf(message.content);
  final blocks = message.content is List<ContentBlock>
      ? message.content as List<ContentBlock>
      : const <ContentBlock>[];
  return TrajectoryUserRecord(
    index: index,
    recordId: recordId,
    text: text,
    previewMarkdown: text,
    sourceBlocks: [for (final block in blocks) trajectorySourceBlock(block)],
    opensTurn: opensTurn,
    inputDetail: detailTextOf(blocks),
    startedAt: record.timestamp,
  );
}