evOo-local/apps/mobile/lib/message-presentation.ts
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

31 lines
950 B
TypeScript

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",
);
}
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));
}