import type { MessageBlock } from "@rakazo/contracts"; import { isToolActivityBlock } from "@rakazo/core"; export function isCenteredAgentEvent(blocks: readonly MessageBlock[]): boolean { return blocks.some( (block) => block.kind === "handoff" || block.kind === "bot_message_sent" || block.kind === "bot_message_received" || block.kind === "channel_message" || block.kind === "event", ); } export type MessagePresentationSegment = { kind: "content"; blocks: MessageBlock[]; }; export function messagePresentationSegments( blocks: readonly MessageBlock[], ): MessagePresentationSegment[] { const content = blocks.filter( (block) => block.kind !== "app_connect" && !isToolActivityBlock(block), ); return content.length > 0 ? [{ kind: "content", blocks: content }] : []; } export function hasVisibleMessagePresentation(blocks: readonly MessageBlock[]): boolean { return blocks.some((block) => !isToolActivityBlock(block)); }