import { useCopilotChatConfiguration } from "../providers/CopilotChatConfigurationProvider.mjs"; import "../providers/index.mjs"; import { useCopilotKit } from "../providers/CopilotKitProvider.mjs"; import { jsx } from "react/jsx-runtime"; //#region src/hooks/use-render-custom-messages.tsx function useRenderCustomMessages() { const { copilotkit } = useCopilotKit(); const config = useCopilotChatConfiguration(); if (!config) return null; const { agentId, threadId } = config; const customMessageRenderers = copilotkit.renderCustomMessages.filter((renderer) => renderer.agentId === void 0 || renderer.agentId === agentId).sort((a, b) => { const aHasAgent = a.agentId !== void 0; if (aHasAgent === (b.agentId !== void 0)) return 0; return aHasAgent ? -1 : 1; }); return function(params) { if (!customMessageRenderers.length) return null; const { message, position } = params; const resolvedRunId = copilotkit.getRunIdForMessage(agentId, threadId, message.id) ?? copilotkit.getRunIdsForThread(agentId, threadId).slice(-1)[0]; const runId = resolvedRunId ?? `missing-run-id:${message.id}`; const agent = copilotkit.getAgent(agentId); if (!agent) throw new Error("Agent not found"); const messagesIdsInRun = resolvedRunId ? agent.messages.filter((msg) => copilotkit.getRunIdForMessage(agentId, threadId, msg.id) === resolvedRunId).map((msg) => msg.id) : [message.id]; const rawMessageIndex = agent.messages.findIndex((msg) => msg.id === message.id); const messageIndex = rawMessageIndex >= 0 ? rawMessageIndex : 0; const messageIndexInRun = resolvedRunId ? Math.max(messagesIdsInRun.indexOf(message.id), 0) : 0; const numberOfMessagesInRun = resolvedRunId ? messagesIdsInRun.length : 1; const stateSnapshot = resolvedRunId ? copilotkit.getStateByRun(agentId, threadId, resolvedRunId) : void 0; let result = null; for (const renderer of customMessageRenderers) { if (!renderer.render) continue; const Component = renderer.render; result = /* @__PURE__ */ jsx(Component, { message, position, runId, messageIndex, messageIndexInRun, numberOfMessagesInRun, agentId, stateSnapshot }, `${runId}-${message.id}-${position}`); if (result) break; } return result; }; } //#endregion export { useRenderCustomMessages }; //# sourceMappingURL=use-render-custom-messages.mjs.map