import { useCopilotChatConfiguration } from "../providers/CopilotChatConfigurationProvider.mjs"; import "../providers/index.mjs"; import { useCopilotKit } from "../providers/CopilotKitProvider.mjs"; import { useCallback, useMemo } from "react"; import { DEFAULT_AGENT_ID } from "@copilotkitnext/shared"; import { jsx } from "react/jsx-runtime"; //#region src/hooks/use-render-activity-message.tsx function useRenderActivityMessage() { const { copilotkit } = useCopilotKit(); const agentId = useCopilotChatConfiguration()?.agentId ?? DEFAULT_AGENT_ID; const renderers = copilotkit.renderActivityMessages; const findRenderer = useCallback((activityType) => { if (!renderers.length) return null; const matches = renderers.filter((renderer) => renderer.activityType === activityType); return matches.find((candidate) => candidate.agentId === agentId) ?? matches.find((candidate) => candidate.agentId === void 0) ?? renderers.find((candidate) => candidate.activityType === "*") ?? null; }, [agentId, renderers]); const renderActivityMessage = useCallback((message) => { const renderer = findRenderer(message.activityType); if (!renderer) return null; const parseResult = renderer.content.safeParse(message.content); if (!parseResult.success) { console.warn(`Failed to parse content for activity message '${message.activityType}':`, parseResult.error); return null; } const Component = renderer.render; const agent = copilotkit.getAgent(agentId); return /* @__PURE__ */ jsx(Component, { activityType: message.activityType, content: parseResult.data, message, agent }, message.id); }, [ agentId, copilotkit, findRenderer ]); return useMemo(() => ({ renderActivityMessage, findRenderer }), [renderActivityMessage, findRenderer]); } //#endregion export { useRenderActivityMessage }; //# sourceMappingURL=use-render-activity-message.mjs.map