/** * `reflect` — ask the long-term memory backend a question; the answer comes * back as plain result text (details are always empty). */ import type { ReactNode } from "react"; import { Note, Output, ResultText } from "../parts"; import type { ToolRenderer, ToolRenderProps } from "../types"; import { normalizeWs, resultTextOf, str, truncate } from "../util"; function Summary({ args }: ToolRenderProps): ReactNode { const query = str(args.query); return {query ? truncate(normalizeWs(query), 96) : ""}; } function Body({ args, result }: ToolRenderProps): ReactNode { const query = str(args.query) ?? ""; const context = str(args.context) ?? ""; const failedSilently = result?.isError === true && !resultTextOf(result); return ( <> {query && } {context && } {failedSilently ? Reflect failed : } ); } export const reflectRenderer: ToolRenderer = { Summary, Body };