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.
31 lines
950 B
TypeScript
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));
|
|
}
|